cloud 2 долоо хоног өмнө
parent
commit
9380c6a21e
54 өөрчлөгдсөн 154 нэмэгдсэн , 27 устгасан
  1. 24 0
      saiadmin-artd/project.config.json
  2. 14 0
      saiadmin-artd/project.private.config.json
  3. 1 0
      server/public/water-mini/assets/BottomNav.C_0xx0tr.js
  4. 0 0
      server/public/water-mini/assets/CommandStatus.vue_vue_type_script_setup_true_lang.Dv81928x.js
  5. 0 0
      server/public/water-mini/assets/DevicePageHeader.CPhRQ1T6.js
  6. 1 0
      server/public/water-mini/assets/IdentityGuard-BK2wCKJb.css
  7. 1 0
      server/public/water-mini/assets/IdentityGuard.3wjiCdX-.js
  8. 0 0
      server/public/water-mini/assets/PackageCard.D16XCEv1.js
  9. 1 0
      server/public/water-mini/assets/PageState.CBFV4zpS.js
  10. 1 0
      server/public/water-mini/assets/PrivatePhotos.DN2OkunK.js
  11. 1 0
      server/public/water-mini/assets/QuantityInput.B4RwUfWS.js
  12. 1 0
      server/public/water-mini/assets/TaskCard.vue_vue_type_script_setup_true_lang.B1BC0W3T.js
  13. 1 0
      server/public/water-mini/assets/cart.D6H4eANe.js
  14. 1 0
      server/public/water-mini/assets/format.D7Ah6vn5.js
  15. 2 0
      server/public/water-mini/assets/index-C1kRunFF.js
  16. 1 0
      server/public/water-mini/assets/location.Dmmk7why.js
  17. 0 0
      server/public/water-mini/assets/login-N9WIuyOp.css
  18. 1 0
      server/public/water-mini/assets/pages-account-identities.D0J9tJDz.js
  19. 0 0
      server/public/water-mini/assets/pages-account-login.6LG9dJDF.js
  20. 0 0
      server/public/water-mini/assets/pages-account-profile.CCk_jNUv.js
  21. 0 0
      server/public/water-mini/assets/pages-account-rewards.BojqqBJr.js
  22. 0 0
      server/public/water-mini/assets/pages-addresses-edit.DhyFhVyR.js
  23. 0 0
      server/public/water-mini/assets/pages-addresses-index.BUvDWCM-.js
  24. 0 0
      server/public/water-mini/assets/pages-agent-commissions.CDFNwy4r.js
  25. 0 0
      server/public/water-mini/assets/pages-agent-customers.BN97XoxW.js
  26. 0 0
      server/public/water-mini/assets/pages-agent-dashboard.BJVZamEB.js
  27. 1 0
      server/public/water-mini/assets/pages-agent-orders.BtDvOnLZ.js
  28. 0 0
      server/public/water-mini/assets/pages-common-map.DcEMshWH.js
  29. 1 0
      server/public/water-mini/assets/pages-common-web.f8zJ8xS8.js
  30. 1 0
      server/public/water-mini/assets/pages-devices-detail.pimJ2pUN.js
  31. 0 0
      server/public/water-mini/assets/pages-devices-index.ByFqkUxZ.js
  32. 0 0
      server/public/water-mini/assets/pages-driver-dashboard.C4yP4Pst.js
  33. 0 0
      server/public/water-mini/assets/pages-driver-device.ClbhhTbs.js
  34. 0 0
      server/public/water-mini/assets/pages-driver-fulfill.pNNoeb0H.js
  35. 0 0
      server/public/water-mini/assets/pages-driver-routes.Ck0M-cyV.js
  36. 0 0
      server/public/water-mini/assets/pages-driver-task.8g53rrW2.js
  37. 1 0
      server/public/water-mini/assets/pages-driver-tasks.2P6Tz9X5.js
  38. 0 0
      server/public/water-mini/assets/pages-home-index.Cr_LvuY5.js
  39. 0 0
      server/public/water-mini/assets/pages-orders-checkout.DzsGuaNj.js
  40. 0 0
      server/public/water-mini/assets/pages-orders-index.CGnjWxbt.js
  41. 0 0
      server/public/water-mini/assets/pages-orders-tracking.Cbst-ryv.js
  42. 0 0
      server/public/water-mini/assets/pages-packages-cart.C7jeQQ5_.js
  43. 0 0
      server/public/water-mini/assets/pages-packages-detail.1r9RtYzJ.js
  44. 0 0
      server/public/water-mini/assets/pages-packages-index.xsWzBGWl.js
  45. 0 0
      server/public/water-mini/assets/pages-rights-index.CLrwB4gt.js
  46. 1 0
      server/public/water-mini/assets/pages-rights-ledger.BBOIikkT.js
  47. 1 0
      server/public/water-mini/assets/usePaged.Duq9Ewgz.js
  48. 1 0
      server/public/water-mini/assets/useResource.CPyeEgMD.js
  49. 1 1
      server/public/water-mini/index.html
  50. 2 2
      water-mini/.env.example
  51. 2 2
      water-mini/src/api/client.ts
  52. 13 1
      water-mini/src/components/IdentityGuard.vue
  53. 76 19
      water-mini/src/pages/account/login.vue
  54. 2 2
      water-mini/vite.config.ts

+ 24 - 0
saiadmin-artd/project.config.json

@@ -0,0 +1,24 @@
+{
+  "setting": {
+    "es6": true,
+    "postcss": true,
+    "minified": true,
+    "uglifyFileName": false,
+    "enhance": true,
+    "packNpmRelationList": [],
+    "babelSetting": {
+      "ignore": [],
+      "disablePlugins": [],
+      "outputPath": ""
+    },
+    "useCompilerPlugins": false
+  },
+  "compileType": "miniprogram",
+  "simulatorPluginLibVersion": {},
+  "packOptions": {
+    "ignore": [],
+    "include": []
+  },
+  "appid": "wxb53276de7129d025",
+  "editorSetting": {}
+}

+ 14 - 0
saiadmin-artd/project.private.config.json

