From 261918d871ef0fce0c4e70ffadc6d8373f036451 Mon Sep 17 00:00:00 2001 From: tangxinyue <524779910@qq.com> Date: Mon, 16 Mar 2026 17:32:44 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E5=AE=8C=E6=88=9080%?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/message/chat/chat-layout.vue | 308 ++++- components/message/chat/chat-list.vue | 857 ++++++++++++++ components/message/list/list.vue | 140 +-- components/message/list/message-nav-bar.vue | 13 +- pages/bill/add-bill/add-bill.vue | 32 +- pages/index/index.nvue | 2 +- pages/message/chat-page/chat-page.vue | 1126 ++++++++----------- pages/message/defaultData.json | 234 ++++ pages/message/list-index.vue | 450 ++++++-- static/image/index/qita/msg.png | Bin 0 -> 8779 bytes static/image/phone-message/add.png | Bin 0 -> 1696 bytes static/image/phone-message/iphone/send.png | Bin 0 -> 1368 bytes static/image/phone-message/mi/mic.png | Bin 2200 -> 0 bytes static/image/phone-message/mi/send.png | Bin 0 -> 1796 bytes static/image/phone-message/mi/unsend.png | Bin 0 -> 1651 bytes static/image/phone-message/oppo/ka2.png | Bin 0 -> 915 bytes 16 files changed, 2241 insertions(+), 921 deletions(-) create mode 100644 components/message/chat/chat-list.vue create mode 100644 pages/message/defaultData.json create mode 100644 static/image/index/qita/msg.png create mode 100644 static/image/phone-message/add.png create mode 100644 static/image/phone-message/iphone/send.png delete mode 100644 static/image/phone-message/mi/mic.png create mode 100644 static/image/phone-message/mi/send.png create mode 100644 static/image/phone-message/mi/unsend.png create mode 100644 static/image/phone-message/oppo/ka2.png diff --git a/components/message/chat/chat-layout.vue b/components/message/chat/chat-layout.vue index a56ced1..4787ad1 100644 --- a/components/message/chat/chat-layout.vue +++ b/components/message/chat/chat-layout.vue @@ -1,9 +1,10 @@ diff --git a/components/message/list/list.vue b/components/message/list/list.vue index 2ff0886..5dab17f 100644 --- a/components/message/list/list.vue +++ b/components/message/list/list.vue @@ -12,7 +12,7 @@ > 99 ? '99+' : (item.unReadNumber || 1) }} - @@ -20,9 +20,12 @@ {{ item.title }} - {{ formatDate(item.time) }} + {{ formatDate(item.chatList?.[item.chatList?.length - + 1]?.time || item.time) + }} - {{ item.content }} + @@ -53,99 +60,6 @@ diff --git a/pages/message/defaultData.json b/pages/message/defaultData.json new file mode 100644 index 0000000..152d954 --- /dev/null +++ b/pages/message/defaultData.json @@ -0,0 +1,234 @@ +[ + { + "id": 12365458895222, + "unRead": true, + "unReadNumber": 2, + "noNotice": true, + "img": "", + "title": "京东快递", + "content": "【京东快递】您的快递已送达博朗郡二期...", + "chatList": [ + { + "id": "uuid-001-a1", + "time": "2026-03-15 10:24", + "content": "

【京东快递】快递尾号29398已放在博朗郡二期惠美家便利店,快递员电话15320547739。

", + "isMe": false, + "simKa": 1 + }, + { + "id": "uuid-001-a2", + "time": "2026-03-16 08:31", + "content": "

【京东快递】您的包裹已签收,感谢使用京东快递,期待再次为您服务。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-16 08:31:00" + }, + { + "id": 12365458895223, + "unRead": false, + "unReadNumber": 0, + "noNotice": false, + "img": "", + "title": "招商银行", + "content": "【招商银行】账户变动提醒", + "chatList": [ + { + "id": "uuid-002-b1", + "time": "2026-03-15 12:00", + "content": "

【招商银行】您尾号8888的账户于03月15日11:58收入人民币90000.00元,余额965600.50元。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-15 12:00:00" + }, + { + "id": 12365458895224, + "unRead": true, + "unReadNumber": 1, + "noNotice": false, + "img": "", + "title": "中国移动", + "content": "【中国移动】流量使用周报", + "chatList": [ + { + "id": "uuid-003-c1", + "time": "2026-03-14 09:00", + "content": "

【中国移动】截至14日09时,您本月已使用通用流量18.5GB,剩余3.2GB。

", + "isMe": false, + "simKa": 1 + }, + { + "id": "uuid-003-c2", + "time": "2026-03-14 18:30", + "content": "

【中国移动】流量包订购成功!您已成功领取5GB周末流量包,立即生效。

", + "isMe": false, + "simKa: 1" + } + ], + "time": "2026-03-14 18:30:00" + }, + { + "id": 12365458895225, + "unRead": false, + "unReadNumber": 0, + "noNotice": false, + "img": "", + "title": "验证码中心", + "content": "【抖音】您的验证码是 882931", + "chatList": [ + { + "id": "uuid-004-d1", + "time": "2026-03-16 01:10", + "content": "

【抖音】验证码 882931,用于手机绑定。5分钟内有效,请勿泄露给他人。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-16 01:10:00" + }, + { + "id": 12365458895226, + "unRead": false, + "unReadNumber": 0, + "noNotice": true, + "img": "", + "title": "美团外卖", + "content": "【美团】订单配送通知", + "chatList": [ + { + "id": "uuid-005-e1", + "time": "2026-03-15 18:30", + "content": "

【美团】商家已接单,骑手正在赶往商家,请耐心等待。

", + "isMe": false, + "simKa": 2 + }, + { + "id": "uuid-005-e2", + "time": "2026-03-15 19:15", + "content": "

【美团】骑手已送达!祝您用餐愉快,给个五星好评吧!

", + "isMe": false, + "simKa": 2 + } + ], + "time": "2026-03-15 19:15:00" + }, + { + "id": 12365458895227, + "unRead": true, + "unReadNumber": 3, + "noNotice": false, + "img": "", + "title": "建设银行", + "content": "【建设银行】还款提醒", + "chatList": [ + { + "id": "uuid-006-f1", + "time": "2026-03-10 10:00", + "content": "

【建设银行】您03月信用卡账单已出,应还款额为¥3,200.00。

", + "isMe": false, + "simKa": 1 + }, + { + "id": "uuid-006-f2", + "time": "2026-03-13 14:00", + "content": "

【建设银行】温馨提醒:您的账单将于3天后到期,请确保扣款账户余额充足。

", + "isMe": false, + "simKa": 1 + }, + { + "id": "uuid-006-f3", + "time": "2026-03-16 09:00", + "content": "

【建设银行】扣款成功。感谢您使用建设银行信用卡。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-16 09:00:00" + }, + { + "id": 12365458895228, + "unRead": false, + "unReadNumber": 0, + "noNotice": false, + "img": "", + "title": "12306", + "content": "【12306】购票成功通知", + "chatList": [ + { + "id": "uuid-007-g1", + "time": "2026-03-11 11:00", + "content": "

【12306】订单EG12345678支付成功。北京南-上海虹桥,03月20日14:00开。

", + "isMe": false, + "simKa": 2 + } + ], + "time": "2026-03-11 11:00:00" + }, + { + "id": 12365458895229, + "unRead": false, + "unReadNumber": 0, + "noNotice": true, + "img": "", + "title": "腾讯科技", + "content": "【腾讯科技】安全提醒", + "chatList": [ + { + "id": "uuid-008-h1", + "time": "2026-03-13 22:30", + "content": "

【腾讯科技】您的QQ账号在异地登录,登录地点:广州。如非本人操作请及时改密。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-13 22:30:00" + }, + { + "id": 12365458895230, + "unRead": true, + "unReadNumber": 1, + "noNotice": false, + "img": "", + "title": "菜鸟驿站", + "content": "【菜鸟驿站】取件通知", + "chatList": [ + { + "id": "uuid-009-i1", + "time": "2026-03-16 10:15", + "content": "

【菜鸟驿站】您的中通包裹已到达。凭取件码 8-2-4002 领取,地址:博朗郡东门。

", + "isMe": false, + "simKa: 1" + } + ], + "time": "2026-03-16 10:15:00" + }, + { + "id": 12365458895231, + "unRead": false, + "unReadNumber": 0, + "noNotice": false, + "img": "", + "title": "阿里云", + "content": "【阿里云】资源包即将到期", + "chatList": [ + { + "id": "uuid-010-j1", + "time": "2026-03-12 09:00", + "content": "

【阿里云】尊敬的用户,您的OSS存储包将于7天后到期,请及时续费。

", + "isMe": false, + "simKa": 1 + }, + { + "id": "uuid-010-j2", + "time": "2026-03-15 15:00", + "content": "

【阿里云】续费成功。您的OSS存储包有效期已延长至2027年03月。

", + "isMe": false, + "simKa": 1 + } + ], + "time": "2026-03-15 15:00:00" + } +] \ No newline at end of file diff --git a/pages/message/list-index.vue b/pages/message/list-index.vue index 2f60a02..af9f725 100644 --- a/pages/message/list-index.vue +++ b/pages/message/list-index.vue @@ -1,20 +1,78 @@ @@ -209,4 +321,126 @@ page { margin-right: 30rpx; } } + +/* ===== 添加短信弹窗 ===== */ +.add-mask { + position: fixed; + top: 0; + left: 0; + right: 0; + background-color: rgba(0, 0, 0, 0.5); + z-index: 999; + display: flex; + justify-content: center; + align-items: center; + width: 100vw; + height: 100vh; +} + +.add-popup { + width: 88%; + background-color: #ffffff; + border-radius: 24rpx; + overflow: hidden; +} + +.add-header { + padding: 36rpx 40rpx 20rpx; + font-size: 34rpx; + font-weight: bold; + color: #1A1A1A; + text-align: center; +} + +.add-body { + padding: 8rpx 0; +} + +.add-row { + display: flex; + align-items: center; + padding: 20rpx 32rpx; + gap: 16rpx; +} + +.between { + justify-content: space-between; +} + +.required { + position: relative; +} + +.required::before { + position: absolute; + left: -10px; + content: '*'; + top: 0; + color: #EA0000; +} + +.add-label { + font-size: 28rpx; + color: #1A1A1A; + width: 150rpx; + flex-shrink: 0; +} + +.add-input { + flex: 1; + height: 70rpx; + background-color: #F6F6F6; + border-radius: 14rpx; + padding: 0 20rpx; + font-size: 28rpx; + color: #1A1A1A; + + ::v-deep .uni-input { + color: #aaaaaa; + } +} + +.add-footer { + padding: 32rpx 24rpx; + display: flex; +} + +.add-btn { + flex: 1; + height: 90rpx; + line-height: 90rpx; + text-align: center; + font-size: 32rpx; + background-color: #F1F1F1; + margin: 0 16rpx; + border-radius: 12rpx; +} + +.add-btn.cancel { + color: #767676; +} + +.add-btn.confirm { + color: #fff; + background-color: #1777FF; +} + +.time-picker-group { + display: flex; + flex-direction: row; + gap: 16rpx; + flex: 1; +} + +.time-picker-item { + flex: 1; + height: 70rpx; + line-height: 70rpx; + background-color: #F8F8F8; + border-radius: 8rpx; + padding: 0 20rpx; + font-size: 28rpx; + color: #333333; + text-align: center; +} diff --git a/static/image/index/qita/msg.png b/static/image/index/qita/msg.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a0f02de723afe6085dac93dd6ee4b72601f20e GIT binary patch literal 8779 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 Bux9`O literal 0 HcmV?d00001 diff --git a/static/image/phone-message/add.png b/static/image/phone-message/add.png new file mode 100644 index 0000000000000000000000000000000000000000..c84cc7b59aad7a09a4da31730b009a585d604d2c GIT binary patch literal 1696 zcmYL|2~ZPf6vqS9qEbKsi-V;d?|Oka7OWtbC_$}Kjsl`cy}(k6r5KI?9tdQUO&~z- zV-s@_QxM4k5e1}n6vrwBqgJ_uDo8nkFbs#-^sTh^H@_tFC2!yNe_wWy(EY)-3tbix z2n5>@Vo(@-=HjpUR`CAlZDbvRV5tw?7qJVLX0!PmjyWwDV*iMfrw9rkWf`l*;SFF@Yp%0Bk zE9SwZB83)~Fa?FqmMCf<5At7IxC*v_FX2L35l#=8C}zE>^+At>jCt@Fi6ODR@8cR7S||fG zB3!LVt`+0zV0=u0-xcqtgOi8bb;n}rdbn`~X<_@r2^N-?R#w*5*0z8XuoQ3ywg6uM zo`4VF@9$3p_5#U38gL$<0Vs+V0V==%)B$(?r5SjD(++e10|SG=5HJjk0aNdo1>WNP z{hsp^JDD*$-`2J@VzMwf4eo15J5x zXo92TTfbQ=A7;ku#4ratq0^36=Utq_5;qzAhwV4{#k!>XY&5zwtvS5CrEYx8uCtTm zn`63vBlEgeCjGjje&lrgO~*QVDaZMCUzS^J`{k`-ql@q4?wMa&uP2u8%U%DXZ$oge z`yoG5V;*Vm(K8;rnb+1`DluY3T$=Nq z#?iyhYd^g!Uzt@|*6nFO%FiA5SamN^Dzv^y$e8%ng80}lQe7ub`rg55EZ*g`MK!Y6 zA=@Loz-DCG0phErF?*hD>#dVC9s9iG_((j3Vs{o3Onh+rWjc9pNWSn^)3`)LDfw#F*u|a{TO*EK=5L4{^uzedUY% zKivliqqXi^F;o8VbX?kKc1k}pv2%van)*1L#aA06YPo7-TJ(^sXgsndD#nD>-$@!A z&lYU>OoXBhi(q!ow053BsP0R^V%j) zGz2`I^o(YXowzH!hfX&Knlt&4VQH@BWAx$Uw(8~-HYr9Qx@8{G*c|yKJE}LR;fT=s z*2v&iy6NHFoXznk*dO|7j}H^?MHL#-x>HtnMQoaF=o{dOf9&h3>WTM$K3V1abXi0R z@>>tdpWB_9aO1E;5BamWllvqM&Oecp!Z{QyE1}i?^~u)g$v3N-wBc1B(YmhMa(5L> z#2;vXnjc0Y>2r;S1v3#o8J@nscP+?W7aQGmi<$8}&CA~UO?_S$DZ(@9CH-iPCN|k; a+Ht`ChJI(&W(1yCLddTDL01CfFZ=^wsGZ;d literal 0 HcmV?d00001 diff --git a/static/image/phone-message/iphone/send.png b/static/image/phone-message/iphone/send.png new file mode 100644 index 0000000000000000000000000000000000000000..7a971ddb48908e6cceb923e4d12b5bdf0254cecb GIT binary patch literal 1368 zcmY+EX;70_6o!LT%Th!TA_Wx`WQhnWi9`W0vWXB3n}no?6BSK6N34su3wtjK^(>u>S_nh~kd3Q8hG+epk05k9XU$)z^K7c8U{*3Ln-JJlwcSM3!`G8WXuW5w-%s~0RVF_ zloAXjD}hllfEkFeZysf$6oX-a`G26520;1V0?Kc>a!~06uCS+I;8d&w4d+M;JxvR9 zriZ(}igF)|^%{@&9#23{B>Ideq9&426Dj_a_y8qofdEr!nAe%O>Fi7IZY0g*r_SC= zXArZPC6}4Eud+(7&z0YJ|A5G;E#W+_S$y`0+gi_U|C86*!tZNedfD}5w0oH}DwvpF zV@|KJ-mJ6UuFuViJ}^WarijDdSYV46K8P1Tin$-fpFeH#7L@Q8HP;l5Tv%o_*r2F~!gH%+uZP(J))z#C}2b&y( z*`Gon(cux1QBl!^oPv_ukLnxRpLcfm^bbx=&9Oi8gd)+#*1r;oOeRl5MrwmVsxF?c zhye7^$i1zg-N$y3Oc(f`Jj7p4PcnIK6;q~!eEk;uMaKcnX+M30Ys*2CnSNGccjJA~NWi$^SEK?SM!dl3$OoZZQu|~pTC&P z7CMDo3u;VoGH0{Pvub|QMHV^);vC%Sd<78P{Q{lFEL77Hfo!y|tEd6uOi9XUhQub9 zMeadq!cBQ({YvOV4~B7!UdjQD3)`<(d+Q2smb41McjL?ADk1Sd;GFucSTigBOZ%V? zU!2Z^Wxjj*)FyY1nSmkRoC|d&&3mh3E{sT#_ck;0OZVvUJx)GnruAb zKH?~ISxyenT(|mE!9_B*8mftdtK2p76)U{&d2MU5_F>7ZrqV(W;-K#{RuwDctW7J( z0)K6O9iO})m4-!R!K-aUzpkXKcGA@y$y*gM+nNFhL2$ICdJns~gyv{cRCRsTOVD<7 z@>Zp#ntZ>ri;d>*2Ka0B>4UbXm}6`6;Jr7tmKlAv=k3T*#|Y{^g_RPE?&g>1sG}g*|Z9XnS*%)qnN{(7`DS0ccSwDUO&z)-t4I?C`r2Y$e1FeM5mr-ZWIWWXs5>&$ zb!k{p%(TX0{x(XYGjob6%ZL}_&h(V=?GHB^^~SBbH}e(kwX^mVEN0Vm{fM;R*k+zl TmYAKX{2x8td|aQN{WbSL!eqO} literal 0 HcmV?d00001 diff --git a/static/image/phone-message/mi/mic.png b/static/image/phone-message/mi/mic.png deleted file mode 100644 index f99b9a26ac0443ae003fcf7d57d020c6913a6fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2200 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 RVdSIV8N$-uf^6oQ{1+RfqCNls literal 0 HcmV?d00001 diff --git a/static/image/phone-message/mi/unsend.png b/static/image/phone-message/mi/unsend.png new file mode 100644 index 0000000000000000000000000000000000000000..71cad303fbcc884e8540c4117c5e599d78fa54b2 GIT binary patch literal 1651 zcmYjRdpOg39G=#?xE!SuLL8O*C1h!CSr18b3yFwHMU7Nv2+6@&EB8jxhQ)EoZq2r8 zCk<^a#L}?L4vX9yQ%EPo`JLl=Jm>Q~-}n1|-uL}I&+mEv_}=mLc2`l-?Ie_Ae&vg3IZvhd_4o)fOYl1X=-Zf=;#2bTrU6g>61(*8y+5>nwlCL8=IJz zn4FvhM1TM;z{khOfxyhn44?oRfCB@N>FH?zfdRs6xMl$eC~M+c65wm%dSHEBvw+Y4 zZvlK=StILfc6N47PEKxaZeCtqetv#IK>-ejD=aK5Dk>^2F2>{W1OlP7w6v_Otfr=> zwzjseu8u?^Q79BDl}e-0=yZC0eLaK0U^1C37K_bhH#9VGIGo1DMxYZem&@bvUcY|b z-rg<{2s%4Eg+if7Bzph;eQ$5CSS;@A>yt<%QmJ%saByg72qNCCVN0#Vi6rLC=}zsJDb!X6HXAMpu^x`a-`+`5I$%O})P9y8g` zIj`F~I>jG`Cnn`Hb6>xG|Gv1iw7mRdg|xsn0D(3pc(}p?qNM`-j}SHZwwBJ~ciwvq z{NdYt^&vm+`~ZECxzEZhCGA9evDCP|tLXcjgLuwSD(P$BP-pg+b~2fI-!3O6BqZ$H zN)9ZZTDZ=;d)?+ql`*33oTJ)8azBH7@*@T11YW6cgFWi*A1O(DIIiX16CWOv9F}hA zH&z?jC<}F&zLthod2~8^p?x~x1SkEK;zJg0%e;g;pi>sSnbmdR4?8MO(q92V_8e&) zxPTEsZ6WHm&>sHV=Vd{g5U0KSFYJAS-nf%)ZXgzNK{D-di1z8-O_)T_Os1k3XX9`i zeU>)lMyK*4G;WDt-1KVUQTs`X_Ku5#mGiGuw8%?&8%nGCCu?%D^~jz}GO@kUA%?Bw zRd^!-wNEAVp6*3^qY$h{I#V4>pgx1k&2tZm#d-^Z3^1M}YV}FTG4pON`jWSaK4^NV zQiRO>fl$C!^-RZ|*?PtE4xZBx8{G#J&-%uPek|Xx89GYKz%-x0kUsJtQ4vZt*BPlr zZS!b5;s@Ayn_Zl&dnr*t%AHcFzo>(7K%MX)EE1`p9+mdRo_y&|BO7^jHNCx}%^XER zm-w4W4jI=|puyO$kFA1I#R2iLy4EGsc^Ta}Q+PEDie6R9j0iYy$9*;>2b#?3#A%xmXH#nG1!*&+c*&34C*^V>5vD$Mu-nh%-yz8 zod+JHAEdgiyvR^+G$Pu3+b;BS&Fa?P*~V&*A@=ZYIvTPBdpJaPQI*dk7V0cjKCqB( zVQ*nl9qo0~S$KwTZJY5@V>VATO=Ok(b*WL?Xe;H;E|Ho#cR3DBciBac%H*Sr``575 z7wBCI!5|1Jv5IFZw_B3fK0_g|e5qszMklR4q58YShB?p1jO*1mMa8iWKG?m8s`4)A zF1s;w=Hzn7W-_bKq1vZlpA}j6mcJVFQPRtg#)TuXuZ@Sgx>>=>n9y=dPE7gPM zgP?BihM49^y&8z4*!Qior_$(WILRvrc8rhxa4=%@GhqlBp&AGaqU$`EYBqH@yw7{M zyCh%d*O{!}CR;*lz%R}R^&G#%-P3W*t99#m#L=#5C%W7=X5g5Swc#5|GfnM0#l%I) z%3ra-`p;k&w>ttHA?M;>P60*Hfvw3$v@{Ix0fhzX_)8kecYaw&cAetqi_I)*EoFQa>EEs~!MWlLecfu`)K%2o;&-!9Atvc8;wQek vf0pGAkrHxyt(z`{o`FcgXjsgdwyc2Xv;L-TFFW7^JZB&eH*Z(k5oE?c4hogf literal 0 HcmV?d00001 diff --git a/static/image/phone-message/oppo/ka2.png b/static/image/phone-message/oppo/ka2.png new file mode 100644 index 0000000000000000000000000000000000000000..3a3d14eeb8deb81ad42d3d6c7300715110d49815 GIT binary patch literal 915 zcmV;E18n?>P)Nkl6c|JZ1{PR?1X2&8l|A$pQWhFM zEK)Lzrpv;@9-_iX2(h40EAnp!Dx0TsZtkD$?w+~LUL5Cl&+q>xwcbrx<$)L5X*AHGGMS>ood4Cbo;&sy9ie)zz|@ zTUK3pNl*eMhnD>R(n)OgNx>=?Cmcj;o)v?IpE0t30`Cika5uLNh4DqfmV&$qMW50T z4eGZx;&yH;_G~Ib?7CR_(YW>T*q2a@d)uwJmD2*9q?6+!m!JS@vTAX{d@^9&lEhL5 z(Hd}!cTyODFK@Z!jQ6u}P={V%Wn{f6+ z1?HS{?mTynCLiOSstE%$4mV(IZd5KhBz?mn0hslvXy4g|)TlIfRsN=&W3Qz*`Jfa8?B168D}t*Er7(r#I8Dxhrfz11O0%vV-cuH>oc30sI+8ESi*W%KaI=|)`r_>7r z=r!VhGL*#p#f1UfkUB;F?Z}R!KjKriY!H#av2g2M>l>$6vWAw(1>RlWYG0 p00960{o7I;00006Nkl