From ee7e2e9acb506cb47c96db28976943078addded6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E5=A2=A8?= <2291200076@qq.com> Date: Sat, 18 Mar 2023 17:52:56 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=EF=BC=9A=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E6=8C=89=E9=92=AE=E5=8A=9F=E8=83=BD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=EF=BC=9B=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=E3=80=81=E7=94=9F?= =?UTF-8?q?=E6=B4=BB=E7=89=A9=E8=B5=84=E9=A1=B5=E6=A1=86=E6=9E=B6=EF=BC=9B?= =?UTF-8?q?=E4=BD=93=E6=B8=A9=E4=B8=8A=E6=8A=A5=E5=AE=9A=E4=BD=8D=E6=9D=83?= =?UTF-8?q?=E9=99=90=E8=8E=B7=E5=8F=96=E5=A4=B1=E8=B4=A5=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=9B=E5=88=A0=E9=99=A4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODOs.md | 14 ++ weixin-miniprogram/app.json | 15 ++- weixin-miniprogram/app.wxss | 15 +++ weixin-miniprogram/image/icon/_shopping.png | Bin 0 -> 7442 bytes weixin-miniprogram/image/icon/shopping.png | Bin 0 -> 7489 bytes weixin-miniprogram/image/icon/shopping.svg | 1 + .../image/user-center-bg-v1.png | Bin 0 -> 65727 bytes weixin-miniprogram/pages/index/index.js | 104 ++++++++++++--- weixin-miniprogram/pages/index/index.wxml | 15 +-- weixin-miniprogram/pages/index/index.wxss | 25 +++- weixin-miniprogram/pages/index2/index.js | 48 ------- weixin-miniprogram/pages/index2/index.wxml | 23 ---- weixin-miniprogram/pages/index2/index.wxss | 19 --- weixin-miniprogram/pages/logs/logs.js | 18 --- weixin-miniprogram/pages/logs/logs.json | 4 - weixin-miniprogram/pages/logs/logs.wxml | 6 - weixin-miniprogram/pages/logs/logs.wxss | 8 -- weixin-miniprogram/pages/person/person.js | 66 +++++++++- weixin-miniprogram/pages/person/person.json | 4 +- weixin-miniprogram/pages/person/person.wxml | 27 +++- weixin-miniprogram/pages/person/person.wxss | 67 +++++++++- weixin-miniprogram/pages/residents/report.js | 28 ++-- weixin-miniprogram/pages/scan/entrance.wxml | 2 +- .../pages/shop/components/good-list-card.js | 37 ++++++ .../components/good-list-card.json} | 1 + .../pages/shop/components/good-list-card.wxml | 22 ++++ .../pages/shop/components/good-list-card.wxss | 82 ++++++++++++ weixin-miniprogram/pages/shop/shop.js | 122 ++++++++++++++++++ weixin-miniprogram/pages/shop/shop.json | 6 + weixin-miniprogram/pages/shop/shop.wxml | 17 +++ weixin-miniprogram/pages/shop/shop.wxss | 71 ++++++++++ .../project.private.config.json | 5 +- weixin-miniprogram/utils/menuList.js | 21 ++- 33 files changed, 712 insertions(+), 181 deletions(-) create mode 100644 weixin-miniprogram/image/icon/_shopping.png create mode 100644 weixin-miniprogram/image/icon/shopping.png create mode 100644 weixin-miniprogram/image/icon/shopping.svg create mode 100644 weixin-miniprogram/image/user-center-bg-v1.png delete mode 100644 weixin-miniprogram/pages/index2/index.js delete mode 100644 weixin-miniprogram/pages/index2/index.wxml delete mode 100644 weixin-miniprogram/pages/index2/index.wxss delete mode 100644 weixin-miniprogram/pages/logs/logs.js delete mode 100644 weixin-miniprogram/pages/logs/logs.json delete mode 100644 weixin-miniprogram/pages/logs/logs.wxml delete mode 100644 weixin-miniprogram/pages/logs/logs.wxss create mode 100644 weixin-miniprogram/pages/shop/components/good-list-card.js rename weixin-miniprogram/pages/{index2/index.json => shop/components/good-list-card.json} (54%) create mode 100644 weixin-miniprogram/pages/shop/components/good-list-card.wxml create mode 100644 weixin-miniprogram/pages/shop/components/good-list-card.wxss create mode 100644 weixin-miniprogram/pages/shop/shop.js create mode 100644 weixin-miniprogram/pages/shop/shop.json create mode 100644 weixin-miniprogram/pages/shop/shop.wxml create mode 100644 weixin-miniprogram/pages/shop/shop.wxss diff --git a/TODOs.md b/TODOs.md index 58e683f..520d7be 100644 --- a/TODOs.md +++ b/TODOs.md @@ -10,14 +10,28 @@ http://106.75.217.14:8488/nacos/index.html nacos socan + + # 启动本地 Nacos + E: cd E:\nacos\bin startup.cmd -m standalone + + # 内网穿透 + cd E:\Project\毕业设计\epp\intranet-penetration\bin rathole.exe ../conf/client.toml + + + +# 微信小程序后台设置 小程序最低基础库 2.21.3 + +https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html + + ----- Nacos CPU 跑满问题 我提的 GitHub issue diff --git a/weixin-miniprogram/app.json b/weixin-miniprogram/app.json index 37db4bb..6c6b59e 100644 --- a/weixin-miniprogram/app.json +++ b/weixin-miniprogram/app.json @@ -1,14 +1,13 @@ { "pages": [ "pages/index/index", - "pages/index2/index", - "pages/logs/logs", + "pages/index/login", "pages/residents/code", "pages/residents/report", - "pages/index/login", + "pages/residents/reportHistory", + "pages/shop/shop", "pages/scan/entrance", - "pages/person/person", - "pages/residents/reportHistory" + "pages/person/person" ], "window": { "backgroundTextStyle": "dark", @@ -40,6 +39,12 @@ "iconPath": "image/icon/_report.png", "selectedIconPath": "image/icon/report.png" }, + { + "pagePath": "pages/shop/shop", + "text": "生活物资", + "iconPath": "image/icon/_shopping.png", + "selectedIconPath": "image/icon/shopping.png" + }, { "pagePath": "pages/person/person", "text": "我", diff --git a/weixin-miniprogram/app.wxss b/weixin-miniprogram/app.wxss index 75f4fde..13fc154 100644 --- a/weixin-miniprogram/app.wxss +++ b/weixin-miniprogram/app.wxss @@ -1 +1,16 @@ /**app.wxss**/ +/* 右上角小红点 */ +.add-dot { + position: relative; +} + +.add-dot::after { + content: " "; + position: absolute; + right: -8rpx; + top: -3rpx; + width: 12rpx; + height: 12rpx; + background-color: red; + border-radius: 50%; +} diff --git a/weixin-miniprogram/image/icon/_shopping.png b/weixin-miniprogram/image/icon/_shopping.png new file mode 100644 index 0000000000000000000000000000000000000000..efdbbe9472e0e21fe1ac954afd0d7befe4d76bed GIT binary patch literal 7442 zcmbt(`9GBZ_xEM2Ax!p2)7V1RvG2=_rAXH7vW*bgvTuVo6J?hfM9K2D@B1FIjXfhv zC?eSnN>tyg@8@&hf53hJa9!7VT#xfw&v~8me4f|Sdv|p%(_WgwK39Q9qVO4}DH^AkC$UE~fHDoh2>ToZKYEZ|JeTzB*+s9zhw$AI zy2Adg$I@4=3*FkN0Rm;z9Hi$sdg<3SpbFK`WmQQOO=J^oYlpQj6RhZiFf3tuIGrM^ z%781t4g+w``Y7U-Uo-D#QTUMx+Dq|hp53cMoi=-;)o+vdLd-S<4$q?jlvtdJM1n6M z-~G`mzx&}-!TF=!u0Qph2N0pvGHk(D4yfeY53PV73KwL79M4w{J__#Z>oa6?sIm79 z!mQ(h;fnoBl1S%#ZuCg3m_|QoOO_DEaSY?RAcI(d^7xL-t z`D{LM3_60;<_=2G%W3xi3HSl=;{4Rso;Z|Gwi?T)7h#6&Rh9fq=_onnz%j1bpHJQ+ z%T`nM&3!pDjql9rKIQB{ZxF^gH&=q5QL8`Sd1ra{Bhz87e3IJxS&aZaZ#x*L0Gz(h z1bX<4-Zr#!be3@O(~h6d_)x zd7|Mep7KOr3L4%QhPWB@drY;od`u16DyEkf|7a(t(=J)%^g}tazr*4>1t4D2>-sg6 z4&J4jv^I!1-pvuSgLxRpK*QMpRg?FuQP@a|C=%!nvnWrP^mUQvx=e@HC?jh+((sJp z?mNuAN$f*c>n*D1n(3lfWq}WM*kPF!F2a#_{k$}F{%to0jtBs%W@SnMyl*0MUP8La zqQC}O8XR#YfnrTI?D3Xon*HD9a>lrPIY(&ra!oJb0Cy_1uFGpql2lGtgSep|gz+z~ z^-KN80B~*MEqRlsrl!c*#qA!M_vFgL+d61cu|w8re60kx1KV!|xA?>#C@W~2HA-50&aGkq8L=eIFrH7r0zd)S4 zN9TxxCDjRZ2Rj}vX0mNc2!K3(0t5vnUFx()q6PGhOc}WT(R}*#95`s=)_&}?Ve7Xl zNYSuQc_r?XKa!Bn>dX(|#HX4AW>}{bnjOa@IyAZ1;XJH^hXYm@$exoqfs4(t^VqzVB&>^K2%B4Md5c`#6ZEx3Y!hW0| zeHm@;+RO_zZ%Jrgyf|)DSA6=Bhj=#uyR)*ZV==~oT1Tgk87Yj*N!DAc?u`=XAeZ_M zERY@d6i8|hHkw6h?>Zoz* z-x+ED(RnP~h43g~y{Z|SI{&!P0OPk1blQF#SYPUM54yNTxHvrYz6PzTU;MUnyc-Z2 zG*y6#LKAtNJWBkzE8$O90>&Oe@_4uQRufjP|71^i zW#ow3Q+dVZ*K#A|M!||uH^lXdu6PlHsK=4$4tgQhO(aF;Vr7I-Y=fL@tYRLToSZCV z6*0#_Bo~}7{q0%c(vpL%9PdZYNhiX^#i8ct4JN0brM zmUC}hxb`C1)PqsET%E97svu1K$;1bb(M!XHyE--HLM%^)X5AYDwu--}RY7&%OnneA znDGE$`@sqNf6Zlx{qa_{gJ`DZ)o3Mtb)U(?4&x8;pwjSGub=O*XMNcF3Ty>+1J#BxO z(xIpl`IaWNV%k+?aac)xX^wcCartB4U(|+6OLZ)uPe>?J9*p+4fp}I<$7XI5aM3EIM^aCLwp+1HtU6<8h``GM@$+#ETM_2f@e4R7& zE~O)P!q6wZG#krt?>fs$8yM30Na1<=gy5pL`3V@MVWS1*ei+*t99@<89%Y*6o@c0;4|S<>rm-ANzcXxUIiN{D zVNyP6qG6zN&k(ubvaAnz|ISQSY_MgJb;zPt$H>17`|$RMkAsBF2*NHE=Hfb_-`FX^ zbofI)sd3Q7K>V`uBAGpM`^qJ$NuUTFW`h&@gmqV76!N zjpzBb5}CAxcGdA3Of_hAY|9<)!3|3L*$(vzw^81d8_?Fi1zw=g?KUqjZzij8r77&W zw$p^P!Q*MBc&t*t&m*ZP|7NpeWjuo^jvS$_bD%PX#=!_^w|XjTieh67(#XFC`>>2t zuhM*Rr>cD~MDtEGsPE^F*=d-$o6}$=>PIvFGeoOj>$7~iWU$wvRfq8J~fUPcNO>P)1oG z%KoB#vXC8na`NInteYz8{(J~)DqT9CWbo8~x4x;kHpQ@~nxykhRYc6U9sQzngn_A?$*BJPX9Rk=>6Jvqn5k$=B%~*< z$tZEiM=vdGlx_3;{-Ao2Bgzm#$|!?Z>%;su2=m_abuQX4q5(2VH?6;r;iOWBgQoAm z8)>@Rm8baRTgDk_Q_XhZo(Qw9V0uAtf1Q_G_MV)Sly8j8B)PEDE4%7_E(%N;jUf}o zqIsrUtrUhSRZr60Zn|=@r>AF}j$O>=!R6zq5e}S;2XQB$z0!a}E)kz&Mq!Uve=D)X z1s#*BesX8V|2#D{wcCPR<&_lGx09a%8ca(im(-D`dTHz0mu1C^Z)3RQu-V_S{@&i+ z-wqCHzWw4Cci^dZdhqb!!;u75kr()DJ56k5gk&?kdcn=98$VBGgHAdws2bZ~t$@hwJ?MRb6z(q! zUalKin>?*@tGQ(Gw#$HYdyR-l{JkP|f`*XagOMf|;hSzA@4t)Zlfk82nhnl87f)@` z5hbGkVt;2|;-l{?XF9x`pmBl2uT=bZ7?;1pSR*4|@D2Bx#e(ZExY?$MJT;~NnM1hn zq8!%}Mn_@0$N*w{4fJqBKFQt^^&|6AELLAQtIct;1mTxDzshv!C8Xup4zxXUE>As9Q@?y8BYvEltm=(k)(+WGJJaT>63xuE+wIvcA#Q z(aCRj9=<~2Uv?`;!VqXekVB>Uc{;ifD=(L{w&GsHVB-H(Yv%PixcDkK;{r@L{|64_0x2(=2b5dB8b6fb~- z6sd&!hb4))OMvgbfqcOA~M5(dLIdE%?d}J&SUzX_h2a(dNci4D^8M^W9%C-zE@;{SANy zs)Zhw`*252KIzD$iN$s?0*_7TPwx{tx*=IyQlY0imG`S`f_2mQvUU2FekV#xg#SG5 z9ZnbgV}~S261md(THAEbx9d^JZi=Y6n-{;L@GDh4U!qOHMz zYD&W`JKMG}9{#z^y*wr+hKrt&G1;9yfKDKxzzOL*md#bHyzm?wWH7&i!+tdeCU@R- zfr-X{%)t!O$_i}Uq&mNhj!1@NT{5no3%tg`AunMtqs8P?G3FC5RbMP@Ud&;?wG+-B?GhhYm*f%t3rwzEZrSKD!xJT-B@Co{Sz;D7Jr$~7ypYEz zpl12GC_GX>&3SN%%;M_5NZ3M=D)55_@u%bqNB*n|ecza(P`tEWYJSzMyY*&iGEVNd zauD43{1*M7h$TPLEyxzC%c zRGBpjavBVISgV6P{w{SdM0=&fA)C0MTDfZoo~uza38JJAZB#068N{(y;r z5*9y37qQ2Nno5Nq@fN*qx2`1S4kWVYyvekEob@aL%~d>c!YK4m(j13l(;OeI7MxxtsOFjeBY zDMdPOT%B#vep73mT}+Y*K(6zH>BaHYxD_iTSOK1$j3QP(jK&TvX(Tl;taJ95T z_!~zo(*sJIEoD`X8(O}re<(k?mAsU7YqTmGgq6>MIJ@aj&TSYU_39#+o#Vz4>`K4G<@Vuq2M zAm~a5R&7v|cksbOIr znlhZ{%HW|Hia~fV{__lO{@JKyxh8C5&tVU4Zh-uq!Z++?{_5GwH#dJaU~^y8p8ssy z9Vei<42mk%eKP7|Wa+i)U!v+o&Xv&-`FDI@(t$BM5qenJ6oc%yf9G>yWo`4~_e_al zGBmc?)VqWBBLnO#ck?r4b zUyOsyuWv%8(qgb#{XRBV6%@W@D(Ae1bpLRDX$F_ldu>P&6;tO(oU4AOQ!Yc{TZ{Fd zy*^yq;w{GHNgL*eluL5*Bg-IyDWW&yTzCi*tf3l%9~&H+wqil~5r|pbD}F@&17n^_ zBGb^>OPpu0kKNA#S`1G7wbBPEUUu%T%H>vazau%YGjsrzg zqOhhyp~&?iK0UEv#D|Ix67?*P*1_y%-1Jlbe`g|do-`>x2|WquAT@FZIm zzny@xM;Afb3hrB)>?-4Rfwt3)Zxj;ok}3wVHrGBATneEC6F8N zbZfKpCf7@dtfmfpX8T=RWpEm&RA_-p=L=LUXfA+z@1WRbT zW@%QsU;oanE)KMFhb59>=21W4o1l{#iRQ_d)zwu6vkbW*jyIN^rkOqJ{ggi3n|kW0 zGW}-1a%p3+zv+QRYt#?@O+%^r;jM+)u}4Pp-hG!DnN$17UZvcEaZ-0^BCC-7`Ny{% zJ>gP`GTG7cU=X829Hq7AcwlgfbHr9W(_yT9lK7B{RXo+z=Tt>*?y-)`Mg;9XACKbTmtRg&Aru1mEZmU1*ck6N!d#ut7~!LxcSN{eyPNZ{QTwg$Y=Scx7@pp0Wf@AI_K0|0Q^irZ~s_UJM zefwMF4je?N%2e`iJ!xxW21Wsx9rhGa!FQi7%-0L2Tp5tZJc)(If6IL({RLHwnlud&?a98;BqN2(2H zvb`Xp_PbaJsV^B#V;-j{Fc^5;#UiNZdqB}Hd*Ka$aQZLWrIpJ-G@;Hw_j)g#8JlUk?(0j&Dt! z2$gNPgTXzE79V0GcAqHX@iPBxvQ{bg^OGZwp}=H?wn`6Su?0I@q^>{0vwaIA!05?6 z$Skv)l&G+0b=`>NnkbxI2x2o%;1UMcEC|^$wfYtR#D43 zxA%bph-nv=tnjvqP~ANJ5Y+7EI03u=^%>?rfJ7j*xmaPiVe2ot2FuIs(zk$~V>>1K zLT=ZUUhL5Or;;a*6*<_Q48CDak5~LXnd+w+{am-4tY^bPmX_|NYF){hKB(OHzwlYa zyg~xMTM4S?@C`q%z`OwNLll-+l53xNngyZ*uDlVDO&*>Apikc=V7XKIo_<3XJXaHB zw@-rL$IV3^>5{?|ouaS}MPL-U;t-83$a-X6?U*H2*EHo?G;TKV);os@2_bO-)r z*wV<02KZ+vnt@eb1S^73rU0^OjrN^3NEO=aO5a(?k^WbJ+;W*zVMQ z4Zu7MBH>gWdguxb1r``h278cKhIWCP#3ZWZBl?PT%->3fi{IKhR3xDQfkdWDSM3~z zo~w)i@I1~zpRM7wTpB)lt&@Q7JTKL*2Mp8e|GT>vCjxKl%S{!+%RTN=G#8)6?+!mQ*D~Sm1T8nkrGeJO^D=S0IhuX zEy1G4vZKSv@qyIjj8E!txDfbVYkr8O7N0#OP|rRnH_>B3ZzBl5{%_fcj|;?dOq&HI zm@p&+)KqqBE0cRj9Nb4LizKa)%AJdRF}U7|Je5#VrpSFB40hw|mnGp#hg~AB5Av`! zwY^kaHnk6Wql?URW>_JX>9Mb0zXr=w9*O4VjS6rtV;PO*$TNEE5ObrIr(30YsB=(I zP(xVqyo&!z^}6`I&=9H-S8(&gk~-sg(4Y`6I1z8B3SOsu@!L^3mH-763GtL8g;Smo94PSQDPIpc1FyX@CThP=_JP9j!TQO}Kdj62J Y4A|LsUf%QrFF64{)Lmqi=7Z?}0d@W0I{*Lx literal 0 HcmV?d00001 diff --git a/weixin-miniprogram/image/icon/shopping.png b/weixin-miniprogram/image/icon/shopping.png new file mode 100644 index 0000000000000000000000000000000000000000..a01e64a7bb30128346fdc89eb3d58112f0bcf6cc GIT binary patch literal 7489 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 literal 0 HcmV?d00001 diff --git a/weixin-miniprogram/image/icon/shopping.svg b/weixin-miniprogram/image/icon/shopping.svg new file mode 100644 index 0000000..c401818 --- /dev/null +++ b/weixin-miniprogram/image/icon/shopping.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/weixin-miniprogram/image/user-center-bg-v1.png b/weixin-miniprogram/image/user-center-bg-v1.png new file mode 100644 index 0000000000000000000000000000000000000000..fec4199319670430f6d122090f65054311ad7a37 GIT binary patch literal 65727 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�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 literal 0 HcmV?d00001 diff --git a/weixin-miniprogram/pages/index/index.js b/weixin-miniprogram/pages/index/index.js index 31f3826..64d671d 100644 --- a/weixin-miniprogram/pages/index/index.js +++ b/weixin-miniprogram/pages/index/index.js @@ -11,6 +11,9 @@ Page({ */ data: { debugText: "调试", + displayUsername: "", + userGroup: "unknown", + filterMenuItems: [], }, /** @@ -19,15 +22,9 @@ Page({ onLoad(options) { console.log("index/index onLoad", options) // console.log("wx.getLaunchOptionsSync()", wx.getLaunchOptionsSync()) - this.setData({ - debugText: JSON.stringify(options, null, 4), - }) - - console.log("menuItemDict", menuItemDict) - this.userInfo = wx.getStorageSync("userInfo") - this.displayUsername = this.userInfo?.username ?? "请登录" - if (!this.userInfo) { + let userInfo = wx.getStorageSync("userInfo") + if (!userInfo) { console.log("用户未登录") wx.redirectTo({ url: '/pages/index/login' @@ -35,13 +32,19 @@ Page({ return } else { // 用户已登录 - this.userGroup = getUserGroupByRole(this.userInfo.role) - this.debugObject = { - userGroup: this.userGroup - } + let userGroup = getUserGroupByRole(userInfo.role) + this.setData({ + debugText: JSON.stringify(options, null, 4), + userInfo: userInfo, + userGroup: userGroup, + displayUsername: userInfo?.username ?? "请登录", + filterMenuItems: this.getFilterMenuItems(menuItemDict, userGroup) + }) + console.log("menuItemDict", menuItemDict) + console.log("filterMenuItems", this.data.filterMenuItems) //判断用户是否是通过扫小程序码进来的 - if (options.scene) { + if (options && options.scene) { // 扫门禁的小程序码 if (options.scene.split('%')[0] == "guard") { options.scene = null @@ -52,14 +55,16 @@ Page({ } } - // // 开发模式下自动跳转到指定页面,节省开发时间 - // console.log("app.globalData", app.globalData) - // if (app.globalData.debugMode) { - // wx.switchTab({ - // url: '/pages/residents/report' - // }) - // return - // } + // 开发模式下自动跳转到指定页面,节省开发时间 + console.log("app.globalData", app.globalData) + if (app.globalData.debugMode) { + wx.switchTab({ + // url: '/pages/residents/report' + // url: '/pages/person/person' + url: '/pages/shop/shop' + }) + return + } } }, @@ -110,5 +115,62 @@ Page({ */ onShareAppMessage() { console.log("index/index onShareAppMessage") + }, + + + getFilterMenuItems(menuItemDict, userGroup) { + return Object.values(menuItemDict) + .filter((item) => item.for.indexOf(userGroup) != -1) + }, + + + switchTo(event) { + let dataset = event.target.dataset + console.log("dataset", dataset) + switch (dataset.switchfunc) { + case 'switchTab': + wx.switchTab({ + url: dataset.pageurl + }) + break; + case 'navigateTo': + wx.navigateTo({ + url: dataset.pageurl + }) + break; + case 'redirectTo': + wx.redirectTo({ + url: dataset.pageurl + }) + break; + default: + console.log("切换页面失败", dataset) + break; + } + }, + + goCode() { + wx.switchTab({ + url: '/pages/residents/code' + }) + }, + + toggleDot(event, ownerInstance, iconName = 'code', status = undefined) { + console.log("menuItemDict[iconName]", menuItemDict[iconName]) + console.log("this.data.userGroup", this.data.userGroup) + if (typeof (status) === 'undefined') { + menuItemDict[iconName].addDot = !menuItemDict[iconName].addDot; + } else { + menuItemDict[iconName].addDot = !!status; + } + this.setData({ + filterMenuItems: this.getFilterMenuItems(menuItemDict, this.data.userGroup) + }) + }, + + magicButton() { + wx.navigateTo({ + url: "/pages/scan/entrance" + }) } }) diff --git a/weixin-miniprogram/pages/index/index.wxml b/weixin-miniprogram/pages/index/index.wxml index b59f5fa..2744f7b 100644 --- a/weixin-miniprogram/pages/index/index.wxml +++ b/weixin-miniprogram/pages/index/index.wxml @@ -1,21 +1,20 @@ - + 欢迎你,{{ displayUsername }}! - 调试信息:{{ debugText }} - - - + + + {{ menuItem.title }} - - - + + + 调试信息:{{ debugText }} \ No newline at end of file diff --git a/weixin-miniprogram/pages/index/index.wxss b/weixin-miniprogram/pages/index/index.wxss index 8e9c81f..8e1ab17 100644 --- a/weixin-miniprogram/pages/index/index.wxss +++ b/weixin-miniprogram/pages/index/index.wxss @@ -1 +1,24 @@ -/* pages/index/index.wxss */ \ No newline at end of file +/* pages/index/index.wxss */ +#menu-view { + display: flex; + text-align: center; + flex-wrap: wrap; + padding: 20px 10px; +} + +.welcome-text { + display: block; + padding-left: 30px; + padding-top: 18px; + font-size: 20px; +} + +.menu-item { + width: 25%; + margin: 10px 0; +} + +.item-image { + width: 50px; + height: 50px; +} diff --git a/weixin-miniprogram/pages/index2/index.js b/weixin-miniprogram/pages/index2/index.js deleted file mode 100644 index 0bc1771..0000000 --- a/weixin-miniprogram/pages/index2/index.js +++ /dev/null @@ -1,48 +0,0 @@ -// index.js -// 获取应用实例 -const app = getApp() - -Page({ - data: { - motto: 'Hello World', - userInfo: {}, - hasUserInfo: false, - canIUse: wx.canIUse('button.open-type.getUserInfo'), - canIUseGetUserProfile: false, - canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName') // 如需尝试获取用户信息可改为false - }, - // 事件处理函数 - bindViewTap() { - wx.navigateTo({ - url: '../logs/logs' - }) - }, - onLoad() { - if (wx.getUserProfile) { - this.setData({ - canIUseGetUserProfile: true - }) - } - }, - getUserProfile(e) { - // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗 - wx.getUserProfile({ - desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写 - success: (res) => { - console.log(res) - this.setData({ - userInfo: res.userInfo, - hasUserInfo: true - }) - } - }) - }, - getUserInfo(e) { - // 不推荐使用getUserInfo获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息 - console.log(e) - this.setData({ - userInfo: e.detail.userInfo, - hasUserInfo: true - }) - } -}) diff --git a/weixin-miniprogram/pages/index2/index.wxml b/weixin-miniprogram/pages/index2/index.wxml deleted file mode 100644 index f00d294..0000000 --- a/weixin-miniprogram/pages/index2/index.wxml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - 请使用1.4.4及以上版本基础库 - - - - {{userInfo.nickName}} - - - - {{motto}} - - diff --git a/weixin-miniprogram/pages/index2/index.wxss b/weixin-miniprogram/pages/index2/index.wxss deleted file mode 100644 index eb64203..0000000 --- a/weixin-miniprogram/pages/index2/index.wxss +++ /dev/null @@ -1,19 +0,0 @@ -/**index.wxss**/ -.userinfo { - display: flex; - flex-direction: column; - align-items: center; - color: #aaa; -} - -.userinfo-avatar { - overflow: hidden; - width: 128rpx; - height: 128rpx; - margin: 20rpx; - border-radius: 50%; -} - -.usermotto { - margin-top: 200px; -} \ No newline at end of file diff --git a/weixin-miniprogram/pages/logs/logs.js b/weixin-miniprogram/pages/logs/logs.js deleted file mode 100644 index 85f6aac..0000000 --- a/weixin-miniprogram/pages/logs/logs.js +++ /dev/null @@ -1,18 +0,0 @@ -// logs.js -const util = require('../../utils/util.js') - -Page({ - data: { - logs: [] - }, - onLoad() { - this.setData({ - logs: (wx.getStorageSync('logs') || []).map(log => { - return { - date: util.formatTime(new Date(log)), - timeStamp: log - } - }) - }) - } -}) diff --git a/weixin-miniprogram/pages/logs/logs.json b/weixin-miniprogram/pages/logs/logs.json deleted file mode 100644 index 3ee76c1..0000000 --- a/weixin-miniprogram/pages/logs/logs.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "navigationBarTitleText": "查看启动日志", - "usingComponents": {} -} \ No newline at end of file diff --git a/weixin-miniprogram/pages/logs/logs.wxml b/weixin-miniprogram/pages/logs/logs.wxml deleted file mode 100644 index 0b6b645..0000000 --- a/weixin-miniprogram/pages/logs/logs.wxml +++ /dev/null @@ -1,6 +0,0 @@ - - - - {{index + 1}}. {{log.date}} - - diff --git a/weixin-miniprogram/pages/logs/logs.wxss b/weixin-miniprogram/pages/logs/logs.wxss deleted file mode 100644 index 94d4b88..0000000 --- a/weixin-miniprogram/pages/logs/logs.wxss +++ /dev/null @@ -1,8 +0,0 @@ -.log-list { - display: flex; - flex-direction: column; - padding: 40rpx; -} -.log-item { - margin: 10rpx; -} diff --git a/weixin-miniprogram/pages/person/person.js b/weixin-miniprogram/pages/person/person.js index e2a57e9..6934c94 100644 --- a/weixin-miniprogram/pages/person/person.js +++ b/weixin-miniprogram/pages/person/person.js @@ -1,11 +1,26 @@ // pages/person/person.js + +const { + user +} = require("../../utils/const") + +const app = getApp() +const defaultAvatarUrl = 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0' + Page({ /** * 页面的初始数据 */ data: { - + avatarUrl: defaultAvatarUrl, + nickName: "请登录", + displayUserId: "", + menuList: [{ + id: "logout", + color: 'red', + title: "退出登录", + }] }, /** @@ -26,7 +41,20 @@ Page({ * 生命周期函数--监听页面显示 */ onShow() { - + let userInfo = wx.getStorageSync("userInfo") + if (!userInfo) { + console.log("用户未登录") + wx.redirectTo({ + url: '/pages/index/login' + }) + return + } else { + console.log("userInfo", userInfo) + this.setData({ + nickName: userInfo.realname, + displayUserId: "用户名: " + userInfo.username, + }) + } }, /** @@ -62,5 +90,37 @@ Page({ */ onShareAppMessage() { + }, + + onChooseAvatar(e) { + this.setData({ + avatarUrl: e.detail.avatarUrl, + }) + }, + + onGetUserInfo(e) { + let userInfo = JSON.parse(e.detail.rawData) + console.log("e", userInfo) + this.setData({ + avatarUrl: userInfo.avatarUrl, + + }) + }, + + menuTap: function (event) { + console.log("event.target", event.target) + let menuId = event.target.id + switch (menuId) { + case "logout": + wx.clearStorageSync() + app.globalData.userInfo = null + console.log("userInfo", wx.getStorageSync("userInfo")) + wx.redirectTo({ + url: '/pages/index/login' + }) + break + default: + break + } } -}) \ No newline at end of file +}) diff --git a/weixin-miniprogram/pages/person/person.json b/weixin-miniprogram/pages/person/person.json index a905e86..218d6c5 100644 --- a/weixin-miniprogram/pages/person/person.json +++ b/weixin-miniprogram/pages/person/person.json @@ -1,4 +1,6 @@ { "usingComponents": {}, - "navigationBarTitleText": "我" + "navigationBarTitleText": "个人中心", + "backgroundColor": "#000000", + "navigationStyle": "custom" } \ No newline at end of file diff --git a/weixin-miniprogram/pages/person/person.wxml b/weixin-miniprogram/pages/person/person.wxml index 74f353a..5dbf43e 100644 --- a/weixin-miniprogram/pages/person/person.wxml +++ b/weixin-miniprogram/pages/person/person.wxml @@ -1,2 +1,27 @@ -pages/person/person.wxml + + + + + + + + + + {{ menu.title }} + + + + + + \ No newline at end of file diff --git a/weixin-miniprogram/pages/person/person.wxss b/weixin-miniprogram/pages/person/person.wxss index 08f4ce6..b11ff5c 100644 --- a/weixin-miniprogram/pages/person/person.wxss +++ b/weixin-miniprogram/pages/person/person.wxss @@ -1 +1,66 @@ -/* pages/person/person.wxss */ \ No newline at end of file +/* pages/person/person.wxss */ +#container { + min-height: 100vh; + width: 100%; + background-color: #F5F5F5; + margin: 0; + padding: 0; + /* padding-top: 20px; */ +} + +.top-image { + width: 100vw; + height: 250px; + margin-bottom: -102px; + z-index: -100; + /* position: absolute; */ +} + +.cell-group { + background-color: #FFFFFF; + margin: 0 10px; + padding: 0; + margin-bottom: 20px; + border-radius: 10px; + z-index: 100; + position: relative; +} + +.user-profile { + display: grid; + grid-template-columns: 64px 1fr; + padding: 12px 20px; + place-items: center; + gap: 25px; +} + +.user-profile .avatar-selector { + width: 64px; + height: 64px; + margin: 0; + padding: 0; +} + +.user-profile .avatar { + width: 64px; + height: 64px; +} + +.user-profile .nickname { + font-size: 18px; +} + +.cell-item { + height: 48px; + line-height: 48px; + padding: 0 20px; + font-size: 18px; +} + +.cell-sept { + border-bottom: 1px rgb(170, 170, 170) solid; +} + +.cell:nth-last-child(1) .cell-sept { + display: none; +} diff --git a/weixin-miniprogram/pages/residents/report.js b/weixin-miniprogram/pages/residents/report.js index 2c59051..a6cda99 100644 --- a/weixin-miniprogram/pages/residents/report.js +++ b/weixin-miniprogram/pages/residents/report.js @@ -29,20 +29,21 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { - + console.log("residents/report onLoad") }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { - + console.log("residents/report onReady") }, /** * 生命周期函数--监听页面显示 */ onShow() { + console.log("residents/report onShow") if (this.data.isSkipOnShowFunc) { this.setData({ isSkipOnShowFunc: false, @@ -50,7 +51,6 @@ Page({ return } - console.log('onShow') let userInfo = wx.getStorageSync("userInfo") console.log("userInfo", userInfo) this.setData({ @@ -121,14 +121,16 @@ Page({ * 生命周期函数--监听页面隐藏 */ onHide() { - + console.log("residents/report onHide") + clearInterval(this.data.timeInterval) }, /** * 生命周期函数--监听页面卸载 */ onUnload() { - + console.log("residents/report onUnload") + clearInterval(this.data.timeInterval) }, /** @@ -157,7 +159,6 @@ Page({ this.setData({ "formData.temperature": e.detail.value }) - }, updateTime() { @@ -171,15 +172,26 @@ Page({ wx.showLoading({ title: '正在获取权限' }) - await new Promise((resolve) => { + await new Promise((resolve, reject) => { wx.getSetting({ success(res) { wx.hideLoading() if (!res.authSetting['scope.userLocation']) { wx.authorize({ - scope: 'scope.userLocationBackground', + scope: 'scope.userLocation', + // scope: 'scope.userLocationBackground', success() { resolve(); + }, + fail(err) { + wx.showModal({ + title: '定位失败', + content: '您已拒绝定位授权,小程序无法获取您的位置,请在微信首页长按删除小程序,重新打开再试', + showCancel: false, + complete: (res) => { + reject(); + } + }) } }) } else { diff --git a/weixin-miniprogram/pages/scan/entrance.wxml b/weixin-miniprogram/pages/scan/entrance.wxml index e68bd82..185a0d5 100644 --- a/weixin-miniprogram/pages/scan/entrance.wxml +++ b/weixin-miniprogram/pages/scan/entrance.wxml @@ -1,4 +1,4 @@ - 您将要进入社区 + 您将要进入社区:未知 \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/components/good-list-card.js b/weixin-miniprogram/pages/shop/components/good-list-card.js new file mode 100644 index 0000000..fbf26c6 --- /dev/null +++ b/weixin-miniprogram/pages/shop/components/good-list-card.js @@ -0,0 +1,37 @@ +// pages/shop/components/good-list-card.js +Component({ + // refer: https://developers.weixin.qq.com/miniprogram/dev/reference/api/Component.html + + /** + * 组件的属性列表 + */ + properties: { + goodinfo: { + type: Object, + } + }, + + /** + * 组件的初始数据 + */ + data: { + displayGoodsInfo: "", + displayInfo: "", + }, + + observers: { + 'goodinfo': function (goodinfo) { + console.log("observers -> goodinfo", goodinfo) + this.setData({ + displayGoodsInfo: JSON.stringify(this.properties.goodinfo) + }) + } + }, + + /** + * 组件的方法列表 + */ + methods: { + + } +}) diff --git a/weixin-miniprogram/pages/index2/index.json b/weixin-miniprogram/pages/shop/components/good-list-card.json similarity index 54% rename from weixin-miniprogram/pages/index2/index.json rename to weixin-miniprogram/pages/shop/components/good-list-card.json index 8835af0..e8cfaaf 100644 --- a/weixin-miniprogram/pages/index2/index.json +++ b/weixin-miniprogram/pages/shop/components/good-list-card.json @@ -1,3 +1,4 @@ { + "component": true, "usingComponents": {} } \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/components/good-list-card.wxml b/weixin-miniprogram/pages/shop/components/good-list-card.wxml new file mode 100644 index 0000000..d4f008d --- /dev/null +++ b/weixin-miniprogram/pages/shop/components/good-list-card.wxml @@ -0,0 +1,22 @@ + + + + + + + {{ goodinfo.goodsName }} + + + ¥ + {{ goodinfo.counterPrice }} + + + + + ¥ + {{ goodinfo.retailPrice }} + + + + \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/components/good-list-card.wxss b/weixin-miniprogram/pages/shop/components/good-list-card.wxss new file mode 100644 index 0000000..970e62b --- /dev/null +++ b/weixin-miniprogram/pages/shop/components/good-list-card.wxss @@ -0,0 +1,82 @@ +/* pages/shop/components/good-list-card.wxss */ +.good-card-container { + /* background-color: violet; */ + overflow: hidden; + display: grid; + height: 200px; + grid-template-rows: auto 58px; +} + +.good-card-image { + background-color: bisque; + background-position: center; + background-repeat: no-repeat; + background-size: cover; + overflow: hidden; + width: 100%; + height: 100%; +} + +.good-card-info { + padding: 4.5px 6px; +} + +/* 自动换行 */ +.line-wrap { + width: 100%; + word-break: break-word; + display: block; +} + +/* 商品标题 */ +.good-title { + font-size: 28rpx; + color: #333; + font-weight: 400; + height: 36rpx; + -webkit-box-orient: vertical; + -webkit-line-clamp: 2; + overflow: hidden; + word-break: break-word; + line-height: 36rpx; + margin: 4rpx 0; +} + +/* 商品价格 */ +.good-price { + white-space: nowrap; + font-weight: 700; + margin: 0; + display: inline; + position: relative; +} + +.good-price-counter { + color: #fa4126; + font-size: 36rpx; +} + +.good-price-retail { + color: #bbbbbb; + font-size: 24rpx; + margin: 0 0 0 8rpx; +} + +.good-price .good-price-symbol { + font-size: 24rpx; + display: inline; +} + +.good-price .good-price-number { + display: inline; +} + +.good-price .good-price-line { + position: absolute; + top: 50%; + left: 0; + right: 0; + transform: translateY(-50%); + margin: 0; + background-color: currentColor; +} diff --git a/weixin-miniprogram/pages/shop/shop.js b/weixin-miniprogram/pages/shop/shop.js new file mode 100644 index 0000000..a7c0371 --- /dev/null +++ b/weixin-miniprogram/pages/shop/shop.js @@ -0,0 +1,122 @@ +// pages/shop/shop.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + sidebarActiveId: -1, + sidebarList: [ + { + id: -1, + title: "全部分类", + }, + { + id: 1, + title: "1", + }, + { + id: 2, + title: "防疫物资", + }, + { + id: 3, + title: "111", + }, + { + id: 4, + title: "111", + }, + { + id: 5, + title: "111", + }, + ], + + tabbarList: [ + { + id: 1, + goodsName: "温度计", + counterPrice: "10.00", + retailPrice: "12.00", + picUrl: "https://cdn-we-retail.ym.tencent.com/tsr/goods/gh-2b.png?imageMogr2/thumbnail/320x320/quality/70/strip/format/webp", + }, + { + id: 2, + goodsName: "医用口罩", + counterPrice: "100.00", + retailPrice: "12.50", + picUrl: "https://cdn-we-retail.ym.tencent.com/tsr/goods/muy-3a.png?imageMogr2/thumbnail/320x320/quality/70/strip/format/webp", + } + ] + }, + + /** + * 生命周期函数--监听页面加载 + */ + onLoad(options) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady() { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow() { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide() { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload() { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh() { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom() { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage() { + + }, + + + sidebarItemTap(event) { + // 清除原来的选中项,并设置新的选中项 + // console.log("event.target", event.target) + // console.log("event.currentTarget", event.currentTarget) + let dataset = event.currentTarget.dataset + console.log("dataset", dataset) + this.setData({ + sidebarActiveId: dataset.item.id, + }) + return + } +}) \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/shop.json b/weixin-miniprogram/pages/shop/shop.json new file mode 100644 index 0000000..f17f36b --- /dev/null +++ b/weixin-miniprogram/pages/shop/shop.json @@ -0,0 +1,6 @@ +{ + "usingComponents": { + "listcard":"./components/good-list-card" + }, + "navigationBarTitleText": "生活物资" +} \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/shop.wxml b/weixin-miniprogram/pages/shop/shop.wxml new file mode 100644 index 0000000..463f095 --- /dev/null +++ b/weixin-miniprogram/pages/shop/shop.wxml @@ -0,0 +1,17 @@ + + + + + + {{ cate.title }} + + + + + + + + + 没有更多啦 + + \ No newline at end of file diff --git a/weixin-miniprogram/pages/shop/shop.wxss b/weixin-miniprogram/pages/shop/shop.wxss new file mode 100644 index 0000000..e8293fb --- /dev/null +++ b/weixin-miniprogram/pages/shop/shop.wxss @@ -0,0 +1,71 @@ +/* pages/shop/shop.wxss */ +.container { + /* background-color: aqua; */ + height: 100vh; + margin: 0; + padding: 0; + + display: grid; + grid-template-columns: 98px 1fr; + overflow-y: hidden; +} + +.sidebar { + background-color: #e7e7e7; + display: grid; + grid-template-rows: repeat(auto-fill, 50px); + grid-auto-flow: row dense; + overflow-y: auto; +} + +.sidebar-item { + background-color: #F5F5F5; + /* border-bottom: 1px solid rgb(121, 121, 121); */ + height: 100%; + display: table; +} + +.sidebar-item:last-child { + border-bottom: none; +} + +.sidebar-item-text { + display: table-cell; + vertical-align: middle; + text-align: center; +} + +.sidebar-item.active { + background-color: white; + font-weight: bold; + color: #FF764E; + border-left: 4px solid #FF764E; +} + +.tabbar { + overflow-y: auto; +} + +.tabbar-group { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: repeat(auto-fill, 210px); + grid-auto-flow: row dense; + place-items: center; + gap: 3px 10px; + margin: 6px; +} + +.tabbar-item { + width: 100%; + display: inline-block; + overflow: hidden; + border-radius: 6px; + box-shadow: 0 2px 10px 0 rgba(0, 0, 0, .2); +} + +.no-more { + text-align: center; + color:grey; + margin: 20px; +} diff --git a/weixin-miniprogram/project.private.config.json b/weixin-miniprogram/project.private.config.json index 683c479..b547454 100644 --- a/weixin-miniprogram/project.private.config.json +++ b/weixin-miniprogram/project.private.config.json @@ -2,7 +2,8 @@ "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", "projectname": "weixin-miniprogram", "setting": { - "compileHotReLoad": false, + "compileHotReLoad": true, "urlCheck": false - } + }, + "libVersion": "2.21.4" } \ No newline at end of file diff --git a/weixin-miniprogram/utils/menuList.js b/weixin-miniprogram/utils/menuList.js index f07019c..7cd888e 100644 --- a/weixin-miniprogram/utils/menuList.js +++ b/weixin-miniprogram/utils/menuList.js @@ -1,5 +1,6 @@ const switchTab = "switchTab"; const navigateTo = "navigateTo"; +const redirectTo = "redirectTo"; let id = 0; let menuItemDict = { @@ -24,8 +25,15 @@ let menuItemDict = { switchFunc: switchTab, url: '/pages/residents/report' }, + 'shop': { + for: ['user'], + title: "生活物资", + image: "shopping.svg", + switchFunc: switchTab, + url: '/pages/shop/shop' + }, 'apply-record': { - for: ['visitor', 'user'], + for: ['visitor'], title: "申请记录", image: "apply.png", switchFunc: switchTab, @@ -53,14 +61,14 @@ let menuItemDict = { url: '' }, 'feedback-submit': { - for: ['visitor', 'user'], + for: ['visitor'], title: "提交反馈", image: "fk.png", switchFunc: switchTab, url: '' }, 'feedback-list': { - for: ['visitor', 'user'], + for: ['visitor'], title: "反馈查看", image: "feedback.png", switchFunc: switchTab, @@ -73,6 +81,13 @@ let menuItemDict = { switchFunc: switchTab, url: '' }, + 'person': { + for: ['admin', 'user'], + title: "个人中心", + image: "person.png", + switchFunc: switchTab, + url: '/pages/person/person' + }, 'update-password': { for: ['user', 'admin'], title: "密码修改",