@@ -0,0 +1,14 @@
+{
+  "libVersion": "3.17.4",
+  "projectname": "%E4%BA%91%E6%B3%89%E6%99%BA%E9%80%81",
+  "setting": {
+    "urlCheck": true,
+    "coverView": true,
+    "lazyloadPlaceholderEnable": false,
+    "skylineRenderEnable": false,
+    "preloadBackgroundData": false,
+    "autoAudits": false,
+    "showShadowRootInWxmlPanel": true,
+    "compileHotReLoad": true
+  }
+}

+ 1 - 0
server/public/water-mini/assets/BottomNav.C_0xx0tr.js

@@ -0,0 +1 @@
+import{d as a,c as e,s,f as t,b as r,i as o,w as l,m as n,n as i,F as c,y as d,z as p,h as v,j as g,t as u,k as m,r as _,ad as f}from"./index-C1kRunFF.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";const h=b(a({__name:"BottomNav",props:{active:{}},setup(a){const b=a;let h=!1;const x=e(()=>{var a,e;return"driver"===(null==(a=s.active)?void 0:a.role)?[["工作台","台","/pages/driver/dashboard"],["任务","务","/pages/driver/tasks"],["地图","图","/pages/driver/routes"],["我的","我","/pages/account/profile"]]:"agent"===(null==(e=s.active)?void 0:e.role)?[["工作台","台","/pages/agent/dashboard"],["用户","户","/pages/agent/customers"],["订单","单","/pages/agent/orders"],["佣金","佣","/pages/agent/commissions"]]:[["首页","首","/pages/home/index"],["订单","单","/pages/orders/index"],["水卡","卡","/pages/rights/index"],["我的","我","/pages/account/profile"]]});return(a,e)=>{const s=o,k=m,j=d;return t(),r(s,{class:"bottom-nav"},{default:l(()=>[(t(!0),n(c,null,i(x.value,e=>(t(),r(j,{key:e[2],class:p(["nav-item",{selected:a.active===e[2]}]),"aria-label":e[0]+(a.active===e[2]?",当前页面":""),onClick:a=>{var s;(s=e[2])===b.active||h||(h=!0,_({url:s,fail:()=>f({title:"页面打开失败,请重试",icon:"none"}),complete:()=>{h=!1}}))}},{default:l(()=>[v(s,{class:"nav-icon"},{default:l(()=>[g(u(e[1]),1)]),_:2},1024),v(k,{class:"nav-label"},{default:l(()=>[g(u(e[0]),1)]),_:2},1024)]),_:2},1032,["class","aria-label","onClick"]))),128))]),_:1})}}}),[["__scopeId","data-v-78314e07"]]);export{h as B};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/CommandStatus.vue_vue_type_script_setup_true_lang.Dv81928x.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/DevicePageHeader.CPhRQ1T6.js


+ 1 - 0
server/public/water-mini/assets/IdentityGuard-BK2wCKJb.css

