supplier.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <template>
  2. <view class="content">
  3. <view class="headbgbox flex2">
  4. <view class="searchbox">
  5. <u-icon name="search" bold="true" size="25" color="rgb(246,185,78)"></u-icon>
  6. <input type="text" v-model="keywords" placeholder="请输入供应商名称"
  7. placeholder-style="color:#BBBCBE" @blur="changeSeach"/>
  8. </view>
  9. <view class="screen" @click="show = true">
  10. <text>筛选</text>
  11. <view style="padding-left: 10rpx;">
  12. <u-icon name="arrow-down" color="#1F242A" size="14" bold="true"></u-icon>
  13. </view>
  14. </view>
  15. </view>
  16. <view class="cardlist">
  17. <view class="lable" v-for="(item,index) in listall" style="width: 100%;" >
  18. <view class="radiobox" v-if="editall">
  19. <radio :value="index" :checked="item.checked" color="#D8AB5A" @click="checkBox(item.id)" />
  20. </view>
  21. <view class="card" @click.stop="moveDetail(item.id)">
  22. <view class="passreview" v-if="item.status==1&&item.isDeleted==0">
  23. <image src="../../static/img/Cercomplete.png" mode="aspectFill"></image>
  24. </view>
  25. <view class="passreview" v-if="item.status==0&&item.isDeleted==0">
  26. <image src="../../static/img/toreviewe.png" mode="aspectFill"></image>
  27. </view>
  28. <view class="passreview" v-if="item.status==3&&item.isDeleted==0">
  29. <image src="../../static/img/fail.png" mode="aspectFill"></image>
  30. </view>
  31. <view class="passreview" v-if="item.isDeleted==1">
  32. <image src="../../static/img/disabled.png" mode="aspectFill"></image>
  33. </view>
  34. <view class="cicle" v-if="item.status==1&&item.isDeleted==0"></view>
  35. <view class="cicle" v-if="item.status==0" style="background-color: #D05C39;"></view>
  36. <view class="cicle" v-if="item.status==3" style="background-color: #1F242A;"></view>
  37. <view class="cicle" v-if="item.isDeleted==1" style="background-color: #BEBDBB;"></view>
  38. <view class="innerbox">
  39. <text class="cardtitle">{{item.name}}</text>
  40. </view>
  41. <view class="contractmsg flex5">
  42. <text style="color: #68625B;">法人名称:{{item.legalPerson}}</text>
  43. <view style="padding-top: 10rpx;color: #BEBDBB;" class="flex2">
  44. <text>联系人:{{item.contacts}}</text>
  45. <text>电话:{{item.contactsMobile}}</text>
  46. </view>
  47. </view>
  48. </view>
  49. </view>
  50. </view>
  51. <view class="nomore" v-if="listall.length==0">
  52. <text>暂无数据</text>
  53. </view>
  54. <view class="totalmanage ">
  55. <text style="color:#68625B;font-size: 28rpx;">合计:{{total}}份</text>
  56. <view class=" maboxtitls" @click="editall=true">
  57. <view class="managebox">
  58. <image src="/static/img/manage.png" mode="aspectFit"></image>
  59. </view>
  60. <text style="padding-left: 15rpx;">管理</text>
  61. </view>
  62. </view>
  63. <view class="safebt"></view>
  64. <u-popup :show="show" @close="close" @open="open">
  65. <view class="popscreen" style="height: 440rpx;">
  66. <view class="checklist" v-for="(item,index) in ctrstatus" :key="index">
  67. <view class="alllistbtn">
  68. <text class="btntitle" style="">{{item.title}}</text>
  69. <view class="yunbtn">
  70. <view class="btnchoose" v-for="(i,k) in item.list" :key="k" @click="choose(item.title,k)"
  71. :class="[contract_status == k?'active':'btnchoose']">
  72. <text>{{i.name}}</text>
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. <view class="aszs flex6">
  78. <view class="againbtn" @click="restoreALL"><text>重置</text></view>
  79. <view class="againbtn" style="color: #D8AB5A;border: 1rpx solid #D8AB5A;" @click="makeSureSelect()"><text>确认</text></view>
  80. </view>
  81. </view>
  82. </u-popup>
  83. <u-datetime-picker :show="dateshow" v-model="value1" mode="year-month" @confirm="chooseDate"
  84. @cancel="closeDate"></u-datetime-picker>
  85. <!-- 底部删除 -->
  86. <u-popup :show="editall&&state==1" @close="closeEidt" @open="openEidt" :overlay="false">
  87. <view class="editbox">
  88. <view class="chooseall flex6">
  89. <view class="leftchoose ">
  90. <radio :checked="quan" @click="makeSureAll" color="#D8AB5A"></radio>
  91. <text>全选</text>
  92. </view>
  93. <view class="surebtn" @click="selectDown">
  94. 完成
  95. </view>
  96. </view>
  97. <view class="choosebtn">
  98. <view class="delbtn flex1">删除</view>
  99. <view class="restorebtn flex1">复原</view>
  100. </view>
  101. </view>
  102. </u-popup>
  103. <u-popup :show="editall&&state==0" @close="closeEidt" @open="openEidt" :overlay="false">
  104. <view class="editbox">
  105. <view class="chooseall flex6">
  106. <view class="leftchoose ">
  107. <radio :checked="quan" @click="makeSureAll" color="#D8AB5A"></radio>
  108. <text>全选</text>
  109. </view>
  110. <view class="anniu">
  111. <text class="usa" @click="dele()">删除</text>
  112. <text class="usa" @click="restore()">复原</text>
  113. <text @click="selectDown" class="usa">完成</text>
  114. </view>
  115. </view>
  116. <view class="choosebtn">
  117. <view class="delbtn flex1" @click="examineFail()">审核失败</view>
  118. <view class="restorebtn flex1" @click="examineSuccess()">审核成功</view>
  119. </view>
  120. </view>
  121. </u-popup>
  122. <tabar checked="supplier"></tabar>
  123. </view>
  124. </template>
  125. <script>
  126. let that
  127. import tabar from "@/componet/tabbar/tabbar.vue"
  128. export default {
  129. components: {
  130. tabar
  131. },
  132. data() {
  133. return {
  134. keywords:'',
  135. statusall:0,
  136. editall: false,
  137. quan: false,
  138. keywords: '',
  139. show: false,
  140. dateshow: false,
  141. creatTime: "请选择",
  142. endTime: "请选择",
  143. value1: '',
  144. intime: 1,
  145. pageIndex:1,
  146. total:'',
  147. nomore:false,
  148. contract_status: '',
  149. draft_status: '',
  150. time_status: '',
  151. listall: [],
  152. state: 0,
  153. ctrstatus: [{
  154. title: "供应商状态",
  155. list: [{
  156. name: "全部",
  157. },
  158. {
  159. name: "待审核",
  160. },
  161. {
  162. name: "已禁用",
  163. },
  164. {
  165. name: "认证完成",
  166. },
  167. {
  168. name: "认证失败",
  169. },
  170. ]
  171. }],
  172. }
  173. },
  174. onLoad() {
  175. that=this
  176. this.state = this.$store.state.admin
  177. // this.init()
  178. },
  179. onShow(){
  180. that.pageIndex = 1
  181. that.nomore = false
  182. that.listall = []
  183. this.init()
  184. },
  185. // 下拉到底部后加载新数据
  186. onReachBottom() {
  187. //判断下一页是否存在数据,不存在将显示暂无数据等提示语
  188. if (this.listall.length >= this.pageIndex * 10) {
  189. this.pageIndex++;//页数加一
  190. this.init();//回调接口
  191. }else{
  192. this.nomore=true
  193. }
  194. },
  195. methods: {
  196. init() {
  197. uni.showLoading()
  198. uni.$u.http.post('/api/Supplier/search', {
  199. pageIndex: this.pageIndex,
  200. pageSize: 10,
  201. // startTime:'',
  202. // endTime:'',
  203. name:this.keywords,
  204. status: this.statusall,
  205. // contractStatus:'',
  206. // contractNo:''
  207. }, {
  208. custom: {
  209. auth: true
  210. }
  211. }).then((res) => {
  212. uni.hideLoading()
  213. this.total=res.total
  214. let list=res.result
  215. if(list.length>0){
  216. list.forEach(item=>{
  217. item.checked=false
  218. this.listall.push(item)
  219. })
  220. if(list.length<10){
  221. that.nomore=true
  222. }
  223. }
  224. }).catch((err) => {
  225. uni.hideLoading()
  226. console.log(err)
  227. })
  228. },
  229. closeEidt() {
  230. this.editall = false
  231. },
  232. openEidt() {
  233. this.editall = true
  234. },
  235. selectDown() {
  236. this.editall = false
  237. this.quan=false
  238. let list = this.listall
  239. list.forEach(item => {
  240. item.checked = false
  241. })
  242. },
  243. close() {
  244. this.show = false
  245. },
  246. open(){
  247. },
  248. changeSeach(e){
  249. this.keywords=e.detail.value
  250. that.pageIndex = 1
  251. that.nomore = false
  252. that.listall = []
  253. this.init()
  254. },
  255. choose(title, k) {
  256. if (title == "供应商状态") {
  257. this.contract_status = k
  258. if (k == 2) {
  259. this.statusall = 4
  260. } else if (k == 1) {
  261. this.statusall = 1
  262. } else if (k == 0) {
  263. this.statusall = 0
  264. }else if(k==3){
  265. this.statusall = 2
  266. }else if(k==4){
  267. this.statusall = 3
  268. }
  269. }
  270. },
  271. makeSureSelect() {
  272. that.pageIndex = 1
  273. that.nomore = false
  274. that.listall = []
  275. this.init()
  276. this.close()
  277. },
  278. restoreALL() {
  279. this.contract_status = 0
  280. },
  281. checkBox(id) {
  282. let list = this.listall
  283. list.forEach(item => {
  284. if (item.id == id) {
  285. item.checked = !item.checked
  286. }
  287. })
  288. this.listall = JSON.parse(JSON.stringify(list))
  289. },
  290. selectDown() {
  291. this.editall=false
  292. this.quan=false
  293. let list = this.listall
  294. list.forEach(item => {
  295. item.checked = false
  296. })
  297. },
  298. allSelect(){
  299. let list=this.listall
  300. console.log(this.quan,778)
  301. if(this.quan){
  302. list.forEach(item => {
  303. item.checked =true
  304. })
  305. }else{
  306. list.forEach(item => {
  307. item.checked =false
  308. })
  309. }
  310. this.listall = JSON.parse(JSON.stringify(list))
  311. },
  312. makeSureAll(){
  313. this.quan=!this.quan
  314. this.allSelect()
  315. },
  316. chooseDate(e) {
  317. this.dateshow = false
  318. const timeFormat = uni.$u.timeFormat
  319. if (this.intime == 1) {
  320. this.creatTime = timeFormat(e.value, 'yyyy-mm')
  321. } else {
  322. this.endTime = timeFormat(e.value, 'yyyy-mm')
  323. }
  324. },
  325. moveDetail(id) {
  326. uni.navigateTo({
  327. url: '/pages/alldeatil/supplierdetail?id=' + id
  328. })
  329. },
  330. addContract() {
  331. uni.navigateTo({
  332. url: '/pages/alldeatil/upcontract'
  333. })
  334. },
  335. openDatePicker(e) {
  336. console.log(e)
  337. if (e == 1) {
  338. this.intime = 1
  339. } else {
  340. this.intime = 2
  341. }
  342. this.dateshow = true
  343. },
  344. closeDate() {
  345. this.dateshow = false
  346. },
  347. open() {
  348. // console.log('open');
  349. },
  350. close() {
  351. this.show = false
  352. // console.log('close');
  353. },
  354. // choose(title, k) {
  355. // if (title == "合同状态") {
  356. // this.contract_status = k
  357. // } else if (title == "汇票状态") {
  358. // this.draft_status = k
  359. // } else if (title == "上传日期") {
  360. // this.time_status = k
  361. // }
  362. // },
  363. examineFail(){
  364. let ids=[]
  365. that.listall.forEach(item=>{
  366. if(item.checked){
  367. ids.push(item.id)
  368. }
  369. })
  370. if(ids.length==0){
  371. this.$toast("请选择合同")
  372. return
  373. }
  374. uni.showModal({
  375. title: '提示',
  376. content: '是否批量审核失败?',
  377. success: function (res) {
  378. if (res.confirm) {
  379. uni.showLoading()
  380. uni.$u.http.post('/api/Supplier/manage',
  381. {
  382. ids:ids,
  383. operateType:4
  384. },
  385. {
  386. custom: {
  387. auth: true
  388. }
  389. }).then((res) => {
  390. uni.hideLoading()
  391. that.editall=false
  392. that.quan=false
  393. that.$toast("操作成功")
  394. setTimeout(()=>{
  395. that.pageIndex=1
  396. that.nomore=false
  397. that.listall=[]
  398. that.init()
  399. },500)
  400. }).catch((err) => {
  401. uni.hideLoading()
  402. that.$toast(err.msg)
  403. })
  404. } else if (res.cancel) {
  405. console.log('用户点击取消');
  406. }
  407. }
  408. });
  409. },
  410. dele(){
  411. let ids=[]
  412. that.listall.forEach(item=>{
  413. if(item.checked){
  414. ids.push(item.id)
  415. }
  416. })
  417. if(ids.length==0){
  418. that.$toast("请选择合同")
  419. return
  420. }
  421. uni.showModal({
  422. title: '提示',
  423. content:"是否批量删除?",
  424. success: function (res) {
  425. if (res.confirm) {
  426. uni.showLoading()
  427. uni.$u.http.post('/api/Supplier/manage',
  428. {
  429. ids:ids,
  430. operateType:1
  431. },
  432. {
  433. custom: {
  434. auth: true
  435. }
  436. }).then((res) => {
  437. uni.hideLoading()
  438. that.editall=false
  439. that.quan=false
  440. that.$toast("操作成功")
  441. setTimeout(()=>{
  442. that.pageIndex=1
  443. that.nomore=false
  444. that.listall=[]
  445. that.init()
  446. },500)
  447. }).catch((err) => {
  448. uni.hideLoading()
  449. that.$toast(err.msg)
  450. })
  451. } else if (res.cancel) {
  452. }
  453. }
  454. })
  455. },
  456. restore(){
  457. let ids=[]
  458. that.listall.forEach(item=>{
  459. if(item.checked){
  460. ids.push(item.id)
  461. }
  462. })
  463. if(ids.length==0){
  464. that.$toast("请选择合同")
  465. return
  466. }
  467. uni.showModal({
  468. title: '提示',
  469. content:"是否批量复原?",
  470. success: function (res) {
  471. if (res.confirm) {
  472. uni.showLoading()
  473. uni.$u.http.post('/api/Supplier/manage',
  474. {
  475. ids:ids,
  476. operateType:2
  477. },
  478. {
  479. custom: {
  480. auth: true
  481. }
  482. }).then((res) => {
  483. uni.hideLoading()
  484. that.editall=false
  485. that.quan=false
  486. that.$toast("操作成功")
  487. setTimeout(()=>{
  488. that.pageIndex=1
  489. that.nomore=false
  490. that.listall=[]
  491. that.init()
  492. },500)
  493. }).catch((err) => {
  494. uni.hideLoading()
  495. that.$toast(err.msg)
  496. })
  497. } else if (res.cancel) {
  498. }
  499. }
  500. })
  501. },
  502. examineSuccess(){
  503. let ids=[]
  504. that.listall.forEach(item=>{
  505. if(item.checked){
  506. ids.push(item.id)
  507. }
  508. })
  509. if(ids.length==0){
  510. that.$toast("请选择合同")
  511. return
  512. }
  513. uni.showModal({
  514. title: '提示',
  515. content:"是否批量审核成功?",
  516. success: function (res) {
  517. if (res.confirm) {
  518. uni.showLoading()
  519. uni.$u.http.post('/api/Supplier/manage',
  520. {
  521. ids:ids,
  522. operateType:3
  523. },
  524. {
  525. custom: {
  526. auth: true
  527. }
  528. }).then((res) => {
  529. uni.hideLoading()
  530. that.editall=false
  531. that.quan=false
  532. that.$toast("操作成功")
  533. setTimeout(()=>{
  534. that.pageIndex=1
  535. that.nomore=false
  536. that.listall=[]
  537. that.init()
  538. },500)
  539. }).catch((err) => {
  540. uni.hideLoading()
  541. that.$toast(err.msg)
  542. })
  543. } else if (res.cancel) {
  544. }
  545. }
  546. })
  547. },
  548. }
  549. }
  550. </script>
  551. <style lang="scss">
  552. page {
  553. background-color: #F6F6F6 !important;
  554. }
  555. .headbgbox {
  556. background-color: #fff;
  557. padding: 23rpx 31rpx;
  558. box-sizing: border-box;
  559. position: fixed;
  560. top: 0;
  561. z-index: 999;
  562. width: 100%;
  563. .screen {
  564. display: flex;
  565. justify-content: center;
  566. align-items: center;
  567. padding-left: 30rpx;
  568. }
  569. }
  570. .searchbox {
  571. padding-left: 30rpx;
  572. box-sizing: border-box;
  573. background-color: #ECECEC;
  574. border-radius: 38rpx;
  575. // width: 688rpx;
  576. flex: 1;
  577. height: 75rpx;
  578. margin: 0 auto;
  579. display: flex;
  580. align-items: center;
  581. // justify-content: center;
  582. // margin-top: -10rpx;
  583. }
  584. .cardlist {
  585. display: flex;
  586. justify-content: center;
  587. flex-direction: column;
  588. // align-items: center;
  589. margin: 0 auto;
  590. margin-top: 120rpx;
  591. flex: 1;
  592. }
  593. .card {
  594. margin: 0 auto;
  595. overflow: hidden;
  596. // margin-top: 20rpx;
  597. margin: 0 30rpx;
  598. flex: 1;
  599. width: 100%;
  600. // height: 264rpx;
  601. border-radius: 20rpx;
  602. background-color: #fff;
  603. position: relative;
  604. box-shadow: 0px 8rpx 20rpx 1rpx rgba(31, 36, 42, 0.08);
  605. .passreview {
  606. position: absolute;
  607. right: 30rpx;
  608. top: 30rpx;
  609. width: 141rpx;
  610. height: 123.5rpx;
  611. image {
  612. width: 100%;
  613. height: 100%;
  614. }
  615. }
  616. .cicle {
  617. position: absolute;
  618. width: 40rpx;
  619. height: 20rpx;
  620. background-color: #D8AB5A;
  621. border-radius: 20rpx;
  622. top: 60rpx;
  623. left: -20rpx;
  624. }
  625. .innerbox {
  626. padding: 49rpx 0rpx;
  627. padding-bottom: 30rpx;
  628. margin: 0 30rpx;
  629. display: flex;
  630. align-items: center;
  631. border-bottom: 1rpx solid #E8E8E8;
  632. .listicon {
  633. width: 32rpx;
  634. height: 36rpx;
  635. image {
  636. width: 100%;
  637. height: 100%;
  638. }
  639. }
  640. }
  641. .cardtitle {
  642. font-size: 32rpx;
  643. font-weight: 600;
  644. padding-left: 10rpx;
  645. }
  646. .timebox {
  647. background-color: #FFF8E5;
  648. width: 100%;
  649. padding: 0 30rpx;
  650. box-sizing: border-box;
  651. color: #D8AB5A;
  652. font-size: 28rpx;
  653. height: 60rpx;
  654. line-height: 60rpx;
  655. }
  656. .contractmsg {
  657. padding: 30rpx;
  658. box-sizing: border-box;
  659. color: #68625B;
  660. font-size: 26rpx;
  661. }
  662. }
  663. .totalmanage {
  664. margin-top: 90rpx;
  665. margin-bottom: 100rpx;
  666. // position: fixed;
  667. bottom: 0;
  668. display: flex;
  669. justify-content: space-between;
  670. align-items: center;
  671. width: 100%;
  672. padding: 0 30rpx;
  673. box-sizing: border-box;
  674. .managebox {
  675. width: 23.8rpx;
  676. height: 29.7rpx;
  677. image {
  678. width: 100%;
  679. height: 100%;
  680. }
  681. }
  682. .maboxtitls {
  683. width: 160rpx;
  684. height: 60rpx;
  685. display: flex;
  686. align-items: center;
  687. justify-content: center;
  688. border-radius: 30rpx;
  689. background-color: #D9D9D9;
  690. // line-height: 60rpx;
  691. font-size: 28rpx;
  692. box-sizing: border-box;
  693. // align-items: center;
  694. }
  695. }
  696. .popscreen {
  697. padding-top: 47rpx;
  698. height: 1000rpx;
  699. overflow: auto;
  700. .checklist {
  701. .alllistbtn {
  702. .btntitle {
  703. padding: 0 30rpx;
  704. display: block;
  705. margin: 48rpx 0 30rpx;
  706. font-size: 32rpx;
  707. font-weight: 600;
  708. margin-top: 20rpx;
  709. }
  710. .yunbtn {
  711. display: flex;
  712. flex-direction: row;
  713. flex-wrap: wrap;
  714. margin-left: 30rpx;
  715. }
  716. .btnchoose {
  717. margin-bottom: 30rpx;
  718. margin-right: 41rpx;
  719. width: 200rpx;
  720. height: 68rpx;
  721. background-color: #F6F6F6;
  722. border-radius: 34rpx;
  723. font-size: 26rpx;
  724. color: #68625B;
  725. text-align: center;
  726. line-height: 68rpx;
  727. }
  728. .active {
  729. margin-bottom: 30rpx;
  730. margin-right: 41rpx;
  731. width: 200rpx;
  732. height: 68rpx;
  733. background-color: #FFF8E5;
  734. border-radius: 34rpx;
  735. font-size: 26rpx;
  736. color: #D8AB5A;
  737. border: 1rpx solid #D8AB5A;
  738. text-align: center;
  739. line-height: 68rpx;
  740. box-sizing: border-box;
  741. }
  742. }
  743. }
  744. .custom {
  745. margin: 50rpx 30rpx;
  746. margin-top: 20rpx;
  747. display: flex;
  748. align-items: center;
  749. .custombox {
  750. margin-left: 50rpx;
  751. flex: 1;
  752. .creatdata {
  753. color: #68625B;
  754. font-size: 28rpx;
  755. width: 100%;
  756. margin-bottom: 10rpx;
  757. padding: 20rpx 0;
  758. border-bottom: 1rpx solid #E8E8E8;
  759. }
  760. .chodatain {
  761. color: #BEBDBB;
  762. }
  763. }
  764. }
  765. .aszs {
  766. padding: 20rpx 0;
  767. border-top: 1rpx solid #E8E8E8;
  768. margin: 0 30rpx;
  769. margin-bottom: 20rpx;
  770. font-size: 28rpx;
  771. .againbtn {
  772. width: 335rpx;
  773. height: 88rpx;
  774. line-height: 88rpx;
  775. text-align: center;
  776. border-radius: 45rpx;
  777. border: 1rpx solid #E8E8E8;
  778. }
  779. }
  780. }
  781. </style>