From bb1d3eb81934d64ad72f6c1e979f38d39766b162 Mon Sep 17 00:00:00 2001 From: liyi Date: Fri, 10 Oct 2025 09:40:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E3=80=81=E8=B0=83=E6=95=B4=E8=8E=B7=E5=8F=96=E5=9B=A2=E9=98=9F?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/icon/icon_face.jpg | Bin 0 -> 2710 bytes assets/icon/icon_new_person.jpg | Bin 0 -> 2461 bytes assets/icon/icon_role.jpg | Bin 0 -> 2375 bytes lib/api/api_path.dart | 1 + .../team/response/team_details_response.dart | 86 ++++++++++++++++++ lib/api/service/team_api_service.dart | 11 +++ lib/common/constant/app_images.dart | 3 + lib/common/constant/cache_keys.dart | 1 - lib/views/home/home_view.dart | 2 +- lib/views/main/main_controller.dart | 31 +++++-- lib/views/main/main_view.dart | 1 - .../personnel_manage_view.dart | 26 ++++-- 12 files changed, 141 insertions(+), 21 deletions(-) create mode 100644 assets/icon/icon_face.jpg create mode 100644 assets/icon/icon_new_person.jpg create mode 100644 assets/icon/icon_role.jpg create mode 100644 lib/api/model/team/response/team_details_response.dart diff --git a/assets/icon/icon_face.jpg b/assets/icon/icon_face.jpg new file mode 100644 index 0000000000000000000000000000000000000000..db72297e0256aa1266e765fc79ae19cfb0a71283 GIT binary patch literal 2710 zcmbW3c|6qJ9>;%UW(;GSk*yw?vZb;lWh|MoFHcEGYS5H5xgjLgn6WF-geW|+L=v)O z4D#5QWAczSvJT=Kmf9C9u6df1Jd(J`@c@we|Jq@+GbOMmz%BQyU=LE+P)XT{H} zURKj;=(TnAt!?ccon5cH-}DcB82mUiJTf{x^Xc>Km#=g4O!m_9%IexWXXEEK7X*O* ziS-xRzj2}YTmmo{6o%O5f(TsaPbeA&->WSsX=0DKcy)*3;YcAV)8xF$7GWhF2bQ#Z zP#;o8`N*^idmHT^Wd9vl)c-~H7udhJMgdVMgnxKYG=K+wX07#a(KYZsLKj(I!0eXxoGw+lQ?TR^P8Fn!uN@t~f z=oG&VA`Fpbv2`29IRFS;VKFJRW0wxyq~FU|TH5p?XONTzjyXOd>9EGBNi-pvo%Gm< z^39~r@}*Ug-MxY*4+%GS!`5HaCpg!_rR=SJvdQo3F-Z+Jtbq2>fVMJo-}Bm!VKUhB z0T0?F_a{4nKxF12<}Z~Of()p=TAWkF8W7lmas5CbmOaZ3RxZHAGV-cDHYTXGin04F=2X~b;eL<{1{jv{3pMypUJn@| zLnIRr$p7(eHNRoKE$1Z&v`q?eEe1)~3&IG!Jsp`Dq4gi`*LnMFE<8W`T!yC@A=BL( zvzNaJ>~Sv^A0Xe z@{r><0zp9L82WN==SL0nY?APXS@jP&Y7iQ~*K{x%7fRo%!s(8=h3DZ^zIC2Ry`zaO z+F~`A&!6vOrSg#RY@Jp@Y$@(Y!n@8)+|R655V@1iK=+&Y>+Zfar^X{&HOdz69VUtg`wL`@Yvor9XA-L#0#14qgN0-;X>9JfkW9eD4VEOiEJ=? zhAZ*&)ig<9bly&i9w4{!m_5X^{Rd)BJr{T;2Z#du{S;dh)N&=LWHfo)Ag7%&`i{VH zyf)oqXuHd>JUkDqqk6p71UCoD)5C`L)YvmOsOD=1!cy?9KQnWP=~v|*xEQKklu{!*Oi8OeLg~^8 zI_k&CaaX0 z%0y{C2@aN;tEvl6EQXf%Waq}|BPDh=&)}yAa%Ayy?kr~>!VLtLG#n~0(tX6sl(r(A zCgpv{R5@4t6$pGL{D;sm?<@-+kD)ntP-3sAFU{ewgR#}h9(IkjekGRnT-@oHXNae# zp>r1GQeI~hExhTw*;L8=iv{<7lKqp0tC!CN>TBx-hT1CJKz6uZQBFIU_*j^8m$zG= z9n6cWlhO@e^p&_GT_*MiR{%*ewIg?)ou$FfU9-Nom+eBq5$_5Q?ohT9*>R*C$N zfIj1*V|E=J#dew*5ihl_lJJEQ;R`rjyUWU&^qY+0N1mLO^ zS&qZZatBV*dR1*vIhInTa!~m8fvV5eHsi~v8!eq-y@&yP_4L@L9?1a&Dm@%98yYHP zGm^LiY2Wn-yPy2)ajtgGTEcm&aK(tSX1qmH#aB*AJWHGKOYpbS6mU`q0(gt-Teb?5)87vAL;*}hstiU|0&_0yQb>KKo zQxYdo^{k=0A+=E@5e6|5Vz(C?^T| z$_lS*N_(R8_S_35W@A`iLEvWzapMXIth1N79*u&~q&7(_nv;hdyFA4*l+0UchedVyX;~K>yfJ>-;#94obDa+{~n>WL%H~Xyn>v+#p@qB zufGvdl(rlYV3tv4=^!v3vV#7=8^_QQk+Yn0rC}1yqi>t;tY(K|su&Z#i(d$%E|ptf z7ZKtMkWPwL@HJhy;g;TF zCKHDQftDlWUr1Vm-;XARG8elH%1YFeHS>0Lc)u{f-me>f=i@Cee(+nxpAWQF9|Rov EI|EP!1poj5 literal 0 HcmV?d00001 diff --git a/assets/icon/icon_new_person.jpg b/assets/icon/icon_new_person.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a3625b131da703ce085e2c7b8da15a9ec1c0f78a GIT binary patch literal 2461 zcmbW1dpy+n8ppq5W(?yx%nYR(7o@NPdI(#hBk2XU}WT>vjG*=RDu%`_K3Cygu*e`Fnqg3ECPO zx@28~K9NKsY3djll8J_TL=tf&2nwydgTbm}vFb!E4K3pTY{(NpPy?P|D;i}2R0t?E z0fq1Y1ppLQsdh#1zYL|K)ToM6Q^#v4547k46%-n+fS2Ojv(@xsm3z^wRp2|?ilMM`4tv0u?TyM2u3``c|k z0e=q+3f>bEdf?!p!%;_$eiwT>?o50_Vp3*S_76F^dCa2Xit0vyL7ukPs5tLji7z`SNTj4^f#49J7fWcC2RrTEcaS@To?a|wVZ8l@~AngD2EzHuaf{^hGjMiNh$4t1CM zk#+=Gk4&DPHA@#7QFG&C3yVh_C;RwwG}tnyi=Ices!O=a-!;DJ9__KiV#SA9p9k-L zzJgC}4fGqbcqNp)o2rn+kd6`ZYx5IgT5>&wwjraZHw!a^WX-ZzPWyh;je{uQreQik3_3y4JkZ*T%j49{jg??3>C4KrV-Bwu4U3K%f+JXchN z0NphyqmIyQYLFBGxsClv>svJ_mmXf0>mfk$F7t~+{VvXu7dA5r+Xwsm8Z0=Ma_0`? z?cu?IC6lz_efE$6Z^(_55?&-O3S-@FPpr+JC1)OryKnqWnQm1gwE06S+>1;gr>B+i_mZ@O*OPr|*bF7Vc>}~>E zoRjq_Ib+AdVqnX!SqMm!1krwD7P3njkdK0PgiAuekTzr4>IZIM?M#(Ioz8-li_)t3 zH3(P?&`PTfNY0~R)B3ng3sY#BrBwA!Jsix}cNceaQkjCaAyb(3x+)dKf>S!Kv-<)N zpy|G}3jx2sOGH4n8CM>jx-4Z2g2k6R!jpUrcx84k=jwyZwajn!p-fcl?3@n<(-5Fl z1NkYK>sSb2RJWof6gW~xkfX?P?vY!WD^oaG2m3D>D_)Kg;X?6?Pz3P%x~f9yUSA4- zuJ1lkueSeSz^X{24Qk`Umekbpv_UQ|ZaHXhXOm39`g*KCWBq}p%|?IxgkAS$@HV=z z@Pz?bgDUe)JEKe}ogwWI)0a>8Bj8efTCQ0Ql^VXM;J#C5Vi#XHJlW1@CSR@`g85Iw zn)@p4!?t7E_7;}#KlRY8kMCtgc=VpTyX4A2KsrUoXs~165&_2MB*77ZD?4W{|I4rZ z(vR1DFW#O&-I=%g?5*XUag*xP)4>9SZga{Ev|`U z$Z>wMT6!}}PK@0JQ)CB%ptzj$@_uO_(>i?gb+g+slGa7k&fv0^F$6#h#~F$|{#68I zI?>?Qu3NSYJW`eca|$YXC!o?S&iHbvx z?%uBYSYmNZ!%Cc5AI(ISY)t$q~Kab58VI(;^Y*I-ju_qYnp?(v!uGWPJ(Vz zs`0|^VB^KraEAi_$+?-L88LHE?R+)uXE}y__dJ(=nRed17A8g|7U+C^RE$NuAr)O zwd-fyQHR3#XhMO#$zBg1R*EVuy>Wmk?_6%8MR5(&dJwRRA&yJgR1ouFJX#@i;&||% ziCNR=>Pcc2JLbm%$3{;mSWe1+8vFi?w9}2;|KU^IW(x;%v+R)vdoOrPHk7vA@D?lz z&$@giId&(mE+OXIf#{6v+3C8-E3%>JLzW~q0`SRC=yPTX%ASLDK!DsU$82SwM#SM*@FFOIjmq#*DfD(bYX#%)4d zN3vn`2JQNH*0ZtmE(plTo|x%oh^O-wxB^@Ewz6|ItNyI$z?=+yc{`;#(s{P)>QSVKLcp8V;u*AxL_^iLC zNr(5xq_gKt+m-)Y*~n#qAIh*0IUVZj2r8pMzg^KTz8RWf$~k*N{Y{adS@9peUR2XE zxE-Rjv)49HxjpB96ViYEc45W65vs?zC#r9fL}`IzY-n019RYLJ&y`VQyokT!?QAULciHKnT@!9F Jtx(ADKL8EKg8u*j literal 0 HcmV?d00001 diff --git a/assets/icon/icon_role.jpg b/assets/icon/icon_role.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a46d88335c03fd5af1c73cba1635d33a0121b9b GIT binary patch literal 2375 zcmbW0XH?T^7RLV}`BM^FAR!qppThS3#jsn@b>2$sHId2ZC}a1%v|Xf0p~xxKWiN1%*e z6lxD8w@g;wp}rOE*~>QA8x)-)2Uo+WYiu#xX0+XShXrome#-+^j)$C_U0mG`dmZ;a z;p2PKFE}LhY}mQ*^D!4mmty07y_}kso^j>3%&ffp-wO(hZr-|0y;ojwzw*JuM^74P zjZIIVH9v1_@96A${pM|V->3f11A{}uBdp1(uhZXVX6NQPOUo;(Yh2#?#wHg8fc_Kf zFS7sOLQ1%#U@$05W|Ipd6)QPVBn;eYF0EqkArly-s<($Ci*m>* zLhGI3TR(~n&MgXh%mpce?a*bS2(Hg}{u0NXG8orkzs{@;VRvQ!(v;U8y4PS&Kt`~! z0k%}bd!_sKy7OS?(Ub3Dr+f|Z+o*}bn$EI;3p%d@&vfhpytl6=l`DR$@Kz4gDr_0y^gD<;nj85IIf5X|y z^z1PYCluh5E*kU8E-B_43l7B(r=`c|0#Cg8$u3E;*9VuV$F=)xw(`Y!z~6-L=BKeR<5{Qqu+>w^ zLBXp=7G5~mjXAc?r)N*SALcgA+=-v0*1llvZ?_>#$#j@v+WfRkP1h={UO$tsHlLZv zeTnul5N?NZ2ivWtb20_{%fDNNFfJ887;%av8gVCcp=E;OS)ZyW6lV7^(Cj}8s6(~y zO!xJfSYrAtKkDVYbqYV>l#cSS1JU5ZYEv=M@WU9#-@j|m(tDP-OEYen+kqXOVD_}n zeQhf4l&ku3550TNys=B21Qt>3bU-lxS_yAeo6#-B0LH>nZPcS7?(P6JJJL-5l59Si zUfo^UkDMdi`phLS;3Q`K$Gm3t_W-uf6>B4##=@Ha+(MZi3T(ycd>PwBtr(}t!R zrYCiaTE#%awj#DW>r(L~;zekFm+e;C_4%bqr}Y|Yq_!^MC#n6HpMLb|DSeXj!-!>L z^h&KoMYQLg{H0jsis{;0r2YA@-N@$CF|CFa*mixWHm|NZNhcwi7t7f;e`If)&dxqk z@l|hN^yHYyo(D{28_R_`&o5n98MeH)OmceOh|}aEYOX{lZ^7NJh%2>MSKC#Zj$KO; zwurET1H42VF_5wyQQdwh+1z(Dm^75DpN3#Jz82kCTD zWMtG>*h@9LK%V3WK{+p219f+a1f;;SAr9}?QLk1{4BqLY5r;L3QfRsN}PkqnPSW*M8BTAcOm{C<)q3$HBt_I@TAeNeHSPazy3x7X0O ziUIpf{Nk_}*s{ewW*R?Qx>n7R=@bK*Rukzo{`%hpXzI9Im_oVy@c??ry?5Je**i6% z_sz!{C#o=9ukneou~T`!oXsu&{c-DtShC9p^X5tv zn_Zqg+gNcr?dcJMZiQoWK}x&K%mGWbv=E!PQ0{$nvBsZE9%xb z72=8rwXs|zoa13Su?l!56%W#cn9dySr&m`#dqv56!kU{(HGk?2ThyPjoEus)xy#!n z24H{kBG}~4wQ+;+2y2&zC!ZC*Kd*V{nB@T_8Y!?#Zf?#a9+d!2VKec{4CAE!QUzQ@ zrl04zjTN8Up|stG_xz=wVye4Gee;sSZiJ1Fw4D3Cv@C+V*NA~OZ9YL@&Cwd@J3_1s zw@MuLR$sQR;$I1caqa{!qm5pd@^*j|Io43yE6e~riGSpe(X?XEl0#vxk+HIC`58t~ zn~eBRjjx2(*C&l{rA6x(Fw@UOtyX?((WM8n2-gVpe-<$DnPhfJ6BYO23GN0XkMvGA z|6Rc;R(~aU#c?c(U`K8r_<^5wV2FX17UB6~u;)H*acF|slGzwvOt>U*yL(4zzeLS;8%`boZt)bVnB5drf&YI61(YtyJ?TAAbLR$s1zJo+k zXoh*Z{EwOCAUA53T?p^qE88uc$EhL}1(~A**EE*0SDzdX?m49 json) { + teamNo = json['teamNo'] as String?; + teamName = json['teamName'] as String?; + scene = json['scene'] as int?; + sceneCustomName = json['sceneCustomName'] as String?; + teamCode = json['teamCode'] as String?; + isOwner = json['isOwner'] as bool?; + owner = json['owner'] as String?; + isVip = json['isVip'] as bool?; + personName = json['personName'] as String?; + personNo = json['personNo'] as String?; + personPhone = json['personPhone'] as String?; + personCount = json['personCount'] as int?; + isPersonal = json['isPersonal'] as int?; + isUpgrade = json['isUpgrade'] as int?; + isBindEzviz = json['isBindEzviz'] as int?; + state = json['state'] as int?; + authStatus = json['authStatus'] as int?; + } + + Map toJson() { + final Map data = {}; + data['teamNo'] = teamNo; + data['teamName'] = teamName; + data['scene'] = scene; + data['sceneCustomName'] = sceneCustomName; + data['teamCode'] = teamCode; + data['isOwner'] = isOwner; + data['owner'] = owner; + data['isVip'] = isVip; + data['personName'] = personName; + data['personNo'] = personNo; + data['personPhone'] = personPhone; + data['personCount'] = personCount; + data['isPersonal'] = isPersonal; + data['isUpgrade'] = isUpgrade; + data['isBindEzviz'] = isBindEzviz; + data['state'] = state; + data['authStatus'] = authStatus; + return data; + } + + @override + String toString() { + return 'TeamDetailsResponse{teamNo: $teamNo, teamName: $teamName, scene: $scene, sceneCustomName: $sceneCustomName, teamCode: $teamCode, isOwner: $isOwner, owner: $owner, isVip: $isVip, personName: $personName, personNo: $personNo, personPhone: $personPhone, personCount: $personCount, isPersonal: $isPersonal, isUpgrade: $isUpgrade, isBindEzviz: $isBindEzviz, state: $state, authStatus: $authStatus}'; + } +} diff --git a/lib/api/service/team_api_service.dart b/lib/api/service/team_api_service.dart index a3aa50b..424c673 100644 --- a/lib/api/service/team_api_service.dart +++ b/lib/api/service/team_api_service.dart @@ -19,6 +19,7 @@ import 'package:starwork_flutter/api/model/team/response/depart_list_reponse.dar import 'package:starwork_flutter/api/model/team/response/invite_info_response.dart'; import 'package:starwork_flutter/api/model/team/response/role_list_response.dart'; import 'package:starwork_flutter/api/model/team/response/scene_info_response.dart'; +import 'package:starwork_flutter/api/model/team/response/team_details_response.dart'; import 'package:starwork_flutter/api/model/team/response/team_invite_parameter_config_response.dart'; import 'package:starwork_flutter/api/model/user/request/validation_code_login.dart'; import 'package:starwork_flutter/api/model/user/response/token_response.dart'; @@ -95,6 +96,16 @@ class TeamApiService { ); } + // 查询团队详情 + Future> requestTeamDetails() { + return _api.makeRequest( + path: ApiPath.teamDetail, + method: HttpConstant.post, + fromJson: (data) => TeamDetailsResponse.fromJson(data), + ); + } + + /// 获取邀请信息 Future> requestInviteInfo({ required InviteInfoRequest request, diff --git a/lib/common/constant/app_images.dart b/lib/common/constant/app_images.dart index 930a7d5..55488d9 100644 --- a/lib/common/constant/app_images.dart +++ b/lib/common/constant/app_images.dart @@ -57,6 +57,9 @@ class AppImages{ static const String defaultAvatar = 'assets/images/default_avatar.png'; static const String iconLockGroupItem = 'assets/icon/icon_lockGroup_item.png'; static const String iconLockTypeDoorLock = 'assets/icon/lockType_doorLock.png'; + static const String iconFace = 'assets/icon/icon_face.jpg'; + static const String iconRole = 'assets/icon/icon_role.jpg'; + static const String iconNewPerson = 'assets/icon/icon_new_person.jpg'; // 底部导航栏图标 static const String iconHome = 'assets/icon/bar/home.png'; static const String iconHomeSelected = 'assets/icon/bar/home_selected.png'; diff --git a/lib/common/constant/cache_keys.dart b/lib/common/constant/cache_keys.dart index fee15fb..5302e38 100644 --- a/lib/common/constant/cache_keys.dart +++ b/lib/common/constant/cache_keys.dart @@ -9,5 +9,4 @@ class CacheKeys { static const String starCloudUid = 'starCloudUid'; static const String starCloudUserLoginInfo = 'starCloudUserLoginInfo'; static const String userAccountInfo = 'userAccountInfo'; - } diff --git a/lib/views/home/home_view.dart b/lib/views/home/home_view.dart index 7edcdde..851c765 100644 --- a/lib/views/home/home_view.dart +++ b/lib/views/home/home_view.dart @@ -243,7 +243,7 @@ class HomeView extends GetView { ), HomeTeamNoticeRowWidget(), HomeStatisticsRowWidget( - personCount: 0, + personCount: controller.mainController.selectedTeamDetails.value.personCount ?? 0, deviceCount: controller.mainController.deviceCountSize.value, ), SizedBox(height: 10.h), diff --git a/lib/views/main/main_controller.dart b/lib/views/main/main_controller.dart index d177871..f47384f 100644 --- a/lib/views/main/main_controller.dart +++ b/lib/views/main/main_controller.dart @@ -11,6 +11,7 @@ import 'package:starcloud/sdk/sdk_device_operate_extension.dart'; import 'package:starcloud/sdk/starcloud.dart'; import 'package:starwork_flutter/api/model/team/request/bind_team_star_cloud_account_request.dart'; import 'package:starwork_flutter/api/model/team/request/change_current_team_request.dart'; +import 'package:starwork_flutter/api/model/team/response/team_details_response.dart'; import 'package:starwork_flutter/api/model/team/response/team_info_response.dart'; import 'package:starwork_flutter/api/model/user/response/user_info_response.dart'; import 'package:starwork_flutter/api/service/team_api_service.dart'; @@ -50,6 +51,9 @@ class MainController extends BaseController { // 选中的团队 var selectedTeam = TeamInfoResponse().obs; + // 选中团队的详情 + var selectedTeamDetails = TeamDetailsResponse().obs; + // 设备数量 final deviceCountSize = 0.obs; @@ -106,12 +110,14 @@ class MainController extends BaseController { // 构建自定义图标组件 Widget _buildTabIcon(String unselectedIcon, String selectedIcon, int index) { - return Obx(() => Image.asset( - currentIndex.value == index ? selectedIcon : unselectedIcon, - width: 24.w, - height: 24.w, - fit: BoxFit.contain, - )); + return Obx( + () => Image.asset( + currentIndex.value == index ? selectedIcon : unselectedIcon, + width: 24.w, + height: 24.w, + fit: BoxFit.contain, + ), + ); } // 打开抽屉的方法 @@ -155,6 +161,7 @@ class MainController extends BaseController { return; } selectedTeam.value = myTeamList.first; + await requestTeamDetail(); // 设置星云账户 if (selectedTeam.value.teamCloudInfo != null) { @@ -221,6 +228,9 @@ class MainController extends BaseController { onError: (err) {}, ); } + + // 请求切换团队后的详情数据 + await requestTeamDetail(); } } @@ -245,8 +255,6 @@ class MainController extends BaseController { void requestUserAccountInfo() async { var userInfo = await userApi.requestUserInfo(); if (userInfo.isSuccess) { - // 保存到缓存 - // 方式1: 直接存储 JSON 字符串(推荐) await SharedPreferencesUtils.setString(CacheKeys.userAccountInfo, jsonEncode(userInfo.data!.toJson())); // 从缓存中读取 // String? cachedJson = await SharedPreferencesUtils.getString(CacheKeys.userAccountInfo); @@ -260,4 +268,11 @@ class MainController extends BaseController { // } } } + + requestTeamDetail() async { + var response = await teamApi.requestTeamDetails(); + if (response.isSuccess) { + selectedTeamDetails.value = response.data!; + } + } } diff --git a/lib/views/main/main_view.dart b/lib/views/main/main_view.dart index bf633ef..b401e7a 100644 --- a/lib/views/main/main_view.dart +++ b/lib/views/main/main_view.dart @@ -39,7 +39,6 @@ class MainView extends GetView { selectedTeam: controller.selectedTeam.value, onTeamSelected: (team) { controller.requestChangeCurrentTeam(team); - }, onRefreshList: () { controller.requestAllTeamInfoList(); diff --git a/lib/views/team/personnelManage/personnel_manage_view.dart b/lib/views/team/personnelManage/personnel_manage_view.dart index 0df1552..6bc6167 100644 --- a/lib/views/team/personnelManage/personnel_manage_view.dart +++ b/lib/views/team/personnelManage/personnel_manage_view.dart @@ -50,8 +50,10 @@ class PersonnelManageView extends GetView { children: [ Column( children: [ - Icon( - Icons.person, + Image.asset( + AppImages.iconFace, + width: 24.w, + fit: BoxFit.cover, ), SizedBox( height: 4.h, @@ -59,7 +61,7 @@ class PersonnelManageView extends GetView { Text( '人脸信息'.tr, style: TextStyle( - fontSize: 10.sp, + fontSize: 12.sp, fontWeight: FontWeight.w500, ), ), @@ -71,8 +73,10 @@ class PersonnelManageView extends GetView { }, child: Column( children: [ - Icon( - Icons.person, + Image.asset( + AppImages.iconRole, + width: 24.w, + fit: BoxFit.cover, ), SizedBox( height: 4.h, @@ -80,7 +84,7 @@ class PersonnelManageView extends GetView { Text( '角色管理'.tr, style: TextStyle( - fontSize: 10.sp, + fontSize: 12.sp, fontWeight: FontWeight.w500, ), ), @@ -89,8 +93,10 @@ class PersonnelManageView extends GetView { ), Column( children: [ - Icon( - Icons.person, + Image.asset( + AppImages.iconNewPerson, + width: 24.w, + fit: BoxFit.cover, ), SizedBox( height: 4.h, @@ -208,7 +214,7 @@ class PersonnelManageView extends GetView { width: 34.w, height: 34.w, decoration: BoxDecoration( - color: Colors.grey[300], + color: const Color(0xFFEBF3FE), borderRadius: BorderRadius.circular(8.r), ), child: ClipRRect( @@ -216,7 +222,7 @@ class PersonnelManageView extends GetView { child: Icon( Icons.folder, size: 22.w, - color: Colors.blue, + color: const Color(0xFF5B9CF8), ), ), )