alertSetting.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  1. <template>
  2. <view class="flex-col justify-start page">
  3. <cu-custom isBack="true" bgColor="#000000">
  4. <view slot="content" style="color: #FFFFFF">UU睡眠</view>
  5. </cu-custom>
  6. <!-- <time-slot-->
  7. <!-- ref="timeslot"-->
  8. <!-- :title="'选择时间段'"-->
  9. <!-- @confirm="confirmTime">-->
  10. <!-- </time-slot>-->
  11. <view class="flex-col justify-start section">
  12. <view class="flex-col section_2 space-y-32">
  13. <view class="flex-col">
  14. <text class="self-start font_1 text_2">心率异常提醒</text>
  15. <view class="flex-col section_6 view space-y-10">
  16. <view class="flex-row justify-between self-start equal-division">
  17. <view class="flex-row items-end space-x-4 items-center">
  18. <switch :checked="switchFrom.sign_sms_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchTzSms"/>
  19. <text class="font_2">短信提醒</text>
  20. </view>
  21. <view class="flex-row items-end space-x-4 items-center">
  22. <switch :checked="switchFrom.sign_voice_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchTzVoice"/>
  23. <text class="font_2">电话语音</text>
  24. </view>
  25. </view>
  26. <view class="flex-col">
  27. <view class="flex-row justify-between items-center list-item">
  28. <text class="font_2 text_3">心率过速提醒值</text>
  29. <view class="flex-row items-center group_3 space-x-6">
  30. <picker @change="pickerChange" :range="sleepWornList.rh_highList" data-target="1">
  31. <view class="uni-input">
  32. <text class="font_3">{{ sleepWorn.rh_high }}</text>
  33. <text class="font_4">次/分钟</text>
  34. <image
  35. class="shrink-0 image_7"
  36. src="../../static/iconRight.png"
  37. />
  38. </view>
  39. </picker>
  40. </view>
  41. </view>
  42. <view class="flex-row justify-between items-center list-item">
  43. <text class="font_2 text_3">心率过缓提醒值</text>
  44. <view class="flex-row items-center group_3 space-x-6">
  45. <picker @change="pickerChange" :range="sleepWornList.rh_lowList" data-target="2">
  46. <view class="uni-input">
  47. <text class="font_3">{{ sleepWorn.rh_low }}</text>
  48. <text class="font_4">次/分钟</text>
  49. <image
  50. class="shrink-0 image_7"
  51. src="../../static/iconRight.png"
  52. />
  53. </view>
  54. </picker>
  55. </view>
  56. </view>
  57. </view>
  58. </view>
  59. </view>
  60. <view class="flex-col group_5 space-y-14">
  61. <text class="self-start font_1">呼吸率异常提醒</text>
  62. <view class="flex-col section_6 space-y-10">
  63. <view class="flex-row justify-between self-start equal-division">
  64. <view class="flex-row items-end space-x-4 items-center">
  65. <switch :checked="switchFrom.sign_sms_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchTzSms" />
  66. <text class="font_2">短信提醒</text>
  67. </view>
  68. <view class="flex-row items-end space-x-4 items-center">
  69. <switch :checked="switchFrom.sign_voice_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchTzVoice"/>
  70. <text class="font_2">电话语音</text>
  71. </view>
  72. </view>
  73. <view class="flex-col">
  74. <view class="flex-row justify-between items-center list-item">
  75. <text class="font_2 text_3">呼吸率过速提醒值</text>
  76. <view class="flex-row items-center space-x-6">
  77. <picker @change="pickerChange" :range="sleepWornList.hx_highList" data-target="3">
  78. <view class="uni-input">
  79. <text class="font_3">{{ sleepWorn.hx_high }}</text>
  80. <text class="font_4">次/分钟</text>
  81. <image
  82. class="shrink-0 image_7"
  83. src="../../static/iconRight.png"
  84. />
  85. </view>
  86. </picker>
  87. </view>
  88. </view>
  89. <view class="flex-row justify-between items-center list-item">
  90. <text class="font_2 text_3">呼吸率过缓提醒值</text>
  91. <view class="flex-row items-center space-x-6">
  92. <picker @change="pickerChange" :range="sleepWornList.hx_lowList" data-target="4">
  93. <view class="uni-input">
  94. <text class="font_3">{{ sleepWorn.hx_low }}</text>
  95. <text class="font_4">次/分钟</text>
  96. <image
  97. class="shrink-0 image_7"
  98. src="../../static/iconRight.png"
  99. />
  100. </view>
  101. </picker>
  102. </view>
  103. </view>
  104. </view>
  105. </view>
  106. </view>
  107. <view class="flex-col group_5">
  108. <view class="flex-row items-center group_6 space-x-30">
  109. <text class="font_1">离床预警提醒</text>
  110. <text class="font_5 text_4">注:离床预警生效需要用户在床超过1小时。</text>
  111. </view>
  112. <view class="flex-col section_7 space-y-24">
  113. <view class="flex-row justify-between self-start equal-division">
  114. <view class="flex-row items-end space-x-4 items-center">
  115. <switch :checked="switchFrom.out_of_bed_sms_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchOutSms" />
  116. <text class="font_2">短信提醒</text>
  117. </view>
  118. <view class="flex-row items-end space-x-4 items-center">
  119. <switch :checked="switchFrom.out_of_bed_voice_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchOutVoice" />
  120. <text class="font_2">电话语音</text>
  121. </view>
  122. </view>
  123. <view class="flex-col group_7">
  124. <view class="flex-row justify-between items-center group_8">
  125. <text class="font_2 text_3">离床预警区间</text>
  126. <!-- <view @click="handleTimeChoose" class="flex-row items-center group_9 space-x-20">-->
  127. <!-- <text class="font_3">22:00 - 6:00</text>-->
  128. <!-- <image-->
  129. <!-- class="shrink-0 image_7"-->
  130. <!-- src="../../static/iconRight.png"-->
  131. <!-- />-->
  132. <!-- </view>-->
  133. <view class="action">
  134. <picker mode="time" :value="sleepWorn.leave_start" start="00:00" end="23:59" @change="timeChange" data-target="leave_start">
  135. <view class="uni-input font_3">
  136. {{ sleepWorn.leave_start }}
  137. </view>
  138. </picker>
  139. </view>
  140. <text class="font_3">~</text>
  141. <view class="action">
  142. <picker mode="time" :value="sleepWorn.leave_end" start="00:00" end="23:59" @change="timeChange" data-target="leave_end">
  143. <view class="uni-input font_3">
  144. {{ sleepWorn.leave_end }}
  145. </view>
  146. </picker>
  147. </view>
  148. </view>
  149. <view class="flex-row justify-between items-center group_10">
  150. <text class="font_2 text_3">离床未归提醒</text>
  151. <view class="flex-row items-center group_11 space-x-8">
  152. <picker @change="pickerChange" :range="sleepWornList.leave_durationList" data-target="5">
  153. <view class="uni-input">
  154. <text class="font_3">{{sleepWorn.leave_duration }}</text>
  155. <text class="font_4">分钟</text>
  156. <image
  157. class="shrink-0 image_7"
  158. src="../../static/iconRight.png"
  159. />
  160. </view>
  161. </picker>
  162. </view>
  163. </view>
  164. </view>
  165. </view>
  166. </view>
  167. <view class="flex-col group_5 space-y-14">
  168. <text class="self-start font_1">紧急求助开关</text>
  169. <view class="flex-col justify-start items-start section_8">
  170. <view class="flex-row space-x-6">
  171. <view class="flex-row items-center equal-division-item space-x-4">
  172. <switch :checked="switchFrom.sos_sms_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchSosSms" />
  173. <text class="font_2">短信提醒</text>
  174. </view>
  175. <view class="flex-row items-center equal-division-item space-x-4">
  176. <switch :checked="switchFrom.sos_voice_switch" color="#1E09DE" style="transform:scale(0.7)" @change="switchSosVoice" />
  177. <text class="font_2">电话语音</text>
  178. </view>
  179. </view>
  180. </view>
  181. </view>
  182. <view class="flex-col group_5 space-y-20">
  183. <!-- <view class="flex-col space-y-12">-->
  184. <!-- <text class="self-start font_1 text_5">语音短信提示手机号码设置</text>-->
  185. <!-- <view class="flex-col space-y-4">-->
  186. <!-- <text class="font_5 text_6">-->
  187. <!-- 注:设置提醒手机号需注册“小U睡眠”小程序领取短信语言套餐包,才能发送短信语音提醒。-->
  188. <!-- </text>-->
  189. <!-- <view class="flex-col section_9">-->
  190. <!-- <view class="flex-row justify-between items-center list-item">-->
  191. <!-- <text class="font_2 text_8">号码1</text>-->
  192. <!-- <view class="flex-row items-center space-x-8">-->
  193. <!-- <input class="uni-input" placeholder-style="color:rgba(255, 255, 255, 0.5);text-align:right"-->
  194. <!-- type="number" placeholder="输入手机号码"/>-->
  195. <!-- </view>-->
  196. <!-- </view>-->
  197. <!-- <view class="flex-row justify-center items-center list-item space-x-6">-->
  198. <!-- <image-->
  199. <!-- class="image_9"-->
  200. <!-- src="https://codefun-proj-user-res-1256085488.cos.ap-guangzhou.myqcloud.com/649415135a7e3f0310661c1e/649415b654fe0000116ae544/16878800827365047681.png"-->
  201. <!-- />-->
  202. <!-- <text class="font_2">添加手机号码</text>-->
  203. <!-- </view>-->
  204. <!-- </view>-->
  205. <!-- </view>-->
  206. <!-- </view>-->
  207. <view class="flex-col justify-start items-center self-center button">
  208. <text class="text_9" @click="saveSleepWarn">保存设置</text>
  209. </view>
  210. </view>
  211. </view>
  212. </view>
  213. <view class="cu-modal" :class="updateShow?'show':''">
  214. <view class="cu-dialog">
  215. <view class="cu-bar bg-white justify-end">
  216. <view style="color: black" class="content">编辑昵称</view>
  217. <view class="action" @tap="updateShow=false">
  218. <text class="cuIcon-close text-red"></text>
  219. </view>
  220. </view>
  221. <view class="">
  222. <form>
  223. <view class="cu-form-group solid-bottom">
  224. <view class="title">昵称</view>
  225. <input type="text" v-model="userInfo.nickname" class="text-left" placeholder="请输入昵称"/>
  226. </view>
  227. </form>
  228. </view>
  229. <view class="cu-bar bg-white justify-end">
  230. <view class="action">
  231. <button class="cu-btn bg-green margin-left" @tap="updateNickName">确定</button>
  232. </view>
  233. </view>
  234. </view>
  235. </view>
  236. </view>
  237. </template>
  238. <script>
  239. // import timeSlot from "@/components/wanghexu-timeslot/wanghexu-timeslot.vue"
  240. import { mapActions } from 'vuex'
  241. import Storage from '@/utils/storage'
  242. import * as API_SLEEP_REPORT from '@/api/sleep_report'
  243. import * as API_MEMBER_WARN_SWITCH from '@/api/member_warn_switch'
  244. export default {
  245. // components: {
  246. // timeSlot
  247. // },
  248. data() {
  249. return {
  250. title: 'picker',
  251. index: 0,
  252. sleepWorn : {
  253. rh_high: 110,
  254. rh_low: 60,
  255. hx_high: 30,
  256. hx_low: 10,
  257. leave_start: '22:00',
  258. leave_end: '06:00',
  259. leave_duration: 30,
  260. sn: ''
  261. },
  262. sleepWornList: {
  263. rh_highList: [],
  264. rh_lowList: [],
  265. hx_highList: [],
  266. hx_lowList: [],
  267. leave_durationList: []
  268. },
  269. switchFrom: {
  270. sign_sms_switch: false,
  271. sign_voice_switch: false,
  272. out_of_bed_sms_switch: false,
  273. out_of_bed_voice_switch: false,
  274. sos_sms_switch: false,
  275. sos_voice_switch: false
  276. },
  277. userInfo: null,
  278. updateShow: false
  279. }
  280. },
  281. onLoad(options) {
  282. const { imei } = options
  283. this.sleepWorn.sn = imei
  284. console.log('imei===', imei)
  285. this.API_getWartResult()
  286. this.setWarn()
  287. this.userInfo = Storage.getItem('userInfo')
  288. if (this.userInfo) {
  289. this.API_getSwitch()
  290. this.switchFrom.member_union_id = this.userInfo.union_id
  291. if (this.userInfo.nickname.length > 4 || this.userInfo.mobile === this.userInfo.nickname) {
  292. const _this = this
  293. uni.showModal({
  294. title: '提示',
  295. content: "您还未设置昵称,是否设置呢?",
  296. confirmText: "确定",
  297. showCancel: true,
  298. success: function(res) {
  299. if (res.confirm) {
  300. _this.updateShow = true
  301. }
  302. }
  303. })
  304. }
  305. }
  306. },
  307. methods: {
  308. // handleInput() {
  309. // this.$refs.inputDialog.open()
  310. // },
  311. // confirmTime(val) {
  312. // console.log(val)
  313. // },
  314. API_getWartResult() {
  315. const _this = this
  316. API_SLEEP_REPORT.getWarnResult(this.sleepWorn.sn).then(res => {
  317. if (res.data !== null) {
  318. res.data.leave_start = res.data.leave_start.substring(0, 5)
  319. res.data.leave_end = res.data.leave_end.substring(0, 5)
  320. _this.sleepWorn = res.data
  321. }
  322. })
  323. },
  324. API_getSwitch() {
  325. const _this = this
  326. API_MEMBER_WARN_SWITCH.getByMemberUnionId(this.userInfo.union_id).then(res => {
  327. if (res) {
  328. _this.switchFrom = res
  329. }
  330. })
  331. },
  332. setWarn() {
  333. this.sleepWornList.rh_highList = Array.from(Array(71).keys(), n => n + 1 + 89)
  334. this.sleepWornList.rh_lowList = Array.from(Array(31).keys(), n => n + 1 + 29)
  335. this.sleepWornList.hx_highList = Array.from(Array(21).keys(), n => n + 1 + 19)
  336. this.sleepWornList.hx_lowList = Array.from(Array(8).keys(), n => n + 1 + 4)
  337. this.sleepWornList.leave_durationList = Array.from(Array(51).keys(), n => n + 1 + 9)
  338. },
  339. pickerChange(e) {
  340. const index = e.detail.value
  341. switch (e.mp.target.dataset.target) {
  342. case '1':
  343. this.sleepWorn.rh_high = this.sleepWornList.rh_highList[index]
  344. break
  345. case '2':
  346. this.sleepWorn.rh_low = this.sleepWornList.rh_lowList[index]
  347. break
  348. case '3':
  349. this.sleepWorn.hx_high = this.sleepWornList.hx_highList[index]
  350. break
  351. case '4':
  352. this.sleepWorn.hx_low = this.sleepWornList.hx_lowList[index]
  353. break
  354. case '5':
  355. this.sleepWorn.leave_duration = this.sleepWornList.leave_durationList[index]
  356. break
  357. default:
  358. break
  359. }
  360. },
  361. timeChange(e) {
  362. switch (e.mp.target.dataset.target) {
  363. case 'leave_start':
  364. this.sleepWorn.leave_start = e.detail.value
  365. break
  366. case 'leave_end':
  367. this.sleepWorn.leave_end = e.detail.value
  368. break
  369. default:
  370. break
  371. }
  372. },
  373. saveSleepWarn() {
  374. const _this = this
  375. uni.showModal({
  376. title: '提示',
  377. content: "确定要提交设置吗?",
  378. confirmText: "确定",
  379. showCancel: true,
  380. success: function(res) {
  381. if (res.confirm) {
  382. API_SLEEP_REPORT.pushSleepWarn(_this.sleepWorn).then(res => {
  383. uni.showToast({
  384. title:"保存成功"
  385. })
  386. })
  387. if (_this.switchFrom.id) {
  388. // 修改
  389. API_MEMBER_WARN_SWITCH.edit(_this.switchFrom, _this.switchFrom.id)
  390. } else {
  391. // 新增
  392. API_MEMBER_WARN_SWITCH.add(_this.switchFrom)
  393. }
  394. }
  395. }
  396. })
  397. },
  398. switchTzSms(e) {
  399. this.switchFrom.sign_sms_switch = e.detail.value
  400. },
  401. switchTzVoice(e) {
  402. this.switchFrom.sign_voice_switch = e.detail.value
  403. },
  404. switchOutSms(e) {
  405. this.switchFrom.out_of_bed_sms_switch = e.detail.value
  406. },
  407. switchOutVoice(e) {
  408. this.switchFrom.out_of_bed_voice_switch = e.detail.value
  409. },
  410. switchSosSms(e) {
  411. this.switchFrom.sos_sms_switch = e.detail.value
  412. },
  413. switchSosVoice(e) {
  414. this.switchFrom.sos_voice_switch = e.detail.value
  415. },
  416. updateNickName() {
  417. if (this.userInfo.nickname === '') {
  418. uni.showToast({
  419. title: '请输入昵称',
  420. icon: 'none'
  421. })
  422. return
  423. }
  424. this.updateShow = false
  425. const _this = this
  426. this.saveUserInfo({nickname: this.userInfo.nickname}).then(() => {
  427. uni.showToast({
  428. title: '修改成功',
  429. icon: 'none'
  430. })
  431. this.$store.dispatch('getUserDataAction').then((res)=>{
  432. _this.userInfo = res
  433. })
  434. })
  435. },
  436. ...mapActions({
  437. saveUserInfo: 'saveUserInfoAction'
  438. })
  439. }
  440. }
  441. </script>
  442. <style lang="scss" scoped>
  443. .page {
  444. background-color: #000000;
  445. width: 100%;
  446. overflow-y: auto;
  447. overflow-x: hidden;
  448. height: 100%;
  449. .section {
  450. background-image: url('http://wdklmall.oss-cn-shenzhen.aliyuncs.com/mallgoods/goods/3C62AD507C8345D49AEB2AAD8F7584BB.png');
  451. background-size: 100% 100%;
  452. background-repeat: no-repeat;
  453. .section_2 {
  454. padding-bottom: 1.25rem;
  455. background-image: linear-gradient(180deg, #1e1ef7f2 0%, #1dbff79c 100%);
  456. backdrop-filter: blur(0.19rem);
  457. height: 100%;
  458. .font_1 {
  459. font-size: 1.13rem;
  460. font-family: PingFangSC;
  461. line-height: 1.03rem;
  462. color: #ffffff;
  463. }
  464. .text_2 {
  465. margin-left: 1.25rem;
  466. margin-top: 1.38rem;
  467. }
  468. .section_6 {
  469. padding: 0.94rem 0.63rem 0.13rem;
  470. background-color: #ffffff33;
  471. border-radius: 1rem;
  472. }
  473. .view {
  474. margin: 0.88rem 1.25rem 0;
  475. }
  476. .space-y-10 {
  477. & > view:not(:first-child),
  478. & > text:not(:first-child),
  479. & > image:not(:first-child) {
  480. margin-top: 0.63rem;
  481. }
  482. }
  483. .group_5 {
  484. padding: 0 1.25rem;
  485. .group_6 {
  486. padding-bottom: 0.88rem;
  487. .text_4 {
  488. line-height: 0.59rem;
  489. }
  490. }
  491. .space-x-30 {
  492. & > view:not(:first-child),
  493. & > text:not(:first-child),
  494. & > image:not(:first-child) {
  495. margin-left: 0.3rem;
  496. }
  497. }
  498. .section_7 {
  499. padding: 0.94rem 0.63rem 0;
  500. background-color: #ffffff33;
  501. border-radius: 1rem;
  502. .group_7 {
  503. border-bottom: solid 0.063rem #ffffff1a;
  504. .group_8 {
  505. padding-bottom: 0.88rem;
  506. border-bottom: solid 0.063rem #ffffff1a;
  507. .group_9 {
  508. margin-right: 0.19rem;
  509. }
  510. .space-x-20 {
  511. & > view:not(:first-child),
  512. & > text:not(:first-child),
  513. & > image:not(:first-child) {
  514. margin-left: 1.25rem;
  515. }
  516. }
  517. }
  518. .group_10 {
  519. padding: 0.88rem 0;
  520. .group_11 {
  521. margin-right: 0.19rem;
  522. }
  523. }
  524. }
  525. }
  526. .space-y-24 {
  527. & > view:not(:first-child),
  528. & > text:not(:first-child),
  529. & > image:not(:first-child) {
  530. margin-top: 1.5rem;
  531. }
  532. }
  533. .section_8 {
  534. padding: 0.63rem 0;
  535. background-color: #ffffff33;
  536. border-radius: 1rem;
  537. }
  538. .space-y-12 {
  539. & > view:not(:first-child),
  540. & > text:not(:first-child),
  541. & > image:not(:first-child) {
  542. margin-top: 0.75rem;
  543. }
  544. .text_5 {
  545. line-height: 1.06rem;
  546. }
  547. .space-y-4 {
  548. & > view:not(:first-child),
  549. & > text:not(:first-child),
  550. & > image:not(:first-child) {
  551. margin-top: 0.55rem;
  552. }
  553. .text_6 {
  554. line-height: 0.75rem;
  555. }
  556. .section_9 {
  557. padding: 0 0.63rem;
  558. background-color: #ffffff33;
  559. border-radius: 1rem;
  560. }
  561. }
  562. }
  563. .font_5 {
  564. font-size: 0.63rem;
  565. font-family: PingFangSC;
  566. color: red;
  567. }
  568. .space-x-8 {
  569. & > view:not(:first-child),
  570. & > text:not(:first-child),
  571. & > image:not(:first-child) {
  572. margin-left: 0.5rem;
  573. }
  574. .text_7 {
  575. color: #ffffff80;
  576. }
  577. .image_8 {
  578. width: 1.13rem;
  579. height: 1.13rem;
  580. }
  581. }
  582. .button {
  583. padding: 0.5rem 0;
  584. background-image: linear-gradient(90deg, #5611f780 0%, #1e1ef7f2 100%);
  585. border-radius: 1rem;
  586. width: 8.69rem;
  587. .text_9 {
  588. color: #ffffff;
  589. font-size: 1rem;
  590. font-family: PingFangSC;
  591. line-height: 0.94rem;
  592. }
  593. }
  594. }
  595. .space-y-14 {
  596. & > view:not(:first-child),
  597. & > text:not(:first-child),
  598. & > image:not(:first-child) {
  599. margin-top: 0.88rem;
  600. }
  601. }
  602. .equal-division {
  603. width: 12.5rem;
  604. }
  605. .font_2 {
  606. font-size: 0.88rem;
  607. font-family: PingFangSC;
  608. line-height: 0.81rem;
  609. color: #ffffff;
  610. }
  611. .text_3 {
  612. opacity: 0.8;
  613. }
  614. .font_3 {
  615. font-size: 1.13rem;
  616. font-family: PingFangSC;
  617. line-height: 0.81rem;
  618. color: #ffffff;
  619. }
  620. .image_7 {
  621. width: 0.38rem;
  622. height: 0.69rem;
  623. }
  624. .font_4 {
  625. font-size: 0.75rem;
  626. font-family: PingFangSC;
  627. line-height: 0.69rem;
  628. color: #ffffff;
  629. }
  630. .space-x-6 {
  631. & > view:not(:first-child),
  632. & > text:not(:first-child),
  633. & > image:not(:first-child) {
  634. margin-left: 0.38rem;
  635. }
  636. .equal-division-item {
  637. padding: 0.25rem 0.63rem;
  638. width: 6.84rem;
  639. }
  640. }
  641. .space-x-4 {
  642. & > view:not(:first-child),
  643. & > text:not(:first-child),
  644. & > image:not(:first-child) {
  645. margin-left: 0.25rem;
  646. }
  647. }
  648. .image_6 {
  649. width: 1.38rem;
  650. height: 0.88rem;
  651. }
  652. .space-y-20 {
  653. & > view:not(:first-child),
  654. & > text:not(:first-child),
  655. & > image:not(:first-child) {
  656. margin-top: 1.25rem;
  657. }
  658. }
  659. .list-item {
  660. padding: 0.88rem 0;
  661. border-bottom: solid 0.063rem #ffffff1a;
  662. .group_3 {
  663. margin-right: 0.19rem;
  664. }
  665. .text_8 {
  666. line-height: 0.78rem;
  667. }
  668. .image_9 {
  669. width: 0.88rem;
  670. height: 0.88rem;
  671. }
  672. }
  673. }
  674. .space-y-32 {
  675. & > view:not(:first-child),
  676. & > text:not(:first-child),
  677. & > image:not(:first-child) {
  678. margin-top: 2rem;
  679. }
  680. }
  681. }
  682. }
  683. @mixin flex {
  684. /* #ifndef APP-NVUE */
  685. display: flex;
  686. /* #endif */
  687. flex-direction: row;
  688. }
  689. @mixin height {
  690. /* #ifndef APP-NVUE */
  691. height: 100%;
  692. /* #endif */
  693. /* #ifdef APP-NVUE */
  694. flex: 1;
  695. /* #endif */
  696. }
  697. .box {
  698. @include flex;
  699. }
  700. .button {
  701. @include flex;
  702. align-items: center;
  703. justify-content: center;
  704. flex: 1;
  705. height: 35px;
  706. margin: 0 5px;
  707. border-radius: 5px;
  708. }
  709. .example-body {
  710. background-color: #fff;
  711. padding: 10px 0;
  712. }
  713. .button-text {
  714. color: #fff;
  715. font-size: 12px;
  716. }
  717. .popup-content {
  718. @include flex;
  719. align-items: center;
  720. justify-content: center;
  721. padding: 15px;
  722. height: 50px;
  723. background-color: #fff;
  724. }
  725. .popup-height {
  726. @include height;
  727. width: 200px;
  728. }
  729. .text {
  730. font-size: 12px;
  731. color: #333;
  732. }
  733. .popup-success {
  734. color: #fff;
  735. background-color: #e1f3d8;
  736. }
  737. .popup-warn {
  738. color: #fff;
  739. background-color: #faecd8;
  740. }
  741. .popup-error {
  742. color: #fff;
  743. background-color: #fde2e2;
  744. }
  745. .popup-info {
  746. color: #fff;
  747. background-color: #f2f6fc;
  748. }
  749. .success-text {
  750. color: #09bb07;
  751. }
  752. .warn-text {
  753. color: #e6a23c;
  754. }
  755. .error-text {
  756. color: #f56c6c;
  757. }
  758. .info-text {
  759. color: #909399;
  760. }
  761. .dialog,
  762. .share {
  763. /* #ifndef APP-NVUE */
  764. display: flex;
  765. /* #endif */
  766. flex-direction: column;
  767. }
  768. .dialog-box {
  769. padding: 10px;
  770. }
  771. .dialog .button,
  772. .share .button {
  773. /* #ifndef APP-NVUE */
  774. width: 100%;
  775. /* #endif */
  776. margin: 0;
  777. margin-top: 10px;
  778. padding: 3px 0;
  779. flex: 1;
  780. }
  781. .dialog-text {
  782. font-size: 14px;
  783. color: #333;
  784. }
  785. </style>