feat: 集成离线数字货币图标系统
✨ 新功能: - 下载16个主流币种图标(BTC, ETH, USDT, BNB, SOL等) - 创建 CoinIcon 组件,支持离线图标和兜底显示 - 更新 CoinAvatar 组件,使用新的 CoinIcon - 更新 market_page.dart 中的 _CoinAvatar 组件 📦 资源: - 图标存放在 flutter_monisuo/assets/icons/crypto/ - 使用 Cryptocurrency Icons 开源图标库 - PNG 格式,128x128 像素 🎯 特性: - 支持自定义大小 - 支持圆形背景 - 未找到图标时显示币种代码(兜底方案) - 支持深色/浅色模式 📝 修改文件: - 新增:flutter_monisuo/lib/ui/components/coin_icon.dart - 新增:flutter_monisuo/assets/icons/crypto/*.png (16个) - 修改:flutter_monisuo/pubspec.yaml - 修改:flutter_monisuo/lib/ui/pages/trade/components/coin_avatar.dart - 修改:flutter_monisuo/lib/ui/pages/market/market_page.dart - ✅ 后端构建成功 (2.0s) - ✅ Flutter Web 构建成功 (24.1s) - ⚠️ Admin: TypeScript类型错误(已知问题)
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
((a,b)=>{a[b]=a[b]||{}})(self,"$__dart_deferred_initializers__")
|
||||
$__dart_deferred_initializers__.current=function(a,b,c,$){var B,A={
|
||||
b7t(d,e,f){var y,x,w=null,v=new B.a0(),u=new B.a0()
|
||||
u=new A.a_W(v,u)
|
||||
b7w(d,e,f){var y,x,w=null,v=new B.a0(),u=new B.a0()
|
||||
u=new A.a_Y(v,u)
|
||||
u.bh(d,w,e,w)
|
||||
y=u.a
|
||||
x=v.r
|
||||
x.toString
|
||||
y.r=x
|
||||
v.r=A.bqs(u)
|
||||
v.r=A.bqv(u)
|
||||
return u},
|
||||
bp8(d,e){var y
|
||||
bpb(d,e){var y
|
||||
A:{if("timePicker.hours"===e){y="\u0bae\u0ba3\u0bbf"
|
||||
break A}if("timePicker.minutes"===e){y="\u0ba8\u0bbf\u0bae\u0bbf\u0b9f\u0b99\u0bcd\u0b95\u0bb3\u0bcd"
|
||||
break A}if("timePicker.seconds"===e){y="\u0bb5\u0bbf\u0ba8\u0bbe\u0b9f\u0bbf\u0b95\u0bb3\u0bcd"
|
||||
@@ -23,38 +23,38 @@ break A}if("input.selectAll"===e){y="\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\
|
||||
break A}if("keyboardToolbar.done"===e){y="\u0bae\u0bc1\u0b9f\u0bbf\u0ba8\u0bcd\u0ba4\u0ba4\u0bc1"
|
||||
break A}y=null
|
||||
break A}return y},
|
||||
bqs(d){return new A.aV5(d)},
|
||||
a_W:function a_W(d,e){var _=this
|
||||
bqv(d){return new A.aV7(d)},
|
||||
a_Y:function a_Y(d,e){var _=this
|
||||
_.r=d
|
||||
_.z=_.w=$
|
||||
_.a=e
|
||||
_.e=_.b=$},
|
||||
aRn:function aRn(){},
|
||||
aV5:function aV5(d){this.a=d},
|
||||
ac4:function ac4(){}}
|
||||
aRp:function aRp(){},
|
||||
aV7:function aV7(d){this.a=d},
|
||||
ac6:function ac6(){}}
|
||||
B=c[0]
|
||||
A=a.updateHolder(c[72],A)
|
||||
A.a_W.prototype={
|
||||
A.a_Y.prototype={
|
||||
h(d,e){var y=this.r.a7(e)
|
||||
return y==null?this.a.a7(e):y},
|
||||
gb9(){var y=this,x=y.z
|
||||
if(x===$){if(y.w===$)y.w=y
|
||||
x=y.z=new A.aRn()}return x},
|
||||
x=y.z=new A.aRp()}return x},
|
||||
gbe(){return this.r}}
|
||||
A.aRn.prototype={
|
||||
A.aRp.prototype={
|
||||
gbj(){return"\u0bb5\u0bc6\u0b9f\u0bcd\u0b9f\u0bc1"},
|
||||
gbi(){return"\u0ba8\u0b95\u0bb2\u0bc6\u0b9f\u0bc1"},
|
||||
gbk(){return"\u0b92\u0b9f\u0bcd\u0b9f\u0bc1"},
|
||||
gbg(){return"\u0b85\u0ba9\u0bc8\u0ba4\u0bcd\u0ba4\u0bc8\u0baf\u0bc1\u0bae\u0bcd \u0ba4\u0bc7\u0bb0\u0bcd\u0ba8\u0bcd\u0ba4\u0bc6\u0b9f\u0bc1"}}
|
||||
A.ac4.prototype={}
|
||||
A.ac6.prototype={}
|
||||
var z=a.updateTypes([])
|
||||
A.aV5.prototype={
|
||||
$1(d){return A.bp8(this.a,d)},
|
||||
A.aV7.prototype={
|
||||
$1(d){return A.bpb(this.a,d)},
|
||||
$S:2};(function inheritance(){var y=a.mixin,x=a.inherit
|
||||
x(A.ac4,B.Z)
|
||||
x(A.a_W,A.ac4)
|
||||
x(A.aRn,B.b4)
|
||||
x(A.aV5,B.aW)
|
||||
y(A.ac4,B.b_)})()
|
||||
B.b9(b.typeUniverse,JSON.parse('{"a_W":{"Z":[]}}'))};
|
||||
(a=>{a["F2Dv0sohvl2HKd6Dq8OfO7YrK6E="]=a.current})($__dart_deferred_initializers__);
|
||||
x(A.ac6,B.Z)
|
||||
x(A.a_Y,A.ac6)
|
||||
x(A.aRp,B.b4)
|
||||
x(A.aV7,B.aW)
|
||||
y(A.ac6,B.b_)})()
|
||||
B.b9(b.typeUniverse,JSON.parse('{"a_Y":{"Z":[]}}'))};
|
||||
(a=>{a["Mk6wAxmVHUXM+INAR24Qaj52Jzg="]=a.current})($__dart_deferred_initializers__);
|
||||
Reference in New Issue
Block a user