nonprofitDetail.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <template>
  2. <view class="common_page" :style="{'min-height':h+'px', 'padding-top':mt+'px'}">
  3. <cus-header title="公益活动详情" bgColor="transparent"></cus-header>
  4. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/19/54b75bc8-d926-449b-95a5-1126f700b481.png" class="top_bg_img" mode="widthFix"></image>
  5. <div class="top">
  6. <div class="top-status adfacjb">
  7. <div class="left">{{'已报名'}}</div>
  8. <div class="right"><span>{{200}}</span>爱心值</div>
  9. </div>
  10. <div class="top-no">善行少年编号:{{'Pinan202501'}}</div>
  11. </div>
  12. <div class="box box1 adf" style="margin-top: 30rpx;">
  13. <div class="box1-left">
  14. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/23/b3a3b866-e31c-4c33-bbce-a61f8689354c.png"></image>
  15. </div>
  16. <div class="box1-right">
  17. <div class="title">{{'环保知识知多少?让孩子成为大自然的守护者!'}}</div>
  18. <div class="memo">{{'每200爱心值守护一条河流,让河流恢复往日的清澈模样'}}</div>
  19. </div>
  20. </div>
  21. <div class="box box2">
  22. <div class="box-title">活动信息</div>
  23. <div class="box2-item adfacjb">
  24. <div class="left">报名时间</div>
  25. <div class="right">{{'2025-06-01 ~ 2025-06-02'}}</div>
  26. </div>
  27. <div class="box2-item adfacjb">
  28. <div class="left">活动时间</div>
  29. <div class="right">{{'2025-06-01 ~ 2025-06-02'}}</div>
  30. </div>
  31. <div class="box2-item adfacjb">
  32. <div class="left">活动地点</div>
  33. <div class="right">{{'广东省深圳市'}}</div>
  34. </div>
  35. <div class="box2-item adfacjb">
  36. <div class="left">招募人数</div>
  37. <div class="right">{{40}}/{{50}}</div>
  38. </div>
  39. <div class="box2-item adfacjb">
  40. <div class="left">联系人</div>
  41. <div class="right">{{'周小瑾'}}/{{'13111987666'}}</div>
  42. </div>
  43. <div class="box2-item adfacjb">
  44. <div class="left">公益支持</div>
  45. <div class="right">{{'深圳慈善会公益基金'}}</div>
  46. </div>
  47. </div>
  48. <div class="box box3">
  49. <div class="box-title">报名信息</div>
  50. <div class="box3-list">
  51. <div class="box3-list-item adfacjb" v-for="(user,index) in userList" :key="index">
  52. <div class="left">
  53. <div class="top adfac">
  54. <div class="name">{{'张琳琳'}}</div>
  55. <image class="sex" v-if="user.sex==2" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/b6d1fcb3-55ba-4104-b8cd-756b963a4da8.png"></image>
  56. <image class="sex" v-else-if="user.sex==1" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/a1899fd0-c468-48d9-b554-2f17b75a4157.png"></image>
  57. <div class="age" :class="{'women':user.sex==2,'man':user.sex==1}">{{46}}岁</div>
  58. </div>
  59. <div class="left-bottom">身份证 {{'340123**********09'}}</div>
  60. </div>
  61. <!-- <div class="right">
  62. <image src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/23/ebdf1327-3eeb-4797-8840-cb1ec4840d9a.png"></image>
  63. </div> -->
  64. </div>
  65. </div>
  66. </div>
  67. <!-- <div class="box box4">
  68. <div class="box-title">活动详情</div>
  69. <div class="box4-detail">
  70. <up-read-more :toggle="true" showHeight="374rpx" color="#989998" fontSize="24rpx" openText="收起更多信息" closeText="展开更多信息">
  71. <rich-text :nodes="detail"></rich-text>
  72. </up-read-more>
  73. </div>
  74. </div> -->
  75. <div class="user">
  76. <div class="user-pre adfacjb">
  77. <div class="user-pre-left">联系人姓名</div>
  78. <div class="user-pre-right">{{'周小瑾'}}</div>
  79. </div>
  80. <div class="user-pre adfacjb">
  81. <div class="user-pre-left">联系人电话</div>
  82. <div class="user-pre-right">{{'13688889999'}}</div>
  83. </div>
  84. </div>
  85. <div class="bottom adfacjb">
  86. <div class="left adffcacjc" @tap="handleShare">
  87. <up-icon name="share-square" color="#252525" size="48rpx"></up-icon>
  88. <text>分享</text>
  89. </div>
  90. <div class="right" @click="handleCancel">取消报名</div>
  91. </div>
  92. <div class="dialog" v-if="show">
  93. <div class="dbox">
  94. <div class="dbox-title">报名信息</div>
  95. <image class="close" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/10/10/7d1c7cf4-199a-4008-8114-ee0e1a8f0cc3.png" @click="show=false"></image>
  96. <div class="dbox-select adfacjb">
  97. <div class="dbox-select-left">请选择人员</div>
  98. <div class="dbox-select-right adfac" v-if="multiple">
  99. <text>全选</text>
  100. <image v-if="selectAll" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/87b5b244-d14f-43cd-991b-4ac9f48d909e.png"></image>
  101. <image v-else src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/b8a5cabd-57f8-4ad7-9677-f6372423c50a.png"></image>
  102. </div>
  103. </div>
  104. <div class="dbox-list">
  105. <div class="dbox-list-item adfacjb" v-for="(item,index) in selectUsers" :key="index" @click="handleSelectUser(item,index)">
  106. <div class="dbox-list-item-left">
  107. <div class="dbox-list-item-left-top adfac">
  108. <div class="name">{{'张琳琳'}}</div>
  109. <image class="sex" v-if="item.sex==2" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/b6d1fcb3-55ba-4104-b8cd-756b963a4da8.png"></image>
  110. <image class="sex" v-else-if="item.sex==1" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/a1899fd0-c468-48d9-b554-2f17b75a4157.png"></image>
  111. <div class="age" :class="{'women':item.sex==2,'man':item.sex==1}">{{46}}岁</div>
  112. </div>
  113. <div class="dbox-list-item-left-bottom">身份证 {{'340123**********09'}}</div>
  114. </div>
  115. <div class="dbox-list-item-right">
  116. <image v-if="item.select" src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/87b5b244-d14f-43cd-991b-4ac9f48d909e.png"></image>
  117. <image v-else src="https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/12/b8a5cabd-57f8-4ad7-9677-f6372423c50a.png"></image>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="dbox-btn">{{'取消报名'}}</div>
  122. </div>
  123. </div>
  124. </view>
  125. </template>
  126. <script setup name="">
  127. import { onShareAppMessage } from '@dcloudio/uni-app';
  128. import CusHeader from '@/components/CusHeader/index.vue'
  129. import { ref } from 'vue'
  130. const userList = ref([{sex:2},{sex:1}])
  131. const detail = ref(`山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
  132. 苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。
  133. 无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?<br>山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
  134. 苔痕上阶绿,草色入帘青。谈笑有鸿儒,往来无白丁。可以调素琴,阅金经。
  135. 无丝竹之乱耳,无案牍之劳形。南阳诸葛庐,西蜀子云亭。孔子云:何陋之有?`)
  136. const show = ref(false)
  137. const multiple = ref(false)
  138. const selectAll = ref(false)
  139. const selectUsers = ref([{sex:2,select:false},{sex:2,select:false}])
  140. const handleShare = () => {
  141. uni.showToast({
  142. title: '请点击右上角进行分享',
  143. icon: 'none'
  144. });
  145. };
  146. const handleCancel = () => {
  147. show.value = true;
  148. }
  149. onShareAppMessage(() => {
  150. return {
  151. title: '公益活动详情',
  152. path: '/pagesNonprofit/detail'
  153. };
  154. });
  155. </script>
  156. <style scoped lang="scss">
  157. .common_page{
  158. padding-bottom: 211rpx;
  159. box-sizing: border-box;
  160. .top{
  161. position: relative;
  162. margin-top: 39rpx;
  163. &-status{
  164. .left{
  165. font-family: PingFang-SC, PingFang-SC;
  166. font-weight: bold;
  167. font-size: 40rpx;
  168. color: #252525;
  169. line-height: 48rpx;
  170. }
  171. .right{
  172. font-family: PingFangSC, PingFang SC;
  173. font-weight: 400;
  174. font-size: 24rpx;
  175. color: #676775;
  176. line-height: 24rpx;
  177. label{
  178. font-family: PingFang-SC, PingFang-SC;
  179. font-weight: bold;
  180. font-size: 40rpx;
  181. color: #252525;
  182. line-height: 48rpx;
  183. margin-right: 6rpx;
  184. }
  185. }
  186. }
  187. &-no{
  188. font-family: PingFangSC, PingFang SC;
  189. font-weight: 400;
  190. font-size: 28rpx;
  191. color: #676775;
  192. line-height: 28rpx;
  193. margin-top: 30rpx;
  194. }
  195. }
  196. .box{
  197. background: #FFFFFF;
  198. border-radius: 24rpx;
  199. padding: 36rpx 24rpx;
  200. margin-top: 20rpx;
  201. position: relative;
  202. &-title{
  203. width: 170rpx;
  204. height: 44rpx;
  205. padding-left: 2rpx;
  206. font-family: PingFang-SC, PingFang-SC;
  207. font-weight: 800;
  208. font-size: 36rpx;
  209. color: #151B29;
  210. line-height: 36rpx;
  211. background-image: url('https://transcend.ringzle.com/xiaozhi-app/profile/2025/09/11/6ec1f999-fcbb-4a0b-a1a5-d0b5e1374bb1.png');
  212. background-size: 170rpx 31rpx;
  213. background-position: 0 20rpx;
  214. background-repeat: no-repeat;
  215. }
  216. }
  217. .box1{
  218. &-left{
  219. width: 158rpx;
  220. height: 214rpx;
  221. image{
  222. width: 100%;
  223. height: 100%;
  224. }
  225. }
  226. &-right{
  227. width: calc(100% - 158rpx);
  228. padding-left: 20rpx;
  229. box-sizing: border-box;
  230. .title{
  231. font-family: PingFang-SC, PingFang-SC;
  232. font-weight: bold;
  233. font-size: 32rpx;
  234. color: #151B29;
  235. line-height: 40rpx;
  236. }
  237. .memo{
  238. font-family: PingFangSC, PingFang SC;
  239. font-weight: 400;
  240. font-size: 24rpx;
  241. color: #C9A771;
  242. line-height: 37rpx;
  243. margin-top: 27rpx;
  244. }
  245. }
  246. }
  247. .box2{
  248. &-item{
  249. margin-top: 40rpx;
  250. .left{
  251. font-family: PingFangSC, PingFang SC;
  252. font-weight: 400;
  253. font-size: 28rpx;
  254. color: #676775;
  255. line-height: 28rpx;
  256. }
  257. .right{
  258. font-family: PingFangSC, PingFang SC;
  259. font-weight: 400;
  260. font-size: 28rpx;
  261. color: #252525;
  262. line-height: 28rpx;
  263. text-align: right;
  264. }
  265. }
  266. }
  267. .box3{
  268. &-list{
  269. margin-top: 15rpx;
  270. &-item{
  271. margin-top: 25rpx;
  272. .left{
  273. .top{
  274. .name{
  275. font-family: PingFang-SC, PingFang-SC;
  276. font-weight: bold;
  277. font-size: 32rpx;
  278. color: #151B29;
  279. line-height: 32rpx;
  280. }
  281. .sex{
  282. width: 44rpx;
  283. height: 32rpx;
  284. margin-left: 10rpx;
  285. }
  286. .age{
  287. border-radius: 13rpx;
  288. font-family: PingFangSC, PingFang SC;
  289. font-weight: 400;
  290. font-size: 20rpx;
  291. line-height: 24rpx;
  292. padding: 4rpx 10rpx;
  293. margin-left: 13rpx;
  294. &.women{
  295. background: rgba(244,101,122,0.14);
  296. color: #F4657A;
  297. }
  298. &.man{
  299. background: rgba(5,169,254,0.12);
  300. color: #05A9FE;
  301. }
  302. }
  303. }
  304. &-bottom{
  305. font-family: PingFangSC, PingFang SC;
  306. font-weight: 400;
  307. font-size: 24rpx;
  308. color: #989998;
  309. line-height: 24rpx;
  310. margin-top: 24rpx;
  311. }
  312. }
  313. .right{
  314. image{
  315. width: 36rpx;
  316. height: 36rpx;
  317. }
  318. }
  319. }
  320. }
  321. }
  322. .box4{
  323. &-detail{
  324. margin-top: 40rpx;
  325. }
  326. }
  327. .user{
  328. margin-top: 20rpx;
  329. border-radius: 20rpx;
  330. background: #FFFFFF;
  331. &-pre{
  332. padding: 40rpx 24rpx;
  333. box-shadow: inset 0rpx -1rpx 0rpx 0rpx #ECEEF5;
  334. &-left{
  335. font-family: PingFangSC, PingFang SC;
  336. font-weight: 400;
  337. font-size: 30rpx;
  338. color: #676775;
  339. line-height: 30rpx;
  340. }
  341. &-right{
  342. font-family: PingFangSC, PingFang SC;
  343. font-weight: 400;
  344. font-size: 30rpx;
  345. color: #252525;
  346. line-height: 30rpx;
  347. text-align: right;
  348. }
  349. }
  350. }
  351. .bottom{
  352. width: 100%;
  353. height: 191rpx;
  354. background: #FFFFFF;
  355. box-shadow: 0rpx -2rpx 8rpx 0rpx rgba(178,178,178,0.1);
  356. padding: 0 30rpx 0 54rpx;
  357. box-sizing: border-box;
  358. position: fixed;
  359. left: 0;
  360. bottom: 0;
  361. .left{
  362. text{
  363. font-family: PingFangSC, PingFang SC;
  364. font-weight: 400;
  365. font-size: 26rpx;
  366. color: #151B29;
  367. line-height: 26rpx;
  368. margin-top: 17rpx;
  369. }
  370. }
  371. .right{
  372. width: 540rpx;
  373. height: 90rpx;
  374. background: #B7F358;
  375. border-radius: 45rpx;
  376. font-family: PingFang-SC, PingFang-SC;
  377. font-weight: bold;
  378. font-size: 32rpx;
  379. color: #151B29;
  380. line-height: 90rpx;
  381. text-align: center;
  382. letter-spacing: 2rpx;
  383. }
  384. }
  385. .dialog{
  386. position: fixed;
  387. left: 0;
  388. right: 0;
  389. top: 0;
  390. bottom: 0;
  391. background: rgba(0,0,0,0.4);
  392. display: flex;
  393. flex-direction: column;
  394. justify-content: flex-end;
  395. .dbox{
  396. position: relative;
  397. background: #FFFFFF;
  398. border-radius: 24rpx 24rpx 0rpx 0rpx;
  399. padding: 40rpx 0 64rpx;
  400. &-title{
  401. font-family: PingFang-SC, PingFang-SC;
  402. font-weight: bold;
  403. font-size: 36rpx;
  404. color: #151B29;
  405. line-height: 36rpx;
  406. text-align: center;
  407. }
  408. .close{
  409. width: 27rpx;
  410. height: 27rpx;
  411. position: absolute;
  412. top: 40rpx;
  413. right: 30rpx;
  414. }
  415. &-select{
  416. margin-top: 57rpx;
  417. padding: 27rpx 30rpx;
  418. background: #F7F7F7;
  419. &-left{
  420. font-family: PingFang-SC, PingFang-SC;
  421. font-weight: bold;
  422. font-size: 32rpx;
  423. color: #151B29;
  424. line-height: 36rpx;
  425. }
  426. &-right{
  427. text{
  428. font-family: PingFangSC, PingFang SC;
  429. font-weight: 400;
  430. font-size: 28rpx;
  431. color: #151B29;
  432. line-height: 36rpx;
  433. }
  434. image{
  435. width: 36rpx;
  436. height: 36rpx;
  437. margin-left: 10rpx;
  438. }
  439. }
  440. }
  441. &-list{
  442. padding: 0 30rpx;
  443. height: 820rpx;
  444. overflow-y: auto;
  445. &-item{
  446. padding: 36rpx 0;
  447. box-shadow: inset 0rpx -1rpx 0rpx 0rpx #E5E7EB;
  448. &-left{
  449. &-top{
  450. .name{
  451. font-family: PingFang-SC, PingFang-SC;
  452. font-weight: bold;
  453. font-size: 32rpx;
  454. color: #151B29;
  455. line-height: 32rpx;
  456. }
  457. .sex{
  458. width: 44rpx;
  459. height: 32rpx;
  460. margin-left: 20rpx;
  461. }
  462. .age{
  463. border-radius: 13rpx;
  464. font-family: PingFangSC, PingFang SC;
  465. font-weight: 400;
  466. font-size: 20rpx;
  467. line-height: 24rpx;
  468. padding: 4rpx 10rpx;
  469. margin-left: 13rpx;
  470. &.women{
  471. background: rgba(244,101,122,0.14);
  472. color: #F4657A;
  473. }
  474. &.man{
  475. background: rgba(5,169,254,0.12);
  476. color: #05A9FE;
  477. }
  478. }
  479. }
  480. &-bottom{
  481. font-family: PingFangSC, PingFang SC;
  482. font-weight: 400;
  483. font-size: 24rpx;
  484. color: #989998;
  485. line-height: 24rpx;
  486. margin-top: 18rpx;
  487. }
  488. }
  489. &-right{
  490. image{
  491. width: 36rpx;
  492. height: 36rpx;
  493. }
  494. }
  495. }
  496. }
  497. &-btn{
  498. margin: 43rpx 40rpx 0;
  499. width: calc(100% - 80rpx);
  500. height: 90rpx;
  501. background: #B7F358;
  502. border-radius: 45rpx;
  503. font-family: PingFang-SC, PingFang-SC;
  504. font-weight: bold;
  505. font-size: 32rpx;
  506. color: #151B29;
  507. line-height: 90rpx;
  508. text-align: center;
  509. letter-spacing: 2rpx;
  510. }
  511. }
  512. }
  513. }
  514. </style>