@@ -0,0 +1 @@
+.guard[data-v-9887a078]{margin-top:1.09375rem;display:flex;flex-direction:column;align-items:center;gap:.75rem;text-align:center;padding:1.625rem .75rem}.guard uni-button[data-v-9887a078]{min-width:9.375rem}.guard-action[data-v-9887a078]{min-height:2.4375rem;padding:.5625rem .9375rem;border:.0625rem solid #1475d1;border-radius:31.21875rem;background:linear-gradient(180deg,#62b8ff,#176afa);color:#fff;box-shadow:inset 0 .125rem .3125rem rgba(255,255,255,.92),inset 0 -.1875rem .375rem rgba(13,75,175,.28),0 .15625rem .375rem rgba(23,106,250,.25)}

+ 1 - 0
server/public/water-mini/assets/IdentityGuard.3wjiCdX-.js

@@ -0,0 +1 @@
+import{d as a,c as s,s as t,ah as e,f as r,b as o,i as n,w as i,h as l,j as d,t as u,u as c,L as p,y as _}from"./index-C1kRunFF.js";import{g as k}from"./format.D7Ah6vn5.js";import{_ as f}from"./_plugin-vue_export-helper.BCo6x5W8.js";const m=f(a({__name:"IdentityGuard",props:{kind:{}},setup(a){const f=a,m=s(()=>{var a,s;return!!t.token&&(!f.kind||("enterprise"===f.kind?null==(a=t.active)?void 0:a.role.startsWith("enterprise_"):(null==(s=t.active)?void 0:s.role)===f.kind))});return(a,s)=>{const f=n,v=_;return m.value?e(a.$slots,"default",{key:0},void 0,!0):(r(),o(f,{key:1,class:"card guard"},{default:i(()=>[l(f,{class:"icon-tile"},{default:i(()=>[d("泉")]),_:1}),l(f,{class:"title"},{default:i(()=>[d(u(c(t).token?"当前账号无此页面权限":"登录后查看专属服务"),1)]),_:1}),l(f,{class:"muted"},{default:i(()=>[d(u(c(t).token?"请使用对应业务账号登录,或联系管理员开通。":"查看企业用水、预约送水与配送进度"),1)]),_:1}),l(v,{class:"primary guard-action",onClick:s[0]||(s[0]=a=>c(k)(c(t).token?c(p)():"/pages/account/login"))},{default:i(()=>[d(u(c(t).token?"返回我的页面":"前往登录"),1)]),_:1})]),_:1}))}}}),[["__scopeId","data-v-9887a078"]]);export{m as I};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/PackageCard.D16XCEv1.js


+ 1 - 0
server/public/water-mini/assets/PageState.CBFV4zpS.js

@@ -0,0 +1 @@
+import{d as e,f as a,b as s,i as t,w as l,h as r,j as o,k as n,t as p,y as u,v as d}from"./index-C1kRunFF.js";import{_}from"./_plugin-vue_export-helper.BCo6x5W8.js";const y=_(e({__name:"PageState",props:{loading:{type:Boolean},error:{},empty:{type:Boolean},emptyText:{}},emits:["retry"],setup:e=>(e,_)=>{const y=t,m=n,c=u;return e.loading?(a(),s(y,{key:0,class:"state"},{default:l(()=>[r(y,{class:"spinner"}),r(m,null,{default:l(()=>[o("正在加载…")]),_:1})]),_:1})):e.error?(a(),s(y,{key:1,class:"state"},{default:l(()=>[r(y,{class:"state-symbol"},{default:l(()=>[o("!")]),_:1}),r(m,null,{default:l(()=>[o(p(e.error),1)]),_:1}),r(c,{class:"secondary button-small",onClick:_[0]||(_[0]=a=>e.$emit("retry"))},{default:l(()=>[o("重新加载")]),_:1})]),_:1})):e.empty?(a(),s(y,{key:2,class:"state"},{default:l(()=>[r(y,{class:"state-symbol"},{default:l(()=>[o("水")]),_:1}),r(m,null,{default:l(()=>[o(p(e.emptyText||"暂无记录"),1)]),_:1})]),_:1})):d("",!0)}}),[["__scopeId","data-v-3850482e"]]);export{y as P};

+ 1 - 0
server/public/water-mini/assets/PrivatePhotos.DN2OkunK.js

@@ -0,0 +1 @@
+import{d as s,C as a,Q as e,D as t,f as o,b as r,i as u,w as c,h as n,m as l,n as i,q as d,j as p,t as h,F as f,y as v,v as m,s as _,a8 as k,a9 as b,aa as y,ab as C}from"./index-C1kRunFF.js";import{_ as j}from"./_plugin-vue_export-helper.BCo6x5W8.js";const w=j(s({__name:"PrivatePhotos",props:{ids:{},scope:{},resourceId:{}},setup(s){const j=s,w=a([]),P=a("");let $=0;function x(s){s.startsWith("blob:")&&URL.revokeObjectURL(s)}function I(){w.value.forEach(s=>x(s.path)),w.value=[]}async function E(){const s=++$;if(I(),P.value="",!_.token)return;const a=_.token,e=_.epoch;for(const t of j.ids){if(s!==$||e!==_.epoch)return;try{const o=await new Promise((s,e)=>k({url:`${y}/photos/${t}?scope=${j.scope}&resource_id=${j.resourceId}`,header:{Authorization:`Bearer ${a}`},success(t){200===t.statusCode?s(t.tempFilePath):(401===t.statusCode&&a===_.token&&b(),e(new Error("照片读取失败")))},fail:()=>e(new Error("照片读取失败"))}));if(s!==$||e!==_.epoch)return void x(o);w.value.push({id:t,path:o})}catch{s===$&&(P.value="部分照片加载失败,请重新加载")}}}return e(()=>[j.ids.join(","),j.resourceId,_.epoch],E,{immediate:!0,flush:"sync"}),t(()=>{$++,I()}),(s,a)=>{const e=d,t=u,_=v;return o(),r(t,null,{default:c(()=>[n(t,{class:"grid"},{default:c(()=>[(o(!0),l(f,null,i(w.value,s=>(o(),r(t,{key:s.id},{default:c(()=>[n(e,{src:s.path,class:"photo",mode:"aspectFill",onClick:a=>{return e=s.path,void C({current:e,urls:w.value.map(s=>s.path)});var e}},null,8,["src","onClick"]),n(t,{class:"muted small"},{default:c(()=>[p("照片 #"+h(s.id),1)]),_:2},1024)]),_:2},1024))),128))]),_:1}),P.value?(o(),r(_,{key:0,class:"text-button",onClick:E},{default:c(()=>[p(h(P.value),1)]),_:1})):m("",!0)]),_:1})}}}),[["__scopeId","data-v-2d023a57"]]);export{w as P};

+ 1 - 0
server/public/water-mini/assets/QuantityInput.B4RwUfWS.js

@@ -0,0 +1 @@
+import{d as e,f as a,b as l,i as t,w as u,h as d,j as s,y as m,I as n}from"./index-C1kRunFF.js";import{_ as o}from"./_plugin-vue_export-helper.BCo6x5W8.js";const i=o(e({__name:"QuantityInput",props:{modelValue:{},min:{default:1},max:{default:100}},emits:["update:modelValue"],setup(e,{emit:o}){const i=e,r=o;function p(e){r("update:modelValue",Math.min(i.max,Math.max(i.min,Math.trunc(e)||i.min)))}function c(e){p(Number(e.detail.value))}return(e,o)=>{const i=m,r=n,f=t;return a(),l(f,{class:"stepper"},{default:u(()=>[d(i,{disabled:e.modelValue<=e.min,onClick:o[0]||(o[0]=a=>p(e.modelValue-1))},{default:u(()=>[s("−")]),_:1},8,["disabled"]),d(r,{value:String(e.modelValue),type:"number",onBlur:c},null,8,["value"]),d(i,{disabled:e.modelValue>=e.max,onClick:o[1]||(o[1]=a=>p(e.modelValue+1))},{default:u(()=>[s("+")]),_:1},8,["disabled"])]),_:1})}}}),[["__scopeId","data-v-fc2725bb"]]);export{i as Q};

+ 1 - 0
server/public/water-mini/assets/TaskCard.vue_vue_type_script_setup_true_lang.B1BC0W3T.js

@@ -0,0 +1 @@
+import{d as s,f as a,b as e,i as t,u as l,w as d,h as i,k as m,z as r,j as u,t as c}from"./index-C1kRunFF.js";import{g as _,l as f}from"./format.D7Ah6vn5.js";const n=s({__name:"TaskCard",props:{item:{}},setup:s=>(s,n)=>{const o=m,p=t;return a(),e(p,{class:"card",onClick:n[0]||(n[0]=a=>l(_)("/pages/driver/task?id="+s.item.id))},{default:d(()=>[i(p,{class:"row"},{default:d(()=>[i(o,{class:r(["tag","completed"===s.item.status?"green":"orange"])},{default:d(()=>[u(c(l(f)(s.item.status)),1)]),_:1},8,["class"]),i(o,{class:"muted small"},{default:d(()=>[u(c(s.item.code),1)]),_:1})]),_:1}),i(p,{class:"title",style:{margin:"20rpx 0 10rpx"}},{default:d(()=>[u(c(s.item.enterprise_name||"企业配送任务"),1)]),_:1}),i(p,{class:"muted"},{default:d(()=>[u(c(s.item.address),1)]),_:1}),i(p,{class:"divider"}),i(p,{class:"row"},{default:d(()=>[i(p,null,{default:d(()=>[i(p,null,{default:d(()=>[u(c(s.item.sku_name)+" · "+c(s.item.quantity)+"桶",1)]),_:1}),i(p,{class:"muted"},{default:d(()=>[u(c(s.item.scheduled_date||"待安排日期"),1)]),_:1})]),_:1}),i(o,{class:"tag"},{default:d(()=>[u("查看任务 ›")]),_:1})]),_:1})]),_:1})}});export{n as _};

+ 1 - 0
server/public/water-mini/assets/cart.D6H4eANe.js

@@ -0,0 +1 @@
+import{Y as t}from"./index-C1kRunFF.js";import{t as i}from"./format.D7Ah6vn5.js";function n(t){return u.items.find(i=>i.product.id===t)}const u=t({items:[]});function s(t){const s=n(t.id);if(s)s.quantity<100&&s.quantity++;else{if(!(u.items.length<20))return void i("最多选择20种套餐");u.items.push({product:t,quantity:1})}i("已加入订单")}function o(t){return n(t.id)?(u.items=u.items.filter(i=>i.product.id!==t.id),i("已取消选择"),!1):u.items.length>=20?(i("最多选择20种套餐"),!1):(u.items.push({product:t,quantity:1}),i("已选择,可继续选择其他套餐"),!0)}function c(t){const i=n(t.id);i&&i.quantity<100&&i.quantity++}function e(t){const i=n(t.id);i&&(i.quantity>1?i.quantity--:o(t))}function r(t){var i;return(null==(i=n(t))?void 0:i.quantity)??0}function a(){return u.items.map(t=>({package_id:t.product.id,quantity:t.quantity}))}function d(t){for(const i of u.items){const n=t.find(t=>t.id===i.product.id);n&&(i.product=n)}}function f(t){for(const i of u.items){const n=t.items.find(t=>t.package_id===i.product.id);if(!n||n.quantity!==i.quantity)throw new Error("套餐选择已变化,请重新报价");const u=i.product.sku_id===n.sku_id;i.product={...i.product,name:n.name,sku_id:n.sku_id,sku_name:u?i.product.sku_name:null,liters:u?i.product.liters:null,buckets:n.buckets/n.quantity,price_cents:n.unit_price_cents,unit_price_cents:Math.round(n.amount_cents/n.buckets)}}}function m(){u.items=[]}export{s as a,a as b,u as c,e as d,f as e,m as f,c as i,r as q,d as r,o as t};

+ 1 - 0
server/public/water-mini/assets/format.D7Ah6vn5.js

@@ -0,0 +1 @@
+import{ad as n,ai as e,a0 as i}from"./index-C1kRunFF.js";function r(n,e=2){return null==n?"—":(n/100).toLocaleString("zh-CN",{minimumFractionDigits:e,maximumFractionDigits:e})}function t(n,e=""){return null==n?"—":`${n}${e}`}const o={pending:"待调度",assigned:"待出发",transit:"配送中",completed:"已完成",cancelled:"已取消",returning:"待退货",returned:"已退货",expired:"已过期",paid:"已支付",online:"在线",offline:"离线",unknown:"状态未知",enterprise_admin:"企业管理员",enterprise_member:"企业成员",driver:"配送员",agent:"代理商"};function a(n){return n?o[n]||n:"—"}function s(n){e({url:n})}function u(e){n({title:e,icon:"none",duration:2600})}function c(n,e){return new Promise(r=>i({title:n,content:e,success:n=>r(n.confirm),fail:()=>r(!1)}))}function m(n){const e=Number(n);if(!Number.isSafeInteger(e)||e<1)throw new Error("页面参数无效,请返回列表重新进入");return e}export{c,s as g,m as i,a as l,r as m,u as t,t as v};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 2 - 0
server/public/water-mini/assets/index-C1kRunFF.js


+ 1 - 0
server/public/water-mini/assets/location.Dmmk7why.js

@@ -0,0 +1 @@
+import{ad as e,ae as n}from"./index-C1kRunFF.js";import{g as t}from"./format.D7Ah6vn5.js";function o(){return"undefined"==typeof window||window.isSecureContext?new Promise((e,t)=>n({type:"gcj02",success:n=>e({latitude:n.latitude,longitude:n.longitude}),fail:e=>{const n=e,o=Number(n.code),r=(n.errMsg||"").toLowerCase();1===o||/permission|denied|auth deny|unauthorized/.test(r)?t(new Error("定位权限被拒绝,请在浏览器网站设置和系统设置中允许位置访问")):2===o||/unavailable/.test(r)?t(new Error("设备暂时无法确定位置,请开启系统定位服务并检查网络后重试")):3===o||/timeout/.test(r)?t(new Error("定位超时,请检查网络或移动到信号较好的位置后重试")):t(new Error("无法获取位置,请检查浏览器定位权限与系统定位服务后重试"))}})):Promise.reject(new Error("当前网页地址不支持定位,请使用 HTTPS,或在本机通过 127.0.0.1 打开"))}function r(n,o,r){if(null==n||null==o||""===n||""===o)return void e({title:"该地址尚未定位",icon:"none"});const i=Number(n),s=Number(o);!Number.isFinite(i)||!Number.isFinite(s)||Math.abs(i)>90||Math.abs(s)>180||t("/pages/common/map?latitude="+encodeURIComponent(String(i))+"&longitude="+encodeURIComponent(String(s))+"&address="+encodeURIComponent(r||"配送地址"))}export{o as l,r as o};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/login-N9WIuyOp.css


+ 1 - 0
server/public/water-mini/assets/pages-account-identities.D0J9tJDz.js

@@ -0,0 +1 @@
+import{d as a,o as s,s as t,b as e,w as l,i as o,M as r,r as u,L as n,f as d,h as i,j as c,y as f,u as _,k as m,t as p,v as y,N as g}from"./index-C1kRunFF.js";import{u as j}from"./useResource.CPyeEgMD.js";import{I as k}from"./IdentityGuard.3wjiCdX-.js";import{P as v}from"./PageState.CBFV4zpS.js";import"./format.D7Ah6vn5.js";import"./_plugin-vue_export-helper.BCo6x5W8.js";const w=a({__name:"identities",setup(a){const{loading:w,error:x,load:I}=j(async()=>(await r(),t.active&&u({url:n()}),!0));function b(){g({data:t.userId})}return s(()=>{t.token&&I()}),(a,s)=>{const r=o,u=f,n=m;return d(),e(r,{class:"page"},{default:l(()=>[i(k,null,{default:l(()=>[i(r,{class:"section"},{default:l(()=>[i(r,{class:"title"},{default:l(()=>[c("账号服务状态")]),_:1}),i(u,{class:"text-button",onClick:_(I)},{default:l(()=>[c("刷新")]),_:1},8,["onClick"])]),_:1}),i(r,{class:"muted"},{default:l(()=>[c("账号的服务身份由管理员绑定,登录后自动进入对应页面。")]),_:1}),i(v,{loading:_(w),error:_(x),onRetry:_(I)},null,8,["loading","error","onRetry"]),_(w)||_(x)||_(t).identities.length?y("",!0):(d(),e(r,{key:0,class:"card"},{default:l(()=>[i(r,{class:"title"},{default:l(()=>[c("账号已建立,等待绑定身份")]),_:1}),i(r,{class:"notice"},{default:l(()=>[c("请将用户编号提供给管理员,绑定企业、配送员或代理商后,点击刷新。")]),_:1}),i(r,{class:"row"},{default:l(()=>[i(n,{class:"muted"},{default:l(()=>[c("用户编号:"+p(_(t).userId),1)]),_:1}),i(u,{class:"secondary button-small",onClick:b},{default:l(()=>[c("复制编号")]),_:1})]),_:1})]),_:1}))]),_:1})]),_:1})}}});export{w as default};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-account-login.6LG9dJDF.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-account-profile.CCk_jNUv.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-account-rewards.BojqqBJr.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-addresses-edit.DhyFhVyR.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-addresses-index.BUvDWCM-.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-agent-commissions.CDFNwy4r.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-agent-customers.BN97XoxW.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-agent-dashboard.BJVZamEB.js


+ 1 - 0
server/public/water-mini/assets/pages-agent-orders.BtDvOnLZ.js

@@ -0,0 +1 @@
+import{d as a,C as e,U as s,o as t,s as r,R as l,b as o,w as d,i as n,g as u,e as i,f as m,h as c,j as p,t as _,m as f,F as g,n as v,u as y,k as j,y as k,v as x}from"./index-C1kRunFF.js";import{u as b}from"./usePaged.Duq9Ewgz.js";import{m as h}from"./format.D7Ah6vn5.js";import{I as w}from"./IdentityGuard.3wjiCdX-.js";import{P as B}from"./PageState.CBFV4zpS.js";import{B as C}from"./BottomNav.C_0xx0tr.js";import"./_plugin-vue_export-helper.BCo6x5W8.js";const P=a({__name:"orders",setup(a){const P=e(0),{items:I,loading:N,error:R,hasMore:z,load:A}=b(a=>u(i("agent")+"/orders",{page:a,...P.value?{enterprise_id:P.value}:{}}));return s(a=>{P.value=Number(null==a?void 0:a.enterprise_id)||0}),t(()=>{var a;"agent"===(null==(a=r.active)?void 0:a.role)&&A(!0)}),l(()=>A()),(a,e)=>{const s=n,t=j,r=k;return m(),o(s,{class:"page"},{default:d(()=>[c(w,{kind:"agent"},{default:d(()=>[c(s,{class:"notice"},{default:d(()=>[p(_(P.value?"当前客户的真实收款记录":"当前辖区客户的真实收款记录"),1)]),_:1}),(m(!0),f(g,null,v(y(I),a=>(m(),o(s,{key:a.id,class:"card"},{default:d(()=>[c(s,{class:"row"},{default:d(()=>[c(t,{class:"strong"},{default:d(()=>[p(_(a.package_name),1)]),_:2},1024),c(t,{class:"tag green"},{default:d(()=>[p("已收款")]),_:1})]),_:2},1024),c(s,{class:"muted",style:{"margin-top":"14rpx"}},{default:d(()=>[p(_(a.created_at),1)]),_:2},1024),c(s,{class:"divider"}),c(s,{class:"row"},{default:d(()=>[c(t,{class:"muted"},{default:d(()=>[p(_(a.buckets)+"桶 · 企业编号 "+_(a.enterprise_id),1)]),_:2},1024),c(t,{class:"amount"},{default:d(()=>[p("¥"+_(y(h)(a.amount_cents)),1)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128)),c(B,{loading:y(N),error:y(R),empty:!y(I).length,onRetry:e[0]||(e[0]=a=>y(A)(!0))},null,8,["loading","error","empty"]),y(z)&&!y(N)?(m(),o(r,{key:0,class:"text-button",onClick:e[1]||(e[1]=a=>y(A)())},{default:d(()=>[p("加载更多")]),_:1})):x("",!0)]),_:1}),c(C,{active:"/pages/agent/orders"})]),_:1})}}});export{P as default};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-common-map.DcEMshWH.js


+ 1 - 0
server/public/water-mini/assets/pages-common-web.f8zJ8xS8.js

@@ -0,0 +1 @@
+import{d as a,C as s,U as e,b as t,w as n,v as l,i as r,aj as o,f as u,h as c,j as i}from"./index-C1kRunFF.js";const d=a({__name:"web",setup(a){const d=s(""),v=s(!1);return e(a=>{try{const s=decodeURIComponent((null==a?void 0:a.url)||"");if(!/^https:\/\/[^\s]+$/i.test(s))throw new Error("invalid");d.value=s}catch{v.value=!0}}),(a,s)=>{const e=r,f=o;return v.value?(u(),t(e,{key:0,class:"page"},{default:n(()=>[c(e,{class:"notice warning"},{default:n(()=>[i("该服务链接暂不可用,请联系平台。")]),_:1})]),_:1})):d.value?(u(),t(f,{key:1,src:d.value},null,8,["src"])):l("",!0)}}});export{d as default};

+ 1 - 0
server/public/water-mini/assets/pages-devices-detail.pimJ2pUN.js

@@ -0,0 +1 @@
+import{d as e,C as a,U as s,b as r,w as o,i as t,g as d,e as i,f as n,h as l,u,v as m}from"./index-C1kRunFF.js";import{u as p}from"./useResource.CPyeEgMD.js";import{i as f,g}from"./format.D7Ah6vn5.js";import{I as v}from"./IdentityGuard.3wjiCdX-.js";import{P as c}from"./PageState.CBFV4zpS.js";import{D as _,a as j}from"./DevicePageHeader.CPhRQ1T6.js";import{_ as y}from"./_plugin-vue_export-helper.BCo6x5W8.js";const x=y(e({__name:"detail",setup(e){const y=a(0),{data:x,loading:I,error:P,load:R}=p(()=>d(i("enterprise")+"/devices/"+f(y.value)));return s(e=>{y.value=Number(null==e?void 0:e.id),R()}),(e,a)=>{const s=t;return n(),r(s,{class:"device-page"},{default:o(()=>[l(_,{onManage:a[0]||(a[0]=e=>u(g)("/pages/devices/index"))}),l(v,{kind:"enterprise"},{default:o(()=>[l(c,{loading:u(I),error:u(P),onRetry:u(R)},null,8,["loading","error","onRetry"]),!u(x)||u(I)||u(P)?m("",!0):(n(),r(j,{key:0,data:u(x)},null,8,["data"]))]),_:1})]),_:1})}}}),[["__scopeId","data-v-d397884e"]]);export{x as default};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-devices-index.ByFqkUxZ.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-driver-dashboard.C4yP4Pst.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-driver-device.ClbhhTbs.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-driver-fulfill.pNNoeb0H.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-driver-routes.Ck0M-cyV.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-driver-task.8g53rrW2.js


+ 1 - 0
server/public/water-mini/assets/pages-driver-tasks.2P6Tz9X5.js

@@ -0,0 +1 @@
+import{d as a,C as s,o as e,s as t,R as r,a as o,b as l,w as i,i as d,g as n,e as u,f as m,h as p,m as c,F as v,n as _,u as f,z as g,j as y,t as k,y as j,v as C}from"./index-C1kRunFF.js";import{u as x}from"./usePaged.Duq9Ewgz.js";import{I as h}from"./IdentityGuard.3wjiCdX-.js";import{P as I}from"./PageState.CBFV4zpS.js";import{_ as B}from"./TaskCard.vue_vue_type_script_setup_true_lang.B1BC0W3T.js";import{B as P}from"./BottomNav.C_0xx0tr.js";import{_ as b}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./format.D7Ah6vn5.js";const w=b(a({__name:"tasks",setup(a){const b=s("all"),w=[["all","全部"],["pending","待出发"],["transit","配送中"],["completed","已完成"],["exception","异常"]],{items:z,loading:R,error:A,hasMore:F,load:G}=x(a=>n(u("driver")+"/tasks",{page:a,status:b.value}));return e(()=>{var a;"driver"===(null==(a=t.active)?void 0:a.role)&&G(!0)}),r(()=>G()),o(()=>G(!0)),(a,s)=>{const e=d,t=j;return m(),l(e,{class:"page"},{default:i(()=>[p(h,{kind:"driver"},{default:i(()=>[p(e,{class:"tabs"},{default:i(()=>[(m(),c(v,null,_(w,a=>p(e,{key:a[0],class:g({active:b.value===a[0]}),onClick:s=>{b.value=a[0],f(G)(!0)}},{default:i(()=>[y(k(a[1]),1)]),_:2},1032,["class","onClick"])),64))]),_:1}),(m(!0),c(v,null,_(f(z),a=>(m(),l(B,{key:a.id,item:a},null,8,["item"]))),128)),p(I,{loading:f(R),error:f(A),empty:!f(z).length,"empty-text":"当前分类暂无任务",onRetry:s[0]||(s[0]=a=>f(G)(!0))},null,8,["loading","error","empty"]),f(F)&&!f(R)?(m(),l(t,{key:0,class:"driver-action driver-action--secondary load-more",onClick:s[1]||(s[1]=a=>f(G)())},{default:i(()=>[y(" 加载更多 ")]),_:1})):C("",!0)]),_:1}),p(P,{active:"/pages/driver/tasks"})]),_:1})}}}),[["__scopeId","data-v-1838c1de"]]);export{w as default};

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-home-index.Cr_LvuY5.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-orders-checkout.DzsGuaNj.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-orders-index.CGnjWxbt.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-orders-tracking.Cbst-ryv.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-packages-cart.C7jeQQ5_.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-packages-detail.1r9RtYzJ.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-packages-index.xsWzBGWl.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
server/public/water-mini/assets/pages-rights-index.CLrwB4gt.js


+ 1 - 0
server/public/water-mini/assets/pages-rights-ledger.BBOIikkT.js

@@ -0,0 +1 @@
+import{d as e,o as a,s,R as t,b as r,w as l,i as o,g as n,e as d,f as i,h as u,j as p,m as c,F as m,n as _,u as f,t as g,k as y,y as v,v as j}from"./index-C1kRunFF.js";import{u as k}from"./usePaged.Duq9Ewgz.js";import{I as h}from"./IdentityGuard.3wjiCdX-.js";import{P as x}from"./PageState.CBFV4zpS.js";import"./format.D7Ah6vn5.js";import"./_plugin-vue_export-helper.BCo6x5W8.js";const w=e({__name:"ledger",setup(e){const w={purchase:"购买入账",promotion_reward:"推广赠水权益",reserve:"配送冻结",cancel:"取消释放",complete:"完成配送",partial_receive:"部分签收",delivery_return:"配送退货"},{items:P,loading:b,error:C,hasMore:I,load:R}=k(e=>n(d("enterprise")+"/ledger",{page:e}));return a(()=>{var e;(null==(e=s.active)?void 0:e.role.startsWith("enterprise_"))&&R(!0)}),t(()=>R()),(e,a)=>{const s=o,t=y,n=v;return i(),r(s,{class:"page"},{default:l(()=>[u(h,{kind:"enterprise"},{default:l(()=>[u(s,{class:"notice"},{default:l(()=>[p("显示每次业务操作的桶数,并非全部代表权益扣减。")]),_:1}),(i(!0),c(m,null,_(f(P),e=>(i(),r(s,{key:e.id,class:"card"},{default:l(()=>[u(s,{class:"row"},{default:l(()=>[u(s,null,{default:l(()=>[u(s,{class:"strong"},{default:l(()=>[p(g(w[e.kind]||e.kind),1)]),_:2},1024),u(s,{class:"muted"},{default:l(()=>[p(g(e.created_at),1)]),_:2},1024)]),_:2},1024),u(t,{class:"amount"},{default:l(()=>[p(g(e.quantity)+"桶",1)]),_:2},1024)]),_:2},1024),u(s,{class:"muted",style:{"margin-top":"15rpx"}},{default:l(()=>[p(g(e.reference),1)]),_:2},1024)]),_:2},1024))),128)),u(x,{loading:f(b),error:f(C),empty:!f(P).length,onRetry:a[0]||(a[0]=e=>f(R)(!0))},null,8,["loading","error","empty"]),f(I)&&!f(b)?(i(),r(n,{key:0,class:"text-button",onClick:a[1]||(a[1]=e=>f(R)())},{default:l(()=>[p("加载更多")]),_:1})):j("",!0)]),_:1})]),_:1})}}});export{w as default};

+ 1 - 0
server/public/water-mini/assets/usePaged.Duq9Ewgz.js

@@ -0,0 +1 @@
+import{af as a,C as e,Q as u,s as l,ag as s}from"./index-C1kRunFF.js";function t(t){const r=a(null),v=a([]),o=e(!1),n=e(""),c=e(!1),i=e(0),m=e({});let f=0,h=0;return u(()=>l.epoch,()=>{h++,r.value=null,v.value=[],o.value=!1,n.value="",f=0,i.value=0,m.value={},c.value=!1},{flush:"sync"}),{data:r,items:v,loading:o,error:n,hasMore:c,total:i,summary:m,load:async function(a=!1){if(o.value&&!a)return;if(!a&&f>0&&!c.value)return;const e=a?++h:h,u=l.epoch,y=a?1:f+1;a&&(v.value=[],f=0,c.value=!1,i.value=0,m.value={}),o.value=!0,n.value="";try{const s=await t(y);if(e!==h||u!==l.epoch)return;r.value=s,v.value=a?s.items:[...v.value,...s.items],i.value=s.total,c.value=s.has_more,s.summary&&(m.value=s.summary),f=y}catch(p){e===h&&u===l.epoch&&(n.value=p instanceof Error?p.message:"加载失败")}finally{e===h&&(o.value=!1),s()}}}}export{t as u};

+ 1 - 0
server/public/water-mini/assets/useResource.CPyeEgMD.js

@@ -0,0 +1 @@
+import{af as a,C as e,Q as l,s as n,ag as o}from"./index-C1kRunFF.js";function s(s){const u=a(null),c=e(!1),t=e("");let r=0;return l(()=>n.epoch,()=>{r++,u.value=null,c.value=!1,t.value=""},{flush:"sync"}),{data:u,loading:c,error:t,load:async function(){const a=++r,e=n.epoch;c.value=!0,t.value="";try{const l=await s();a===r&&e===n.epoch&&(u.value=l)}catch(l){a===r&&e===n.epoch&&(u.value=null,t.value=l instanceof Error?l.message:"加载失败")}finally{a===r&&(c.value=!1),o()}}}}export{s as u};

+ 1 - 1
server/public/water-mini/index.html

@@ -6,7 +6,7 @@
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
     <title>云泉智配</title>
-    <script type="module" crossorigin src="/water-mini/assets/index-CBPUYaop.js"></script>
+    <script type="module" crossorigin src="/water-mini/assets/index-C1kRunFF.js"></script>
     <link rel="stylesheet" crossorigin href="/water-mini/assets/index-DY2jyvfz.css">
   </head>
   <body>

+ 2 - 2
water-mini/.env.example

@@ -1,5 +1,5 @@
-# 微信开发者工具本机调试地址;真机必须替换为可访问的 HTTPS API 域名。
-VITE_API_BASE_URL= http://127.0.0.1:8787/api/mini/v1
+# 小程序和 H5 接口地址;真机需使用已配置合法域名的 HTTPS 地址。
+VITE_API_BASE_URL=https://ss.erp.cash/api/mini/v1
 # H5 高德地图 JS API(仅 H5 地图页使用;不要把安全密钥提交到仓库)
 VITE_AMAP_KEY=
 VITE_AMAP_SECURITY_CODE=

+ 2 - 2
water-mini/src/api/client.ts

@@ -1,8 +1,8 @@
 import { session, clearSession } from '../stores/state';
 
-let base = import.meta.env.VITE_API_BASE_URL || 'http://192.168.110.245:8787/api/mini/v1';
+let base = import.meta.env.VITE_API_BASE_URL || 'https://ss.erp.cash/api/mini/v1';
 // #ifdef H5
-base = import.meta.env.VITE_API_BASE_URL || '/api/mini/v1';
+base = import.meta.env.VITE_API_BASE_URL || 'https://ss.erp.cash/api/mini/v1';
 // #endif
 export const API_BASE = base.replace(/\/$/, '');
 

+ 13 - 1
water-mini/src/components/IdentityGuard.vue

@@ -25,7 +25,7 @@ const allowed = computed(
       }}
     </view>
     <button
-      class="primary"
+      class="primary guard-action"
       @click="go(session.token ? accountPage() : '/pages/account/login')"
     >
       {{ session.token ? '返回我的页面' : '前往登录' }}
@@ -45,4 +45,16 @@ const allowed = computed(
 .guard button {
   min-width: 300rpx;
 }
+.guard-action {
+  min-height: 78rpx;
+  padding: 18rpx 30rpx;
+  border: 2rpx solid #1475d1;
+  border-radius: 999rpx;
+  background: linear-gradient(180deg, #62b8ff 0%, #176afa 100%);
+  color: #fff;
+  box-shadow:
+    inset 0 4rpx 10rpx rgba(255, 255, 255, 0.92),
+    inset 0 -6rpx 12rpx rgba(13, 75, 175, 0.28),
+    0 5rpx 12rpx rgba(23, 106, 250, 0.25);
+}
 </style>

+ 76 - 19
water-mini/src/pages/account/login.vue

@@ -139,7 +139,7 @@ async function loginByPhone() {
       </view>
       <template v-if="loginMode === 'wechat'">
         <button
-          class="primary"
+          class="primary wechat-login-button"
           :loading="busy"
           :disabled="busy || !session.configuration?.capabilities.wechat_login || !wechatPlatform"
           @click="login"
@@ -195,27 +195,35 @@ async function loginByPhone() {
         <text class="link" @click.stop="privacy">隐私与服务说明</text>
       </label>
     </view>
-    <button
-      v-if="loginMode === 'wechat' && session.configuration?.capabilities.test_phone_login"
-      class="text-button login-option"
-      :disabled="busy"
-      @click="loginMode = 'phone'"
-    >
-      使用手机验证码登录
-    </button>
-    <view v-else-if="loginMode === 'wechat' && session.configuration" class="phone-option">
-      手机号验证码登录 <text class="tag gray">即将开放</text>
+    <view class="login-footer">
+      <button
+        v-if="loginMode === 'wechat' && session.configuration?.capabilities.test_phone_login"
+        class="text-button login-option"
+        :disabled="busy"
+        @click="loginMode = 'phone'"
+      >
+        使用手机验证码登录
+      </button>
+      <view v-else-if="loginMode === 'wechat' && session.configuration" class="phone-option">
+        手机号验证码登录 <text class="tag gray">即将开放</text>
+      </view>
+      <button v-else-if="loginMode === 'phone'" class="text-button login-option" @click="loginMode = 'wechat'">
+        返回微信授权登录
+      </button>
+      <button class="text-button" @click="goHome">先看看企业套餐</button>
     </view>
-    <button v-else-if="loginMode === 'phone'" class="text-button login-option" @click="loginMode = 'wechat'">
-      返回微信授权登录
-    </button>
-    <button class="text-button" @click="goHome">先看看企业套餐</button>
   </view>
 </template>
 <style scoped>
 .login-page {
   text-align: center;
+  display: flex;
+  min-height: 100vh;
+  flex-direction: column;
+  padding-right: 22rpx;
+  padding-left: 22rpx;
   padding-top: 90rpx;
+  padding-bottom: calc(24rpx + env(safe-area-inset-bottom));
 }
 .brand {
   width: 126rpx;
@@ -234,12 +242,50 @@ async function loginByPhone() {
   margin-bottom: 12rpx;
 }
 .login-card {
-  margin-top: 60rpx;
-  padding: 44rpx 28rpx;
+  margin-top: 48rpx;
+  padding: 48rpx 32rpx 36rpx;
 }
 .login-card .muted {
   margin: 16rpx 0 28rpx;
 }
+.login-card .primary {
+  margin-top: 4rpx;
+}
+.wechat-login-button {
+  min-height: 78rpx;
+  border: 2rpx solid #1475d1;
+  border-radius: 999rpx;
+  background: linear-gradient(180deg, #62b8ff 0%, #176afa 100%);
+  color: #fff;
+  box-shadow:
+    inset 0 4rpx 10rpx rgba(255, 255, 255, 0.92),
+    inset 0 -6rpx 12rpx rgba(13, 75, 175, 0.28),
+    0 5rpx 12rpx rgba(23, 106, 250, 0.25);
+}
+.wechat-login-button[disabled] {
+  opacity: 0.8;
+}
+.login-footer {
+  display: flex;
+  flex-direction: column;
+  gap: 38rpx;
+  margin-top: 24rpx;
+  padding-top: 0;
+}
+.login-footer .text-button {
+  width: 100%;
+  margin: 0;
+  min-height: 78rpx;
+  padding: 18rpx 24rpx;
+  border: 2rpx solid #1475d1;
+  border-radius: 999rpx;
+  background: linear-gradient(180deg, #62b8ff 0%, #176afa 100%);
+  color: #fff;
+  box-shadow:
+    inset 0 4rpx 10rpx rgba(255, 255, 255, 0.92),
+    inset 0 -6rpx 12rpx rgba(13, 75, 175, 0.28),
+    0 5rpx 12rpx rgba(23, 106, 250, 0.25);
+}
 .phone-option {
   color: #8597af;
   padding: 20rpx 0;
@@ -249,7 +295,7 @@ async function loginByPhone() {
   margin-top: 30rpx;
 }
 .login-option {
-  margin: 14rpx auto;
+  margin: 4rpx auto;
 }
 .code-field {
   position: relative;
@@ -271,9 +317,20 @@ async function loginByPhone() {
   background: #f2f5fa;
 }
 .check-row {
+  display: flex;
+  align-items: center;
   justify-content: center;
-  flex-wrap: wrap;
+  gap: 10rpx;
+  min-height: 64rpx;
+  margin-top: 24rpx;
+  padding: 0 12rpx;
   font-size: 23rpx;
+  line-height: 1.5;
+  color: #667c9a;
+}
+.check-row checkbox {
+  flex: none;
+  margin-right: 2rpx;
 }
 .link {
   color: #176afa;

+ 2 - 2
water-mini/vite.config.ts

@@ -7,9 +7,9 @@ export default defineConfig(() => {
     server: {
       proxy: {
         '/api/mini': {
-          target: 'http://127.0.0.1:8787',
+          target: 'https://ss.erp.cash',
           changeOrigin: true,
-          headers: { Origin: 'http://127.0.0.1:8787' },
+          headers: { Origin: 'https://ss.erp.cash' },
         },
       },
     },

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно