MBTI人格测试 uniapp

career70.vue 25KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898
  1. <template>
  2. <view class="page-wrap">
  3. <view class="share-wrap">
  4. <button open-type="share">
  5. <view class="share-btn">邀请好友测试</view>
  6. </button>
  7. </view>
  8. <!-- 跑马灯 -->
  9. <view class="box">
  10. <text class="title"
  11. >温馨提示:请在心态平和的情况下开始答题,每题考虑时间不宜超过10秒钟,选项之间无对错好坏之分,请选择与你实际做法相符的,而不是你认为怎样做是对的!</text
  12. >
  13. </view>
  14. <view class="progress-wrap box-shadow">
  15. <view>进度</view>
  16. <view class="bar-wrap">
  17. <u-line-progress
  18. active-color="#f0865e"
  19. :percent="((option.currentIdx + 1) / option.choices.length) * 100"
  20. height="40"
  21. striped
  22. striped-active
  23. :show-percent="false"
  24. />
  25. </view>
  26. <view class="tips"
  27. >{{ option.currentIdx + 1 }}/{{ option.choices.length }}</view
  28. >
  29. </view>
  30. <form class="section section_gap" @submit="onSubmit" @reset="onReset">
  31. <!-- 第一部分 -->
  32. <view class="group1">
  33. <block v-for="(item, index) in 10" :key="index">
  34. <view v-show="option.currentIdx === index" class="group-wrap box-shadow">
  35. <view :class="['section__title', 'num' + index]">
  36. <text>{{ option.title[index] }}</text>
  37. </view>
  38. <view class="two">
  39. <radio-group
  40. name="radio-group"
  41. @change="onRadioChange"
  42. :data-index="index"
  43. >
  44. <label>
  45. <view class="first">
  46. <radio value="radio1" />
  47. <text>{{ option.toptext[index] }}</text>
  48. </view>
  49. </label>
  50. <label>
  51. <view class="first">
  52. <radio value="radio2" />
  53. <text>{{ option.bottext[index] }}</text>
  54. </view>
  55. </label>
  56. </radio-group>
  57. </view>
  58. </view>
  59. </block>
  60. </view>
  61. <!-- 分割线 -->
  62. <!-- <view class="fgx"></view> -->
  63. <!-- 第二部分 -->
  64. <view class="group2">
  65. <block v-for="(item, index) in 20" :key="index">
  66. <view v-show="option.currentIdx === 10 + index" class="group-wrap box-shadow">
  67. <view :class="['section__title', 'num' + (10 + index)]">
  68. <text>{{ option.title2[index] }}</text>
  69. </view>
  70. <view class="two">
  71. <radio-group
  72. name="radio-group"
  73. @change="onRadioChange"
  74. :data-index="10 + index"
  75. >
  76. <label>
  77. <view class="first">
  78. <radio value="radio1" />
  79. <text>{{ option.toptext2[index] }}</text>
  80. </view>
  81. </label>
  82. <label>
  83. <view class="first">
  84. <radio value="radio2" />
  85. <text>{{ option.bottext2[index] }}</text>
  86. </view>
  87. </label>
  88. </radio-group>
  89. </view>
  90. </view>
  91. </block>
  92. </view>
  93. <!-- 分割线 -->
  94. <!-- <view class="fgx"></view> -->
  95. <!-- 第三部分 -->
  96. <view class="group3">
  97. <block v-for="(item, index) in 20" :key="index">
  98. <view v-show="option.currentIdx === 30 + index" class="group-wrap box-shadow">
  99. <view :class="['section__title', 'num' + (30 + index)]">
  100. <text>{{ option.title3[index] }}</text>
  101. </view>
  102. <view class="two">
  103. <radio-group
  104. name="radio-group"
  105. @change="onRadioChange"
  106. :data-index="30 + index"
  107. >
  108. <label>
  109. <view class="first">
  110. <radio value="radio1" />
  111. <text>{{ option.toptext3[index] }}</text>
  112. </view>
  113. </label>
  114. <label>
  115. <view class="first">
  116. <radio value="radio2" />
  117. <text>{{ option.bottext3[index] }}</text>
  118. </view>
  119. </label>
  120. </radio-group>
  121. </view>
  122. </view>
  123. </block>
  124. </view>
  125. <!-- 分割线 -->
  126. <!-- <view class="fgx"></view> -->
  127. <!-- 第四部分 -->
  128. <view class="group4">
  129. <block v-for="(item, index) in 20" :key="index">
  130. <view v-show="option.currentIdx === 50 + index" class="group-wrap box-shadow">
  131. <view :class="['section__title', 'num' + (50 + index)]">
  132. <text>{{ option.title4[index] }}</text>
  133. </view>
  134. <view class="two">
  135. <radio-group
  136. name="radio-group"
  137. @change="onRadioChange"
  138. :data-index="50 + index"
  139. >
  140. <label>
  141. <view class="first">
  142. <radio value="radio1" />
  143. <text>{{ option.toptext4[index] }}</text>
  144. </view>
  145. </label>
  146. <label>
  147. <view class="first">
  148. <radio value="radio2" />
  149. <text>{{ option.bottext4[index] }}</text>
  150. </view>
  151. </label>
  152. </radio-group>
  153. </view>
  154. </view>
  155. </block>
  156. </view>
  157. <!-- 分割线 -->
  158. <!-- <view class="fgx"></view> -->
  159. <!-- 按钮 -->
  160. <view class="btn">
  161. <!-- bindtap 事件是在手指触摸屏幕后立即触发,响应速度更快,适用于交互频繁的场景。-->
  162. <!-- bindclick 事件是在手指触摸屏幕后、手指离开屏幕后 300ms 内触发,响应速度较慢,适用于一些需要判断手势的场景。-->
  163. <!-- <button class="btn1" formType="submit">提交</button> -->
  164. <view class="btn-wrap" @click="onClickChangePage('pre')">上一题</view>
  165. <view class="btn-wrap m-30" @click="onClickChangePage('next')"
  166. >下一题</view
  167. >
  168. <button class="btn2" formType="reset" @click="MoveToTop">
  169. 重新测试
  170. </button>
  171. </view>
  172. </form>
  173. </view>
  174. </template>
  175. <script>
  176. const app = getApp();
  177. export default {
  178. components: {},
  179. data() {
  180. return {
  181. appName: app.globalData.$appInfo.appName,
  182. pageContentTop: app.globalData.pageContentTop,
  183. option: {
  184. title: [
  185. "1.在聚会时,你通常",
  186. "2.与陌生人交流,让你觉得:",
  187. "3.你认为你自己是:",
  188. "4.你更象是哪种人:",
  189. "5.你更倾向于哪种:",
  190. "6.你认为自己是哪种人:",
  191. "7.你是哪种人:",
  192. "8.在排队等候时,你经常",
  193. "9.在工作中你更倾向于:",
  194. "10.当电话铃声响起时,你:",
  195. ],
  196. toptext: [
  197. "A.与许多人交流,其中包括陌生人",
  198. "A. 兴奋,有活力",
  199. "A. 一个好的善谈者",
  200. "A. 容易接近的",
  201. "A. 随心所欲地直接说出自己的想法",
  202. "A. 外向的人",
  203. "A. 相当健谈的人",
  204. "A. 主动与别人聊天",
  205. "A. 好与同事们一起交往",
  206. "A. 很快去接听",
  207. ],
  208. bottext: [
  209. "B. 只与一些朋友交流",
  210. "B. 费劲,是负担",
  211. "B. 一个好的倾听者",
  212. "B. 有点矜持的",
  213. "B. 经常是多听少说",
  214. "B. 内向的人",
  215. "B. 比较缄默的人",
  216. "B. 只是站在那儿等着",
  217. "B. 不太与别人交流",
  218. "B. 希望别人去接听",
  219. ],
  220. title2: [
  221. "11.一般来说,儿童:",
  222. "12.哪种方式更能使你了解意义:",
  223. "13.哪种情况更糟:",
  224. "14.你认为幻想家和理论家",
  225. "15.哪种更吸引你:",
  226. "16.你更象是哪种人:",
  227. "17.你更愿意感觉:",
  228. "18.在多数情况下,你是",
  229. "19.你更可能相信你的",
  230. "20.你更象哪种情况:",
  231. "21.你认为自己更象是",
  232. "22.事实",
  233. "23.你更经常看见",
  234. "24.你对哪种更感兴趣",
  235. "25.常识",
  236. "26.你喜欢的作家是哪种:",
  237. "27.你喜欢的故事是哪种类型的:",
  238. "28.你的说话更象哪种情形:",
  239. "29.对你来说哪种情况更容易:",
  240. "30.你更象哪种人:",
  241. ],
  242. toptext2: [
  243. "A. 经常没有发挥他们的用处",
  244. "A. 直白性的说明",
  245. "A. 想入非非",
  246. "A. 有些让人烦",
  247. "A. 基本规则",
  248. "A. 观察力胜过内省力",
  249. "A. 现实",
  250. "A. 实际的人",
  251. "A. 经验",
  252. "A. 实际的多于观念的",
  253. "A. 有强烈的现实感的人",
  254. "A. 就是事实本身",
  255. "A. 眼前的现实",
  256. "A. 实际是什么",
  257. "A. 通常是可信的",
  258. "A. 平铺直叙的",
  259. "A. 动作和冒险的",
  260. "A. 具体细节多于一般性的概括",
  261. "A. 更好地利用别人",
  262. "A. 事实性多于思辩性",
  263. ],
  264. bottext2: [
  265. "B. 常常没有运用他们的幻想",
  266. "B. 比喻性的说明",
  267. "B. 墨守成规",
  268. "B. 相当有吸引力",
  269. "B. 含义,言外之意",
  270. "B. 内省力胜过观察力",
  271. "B. 有些飘忽、不太现实",
  272. "B. 富于想象的人",
  273. "B. 想象",
  274. "B. 观念的多于实际的",
  275. "B. 有生动的想象力的人",
  276. "B. 是原则、规律的例证",
  277. "B. 只能通过想象的事情",
  278. "B. 可能是什么",
  279. "B. 时常可疑的",
  280. "B. 使用比喻和象征的",
  281. "B. 幻想和英雄主义的",
  282. "B. 一般性的概括多于具体细节",
  283. "B. 认同别人",
  284. "B. 思辩性多于事实性",
  285. ],
  286. title3: [
  287. "31.对于工作场所的杂乱无章,你通常",
  288. "32.在做选择时,你一般是:",
  289. "33.哪种方式更象你:",
  290. "34.在工作中,你希望你的任务是:",
  291. "35.你更愿意说你是哪种人:",
  292. "36.你更倾向于:",
  293. "37.大多数情况下,你更愿意:",
  294. "38.哪种情况你更为满意:",
  295. "39.哪种情形更象你:",
  296. "40.在做一件工作时,你更喜欢",
  297. "41.在工作中,对你来说哪种情况更为自然:",
  298. "42.你更愿意工作到",
  299. "43.在大多数场合中,你",
  300. "44.你更喜欢协议是",
  301. "45.你通常希望事情是",
  302. "46.你通常更喜欢",
  303. "47.你更容易注意到",
  304. "48.哪种情况你更感舒适:",
  305. "49.哪种情况你感觉更好:",
  306. "50.你更象哪种人:",
  307. ],
  308. toptext3: [
  309. "A. 看不顺眼,花时间将它们归置整齐",
  310. "A. 非常小心的",
  311. "A. 很快下定决心",
  312. "A. 事先安排定的",
  313. "A. 严肃而果断的人",
  314. "A. 把事情确定下来",
  315. "A. 确信事情安排妥当",
  316. "A. 一件完成的产品",
  317. "A. 匆忙多于悠闲",
  318. "A. 专心于这件事,直到结束",
  319. "A. 指出错误",
  320. "A. 期限的最后一刻",
  321. "A. 审慎多于自发(言行谨慎多于信口随心)",
  322. "A. 正式签署、存档的",
  323. "A. 确定并安排好的",
  324. "A. 最终的、不可更改的决议",
  325. "A. 不合规范、无序之处",
  326. "A. 作出决定之后",
  327. "A. 事情逐渐接近结束时",
  328. "A. 例行常规多于一时兴起",
  329. ],
  330. bottext3: [
  331. "B. 无所谓,很能容忍",
  332. "B. 有点冲动的",
  333. "B. 反复权衡好一会儿",
  334. "B. 没有安排定的",
  335. "B. 随和而宽容的人",
  336. "B. 探索不同的可能性",
  337. "B. 任由事情发生",
  338. "B. 正在进行中的工作",
  339. "B. 悠闲多于匆忙",
  340. "B. 注意力又转移到其它事情上",
  341. "B. 试图取悦他人",
  342. "B. 随便什么时候结束为止",
  343. "B. 自发多于审慎(信口随心多于言行谨慎)",
  344. "B. 只是口头协议",
  345. "B. 暂时定下来的",
  346. "B. 暂时的、初步的说明",
  347. "B. 变化的机会",
  348. "B. 作出决定之前",
  349. "B. 继续保持再选择的可能",
  350. "B. 一时兴起多于例行常规",
  351. ],
  352. title4: [
  353. "51.你更象下面的哪种人:",
  354. "52.如果你不得不让某人失望,你通常会采取:",
  355. "53.在做决定时,你更可能依据哪种而定:",
  356. "54.哪种更好些:",
  357. "55.你更容易受哪种影响:",
  358. "56.当你负责管理别人时,你更可能采取:",
  359. "57.在评价别人的时候,你更象哪种:",
  360. "58.哪种更是对人的赞扬:",
  361. "59.在热烈的讨论中,你",
  362. "60.你希望自己更多一些",
  363. "61.你更看重自己身上的哪种特点",
  364. "62.你认为自己基本上是个",
  365. "63.与别人在一起时,你更经常是",
  366. "64.在工作环境中,有时你",
  367. "65.哪种东西更吸引你",
  368. "66.哪种情形你更感舒适:",
  369. "67.哪种东西更多地支配着你:",
  370. "68.做哪种人更糟",
  371. "69.哪种是更大的错误:",
  372. "70.你认为自己是:",
  373. ],
  374. toptext4: [
  375. "A. 头脑冷静的人",
  376. "A. 坦白而直接的方式",
  377. "A. 事实、资料",
  378. "A. 公正的",
  379. "A. 有说服力的证据",
  380. "A. 强硬而坚定不移的方式",
  381. "A. 客观,不带个人感情色彩",
  382. "A. “这是一个有逻辑的人”",
  383. "A. 坚持自己的立场",
  384. "A. 意志力",
  385. "A. 理智的",
  386. "A. 脸皮厚、不敏感的人",
  387. "A. 强硬多于温柔",
  388. "A. 太缺乏同情心",
  389. "A. 思想的一致性",
  390. "A. 做批评、分析性判断时",
  391. "A. 你的思想",
  392. "A. 软弱的人",
  393. "A. 太有同情心",
  394. "A. 硬心肠的人",
  395. ],
  396. bottext4: [
  397. "B. 热心肠的人",
  398. "B. 温暖而周到的方式",
  399. "B. 欲望、情感",
  400. "B. 仁慈的",
  401. "B. 令人同情的恳求",
  402. "B. 宽容不严厉的方式",
  403. "B. 友善,有主观色彩",
  404. "B. “这是一个情感丰富的人”",
  405. "B. 寻求共同的谈论背景",
  406. "B. 情感",
  407. "B. 热忱的",
  408. "B. 脸皮薄、敏感的人",
  409. "B. 温柔多于强硬",
  410. "B. 太过有同情心",
  411. "B. 人际关系的和谐",
  412. "B. 做价值判断时",
  413. "B. 你的感情",
  414. "B. 强硬的人",
  415. "B. 过于公平",
  416. "B. 温柔的人",
  417. ],
  418. choices: [
  419. null,
  420. null,
  421. null,
  422. null,
  423. null,
  424. null,
  425. null,
  426. null,
  427. null,
  428. null,
  429. null,
  430. null,
  431. null,
  432. null,
  433. null,
  434. null,
  435. null,
  436. null,
  437. null,
  438. null,
  439. null,
  440. null,
  441. null,
  442. null,
  443. null,
  444. null,
  445. null,
  446. null,
  447. null,
  448. null,
  449. null,
  450. null,
  451. null,
  452. null,
  453. null,
  454. null,
  455. null,
  456. null,
  457. null,
  458. null,
  459. null,
  460. null,
  461. null,
  462. null,
  463. null,
  464. null,
  465. null,
  466. null,
  467. null,
  468. null,
  469. null,
  470. null,
  471. null,
  472. null,
  473. null,
  474. null,
  475. null,
  476. null,
  477. null,
  478. null,
  479. null,
  480. null,
  481. null,
  482. null,
  483. null,
  484. null,
  485. null,
  486. null,
  487. null,
  488. null,
  489. ],
  490. currentIdx: 0,
  491. },
  492. };
  493. },
  494. onLoad() {
  495. app.handleSetNavTitle();
  496. },
  497. onShow() {},
  498. onPullDownRefresh() {},
  499. onReachBottom() {},
  500. onShareAppMessage(res) {
  501. // 如果要自定义分享内容,可以设置shareTicket和query参数
  502. return {
  503. title: '免费MBTI人格测试bot,快来试试吧~',
  504. path: '/pages/home/home',
  505. desc:'免费MBTI人格测试bot,快来试试吧~',
  506. imageUrl: '/static/imgs/mbti1.jpg',
  507. success(res){
  508. uni.showToast({
  509. title:'分享成功'
  510. })
  511. },
  512. fail(res){
  513. uni.showToast({
  514. title:'分享失败',
  515. icon:'none'
  516. })
  517. }
  518. }
  519. },
  520. methods: {
  521. onRadioChange(e) {
  522. let index = e.currentTarget.dataset.index;
  523. let value = e.detail.value;
  524. let choices = this.option.choices;
  525. choices[index] = value;
  526. // console.log(choices);
  527. this.option.choices = choices;
  528. if (this.option.currentIdx !== this.option.choices.length - 1) {
  529. this.option.currentIdx = index + 1;
  530. } else {
  531. this.onSubmit();
  532. }
  533. },
  534. onSubmit(e) {
  535. let choices = this.option.choices;
  536. console.log("choices => ", choices);
  537. for (let i = 0; i < choices.length; i++) {
  538. if (choices[i] === null) {
  539. // 如果有未做完题目,使用 `uni.pageScrollTo` 方法滚动页面到未做完题目所在的位置
  540. uni.showToast({
  541. title: "请完成所有题目",
  542. icon: "none",
  543. duration: 2000,
  544. });
  545. let jump = ".num" + i;
  546. uni.pageScrollTo({
  547. selector: jump,
  548. duration: 300,
  549. /*success: data => {
  550. console.log('scroll success', data);
  551. },
  552. fail: data => {
  553. console.log('scroll fail', data);
  554. },
  555. complete: data => {
  556. console.log('scroll complete', data);
  557. }*/
  558. });
  559. this.option.currentIdx = i;
  560. return;
  561. }
  562. }
  563. /* function CountAnswer */
  564. {
  565. let E = 0,
  566. I = 0,
  567. N = 0,
  568. S = 0,
  569. F = 0,
  570. T = 0,
  571. J = 0,
  572. P = 0;
  573. let choices = this.option.choices;
  574. let testResult;
  575. for (let i = 0; i < choices.length; i++) {
  576. if (i < 10) {
  577. if (choices[i] == "radio1") E++;
  578. else I++;
  579. continue;
  580. }
  581. if (i < 30) {
  582. if (choices[i] == "radio1") N++;
  583. else S++;
  584. continue;
  585. }
  586. if (i < 50) {
  587. if (choices[i] == "radio1") F++;
  588. else T++;
  589. continue;
  590. }
  591. if (i < 70) {
  592. if (choices[i] == "radio1") J++;
  593. else P++;
  594. }
  595. }
  596. if (E > I) testResult = "E";
  597. else testResult = "I";
  598. if (N > S) testResult += "N";
  599. else testResult += "S";
  600. if (F > T) testResult += "F";
  601. else testResult += "T";
  602. if (J > P) testResult += "J";
  603. else testResult += "P";
  604. console.log(testResult);
  605. app.globalData.testResult = testResult; // 保存到全局
  606. uni.navigateTo({
  607. url: "/pages/result/result",
  608. });
  609. }
  610. },
  611. onReset() {
  612. this.option.choices = this.option.choices.map(() => null);
  613. this.option.currentIdx = 0;
  614. },
  615. onClickChangePage(type) {
  616. if (type === "pre") {
  617. if (this.option.currentIdx === 0) {
  618. return false;
  619. } else {
  620. this.option.currentIdx--;
  621. }
  622. } else if (type === "next") {
  623. if (this.option.currentIdx === this.option.choices.length - 1) {
  624. return false;
  625. } else if (!this.option.choices[this.option.currentIdx]) {
  626. uni.showToast({
  627. title: "请完成当前题目",
  628. icon: "none",
  629. duration: 2000,
  630. });
  631. } else {
  632. this.option.currentIdx++;
  633. }
  634. }
  635. },
  636. MoveToTop: function () {
  637. uni.showToast({
  638. title: "重置成功",
  639. icon: "none",
  640. duration: 2000,
  641. });
  642. // 最好是先显示提示后滚动;否则就会先回去之后再提示(感觉那样有些奇怪)
  643. uni.pageScrollTo({
  644. scrollTop: 0, // 回到顶端
  645. duration: 300,
  646. });
  647. },
  648. },
  649. };
  650. </script>
  651. <style lang="scss" scoped>
  652. .page-wrap {
  653. min-height: 100vh;
  654. width: 750rpx;
  655. background-color: #ECF0F3;
  656. }
  657. /* pages/career/career.wxss */
  658. /* 跑马灯 */
  659. .box {
  660. width: 750rpx;
  661. margin: 10rpx auto;
  662. background: #feece7;
  663. border-radius: 10rpx;
  664. padding: 10rpx;
  665. box-sizing: border-box;
  666. overflow: hidden;
  667. }
  668. .title {
  669. white-space: nowrap;
  670. animation: 25s loop linear infinite normal;
  671. display: inline-block;
  672. vertical-align: top;
  673. font-size: 26rpx;
  674. color: #ec6e40;
  675. opacity: 0.8;
  676. }
  677. @keyframes loop {
  678. 0% {
  679. transform: translateX(700rpx);
  680. -webkit-transform: translateX(700rpx);
  681. }
  682. 100% {
  683. transform: translateX(-100%);
  684. -webkit-transform: translateX(-100%);
  685. }
  686. }
  687. @-webkit-keyframes loop {
  688. 0% {
  689. transform: translateX(600rpx);
  690. -webkit-transform: translateX(600rpx);
  691. }
  692. 100% {
  693. transform: translateX(-100%);
  694. -webkit-transform: translateX(-100%);
  695. }
  696. }
  697. /* 选择题 */
  698. .section {
  699. background-color: rgb(255, 247, 240);
  700. border-radius: 10rpx;
  701. width: 710rpx;
  702. margin: 10rpx auto;
  703. }
  704. .section .group1,
  705. .group2,
  706. .group3,
  707. .group4 {
  708. /* border: deepskyblue solid 1px; */
  709. width: 700rpx;
  710. margin: 40rpx auto;
  711. }
  712. .group-wrap {
  713. background-color: #fff;
  714. // border: 2rpx solid #f0865e;
  715. padding: 20rpx 40rpx;
  716. border-radius: 40rpx;
  717. }
  718. .section__title {
  719. /* border: rgb(0, 255, 34) solid 1px; */
  720. margin-top: 20rpx;
  721. }
  722. .two {
  723. /* border: rgb(255, 0, 221) solid 1px; */
  724. margin-bottom: 40rpx;
  725. margin-top: 100rpx;
  726. }
  727. radio-group {
  728. margin-left: 10rpx;
  729. }
  730. radio {
  731. transform: scale(0.9);
  732. }
  733. text {
  734. font-size: 30rpx;
  735. color: #666666;
  736. margin-top: 2rpx;
  737. }
  738. .section__title text {
  739. color: #f0865e;
  740. font-size: 34rpx;
  741. font-weight: bold;
  742. }
  743. .two .first {
  744. margin: 50rpx 0;
  745. display: flex;
  746. }
  747. /* 分割线 */
  748. .fgx {
  749. border: rgb(224, 224, 224) solid;
  750. margin-top: 30rpx;
  751. }
  752. /* 按钮 */
  753. .btn {
  754. width: 100%;
  755. display: flex;
  756. align-items: center;
  757. justify-content: center;
  758. margin-top: 100rpx;
  759. }
  760. .btn-wrap {
  761. background: linear-gradient(90deg, #FF9048 0%, #fd6a68 100%);
  762. color: rgb(255, 255, 255);
  763. font-size: 28rpx;
  764. width: 25%;
  765. display: flex;
  766. align-items: center;
  767. justify-content: center;
  768. height: 80rpx;
  769. border-radius: 10rpx;
  770. }
  771. .m-30 {
  772. margin: 0 40rpx;
  773. }
  774. .btn button {
  775. /* border: tomato solid 1px; */
  776. background-color: limegreen;
  777. color: rgb(255, 255, 255);
  778. font-size: 28rpx;
  779. height: 80rpx;
  780. line-height: 80rpx;
  781. text-align: center;
  782. margin: 0;
  783. width: 25%;
  784. }
  785. .btn .btn1 {
  786. margin-right: 20rpx;
  787. }
  788. .btn .btn2 {
  789. background: linear-gradient(90deg, #FF9048 0%, #fd6a68 100%);
  790. }
  791. .progress-wrap {
  792. margin: 40rpx 20rpx 0;
  793. // border: 2rpx solid #f0865e;
  794. display: flex;
  795. justify-content: center;
  796. padding: 40rpx 100rpx;
  797. border-radius: 40rpx;
  798. background-color: #fff;
  799. .bar-wrap {
  800. margin: 0 30rpx;
  801. width: 300rpx;
  802. }
  803. .tips {
  804. width: 80rpx;
  805. }
  806. }
  807. .share-wrap {
  808. button::after {
  809. border: none;
  810. }
  811. button {
  812. position: relative;
  813. display: block;
  814. margin-left: auto;
  815. margin-right: auto;
  816. padding-left: 0px;
  817. padding-right: 0px;
  818. box-sizing: border-box;
  819. text-align: center;
  820. text-decoration: none;
  821. line-height: 1.35;
  822. -webkit-tap-highlight-color: transparent;
  823. overflow: hidden;
  824. color: #000;
  825. font-size: 32rpx;
  826. background-color: #fff;
  827. width: 100%;
  828. height: 100%;
  829. }
  830. .share-btn {
  831. padding: 15rpx 10rpx;
  832. background: linear-gradient(90deg, #FF9048 0%, #fd6a68 100%);
  833. color: #fff;
  834. font-weight: 600;
  835. font-size: 26rpx;
  836. position: fixed;
  837. right: 0;
  838. bottom: 20%;
  839. border-radius: 40rpx 0 0 40rpx;
  840. }
  841. }
  842. .box-shadow {
  843. background-color: #fff;
  844. border-radius: 20px;
  845. box-shadow:
  846. inset rgba(0, 0, 0, 0.1) 0 5rpx 12rpx,
  847. inset rgba(252, 255, 255, 0.5) 0 5rpx 12rpx,
  848. rgba(0, 0, 0, 0.2) 0 5rpx 12rpx -5rpx;
  849. }
  850. </style>