diff --git a/dist/assets/Home-B6h_k9SP.js b/dist/assets/Home-B6h_k9SP.js deleted file mode 100644 index d3cf304..0000000 --- a/dist/assets/Home-B6h_k9SP.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as I,r as g,x as O,o as v,c as p,a as e,b as o,w as i,t as n,F as P,g as S,y as k,z as T,d as f,f as d,e as m,q as B,A as M,B as q,C as A,E as $}from"./index-BjjMa8ds.js";import{r as C}from"./request-DB47Z7vM.js";const E={class:"home-page"},H={class:"header"},F={class:"user-info"},L={class:"info"},J={class:"wallet-value"},R={class:"banner"},j={class:"banner-content"},G={class:"section"},K={class:"section-header"},Q={class:"vehicle-list"},U=["onClick"],W={class:"vehicle-info"},X={class:"vehicle-desc"},Y={class:"vehicle-price"},Z={class:"price"},x={class:"quick-actions"},ss={key:0,class:"section"},es={class:"order-header"},ts={class:"order-id"},os={class:"order-body"},ls={class:"vehicle-mini"},ns={class:"model"},is={class:"order-detail"},rs={class:"amount"},as={class:"order-footer"},ds={__name:"Home",setup(us){const u=g(JSON.parse(localStorage.getItem("customer_info")||"{}")),_=g([]),r=g(null),w=t=>{const s=t.purchasePrice||3e3;return Math.round(s/100)},h=t=>t?new Date(t).toLocaleDateString("zh-CN"):"-",z=async()=>{try{const t=await C.get("/vehicles");t.success&&(_.value=t.data.filter(s=>s.status==="空闲").slice(0,3))}catch{_.value=[{_id:"1",model:"黑骑士",color:"黑色",batteryType:"锂电池",purchasePrice:3500,status:"空闲"},{_id:"2",model:"高端豪车",color:"红色",batteryType:"锂电池",purchasePrice:8e3,status:"空闲"},{_id:"3",model:"电动车",color:"蓝色",batteryType:"铅酸电池",purchasePrice:2800,status:"空闲"}]}},D=async()=>{try{const t=localStorage.getItem("customer_id");if(!t)return;const s=await C.get("/orders");if(s.success){const y=s.data.find(a=>a.customer?._id===t&&(a.status==="进行中"||a.status==="待支付"));r.value=y||null}}catch{console.log("获取订单失败")}},N=()=>{$.info("续租功能开发中")},V=()=>{$.info("还车功能开发中")};return O(()=>{z(),D()}),(t,s)=>{const y=f("el-avatar"),a=f("el-button"),b=f("el-tag"),c=f("el-icon");return v(),p("div",E,[e("div",H,[e("div",F,[o(y,{size:48,style:{background:"#fff",color:"#07c160","font-weight":"bold"}},{default:i(()=>[d(n(u.value.name?.charAt(0)||"租"),1)]),_:1}),e("div",L,[e("h3",null,n(u.value.name||"loading"),1),e("p",null,"信用分:"+n(u.value.creditScore||100),1)])]),e("div",{class:"wallet",onClick:s[0]||(s[0]=l=>t.$router.push("/profile"))},[s[8]||(s[8]=e("span",{class:"wallet-label"},"余额",-1)),e("span",J,"¥"+n(u.value.balance||0),1)])]),e("div",R,[e("div",j,[s[10]||(s[10]=e("h2",null,"快捷租车",-1)),s[11]||(s[11]=e("p",null,"随时随地,租你想租",-1)),o(a,{type:"warning",round:"",onClick:s[1]||(s[1]=l=>t.$router.push("/vehicles"))},{default:i(()=>[...s[9]||(s[9]=[d(" 立即租车 ",-1)])]),_:1})]),s[12]||(s[12]=e("div",{class:"banner-icon"},"🛵",-1))]),e("div",G,[e("div",K,[s[14]||(s[14]=e("h3",null,"热门车型",-1)),o(a,{link:"",type:"primary",onClick:s[2]||(s[2]=l=>t.$router.push("/vehicles"))},{default:i(()=>[...s[13]||(s[13]=[d("查看更多",-1)])]),_:1})]),e("div",Q,[(v(!0),p(P,null,S(_.value,l=>(v(),p("div",{key:l._id,class:"vehicle-card",onClick:cs=>t.$router.push(`/vehicle/${l._id}`)},[s[16]||(s[16]=e("div",{class:"vehicle-img"},"🛵",-1)),e("div",W,[e("h4",null,n(l.model),1),e("p",X,n(l.color)+" · "+n(l.batteryType),1),e("div",Y,[e("span",Z,"¥"+n(w(l))+"/天",1),o(b,{size:"small",type:"success"},{default:i(()=>[...s[15]||(s[15]=[d("空闲",-1)])]),_:1})])])],8,U))),128))])]),e("div",x,[e("div",{class:"action-item",onClick:s[3]||(s[3]=l=>t.$router.push("/orders"))},[o(c,{size:28,style:{color:"#07c160"}},{default:i(()=>[o(m(B))]),_:1}),s[17]||(s[17]=e("span",null,"我的订单",-1))]),e("div",{class:"action-item",onClick:s[4]||(s[4]=l=>t.$router.push("/profile"))},[o(c,{size:28,style:{color:"#1890ff"}},{default:i(()=>[o(m(M))]),_:1}),s[18]||(s[18]=e("span",null,"钱包",-1))]),e("div",{class:"action-item",onClick:s[5]||(s[5]=l=>t.$router.push("/profile"))},[o(c,{size:28,style:{color:"#ff6b35"}},{default:i(()=>[o(m(q))]),_:1}),s[19]||(s[19]=e("span",null,"还车点",-1))]),e("div",{class:"action-item",onClick:s[6]||(s[6]=l=>t.$router.push("/profile"))},[o(c,{size:28,style:{color:"#722ed1"}},{default:i(()=>[o(m(A))]),_:1}),s[20]||(s[20]=e("span",null,"客服",-1))])]),r.value?(v(),p("div",ss,[s[24]||(s[24]=e("div",{class:"section-header"},[e("h3",null,"当前租赁")],-1)),e("div",{class:"order-card active",onClick:s[7]||(s[7]=l=>t.$router.push("/orders"))},[e("div",es,[e("span",ts,"订单号:"+n(r.value.orderNumber),1),o(b,{type:"warning"},{default:i(()=>[d(n(r.value.status),1)]),_:1})]),e("div",os,[e("div",ls,[s[21]||(s[21]=e("span",{class:"icon"},"🛵",-1)),e("span",ns,n(r.value.vehicle?.model||"电动车"),1)]),e("div",is,[e("p",null,"租车时间:"+n(h(r.value.startDate)),1),e("p",null,"预计还车:"+n(h(r.value.endDate)),1),e("p",rs,"应付金额:¥"+n(r.value.totalAmount),1)])]),e("div",as,[o(a,{type:"primary",size:"small",onClick:k(N,["stop"])},{default:i(()=>[...s[22]||(s[22]=[d("续租",-1)])]),_:1}),o(a,{size:"small",onClick:k(V,["stop"])},{default:i(()=>[...s[23]||(s[23]=[d("还车",-1)])]),_:1})])])])):T("",!0)])}}},fs=I(ds,[["__scopeId","data-v-7557b155"]]);export{fs as default}; diff --git a/dist/assets/Home-BZcX1zAd.js b/dist/assets/Home-BZcX1zAd.js new file mode 100644 index 0000000..155f3f5 --- /dev/null +++ b/dist/assets/Home-BZcX1zAd.js @@ -0,0 +1 @@ +import{_ as C,r as m,i as B,o as c,c as p,a as t,t as i,b as a,w as d,F as E,j as z,k as V,m as f,p as N,d as g,g as u,E as x}from"./index-CZe38Ow-.js";import{r as k}from"./request-DftRczcY.js";const D={class:"home-page"},M={class:"header"},j={class:"user-info"},S={style:{margin:"0"}},I={style:{margin:"2px 0 0","font-size":"12px",color:"#B2B2B2"}},O={class:"wallet-value"},P={class:"banner"},T={class:"banner-content"},A={class:"section"},H={class:"section-header"},L={class:"vehicle-list"},q=["onClick"],J={class:"vehicle-info"},R={class:"vehicle-desc"},G={class:"vehicle-price"},K={class:"price"},Q={class:"quick-actions"},U={key:0,class:"section"},W={class:"order-header"},X={class:"order-id"},Y={class:"order-body"},Z={class:"vehicle-mini"},ee={class:"model"},te={class:"order-detail"},se={class:"amount"},oe={class:"order-footer"},ie={__name:"Home",setup(ne){const v=m(JSON.parse(localStorage.getItem("customer_info")||"{}")),h=m([]),n=m(null),w=s=>{const e=s.purchasePrice||3e3;return Math.round(e/100)},y=s=>s?new Date(s).toLocaleDateString("zh-CN"):"-",b=async()=>{try{const s=await k.get("/vehicles");s.success&&(h.value=s.data.filter(e=>e.status==="空闲").slice(0,3))}catch{h.value=[{_id:"1",model:"黑骑士",color:"黑色",batteryType:"锂电池",purchasePrice:3500,status:"空闲"},{_id:"2",model:"高端豪车",color:"红色",batteryType:"锂电池",purchasePrice:8e3,status:"空闲"},{_id:"3",model:"电动车",color:"蓝色",batteryType:"铅酸电池",purchasePrice:2800,status:"空闲"}]}},_=async()=>{try{const s=localStorage.getItem("customer_id");if(!s)return;const e=await k.get("/orders");if(e.success){const r=e.data.find(l=>l.customer?._id===s&&(l.status==="进行中"||l.status==="待支付"));n.value=r||null}}catch{console.log("获取订单失败")}},F=()=>{x.info("续租功能开发中")},$=()=>{x.info("还车功能开发中")};return B(()=>{b(),_()}),(s,e)=>{const r=g("el-button"),l=g("el-tag");return c(),p("div",D,[t("div",M,[t("div",j,[e[8]||(e[8]=t("div",{style:{width:"44px",height:"44px",background:"#E8F8EE","border-radius":"22px",display:"flex","align-items":"center","justify-content":"center","font-size":"20px"}}," 🛵 ",-1)),t("div",null,[t("h3",S,i(v.value.name||"loading"),1),t("p",I,"信用分:"+i(v.value.creditScore||100),1)])]),t("div",{class:"wallet",onClick:e[0]||(e[0]=o=>s.$router.push("/profile"))},[e[9]||(e[9]=t("span",{class:"wallet-label"},"余额",-1)),t("span",O,"¥"+i(v.value.balance||0),1)])]),t("div",P,[t("div",T,[e[11]||(e[11]=t("h2",null,"快捷租车",-1)),e[12]||(e[12]=t("p",null,"随时随地,租你想租",-1)),a(r,{type:"primary",round:"",onClick:e[1]||(e[1]=o=>s.$router.push("/vehicles")),style:{background:"#FF6B00","border-color":"#FF6B00","border-radius":"20px",padding:"6px 20px","font-size":"13px"}},{default:d(()=>[...e[10]||(e[10]=[u(" 立即租车 ",-1)])]),_:1})]),e[13]||(e[13]=t("div",{class:"banner-icon"},"🛵",-1))]),t("div",A,[t("div",H,[e[15]||(e[15]=t("h3",null,"热门车型",-1)),a(r,{link:"",type:"primary",onClick:e[2]||(e[2]=o=>s.$router.push("/vehicles"))},{default:d(()=>[...e[14]||(e[14]=[u("查看更多",-1)])]),_:1})]),t("div",L,[(c(!0),p(E,null,z(h.value,o=>(c(),p("div",{key:o._id,class:"vehicle-card",onClick:re=>s.$router.push(`/vehicle/${o._id}`)},[e[17]||(e[17]=t("div",{class:"vehicle-img"},"🛵",-1)),t("div",J,[t("h4",null,i(o.model),1),t("p",R,i(o.color)+" · "+i(o.batteryType),1),t("div",G,[t("span",K,"¥"+i(w(o))+"/天",1),a(l,{size:"small",type:"success"},{default:d(()=>[...e[16]||(e[16]=[u("空闲",-1)])]),_:1})])])],8,q))),128))])]),t("div",Q,[t("div",{class:"action-item",onClick:e[3]||(e[3]=o=>s.$router.push("/orders"))},[...e[18]||(e[18]=[V('
我的订单',2)])]),t("div",{class:"action-item",onClick:e[4]||(e[4]=o=>s.$router.push("/profile"))},[...e[19]||(e[19]=[t("div",{style:{width:"40px",height:"40px",background:"#FFF4E0","border-radius":"12px",display:"flex","align-items":"center","justify-content":"center"}},[t("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#FF8C00","stroke-width":"1.8"},[t("rect",{x:"1",y:"4",width:"22",height:"16",rx:"2",ry:"2"}),t("line",{x1:"1",y1:"10",x2:"23",y2:"10"})])],-1),t("span",null,"钱包",-1)])]),t("div",{class:"action-item",onClick:e[5]||(e[5]=o=>s.$router.push("/profile"))},[...e[20]||(e[20]=[t("div",{style:{width:"40px",height:"40px",background:"#E8F0FF","border-radius":"12px",display:"flex","align-items":"center","justify-content":"center"}},[t("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#576BFF","stroke-width":"1.8"},[t("path",{d:"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z"}),t("circle",{cx:"12",cy:"10",r:"3"})])],-1),t("span",null,"还车点",-1)])]),t("div",{class:"action-item",onClick:e[6]||(e[6]=o=>s.$router.push("/profile"))},[...e[21]||(e[21]=[t("div",{style:{width:"40px",height:"40px",background:"#F0F0F0","border-radius":"12px",display:"flex","align-items":"center","justify-content":"center"}},[t("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"#999","stroke-width":"1.8"},[t("path",{d:"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 9.81a19.79 19.79 0 01-3.07-8.63A2 2 0 012.18 1h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L6.91 8.91a16 16 0 006.18 6.18l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z"})])],-1),t("span",null,"客服",-1)])])]),n.value?(c(),p("div",U,[e[25]||(e[25]=t("div",{class:"section-header"},[t("h3",null,"当前租赁")],-1)),t("div",{class:"order-card active",onClick:e[7]||(e[7]=o=>s.$router.push("/orders"))},[t("div",W,[t("span",X,"订单号:"+i(n.value.orderNumber),1),a(l,{type:"warning"},{default:d(()=>[u(i(n.value.status),1)]),_:1})]),t("div",Y,[t("div",Z,[e[22]||(e[22]=t("span",{class:"icon"},"🛵",-1)),t("span",ee,i(n.value.vehicle?.model||"电动车"),1)]),t("div",te,[t("p",null,"租车时间:"+i(y(n.value.startDate)),1),t("p",null,"预计还车:"+i(y(n.value.endDate)),1),t("p",se,"应付金额:¥"+i(n.value.totalAmount),1)])]),t("div",oe,[a(r,{type:"primary",size:"small",onClick:f(F,["stop"])},{default:d(()=>[...e[23]||(e[23]=[u("续租",-1)])]),_:1}),a(r,{size:"small",onClick:f($,["stop"])},{default:d(()=>[...e[24]||(e[24]=[u("还车",-1)])]),_:1})])])])):N("",!0)])}}},de=C(ie,[["__scopeId","data-v-ac103de0"]]);export{de as default}; diff --git a/dist/assets/Home-CzqWt0ff.css b/dist/assets/Home-CzqWt0ff.css new file mode 100644 index 0000000..b118514 --- /dev/null +++ b/dist/assets/Home-CzqWt0ff.css @@ -0,0 +1 @@ +.home-page[data-v-ac103de0]{min-height:100%;background:#f7f7f7;padding-bottom:20px}.header[data-v-ac103de0]{background:#fff;padding:16px 16px 14px;display:flex;justify-content:space-between;align-items:center;border-bottom:.5px solid rgba(0,0,0,.06)}.user-info[data-v-ac103de0]{display:flex;align-items:center;gap:10px}.user-info h3[data-v-ac103de0]{margin:0 0 2px;font-size:17px;font-weight:600;color:#1a1a1a}.user-info p[data-v-ac103de0]{margin:0;font-size:12px;color:#b2b2b2}.wallet[data-v-ac103de0]{background:#e8f8ee;padding:6px 14px;border-radius:16px;text-align:center}.wallet-label[data-v-ac103de0]{display:block;font-size:10px;color:#ff6b00}.wallet-value[data-v-ac103de0]{font-size:16px;font-weight:600;color:#ff6b00}.banner[data-v-ac103de0]{background:#fff;margin:12px;border-radius:16px;padding:20px;display:flex;justify-content:space-between;align-items:center}.banner h2[data-v-ac103de0]{font-size:20px;margin:0 0 6px;color:#1a1a1a;font-weight:600}.banner p[data-v-ac103de0]{font-size:13px;color:#b2b2b2;margin:0 0 12px}.banner-icon[data-v-ac103de0]{font-size:52px}.section[data-v-ac103de0]{margin:0 12px 12px;background:#fff;border-radius:16px;overflow:hidden}.section-header[data-v-ac103de0]{display:flex;justify-content:space-between;align-items:center;padding:16px 16px 12px}.section-header h3[data-v-ac103de0]{font-size:16px;font-weight:600;color:#1a1a1a;margin:0}.vehicle-list[data-v-ac103de0]{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#f7f7f7}.vehicle-card[data-v-ac103de0]{background:#fff;padding:14px 12px 12px;cursor:pointer}.vehicle-img[data-v-ac103de0]{font-size:44px;text-align:center;padding:8px 0}.vehicle-info h4[data-v-ac103de0]{font-size:15px;margin:0 0 4px;color:#1a1a1a;font-weight:500}.vehicle-desc[data-v-ac103de0]{font-size:11px;color:#b2b2b2;margin:0 0 8px}.vehicle-price[data-v-ac103de0]{display:flex;justify-content:space-between;align-items:center}.price[data-v-ac103de0]{color:#ff6b00;font-weight:600;font-size:15px}.quick-actions[data-v-ac103de0]{display:flex;background:#fff;margin:0 12px 12px;border-radius:16px;padding:14px 8px}.action-item[data-v-ac103de0]{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.action-item span[data-v-ac103de0]{font-size:10px;color:#b2b2b2}.order-card[data-v-ac103de0]{background:#fff;border-radius:16px;padding:16px;cursor:pointer;margin:0 12px 12px}.order-card.active[data-v-ac103de0]{border-left:3px solid #FF6B00}.order-header[data-v-ac103de0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-id[data-v-ac103de0]{font-size:12px;color:#b2b2b2}.order-body[data-v-ac103de0]{display:flex;gap:12px;margin-bottom:12px}.vehicle-mini[data-v-ac103de0]{display:flex;flex-direction:column;align-items:center;gap:4px}.vehicle-mini .icon[data-v-ac103de0]{font-size:32px}.vehicle-mini .model[data-v-ac103de0]{font-size:11px;color:#b2b2b2}.order-detail[data-v-ac103de0]{flex:1}.order-detail p[data-v-ac103de0]{margin:0 0 4px;font-size:13px;color:#1a1a1a}.order-detail .amount[data-v-ac103de0]{color:#ff6b00;font-weight:600}.order-footer[data-v-ac103de0]{display:flex;gap:8px;justify-content:flex-end} diff --git a/dist/assets/Home-Dlca-p1x.css b/dist/assets/Home-Dlca-p1x.css deleted file mode 100644 index 5820026..0000000 --- a/dist/assets/Home-Dlca-p1x.css +++ /dev/null @@ -1 +0,0 @@ -.home-page[data-v-7557b155]{min-height:100%;background:#f5f5f5;padding-bottom:20px}.header[data-v-7557b155]{background:linear-gradient(135deg,#07c160,#06ad56);padding:20px;color:#fff;display:flex;justify-content:space-between;align-items:center}.user-info[data-v-7557b155]{display:flex;align-items:center;gap:12px}.user-info h3[data-v-7557b155]{margin:0 0 4px;font-size:18px}.user-info p[data-v-7557b155]{margin:0;font-size:14px;opacity:.9}.wallet[data-v-7557b155]{background:#fff3;padding:8px 16px;border-radius:20px;text-align:center}.wallet-label[data-v-7557b155]{display:block;font-size:12px;opacity:.9}.wallet-value[data-v-7557b155]{font-size:18px;font-weight:700}.banner[data-v-7557b155]{background:linear-gradient(135deg,#ff6b35,#ff8f6b);margin:12px;border-radius:16px;padding:20px;color:#fff;display:flex;justify-content:space-between;align-items:center}.banner h2[data-v-7557b155]{font-size:22px;margin:0 0 8px}.banner p[data-v-7557b155]{font-size:14px;opacity:.9;margin:0 0 12px}.banner-icon[data-v-7557b155]{font-size:60px}.section[data-v-7557b155]{margin:16px 12px}.section-header[data-v-7557b155]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-header h3[data-v-7557b155]{font-size:18px;color:#333;margin:0}.vehicle-list[data-v-7557b155]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.vehicle-card[data-v-7557b155]{background:#fff;border-radius:12px;padding:12px;cursor:pointer;transition:transform .2s}.vehicle-card[data-v-7557b155]:active{transform:scale(.98)}.vehicle-img[data-v-7557b155]{font-size:48px;text-align:center;padding:10px 0}.vehicle-info h4[data-v-7557b155]{font-size:16px;margin:0 0 4px;color:#333}.vehicle-desc[data-v-7557b155]{font-size:12px;color:#999;margin:0 0 8px}.vehicle-price[data-v-7557b155]{display:flex;justify-content:space-between;align-items:center}.price[data-v-7557b155]{color:#ff6b35;font-weight:700;font-size:16px}.quick-actions[data-v-7557b155]{display:flex;background:#fff;margin:16px 12px;border-radius:12px;padding:16px}.action-item[data-v-7557b155]{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.action-item span[data-v-7557b155]{font-size:12px;color:#666}.order-card[data-v-7557b155]{background:#fff;border-radius:12px;padding:16px;cursor:pointer}.order-card.active[data-v-7557b155]{border-left:4px solid #07c160}.order-header[data-v-7557b155]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-id[data-v-7557b155]{font-size:13px;color:#666}.order-body[data-v-7557b155]{display:flex;gap:12px;margin-bottom:12px}.vehicle-mini[data-v-7557b155]{display:flex;flex-direction:column;align-items:center;gap:4px}.vehicle-mini .icon[data-v-7557b155]{font-size:32px}.vehicle-mini .model[data-v-7557b155]{font-size:12px;color:#666}.order-detail[data-v-7557b155]{flex:1}.order-detail p[data-v-7557b155]{margin:0 0 4px;font-size:13px;color:#333}.order-detail .amount[data-v-7557b155]{color:#ff6b35;font-weight:700}.order-footer[data-v-7557b155]{display:flex;gap:8px;justify-content:flex-end} diff --git a/dist/assets/Login-BWfF-vED.css b/dist/assets/Login-BWfF-vED.css deleted file mode 100644 index 5f32242..0000000 --- a/dist/assets/Login-BWfF-vED.css +++ /dev/null @@ -1 +0,0 @@ -.login-page[data-v-b5e11a1f]{min-height:100vh;background:linear-gradient(135deg,#07c160,#06ad56);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.login-header[data-v-b5e11a1f]{text-align:center;color:#fff;margin-bottom:40px}.logo[data-v-b5e11a1f]{font-size:64px;margin-bottom:10px}.login-header h1[data-v-b5e11a1f]{font-size:28px;margin-bottom:8px}.login-header p[data-v-b5e11a1f]{font-size:14px;opacity:.9}.login-form[data-v-b5e11a1f]{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:30px;box-shadow:0 10px 40px #0003}.login-tabs[data-v-b5e11a1f] .el-tabs__header{margin-bottom:20px}.login-tabs[data-v-b5e11a1f] .el-tabs__item{font-size:16px}.login-btn[data-v-b5e11a1f]{width:100%;background:#07c160;border-color:#07c160;font-size:18px;margin-top:20px}.demo-hint[data-v-b5e11a1f]{text-align:center;color:#999;font-size:12px;margin-top:20px} diff --git a/dist/assets/Login-Bf1DC_to.css b/dist/assets/Login-Bf1DC_to.css new file mode 100644 index 0000000..27724e1 --- /dev/null +++ b/dist/assets/Login-Bf1DC_to.css @@ -0,0 +1 @@ +.login-page[data-v-73cdf8aa]{min-height:100vh;background:#f7f7f7;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px}.login-header[data-v-73cdf8aa]{text-align:center;color:#1a1a1a;margin-bottom:40px}.logo[data-v-73cdf8aa]{font-size:64px;margin-bottom:10px}.login-header h1[data-v-73cdf8aa]{font-size:28px;margin-bottom:8px;font-weight:600;color:#1a1a1a}.login-header p[data-v-73cdf8aa]{font-size:13px;color:#b2b2b2}.login-form[data-v-73cdf8aa]{width:100%;max-width:360px;background:#fff;border-radius:16px;padding:30px;box-shadow:0 2px 12px #0000000f}.login-form[data-v-73cdf8aa] .el-input__wrapper{border-radius:12px}.login-btn[data-v-73cdf8aa]{width:100%;background:#ff6b00;border-color:#ff6b00;font-size:18px;border-radius:12px;margin-top:20px;height:48px}.demo-hint[data-v-73cdf8aa]{text-align:center;color:#b2b2b2;font-size:12px;margin-top:20px} diff --git a/dist/assets/Login-D-iGpTsV.js b/dist/assets/Login-D-iGpTsV.js deleted file mode 100644 index 0c13390..0000000 --- a/dist/assets/Login-D-iGpTsV.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as N,o as T,c as $,a as n,b as o,w as l,r as u,d as i,u as E,e as _,p as y,l as k,f as S,t as B,E as c,n as I}from"./index-BjjMa8ds.js";import{r as R}from"./request-DB47Z7vM.js";const D={class:"login-page"},L={class:"login-form"},J={__name:"Login",setup(O){const w=E(),g=u("password"),v=u(!1),d=u(0),h=u(),b=u(),p=u({phone:"13800138000",code:"123456"}),s=u({phone:"13800138000",password:"123456"}),C={phone:[{required:!0,message:"请输入手机号",trigger:"blur"}],code:[{required:!0,message:"请输入验证码",trigger:"blur"}]},F={phone:[{required:!0,message:"请输入手机号",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},U=()=>{if(!p.value.phone){c.warning("请输入手机号");return}c.success("验证码已发送"),d.value=60;const m=setInterval(()=>{d.value--,d.value<=0&&clearInterval(m)},1e3)},q=async()=>{try{await(g.value==="phone"?h.value:b.value).validate(),v.value=!0;const e=await R.post("/customers/login",{phone:s.value.phone,password:s.value.password}).catch(async()=>{const a=await R.get("/customers");if(a.success&&a.data){const t=a.data.find(f=>f.phone===s.value.phone);if(t)return{success:!0,data:t}}throw new Error("登录失败")});if(e.success&&e.data){const a=e.data,t=btoa(`${a._id}:${Date.now()}`);localStorage.setItem("customer_token",t),localStorage.setItem("customer_info",JSON.stringify(a)),localStorage.setItem("customer_id",a._id),c.success("登录成功"),await I(),w.push("/")}else c.error(e.message||"登录失败")}catch{if(s.value.phone==="13800138000"&&s.value.password==="123456"){const e={_id:"69be3bd27d8c99477626018b",customerId:"CUST001",name:"张三",phone:"13800138000",balance:500,totalRentals:5,creditScore:100},a=btoa(`${e._id}:${Date.now()}`);localStorage.setItem("customer_token",a),localStorage.setItem("customer_info",JSON.stringify(e)),localStorage.setItem("customer_id",e._id),c.success("登录成功(演示模式)"),await I(),w.push("/")}else c.error("手机号或密码错误")}finally{v.value=!1}};return(m,e)=>{const a=i("el-input"),t=i("el-form-item"),f=i("el-button"),V=i("el-form"),x=i("el-tab-pane"),z=i("el-tabs");return T(),$("div",D,[e[7]||(e[7]=n("div",{class:"login-header"},[n("div",{class:"logo"},"🛵"),n("h1",null,"租车用户端"),n("p",null,"电动车租赁平台")],-1)),n("div",L,[o(z,{modelValue:g.value,"onUpdate:modelValue":e[4]||(e[4]=r=>g.value=r),class:"login-tabs"},{default:l(()=>[o(x,{label:"手机号登录",name:"phone"},{default:l(()=>[o(V,{ref_key:"phoneFormRef",ref:h,model:p.value,rules:C},{default:l(()=>[o(t,{prop:"phone"},{default:l(()=>[o(a,{modelValue:p.value.phone,"onUpdate:modelValue":e[0]||(e[0]=r=>p.value.phone=r),placeholder:"请输入手机号",size:"large","prefix-icon":_(y)},null,8,["modelValue","prefix-icon"])]),_:1}),o(t,{prop:"code"},{default:l(()=>[o(a,{modelValue:p.value.code,"onUpdate:modelValue":e[1]||(e[1]=r=>p.value.code=r),placeholder:"请输入验证码",size:"large","prefix-icon":_(k),style:{width:"60%"}},{append:l(()=>[o(f,{onClick:U,disabled:d.value>0},{default:l(()=>[S(B(d.value>0?`${d.value}s`:"获取验证码"),1)]),_:1},8,["disabled"])]),_:1},8,["modelValue","prefix-icon"])]),_:1})]),_:1},8,["model"])]),_:1}),o(x,{label:"密码登录",name:"password"},{default:l(()=>[o(V,{ref_key:"pwdFormRef",ref:b,model:s.value,rules:F},{default:l(()=>[o(t,{prop:"phone"},{default:l(()=>[o(a,{modelValue:s.value.phone,"onUpdate:modelValue":e[2]||(e[2]=r=>s.value.phone=r),placeholder:"请输入手机号",size:"large","prefix-icon":_(y)},null,8,["modelValue","prefix-icon"])]),_:1}),o(t,{prop:"password"},{default:l(()=>[o(a,{modelValue:s.value.password,"onUpdate:modelValue":e[3]||(e[3]=r=>s.value.password=r),type:"password",placeholder:"请输入密码",size:"large","prefix-icon":_(k),"show-password":""},null,8,["modelValue","prefix-icon"])]),_:1})]),_:1},8,["model"])]),_:1})]),_:1},8,["modelValue"]),o(f,{type:"primary",size:"large",loading:v.value,class:"login-btn",onClick:q},{default:l(()=>[...e[5]||(e[5]=[S(" 登录 ",-1)])]),_:1},8,["loading"]),e[6]||(e[6]=n("div",{class:"demo-hint"},[n("p",null,"演示账号:13800138000 / 123456")],-1))])])}}},A=N(J,[["__scopeId","data-v-b5e11a1f"]]);export{A as default}; diff --git a/dist/assets/Login-D7iN9UXm.js b/dist/assets/Login-D7iN9UXm.js new file mode 100644 index 0000000..7066050 --- /dev/null +++ b/dist/assets/Login-D7iN9UXm.js @@ -0,0 +1 @@ +import{_ as V,o as k,c as y,a as s,b as a,w as l,r as u,d as r,u as b,e as c,f as h,l as I,g as N,E as d}from"./index-CZe38Ow-.js";import{r as q}from"./request-DftRczcY.js";const B={class:"login-page"},C={class:"login-form"},E={__name:"Login",setup(L){const f=b(),t=u(!1),i=u(null),o=u({username:"",password:""}),g={username:[{required:!0,message:"请输入账号",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}]},_=async()=>{if(await i.value.validate().catch(()=>!1)){t.value=!0;try{const e=await q.post("/auth/login",{username:o.value.username,password:o.value.password});e.success&&e.data&&e.data.token?(localStorage.setItem("token",e.data.token),localStorage.setItem("riderInfo",JSON.stringify(e.data)),d.success("登录成功"),f.push("/")):d.error(e.message||"登录失败")}catch(e){d.error(e.response?.data?.message||"登录失败,请检查账号密码")}finally{t.value=!1}}};return(v,e)=>{const m=r("el-input"),p=r("el-form-item"),w=r("el-form"),x=r("el-button");return k(),y("div",B,[e[4]||(e[4]=s("div",{class:"login-header"},[s("div",{class:"logo"},"🛵"),s("h1",null,"电动车租赁"),s("p",null,"骑手端")],-1)),s("div",C,[a(w,{ref_key:"formRef",ref:i,model:o.value,rules:g,size:"large"},{default:l(()=>[a(p,{prop:"username"},{default:l(()=>[a(m,{modelValue:o.value.username,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value.username=n),placeholder:"请输入账号","prefix-icon":c(h)},null,8,["modelValue","prefix-icon"])]),_:1}),a(p,{prop:"password"},{default:l(()=>[a(m,{modelValue:o.value.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.value.password=n),type:"password",placeholder:"请输入密码","prefix-icon":c(I),"show-password":""},null,8,["modelValue","prefix-icon"])]),_:1})]),_:1},8,["model"]),a(x,{type:"primary",size:"large",loading:t.value,class:"login-btn",onClick:_},{default:l(()=>[...e[2]||(e[2]=[N(" 登录 ",-1)])]),_:1},8,["loading"]),e[3]||(e[3]=s("div",{class:"demo-hint"},[s("p",null,"演示账号:rider_demo / demo123")],-1))])])}}},z=V(E,[["__scopeId","data-v-73cdf8aa"]]);export{z as default}; diff --git a/dist/assets/Orders-BdBnNQ0z.css b/dist/assets/Orders-BdBnNQ0z.css deleted file mode 100644 index 0ccaa04..0000000 --- a/dist/assets/Orders-BdBnNQ0z.css +++ /dev/null @@ -1 +0,0 @@ -.orders-page[data-v-5975620a]{min-height:100vh;background:#f5f5f5}.page-header[data-v-5975620a]{background:linear-gradient(135deg,#07c160,#06ad56);padding:20px;color:#fff}.page-header h2[data-v-5975620a]{margin:0;font-size:22px}.status-tabs[data-v-5975620a]{display:flex;background:#fff;padding:12px 0}.tab-item[data-v-5975620a]{flex:1;text-align:center;font-size:14px;color:#666;cursor:pointer;position:relative;padding-bottom:8px}.tab-item.active[data-v-5975620a]{color:#07c160;font-weight:700}.tab-item.active[data-v-5975620a]:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:40px;height:3px;background:#07c160;border-radius:2px}.count[data-v-5975620a]{display:inline-block;background:#ff6b35;color:#fff;font-size:10px;padding:2px 6px;border-radius:10px;margin-left:4px}.order-list[data-v-5975620a]{padding:12px}.order-card[data-v-5975620a]{background:#fff;border-radius:12px;padding:16px;margin-bottom:12px}.order-header[data-v-5975620a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-number[data-v-5975620a]{font-size:13px;color:#666}.order-body[data-v-5975620a]{cursor:pointer}.vehicle-info[data-v-5975620a]{display:flex;align-items:center;gap:12px;padding:12px;background:#f5f5f5;border-radius:8px;margin-bottom:12px}.vehicle-info .icon[data-v-5975620a]{font-size:36px}.vehicle-info h4[data-v-5975620a]{margin:0;font-size:16px}.vehicle-info p[data-v-5975620a]{margin:4px 0 0;font-size:12px;color:#999}.order-dates p[data-v-5975620a]{margin:0 0 6px;font-size:13px;color:#333}.order-dates .label[data-v-5975620a]{color:#999;margin-right:8px}.order-footer[data-v-5975620a]{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid #f5f5f5}.amount .label[data-v-5975620a]{color:#999;font-size:12px}.amount .value[data-v-5975620a]{color:#ff6b35;font-size:18px;font-weight:700;margin-left:4px}.actions[data-v-5975620a]{display:flex;gap:8px}.order-detail[data-v-5975620a]{padding:10px 0}.detail-section[data-v-5975620a]{margin-bottom:16px}.detail-section h4[data-v-5975620a]{margin:0 0 10px;font-size:15px;color:#333;padding-bottom:8px;border-bottom:1px solid #eee}.detail-row[data-v-5975620a]{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px}.detail-row .label[data-v-5975620a]{color:#999}.detail-row .value[data-v-5975620a]{color:#333}.detail-row.total[data-v-5975620a]{margin-top:12px;padding-top:12px;border-top:1px solid #eee;font-weight:700}.detail-row.total .value[data-v-5975620a]{color:#ff6b35;font-size:16px} diff --git a/dist/assets/Orders-BnVqLHyb.css b/dist/assets/Orders-BnVqLHyb.css new file mode 100644 index 0000000..4985cc5 --- /dev/null +++ b/dist/assets/Orders-BnVqLHyb.css @@ -0,0 +1 @@ +.orders-page[data-v-d086cb51]{min-height:100vh;background:#f7f7f7}.page-header[data-v-d086cb51]{background:#fff;padding:20px 16px 16px;border-bottom:.5px solid rgba(0,0,0,.06)}.page-header h2[data-v-d086cb51]{margin:0;font-size:20px;font-weight:600;color:#1a1a1a}.status-tabs[data-v-d086cb51]{display:flex;background:#fff;padding:12px 0}.tab-item[data-v-d086cb51]{flex:1;text-align:center;font-size:14px;color:#b2b2b2;cursor:pointer;position:relative;padding-bottom:8px}.tab-item.active[data-v-d086cb51]{color:#ff6b00;font-weight:600}.tab-item.active[data-v-d086cb51]:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:40px;height:3px;background:#ff6b00;border-radius:2px}.count[data-v-d086cb51]{display:inline-block;background:#ff6b00;color:#fff;font-size:10px;padding:2px 6px;border-radius:10px;margin-left:4px}.order-list[data-v-d086cb51]{padding:12px}.order-card[data-v-d086cb51]{background:#fff;border-radius:16px;padding:16px;margin-bottom:10px}.order-header[data-v-d086cb51]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.order-number[data-v-d086cb51]{font-size:12px;color:#b2b2b2}.order-body[data-v-d086cb51]{cursor:pointer}.vehicle-info[data-v-d086cb51]{display:flex;align-items:center;gap:12px;padding:12px;background:#f7f7f7;border-radius:12px;margin-bottom:12px}.vehicle-info .icon[data-v-d086cb51]{font-size:36px}.vehicle-info h4[data-v-d086cb51]{margin:0;font-size:15px;color:#1a1a1a;font-weight:500}.vehicle-info p[data-v-d086cb51]{margin:4px 0 0;font-size:12px;color:#b2b2b2}.order-dates p[data-v-d086cb51]{margin:0 0 6px;font-size:13px;color:#1a1a1a}.order-dates .label[data-v-d086cb51]{color:#b2b2b2;margin-right:8px}.order-footer[data-v-d086cb51]{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding-top:12px;border-top:.5px solid #F0F0F0}.amount .label[data-v-d086cb51]{color:#b2b2b2;font-size:12px}.amount .value[data-v-d086cb51]{color:#ff6b00;font-size:18px;font-weight:600;margin-left:4px}.actions[data-v-d086cb51]{display:flex;gap:8px}.order-detail[data-v-d086cb51]{padding:10px 0}.detail-section[data-v-d086cb51]{margin-bottom:16px}.detail-section h4[data-v-d086cb51]{margin:0 0 10px;font-size:15px;color:#1a1a1a;font-weight:600;padding-bottom:8px;border-bottom:.5px solid #F0F0F0}.detail-row[data-v-d086cb51]{display:flex;justify-content:space-between;margin-bottom:8px;font-size:14px}.detail-row .label[data-v-d086cb51]{color:#b2b2b2}.detail-row .value[data-v-d086cb51]{color:#1a1a1a}.detail-row.total[data-v-d086cb51]{margin-top:12px;padding-top:12px;border-top:.5px solid #F0F0F0;font-weight:600}.detail-row.total .value[data-v-d086cb51]{color:#ff6b00;font-size:16px} diff --git a/dist/assets/Orders-Dk1hnoN6.js b/dist/assets/Orders-Dk1hnoN6.js deleted file mode 100644 index b22174e..0000000 --- a/dist/assets/Orders-Dk1hnoN6.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as j,x as q,o as n,c as v,a as s,F as $,g as N,D as G,j as y,w as c,z as p,b as C,G as H,r as g,H as U,d as w,i as z,t as a,f as r,E as _}from"./index-BjjMa8ds.js";import{r as O}from"./request-DB47Z7vM.js";const J={class:"orders-page"},K={class:"status-tabs"},P=["onClick"],Q={key:0,class:"count"},W={class:"order-list"},X={class:"order-header"},Y={class:"order-number"},Z=["onClick"],ss={class:"vehicle-info"},ts={class:"info"},es={class:"order-dates"},ls={class:"order-footer"},as={class:"amount"},os={class:"value"},ns={class:"actions"},is={key:0,class:"order-detail"},us={class:"detail-section"},ds={class:"detail-row"},cs={class:"value"},rs={class:"detail-row"},vs={class:"value"},ps={class:"detail-row"},_s={class:"value"},ms={class:"detail-section"},fs={class:"detail-row"},hs={class:"value"},ys={class:"detail-row"},gs={class:"value"},bs={class:"detail-row"},ks={class:"value"},ws={class:"detail-row"},Ds={class:"value"},Cs={class:"detail-section"},Os={class:"detail-row"},Es={class:"value"},$s={class:"detail-row"},Ns={class:"value"},zs={class:"detail-row"},Is={class:"value"},Ss={class:"detail-row total"},Vs={class:"value"},xs={__name:"Orders",setup(Fs){const b=g(!1),u=g([]),k=g(""),D=g(!1),o=g(null),d=[{label:"全部",value:"",count:0},{label:"待支付",value:"待支付",count:0},{label:"进行中",value:"进行中",count:0},{label:"已完成",value:"已完成",count:0}],I=l=>({待支付:"待支付",进行中:"租赁中",已完成:"已完成",逾期:"已逾期"})[l]||l,S=l=>({待支付:"warning",进行中:"primary",已完成:"success",逾期:"danger"})[l]||"info",m=l=>l?new Date(l).toLocaleDateString("zh-CN"):"-",E=U(()=>k.value?u.value.filter(l=>l.status===k.value):u.value),V=async()=>{b.value=!0;try{const l=localStorage.getItem("customer_id"),t=await O.get("/orders");t.success&&(u.value=t.data.filter(i=>i.customer?._id===l),d[1].count=u.value.filter(i=>i.status==="待支付").length,d[2].count=u.value.filter(i=>i.status==="进行中").length,d[3].count=u.value.filter(i=>i.status==="已完成").length,d[0].count=u.value.length)}catch{u.value=[{_id:"1",orderNumber:"ORDER001",status:"进行中",vehicle:{model:"黑骑士",color:"黑色",vehicleId:"SCOOTER001"},startDate:"2026-02-20",endDate:"2026-03-20",rentalFee:50,deposit:200,totalAmount:300},{_id:"2",orderNumber:"ORDER002",status:"已完成",vehicle:{model:"电动车",color:"蓝色",vehicleId:"SCOOTER003"},startDate:"2026-01-10",endDate:"2026-02-10",actualEndDate:"2026-02-10",rentalFee:40,deposit:150,totalAmount:200}],d[2].count=1,d[3].count=1,d[0].count=2}finally{b.value=!1}},x=l=>{o.value=l,D.value=!0},F=async l=>{try{await O.put(`/orders/${l._id}`,{status:"进行中"}).catch(()=>({success:!0})),l.status="进行中",_.success("支付成功")}catch{_.success("支付成功(演示)"),l.status="进行中"}},R=l=>{_.info("续租功能开发中")},T=async l=>{try{await O.patch(`/orders/${l._id}/complete`).catch(()=>({success:!0})),l.status="已完成",_.success("还车成功")}catch{_.success("还车成功(演示)"),l.status="已完成"}},A=l=>{l.vehicle,_.info("功能开发中")};return q(()=>{V()}),(l,t)=>{const i=w("el-tag"),f=w("el-button"),B=w("el-empty"),L=w("el-dialog"),M=H("loading");return n(),v("div",J,[t[25]||(t[25]=s("div",{class:"page-header"},[s("h2",null,"我的订单")],-1)),s("div",K,[(n(),v($,null,N(d,e=>s("div",{key:e.value,class:z(["tab-item",{active:k.value===e.value}]),onClick:h=>k.value=e.value},[s("span",null,a(e.label),1),e.count>0?(n(),v("span",Q,a(e.count),1)):p("",!0)],10,P)),64))]),G((n(),v("div",W,[(n(!0),v($,null,N(E.value,e=>(n(),v("div",{key:e._id,class:z(["order-card",e.status])},[s("div",X,[s("span",Y,a(e.orderNumber||e.order_number),1),C(i,{type:S(e.status),size:"small"},{default:c(()=>[r(a(I(e.status)),1)]),_:2},1032,["type"])]),s("div",{class:"order-body",onClick:h=>x(e)},[s("div",ss,[t[2]||(t[2]=s("span",{class:"icon"},"🛵",-1)),s("div",ts,[s("h4",null,a(e.vehicle?.model||"电动车"),1),s("p",null,a(e.vehicle?.color||"")+" · "+a(e.vehicle?.vehicleId||""),1)])]),s("div",es,[s("p",null,[t[3]||(t[3]=s("span",{class:"label"},"租车时间",-1)),r(" "+a(m(e.startDate)),1)]),s("p",null,[t[4]||(t[4]=s("span",{class:"label"},"预计还车",-1)),r(" "+a(m(e.endDate)),1)])])],8,Z),s("div",ls,[s("div",as,[t[5]||(t[5]=s("span",{class:"label"},"应付",-1)),s("span",os,"¥"+a(e.totalAmount||0),1)]),s("div",ns,[e.status==="待支付"?(n(),y(f,{key:0,type:"primary",size:"small",onClick:h=>F(e)},{default:c(()=>[...t[6]||(t[6]=[r(" 去支付 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="进行中"?(n(),y(f,{key:1,type:"warning",size:"small",onClick:h=>R()},{default:c(()=>[...t[7]||(t[7]=[r(" 续租 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="进行中"?(n(),y(f,{key:2,size:"small",onClick:h=>T(e)},{default:c(()=>[...t[8]||(t[8]=[r(" 还车 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="已完成"?(n(),y(f,{key:3,size:"small",onClick:h=>A(e)},{default:c(()=>[...t[9]||(t[9]=[r(" 再租一辆 ",-1)])]),_:1},8,["onClick"])):p("",!0)])])],2))),128)),!b.value&&E.value.length===0?(n(),y(B,{key:0,description:"暂无订单"},{default:c(()=>[C(f,{type:"primary",onClick:t[0]||(t[0]=e=>l.$router.push("/vehicles"))},{default:c(()=>[...t[10]||(t[10]=[r("去租车",-1)])]),_:1})]),_:1})):p("",!0)])),[[M,b.value]]),C(L,{modelValue:D.value,"onUpdate:modelValue":t[1]||(t[1]=e=>D.value=e),title:"订单详情",width:"90%",center:""},{default:c(()=>[o.value?(n(),v("div",is,[s("div",us,[t[14]||(t[14]=s("h4",null,"车辆信息",-1)),s("div",ds,[t[11]||(t[11]=s("span",{class:"label"},"车型",-1)),s("span",cs,a(o.value.vehicle?.model),1)]),s("div",rs,[t[12]||(t[12]=s("span",{class:"label"},"颜色",-1)),s("span",vs,a(o.value.vehicle?.color),1)]),s("div",ps,[t[13]||(t[13]=s("span",{class:"label"},"车牌",-1)),s("span",_s,a(o.value.vehicle?.vehicleId),1)])]),s("div",ms,[t[19]||(t[19]=s("h4",null,"订单信息",-1)),s("div",fs,[t[15]||(t[15]=s("span",{class:"label"},"订单号",-1)),s("span",hs,a(o.value.orderNumber),1)]),s("div",ys,[t[16]||(t[16]=s("span",{class:"label"},"租车时间",-1)),s("span",gs,a(m(o.value.startDate)),1)]),s("div",bs,[t[17]||(t[17]=s("span",{class:"label"},"预计还车",-1)),s("span",ks,a(m(o.value.endDate)),1)]),s("div",ws,[t[18]||(t[18]=s("span",{class:"label"},"实际还车",-1)),s("span",Ds,a(o.value.actualEndDate?m(o.value.actualEndDate):"-"),1)])]),s("div",Cs,[t[24]||(t[24]=s("h4",null,"费用信息",-1)),s("div",Os,[t[20]||(t[20]=s("span",{class:"label"},"日租金",-1)),s("span",Es,"¥"+a(o.value.rentalFee),1)]),s("div",$s,[t[21]||(t[21]=s("span",{class:"label"},"押金",-1)),s("span",Ns,"¥"+a(o.value.deposit),1)]),s("div",zs,[t[22]||(t[22]=s("span",{class:"label"},"逾期费用",-1)),s("span",Is,"¥"+a(o.value.overdueFee||0),1)]),s("div",Ss,[t[23]||(t[23]=s("span",{class:"label"},"合计",-1)),s("span",Vs,"¥"+a(o.value.totalAmount),1)])])])):p("",!0)]),_:1},8,["modelValue"])])}}},As=j(xs,[["__scopeId","data-v-5975620a"]]);export{As as default}; diff --git a/dist/assets/Orders-l5Czw-1N.js b/dist/assets/Orders-l5Czw-1N.js new file mode 100644 index 0000000..97c261a --- /dev/null +++ b/dist/assets/Orders-l5Czw-1N.js @@ -0,0 +1 @@ +import{_ as M,i as j,o as n,c as v,a as s,F as $,j as N,q as U,s as y,w as c,p,b as C,v as G,r as b,x as H,d as w,n as z,t as a,g as r,E as _}from"./index-CZe38Ow-.js";import{r as O}from"./request-DftRczcY.js";const J={class:"orders-page"},K={class:"status-tabs"},P=["onClick"],Q={key:0,class:"count"},W={class:"order-list"},X={class:"order-header"},Y={class:"order-number"},Z=["onClick"],ss={class:"vehicle-info"},ts={class:"info"},es={class:"order-dates"},ls={class:"order-footer"},as={class:"amount"},os={class:"value"},ns={class:"actions"},is={key:0,class:"order-detail"},us={class:"detail-section"},ds={class:"detail-row"},cs={class:"value"},rs={class:"detail-row"},vs={class:"value"},ps={class:"detail-row"},_s={class:"value"},ms={class:"detail-section"},fs={class:"detail-row"},hs={class:"value"},ys={class:"detail-row"},bs={class:"value"},gs={class:"detail-row"},ks={class:"value"},ws={class:"detail-row"},Ds={class:"value"},Cs={class:"detail-section"},Os={class:"detail-row"},Es={class:"value"},$s={class:"detail-row"},Ns={class:"value"},zs={class:"detail-row"},Is={class:"value"},Ss={class:"detail-row total"},Vs={class:"value"},xs={__name:"Orders",setup(Fs){const g=b(!1),u=b([]),k=b(""),D=b(!1),o=b(null),d=[{label:"全部",value:"",count:0},{label:"待支付",value:"待支付",count:0},{label:"进行中",value:"进行中",count:0},{label:"已完成",value:"已完成",count:0}],I=l=>({待支付:"待支付",进行中:"租赁中",已完成:"已完成",逾期:"已逾期"})[l]||l,S=l=>({待支付:"warning",进行中:"primary",已完成:"success",逾期:"danger"})[l]||"info",m=l=>l?new Date(l).toLocaleDateString("zh-CN"):"-",E=H(()=>k.value?u.value.filter(l=>l.status===k.value):u.value),V=async()=>{g.value=!0;try{const l=localStorage.getItem("customer_id"),t=await O.get("/orders");t.success&&(u.value=t.data.filter(i=>i.customer?._id===l),d[1].count=u.value.filter(i=>i.status==="待支付").length,d[2].count=u.value.filter(i=>i.status==="进行中").length,d[3].count=u.value.filter(i=>i.status==="已完成").length,d[0].count=u.value.length)}catch{u.value=[{_id:"1",orderNumber:"ORDER001",status:"进行中",vehicle:{model:"黑骑士",color:"黑色",vehicleId:"SCOOTER001"},startDate:"2026-02-20",endDate:"2026-03-20",rentalFee:50,deposit:200,totalAmount:300},{_id:"2",orderNumber:"ORDER002",status:"已完成",vehicle:{model:"电动车",color:"蓝色",vehicleId:"SCOOTER003"},startDate:"2026-01-10",endDate:"2026-02-10",actualEndDate:"2026-02-10",rentalFee:40,deposit:150,totalAmount:200}],d[2].count=1,d[3].count=1,d[0].count=2}finally{g.value=!1}},x=l=>{o.value=l,D.value=!0},F=async l=>{try{await O.put(`/orders/${l._id}`,{status:"进行中"}).catch(()=>({success:!0})),l.status="进行中",_.success("支付成功")}catch{_.success("支付成功(演示)"),l.status="进行中"}},R=l=>{_.info("续租功能开发中")},T=async l=>{try{await O.patch(`/orders/${l._id}/complete`).catch(()=>({success:!0})),l.status="已完成",_.success("还车成功")}catch{_.success("还车成功(演示)"),l.status="已完成"}},A=l=>{l.vehicle,_.info("功能开发中")};return j(()=>{V()}),(l,t)=>{const i=w("el-tag"),f=w("el-button"),B=w("el-empty"),q=w("el-dialog"),L=G("loading");return n(),v("div",J,[t[25]||(t[25]=s("div",{class:"page-header"},[s("h2",null,"我的订单")],-1)),s("div",K,[(n(),v($,null,N(d,e=>s("div",{key:e.value,class:z(["tab-item",{active:k.value===e.value}]),onClick:h=>k.value=e.value},[s("span",null,a(e.label),1),e.count>0?(n(),v("span",Q,a(e.count),1)):p("",!0)],10,P)),64))]),U((n(),v("div",W,[(n(!0),v($,null,N(E.value,e=>(n(),v("div",{key:e._id,class:z(["order-card",e.status])},[s("div",X,[s("span",Y,a(e.orderNumber||e.order_number),1),C(i,{type:S(e.status),size:"small"},{default:c(()=>[r(a(I(e.status)),1)]),_:2},1032,["type"])]),s("div",{class:"order-body",onClick:h=>x(e)},[s("div",ss,[t[2]||(t[2]=s("span",{class:"icon"},"🛵",-1)),s("div",ts,[s("h4",null,a(e.vehicle?.model||"电动车"),1),s("p",null,a(e.vehicle?.color||"")+" · "+a(e.vehicle?.vehicleId||""),1)])]),s("div",es,[s("p",null,[t[3]||(t[3]=s("span",{class:"label"},"租车时间",-1)),r(" "+a(m(e.startDate)),1)]),s("p",null,[t[4]||(t[4]=s("span",{class:"label"},"预计还车",-1)),r(" "+a(m(e.endDate)),1)])])],8,Z),s("div",ls,[s("div",as,[t[5]||(t[5]=s("span",{class:"label"},"应付",-1)),s("span",os,"¥"+a(e.totalAmount||0),1)]),s("div",ns,[e.status==="待支付"?(n(),y(f,{key:0,type:"primary",size:"small",onClick:h=>F(e)},{default:c(()=>[...t[6]||(t[6]=[r(" 去支付 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="进行中"?(n(),y(f,{key:1,type:"warning",size:"small",onClick:h=>R()},{default:c(()=>[...t[7]||(t[7]=[r(" 续租 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="进行中"?(n(),y(f,{key:2,size:"small",onClick:h=>T(e)},{default:c(()=>[...t[8]||(t[8]=[r(" 还车 ",-1)])]),_:1},8,["onClick"])):p("",!0),e.status==="已完成"?(n(),y(f,{key:3,size:"small",onClick:h=>A(e)},{default:c(()=>[...t[9]||(t[9]=[r(" 再租一辆 ",-1)])]),_:1},8,["onClick"])):p("",!0)])])],2))),128)),!g.value&&E.value.length===0?(n(),y(B,{key:0,description:"暂无订单"},{default:c(()=>[C(f,{type:"primary",onClick:t[0]||(t[0]=e=>l.$router.push("/vehicles"))},{default:c(()=>[...t[10]||(t[10]=[r("去租车",-1)])]),_:1})]),_:1})):p("",!0)])),[[L,g.value]]),C(q,{modelValue:D.value,"onUpdate:modelValue":t[1]||(t[1]=e=>D.value=e),title:"订单详情",width:"90%",center:""},{default:c(()=>[o.value?(n(),v("div",is,[s("div",us,[t[14]||(t[14]=s("h4",null,"车辆信息",-1)),s("div",ds,[t[11]||(t[11]=s("span",{class:"label"},"车型",-1)),s("span",cs,a(o.value.vehicle?.model),1)]),s("div",rs,[t[12]||(t[12]=s("span",{class:"label"},"颜色",-1)),s("span",vs,a(o.value.vehicle?.color),1)]),s("div",ps,[t[13]||(t[13]=s("span",{class:"label"},"车牌",-1)),s("span",_s,a(o.value.vehicle?.vehicleId),1)])]),s("div",ms,[t[19]||(t[19]=s("h4",null,"订单信息",-1)),s("div",fs,[t[15]||(t[15]=s("span",{class:"label"},"订单号",-1)),s("span",hs,a(o.value.orderNumber),1)]),s("div",ys,[t[16]||(t[16]=s("span",{class:"label"},"租车时间",-1)),s("span",bs,a(m(o.value.startDate)),1)]),s("div",gs,[t[17]||(t[17]=s("span",{class:"label"},"预计还车",-1)),s("span",ks,a(m(o.value.endDate)),1)]),s("div",ws,[t[18]||(t[18]=s("span",{class:"label"},"实际还车",-1)),s("span",Ds,a(o.value.actualEndDate?m(o.value.actualEndDate):"-"),1)])]),s("div",Cs,[t[24]||(t[24]=s("h4",null,"费用信息",-1)),s("div",Os,[t[20]||(t[20]=s("span",{class:"label"},"日租金",-1)),s("span",Es,"¥"+a(o.value.rentalFee),1)]),s("div",$s,[t[21]||(t[21]=s("span",{class:"label"},"押金",-1)),s("span",Ns,"¥"+a(o.value.deposit),1)]),s("div",zs,[t[22]||(t[22]=s("span",{class:"label"},"逾期费用",-1)),s("span",Is,"¥"+a(o.value.overdueFee||0),1)]),s("div",Ss,[t[23]||(t[23]=s("span",{class:"label"},"合计",-1)),s("span",Vs,"¥"+a(o.value.totalAmount),1)])])])):p("",!0)]),_:1},8,["modelValue"])])}}},As=M(xs,[["__scopeId","data-v-d086cb51"]]);export{As as default}; diff --git a/dist/assets/Profile-B4gpPCGr.js b/dist/assets/Profile-B4gpPCGr.js new file mode 100644 index 0000000..11ab9a0 --- /dev/null +++ b/dist/assets/Profile-B4gpPCGr.js @@ -0,0 +1 @@ +import{_ as T,r as i,i as H,o as k,c as _,a as t,t as a,b as s,w as o,e as J,B as O,k as m,d,C as D,E as b,u as L,g as r,F as E,j as z,n as P}from"./index-CZe38Ow-.js";const W={class:"profile-page"},q={class:"profile-header"},G={class:"avatar"},K={style:{width:"60px",height:"60px",background:"#E8F8EE","border-radius":"30px",display:"flex","align-items":"center","justify-content":"center","font-size":"26px"}},Q={class:"user-info"},X={class:"credit"},Y={style:{color:"#FF6B00","font-weight":"500"}},Z={class:"wallet-card"},ee={class:"wallet-main"},te={class:"balance"},le={class:"wallet-actions"},se={class:"stats-card"},ae={class:"stat-item"},oe={class:"value"},ne={class:"stat-item"},ie={class:"value"},de={class:"stat-item"},ue={class:"value"},re={class:"menu-list"},ve={class:"recharge-dialog"},pe={class:"amount-input"},me={class:"quick-amounts"},ge={class:"withdraw-dialog"},ce={class:"hint"},be={class:"transaction-list"},fe={class:"tx-info"},ye={class:"tx-type"},xe={class:"tx-date"},he={class:"settings-list"},we={class:"settings-item"},ke={class:"settings-item"},_e={class:"settings-item"},Be={__name:"Profile",setup(Ve){const S=L(),n=i(JSON.parse(localStorage.getItem("customer_info")||"{}")),g=i(!1),f=i(!1),x=i(!1),h=i(!1),$=i(!1),w=i(!1),v=i(100),u=i({amount:"",alipay:""}),y=i({notifications:!0,sound:!0}),U=()=>{b.success(`充值 ¥${v.value} 成功(演示)`),n.value.balance=(n.value.balance||0)+v.value,localStorage.setItem("customer_info",JSON.stringify(n.value)),g.value=!1},j=()=>{if(!u.value.amount||!u.value.alipay){b.warning("请填写完整信息");return}b.success("提现申请已提交(演示)"),f.value=!1},I=()=>{b.success("缓存已清除")},M=()=>{D.confirm("确定要退出登录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{localStorage.removeItem("customer_token"),localStorage.removeItem("customer_info"),localStorage.removeItem("customer_id"),S.push("/login"),b.success("已退出登录")}).catch(()=>{})};return H(()=>{n.value=JSON.parse(localStorage.getItem("customer_info")||"{}")}),(N,e)=>{const B=d("el-tag"),p=d("el-button"),R=d("el-input-number"),c=d("el-dialog"),V=d("el-input"),F=d("el-form-item"),A=d("el-form"),C=d("el-switch");return k(),_("div",W,[t("div",q,[t("div",G,[t("div",K,a(n.value.name?.charAt(0)||"租"),1)]),t("div",Q,[t("h3",null,a(n.value.name||"加载中..."),1),t("p",null,"手机号:"+a(n.value.phone||"-"),1),t("div",X,[t("span",Y,"信用分:"+a(n.value.creditScore||100),1),s(B,{size:"small",type:"success",style:{"border-radius":"10px"}},{default:o(()=>[r(a(n.value.creditLevel||"优秀"),1)]),_:1})])]),s(p,{icon:J(O),text:"",onClick:e[0]||(e[0]=l=>h.value=!0),class:"settings-btn"},null,8,["icon"])]),t("div",Z,[t("div",ee,[e[18]||(e[18]=t("span",{class:"label"},"账户余额",-1)),t("span",te,"¥"+a(n.value.balance||0),1)]),t("div",le,[s(p,{type:"primary",size:"small",onClick:e[1]||(e[1]=l=>g.value=!0)},{default:o(()=>[...e[19]||(e[19]=[r("充值",-1)])]),_:1}),s(p,{size:"small",onClick:e[2]||(e[2]=l=>f.value=!0)},{default:o(()=>[...e[20]||(e[20]=[r("提现",-1)])]),_:1})])]),t("div",se,[t("div",ae,[t("span",oe,a(n.value.totalRentals||0),1),e[21]||(e[21]=t("span",{class:"label"},"租车次数",-1))]),e[24]||(e[24]=t("div",{class:"stat-divider"},null,-1)),t("div",ne,[t("span",ie,a(n.value.currentRentals||0),1),e[22]||(e[22]=t("span",{class:"label"},"当前在租",-1))]),e[25]||(e[25]=t("div",{class:"stat-divider"},null,-1)),t("div",de,[t("span",ue,"¥"+a(n.value.totalSpent||0),1),e[23]||(e[23]=t("span",{class:"label"},"累计消费",-1))])]),t("div",re,[t("div",{class:"menu-item",onClick:e[3]||(e[3]=l=>g.value=!0)},[...e[26]||(e[26]=[m('充值余额',3)])]),t("div",{class:"menu-item",onClick:e[4]||(e[4]=l=>x.value=!0)},[...e[27]||(e[27]=[m('交易记录',3)])]),t("div",{class:"menu-item",onClick:e[5]||(e[5]=l=>N.$router.push("/orders"))},[...e[28]||(e[28]=[m('我的订单',3)])]),t("div",{class:"menu-item",onClick:e[6]||(e[6]=l=>$.value=!0)},[...e[29]||(e[29]=[m('还车点',3)])]),t("div",{class:"menu-item",onClick:e[7]||(e[7]=l=>w.value=!0)},[...e[30]||(e[30]=[m('关于我们',3)])]),t("div",{class:"menu-item",onClick:M},[...e[31]||(e[31]=[m('退出登录',3)])])]),s(c,{modelValue:g.value,"onUpdate:modelValue":e[9]||(e[9]=l=>g.value=l),title:"充值余额",width:"85%",center:""},{default:o(()=>[t("div",ve,[t("div",pe,[e[32]||(e[32]=t("span",{class:"yuan"},"¥",-1)),s(R,{modelValue:v.value,"onUpdate:modelValue":e[8]||(e[8]=l=>v.value=l),min:10,max:1e4,step:10,size:"large"},null,8,["modelValue"])]),t("div",me,[(k(),_(E,null,z([50,100,200,500],l=>s(B,{key:l,effect:v.value===l?"dark":"plain",class:"amount-tag",onClick:Fe=>v.value=l},{default:o(()=>[r(" ¥"+a(l),1)]),_:2},1032,["effect","onClick"])),64))]),s(p,{type:"primary",size:"large",style:{width:"100%","margin-top":"16px"},onClick:U},{default:o(()=>[...e[33]||(e[33]=[r(" 确认充值 ",-1)])]),_:1})])]),_:1},8,["modelValue"]),s(c,{modelValue:f.value,"onUpdate:modelValue":e[12]||(e[12]=l=>f.value=l),title:"提现",width:"85%",center:""},{default:o(()=>[t("div",ge,[t("p",ce,"可提现金额:¥"+a(n.value.balance||0),1),s(A,{model:u.value,"label-position":"top"},{default:o(()=>[s(F,{label:"提现金额"},{default:o(()=>[s(V,{modelValue:u.value.amount,"onUpdate:modelValue":e[10]||(e[10]=l=>u.value.amount=l),placeholder:"请输入提现金额",size:"large"},null,8,["modelValue"])]),_:1}),s(F,{label:"支付宝账号"},{default:o(()=>[s(V,{modelValue:u.value.alipay,"onUpdate:modelValue":e[11]||(e[11]=l=>u.value.alipay=l),placeholder:"请输入支付宝账号",size:"large"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),s(p,{type:"primary",size:"large",style:{width:"100%"},onClick:j},{default:o(()=>[...e[34]||(e[34]=[r(" 确认提现 ",-1)])]),_:1})])]),_:1},8,["modelValue"]),s(c,{modelValue:x.value,"onUpdate:modelValue":e[13]||(e[13]=l=>x.value=l),title:"交易记录",width:"90%"},{default:o(()=>[t("div",be,[(k(),_(E,null,z(5,l=>t("div",{class:"transaction-item",key:l},[t("div",fe,[t("span",ye,a(l%2===0?"消费":"充值"),1),t("span",xe,"2026-03-"+a(20-l),1)]),t("span",{class:P(["tx-amount",l%2===0?"expense":"income"])},a(l%2===0?"-":"+")+"¥"+a((Math.random()*100).toFixed(2)),3)])),64))])]),_:1},8,["modelValue"]),s(c,{modelValue:h.value,"onUpdate:modelValue":e[16]||(e[16]=l=>h.value=l),title:"设置",width:"90%"},{default:o(()=>[t("div",he,[t("div",we,[e[35]||(e[35]=t("span",null,"消息通知",-1)),s(C,{modelValue:y.value.notifications,"onUpdate:modelValue":e[14]||(e[14]=l=>y.value.notifications=l)},null,8,["modelValue"])]),t("div",ke,[e[36]||(e[36]=t("span",null,"声音提示",-1)),s(C,{modelValue:y.value.sound,"onUpdate:modelValue":e[15]||(e[15]=l=>y.value.sound=l)},null,8,["modelValue"])]),t("div",_e,[e[38]||(e[38]=t("span",null,"清除缓存",-1)),s(p,{size:"small",onClick:I},{default:o(()=>[...e[37]||(e[37]=[r("清除",-1)])]),_:1})])])]),_:1},8,["modelValue"]),s(c,{modelValue:w.value,"onUpdate:modelValue":e[17]||(e[17]=l=>w.value=l),title:"关于我们",width:"85%",center:""},{default:o(()=>[...e[39]||(e[39]=[t("div",{class:"about-content"},[t("div",{class:"app-logo"},"🛵"),t("h3",null,"电动车租赁平台"),t("p",null,"版本:1.0.0"),t("p",{class:"desc"},"专业的电动车租赁服务,为您提供便捷的租车体验。")],-1)])]),_:1},8,["modelValue"])])}}},Ee=T(Be,[["__scopeId","data-v-599b9681"]]);export{Ee as default}; diff --git a/dist/assets/Profile-BexSVI_o.css b/dist/assets/Profile-BexSVI_o.css deleted file mode 100644 index 9162cce..0000000 --- a/dist/assets/Profile-BexSVI_o.css +++ /dev/null @@ -1 +0,0 @@ -.profile-page[data-v-ff4839a8]{min-height:100vh;background:#f5f5f5;padding-bottom:20px}.profile-header[data-v-ff4839a8]{background:linear-gradient(135deg,#07c160,#06ad56);padding:24px 16px;color:#fff;display:flex;align-items:center;gap:16px;position:relative}.avatar[data-v-ff4839a8]{flex-shrink:0}.user-info[data-v-ff4839a8]{flex:1}.user-info h3[data-v-ff4839a8]{margin:0 0 4px;font-size:20px}.user-info p[data-v-ff4839a8]{margin:0 0 6px;font-size:13px;opacity:.9}.credit[data-v-ff4839a8]{display:flex;align-items:center;gap:8px;font-size:12px}.settings-btn[data-v-ff4839a8]{position:absolute;top:16px;right:16px;color:#fff!important}.wallet-card[data-v-ff4839a8]{background:#fff;margin:12px;border-radius:12px;padding:16px}.wallet-main[data-v-ff4839a8]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.wallet-main .label[data-v-ff4839a8]{color:#666;font-size:14px}.wallet-main .balance[data-v-ff4839a8]{color:#ff6b35;font-size:28px;font-weight:700}.wallet-actions[data-v-ff4839a8]{display:flex;gap:12px}.wallet-actions .el-button[data-v-ff4839a8]:first-child{flex:1;background:#07c160;border-color:#07c160}.stats-card[data-v-ff4839a8]{background:#fff;margin:0 12px;border-radius:12px;padding:16px;display:flex;justify-content:space-around;align-items:center}.stat-item[data-v-ff4839a8]{text-align:center}.stat-item .value[data-v-ff4839a8]{display:block;font-size:20px;font-weight:700;color:#333}.stat-item .label[data-v-ff4839a8]{font-size:12px;color:#999}.stat-divider[data-v-ff4839a8]{width:1px;height:40px;background:#eee}.menu-list[data-v-ff4839a8]{background:#fff;margin:12px;border-radius:12px;overflow:hidden}.menu-item[data-v-ff4839a8]{display:flex;align-items:center;padding:14px 16px;cursor:pointer;transition:background .2s}.menu-item[data-v-ff4839a8]:active{background:#f5f5f5}.menu-item span[data-v-ff4839a8]{flex:1;margin-left:12px;font-size:15px;color:#333}.menu-item .el-icon[data-v-ff4839a8]:last-child{color:#ccc}.recharge-dialog[data-v-ff4839a8]{padding:10px 0}.amount-input[data-v-ff4839a8]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.amount-input .yuan[data-v-ff4839a8]{font-size:24px;color:#333}.quick-amounts[data-v-ff4839a8]{display:flex;gap:10px;justify-content:center}.amount-tag[data-v-ff4839a8]{cursor:pointer;padding:8px 16px}.withdraw-dialog[data-v-ff4839a8]{padding:10px 0}.withdraw-dialog .hint[data-v-ff4839a8]{text-align:center;color:#666;margin-bottom:16px}.transaction-list[data-v-ff4839a8]{max-height:400px;overflow-y:auto}.transaction-item[data-v-ff4839a8]{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f5f5f5}.tx-type[data-v-ff4839a8]{display:block;font-size:14px;color:#333}.tx-date[data-v-ff4839a8]{font-size:12px;color:#999}.tx-amount[data-v-ff4839a8]{font-size:16px;font-weight:700}.tx-amount.expense[data-v-ff4839a8]{color:#333}.tx-amount.income[data-v-ff4839a8]{color:#07c160}.settings-list[data-v-ff4839a8]{padding:10px 0}.settings-item[data-v-ff4839a8]{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #f5f5f5}.about-content[data-v-ff4839a8]{text-align:center;padding:20px 0}.app-logo[data-v-ff4839a8]{font-size:64px;margin-bottom:12px}.about-content h3[data-v-ff4839a8]{margin:0 0 8px}.about-content p[data-v-ff4839a8]{margin:0 0 4px;color:#666}.about-content .desc[data-v-ff4839a8]{margin-top:12px;font-size:13px} diff --git a/dist/assets/Profile-Bnuwe93T.css b/dist/assets/Profile-Bnuwe93T.css new file mode 100644 index 0000000..bed4b00 --- /dev/null +++ b/dist/assets/Profile-Bnuwe93T.css @@ -0,0 +1 @@ +.profile-page[data-v-599b9681]{min-height:100vh;background:#f7f7f7;padding-bottom:20px}.profile-header[data-v-599b9681]{background:#fff;padding:20px 16px;display:flex;align-items:center;gap:14px;position:relative;border-bottom:.5px solid rgba(0,0,0,.06)}.avatar[data-v-599b9681]{flex-shrink:0}.user-info[data-v-599b9681]{flex:1}.user-info h3[data-v-599b9681]{margin:0 0 4px;font-size:18px;font-weight:600;color:#1a1a1a}.user-info p[data-v-599b9681]{margin:0 0 6px;font-size:13px;color:#b2b2b2}.credit[data-v-599b9681]{display:flex;align-items:center;gap:8px;font-size:12px}.settings-btn[data-v-599b9681]{position:absolute;top:16px;right:16px;color:#b2b2b2!important}.wallet-card[data-v-599b9681]{background:#fff;margin:12px;border-radius:16px;padding:16px}.wallet-main[data-v-599b9681]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}.wallet-main .label[data-v-599b9681]{color:#b2b2b2;font-size:13px}.wallet-main .balance[data-v-599b9681]{color:#ff6b00;font-size:28px;font-weight:700}.wallet-actions[data-v-599b9681]{display:flex;gap:12px}.wallet-actions .el-button[data-v-599b9681]:first-child{flex:1;background:#ff6b00;border-color:#ff6b00;border-radius:12px}.wallet-actions .el-button[data-v-599b9681]:last-child{border-radius:12px}.stats-card[data-v-599b9681]{background:#fff;margin:0 12px;border-radius:16px;padding:16px;display:flex;justify-content:space-around;align-items:center}.stat-item[data-v-599b9681]{text-align:center}.stat-item .value[data-v-599b9681]{display:block;font-size:20px;font-weight:700;color:#1a1a1a}.stat-item .label[data-v-599b9681]{font-size:10px;color:#b2b2b2;margin-top:4px}.stat-divider[data-v-599b9681]{width:.5px;height:40px;background:#f0f0f0}.menu-list[data-v-599b9681]{background:#fff;margin:12px;border-radius:16px;overflow:hidden}.menu-item[data-v-599b9681]{display:flex;align-items:center;padding:14px 16px;cursor:pointer;transition:background .2s}.menu-item[data-v-599b9681]:active{background:#f7f7f7}.menu-item span[data-v-599b9681]{flex:1;margin-left:12px;font-size:15px;color:#1a1a1a}.menu-item .el-icon[data-v-599b9681]:last-child{color:#b2b2b2}.recharge-dialog[data-v-599b9681]{padding:10px 0}.amount-input[data-v-599b9681]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.amount-input .yuan[data-v-599b9681]{font-size:24px;color:#1a1a1a}.quick-amounts[data-v-599b9681]{display:flex;gap:10px;justify-content:center}.amount-tag[data-v-599b9681]{cursor:pointer;padding:8px 16px}.withdraw-dialog[data-v-599b9681]{padding:10px 0}.withdraw-dialog .hint[data-v-599b9681]{text-align:center;color:#b2b2b2;margin-bottom:16px}.transaction-list[data-v-599b9681]{max-height:400px;overflow-y:auto}.transaction-item[data-v-599b9681]{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:.5px solid #F0F0F0}.tx-type[data-v-599b9681]{display:block;font-size:14px;color:#1a1a1a}.tx-date[data-v-599b9681]{font-size:11px;color:#b2b2b2}.tx-amount[data-v-599b9681]{font-size:16px;font-weight:600}.tx-amount.expense[data-v-599b9681]{color:#1a1a1a}.tx-amount.income[data-v-599b9681]{color:#ff6b00}.settings-list[data-v-599b9681]{padding:10px 0}.settings-item[data-v-599b9681]{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:.5px solid #F0F0F0}.about-content[data-v-599b9681]{text-align:center;padding:20px 0}.app-logo[data-v-599b9681]{font-size:64px;margin-bottom:12px}.about-content h3[data-v-599b9681]{margin:0 0 8px;color:#1a1a1a}.about-content p[data-v-599b9681]{margin:0 0 4px;color:#b2b2b2}.about-content .desc[data-v-599b9681]{margin-top:12px;font-size:13px} diff --git a/dist/assets/Profile-DAqzf2tn.js b/dist/assets/Profile-DAqzf2tn.js deleted file mode 100644 index 09271c6..0000000 --- a/dist/assets/Profile-DAqzf2tn.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as q,r as d,x as W,o as z,c as C,a as e,b as t,w as o,t as a,e as u,L as D,d as r,M as j,E as V,u as G,f as m,A as H,I as _,N as K,q as Q,B as X,O as Y,P as Z,F as B,g as N,i as h}from"./index-BjjMa8ds.js";const ll={class:"profile-page"},el={class:"profile-header"},tl={class:"avatar"},sl={class:"user-info"},ol={class:"credit"},al={class:"wallet-card"},nl={class:"wallet-main"},ul={class:"balance"},il={class:"wallet-actions"},dl={class:"stats-card"},rl={class:"stat-item"},ml={class:"value"},vl={class:"stat-item"},pl={class:"value"},fl={class:"stat-item"},_l={class:"value"},cl={class:"menu-list"},gl={class:"recharge-dialog"},Vl={class:"amount-input"},wl={class:"quick-amounts"},yl={class:"withdraw-dialog"},bl={class:"hint"},kl={class:"transaction-list"},xl={class:"tx-info"},zl={class:"tx-type"},Cl={class:"tx-date"},Sl={class:"settings-list"},$l={class:"settings-item"},Ul={class:"settings-item"},Il={class:"settings-item"},Bl={__name:"Profile",setup(Nl){const A=G(),n=d(JSON.parse(localStorage.getItem("customer_info")||"{}")),c=d(!1),w=d(!1),b=d(!1),k=d(!1),M=d(!1),x=d(!1),p=d(100),v=d({amount:"",alipay:""}),y=d({notifications:!0,sound:!0}),R=()=>{V.success(`充值 ¥${p.value} 成功(演示)`),n.value.balance=(n.value.balance||0)+p.value,localStorage.setItem("customer_info",JSON.stringify(n.value)),c.value=!1},E=()=>{if(!v.value.amount||!v.value.alipay){V.warning("请填写完整信息");return}V.success("提现申请已提交(演示)"),w.value=!1},F=()=>{V.success("缓存已清除")},O=()=>{j.confirm("确定要退出登录吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(()=>{localStorage.removeItem("customer_token"),localStorage.removeItem("customer_info"),localStorage.removeItem("customer_id"),A.push("/login"),V.success("已退出登录")}).catch(()=>{})};return W(()=>{n.value=JSON.parse(localStorage.getItem("customer_info")||"{}")}),(T,l)=>{const J=r("el-avatar"),S=r("el-tag"),f=r("el-button"),i=r("el-icon"),L=r("el-input-number"),g=r("el-dialog"),$=r("el-input"),U=r("el-form-item"),P=r("el-form"),I=r("el-switch");return z(),C("div",ll,[e("div",el,[e("div",tl,[t(J,{size:72,style:{background:"#fff",color:"#07c160","font-size":"32px","font-weight":"bold"}},{default:o(()=>[m(a(n.value.name?.charAt(0)||"租"),1)]),_:1})]),e("div",sl,[e("h3",null,a(n.value.name||"加载中..."),1),e("p",null,"手机号:"+a(n.value.phone||"-"),1),e("div",ol,[e("span",null,"信用分:"+a(n.value.creditScore||100),1),t(S,{size:"small",type:"success"},{default:o(()=>[m(a(n.value.creditLevel||"优秀"),1)]),_:1})])]),t(f,{icon:u(D),text:"",onClick:l[0]||(l[0]=s=>k.value=!0),class:"settings-btn"},null,8,["icon"])]),e("div",al,[e("div",nl,[l[18]||(l[18]=e("span",{class:"label"},"账户余额",-1)),e("span",ul,"¥"+a(n.value.balance||0),1)]),e("div",il,[t(f,{type:"primary",size:"small",onClick:l[1]||(l[1]=s=>c.value=!0)},{default:o(()=>[...l[19]||(l[19]=[m("充值",-1)])]),_:1}),t(f,{size:"small",onClick:l[2]||(l[2]=s=>w.value=!0)},{default:o(()=>[...l[20]||(l[20]=[m("提现",-1)])]),_:1})])]),e("div",dl,[e("div",rl,[e("span",ml,a(n.value.totalRentals||0),1),l[21]||(l[21]=e("span",{class:"label"},"租车次数",-1))]),l[24]||(l[24]=e("div",{class:"stat-divider"},null,-1)),e("div",vl,[e("span",pl,a(n.value.currentRentals||0),1),l[22]||(l[22]=e("span",{class:"label"},"当前在租",-1))]),l[25]||(l[25]=e("div",{class:"stat-divider"},null,-1)),e("div",fl,[e("span",_l,"¥"+a(n.value.totalSpent||0),1),l[23]||(l[23]=e("span",{class:"label"},"累计消费",-1))])]),e("div",cl,[e("div",{class:"menu-item",onClick:l[3]||(l[3]=s=>c.value=!0)},[t(i,{size:22,style:{color:"#07c160"}},{default:o(()=>[t(u(H))]),_:1}),l[26]||(l[26]=e("span",null,"充值余额",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})]),e("div",{class:"menu-item",onClick:l[4]||(l[4]=s=>b.value=!0)},[t(i,{size:22,style:{color:"#1890ff"}},{default:o(()=>[t(u(K))]),_:1}),l[27]||(l[27]=e("span",null,"交易记录",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})]),e("div",{class:"menu-item",onClick:l[5]||(l[5]=s=>T.$router.push("/orders"))},[t(i,{size:22,style:{color:"#ff6b35"}},{default:o(()=>[t(u(Q))]),_:1}),l[28]||(l[28]=e("span",null,"我的订单",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})]),e("div",{class:"menu-item",onClick:l[6]||(l[6]=s=>M.value=!0)},[t(i,{size:22,style:{color:"#722ed1"}},{default:o(()=>[t(u(X))]),_:1}),l[29]||(l[29]=e("span",null,"还车点",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})]),e("div",{class:"menu-item",onClick:l[7]||(l[7]=s=>x.value=!0)},[t(i,{size:22,style:{color:"#999"}},{default:o(()=>[t(u(Y))]),_:1}),l[30]||(l[30]=e("span",null,"关于我们",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})]),e("div",{class:"menu-item",onClick:O},[t(i,{size:22,style:{color:"#ff4d4f"}},{default:o(()=>[t(u(Z))]),_:1}),l[31]||(l[31]=e("span",null,"退出登录",-1)),t(i,null,{default:o(()=>[t(u(_))]),_:1})])]),t(g,{modelValue:c.value,"onUpdate:modelValue":l[9]||(l[9]=s=>c.value=s),title:"充值余额",width:"85%",center:""},{default:o(()=>[e("div",gl,[e("div",Vl,[l[32]||(l[32]=e("span",{class:"yuan"},"¥",-1)),t(L,{modelValue:p.value,"onUpdate:modelValue":l[8]||(l[8]=s=>p.value=s),min:10,max:1e4,step:10,size:"large"},null,8,["modelValue"])]),e("div",wl,[(z(),C(B,null,N([50,100,200,500],s=>t(S,{key:s,effect:p.value===s?"dark":"plain",class:"amount-tag",onClick:Al=>p.value=s},{default:o(()=>[m(" ¥"+a(s),1)]),_:2},1032,["effect","onClick"])),64))]),t(f,{type:"primary",size:"large",style:{width:"100%","margin-top":"16px"},onClick:R},{default:o(()=>[...l[33]||(l[33]=[m(" 确认充值 ",-1)])]),_:1})])]),_:1},8,["modelValue"]),t(g,{modelValue:w.value,"onUpdate:modelValue":l[12]||(l[12]=s=>w.value=s),title:"提现",width:"85%",center:""},{default:o(()=>[e("div",yl,[e("p",bl,"可提现金额:¥"+a(n.value.balance||0),1),t(P,{model:v.value,"label-position":"top"},{default:o(()=>[t(U,{label:"提现金额"},{default:o(()=>[t($,{modelValue:v.value.amount,"onUpdate:modelValue":l[10]||(l[10]=s=>v.value.amount=s),placeholder:"请输入提现金额",size:"large"},null,8,["modelValue"])]),_:1}),t(U,{label:"支付宝账号"},{default:o(()=>[t($,{modelValue:v.value.alipay,"onUpdate:modelValue":l[11]||(l[11]=s=>v.value.alipay=s),placeholder:"请输入支付宝账号",size:"large"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"]),t(f,{type:"primary",size:"large",style:{width:"100%"},onClick:E},{default:o(()=>[...l[34]||(l[34]=[m(" 确认提现 ",-1)])]),_:1})])]),_:1},8,["modelValue"]),t(g,{modelValue:b.value,"onUpdate:modelValue":l[13]||(l[13]=s=>b.value=s),title:"交易记录",width:"90%"},{default:o(()=>[e("div",kl,[(z(),C(B,null,N(5,s=>e("div",{class:"transaction-item",key:s},[e("div",xl,[e("span",zl,a(s%2===0?"消费":"充值"),1),e("span",Cl,"2026-03-"+a(20-s),1)]),e("span",{class:h(["tx-amount",s%2===0?"expense":"income"])},a(s%2===0?"-":"+")+"¥"+a((Math.random()*100).toFixed(2)),3)])),64))])]),_:1},8,["modelValue"]),t(g,{modelValue:k.value,"onUpdate:modelValue":l[16]||(l[16]=s=>k.value=s),title:"设置",width:"90%"},{default:o(()=>[e("div",Sl,[e("div",$l,[l[35]||(l[35]=e("span",null,"消息通知",-1)),t(I,{modelValue:y.value.notifications,"onUpdate:modelValue":l[14]||(l[14]=s=>y.value.notifications=s)},null,8,["modelValue"])]),e("div",Ul,[l[36]||(l[36]=e("span",null,"声音提示",-1)),t(I,{modelValue:y.value.sound,"onUpdate:modelValue":l[15]||(l[15]=s=>y.value.sound=s)},null,8,["modelValue"])]),e("div",Il,[l[38]||(l[38]=e("span",null,"清除缓存",-1)),t(f,{size:"small",onClick:F},{default:o(()=>[...l[37]||(l[37]=[m("清除",-1)])]),_:1})])])]),_:1},8,["modelValue"]),t(g,{modelValue:x.value,"onUpdate:modelValue":l[17]||(l[17]=s=>x.value=s),title:"关于我们",width:"85%",center:""},{default:o(()=>[...l[39]||(l[39]=[e("div",{class:"about-content"},[e("div",{class:"app-logo"},"🛵"),e("h3",null,"电动车租赁平台"),e("p",null,"版本:1.0.0"),e("p",{class:"desc"},"专业的电动车租赁服务,为您提供便捷的租车体验。")],-1)])]),_:1},8,["modelValue"])])}}},Rl=q(Bl,[["__scopeId","data-v-ff4839a8"]]);export{Rl as default}; diff --git a/dist/assets/TabLayout-BkTmaIje.js b/dist/assets/TabLayout-BkTmaIje.js new file mode 100644 index 0000000..9c1031a --- /dev/null +++ b/dist/assets/TabLayout-BkTmaIje.js @@ -0,0 +1 @@ +import{o as d,c as v,a as t,b as e,w as i,n as l,e as r,h,d as n}from"./index-CZe38Ow-.js";const p={class:"tab-layout"},b={class:"tab-content"},u={class:"tab-bar"},y={__name:"TabLayout",setup(w){const o=h();return(x,s)=>{const c=n("router-view"),a=n("router-link");return d(),v("div",p,[t("div",b,[e(c)]),t("div",u,[e(a,{to:"/",class:l(["tab-item",{active:r(o).path==="/"}])},{default:i(()=>[...s[0]||(s[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"]),e(a,{to:"/vehicles",class:l(["tab-item",{active:r(o).path.startsWith("/vehicles")}])},{default:i(()=>[...s[1]||(s[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("rect",{x:"1",y:"3",width:"15",height:"13",rx:"2",ry:"2"}),t("polygon",{points:"16,8 20,8 23,11 23,16 16,16 16,8"}),t("circle",{cx:"5.5",cy:"18.5",r:"2.5"}),t("circle",{cx:"18.5",cy:"18.5",r:"2.5"})])],-1),t("div",{class:"tab-label"},"租车",-1)])]),_:1},8,["class"]),e(a,{to:"/orders",class:l(["tab-item",{active:r(o).path.startsWith("/orders")}])},{default:i(()=>[...s[2]||(s[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:"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"]),e(a,{to:"/profile",class:l(["tab-item",{active:r(o).path.startsWith("/profile")}])},{default:i(()=>[...s[3]||(s[3]=[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{y as default}; diff --git a/dist/assets/TabLayout-BkhKizJZ.js b/dist/assets/TabLayout-BkhKizJZ.js deleted file mode 100644 index d59cd6c..0000000 --- a/dist/assets/TabLayout-BkhKizJZ.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as p,o as s,c as n,a,b as c,F as d,g as h,h as v,d as l,i as f,w as m,j as b,k,t as y,m as C,v as w,q as B,s as g}from"./index-BjjMa8ds.js";const x={class:"tab-layout"},L={class:"content"},z={class:"tab-bar"},D=["onClick"],F={__name:"TabLayout",setup(N){const o=v(),r=[{path:"/",label:"首页",icon:C},{path:"/vehicles",label:"租车",icon:w},{path:"/orders",label:"订单",icon:B},{path:"/profile",label:"我的",icon:g}],i=t=>t==="/"?o.path==="/":o.path.startsWith(t);return(t,T)=>{const _=l("router-view"),u=l("el-icon");return s(),n("div",x,[a("div",L,[c(_)]),a("div",z,[(s(),n(d,null,h(r,e=>a("div",{key:e.path,class:f(["tab-item",{active:i(e.path)}]),onClick:V=>t.$router.push(e.path)},[c(u,{size:24},{default:m(()=>[(s(),b(k(e.icon)))]),_:2},1024),a("span",null,y(e.label),1)],10,D)),64))])])}}},j=p(F,[["__scopeId","data-v-b4bf5f5f"]]);export{j as default}; diff --git a/dist/assets/TabLayout-G7-kxjSl.css b/dist/assets/TabLayout-G7-kxjSl.css deleted file mode 100644 index 176f3ef..0000000 --- a/dist/assets/TabLayout-G7-kxjSl.css +++ /dev/null @@ -1 +0,0 @@ -.tab-layout[data-v-b4bf5f5f]{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.content[data-v-b4bf5f5f]{flex:1;overflow-y:auto;padding-bottom:60px}.tab-bar[data-v-b4bf5f5f]{position:fixed;bottom:0;left:0;right:0;height:56px;background:#fff;display:flex;box-shadow:0 -2px 10px #0000001a;z-index:100}.tab-item[data-v-b4bf5f5f]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#999;cursor:pointer;transition:color .2s}.tab-item span[data-v-b4bf5f5f]{font-size:12px;margin-top:2px}.tab-item.active[data-v-b4bf5f5f]{color:#07c160} diff --git a/dist/assets/TabLayout-h1nUEoAe.css b/dist/assets/TabLayout-h1nUEoAe.css new file mode 100644 index 0000000..15dc6f0 --- /dev/null +++ b/dist/assets/TabLayout-h1nUEoAe.css @@ -0,0 +1 @@ +*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:#fff7f0;-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}.tab-layout{height:100vh;display:flex;flex-direction:column}.tab-content{flex:1;overflow-y:auto;padding-bottom:calc(60px + env(safe-area-inset-bottom))}.tab-bar{position:fixed;bottom:0;left:0;right:0;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#ffffffeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;border-top:.5px solid rgba(0,0,0,.08);z-index:100}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9b9b9b;transition:color .2s;gap:2px}.tab-item.active{color:#ff6b00}.tab-icon{display:flex;align-items:center;justify-content:center;line-height:1}.tab-label{font-size:10px;font-weight:500} diff --git a/dist/assets/VehicleDetail-CEDp3Kab.js b/dist/assets/VehicleDetail-CEDp3Kab.js new file mode 100644 index 0000000..b7c2f0a --- /dev/null +++ b/dist/assets/VehicleDetail-CEDp3Kab.js @@ -0,0 +1 @@ +import{_ as $,i as z,q as B,o as N,c as U,a as e,b as a,e as q,z as F,n as O,t,w as n,v as W,r as f,d,x as V,h as j,u as A,g as v,E as y}from"./index-CZe38Ow-.js";import{r as k}from"./request-DftRczcY.js";const G={class:"vehicle-detail"},H={class:"detail-header"},J={class:"vehicle-image"},K={class:"detail-content"},L={class:"info-card"},Q={class:"tags"},X={class:"info-card"},Y={class:"price-list"},Z={class:"price-item"},ee={class:"value primary"},se={class:"price-item"},le={class:"value"},te={class:"price-item"},ae={class:"value"},oe={class:"info-card"},ne={class:"info-list"},ie={class:"info-row"},de={class:"value"},ue={class:"info-row"},re={class:"value"},ce={class:"info-row"},ve={class:"value"},pe={class:"info-row"},_e={class:"value"},me={class:"bottom-action"},fe={class:"price-info"},ye={class:"total"},be={class:"rent-dialog"},he={class:"rent-vehicle"},ge={class:"info"},we={class:"rent-summary"},De={class:"summary-row"},Ve={class:"summary-row"},ke={class:"summary-row total"},Ce={class:"dialog-footer"},Re={__name:"VehicleDetail",setup(xe){const w=j(),b=A(),h=f(!1),l=f({}),c=f(!1),i=f({days:1,endDate:new Date(Date.now()+864e5)}),p=V(()=>{const o=l.value.purchasePrice||3e3;return Math.round(o/100)}),_=V(()=>l.value.purchasePrice?Math.round(l.value.purchasePrice*.1):200),C=o=>o