homePage.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851
  1. <template>
  2. <view class="headerView">
  3. <u-navbar title="首页" v-show="false"></u-navbar>
  4. <!-- 头部 -->
  5. <view class="header">
  6. <view class="main">
  7. <view class="title">
  8. <view class="name" @click="changeShow()">
  9. <view class="text">
  10. 你好,{{userInfo.name}}!
  11. </view>
  12. <view class="icon">
  13. <u-icon name='arrow-down' color="#fff" size="28"></u-icon>
  14. </view>
  15. </view>
  16. <view class="options" v-if="show==true" >
  17. <view v-if="false" @click="changeShow4()">订阅</view>
  18. <view @click="changeShow5()">扫码</view>
  19. <view v-if="false" @click="changeShow2()">修改openId</view>
  20. <view @click="logout()">退出账号</view>
  21. </view>
  22. <view class="qr-code" v-if="false">
  23. <!-- <img src="@/assets/img/riLine-qr-scan-line@1x.png" alt=""> -->
  24. <u-icon name="scan" size="48" color="#fff"></u-icon>
  25. </view>
  26. </view>
  27. </view>
  28. </view>
  29. <u-popup v-model="showpopup" class="" mode="bottom"
  30. border-radius="14"
  31. :closeable="true" >
  32. <view class="scantitle">连续扫码</view>
  33. <view class="list">
  34. <view class=" list-infos" :style="nowscan.healthStatus&&nowscan.healthStatus!=1?'background-color:#FFC107':''">
  35. <view class="infos-head" @click="gotoInfo(nowscan.id)">
  36. <view class="name">
  37. {{nowscan.title?nowscan.title:'扫码后出当前结果'}}
  38. </view>
  39. <view class="name">
  40. 编号:{{nowscan.code}}
  41. </view>
  42. <view class="name" :style="nowscan.id?'color:blue;':'color:#fff;'">
  43. 点击查看
  44. </view>
  45. </view>
  46. <view class="infos-head infos-head2" style="margin-bottom: 12rpx;">
  47. <view class="name" v-html="descriptionKey(nowscan)">
  48. </view>
  49. </view>
  50. <view class="infos">
  51. <view class="infos-2">
  52. <view class="infos-item">
  53. <view class="item-name">
  54. 规格:
  55. </view>
  56. <view class="item-value">
  57. {{nowscan.specifications}}
  58. </view>
  59. </view>
  60. <view class="infos-item">
  61. <view class="item-name">
  62. 型号:
  63. </view>
  64. <view class="item-value">
  65. {{nowscan.model}}
  66. </view>
  67. </view>
  68. </view>
  69. </view>
  70. </view>
  71. </view>
  72. <!-- #ifdef MP-WEIXIN -->
  73. <camera mode="scanCode" resolution='medium'
  74. @scancode="takeCode" v-if="showpopup"
  75. device-position="back" flash="off" @error="error"
  76. style="width: 100%; height: 300px;"></camera>
  77. <!-- #endif -->
  78. </u-popup>
  79. <!-- 宫格 -->
  80. <view class="gird" >
  81. <!-- 公告 -->
  82. <view class="notice" v-if="false" >
  83. <ujp-notice-bar mode="horizontal"
  84. bg-color="#6290f7" color="#fff"
  85. :list="['库存PDA设备将于2023年4月1日升级维护']"></ujp-notice-bar>
  86. <!-- <u-icon name="volume-up-fill" size="40" color="#fff"></u-icon>
  87. <text></text> -->
  88. </view>
  89. <template v-if="role('3')">
  90. <view class="item" @click="gotoUrl('pages/projectDepartment/exportProcess/exportProcess')">
  91. <view class="title">
  92. 出库审核
  93. <u-badge type="error" :absolute="false" style=" position: unset; padding: 2px 3px;" :fontSize="36"
  94. :isCenter="true" :count="badgeGet.outApproveList"></u-badge>
  95. </view>
  96. <view class="hint">
  97. 审批出库申请单据
  98. </view>
  99. <view class="img">
  100. <img src="@/assets/img/projectGird2.png" alt="">
  101. </view>
  102. </view>
  103. </template>
  104. <template v-if="role('2')">
  105. <view class="item" @click="gotoUrl('pages/projectDepartment/exportApplication/exportApplication')">
  106. <view class="title">
  107. 出库申请
  108. </view>
  109. <view class="hint">
  110. 提交出库申请单据
  111. </view>
  112. <view class="img">
  113. <img src="@/assets/img/projectGird1.png" alt="">
  114. </view>
  115. </view>
  116. <view class="item" @click="gotoUrl('pages/projectDepartment/exportReturn/exportReturn')">
  117. <view class="title">
  118. 设备归还
  119. </view>
  120. <view class="hint">
  121. 提交设备归还单据
  122. </view>
  123. <view class="img">
  124. <img src="@/assets/img/projectGird3.png" alt="">
  125. </view>
  126. </view>
  127. </template>
  128. <template v-if="role('1')">
  129. <view class="item" @click="gotoUrl('pages/storeManagement/equipmentDelivery/equipmentDelivery')">
  130. <view class="title">
  131. 设备出库
  132. <u-badge type="error" :absolute="false" style=" position: unset; padding: 2px 3px;" :fontSize="36"
  133. :isCenter="true" :count="badgeGet.outWaitList"></u-badge>
  134. </view>
  135. <view class="hint">
  136. 申请物品登记核准出库
  137. </view>
  138. <view class="img">
  139. <img src="@/assets/img/girdH1.png" alt="">
  140. </view>
  141. </view>
  142. <view class="item" @click="gotoUrl('pages/storeManagement/equipmentEnter/equipmentEnter')">
  143. <view class="title">
  144. 设备入库
  145. <u-badge type="error" :absolute="false" style=" position: unset; padding: 2px 3px;" :fontSize="36"
  146. :isCenter="true" :count="badgeGet.inWaitList"></u-badge>
  147. </view>
  148. <view class="hint">
  149. 申购采购收货入库登记
  150. </view>
  151. <view class="img">
  152. <img src="@/assets/img/girdH2.png" alt="">
  153. </view>
  154. </view>
  155. <view class="item" @click="gotoUrl('pages/storeManagement/equipmentInspection/equipmentInspection')" >
  156. <view class="title">
  157. 设备巡检
  158. <u-badge type="error" :absolute="false" style=" position: unset; padding: 2px 3px;" :fontSize="36"
  159. :isCenter="true" :count="badgeGet.deviceList"></u-badge>
  160. </view>
  161. <view class="hint">
  162. 当前物品计量库存盘点
  163. </view>
  164. <view class="img">
  165. <img src="@/assets/img/girdH3.png" alt="">
  166. </view>
  167. </view>
  168. </template>
  169. <view class="item" @click="gotoUrl('pages/otherFunctions/equipmentRetrieval/equipmentRetrieval')">
  170. <view class="title">
  171. 设备检索
  172. </view>
  173. <view class="hint">
  174. 库存物品信息检索
  175. </view>
  176. <view class="img">
  177. <img src="@/assets/img/projectGird4.png" alt="">
  178. </view>
  179. </view>
  180. </view>
  181. <!-- 其他功能 -->
  182. <view class="other-functions" v-if="role('other')">
  183. <view class="title">
  184. 其他功能
  185. </view>
  186. <view class="function-gird">
  187. <view class="item">
  188. <img src="@/assets/img/riLine-file-add-line@1x.png" alt="">
  189. <text>新增巡检</text>
  190. </view>
  191. <view class="item">
  192. <img src="@/assets/img/riLine-printer-line@1x.png" alt="">
  193. <text>打印标签</text>
  194. </view>
  195. <view class="item">
  196. <img src="@/assets/img/riLine-spam-line@1x.png" alt="">
  197. <text>故障申报</text>
  198. </view>
  199. <view class="item">
  200. <img src="@/assets/img/riLine-arrow-left-right-line@1x.png" alt="">
  201. <text>设备移交</text>
  202. </view>
  203. </view>
  204. </view>
  205. </view>
  206. </template>
  207. <script>
  208. import * as API from '@/apis/pagejs/index.js'
  209. import ujpNoticeBar from "@/pages/otherFunctions/components/u-notice-bar.vue"
  210. export default {
  211. data() {
  212. return {
  213. scanFunctionIsUseable:true,
  214. nowscan:{
  215. "title": "",
  216. "specifications": "",
  217. "experimentLastTime":"",
  218. "manufactor": "",
  219. "unit": "",
  220. "model": "",
  221. "code": "",
  222. },
  223. showpopup:false,
  224. show:false,
  225. badgeexportProcess:0,
  226. userInfo:{
  227. name:""
  228. },
  229. badgeGet:{
  230. },
  231. badgeList:[
  232. {
  233. url:"/mobile/out/outApproveList",
  234. role:"3",
  235. key:"outApproveList",
  236. page:{
  237. pageIndex: 1,
  238. pageSize: 0,
  239. status: 0,
  240. }
  241. },
  242. {
  243. url:"/mobile/out/outWaitList",
  244. role:"1",
  245. key:"outWaitList",
  246. page:{
  247. pageIndex: 1,
  248. pageSize: 0,
  249. status: 0,
  250. }
  251. },
  252. {
  253. url:"/mobile/in/inWaitList",
  254. role:"1",
  255. key:"inWaitList",
  256. page:{
  257. pageIndex: 1,
  258. pageSize: 0,
  259. status: 0,
  260. }
  261. },
  262. {
  263. url:"/mobile/inspection/deviceList",
  264. role:"1",
  265. key:"deviceList",
  266. page:{
  267. pageIndex: 1,
  268. pageSize: 0,
  269. healthStatus: 5,
  270. }
  271. }
  272. ]
  273. }
  274. },
  275. components:{
  276. ujpNoticeBar
  277. },
  278. onLoad() {
  279. this.userInfo=this.carhelp.getPersonInfo()
  280. //this.getUserDepartmentList()
  281. this.getInfo()
  282. },
  283. onReady() {
  284. // #ifdef MP-WEIXIN
  285. wx.getSetting({
  286. success: res => {
  287. console.log("onReady2")
  288. if (!res.authSetting['scope.camera']) {
  289. wx.authorize({
  290. scope: 'scope.camera',
  291. success () {
  292. // 用户已经同意小程序使用摄像头
  293. },
  294. fail () {
  295. // 用户拒绝了小程序使用摄像头
  296. }
  297. })
  298. }
  299. }
  300. })
  301. // #endif
  302. },
  303. onShow(){
  304. this.badgeGetMethodApi()
  305. },
  306. methods: {
  307. badgeGetMethodApi(){
  308. var tdate=new Date( +new Date() + 8 * 3600 * 1000 ).toJSON().substr(0,15).replace("T"," ")
  309. var token_tdate=this.carhelp.get("badgeGet_token_tdate");//每60分钟存储一次token
  310. if(token_tdate&&token_tdate==tdate){
  311. this.badgeGetMethod();
  312. this.$forceUpdate()
  313. }else{
  314. for(var i in this.badgeList){
  315. var obj=this.badgeList[i]
  316. if(this.role(obj.role)){
  317. this.carhelp.set("badgeGet_token_tdate",tdate);
  318. this.urlgetlisg(obj)
  319. }
  320. }
  321. }
  322. },
  323. urlgetlisg(obj){
  324. API.urlgetlisg(obj.page,obj.url).then((res) => {
  325. var count=res.data.recordsTotal;
  326. this.badgeGet[obj.key]=count;
  327. this.carhelp.set("badgeList_"+obj.key,count)
  328. this.$forceUpdate()
  329. }).catch(error => {
  330. })
  331. },
  332. badgeGetMethod(){
  333. for(var i in this.badgeList){
  334. var obj=this.badgeList[i]
  335. this.badgeGet[obj.key]=this.carhelp.get("badgeList_"+obj.key);
  336. }
  337. },
  338. error(e) {
  339. console.log(e);
  340. },
  341. role(val){
  342. if(this.userInfo.type!=null&&this.userInfo.type!=undefined){
  343. var index=this.userInfo.type.split(',').indexOf(val)
  344. return index>-1
  345. }else{
  346. return false
  347. }
  348. },
  349. getInfo(){
  350. API.findByOpenId({
  351. openId: this.carhelp.getOpenId(),
  352. noerror:true,
  353. }).then((res) => {
  354. this.carhelp.setPersonInfo(res.data.regUser );
  355. this.userInfo=this.carhelp.getPersonInfo()
  356. this.badgeGetMethodApi()
  357. }).catch(error => {
  358. uni.hideLoading();
  359. //this.getPhone()
  360. })
  361. },
  362. logout(){
  363. this.changeShow()
  364. uni.showModal({
  365. title: '提示',
  366. content: '确认是否退出?',
  367. success: res=> {
  368. if (res.confirm) {
  369. //付钱 改为组件
  370. this.logoutApi();
  371. } else if (res.cancel) {
  372. console.log('用户点击取消');
  373. }
  374. }
  375. });
  376. },
  377. logoutApi(){
  378. uni.showLoading({
  379. title: "加载中",
  380. mask: true,
  381. })
  382. var data = {
  383. };
  384. API.logout(data).then((res) => {
  385. this.carhelp.logoff();
  386. uni.redirectTo({
  387. url:"/pages/index/index"
  388. })
  389. }).catch(error => {
  390. uni.showToast({
  391. title: error
  392. })
  393. })
  394. },
  395. changeShow(){
  396. this.show=!this.show
  397. },
  398. changeShow4(openId){
  399. uni.requestSubscribeMessage({
  400. tmplIds: ['YJo0Ji-N--n27fGB41pFVCCvFCNlsJwwScN1mD13Uu4'],
  401. success (res) { }
  402. })
  403. },
  404. changeShow5(){
  405. //this.showpopup=true
  406. //this.gotoscanH5('')
  407. this.gotoscan('')
  408. },
  409. changeShow3(openId){
  410. this.carhelp.setOpenId(openId);
  411. this.carhelp.logoff();
  412. uni.redirectTo({
  413. url:"/pages/index/index"
  414. })
  415. },
  416. changeShow2(){
  417. var _this=this
  418. uni.showModal({
  419. title: '输入openId',
  420. editable: true,
  421. //content: '这是一个模态弹窗',
  422. success: function(res) {
  423. if (res.confirm) {
  424. if(res.content){
  425. _this.changeShow3(res.content)
  426. }
  427. } else if (res.cancel) {
  428. console.log('用户点击取消');
  429. }
  430. }
  431. });
  432. },
  433. gotoscan(val) {
  434. // #ifdef H5
  435. this.gotoscanH5(val)
  436. // #endif
  437. // #ifdef MP-WEIXIN
  438. this.gotoscanMP(val)
  439. // #endif
  440. },
  441. takeCode(e){
  442. console.log(e);
  443. if(this.scanFunctionIsUseable) {
  444. this.scanFunctionIsUseable = false;
  445. // 对扫码结果进行处理
  446. console.log(e.detail.result);
  447. this.getscan(this.takeCodeJp(e.detail.result))
  448. // 扫码间隔两秒
  449. setTimeout(() => {
  450. this.scanFunctionIsUseable = true;
  451. }, 1000)
  452. }
  453. },
  454. gotoscanMP(val){
  455. this.showpopup=true;
  456. // const ctx = uni.createCameraContext();
  457. // ctx.takePhoto({
  458. // quality: 'high',
  459. // success: (res) => {
  460. // this.src = res.tempImagePath
  461. // }
  462. // });
  463. },
  464. getscan(val) {
  465. this.showpopup=true;
  466. uni.showLoading({
  467. title: "加载中",
  468. mask: true,
  469. })
  470. API.queryDeviceByCode({
  471. code: val,
  472. }).then((res) => {
  473. uni.hideLoading();
  474. if (res.data.deviceInfo) {
  475. console.log(res.data.deviceInfo)
  476. this.nowscan=res.data.deviceInfo;
  477. uni.showToast({
  478. title: "添加成功",
  479. icon: "none"
  480. })
  481. } else {
  482. uni.showToast({
  483. title: "二维码无效",
  484. icon: "none"
  485. })
  486. this.nowscan={}
  487. }
  488. }).catch(error => {
  489. uni.showToast({
  490. title: error,
  491. icon: "none"
  492. })
  493. })
  494. },
  495. gotoscanH5(val) {
  496. console.log('111')
  497. var _this = this;
  498. uni.showModal({
  499. title: '提示',
  500. editable: true,
  501. //content: '这是一个模态弹窗',
  502. success: function(res) {
  503. if (res.confirm) {
  504. _this.getscan(res.content)
  505. } else if (res.cancel) {
  506. console.log('用户点击取消');
  507. }
  508. }
  509. });
  510. },
  511. }
  512. }
  513. </script>
  514. <style >
  515. page{
  516. background-color: rgba(1,122,255,1);
  517. padding-bottom: 100rpx;
  518. }
  519. </style>
  520. <style lang="scss" scoped>
  521. .options{
  522. width: 260rpx;
  523. line-height: 60rpx;
  524. //text-align: center;
  525. padding:8rpx 0px 8rpx 16rpx;
  526. background-color: #fff;
  527. color: rgba(65, 80, 88, 1);
  528. font-family: Microsoft Yahei;
  529. position: absolute;
  530. top: 228rpx;
  531. border-radius: 1px;
  532. //right: 24rpx;
  533. box-shadow:5px 5px 10px gray;
  534. }
  535. .headerView{
  536. //background:linear-gradient(180deg, rgba(0,45,194,1) 0%,rgba(0,59,254,1) 49%,rgba(1,122,255,1) 100%);
  537. background-color: rgba(1,122,255,1);
  538. }
  539. page{
  540. background-color: rgba(1,122,255,1);
  541. padding-bottom: 100rpx;
  542. }
  543. // 头部
  544. .header{
  545. width: 100%;
  546. height: 289px;
  547. background:linear-gradient(180deg, rgba(0,45,194,1) 0%,rgba(0,59,254,1) 49%,rgba(1,122,255,1) 100%);
  548. padding: 0 40rpx;
  549. .main{
  550. width: 100%;
  551. height: 100%;
  552. background: url(@/assets/img/background.png) no-repeat;
  553. background-position: top -70rpx right -50rpx;
  554. position: relative;
  555. background-position-y: 20px;
  556. padding-top: 20rpx;
  557. }
  558. .title{
  559. //margin-top: 60px;
  560. padding-top: 60px;
  561. display: flex;
  562. justify-content: space-between;
  563. align-items: center;
  564. color: rgba(255, 255, 255, 1);
  565. line-height: 88rpx;
  566. .name{
  567. display: flex;
  568. font-size: 40rpx;
  569. }
  570. .qr-code{
  571. display: flex;
  572. }
  573. }
  574. }
  575. // 宫格
  576. .gird{
  577. // 公告
  578. .notice{
  579. overflow: hidden;
  580. width: 100%;
  581. display: flex;
  582. align-items: center;
  583. background-color: #6290f7;
  584. color: rgba(255, 255, 255, 1);
  585. font-weight: bold;
  586. border-radius: 8px;
  587. height: 80rpx;
  588. line-height: 80rpx;
  589. padding: 0 24rpx;
  590. // position: absolute;
  591. bottom: 260rpx;
  592. left: 0;
  593. right: 0;
  594. margin-bottom: 40rpx;
  595. text{
  596. font-size: 28rpx;
  597. width: 542px;
  598. margin-left: 16rpx;
  599. white-space: nowrap;
  600. overflow: hidden;
  601. text-overflow: ellipsis;
  602. }
  603. }
  604. padding: 0 40rpx;
  605. display: flex;
  606. justify-content: space-between;
  607. flex-wrap: wrap;
  608. margin-top: -124rpx;
  609. .item{
  610. width: 720rpx;
  611. height: 100px;
  612. background-color: rgba(255, 255, 255, 1);
  613. border-radius: 8px;
  614. padding: 32rpx 24rpx;
  615. position: relative;
  616. margin-bottom: 30rpx;
  617. .title{
  618. color: rgba(16, 16, 16, 1);
  619. font-size: 44rpx;
  620. margin-bottom: 8rpx;
  621. font-family: 'Alibaba-PuHuiTi-Regular';
  622. }
  623. .hint{
  624. color: rgba(106, 121, 142, 1);
  625. font-size: 32rpx;
  626. margin-bottom: 44rpx;
  627. }
  628. .img{
  629. width: 75px;
  630. height: 75px;
  631. position: absolute;
  632. right: 24rpx;
  633. bottom: 24rpx;
  634. img{
  635. width: 100%;
  636. height: 100%;
  637. }
  638. }
  639. }
  640. }
  641. // 其他功能
  642. .other-functions{
  643. padding: 0 40rpx;
  644. .title{
  645. color: rgba(255, 255, 255, 1);
  646. font-size: 36rpx;
  647. margin-bottom: 16rpx;
  648. }
  649. .function-gird{
  650. display: flex;
  651. flex-wrap: wrap;
  652. justify-content: space-between;
  653. .item{
  654. display: flex;
  655. align-items: center;
  656. justify-content: center;
  657. width: 320rpx;
  658. height: 80rpx;
  659. line-height: 80rpx;
  660. margin-bottom: 24rpx;
  661. color: rgba(255, 255, 255, 1);
  662. border-radius: 8px;
  663. background-color: rgba(255, 255, 255, 0.25);
  664. text-align: center;
  665. border: 1px solid rgba(255, 255, 255, 0.35);
  666. img{
  667. width: 32rpx;
  668. height: 32rpx;
  669. margin-right: 8rpx;
  670. }
  671. }
  672. }
  673. }
  674. // 出库单列表
  675. .list {
  676. //margin-top: 24rpx;
  677. .list-view{
  678. padding: 16rpx 32rpx;
  679. background-color: #fff;
  680. }
  681. .list-head {
  682. display: flex;
  683. justify-content: space-between;
  684. align-items: center;
  685. .title {
  686. color: #333333;
  687. font-size: 32rpx
  688. }
  689. .amount {
  690. color: #777777;
  691. font-size: 24rpx;
  692. text {
  693. color: #3385FF;
  694. }
  695. /deep/.u-icon--right {
  696. margin-left: 8rpx;
  697. }
  698. }
  699. }
  700. // 清单信息
  701. .list-infos {
  702. border-radius: 8px;
  703. background-color: #F5F6F9;
  704. margin-top: 24rpx;
  705. padding: 24rpx;
  706. .infos-head {
  707. display: flex;
  708. justify-content: space-between;
  709. align-items: center;
  710. margin-bottom: 24rpx;
  711. .name {
  712. color: rgba(51, 51, 51, 1);
  713. font-size: 32rpx;
  714. }
  715. .state {
  716. color: rgba(0, 81, 255, 1);
  717. }
  718. }
  719. .infos {
  720. margin-top: 16rpx;
  721. display: flex;
  722. color: #777777;
  723. font-size: 24rpx;
  724. .infos-1 {
  725. margin-right: 68rpx;
  726. }
  727. .infos-item {
  728. display: flex;
  729. margin-bottom: 8rpx;
  730. .item-value{
  731. max-width: 200rpx;
  732. }
  733. }
  734. }
  735. }
  736. }
  737. .scantitle{
  738. text-align: center;
  739. font-size: 44rpx;
  740. padding-top: 20px;
  741. }
  742. </style>