新型管道消毒机前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

779 lines
20 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div class="test_container">
  3. <div class="common_set switch_wrap">
  4. <p class="title">加液蠕动泵</p>
  5. <!-- <div class="num">
  6. <van-field
  7. type="number"
  8. v-model="addLiquidVal"
  9. :clickable="true"
  10. :formatter="formatter6"
  11. readonly
  12. @click.stop="hideAllKeyboards(1)"
  13. class="add_liquid_input"
  14. />
  15. <p>g/min</p>
  16. </div> -->
  17. <div class="btn_wrap">
  18. <div
  19. :class="
  20. settingStore.chargingPumpRPM > 0
  21. ? 'open style-btn mg'
  22. : 'close style-btn mg'
  23. "
  24. @click="setAddLiquidConfig(1)"
  25. >
  26. 正转
  27. </div>
  28. <div
  29. :class="
  30. settingStore.chargingPumpRPM < 0
  31. ? 'open style-btn'
  32. : 'close style-btn'
  33. "
  34. @click="setAddLiquidConfig(5)"
  35. >
  36. 反转
  37. </div>
  38. </div>
  39. <div class="btn_wrap">
  40. <div
  41. :class="
  42. settingStore.chargingPumpRPM != 0
  43. ? 'open style-btn mg'
  44. : 'close style-btn mg'
  45. "
  46. @click="setAddLiquidConfig(1)"
  47. >
  48. 打开
  49. </div>
  50. <div
  51. :class="
  52. settingStore.chargingPumpRPM == 0
  53. ? 'open style-btn'
  54. : 'close style-btn'
  55. "
  56. @click="setAddLiquidConfig(3)"
  57. >
  58. 关闭
  59. </div>
  60. </div>
  61. </div>
  62. <div class="common_set switch_wrap">
  63. <p class="title">注射蠕动泵</p>
  64. <div class="num">
  65. <van-field
  66. type="number"
  67. :formatter="formatter7"
  68. v-model="addLiquidVal2"
  69. :clickable="true"
  70. readonly
  71. @click.stop="hideAllKeyboards(3)"
  72. class="add_liquid_input"
  73. />
  74. <p>g/min</p>
  75. </div>
  76. <div class="btn_wrap">
  77. <div
  78. :class="
  79. settingStore.sprinklerPumpRPM > 0
  80. ? 'open style-btn mg'
  81. : 'close style-btn mg'
  82. "
  83. @click="setAddLiquidConfig(2)"
  84. >
  85. 正转
  86. </div>
  87. <div
  88. :class="
  89. settingStore.sprinklerPumpRPM < 0
  90. ? 'open style-btn'
  91. : 'close style-btn'
  92. "
  93. @click="setAddLiquidConfig(6)"
  94. >
  95. 反转
  96. </div>
  97. </div>
  98. <div class="btn_wrap">
  99. <div
  100. :class="
  101. settingStore.sprinklerPumpRPM != 0
  102. ? 'open style-btn mg'
  103. : 'close style-btn mg'
  104. "
  105. @click="setAddLiquidConfig(2)"
  106. >
  107. 打开
  108. </div>
  109. <div
  110. :class="
  111. settingStore.sprinklerPumpRPM == 0
  112. ? 'open style-btn'
  113. : 'close style-btn'
  114. "
  115. @click="setAddLiquidConfig(4)"
  116. >
  117. 关闭
  118. </div>
  119. </div>
  120. </div>
  121. <div class="common_set switch_wrap">
  122. <p class="title">空压机</p>
  123. <p class="num">
  124. {{
  125. testStore?.airCompressorObj?.currentVal > 5000
  126. ? 5000
  127. : testStore?.airCompressorObj?.currentVal
  128. }}
  129. A
  130. </p>
  131. <div class="btn_wrap">
  132. <div
  133. :class="
  134. testStore.airCompressor ? 'open style-btn mg' : 'close style-btn mg'
  135. "
  136. @click="changeAirStatus(1)"
  137. >
  138. 打开
  139. </div>
  140. <div
  141. :class="
  142. !testStore.airCompressor ? 'open style-btn' : 'close style-btn'
  143. "
  144. @click="changeAirStatus(2)"
  145. >
  146. 关闭
  147. </div>
  148. </div>
  149. </div>
  150. <div class="common_set switch_wrap">
  151. <p class="title">风机</p>
  152. <p class="num">{{ testStore?.airBlowerObj?.currentVal }} A</p>
  153. <div class="btn_wrap">
  154. <div
  155. :class="
  156. testStore.draughtFan ? 'open style-btn mg' : 'close style-btn mg'
  157. "
  158. @click="changeDraughtStatus(1)"
  159. >
  160. 打开
  161. </div>
  162. <div
  163. :class="!testStore.draughtFan ? 'open style-btn ' : 'close style-btn'"
  164. @click="changeDraughtStatus(2)"
  165. >
  166. 关闭
  167. </div>
  168. </div>
  169. </div>
  170. <div class="common_set switch_wrap">
  171. <p class="title">加热片</p>
  172. <p class="num">{{ testStore?.heatingStripObj?.currentVal }} A</p>
  173. <div class="btn_wrap">
  174. <div
  175. :class="
  176. testStore.heatingStrip ? 'open style-btn mg' : 'close style-btn mg'
  177. "
  178. @click="changeHeatingStatus(1)"
  179. >
  180. 打开
  181. </div>
  182. <div
  183. :class="
  184. !testStore.heatingStrip ? 'open style-btn' : 'close style-btn'
  185. "
  186. @click="changeHeatingStatus(2)"
  187. >
  188. 关闭
  189. </div>
  190. </div>
  191. </div>
  192. <div class="common_set switch_wrap">
  193. <p class="title">空压机通道</p>
  194. <div class="btn_wrap">
  195. <div
  196. :class="
  197. sealStore.airCompressorChannelSelectVal == '2'
  198. ? 'open style-btn mg'
  199. : 'close style-btn mg'
  200. "
  201. @click="changeChannel(1)"
  202. >
  203. 空气
  204. </div>
  205. <div
  206. :class="
  207. sealStore.airCompressorChannelSelectVal == '1'
  208. ? 'open style-btn'
  209. : 'close style-btn'
  210. "
  211. @click="changeChannel(2)"
  212. >
  213. 内管道
  214. </div>
  215. </div>
  216. </div>
  217. <div class="common_set update_wrap pressure">
  218. <div class="title">
  219. 水浸
  220. <p class="num">
  221. {{ testStore.waterImmersionSensor1 ? '有水' : '没水' }}
  222. </p>
  223. </div>
  224. <div class="title">
  225. 液位
  226. <p class="num">
  227. {{
  228. deviceStore.disinfectantCapacity <= 0
  229. ? 0
  230. : deviceStore.disinfectantCapacity
  231. }}
  232. g
  233. </p>
  234. </div>
  235. </div>
  236. <div class="common_set update_wrap pressure">
  237. <p class="title">
  238. 压力1 <span>{{ sealStore.allPressure[0] }}</span>
  239. </p>
  240. <p class="title">
  241. 压力2 <span>{{ sealStore.allPressure[1] }}</span>
  242. </p>
  243. <p class="title">
  244. 压力3 <span>{{ sealStore.allPressure[2] }}</span>
  245. </p>
  246. <p class="title">
  247. 压力4 <span>{{ sealStore.allPressure[3] }}</span>
  248. </p>
  249. </div>
  250. <div class="common_set info_wrap">
  251. <p class="title">仓内</p>
  252. <p class="info">温度 {{ deviceStore.binTemperature }} </p>
  253. <p class="info">湿度 {{ deviceStore.binHumidity }} </p>
  254. <p class="info">过氧化氢浓度 {{ deviceStore.binHP }} PPM</p>
  255. </div>
  256. <div class="common_set switch_wrap">
  257. <p class="title">空压机阀1</p>
  258. <div class="btn_wrap">
  259. <div
  260. :class="
  261. sealStore.airCompressorValve1 == '1'
  262. ? 'open style-btn mg'
  263. : 'close style-btn mg'
  264. "
  265. @click="changeAirValve1(1)"
  266. >
  267. 打开
  268. </div>
  269. <div
  270. :class="
  271. sealStore.airCompressorValve1 == '0'
  272. ? 'open style-btn'
  273. : 'close style-btn'
  274. "
  275. @click="changeAirValve1(2)"
  276. >
  277. 关闭
  278. </div>
  279. </div>
  280. <p class="title">空压机阀2</p>
  281. <div class="btn_wrap">
  282. <div
  283. :class="
  284. sealStore.airCompressorValve2 == '1'
  285. ? 'open style-btn mg'
  286. : 'close style-btn mg'
  287. "
  288. @click="changeAirValve2(1)"
  289. >
  290. 打开
  291. </div>
  292. <div
  293. :class="
  294. sealStore.airCompressorValve2 == '0'
  295. ? 'open style-btn'
  296. : 'close style-btn'
  297. "
  298. @click="changeAirValve2(2)"
  299. >
  300. 关闭
  301. </div>
  302. </div>
  303. </div>
  304. <van-number-keyboard
  305. v-model="addLiquidVal"
  306. @input="val => handleInput(val, 1)"
  307. :show="numberKeyboardShowVal"
  308. @blur="numberKeyboardShowVal = false"
  309. />
  310. <van-number-keyboard
  311. @input="val => handleInput(val, 2)"
  312. v-model="addLiquidPower"
  313. :show="numberKeyboardShowPower"
  314. @blur="numberKeyboardShowPower = false"
  315. />
  316. <van-number-keyboard
  317. @input="val => handleInput(val, 3)"
  318. v-model="addLiquidVal2"
  319. :show="numberKeyboardShowVal2"
  320. @blur="numberKeyboardShowVal2 = false"
  321. />
  322. <van-number-keyboard
  323. @input="val => handleInput(val, 4)"
  324. v-model="addLiquidPower2"
  325. :show="numberKeyboardShowPower2"
  326. @blur="numberKeyboardShowPower2 = false"
  327. />
  328. </div>
  329. </template>
  330. <script setup>
  331. import { ref } from 'vue'
  332. import {
  333. useTestStore,
  334. useDeviceStore,
  335. useWebSocketStore,
  336. useSettingStore,
  337. useSealStore,
  338. } from '@/store'
  339. import {
  340. someAirSwitchJSON,
  341. liquidpumpctrlJSON,
  342. airCompressorChannelSelectJSON,
  343. airCompressor_channelCtrlJSON,
  344. getStateJSON,
  345. addLiquidCtrlJSON,
  346. airCompressorSetValve1JSON,
  347. airCompressorSetValve2JSON,
  348. test_replenishingFluidsPumpCtrJSON,
  349. sprayLiquidPump_open_for_testJSON,
  350. } from '@/mock/command'
  351. import { showSuccessToast, showFailToast } from 'vant'
  352. const testStore = useTestStore()
  353. const deviceStore = useDeviceStore()
  354. const websocketStore = useWebSocketStore()
  355. const settingStore = useSettingStore()
  356. const sealStore = useSealStore()
  357. const addLiquidVal = ref(settingStore.addLiquidConfigVal)
  358. const addLiquidPower = ref(25)
  359. const numberKeyboardShowVal = ref(false)
  360. const numberKeyboardShowPower = ref(false)
  361. const addLiquidVal2 = ref(settingStore.sprayLiquidConfigVal)
  362. const addLiquidPower2 = ref(25)
  363. const numberKeyboardShowVal2 = ref(false)
  364. const numberKeyboardShowPower2 = ref(false)
  365. const formatter = value => {
  366. if (parseInt(value) > 31) {
  367. return '31'
  368. }
  369. return value
  370. }
  371. const formatter6 = value => {
  372. let arr = settingStore.allSettingList.filter(
  373. item => item.name == 'drainage_pump_speed',
  374. )
  375. if (arr && arr.length > 0) {
  376. if (parseInt(value) > 40) {
  377. return '40'
  378. }
  379. if (parseInt(value) < arr[0].val_lower_limit) {
  380. return arr[0].val_lower_limit + ''
  381. }
  382. }
  383. if (value == '') {
  384. return '0'
  385. }
  386. return value
  387. }
  388. const formatter7 = value => {
  389. let arr = settingStore.allSettingList.filter(
  390. item => item.name == 'injection_pump_speed',
  391. )
  392. if (arr && arr.length > 0) {
  393. if (parseInt(value) > 40) {
  394. return '40'
  395. }
  396. if (parseInt(value) < arr[0].val_lower_limit) {
  397. return arr[0].val_lower_limit + ''
  398. }
  399. }
  400. if (value == '') {
  401. return '0'
  402. }
  403. return value
  404. }
  405. const changeAirValve1 = flag => {
  406. if (flag == '1') {
  407. // 打开
  408. websocketStore.sendCommandMsg(airCompressorSetValve1JSON([1]))
  409. sealStore.updateAirCompressorValve1(1)
  410. }
  411. if (flag == '2') {
  412. // 关闭
  413. websocketStore.sendCommandMsg(airCompressorSetValve1JSON([0]))
  414. sealStore.updateAirCompressorValve1(0)
  415. }
  416. }
  417. const changeAirValve2 = flag => {
  418. if (flag == '1') {
  419. // 打开
  420. websocketStore.sendCommandMsg(airCompressorSetValve2JSON([1]))
  421. sealStore.updateAirCompressorValve2(1)
  422. }
  423. if (flag == '2') {
  424. // 关闭
  425. websocketStore.sendCommandMsg(airCompressorSetValve2JSON([0]))
  426. sealStore.updateAirCompressorValve2(0)
  427. }
  428. }
  429. const isFirstClick = ref(true)
  430. const hideAllKeyboards = flag => {
  431. isFirstClick.value = true
  432. if (flag == 1) {
  433. numberKeyboardShowVal.value = true
  434. numberKeyboardShowPower.value = false
  435. numberKeyboardShowVal2.value = false
  436. numberKeyboardShowPower2.value = false
  437. }
  438. if (flag == 2) {
  439. numberKeyboardShowPower.value = true
  440. numberKeyboardShowVal.value = false
  441. numberKeyboardShowVal2.value = false
  442. numberKeyboardShowPower2.value = false
  443. }
  444. if (flag == 3) {
  445. numberKeyboardShowVal2.value = true
  446. numberKeyboardShowPower.value = false
  447. numberKeyboardShowVal.value = false
  448. numberKeyboardShowPower2.value = false
  449. }
  450. if (flag == 4) {
  451. numberKeyboardShowPower2.value = true
  452. numberKeyboardShowPower.value = false
  453. numberKeyboardShowVal2.value = false
  454. numberKeyboardShowVal.value = false
  455. }
  456. }
  457. const handleInput = (value, index) => {
  458. if (isFirstClick.value) {
  459. if (index == 1) {
  460. setTimeout(() => {
  461. addLiquidVal.value = value + ''
  462. })
  463. }
  464. if (index == 2) {
  465. setTimeout(() => {
  466. addLiquidPower.value = value + ''
  467. })
  468. }
  469. if (index == 3) {
  470. setTimeout(() => {
  471. addLiquidVal2.value = value + ''
  472. })
  473. }
  474. if (index == 4) {
  475. setTimeout(() => {
  476. addLiquidPower2.value = value + ''
  477. })
  478. }
  479. isFirstClick.value = false
  480. }
  481. }
  482. const setAddLiquidConfig = flag => {
  483. if (flag == 1) {
  484. websocketStore.sendCommandMsg(
  485. // 正传
  486. test_replenishingFluidsPumpCtrJSON(1, 300),
  487. )
  488. showSuccessToast('设置成功')
  489. return
  490. } else if (flag == 2) {
  491. websocketStore.sendCommandMsg(
  492. sprayLiquidPump_open_for_testJSON(1, addLiquidVal2.value),
  493. )
  494. showSuccessToast('设置成功')
  495. return
  496. } else if (flag == 3) {
  497. // 关闭
  498. websocketStore.sendCommandMsg(test_replenishingFluidsPumpCtrJSON(0, 0))
  499. showSuccessToast('关闭加液蠕动泵成功')
  500. return
  501. } else if (flag == 5) {
  502. // 反转
  503. websocketStore.sendCommandMsg(test_replenishingFluidsPumpCtrJSON(-1, 300))
  504. showSuccessToast('设置成功')
  505. } else if (flag == 6) {
  506. websocketStore.sendCommandMsg(
  507. sprayLiquidPump_open_for_testJSON(-1, addLiquidVal2.value),
  508. )
  509. showSuccessToast('设置成功')
  510. } else {
  511. websocketStore.sendCommandMsg(
  512. sprayLiquidPump_open_for_testJSON(0, addLiquidVal2.value),
  513. )
  514. showSuccessToast('关闭注射蠕动泵成功')
  515. return
  516. }
  517. }
  518. const handleUpdate = () => {
  519. websocketStore.sendCommandMsg(getStateJSON)
  520. }
  521. const changeFeedingStatus = flag => {
  522. if (flag == 1) {
  523. if (!testStore.feedingPeristalticPumpStatus) {
  524. // 发送打开指令
  525. websocketStore.sendCommandMsg(
  526. liquidpumpctrlJSON(1, settingStore.addLiquidConfigVal),
  527. )
  528. testStore.updateFeedingPeristalticPumpStatus(true)
  529. }
  530. } else {
  531. if (testStore.feedingPeristalticPumpStatus) {
  532. websocketStore.sendCommandMsg(liquidpumpctrlJSON(1, 0))
  533. testStore.updateFeedingPeristalticPumpStatus(false)
  534. }
  535. }
  536. }
  537. const changeSprayStatus = flag => {
  538. if (flag == 1) {
  539. if (!testStore.sprayPeristalticPump) {
  540. websocketStore.sendCommandMsg(
  541. liquidpumpctrlJSON(2, settingStore.sprayLiquidConfigVal),
  542. )
  543. testStore.updateSprayPeristalticPump(true)
  544. }
  545. } else {
  546. if (testStore.sprayPeristalticPump) {
  547. websocketStore.sendCommandMsg(liquidpumpctrlJSON(2, 0))
  548. testStore.updateSprayPeristalticPump(false)
  549. }
  550. }
  551. }
  552. const changeHeatingStatus = flag => {
  553. if (flag == 1) {
  554. if (!testStore.heatingStrip) {
  555. websocketStore.sendCommandMsg(someAirSwitchJSON(4, 1))
  556. websocketStore.sendCommandMsg(someAirSwitchJSON(5, 1))
  557. testStore.updateHeatingStrip(true)
  558. }
  559. } else {
  560. if (testStore.heatingStrip) {
  561. websocketStore.sendCommandMsg(someAirSwitchJSON(4, 0))
  562. websocketStore.sendCommandMsg(someAirSwitchJSON(5, 0))
  563. testStore.updateHeatingStrip(false)
  564. }
  565. }
  566. }
  567. const changeAirStatus = flag => {
  568. if (flag == 1) {
  569. if (!testStore.airCompressor) {
  570. websocketStore.sendCommandMsg(someAirSwitchJSON(0, 1))
  571. websocketStore.sendCommandMsg(someAirSwitchJSON(1, 1))
  572. testStore.updateAirCompressor(true)
  573. }
  574. } else {
  575. if (testStore.airCompressor) {
  576. websocketStore.sendCommandMsg(someAirSwitchJSON(0, 0))
  577. websocketStore.sendCommandMsg(someAirSwitchJSON(1, 0))
  578. testStore.updateAirCompressor(false)
  579. }
  580. }
  581. }
  582. const changeDraughtStatus = flag => {
  583. if (flag == 1) {
  584. if (!testStore.draughtFan) {
  585. websocketStore.sendCommandMsg(someAirSwitchJSON(2, 1))
  586. websocketStore.sendCommandMsg(someAirSwitchJSON(3, 1))
  587. testStore.updateDraughtFan(true)
  588. }
  589. } else {
  590. if (testStore.draughtFan) {
  591. websocketStore.sendCommandMsg(someAirSwitchJSON(2, 0))
  592. websocketStore.sendCommandMsg(someAirSwitchJSON(3, 0))
  593. testStore.updateDraughtFan(false)
  594. }
  595. }
  596. }
  597. const changeChannel = flag => {
  598. if (flag == 1) {
  599. websocketStore.sendCommandMsg(airCompressorChannelSelectJSON([2]))
  600. sealStore.updateAirCompressorChannelSelectVal(2)
  601. } else {
  602. websocketStore.sendCommandMsg(airCompressorChannelSelectJSON([1]))
  603. sealStore.updateAirCompressorChannelSelectVal(1)
  604. }
  605. }
  606. </script>
  607. <style lang="scss" scoped>
  608. .test_container {
  609. margin-bottom: 19px;
  610. height: 580px;
  611. overflow: scroll;
  612. box-sizing: border-box;
  613. background: #ffffff;
  614. border-radius: 16px;
  615. padding: 20px;
  616. display: grid;
  617. row-gap: 20px;
  618. column-gap: 20px;
  619. grid-template-columns: repeat(2, 1fr);
  620. grid-template-rows: repeat(5, 1fr);
  621. padding-bottom: 20px;
  622. .common_set {
  623. width: 580px;
  624. height: 90px;
  625. box-sizing: border-box;
  626. border-radius: 14px;
  627. background: #f6f6f6;
  628. display: flex;
  629. align-items: center;
  630. .title {
  631. font-family: Source Han Sans CN;
  632. font-size: 20px;
  633. font-weight: 500;
  634. letter-spacing: 0.06em;
  635. color: #000000;
  636. width: 106px;
  637. }
  638. .num {
  639. font-family: Source Han Sans CN;
  640. font-size: 18px;
  641. font-weight: 500;
  642. letter-spacing: 0.1em;
  643. color: #000000;
  644. display: flex;
  645. align-items: center;
  646. margin-right: 4px;
  647. .add_liquid_input {
  648. width: 40px;
  649. margin-right: 2px;
  650. text-align: right;
  651. height: 24px;
  652. padding: 0;
  653. color: #0e0e0e;
  654. font-family: Source Han Sans CN;
  655. font-weight: 500;
  656. font-size: 18px;
  657. }
  658. }
  659. }
  660. .pressure {
  661. display: flex;
  662. align-items: center;
  663. justify-content: space-evenly !important;
  664. .title {
  665. display: flex;
  666. line-height: 30px;
  667. justify-content: center !important;
  668. flex-direction: column;
  669. align-items: center;
  670. span {
  671. font-size: 26px;
  672. }
  673. }
  674. }
  675. .switch_wrap {
  676. padding: 0 17px 0 17px;
  677. justify-content: space-between;
  678. .btn_wrap {
  679. display: flex;
  680. align-items: center;
  681. background: #ddd;
  682. padding: 6px;
  683. border-radius: 30px;
  684. .mg {
  685. margin-right: 6px;
  686. }
  687. .open {
  688. width: 67px;
  689. height: 35px;
  690. border-radius: 18px;
  691. background: #06518b;
  692. display: flex;
  693. align-items: center;
  694. justify-content: center;
  695. font-family: Source Han Sans CN;
  696. font-size: 14px;
  697. font-weight: 500;
  698. letter-spacing: 0.1em;
  699. color: #ffffff;
  700. }
  701. .success {
  702. background: #1ad66e;
  703. }
  704. .close {
  705. width: 67px;
  706. height: 35px;
  707. border-radius: 18px;
  708. background: #ffffff;
  709. display: flex;
  710. align-items: center;
  711. justify-content: center;
  712. font-family: Source Han Sans CN;
  713. font-size: 14px;
  714. font-weight: 500;
  715. letter-spacing: 0.1em;
  716. color: #282727;
  717. }
  718. }
  719. }
  720. .update_wrap {
  721. padding: 0 17px 0 17px;
  722. justify-content: space-between;
  723. .btn_wrap {
  724. width: 150px;
  725. height: 45px;
  726. border-radius: 23px;
  727. background: #06518b;
  728. display: flex;
  729. align-items: center;
  730. justify-content: center;
  731. font-family: Source Han Sans CN;
  732. font-size: 14px;
  733. font-weight: 500;
  734. letter-spacing: 0.1em;
  735. color: #ffffff;
  736. }
  737. }
  738. .info_wrap {
  739. padding: 0 32px 0 17px;
  740. justify-content: space-between;
  741. .title {
  742. font-family: Source Han Sans CN;
  743. font-size: 20px;
  744. font-weight: 500;
  745. letter-spacing: 0.06em;
  746. color: #000000;
  747. width: 57px;
  748. white-space: nowrap;
  749. }
  750. .info {
  751. font-family: Source Han Sans CN;
  752. font-size: 18px;
  753. font-weight: 500;
  754. letter-spacing: 0.1em;
  755. color: #06518b;
  756. }
  757. }
  758. }
  759. </style>