更新门店端 (2026-04-01)

This commit is contained in:
notyclaw 2026-04-01 20:01:29 +08:00
parent 18c2911dcb
commit e9d2933e58
27 changed files with 76 additions and 71 deletions

1
dist/assets/Home-B2HfCXqS.js vendored Normal file
View File

@ -0,0 +1 @@
import{s as h,o as y,v as b}from"./api-BJHHntS5.js";import{_ as F}from"./index-P0T8_Fg3.js";import{o as k,H as n,L as r,P as t,Z as l,M as c,O as v,X as x,F as O,ab as w,r as u,ag as S,Y as B,R as V}from"./vendor-CDC8xK0g.js";import"./element-plus-P2E9Zrny.js";const E={class:"home-page"},C={class:"home-header"},I={class:"header-left"},N={class:"store-name"},z={class:"quick-nav"},A={class:"section"},H={class:"stat-grid"},M={class:"stat-card"},T={class:"stat-num",style:{color:"#FF6B00"}},$={class:"stat-card"},D={class:"stat-num",style:{color:"#576BFF"}},L={class:"stat-card"},q={class:"stat-num",style:{color:"#FF6B35"}},P={class:"stat-card"},R={class:"stat-num",style:{color:"#333"}},X={class:"section"},Y={class:"section-header"},Z={class:"order-list"},j={key:0,class:"loading-tip"},G={key:1,class:"empty-tip"},J={class:"order-left"},K={class:"order-customer"},Q={class:"order-vehicle"},U={__name:"Home",setup(W){const m=u({}),d=u([]),_=u(!0),i=u({totalOrders:0,rentingOrders:0,warningOrders:0,totalVehicles:0}),g=e=>({renting:"status-renting",returned:"status-ok",overdue:"status-warning"})[e]||"",p=e=>({renting:"在租",returned:"已还",overdue:"逾期",pending:"待处理"})[e]||e,f=e=>{if(!e)return"-";const s=new Date(e);return`${s.getMonth()+1}/${s.getDate()} ${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}`};return k(async()=>{const e=localStorage.getItem("storeId")||"demo-store";if(m.value={name:"示例门店"},e!=="demo-store")try{const s=await h.getStore(e);s.data.success&&s.data.data&&(m.value=s.data.data)}catch{}try{const s=await y.list({storeId:e,limit:5}),a=s.data.data||s.data||[];d.value=a,i.value.totalOrders=a.length,i.value.rentingOrders=a.filter(o=>o.status==="进行中"||o.status==="在租").length,i.value.warningOrders=a.filter(o=>o.status==="逾期").length}catch{d.value=[]}_.value=!1;try{const s=await b.list({storeId:e,limit:100}),a=s.data.data||s.data||[];i.value.totalVehicles=a.length}catch{}}),(e,s)=>{const a=S("router-link");return n(),r("div",E,[t("div",C,[t("div",I,[s[1]||(s[1]=t("div",{class:"store-avatar"},"🚲",-1)),t("div",null,[t("div",N,l(m.value.name||"加载中..."),1),s[0]||(s[0]=t("div",{class:"store-sub"},"门店端",-1))])]),s[2]||(s[2]=t("div",{class:"header-badge"},"营业中",-1))]),t("div",z,[c(a,{to:"/vehicle-types",class:"nav-card"},{default:v(()=>[...s[3]||(s[3]=[t("div",{class:"nav-icon-box",style:{background:"#E8F8EE"}},[t("span",{style:{"font-size":"20px"}},"🚗")],-1),t("div",{class:"nav-label"},"车型管理",-1)])]),_:1}),c(a,{to:"/vehicles",class:"nav-card"},{default:v(()=>[...s[4]||(s[4]=[t("div",{class:"nav-icon-box",style:{background:"#FFF4E0"}},[t("span",{style:{"font-size":"20px"}},"🏍️")],-1),t("div",{class:"nav-label"},"车辆管理",-1)])]),_:1}),c(a,{to:"/orders",class:"nav-card"},{default:v(()=>[...s[5]||(s[5]=[t("div",{class:"nav-icon-box",style:{background:"#E8F0FF"}},[t("span",{style:{"font-size":"20px"}},"📋")],-1),t("div",{class:"nav-label"},"订单管理",-1)])]),_:1})]),t("div",A,[s[10]||(s[10]=t("div",{class:"section-header"},[t("div",{class:"section-title"},"今日概览"),t("div",{class:"section-more"},"实时数据")],-1)),t("div",H,[t("div",M,[t("div",T,l(i.value.totalOrders),1),s[6]||(s[6]=t("div",{class:"stat-label"},"总订单",-1))]),t("div",$,[t("div",D,l(i.value.rentingOrders),1),s[7]||(s[7]=t("div",{class:"stat-label"},"在租订单",-1))]),t("div",L,[t("div",q,l(i.value.warningOrders),1),s[8]||(s[8]=t("div",{class:"stat-label"},"预警订单",-1))]),t("div",P,[t("div",R,l(i.value.totalVehicles),1),s[9]||(s[9]=t("div",{class:"stat-label"},"车辆总数",-1))])])]),t("div",X,[t("div",Y,[s[12]||(s[12]=t("div",{class:"section-title"},"最近订单",-1)),c(a,{to:"/orders",class:"section-more",style:{color:"#FF6B00"}},{default:v(()=>[...s[11]||(s[11]=[B("查看全部 ",-1)])]),_:1})]),t("div",Z,[_.value?(n(),r("div",j,"加载中...")):d.value.length===0?(n(),r("div",G,"暂无订单")):x("",!0),(n(!0),r(O,null,w(d.value,o=>(n(),r("div",{key:o._id,class:"order-item"},[t("div",J,[t("div",K,l(o.customerName||"客户"),1),t("div",Q,l(o.vehicleType||"车型")+" · "+l(f(o.createdAt)),1)]),t("div",{class:V(["order-status",g(o.status)])},l(p(o.status)),3)]))),128))])])])}}},os=F(U,[["__scopeId","data-v-efbd3ab6"]]);export{os as default};

View File

