list.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. <template>
  2. <view class="prayers-list" @click="handleclick">
  3. <u-navbar
  4. title="南华云灯会"
  5. leftIconColor="#fff"
  6. :titleStyle="{ color: '#fff' }"
  7. bgColor="transparent"
  8. :autoBack="true"
  9. >
  10. </u-navbar>
  11. <!-- <u-navbar title="剑未配妥,出门已是江湖" @click-left="onClickBack" @click-right="onClickRight"></u-navbar> -->
  12. <div class="allList" v-if="false">
  13. <div class="list">
  14. <swiper
  15. :display-multiple-items="3.3"
  16. :rebound="false"
  17. slidesPerView="auto"
  18. style="height: 555px"
  19. :height="555"
  20. class="swiper"
  21. :autoplay="false"
  22. @click="handleclick"
  23. >
  24. <swiper-item
  25. style="height: 555px"
  26. :height="680"
  27. v-for="(item, index) in list"
  28. :key="index"
  29. >
  30. <div class="listitem">
  31. <div
  32. class="item"
  33. :class="{ active: active == element }"
  34. v-for="(element, s) in item.list"
  35. :key="s"
  36. >
  37. {{ element }}
  38. </div>
  39. </div>
  40. </swiper-item>
  41. </swiper>
  42. </div>
  43. <div class="tips">请选择祈愿类型</div>
  44. <div class="img_signal" v-if="!show"></div>
  45. </div>
  46. <div class="activeIndex">
  47. <div class="indexHome">学业祈愿</div>
  48. <div class="textListContent">
  49. <div
  50. class="textList"
  51. v-for="(item, index) in textList"
  52. :key="item"
  53. :class="'text' + index"
  54. >
  55. {{ item }}
  56. </div>
  57. </div>
  58. <div class="textTips">请选择祈愿语</div>
  59. <div class="selcet">
  60. <div>您来自哪个省份?</div>
  61. <div class="selcetBut" @click="provinceShow = true">
  62. {{province}}
  63. <u-icon
  64. class="mytest"
  65. name="arrow-down-fill"
  66. color="#fff"
  67. size="10"
  68. ></u-icon>
  69. </div>
  70. </div>
  71. <div class="qiyuan">
  72. <u--image
  73. height="70px"
  74. width="70px"
  75. mode="heightFix"
  76. src="/static/img/btn_wish@2x.png"
  77. ></u--image>
  78. </div>
  79. </div>
  80. <u-picker :show="provinceShow" :columns="[provinceList]"
  81. @cancel="provinceShow = false"
  82. @confirm="confirm"
  83. @close="provinceShow = false" closeOnClickOverlay></u-picker>
  84. </view>
  85. </template>
  86. <script>
  87. // import uNavbar from "uview-ui/components/u-navbar/u-navbar.vue";
  88. export default {
  89. components: {
  90. // uNavbar
  91. },
  92. data() {
  93. return {
  94. active: "婚姻祈愿1",
  95. show: false,
  96. province: "请选择",
  97. provinceShow: false,
  98. provinceList: [
  99. "北京",
  100. "天津",
  101. "河北省",
  102. "山西省",
  103. "内蒙古自治区",
  104. "辽宁省",
  105. "吉林省",
  106. "黑龙江省",
  107. "上海",
  108. "江苏省",
  109. "浙江省",
  110. "安徽省",
  111. "福建省",
  112. "江西省",
  113. "山东省",
  114. "河南省",
  115. "湖北省",
  116. "湖南省",
  117. "广东省",
  118. "广西壮族自治区",
  119. "海南省",
  120. "重庆",
  121. "四川省",
  122. "贵州省",
  123. "云南省",
  124. "西藏自治区",
  125. "陕西省",
  126. "甘肃省",
  127. "青海省",
  128. "宁夏回族自治区",
  129. "新疆维吾尔自治区",
  130. "台湾",
  131. "香港特别行政区",
  132. "澳门特别行政区",
  133. "海外",
  134. ],
  135. list: [
  136. {
  137. list: ["婚姻祈愿1", "婚姻祈愿2"],
  138. },
  139. {
  140. list: ["婚姻祈愿2", "婚姻祈愿2"],
  141. },
  142. {
  143. list: ["婚姻祈愿3", "婚姻祈愿2"],
  144. },
  145. {
  146. list: ["婚姻祈愿4", "婚姻祈愿2"],
  147. },
  148. {
  149. list: ["婚姻祈愿5", "婚姻祈愿2"],
  150. },
  151. {
  152. list: ["婚姻祈愿6", "婚姻祈愿2"],
  153. },
  154. {
  155. list: ["婚姻祈愿7", "婚姻祈愿2"],
  156. },
  157. ],
  158. textList: [
  159. "100%纯手工制作",
  160. "知识的殿堂中闪耀属于你的光芒。",
  161. "愿你学有所",
  162. ],
  163. // list: [{
  164. // name: '婚姻祈愿',
  165. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  166. // },{
  167. // name: '婚姻祈愿',
  168. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  169. // },{
  170. // name: '婚姻祈愿',
  171. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  172. // },{
  173. // name: '婚姻祈愿',
  174. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  175. // },{
  176. // name: '婚姻祈愿',
  177. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  178. // },{
  179. // name: '婚姻祈愿',
  180. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  181. // },{
  182. // name: '婚姻祈愿',
  183. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  184. // },{
  185. // name: '婚姻祈愿',
  186. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  187. // },{
  188. // name: '婚姻祈愿',
  189. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  190. // },{
  191. // name: '婚姻祈愿',
  192. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  193. // },{
  194. // name: '婚姻祈愿',
  195. // textList: ['100%纯手工制作', '100%愿你学业精进,成绩辉煌,知识的殿堂中闪耀属于你的光芒。', '愿你学有所成,智慧增进,每一次努力都为未来铺就光明之路。']
  196. // }]
  197. };
  198. },
  199. onLoad() {},
  200. methods: {
  201. handleHome() {
  202. console.log("开启云上观灯", uni);
  203. uni.$u.route("/pages/home/home");
  204. },
  205. handleclick() {
  206. this.show = true;
  207. },
  208. confirm(val){
  209. console.log("confirm", val);
  210. this.province = val.value[0];
  211. this.provinceShow = false;
  212. }
  213. },
  214. };
  215. </script>
  216. <style lang="scss" scoped>
  217. .prayers-list {
  218. background: rgba(32, 21, 10, 0.7);
  219. border-radius: 0px 0px 0px 0px;
  220. height: 100vh;
  221. padding-top: 100px;
  222. .img_signal {
  223. width: 76px;
  224. height: 106px;
  225. background: url(https://4dscene.4dage.com/new4dkk/deng/static/img/img_signal@2x.png)
  226. 100% 100% no-repeat;
  227. background-size: cover;
  228. position: absolute;
  229. right: 50px;
  230. bottom: 30px;
  231. animation: handleAni 1s linear infinite;
  232. transition: all 1s;
  233. }
  234. .tips {
  235. width: 100%;
  236. text-align: center;
  237. margin-top: 27px;
  238. color: #fff;
  239. font-size: 14px;
  240. line-height: 21px;
  241. }
  242. .list {
  243. height: 555px;
  244. .swiper {
  245. padding: 0 10px;
  246. .listitem {
  247. text-align: center;
  248. padding: 0 20px;
  249. .item {
  250. margin-top: 20px;
  251. // margin: 18px 20px 0 20px;
  252. width: 18px;
  253. height: 267px;
  254. background: url(https://4dscene.4dage.com/new4dkk/deng/static/img/label@2x.png)
  255. 100% 100% no-repeat;
  256. background-size: cover;
  257. writing-mode: tb-rl;
  258. text-align: center;
  259. padding: 0 25px;
  260. position: relative;
  261. }
  262. .active {
  263. &:after {
  264. content: "";
  265. box-shadow: 0px 2px 18px 11px #fff86c,
  266. inset 0px 1px 1px 0px rgba(177, 156, 125, 0.7);
  267. position: absolute;
  268. height: 71%;
  269. width: 80%;
  270. top: 32px;
  271. left: 8px;
  272. border-radius: 25px;
  273. z-index: -1;
  274. }
  275. }
  276. }
  277. }
  278. }
  279. .activeIndex {
  280. width: 100%;
  281. height: 100%;
  282. position: relative;
  283. .indexHome {
  284. height: 500px;
  285. width: 28px;
  286. background: url(https://4dscene.4dage.com/new4dkk/deng/static/img/label@2x.png)
  287. 100% 100% no-repeat;
  288. background-size: contain;
  289. writing-mode: tb-rl;
  290. padding: 0 50px;
  291. position: absolute;
  292. font-weight: 400;
  293. font-size: 30px;
  294. color: #8c4042;
  295. line-height: 45px;
  296. font-style: normal;
  297. display: flex;
  298. writing-mode: vertical-lr;
  299. text-align: center;
  300. justify-content: center;
  301. flex-direction: column;
  302. letter-spacing: 18px;
  303. left: calc(50% - 64px);
  304. }
  305. .qiyuan{
  306. position: absolute;
  307. bottom: 162px;
  308. right: 20px;
  309. }
  310. .selcet {
  311. position: absolute;
  312. width: 100%;
  313. bottom: 20%;
  314. text-align: center;
  315. color: #fff;
  316. font-size: 14px;
  317. line-height: 14px;
  318. .selcetBut {
  319. border: 1px solid #d9d9d9;
  320. line-height: 48px;
  321. width: 120px;
  322. margin: 0 auto;
  323. padding: 0 15px;
  324. margin-top: 10px;
  325. height: 48px;
  326. border-radius: 10px;
  327. position: relative;
  328. .mytest {
  329. position: absolute;
  330. right: 25px;
  331. top: calc(50% - 5px);
  332. }
  333. }
  334. }
  335. .textTips {
  336. color: #fff;
  337. writing-mode: vertical-lr;
  338. text-align: center;
  339. font-weight: 400;
  340. font-size: 14px;
  341. line-height: 14px;
  342. text-align: center;
  343. font-style: normal;
  344. text-transform: none;
  345. position: absolute;
  346. top: calc(50% - 150px);
  347. left: calc(50% + 68px);
  348. }
  349. .textListContent {
  350. display: flex;
  351. }
  352. .textList {
  353. height: fit-content;
  354. padding: 20px 6px;
  355. font-style: normal;
  356. display: flex;
  357. writing-mode: vertical-lr;
  358. text-align: center;
  359. justify-content: center;
  360. flex-direction: column;
  361. background: rgba(255, 255, 255, 0.3);
  362. border-radius: 20px 20px 20px 20px;
  363. border: 1px solid #fff9b6;
  364. position: absolute;
  365. font-weight: 400;
  366. font-size: 11px;
  367. top: 50px;
  368. color: #fff9b6;
  369. }
  370. .text0 {
  371. left: 30px;
  372. }
  373. .text1 {
  374. left: 80px;
  375. top: 276px;
  376. }
  377. .text2 {
  378. right: 30px;
  379. }
  380. }
  381. }
  382. @keyframes handleAni {
  383. from {
  384. right: 50px;
  385. }
  386. to {
  387. right: 30px;
  388. }
  389. }
  390. </style>