今天, 11月14日
+已忍住
+成功 +4:20 PM
+已抽烟
+间隔 1小时30分 +1:15 PM
+已抽烟
+今日第一支 +11:45 AM
+昨天, 11月13日
+已抽烟
+间隔 4小时12分 +9:30 PM
+From c883ae7b176a363a13bae7affa81ee89433d3b0d Mon Sep 17 00:00:00 2001 From: nepiedg <806669289@qq.com> Date: Sun, 25 Jan 2026 11:45:16 +0800 Subject: [PATCH] init --- .gitignore | 1 + App.vue | 168 ++++++++++ UI/activity_history/code.html | 196 +++++++++++ UI/activity_history/screen.png | Bin 0 -> 125848 bytes UI/ai_quit_assistant/code.html | 159 +++++++++ UI/ai_quit_assistant/screen.png | Bin 0 -> 478264 bytes UI/home_dashboard/code.html | 166 ++++++++++ UI/home_dashboard/screen.png | Bin 0 -> 293255 bytes UI/profile_&_settings/code.html | 178 ++++++++++ UI/profile_&_settings/screen.png | Bin 0 -> 134286 bytes UI/smoking_statistics/code.html | 243 ++++++++++++++ UI/smoking_statistics/screen.png | Bin 0 -> 187049 bytes api/auth.js | 46 +++ api/index.js | 3 + api/profile.js | 9 + api/request.js | 66 ++++ api/smoke.js | 45 +++ config/index.js | 13 + docs/ALGORITHM.md | 319 ++++++++++++++++++ docs/DEVELOPMENT.md | 334 +++++++++++++++++++ docs/PRD.md | 231 +++++++++++++ docs/TECH.md | 485 +++++++++++++++++++++++++++ docs/api.md | 416 +++++++++++++++++++++++ docs/auth.md | 64 ++++ index.html | 20 ++ main.js | 24 ++ manifest.json | 72 ++++ pages.json | 87 +++++ pages/ai/index.vue | 316 ++++++++++++++++++ pages/index/index.vue | 551 +++++++++++++++++++++++++++++++ pages/logs/index.vue | 312 +++++++++++++++++ pages/onboarding/index.vue | 362 ++++++++++++++++++++ pages/profile/index.vue | 285 ++++++++++++++++ pages/stats/index.vue | 355 ++++++++++++++++++++ stores/dashboard.js | 72 ++++ stores/index.js | 9 + stores/profile.js | 53 +++ stores/user.js | 28 ++ uni.promisify.adaptor.js | 13 + uni.scss | 76 +++++ utils/format.js | 41 +++ utils/index.js | 3 + utils/storage.js | 41 +++ utils/time.js | 83 +++++ 44 files changed, 5945 insertions(+) create mode 100644 .gitignore create mode 100644 App.vue create mode 100644 UI/activity_history/code.html create mode 100644 UI/activity_history/screen.png create mode 100644 UI/ai_quit_assistant/code.html create mode 100644 UI/ai_quit_assistant/screen.png create mode 100644 UI/home_dashboard/code.html create mode 100644 UI/home_dashboard/screen.png create mode 100644 UI/profile_&_settings/code.html create mode 100644 UI/profile_&_settings/screen.png create mode 100644 UI/smoking_statistics/code.html create mode 100644 UI/smoking_statistics/screen.png create mode 100644 api/auth.js create mode 100644 api/index.js create mode 100644 api/profile.js create mode 100644 api/request.js create mode 100644 api/smoke.js create mode 100644 config/index.js create mode 100644 docs/ALGORITHM.md create mode 100644 docs/DEVELOPMENT.md create mode 100644 docs/PRD.md create mode 100644 docs/TECH.md create mode 100644 docs/api.md create mode 100644 docs/auth.md create mode 100644 index.html create mode 100644 main.js create mode 100644 manifest.json create mode 100644 pages.json create mode 100644 pages/ai/index.vue create mode 100644 pages/index/index.vue create mode 100644 pages/logs/index.vue create mode 100644 pages/onboarding/index.vue create mode 100644 pages/profile/index.vue create mode 100644 pages/stats/index.vue create mode 100644 stores/dashboard.js create mode 100644 stores/index.js create mode 100644 stores/profile.js create mode 100644 stores/user.js create mode 100644 uni.promisify.adaptor.js create mode 100644 uni.scss create mode 100644 utils/format.js create mode 100644 utils/index.js create mode 100644 utils/storage.js create mode 100644 utils/time.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..14bb5ab --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +unpackage/* diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..359a1c1 --- /dev/null +++ b/App.vue @@ -0,0 +1,168 @@ + + + diff --git a/UI/activity_history/code.html b/UI/activity_history/code.html new file mode 100644 index 0000000..6a99a2b --- /dev/null +++ b/UI/activity_history/code.html @@ -0,0 +1,196 @@ + +
+ + +已忍住
+成功 +4:20 PM
+已抽烟
+间隔 1小时30分 +1:15 PM
+已抽烟
+今日第一支 +11:45 AM
+已抽烟
+间隔 4小时12分 +9:30 PM
+c~>(9^6IZc{7u6ma= zo*$$>&47%3=U*uhCG6Ec@01!81PuxPI&JgfBK4d379aniYHZ)LjjzL;UW_5~cad9G z$iuVAg=z5qpe~MFBvs;|Mac2b=O^aGf}hPlHlLEDS}wL1drg{a4NY?{?nml}yl0}d z)XQ};jkCdF$%Y(6K$JPRCHH61o%tZaocxCVv=1EaQZLYvo#(S^CSE$oA4G+HXZ2_M zx`&X2Wivl{-cP@ipGm;v3vW@PMxodBDxmh!@T3g0F~s_K{|! z3n>C$9ScJ4D|zE=L@3m6>bwEkJins7s4$|$uT#^#AowBYe;kOR5}@C__=iG^U&qMZ zS|6^ztcD!^vO{%bQy1SGHF@?dfx&~X5@1w8TOO($>N-z>-=FP|Jm{I#ay?CDWo2!B zef9Or2KTTc!%do;19mHw3|!2QnuJ_5Vk^$V?t+;#zI9Z6f+ g(%wNxrBxH*YO4gF1+=2Waq36N$Kv1 HjjQD>1p)d_5uZC3~YzCFS}j`6JW(pB8f+llJE7&FLg*6k#Ybg5xxsIk9%& zg0?Q((nosh$MalkndnG)ubsYuN`e+V20`b0%zo0o<$WoPn!_S*BH5Fuy~1Hz0e-z8 z&TAqj+v~w_O*|y*cnMEuS=TPu9t0Cr$a(qkpvlM8VB{p|gN{{(pk)bB+{2n(;C7Fm zSsWN6DT?NmC317aNbt(DA&{-F5P$<94^{IvmN?2DMfs1gHfFPm?4_;|%yqHG68Cg7 z8agH`P)NsD(j Gg0p}86PNP;mP9vS($V~1S^&gk|DRC* z-?RuZfF4njm;XEqJR(MeisHPYLom3`L{4qk=>J)lUzei9F8~2J3cNLF5&x~&aika4 z1DT*d3k6f;kB4N0iFO9l9qOXbPAiWB=;GG-Pt<^zY$p#H$NI AV2!Hzxs|V0F=}1Em8mDqG25!5V4Tm=Sp8+rT#q8g9m zB-VLeuQqSIu>b(~wVx*+l=CnjLR4>hOD&!pCe}=Oo_(i+?SYL31_`+F7s*ie5|mGS z=~QJNcT+uY9aAb*7>H7g8LZMO%$SH$ymPH$-1Y1}W<(KE=^N?V@FuXgnG * dL&o`x>v|3)y !Gqhq*v*hay=~O zNHQ=VM0FCv9$U;73pF&jt8x~GiV~t2r7{>1p@w0E%b?O&nmP(gkWK~vFhg}f0T%VN zmK}Vs%YjtJS}}~c`Y{!*O8(D-v5o|H`U )E>cc7+HCEeLz)(nlTfajZ39cJ;@)3x2>)2ifa+z;+JkX_ z`~Ca<&oRP9$Eh8VTbg1TGU9`H-m-%;e+jY#-z>UFFLl;NLyr0(21IT%)6zEQlg~R) zbo`-bnx^PkjV6)-!T~J$qim7xZkgwlLzL8SRYxM^TgX*<&=1US$e*>6P29 VpjG$^U=Jq4iXv3lt1m|q zoAE9s=?y!H#)Y(56u3%uVW%kI0Dr!_t%?Ewkn$Z$d)F2Z`jV 6pa9S$ zU?c(VwymI!qj*=S`~mi6!;t_AdedI!Z1G32# tSKRErZ@YrlOg2^0pq|?M8`&o;-T?tM +Znt!aZXNDwvPtGTK#8-_7iWmMWuGy>U&Rm!R3|KcFDZh^MhN3L5Z$ zp>OkkQ3SR{UpayzHV`!+0)T6~H3xWOC$Qg7Vf>u>CG3tPhsa#UY~ej{)g_jHrw`Q^ z_BmzzWA=i{Hbz?MT%I)=tUf^!whczpjV*WvdV v7$YIbQA}lMU2@eTAk>Q)ginkqRrtP%#3`W) z*Jc~3XHjVb^M2pvN1_~_LI|5ep 57Os%_#ksnXSV^0{$ z4$64-9E(R-DwzUm3DyR+Gjx%=ZCE{wD(PxWP{Xzy?D#NIta2Tkiem7;J?{Q^{@z_4 z+97SSag<2J{Bk)0Ot9b)!|4eM=fC#cSTdD+(G)p$ah*+=6qT;a$!bjPlPHi%41J68 z2(1uzfEJET8oG$ad-3poN5Ol&N^r3~nQip137>obNxnNN6M8z6Lo6-^J=5ex5^EXl zeBno*r7%QgF^ bOx1KUA=x>(mlJ;*Q_zcG|_Ek2Z3y06p>I46`^)Bf=V!3PNJRM zJ*iHbN-6_T4z?E*hehcSjeCEMaWg%A#D8x+{v07YTKw(6lFoqmh?c5V=cZrOPb`nA zK?T+b5n4Fav^5P>MT`{?yby>^U!cTNN!8WsBddf&@aAi>siewOPQnO_(p7xo*ZOf6 zIjv2JvFUAbA9Sf0_W5Frgc_NCyy(9lm192of>3@ea_X~Na}Xu@OqpwXUYo@XM@~Vh z9+ZG}q7(x(xC;FO^NqW0T)=RKAwa04xfUBKFP$FcGa*w;4TN10r#;?UTpWNlog&(F z@fzQ3w_}@D7RT9Fe20Qx9`*waE^{J^>;JUBw9RRh$w?FkIrv7~R^~4OC23eZD*k6g zObBdbV&n}+Uc`5YW^;(BbuSV&X(#f#l4ja A0wHE@v^ze%tpA zE!v7FU?{jUp4TW-jS0U@GF>&Fnw}(z%r-ZmWsTQbPkwNNts$N(Iq3+!7b_7r5~phH z^}m^gEnGQWJ)8LX>N#jdGEL;aL!lD3SL2b8cpNM5a3R|(<(u`wcgp31z%Bz`3w~v) zWQ5KS5=#R}|Ka@o>-9!no7$XpoU*hDn!d6-bj-G)?oj`R5?0QyuWe?!!LEOq8AW(Y zC&(BSi(Ka(i(TDEN{vs5QZ+VLmsOPKl{==$D!4BpcADMZo@yBo(89!v+gRq*2TM?zB>-Umv2j7pk+N7t^BcxHB^>+a^D^@MT?kfM=_ zibA1kVM5#YJ37HEb?KM-i`sPHa$9@LQ0G`>+kVv&>Dw7)+bS0C8imCK(MoyQbOu(U zI3LUW0vaGzIX-Yr`S(}Va7I``&~l*^@^$91o`9ZRpsa6F8uRzfI#C0cr+HW36oCYL zVJM19Dhk`0(pT*slFG?ei)e}J5%@(Z6&8+4&Q2~};X}zVR(F6hRt74Bx~H*Sp9&+S zv(xuX|6q;c ye6mOS3*JJ0CWv;#{KoQ6+S%k jHHY&*TG{|=(Kv|H-|4GfifYAlfB(}Pge1jZESJ%^UjHp zeUzRmJ)*+dW9ix@lL(boT2-5VT@Wz})?*54^3LA$#(RCA8n=)aR{Zi|rhw@(%-kDi zT$HnKlkjngqr-F0g2langSh4kihw ^0eA2HbMvg#BV3c z7c?5LOl@XsYtKNPW0E!9@PA#~AuCVKnwoMb!-QkfptO^@egMw*W^|O)fHURZ&e{Sr zT4NXI8& bW?fRR<-=SSj zfn&1bedF c2NhG{6yqr^mle8vZ|s#7K1`hoRXXzP5_C*|h>>N!oI# zG>c7c%XMB46TM1#e%Gk!$-+e4`6qwHe`Za1=&A|kj;1mUT8XHWm&(}<00&gM^w`|B z+xJ2t&*D_H>o)DfCl43^wyp&mvvduHu;$KUG{& 03c5%?vGkHmg!4t^$ 410Ie&~LeTuW+(a=T@(qM8g&e3AGFA9SX;c6s5%T zz>WfrNB5w9syG_t9zUn74Bd2d>4$+5#rW?M4*T017R^V?u9@1r2EktOyjZ3Lxm^O0 zVk&k6(IWU!b}{pbmrW4-F#E={?6PZ3ePD?4Bc{zH)j-krEx({`O(HR5)013GeKi ze@j>H_mgAp7&8DMnrE+qVz6ap;As0yvIe>S*S_*;T#ZCU45?6EPeySsD@FD6JxUiB zy~13?XC^HIR9VYFN3;Sj0MXdk*vRN#M~% z?kCeHc3912um OTM{1voP#<3!!pRFfXVeWA@R>G$g8 zY1+f&!qhqP0fUeuga%tGZs@mYl6+sDS5^Oj$Ov>ubSFL=!GwUQM;9*_2ZHm>TA=eo z%-;j2e(klDy#q#;ShBi}skGd6}7;%bLpkAA~>>4B2Lpp(@F+L&Jwv?3LkD+j!|f zIghg@=9NJGiOMrp9Gdir8Nz*vZvz!H%Bks@f|ip-W%$-8wG)5n`AX^h#7qQOK6-Sv z+{9tVk*#tTjG$r-&V =4F**^ky@(|Tp7vlWnoo>p8D0YMVNF+h*VbUXuYMGyxXguM}o4o40}PAwd$ zt7 @U| ~VmwM0Pgkj8Uf1KoPo%lW+&DV0X9`(Wl7YHQ^ *RHm* zmQ|%#jGTZrJmQ8PPe)!VjJhwb+n )nto3{B+IZ%y6c2ypN zNZYtscPM>PY+90dtKY{0?yl$0{bjTIvRIW`*5gc*ZM!AdXgAWIw-yKsLhc+ms9wh) z15oMS6n{_%E2{_$MTU8geY-(Lb1os+{e?)XL=-9~I6oQd=r*sSAkoOzCY*@*L4MN# zXfVg?D85trJ5d4-zu$Ft*p;`x@I<$L=qU=wN3t80D$0UihV>$r1kk7oZ9p@L+Qdo2 zdH(2kBu*}3x1AD@ZIH;MUw1!WfCK 0pD%Nu zGZwSFawzgYc78?ZNpWYn`VtbHsj8A{eE6GaI-UL=t1Ix@r!VR)B3_!-h2H9bK-;A2 zcSqvQCrb_1=e#<2SBnFmRkNTShvye| MI^h`I eQN z>%_NXAAb(p_Xw&8A>^tqs-`mzg2oVE?=3SECAlu2FE%Y7fbOi~`j_nOOCbk&eXZr= z9|%?=C&2r|qP3m3*LGg~HOIc)m}vbKK56nPnz0R6h0r+%Ub&rL6Lf(bdzG<;C<0}A zU*5m8G1NN?1Avm0cQ=$yl-b-{;#JRQl7MvccA7S@z(JWu@rX98XY%w!ZD+ek6m@*` z-$62RZLJM%#?Xw^6HjY7yFM--+e!mObV1U~-rKtM3`m#yHz~- ;X%n$rlgES-Ff9-#Dkz<;pMXT0<_u$Uu~ok@etv zGCwBbC6*sfqo1koj%8z0+6GagOF=XyKpg(dj~$!m*{j&%Rf15oMo0hZ>gicyDt6q` za5IlP_!-vtuJw?R3wi(hS=84_#qG`$Sd?jSxWUv5B+Y^Jsw>btkh6@C(nkV|D=1A} znk;{)WPayTi%hQHr=&4CKWud|`*2cAj{_h5=#%GlC<=P)GfJP*b28|>KI}ezcvy|X zByY8bB{t^H8B-Wx3O5-!+r|kJCC$EmqM0X?$|$Z3Zg^AvArG+)4fND}1c*>^uaB3V zTzPC5X#cqSMHiC*XP6X4apfKxpDkJbeX7>9vyR7AMOAG-@n@eg^EP)uLCck|W_=n# z0??qad<--6HZ!`rkXDdd#sHMXNP0mi4 wh4T(1jzxmq(aLo?#kNxyY(+kT{04*yK$0IELT(u*`}H^V z?}GMK?lNF4Uy^U@F6ND>FK~BF EQNtv8|IP&kkRCa5(y=L}l3H+o;w6-vRuP|p z>Ts~KQRUW!;s|)1y(4{=B1{j5pq<=)oHSVbYGD4EnFK@X=G^O~^IQxdaXurhAr^Aq zp|LG_F;N0=-@e;f_JbjhU8sCalGD=(CbWsb7GJV$r1YBMC8ct6;jwI<7u{jb3t0HK zZXKFh9nTSl5rKx)df;{w7jB3PK8|kQ4CNhQWmI&LKX07RI}yj9!l5UzBbq<&X-v|C z>2}}m QhR}i`Tc5Vnv)!v_9hZMPELVF$+wQ)%tBV}V>&1Xx;8OwbU$X3Ks4Yu* zmtFisDWQfO`g%GpM4XsdF-kr*_nT>7sd>Zs)qyywp*iK$(yf!vUu`?QUf5ej12m*= zZk0|(o&1x6WfG@nShBp?psgOSEaP6QhC!!5atkqxt zSk}ILZV!@6sjL-ln?s|BmUrp9xSZ0gk%pXLA<5jCS?DicmF}#lTzh=chP)eY#BZoL zhS+>W1tLL@ly2U3v|<4ssa>bo==VLT0WDnQWyh6UV94Pm`9qRhRpL=KuQ}vmMz)eV zk8X2eZ4DxE9enbG_MJQQqsi_lKZ4Y%1_eFfzPb5jX0c3WlzbjUR2kst>e?m4O8e*F zT22G$10D%1PCs`7Rs*}YQF#Su7;+|0#-FqD&Fvi0>7ThRRH65*_i}oAMs&LXPT#t{ z2HZM5S-hOiqNiy9LP?qP`GWVo)us{Wtxxb& e!DcmR0Ts-^&z zp?asZ38QW*Big