@ -1 +0,0 @@
import{s as f,o as y,v as b}from"./api-r_HoetOt.js";import{_ as F,h as k,o as i,c as r,a as t,t as l,b as c,d as v,i as x,F as O,j as w,r as u,g as S,k as B,n as V}from"./index-D6NGLDyM.js";import"./index-42ANG6Sg.js";const E={class:"home-page"},C={class:"home-header"},I={class:"header-left"},N={class:"store-name"},z={class:"quick-nav"},A={class:"section"},T={class:"stat-grid"},$={class:"stat-card"},D={class:"stat-num",style:{color:"#FF6B00"}},H={class:"stat-card"},M={class:"stat-num",style:{color:"#576BFF"}},j={class:"stat-card"},q={class:"stat-num",style:{color:"#FF6B35"}},L={class:"stat-card"},G={class:"stat-num",style:{color:"#333"}},J={class:"section"},K={class:"section-header"},P={class:"order-list"},Q={key:0,class:"loading-tip"},R={key:1,class:"empty-tip"},U={class:"order-left"},W={class:"order-customer"},X={class:"order-vehicle"},Y={__name:"Home",setup(Z){const m=u({}),d=u([]),_=u(!0),n=u({totalOrders:0,rentingOrders:0,warningOrders:0,totalVehicles:0}),g=e=>({renting:"status-renting",returned:"status-ok",overdue:"status-warning"})[e]||"",p=e=>({renting:"在租",returned:"已还",overdue:"逾期",pending:"待处理"})[e]||e,h=e=>{if(!e)return"-";const s=new Date(e);return`${s.getMonth()+1}/${s.getDate()} ${s.getHours().toString().padStart(2,"0")}:${s.getMinutes().toString().padStart(2,"0")}`};return k(async()=>{const e=localStorage.getItem("storeId")||"demo-store";if(m.value={name:"示例门店"},e!=="demo-store")try{const s=await f.getStore(e);s.data.success&&s.data.data&&(m.value=s.data.data)}catch{}try{const s=await y.list({storeId:e,limit:5}),a=s.data.data||s.data||[];d.value=a,n.value.totalOrders=a.length,n.value.rentingOrders=a.filter(o=>o.status==="进行中"||o.status==="在租").length,n.value.warningOrders=a.filter(o=>o.status==="逾期").length}catch{d.value=[]}_.value=!1;try{const s=await b.list({storeId:e,limit:100}),a=s.data.data||s.data||[];n.value.totalVehicles=a.length}catch{}}),(e,s)=>{const a=S("router-link");return i(),r("div",E,[t("div",C,[t("div",I,[s[1]||(s[1]=t("div",{class:"store-avatar"},"🚲",-1)),t("div",null,[t("div",N,l(m.value.name||"加载中..."),1),s[0]||(s[0]=t("div",{class:"store-sub"},"门店端",-1))])]),s[2]||(s[2]=t("div",{class:"header-badge"},"营业中",-1))]),t("div",z,[c(a,{to:"/vehicle-types",class:"nav-card"},{default:v(()=>[...s[3]||(s[3]=[t("div",{class:"nav-icon-box",style:{background:"#E8F8EE"}},[t("span",{style:{"font-size":"20px"}},"🚗")],-1),t("div",{class:"nav-label"},"车型管理",-1)])]),_:1}),c(a,{to:"/vehicles",class:"nav-card"},{default:v(()=>[...s[4]||(s[4]=[t("div",{class:"nav-icon-box",style:{background:"#FFF4E0"}},[t("span",{style:{"font-size":"20px"}},"🏍️")],-1),t("div",{class:"nav-label"},"车辆管理",-1)])]),_:1}),c(a,{to:"/orders",class:"nav-card"},{default:v(()=>[...s[5]||(s[5]=[t("div",{class:"nav-icon-box",style:{background:"#E8F0FF"}},[t("span",{style:{"font-size":"20px"}},"📋")],-1),t("div",{class:"nav-label"},"订单管理",-1)])]),_:1})]),t("div",A,[s[10]||(s[10]=t("div",{class:"section-header"},[t("div",{class:"section-title"},"今日概览"),t("div",{class:"section-more"},"实时数据")],-1)),t("div",T,[t("div",$,[t("div",D,l(n.value.totalOrders),1),s[6]||(s[6]=t("div",{class:"stat-label"},"总订单",-1))]),t("div",H,[t("div",M,l(n.value.rentingOrders),1),s[7]||(s[7]=t("div",{class:"stat-label"},"在租订单",-1))]),t("div",j,[t("div",q,l(n.value.warningOrders),1),s[8]||(s[8]=t("div",{class:"stat-label"},"预警订单",-1))]),t("div",L,[t("div",G,l(n.value.totalVehicles),1),s[9]||(s[9]=t("div",{class:"stat-label"},"车辆总数",-1))])])]),t("div",J,[t("div",K,[s[12]||(s[12]=t("div",{class:"section-title"},"最近订单",-1)),c(a,{to:"/orders",class:"section-more",style:{color:"#FF6B00"}},{default:v(()=>[...s[11]||(s[11]=[B("查看全部 ",-1)])]),_:1})]),t("div",P,[_.value?(i(),r("div",Q,"加载中...")):d.value.length===0?(i(),r("div",R,"暂无订单")):x("",!0),(i(!0),r(O,null,w(d.value,o=>(i(),r("div",{key:o._id,class:"order-item"},[t("div",U,[t("div",W,l(o.customerName||"客户"),1),t("div",X,l(o.vehicleType||"车型")+" · "+l(h(o.createdAt)),1)]),t("div",{class:V(["order-status",g(o.status)])},l(p(o.status)),3)]))),128))])])])}}},as=F(Y,[["__scopeId","data-v-efbd3ab6"]]);export{as as default};

View File

