details.vue 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. <template>
  2. <view class="main">
  3. <view class="img-banner">
  4. <image mode="aspectFill" src="https://mn.wenlvti.net/app_static/xiangan/banner_dig_1.jpg"></image>
  5. </view>
  6. <view class="level-info">
  7. <view>
  8. <view class="label">已认领:</view>
  9. <view class="value">{{ querys.name }}
  10. <text class="em">Lv.{{ querys.level }}</text>
  11. </view>
  12. </view>
  13. <view>
  14. <view class="label">文化积分:</view>
  15. <view class="value">{{ querys.points }}</view>
  16. </view>
  17. <view class="btn">
  18. <text class="iconfont icon-point"></text>
  19. 积分兑换
  20. </view>
  21. </view>
  22. <view class="task-list">
  23. <view class="item">
  24. <text class="iconfont icon-task-summary"></text>
  25. <view class="info">
  26. <view class="title">村落概况</view>
  27. <view class="desc">探索村落的历史渊源与发生轨迹</view>
  28. </view>
  29. <view class="btn" @click="navTo('task/summary', nextPageData)">去完成</view>
  30. </view>
  31. <view class="item">
  32. <text class="iconfont icon-task-history"></text>
  33. <view class="info">
  34. <view class="title">历史文化</view>
  35. <view class="desc">传承百年文化遗产和精神财富</view>
  36. </view>
  37. <view class="btn" @click="navTo('task/history', nextPageData)">
  38. 去完成
  39. </view>
  40. </view>
  41. <view class="item">
  42. <text class="iconfont icon-task-environment"></text>
  43. <view class="info">
  44. <view class="title">环境格局</view>
  45. <view class="desc">感受自然人文环境之美</view>
  46. </view>
  47. <view class="btn" @click="navTo('task/environment', nextPageData)">
  48. 去完成
  49. </view>
  50. </view>
  51. <view class="item">
  52. <text class="iconfont icon-task-building"></text>
  53. <view class="info">
  54. <view class="title">传统建筑</view>
  55. <view class="desc">领略古建筑的独特魅力</view>
  56. </view>
  57. <view class="btn" @click="navTo('task/building', nextPageData)">
  58. 去完成
  59. </view>
  60. </view>
  61. <view class="item">
  62. <text class="iconfont icon-task-custom"></text>
  63. <view class="info">
  64. <view class="title">民俗文化</view>
  65. <view class="desc">体验民间传统习俗与节庆</view>
  66. </view>
  67. <view class="btn" @click="navTo('task/custom', nextPageData)">
  68. 去完成
  69. </view>
  70. </view>
  71. <view class="item">
  72. <text class="iconfont icon-task-food"></text>
  73. <view class="info">
  74. <view class="title">地道美食</view>
  75. <view class="desc">正宗、传统地方特色美食</view>
  76. </view>
  77. <view class="btn" @click="navTo('task/food', nextPageData)">
  78. 去完成
  79. </view>
  80. </view>
  81. <view class="item">
  82. <text class="iconfont icon-task-mine"></text>
  83. <view class="info">
  84. <view class="title">物产资源</view>
  85. <view class="desc">特定地域的植物、矿物或手工艺</view>
  86. </view>
  87. <view class="btn" @click="navTo('task/mine', nextPageData)">
  88. 去完成
  89. </view>
  90. </view>
  91. <view class="item">
  92. <text class="iconfont icon-task-trip"></text>
  93. <view class="info">
  94. <view class="title">旅游路线</view>
  95. <view class="desc">体验独特的文化魅力</view>
  96. </view>
  97. <view class="btn" @click="navTo('task/trip', nextPageData)">
  98. 去完成
  99. </view>
  100. </view>
  101. <view class="item">
  102. <text class="iconfont icon-task-other"></text>
  103. <view class="info">
  104. <view class="title">其他</view>
  105. <view class="desc">更多文化传承相关信息</view>
  106. </view>
  107. <view class="btn active">
  108. 待开放
  109. </view>
  110. </view>
  111. </view>
  112. </view>
  113. </template>
  114. <script setup lang="ts">
  115. import { useLoadQuerys } from '@/common/composeabe/LoadQuerys';
  116. import { navTo } from '@imengyu/imengyu-utils/dist/uniapp/PageAction';
  117. import { computed } from 'vue';
  118. const { querys } = useLoadQuerys({
  119. id: 0,
  120. name: '',
  121. points: 0,
  122. level: 0,
  123. villageVolunteerId: 0,
  124. });
  125. const nextPageData = computed(() => ({
  126. villageId: querys.value.id,
  127. villageVolunteerId: querys.value.villageVolunteerId,
  128. }));
  129. function goForm(subType: string, subId: number) {
  130. navTo('../forms/list', {
  131. villageId: querys.value.id,
  132. villageVolunteerId: querys.value.villageVolunteerId,
  133. subType,
  134. subId,
  135. })
  136. }
  137. </script>
  138. <style lang="scss" scoped>
  139. .img-banner {
  140. height: 246rpx;
  141. width: 100%;
  142. image {
  143. height: 100%;
  144. width: 100%;
  145. }
  146. }
  147. .level-info {
  148. padding: 48rpx 36rpx 36rpx;
  149. background: #FFF2E6;
  150. border-radius: 20rpx;
  151. position: relative;
  152. margin-top: 42rpx;
  153. margin-bottom: 37rpx;
  154. > view:first-child {
  155. margin-bottom: 44rpx;
  156. }
  157. .label {
  158. font-size: 28rpx;
  159. color: #111111;
  160. display: inline-block;
  161. }
  162. .value {
  163. font-weight: bold;
  164. font-size: 28rpx;
  165. display: inline-block;
  166. color: #333333;
  167. .em {
  168. font-family: Rockwell;
  169. font-weight: 600;
  170. font-size: 30rpx;
  171. color: #FF8719;
  172. display: inline-block;
  173. margin-left: 35rpx;
  174. }
  175. }
  176. .btn {
  177. position: absolute;
  178. top: 30rpx;
  179. right: 30rpx;
  180. border-radius: 10rpx;
  181. border: 1px solid #FF8719;
  182. padding: 15rpx 20rpx;
  183. display: flex;
  184. align-items: center;
  185. font-weight: 400;
  186. font-size: 28rpx;
  187. color: #FF8719;
  188. text.iconfont {
  189. display: inline-block;
  190. margin-right: 15rpx;
  191. font-size: 40rpx;
  192. }
  193. }
  194. }
  195. .task-list{
  196. .item{
  197. display: flex;
  198. align-items: center;
  199. background: #fff;
  200. margin-bottom: 36rpx;
  201. padding:39rpx 27rpx 38rpx;
  202. text.iconfont{
  203. width: 91rpx;
  204. height: 91rpx;
  205. border-radius: 50%;
  206. border: 1px solid #25515E;
  207. text-align: center;
  208. color: #25515E;
  209. font-size: 60rpx;
  210. line-height: 91rpx;
  211. display: inline-block;
  212. margin-right: 17rpx;
  213. }
  214. .btn{
  215. background: #FF8719;
  216. border-radius: 28rpx;
  217. color:#fff;
  218. font-size: 28rpx;
  219. padding:14rpx 24rpx;
  220. &.active{
  221. background: #EFEFEF;
  222. color:#999999;
  223. }
  224. }
  225. .info{
  226. flex:1;
  227. .title{
  228. font-weight: 600;
  229. font-size: 30rpx;
  230. color: #333333;
  231. margin-bottom: 22rpx;
  232. }
  233. .desc{
  234. font-weight: 400;
  235. font-size: 24rpx;
  236. color: #999999;
  237. }
  238. }
  239. }
  240. }
  241. </style>