@ -1 +0,0 @@
.login-page[data-v-e2f0562e]{min-height:100vh;background:#f7f7f7;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.login-header[data-v-e2f0562e]{text-align:center;color:#1a1a1a;margin-bottom:40px}.logo[data-v-e2f0562e]{font-size:64px;margin-bottom:10px}.login-header h1[data-v-e2f0562e]{font-size:28px;margin-bottom:8px;font-weight:600;color:#1a1a1a}.login-header p[data-v-e2f0562e]{font-size:13px;color:#b2b2b2}.login-form[data-v-e2f0562e]{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:30px;box-shadow:0 2px 12px #0000000f}.form-item[data-v-e2f0562e]{margin-bottom:16px}.form-item input[data-v-e2f0562e]{width:100%;padding:14px 16px;background:#f7f7f7;border:none;border-radius:12px;font-size:15px;color:#1a1a1a;outline:none;box-sizing:border-box}.form-item input[data-v-e2f0562e]::placeholder{color:#b2b2b2}.login-btn[data-v-e2f0562e]{width:100%;background:#ff6b00;border:none;font-size:18px;border-radius:12px;height:48px;color:#fff;cursor:pointer;margin-top:8px}.login-btn[data-v-e2f0562e]:active{opacity:.8}.demo-hint[data-v-e2f0562e]{text-align:center;color:#b2b2b2;font-size:12px;margin-top:20px}

View File

@ -1 +0,0 @@
import{_ as m,o as p,c,a as e,w as n,v as r,r as d,u as v}from"./index-D6NGLDyM.js";import{a as g}from"./index-42ANG6Sg.js";const f={class:"login-page"},_={class:"login-form"},w={class:"form-item"},h={class:"form-item"},I=["loading"],k={__name:"Login",setup(x){const i=v(),t=d(!1),s=d({username:"",password:""}),u=async()=>{if(!s.value.username||!s.value.password){alert("请输入账号和密码");return}t.value=!0;try{const a=await g.post("/api/store-auth/login",{username:s.value.username,password:s.value.password});a.data.success&&a.data.data.token?(localStorage.setItem("token",a.data.data.token),localStorage.setItem("storeInfo",JSON.stringify(a.data.data)),localStorage.setItem("storeId",a.data.data.id||a.data.data.storeId||s.value.username),i.push("/")):alert(a.data.message||"登录失败")}catch(a){alert(a.response?.data?.message||"登录失败,请检查账号密码")}finally{t.value=!1}};return(a,o)=>(p(),c("div",f,[o[3]||(o[3]=e("div",{class:"login-header"},[e("div",{class:"logo"},"🏪"),e("h1",null,"门店管理"),e("p",null,"51租 · 商家端")],-1)),e("div",_,[e("div",w,[n(e("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>s.value.username=l),placeholder:"请输入账号",size:"large"},null,512),[[r,s.value.username]])]),e("div",h,[n(e("input",{"onUpdate:modelValue":o[1]||(o[1]=l=>s.value.password=l),type:"password",placeholder:"请输入密码",size:"large"},null,512),[[r,s.value.password]])]),e("button",{class:"login-btn",loading:t.value,onClick:u}," 登录 ",8,I),o[2]||(o[2]=e("div",{class:"demo-hint"},[e("p",null,"演示账号store_demo / demo123")],-1))])]))}},B=m(k,[["__scopeId","data-v-e2f0562e"]]);export{B as default};

1
dist/assets/Login-CN8AOf7M.css vendored Normal file
View File

@ -0,0 +1 @@
.login-page[data-v-23f404e0]{min-height:100vh;background:#f7f7f7;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.login-header[data-v-23f404e0]{text-align:center;color:#1a1a1a;margin-bottom:40px}.logo[data-v-23f404e0]{font-size:64px;margin-bottom:10px}.login-header h1[data-v-23f404e0]{font-size:28px;margin-bottom:8px;font-weight:600;color:#1a1a1a}.login-header p[data-v-23f404e0]{font-size:13px;color:#b2b2b2}.login-form[data-v-23f404e0]{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:30px;box-shadow:0 2px 12px #0000000f}.form-item[data-v-23f404e0]{margin-bottom:16px}.form-item input[data-v-23f404e0]{width:100%;padding:14px 16px;background:#f7f7f7;border:none;border-radius:12px;font-size:15px;color:#1a1a1a;outline:none;box-sizing:border-box}.form-item input[data-v-23f404e0]::placeholder{color:#b2b2b2}.login-btn[data-v-23f404e0]{width:100%;background:#ff6b00;border:none;font-size:18px;border-radius:12px;height:48px;color:#fff;cursor:pointer;margin-top:8px}.login-btn[data-v-23f404e0]:active{opacity:.8}.demo-hint[data-v-23f404e0]{text-align:center;color:#b2b2b2;font-size:12px;margin-top:20px}

1
dist/assets/Login-Ndjq7-xw.js vendored Normal file
View File

@ -0,0 +1 @@
import{H as m,L as p,P as e,V as n,aq as r,r as d,az as c,aA as g}from"./vendor-CDC8xK0g.js";import{_ as v}from"./index-P0T8_Fg3.js";import"./element-plus-P2E9Zrny.js";const f={class:"login-page"},_={class:"login-form"},h={class:"form-item"},w={class:"form-item"},I=["loading"],k={__name:"Login",setup(x){const i=g(),o=d(!1),t=d({username:"",password:""}),u=async()=>{const l=t.value.username.trim(),s=t.value.password.trim();if(!l||!s){alert("请输入账号和密码");return}o.value=!0;try{const a=await c.post("/api/store-auth/login",{username:l,password:s});a.data.success&&a.data.data.token?(localStorage.setItem("token",a.data.data.token),localStorage.setItem("storeInfo",JSON.stringify(a.data.data)),localStorage.setItem("storeId",a.data.data.id||a.data.data.storeId||t.value.username),i.push("/")):alert(a.data.message||"登录失败")}catch(a){alert(a.response?.data?.message||"登录失败,请检查账号密码")}finally{o.value=!1}};return(l,s)=>(m(),p("div",f,[s[3]||(s[3]=e("div",{class:"login-header"},[e("div",{class:"logo"},"🏪"),e("h1",null,"门店管理"),e("p",null,"51租 · 商家端")],-1)),e("div",_,[e("div",h,[n(e("input",{"onUpdate:modelValue":s[0]||(s[0]=a=>t.value.username=a),placeholder:"请输入账号",size:"large"},null,512),[[r,t.value.username]])]),e("div",w,[n(e("input",{"onUpdate:modelValue":s[1]||(s[1]=a=>t.value.password=a),type:"password",placeholder:"请输入密码",size:"large"},null,512),[[r,t.value.password]])]),e("button",{class:"login-btn",loading:o.value,onClick:u}," 登录 ",8,I),s[2]||(s[2]=e("div",{class:"demo-hint"},[e("p",null,"演示账号store_demo / demo123")],-1))])]))}},V=v(k,[["__scopeId","data-v-23f404e0"]]);export{V as default};

View File

@ -1 +0,0 @@
import{_ as w,h as y,o as u,c,a as s,t as m,e as S,l as x,w as d,v as i,i as _,r as v,u as C}from"./index-D6NGLDyM.js";import{s as p}from"./api-r_HoetOt.js";import"./index-42ANG6Sg.js";const V={class:"page"},D={class:"mine-header"},M={class:"header-info"},F={class:"info-text"},U={class:"store-name"},B={class:"store-id"},E={class:"dialog"},N={class:"dialog-body"},$={class:"form-item"},h={class:"form-item"},A={class:"form-item"},L={class:"form-item"},R={class:"dialog-footer"},T={__name:"Mine",setup(j){const r=localStorage.getItem("storeId")||"demo-store",t=v({}),a=v(!1),o=v({}),f=async()=>{try{const n=await p.getStore(r);t.value=n.data||{}}catch{t.value={name:"示例门店"}}},g=()=>{o.value={...t.value},a.value=!0},I=async()=>{try{await p.updateStore(r,o.value),t.value={...o.value},a.value=!1}catch{alert("保存失败")}},b=C(),k=()=>{confirm("确定退出登录?")&&(localStorage.removeItem("token"),localStorage.removeItem("storeInfo"),localStorage.removeItem("storeId"),b.push("/login"))};return y(f),(n,e)=>(u(),c("div",V,[s("div",D,[s("div",M,[e[6]||(e[6]=s("div",{class:"avatar-box"},"🏪",-1)),s("div",F,[s("div",U,m(t.value.name||"加载中..."),1),s("div",B,"ID: "+m(S(r)),1)])])]),s("div",{class:"card-section"},[s("div",{class:"card-row",onClick:g},[...e[7]||(e[7]=[s("div",{class:"card-left"},[s("span",{class:"card-icon"},"🏢"),s("span",{class:"card-text"},"门店信息")],-1),s("span",{class:"card-arrow"},"",-1)])]),e[9]||(e[9]=s("div",{class:"card-divider"},null,-1)),s("div",{class:"card-row",onClick:k},[...e[8]||(e[8]=[s("div",{class:"card-left"},[s("span",{class:"card-icon"},"🚪"),s("span",{class:"card-text",style:{color:"#FF4D4F"}},"退出登录")],-1)])])]),a.value?(u(),c("div",{key:0,class:"dialog-overlay",onClick:e[5]||(e[5]=x(l=>a.value=!1,["self"]))},[s("div",E,[e[14]||(e[14]=s("div",{class:"dialog-handle"},null,-1)),e[15]||(e[15]=s("div",{class:"dialog-title"},"编辑门店信息",-1)),s("div",N,[s("div",$,[e[10]||(e[10]=s("label",null,"门店名称",-1)),d(s("input",{"onUpdate:modelValue":e[0]||(e[0]=l=>o.value.name=l),placeholder:"请输入门店名称"},null,512),[[i,o.value.name]])]),s("div",h,[e[11]||(e[11]=s("label",null,"联系人",-1)),d(s("input",{"onUpdate:modelValue":e[1]||(e[1]=l=>o.value.contact=l),placeholder:"请输入联系人"},null,512),[[i,o.value.contact]])]),s("div",A,[e[12]||(e[12]=s("label",null,"联系电话",-1)),d(s("input",{"onUpdate:modelValue":e[2]||(e[2]=l=>o.value.phone=l),placeholder:"请输入联系电话"},null,512),[[i,o.value.phone]])]),s("div",L,[e[13]||(e[13]=s("label",null,"地址",-1)),d(s("input",{"onUpdate:modelValue":e[3]||(e[3]=l=>o.value.address=l),placeholder:"请输入地址"},null,512),[[i,o.value.address]])])]),s("div",R,[s("button",{class:"btn-cancel",onClick:e[4]||(e[4]=l=>a.value=!1)},"取消"),s("button",{class:"btn-confirm",onClick:I},"保存")])])])):_("",!0)]))}},H=w(T,[["__scopeId","data-v-9cd886ea"]]);export{H as default};

1
dist/assets/Mine-Hteig4nH.js vendored Normal file
View File

@ -0,0 +1 @@
import{o as y,H as v,L as c,P as s,Z as m,u as S,a9 as w,V as d,aq as i,X as x,r as u,aA as V}from"./vendor-CDC8xK0g.js";import{s as p}from"./api-BJHHntS5.js";import{_}from"./index-P0T8_Fg3.js";import"./element-plus-P2E9Zrny.js";const C={class:"page"},D={class:"mine-header"},M={class:"header-info"},F={class:"info-text"},U={class:"store-name"},B={class:"store-id"},E={class:"dialog"},A={class:"dialog-body"},L={class:"form-item"},N={class:"form-item"},$={class:"form-item"},q={class:"form-item"},H={class:"dialog-footer"},P={__name:"Mine",setup(R){const r=localStorage.getItem("storeId")||"demo-store",t=u({}),a=u(!1),e=u({}),f=async()=>{try{const n=await p.getStore(r);t.value=n.data||{}}catch{t.value={name:"示例门店"}}},g=()=>{e.value={...t.value},a.value=!0},I=async()=>{try{await p.updateStore(r,e.value),t.value={...e.value},a.value=!1}catch{alert("保存失败")}},b=V(),k=()=>{confirm("确定退出登录?")&&(localStorage.removeItem("token"),localStorage.removeItem("storeInfo"),localStorage.removeItem("storeId"),b.push("/login"))};return y(f),(n,o)=>(v(),c("div",C,[s("div",D,[s("div",M,[o[6]||(o[6]=s("div",{class:"avatar-box"},"🏪",-1)),s("div",F,[s("div",U,m(t.value.name||"加载中..."),1),s("div",B,"ID: "+m(S(r)),1)])])]),s("div",{class:"card-section"},[s("div",{class:"card-row",onClick:g},[...o[7]||(o[7]=[s("div",{class:"card-left"},[s("span",{class:"card-icon"},"🏢"),s("span",{class:"card-text"},"门店信息")],-1),s("span",{class:"card-arrow"},"",-1)])]),o[9]||(o[9]=s("div",{class:"card-divider"},null,-1)),s("div",{class:"card-row",onClick:k},[...o[8]||(o[8]=[s("div",{class:"card-left"},[s("span",{class:"card-icon"},"🚪"),s("span",{class:"card-text",style:{color:"#FF4D4F"}},"退出登录")],-1)])])]),a.value?(v(),c("div",{key:0,class:"dialog-overlay",onClick:o[5]||(o[5]=w(l=>a.value=!1,["self"]))},[s("div",E,[o[14]||(o[14]=s("div",{class:"dialog-handle"},null,-1)),o[15]||(o[15]=s("div",{class:"dialog-title"},"编辑门店信息",-1)),s("div",A,[s("div",L,[o[10]||(o[10]=s("label",null,"门店名称",-1)),d(s("input",{"onUpdate:modelValue":o[0]||(o[0]=l=>e.value.name=l),placeholder:"请输入门店名称"},null,512),[[i,e.value.name]])]),s("div",N,[o[11]||(o[11]=s("label",null,"联系人",-1)),d(s("input",{"onUpdate:modelValue":o[1]||(o[1]=l=>e.value.contact=l),placeholder:"请输入联系人"},null,512),[[i,e.value.contact]])]),s("div",$,[o[12]||(o[12]=s("label",null,"联系电话",-1)),d(s("input",{"onUpdate:modelValue":o[2]||(o[2]=l=>e.value.phone=l),placeholder:"请输入联系电话"},null,512),[[i,e.value.phone]])]),s("div",q,[o[13]||(o[13]=s("label",null,"地址",-1)),d(s("input",{"onUpdate:modelValue":o[3]||(o[3]=l=>e.value.address=l),placeholder:"请输入地址"},null,512),[[i,e.value.address]])])]),s("div",H,[s("button",{class:"btn-cancel",onClick:o[4]||(o[4]=l=>a.value=!1)},"取消"),s("button",{class:"btn-confirm",onClick:I},"保存")])])])):x("",!0)]))}},j=_(P,[["__scopeId","data-v-9cd886ea"]]);export{j as default};

1
dist/assets/Orders-D_p5d4Rr.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/assets/TabLayout-DLDQF38R.js vendored Normal file
View File

@ -0,0 +1 @@
import{H as d,L as v,P as t,M as s,O as i,R as l,u as n,aB as p,ag as r}from"./vendor-CDC8xK0g.js";const u={class:"tab-layout"},h={class:"tab-content"},b={class:"tab-bar"},x={__name:"TabLayout",setup(_){const a=p();return(m,e)=>{const c=r("router-view"),o=r("router-link");return d(),v("div",u,[t("div",h,[s(c)]),t("div",b,[s(o,{to:"/",class:l(["tab-item",{active:n(a).path==="/"}])},{default:i(()=>[...e[0]||(e[0]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"}),t("polyline",{points:"9,22 9,12 15,12 15,22"})])],-1),t("div",{class:"tab-label"},"首页",-1)])]),_:1},8,["class"]),s(o,{to:"/orders",class:l(["tab-item",{active:n(a).path==="/orders"}])},{default:i(()=>[...e[1]||(e[1]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),t("polyline",{points:"14,2 14,8 20,8"}),t("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),t("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),t("polyline",{points:"10,9 9,9 8,9"})])],-1),t("div",{class:"tab-label"},"订单",-1)])]),_:1},8,["class"]),s(o,{to:"/mine",class:l(["tab-item",{active:n(a).path==="/mine"}])},{default:i(()=>[...e[2]||(e[2]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"}),t("circle",{cx:"12",cy:"7",r:"4"})])],-1),t("div",{class:"tab-label"},"我的",-1)])]),_:1},8,["class"])])])}}};export{x as default};

View File

@ -1 +0,0 @@
import{o as d,c as v,a as t,b as s,d as i,n as l,e as n,f as p,g as r}from"./index-D6NGLDyM.js";const u={class:"tab-layout"},b={class:"tab-content"},h={class:"tab-bar"},f={__name:"TabLayout",setup(_){const o=p();return(m,e)=>{const c=r("router-view"),a=r("router-link");return d(),v("div",u,[t("div",b,[s(c)]),t("div",h,[s(a,{to:"/",class:l(["tab-item",{active:n(o).path==="/"}])},{default:i(()=>[...e[0]||(e[0]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2z"}),t("polyline",{points:"9,22 9,12 15,12 15,22"})])],-1),t("div",{class:"tab-label"},"首页",-1)])]),_:1},8,["class"]),s(a,{to:"/orders",class:l(["tab-item",{active:n(o).path==="/orders"}])},{default:i(()=>[...e[1]||(e[1]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),t("polyline",{points:"14,2 14,8 20,8"}),t("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),t("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),t("polyline",{points:"10,9 9,9 8,9"})])],-1),t("div",{class:"tab-label"},"订单",-1)])]),_:1},8,["class"]),s(a,{to:"/mine",class:l(["tab-item",{active:n(o).path==="/mine"}])},{default:i(()=>[...e[2]||(e[2]=[t("div",{class:"tab-icon"},[t("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8"},[t("path",{d:"M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"}),t("circle",{cx:"12",cy:"7",r:"4"})])],-1),t("div",{class:"tab-label"},"我的",-1)])]),_:1},8,["class"])])])}}};export{f as default};

1
dist/assets/VehicleTypes-5V1vH90T.js vendored Normal file
View File

@ -0,0 +1 @@
import{o as A,H as t,L as n,P as e,X as b,F as B,ab as F,a9 as L,Z as f,V as k,aq as h,M as y,O as w,r as i,ag as C,u as N}from"./vendor-CDC8xK0g.js";import{p as S}from"./element-plus-P2E9Zrny.js";import{a as v}from"./api-BJHHntS5.js";import{_ as U}from"./index-P0T8_Fg3.js";const E={class:"page"},R={class:"page-header"},q={class:"header-row"},H={class:"list-wrap"},O={key:0,class:"loading"},P={key:1,class:"empty"},X={class:"type-img"},Z=["src"],j={key:1,class:"type-img-placeholder"},z={class:"type-info"},G={class:"type-name"},J={class:"type-brand"},K=["onClick"],Q=["onClick"],W={class:"dialog"},Y={class:"dialog-title"},ee={class:"dialog-body"},se={class:"form-item"},ae={class:"form-item"},le={class:"form-item"},oe={class:"cover-upload-wrap"},te={key:0,class:"cover-preview"},ne=["src"],de={key:1,class:"cover-placeholder"},ie={__name:"VehicleTypes",setup(re){const r=i([]),u=i(!0),c=i(!1),d=i(null),a=i({brand:"",name:"",cover:""}),D=l=>{const s=new FileReader;s.onload=m=>{a.value.cover=m.target.result},s.readAsDataURL(l.raw)},g=localStorage.getItem("storeId")||"demo-store",p=async()=>{u.value=!0;try{const l=await v.list({storeId:g});r.value=l.data.data||l.data||[]}catch{r.value=[]}u.value=!1},V=()=>{d.value=null,a.value={brand:"",name:"",cover:""},c.value=!0},T=l=>{d.value=l._id,a.value={brand:l.brand,name:l.name,cover:l.cover||""},c.value=!0},x=async()=>{if(!a.value.brand||!a.value.name){alert("请填写品牌和名称");return}try{d.value?await v.update(d.value,a.value):await v.create({...a.value,storeId:g}),_(),p()}catch{alert(d.value?"更新失败":"添加失败")}},_=()=>{c.value=!1,d.value=null,a.value={brand:"",name:"",cover:""}},I=async l=>{if(confirm("确定删除该车型?"))try{await v.delete(l),p()}catch{alert("删除失败")}};return A(p),(l,s)=>{const m=C("el-icon"),$=C("el-upload");return t(),n("div",E,[e("div",R,[e("div",q,[e("button",{class:"btn-back",onClick:s[0]||(s[0]=o=>l.$router.back())},[...s[4]||(s[4]=[e("span",{class:"back-arrow"},"",-1)])]),s[5]||(s[5]=e("div",{class:"page-title"},"车型管理",-1)),e("button",{class:"btn-add-inline",onClick:V},"+ 新增")])]),e("div",H,[u.value?(t(),n("div",O,[...s[6]||(s[6]=[e("div",{class:"loading-ring"},null,-1)])])):r.value.length===0?(t(),n("div",P,[...s[7]||(s[7]=[e("div",{class:"empty-icon"},"🚗",-1),e("div",{class:"empty-text"},"暂无车型",-1),e("div",{class:"empty-sub"},"点击下方添加车型",-1)])])):b("",!0),(t(!0),n(B,null,F(r.value,o=>(t(),n("div",{key:o._id,class:"type-card"},[e("div",X,[o.cover?(t(),n("img",{key:0,src:o.cover,alt:"cover"},null,8,Z)):(t(),n("div",j,"🚗"))]),e("div",z,[e("div",G,f(o.name),1),e("div",J,f(o.brand),1)]),e("button",{class:"btn-edit",onClick:M=>T(o)},"编辑",8,K),e("button",{class:"btn-del",onClick:M=>I(o._id)},"删除",8,Q)]))),128))]),c.value?(t(),n("div",{key:0,class:"dialog-overlay",onClick:L(_,["self"])},[e("div",W,[s[13]||(s[13]=e("div",{class:"dialog-handle"},null,-1)),e("div",Y,f(d.value?"编辑车型":"添加车型"),1),e("div",ee,[e("div",se,[s[8]||(s[8]=e("label",null,"品牌",-1)),k(e("input",{"onUpdate:modelValue":s[1]||(s[1]=o=>a.value.brand=o),placeholder:"如:雅迪"},null,512),[[h,a.value.brand]])]),e("div",ae,[s[9]||(s[9]=e("label",null,"车型名称",-1)),k(e("input",{"onUpdate:modelValue":s[2]||(s[2]=o=>a.value.name=o),placeholder:"如TDT1234"},null,512),[[h,a.value.name]])]),e("div",le,[s[12]||(s[12]=e("label",null,"封面图",-1)),e("div",oe,[y($,{class:"cover-uploader","auto-upload":!1,"show-file-list":!1,"on-change":D,accept:"image/*"},{default:w(()=>[a.value.cover?(t(),n("div",te,[e("img",{src:a.value.cover,alt:"封面"},null,8,ne),s[10]||(s[10]=e("div",{class:"cover-mask"},[e("span",null,"点击更换")],-1))])):(t(),n("div",de,[y(m,{class:"cover-icon"},{default:w(()=>[y(N(S))]),_:1}),s[11]||(s[11]=e("span",null,"上传封面",-1))]))]),_:1}),a.value.cover?(t(),n("div",{key:0,class:"cover-remove",onClick:s[3]||(s[3]=o=>a.value.cover="")},"删除图片")):b("",!0)])])]),e("div",{class:"dialog-footer"},[e("button",{class:"btn-cancel",onClick:_},"取消"),e("button",{class:"btn-confirm",onClick:x},"确定")])])])):b("",!0)])}}},_e=U(ie,[["__scopeId","data-v-ade95950"]]);export{_e as default};

View File

@ -1 +0,0 @@
import{_ as B,h as F,o,c as n,a as e,i as b,F as M,j as N,l as S,t as y,w as k,v as h,b as g,d as w,r as i,g as C,e as U,p as E}from"./index-D6NGLDyM.js";import{a as v}from"./api-r_HoetOt.js";import"./index-42ANG6Sg.js";const L={class:"page"},R={class:"page-header"},j={class:"header-row"},q={class:"list-wrap"},z={key:0,class:"loading"},G={key:1,class:"empty"},H={class:"type-img"},J=["src"],K={key:1,class:"type-img-placeholder"},O={class:"type-info"},P={class:"type-name"},Q={class:"type-brand"},W=["onClick"],X=["onClick"],Y={class:"dialog"},Z={class:"dialog-title"},ee={class:"dialog-body"},se={class:"form-item"},ae={class:"form-item"},le={class:"form-item"},te={class:"cover-upload-wrap"},oe={key:0,class:"cover-preview"},ne=["src"],de={key:1,class:"cover-placeholder"},ie={__name:"VehicleTypes",setup(re){const r=i([]),u=i(!0),c=i(!1),d=i(null),a=i({brand:"",name:"",cover:""}),D=l=>{const s=new FileReader;s.onload=m=>{a.value.cover=m.target.result},s.readAsDataURL(l.raw)},f=localStorage.getItem("storeId")||"demo-store",p=async()=>{u.value=!0;try{const l=await v.list({storeId:f});r.value=l.data.data||l.data||[]}catch{r.value=[]}u.value=!1},V=()=>{d.value=null,a.value={brand:"",name:"",cover:""},c.value=!0},T=l=>{d.value=l._id,a.value={brand:l.brand,name:l.name,cover:l.cover||""},c.value=!0},x=async()=>{if(!a.value.brand||!a.value.name){alert("请填写品牌和名称");return}try{d.value?await v.update(d.value,a.value):await v.create({...a.value,storeId:f}),_(),p()}catch{alert(d.value?"更新失败":"添加失败")}},_=()=>{c.value=!1,d.value=null,a.value={brand:"",name:"",cover:""}},I=async l=>{if(confirm("确定删除该车型?"))try{await v.delete(l),p()}catch{alert("删除失败")}};return F(p),(l,s)=>{const m=C("el-icon"),$=C("el-upload");return o(),n("div",L,[e("div",R,[e("div",j,[e("button",{class:"btn-back",onClick:s[0]||(s[0]=t=>l.$router.back())},[...s[4]||(s[4]=[e("span",{class:"back-arrow"},"",-1)])]),s[5]||(s[5]=e("div",{class:"page-title"},"车型管理",-1)),e("button",{class:"btn-add-inline",onClick:V},"+ 新增")])]),e("div",q,[u.value?(o(),n("div",z,[...s[6]||(s[6]=[e("div",{class:"loading-ring"},null,-1)])])):r.value.length===0?(o(),n("div",G,[...s[7]||(s[7]=[e("div",{class:"empty-icon"},"🚗",-1),e("div",{class:"empty-text"},"暂无车型",-1),e("div",{class:"empty-sub"},"点击下方添加车型",-1)])])):b("",!0),(o(!0),n(M,null,N(r.value,t=>(o(),n("div",{key:t._id,class:"type-card"},[e("div",H,[t.cover?(o(),n("img",{key:0,src:t.cover,alt:"cover"},null,8,J)):(o(),n("div",K,"🚗"))]),e("div",O,[e("div",P,y(t.name),1),e("div",Q,y(t.brand),1)]),e("button",{class:"btn-edit",onClick:A=>T(t)},"编辑",8,W),e("button",{class:"btn-del",onClick:A=>I(t._id)},"删除",8,X)]))),128))]),c.value?(o(),n("div",{key:0,class:"dialog-overlay",onClick:S(_,["self"])},[e("div",Y,[s[13]||(s[13]=e("div",{class:"dialog-handle"},null,-1)),e("div",Z,y(d.value?"编辑车型":"添加车型"),1),e("div",ee,[e("div",se,[s[8]||(s[8]=e("label",null,"品牌",-1)),k(e("input",{"onUpdate:modelValue":s[1]||(s[1]=t=>a.value.brand=t),placeholder:"如:雅迪"},null,512),[[h,a.value.brand]])]),e("div",ae,[s[9]||(s[9]=e("label",null,"车型名称",-1)),k(e("input",{"onUpdate:modelValue":s[2]||(s[2]=t=>a.value.name=t),placeholder:"如TDT1234"},null,512),[[h,a.value.name]])]),e("div",le,[s[12]||(s[12]=e("label",null,"封面图",-1)),e("div",te,[g($,{class:"cover-uploader","auto-upload":!1,"show-file-list":!1,"on-change":D,accept:"image/*"},{default:w(()=>[a.value.cover?(o(),n("div",oe,[e("img",{src:a.value.cover,alt:"封面"},null,8,ne),s[10]||(s[10]=e("div",{class:"cover-mask"},[e("span",null,"点击更换")],-1))])):(o(),n("div",de,[g(m,{class:"cover-icon"},{default:w(()=>[g(U(E))]),_:1}),s[11]||(s[11]=e("span",null,"上传封面",-1))]))]),_:1}),a.value.cover?(o(),n("div",{key:0,class:"cover-remove",onClick:s[3]||(s[3]=t=>a.value.cover="")},"删除图片")):b("",!0)])])]),e("div",{class:"dialog-footer"},[e("button",{class:"btn-cancel",onClick:_},"取消"),e("button",{class:"btn-confirm",onClick:x},"确定")])])])):b("",!0)])}}},pe=B(ie,[["__scopeId","data-v-ade95950"]]);export{pe as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/assets/Vehicles-DhoSfwcF.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/Vehicles-cwJGe09f.css vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/assets/api-BJHHntS5.js vendored Normal file
View File

@ -0,0 +1 @@
import{az as o}from"./vendor-CDC8xK0g.js";const t=o.create({baseURL:"/api",timeout:1e4});t.interceptors.request.use(e=>{const s=localStorage.getItem("token");return s&&(e.headers.Authorization=`Bearer ${s}`),e});t.interceptors.response.use(e=>e,e=>(e.response?.status===401&&(localStorage.removeItem("token"),localStorage.removeItem("storeInfo"),localStorage.removeItem("storeId"),window.location.href="/store/login"),Promise.reject(e)));const a={getStore:e=>t.get(`/stores/${e}`),updateStore:(e,s)=>t.put(`/stores/${e}`,s),getMyStore:()=>t.get("/stores/me")},i={list:e=>t.get("/vehicle-types",{params:e}),create:e=>t.post("/vehicle-types",e),update:(e,s)=>t.put(`/vehicle-types/${e}`,s),delete:e=>t.delete(`/vehicle-types/${e}`)},l={list:e=>t.get("/vehicles",{params:e}),create:e=>t.post("/vehicles",e),update:(e,s)=>t.put(`/vehicles/${e}`,s),delete:e=>t.delete(`/vehicles/${e}`)},p={list:e=>t.get("/orders",{params:e}),detail:e=>t.get(`/orders/${e}`),create:e=>t.post("/orders",e),update:(e,s)=>t.put(`/orders/${e}`,s),delete:e=>t.delete(`/orders/${e}`)};export{i as a,p as o,a as s,l as v};

View File

@ -1 +0,0 @@
import{a as o}from"./index-42ANG6Sg.js";const t=o.create({baseURL:"/api",timeout:1e4});t.interceptors.request.use(e=>{const s=localStorage.getItem("token");return s&&(e.headers.Authorization=`Bearer ${s}`),e});t.interceptors.response.use(e=>e,e=>(e.response?.status===401&&(localStorage.removeItem("token"),localStorage.removeItem("storeInfo"),localStorage.removeItem("storeId"),window.location.href="/store/login"),Promise.reject(e)));const a={getStore:e=>t.get(`/stores/${e}`),updateStore:(e,s)=>t.put(`/stores/${e}`,s),getMyStore:()=>t.get("/stores/me")},i={list:e=>t.get("/vehicle-types",{params:e}),create:e=>t.post("/vehicle-types",e),update:(e,s)=>t.put(`/vehicle-types/${e}`,s),delete:e=>t.delete(`/vehicle-types/${e}`)},l={list:e=>t.get("/vehicles",{params:e}),create:e=>t.post("/vehicles",e),update:(e,s)=>t.put(`/vehicles/${e}`,s),delete:e=>t.delete(`/vehicles/${e}`)},p={list:e=>t.get("/orders",{params:e}),detail:e=>t.get(`/orders/${e}`),create:e=>t.post("/orders",e),update:(e,s)=>t.put(`/orders/${e}`,s),delete:e=>t.delete(`/orders/${e}`)};export{i as a,p as o,a as s,l as v};

50
dist/assets/element-plus-P2E9Zrny.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
dist/assets/index-P0T8_Fg3.js vendored Normal file
View File

@ -0,0 +1,2 @@
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Login-Ndjq7-xw.js","assets/vendor-CDC8xK0g.js","assets/element-plus-P2E9Zrny.js","assets/Login-CN8AOf7M.css","assets/TabLayout-DLDQF38R.js","assets/TabLayout-h1nUEoAe.css","assets/Home-B2HfCXqS.js","assets/api-BJHHntS5.js","assets/Home-BYCJb_ST.css","assets/VehicleTypes-5V1vH90T.js","assets/VehicleTypes-CQjOT9Nd.css","assets/Vehicles-DhoSfwcF.js","assets/Vehicles-cwJGe09f.css","assets/Orders-D_p5d4Rr.js","assets/Orders-ZVRA7m-n.css","assets/Mine-Hteig4nH.js","assets/Mine-Cn1zj1gK.css"])))=>i.map(i=>d[i]);
import{H as y,I as g,ag as P,ax as O,ay as L,au as A}from"./vendor-CDC8xK0g.js";import{E as I,e as b}from"./element-plus-P2E9Zrny.js";(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const e of document.querySelectorAll('link[rel="modulepreload"]'))a(e);new MutationObserver(e=>{for(const o of e)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&a(s)}).observe(document,{childList:!0,subtree:!0});function t(e){const o={};return e.integrity&&(o.integrity=e.integrity),e.referrerPolicy&&(o.referrerPolicy=e.referrerPolicy),e.crossOrigin==="use-credentials"?o.credentials="include":e.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(e){if(e.ep)return;e.ep=!0;const o=t(e);fetch(e.href,o)}})();const R=(r,n)=>{const t=r.__vccOpts||r;for(const[a,e]of n)t[a]=e;return t},V={};function w(r,n){const t=P("router-view");return y(),g(t)}const T=R(V,[["render",w]]),S="modulepreload",D=function(r){return"/"+r},d={},u=function(n,t,a){let e=Promise.resolve();if(t&&t.length>0){let h=function(c){return Promise.all(c.map(m=>Promise.resolve(m).then(p=>({status:"fulfilled",value:p}),p=>({status:"rejected",reason:p}))))};document.getElementsByTagName("link");const s=document.querySelector("meta[property=csp-nonce]"),i=s?.nonce||s?.getAttribute("nonce");e=h(t.map(c=>{if(c=D(c),c in d)return;d[c]=!0;const m=c.endsWith(".css"),p=m?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${p}`))return;const l=document.createElement("link");if(l.rel=m?"stylesheet":S,m||(l.as="script"),l.crossOrigin="",l.href=c,i&&l.setAttribute("nonce",i),document.head.appendChild(l),m)return new Promise((E,v)=>{l.addEventListener("load",E),l.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(s){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=s,window.dispatchEvent(i),!i.defaultPrevented)throw s}return e.then(s=>{for(const i of s||[])i.status==="rejected"&&o(i.reason);return n().catch(o)})},N=[{path:"/login",name:"Login",component:()=>u(()=>import("./Login-Ndjq7-xw.js"),__vite__mapDeps([0,1,2,3]))},{path:"/",component:()=>u(()=>import("./TabLayout-DLDQF38R.js"),__vite__mapDeps([4,1,5])),meta:{requiresAuth:!0},children:[{path:"",name:"Home",component:()=>u(()=>import("./Home-B2HfCXqS.js"),__vite__mapDeps([6,7,1,2,8]))},{path:"vehicle-types",name:"VehicleTypes",component:()=>u(()=>import("./VehicleTypes-5V1vH90T.js"),__vite__mapDeps([9,1,2,7,10]))},{path:"vehicles",name:"Vehicles",component:()=>u(()=>import("./Vehicles-DhoSfwcF.js"),__vite__mapDeps([11,1,7,2,12]))},{path:"orders",name:"Orders",component:()=>u(()=>import("./Orders-D_p5d4Rr.js"),__vite__mapDeps([13,1,7,2,14]))},{path:"mine",name:"Mine",component:()=>u(()=>import("./Mine-Hteig4nH.js"),__vite__mapDeps([15,1,7,2,16]))}]}],_=O({history:L("/store/"),routes:N});_.beforeEach((r,n,t)=>{const a=localStorage.getItem("token");r.meta.requiresAuth&&!a?t("/login"):r.path==="/login"&&a?t("/"):t()});const f=A(T);for(const[r,n]of Object.entries(I))f.component(r,n);f.use(b);f.use(_);f.mount("#app");export{R as _};

6
dist/assets/vendor-CDC8xK0g.js vendored Normal file

File diff suppressed because one or more lines are too long

4
dist/index.html vendored
View File

@ -6,7 +6,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="theme-color" content="#FF6B00" /> <meta name="theme-color" content="#FF6B00" />
<title>门店端 - 租车系统</title> <title>门店端 - 租车系统</title>
<script type="module" crossorigin src="/assets/index-D6NGLDyM.js"></script> <script type="module" crossorigin src="/assets/index-P0T8_Fg3.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-CDC8xK0g.js">
<link rel="modulepreload" crossorigin href="/assets/element-plus-P2E9Zrny.js">
<link rel="stylesheet" crossorigin href="/assets/index-DYAfUsQo.css"> <link rel="stylesheet" crossorigin href="/assets/index-DYAfUsQo.css">
</head> </head>
<body> <body>

View File

@ -48,7 +48,9 @@ const loginForm = ref({
}) })
const handleLogin = async () => { const handleLogin = async () => {
if (!loginForm.value.username || !loginForm.value.password) { const username = loginForm.value.username.trim()
const password = loginForm.value.password.trim()
if (!username || !password) {
alert('请输入账号和密码') alert('请输入账号和密码')
return return
} }
@ -56,8 +58,8 @@ const handleLogin = async () => {
loading.value = true loading.value = true
try { try {
const res = await axios.post('/api/store-auth/login', { const res = await axios.post('/api/store-auth/login', {
username: loginForm.value.username, username,
password: loginForm.value.password password
}) })
if (res.data.success && res.data.data.token) { if (res.data.success && res.data.data.token) {