list.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815
  1. <template>
  2. <view class="user-list">
  3. <!-- #ifdef MP || APP-PLUS -->
  4. <view class="accountTitle">
  5. <view :style="{ height: getHeight.barTop + 'px' }"></view>
  6. <view
  7. class="sysTitle acea-row row-center-wrapper"
  8. :style="{ height: getHeight.barHeight + 'px' }"
  9. >
  10. <view>用户管理</view>
  11. <text class="iconfont icon-ic_leftarrow" @click="goarrow"></text>
  12. </view>
  13. </view>
  14. <view
  15. :style="{ height: getHeight.barTop + getHeight.barHeight + 'px' }"
  16. ></view>
  17. <!-- #endif -->
  18. <view class="searchCon acea-row row-between-wrapper">
  19. <view class="search acea-row row-middle" :class="administer ? 'on' : ''">
  20. <text class="iconfont icon-ic_search"></text>
  21. <input
  22. class="inputs"
  23. placeholder="请输入用户昵称/ID"
  24. placeholder-class="placeholder"
  25. confirm-type="search"
  26. name="search"
  27. v-model="keyword"
  28. @confirm="searchSubmit"
  29. />
  30. </view>
  31. <!-- <view @click="manageTap" v-if="administer">取消</view>
  32. <view class="edit acea-row row-center-wrapper" @click="manageTap" v-else>
  33. <text class="iconfont icon-ic_batch"></text>
  34. </view> -->
  35. <view
  36. class="edit acea-row row-center-wrapper"
  37. @click="filterTap"
  38. v-if="!administer"
  39. >
  40. <text class="iconfont icon-a-icon_filter1x"></text>
  41. </view>
  42. </view>
  43. <view class="list" v-if="userLists.length">
  44. <checkbox-group @change="checkboxChange">
  45. <view
  46. class="acea-row row-middle"
  47. v-for="(item, index) in userLists"
  48. :key="index"
  49. >
  50. <!-- #ifndef MP -->
  51. <checkbox
  52. class="checkbox"
  53. v-if="administer"
  54. :value="item.uid.toString()"
  55. :checked="item.checked"
  56. color="#ffffff"
  57. backgroundColor="#ffffff"
  58. activeBackgroundColor="#2A7EFB"
  59. activeBorderColor="#2A7EFB"
  60. />
  61. <!-- #endif -->
  62. <!-- #ifdef MP -->
  63. <checkbox
  64. class="checkbox"
  65. v-if="administer"
  66. :value="item.uid"
  67. :checked="item.checked"
  68. color="#ffffff"
  69. />
  70. <!-- #endif -->
  71. <view
  72. class="item acea-row row-center-wrapper"
  73. @click="goDetails(item)"
  74. >
  75. <view class="pictrue">
  76. <image :src="item.avatar"></image>
  77. </view>
  78. <view class="text">
  79. <view class="top acea-row row-middle">
  80. <view class="name line1">{{ item.nickname }}</view>
  81. <view
  82. class="svip acea-row row-center-wrapper"
  83. v-if="item.isMember == 1"
  84. >SVIP</view
  85. >
  86. <view
  87. class="vip acea-row row-center-wrapper"
  88. v-if="item.level_status == 1 && item.level_grade"
  89. >
  90. <text class="iconfont icon-huiyuandengji"></text>
  91. V{{ item.level_grade }}
  92. </view>
  93. </view>
  94. <view class="phone">{{ item.phone }}</view>
  95. <view class="info acea-row row-middle">
  96. <view
  97. >积分:<text>{{ item.integral }}</text></view
  98. >
  99. <view
  100. >余额:<text>{{ item.now_money }}</text></view
  101. >
  102. </view>
  103. </view>
  104. <view
  105. v-if="!administer"
  106. class="iconfont icon-jilu"
  107. @click.stop="openDrawer(item)"
  108. ></view>
  109. </view>
  110. </view>
  111. </checkbox-group>
  112. </view>
  113. <block v-if="userLists.length == 0 && !loading">
  114. <emptyPage
  115. title="暂无用户信息~"
  116. src="/statics/images/empty-box.gif"
  117. ></emptyPage>
  118. </block>
  119. <Loading :loaded="loadend" :loading="loading"></Loading>
  120. <view class="footerH"></view>
  121. <view class="footer acea-row row-between-wrapper" v-if="administer">
  122. <checkbox-group @change="checkboxAllChange">
  123. <checkbox
  124. value="all"
  125. :checked="isAllSelect"
  126. color="#ffffff"
  127. backgroundColor="#ffffff"
  128. activeBackgroundColor="#2A7EFB"
  129. activeBorderColor="#2A7EFB"
  130. />
  131. <text class="checkAll">全选({{ getIds().length }})</text>
  132. </checkbox-group>
  133. <view class="acea-row row-middle">
  134. <view class="bnt acea-row row-center-wrapper">
  135. <picker
  136. @change="bindPickerChange"
  137. :range="groupArray"
  138. range-key="group_name"
  139. >
  140. <view>修改分组</view>
  141. </picker>
  142. </view>
  143. <view class="bnt acea-row row-center-wrapper" @click="editLabels"
  144. >添加标签</view
  145. >
  146. <view class="bnt acea-row row-center-wrapper" @click="sendCoupon"
  147. >发送优惠券</view
  148. >
  149. </view>
  150. </view>
  151. <base-drawer
  152. mode="bottom"
  153. :visible="visible"
  154. background-color="transparent"
  155. mask
  156. maskClosable
  157. @close="closeDrawer"
  158. >
  159. <view class="edit-list rd-t-40rpx">
  160. <view
  161. class="item"
  162. v-for="(item, index) in editList"
  163. :key="index"
  164. @tap="editInfo(index)"
  165. >
  166. <picker
  167. @change="bindLevelChange"
  168. :range="levelArray"
  169. range-key="name"
  170. v-if="index == 2"
  171. >
  172. <view class="uni-input">{{ item.name }}</view>
  173. </picker>
  174. <picker
  175. v-else-if="index == 5"
  176. @change="userUpdateGroup"
  177. :range="groupArray"
  178. range-key="group_name"
  179. >
  180. <view class="uni-input">{{ item.name }}</view>
  181. </picker>
  182. <text v-else>{{ item.name }}</text>
  183. </view>
  184. </view>
  185. </base-drawer>
  186. <view style="height: 110rpx"></view>
  187. <footer-page></footer-page>
  188. <edit-lable
  189. ref="lable"
  190. :visible="visibleLable"
  191. @closeDrawer="lableCloseDrawer"
  192. ></edit-lable>
  193. <edit-balance
  194. ref="balance"
  195. :visible="visibleBalance"
  196. :type="type"
  197. :uid="uid"
  198. @closeDrawer="balanceCloseDrawer"
  199. @successChange="successChange"
  200. ></edit-balance>
  201. <member
  202. ref="member"
  203. :visible="visibleMember"
  204. :userInfo="userInfo"
  205. @closeDrawer="memberCloseDrawer"
  206. @successChange="successChange"
  207. ></member>
  208. <coupon
  209. ref="coupon"
  210. :visible="visibleCoupon"
  211. :uid="uid"
  212. @closeDrawer="couponCloseDrawer"
  213. ></coupon>
  214. <user-filter
  215. ref="filter"
  216. :visible="visibleFilter"
  217. :groupArray="groupArray"
  218. :levelArray="levelArray"
  219. @closeDrawer="filterCloseDrawer"
  220. @successChange="filterChange"
  221. ></user-filter>
  222. </view>
  223. </template>
  224. <script>
  225. import Loading from "@/components/Loading/index";
  226. import emptyPage from "@/components/emptyPage.vue";
  227. import footerPage from "../components/footerPage/index.vue";
  228. import editLable from "./components/userLable/index.vue";
  229. import editBalance from "./components/editBalance/index.vue";
  230. import member from "./components/member/index.vue";
  231. import coupon from "./components/coupon/index.vue";
  232. import userFilter from "./components/filter/index.vue";
  233. import {
  234. getUserList,
  235. getGroupList,
  236. postUserUpdateOther,
  237. getLevelList,
  238. } from "@/api/admin";
  239. export default {
  240. components: {
  241. editLable,
  242. editBalance,
  243. member,
  244. coupon,
  245. userFilter,
  246. footerPage,
  247. emptyPage,
  248. Loading,
  249. },
  250. data() {
  251. return {
  252. getHeight: this.$util.getWXStatusHeight(),
  253. editList: [
  254. {
  255. name: "修改余额",
  256. },
  257. {
  258. name: "修改积分",
  259. },
  260. {
  261. name: "修改等级",
  262. },
  263. {
  264. name: "赠送会员",
  265. },
  266. {
  267. name: "赠送优惠券",
  268. },
  269. {
  270. name: "修改分组",
  271. },
  272. ],
  273. administer: 0,
  274. isAllSelect: false,
  275. userLists: [],
  276. visible: false,
  277. visibleLable: false, //标签是否显示
  278. loadTitle: "加载更多",
  279. loading: false,
  280. loadend: false,
  281. limit: 20,
  282. page: 1,
  283. keyword: "", //搜索字段
  284. visibleBalance: false,
  285. type: 0,
  286. visibleMember: false,
  287. visibleCoupon: false,
  288. uid: 0,
  289. groupArray: [],
  290. userInfo: {},
  291. levelArray: [],
  292. visibleFilter: false,
  293. filterData: {
  294. labelIds: "",
  295. groupIds: 0,
  296. levelIds: 0,
  297. },
  298. };
  299. },
  300. onShow() {},
  301. onLoad() {
  302. this.userList();
  303. this.groupList();
  304. },
  305. methods: {
  306. goarrow() {
  307. uni.navigateBack();
  308. },
  309. filterChange(data) {
  310. this.visibleFilter = false;
  311. this.filterData = data;
  312. this.init();
  313. },
  314. filterCloseDrawer() {
  315. this.visibleFilter = false;
  316. },
  317. filterTap() {
  318. this.visibleFilter = true;
  319. this.$refs.filter.productLabel();
  320. this.levelList();
  321. // this.groupList();
  322. },
  323. sendCoupon() {
  324. if (!this.getIds().length) {
  325. this.$util.Tips({
  326. title: "请选择商品",
  327. });
  328. return;
  329. }
  330. this.visibleCoupon = true;
  331. this.$refs.coupon.userCoupon(1, this.getIds());
  332. },
  333. levelList() {
  334. getLevelList()
  335. .then((res) => {
  336. this.levelArray = res.data.list;
  337. })
  338. .catch((err) => {
  339. this.$util.Tips({
  340. title: err,
  341. });
  342. });
  343. },
  344. groupList() {
  345. getGroupList()
  346. .then((res) => {
  347. this.groupArray = res.data;
  348. })
  349. .catch((err) => {
  350. this.$util.Tips({
  351. title: err,
  352. });
  353. });
  354. },
  355. userUpdate(data) {
  356. postUserUpdateOther(this.uid, data)
  357. .then((res) => {
  358. this.$util.Tips({
  359. title: res.msg,
  360. });
  361. })
  362. .catch((err) => {
  363. this.$util.Tips({
  364. title: err,
  365. });
  366. });
  367. },
  368. userUpdateGroup(e) {
  369. this.userUpdate({
  370. type: 5,
  371. group_id: this.groupArray[e.detail.value].id,
  372. });
  373. this.visible = false;
  374. this.init();
  375. },
  376. bindLevelChange(e) {
  377. this.userUpdate({
  378. type: 2,
  379. level: this.levelArray[e.detail.value].id,
  380. });
  381. this.init();
  382. },
  383. bindPickerChange(e) {
  384. if (!this.getIds().length) {
  385. this.$util.Tips({
  386. title: "请选择用户",
  387. });
  388. return;
  389. }
  390. this.userUpdate({
  391. type: 4,
  392. uid: this.getIds(),
  393. group_id: this.groupArray[e.detail.value].id,
  394. });
  395. },
  396. goDetails(item) {
  397. uni.navigateTo({
  398. url: "/pages/admin/user/index?uid=" + item.uid,
  399. });
  400. },
  401. couponCloseDrawer() {
  402. this.visibleCoupon = false;
  403. },
  404. memberCloseDrawer() {
  405. this.visibleMember = false;
  406. },
  407. balanceCloseDrawer() {
  408. this.visibleBalance = false;
  409. },
  410. successChange() {
  411. this.visibleMember = false;
  412. this.visibleBalance = false;
  413. this.init();
  414. },
  415. //批量编辑标签
  416. editLabels() {
  417. if (!this.getIds().length) {
  418. this.$util.Tips({
  419. title: "请选择商品",
  420. });
  421. return;
  422. }
  423. this.visibleLable = true;
  424. this.visible = false;
  425. this.$refs.lable.productLabel({}, 1, this.getIds());
  426. },
  427. //批量获取id集合
  428. getIds() {
  429. let ids = [];
  430. this.userLists.forEach((item) => {
  431. if (item.checked) {
  432. ids.push(item.uid);
  433. }
  434. });
  435. ids.slice(0, 100);
  436. return ids;
  437. },
  438. init() {
  439. this.userLists = [];
  440. this.page = 1;
  441. this.loadend = false;
  442. this.loading = false;
  443. this.userList();
  444. },
  445. searchSubmit() {
  446. this.init();
  447. },
  448. userList() {
  449. let that = this;
  450. if (this.loading) return;
  451. if (this.loadend) return;
  452. that.loading = true;
  453. that.loadTitle = "";
  454. getUserList({
  455. page: that.page,
  456. limit: that.limit,
  457. nickname: that.keyword,
  458. group_id: that.filterData.groupIds,
  459. level: that.filterData.levelIds,
  460. label_id: that.filterData.labelIds,
  461. })
  462. .then((res) => {
  463. let userLists = res.data.list;
  464. userLists.forEach((item) => {
  465. item.checked = false;
  466. });
  467. this.isAllSelect = false;
  468. let loadend = userLists.length < that.limit;
  469. that.userLists = that.$util.SplitArray(userLists, that.userLists);
  470. that.$set(that, "userLists", that.userLists);
  471. that.loadend = loadend;
  472. that.loadTitle = loadend ? "没有更多内容啦~" : "加载更多";
  473. that.page = that.page + 1;
  474. that.loading = false;
  475. })
  476. .catch((err) => {
  477. that.loading = false;
  478. that.loadTitle = "加载更多";
  479. });
  480. },
  481. editInfo(index) {
  482. this.type = index;
  483. switch (index) {
  484. case 0:
  485. this.visible = false;
  486. this.visibleBalance = true;
  487. break;
  488. case 1:
  489. this.visible = false;
  490. this.visibleBalance = true;
  491. break;
  492. case 2:
  493. this.visible = false;
  494. break;
  495. case 3:
  496. this.visible = false;
  497. this.visibleMember = true;
  498. break;
  499. case 4:
  500. this.visible = false;
  501. this.visibleCoupon = true;
  502. break;
  503. }
  504. },
  505. lableCloseDrawer() {
  506. this.visibleLable = false;
  507. },
  508. openDrawer(item) {
  509. this.visible = true;
  510. this.uid = item.uid;
  511. this.userInfo = item;
  512. this.levelList();
  513. this.$refs.coupon.userCoupon(0);
  514. },
  515. closeDrawer() {
  516. this.visible = false;
  517. },
  518. manageTap() {
  519. this.administer = !this.administer;
  520. },
  521. checkboxChange(event) {
  522. let idList = event.detail.value;
  523. this.userLists.forEach((item) => {
  524. if (idList.indexOf(item.uid + "") !== -1) {
  525. item.checked = true;
  526. } else {
  527. item.checked = false;
  528. }
  529. });
  530. if (idList.length == this.userLists.length) {
  531. this.isAllSelect = true;
  532. } else {
  533. this.isAllSelect = false;
  534. }
  535. },
  536. forGoods(val) {
  537. let that = this;
  538. if (!that.userLists.length) return;
  539. that.userLists.forEach((item) => {
  540. if (val) {
  541. item.checked = true;
  542. } else {
  543. item.checked = false;
  544. }
  545. });
  546. },
  547. checkboxAllChange(event) {
  548. let value = event.detail.value;
  549. if (value.length) {
  550. if (this.userLists.length > 100) {
  551. this.$util.Tips({
  552. title: "每次最多只提交100条数据",
  553. });
  554. }
  555. this.isAllSelect = true;
  556. this.forGoods(1);
  557. } else {
  558. this.isAllSelect = false;
  559. this.forGoods(0);
  560. }
  561. },
  562. },
  563. onReachBottom() {
  564. this.userList();
  565. },
  566. };
  567. </script>
  568. <style lang="scss" scoped>
  569. ::v-deep checkbox .wx-checkbox-input.wx-checkbox-input-checked {
  570. border: 1px solid $primary-admin !important;
  571. background-color: $primary-admin !important;
  572. }
  573. ::v-deep checkbox:not([disabled]) .uni-checkbox-input:hover {
  574. border-color: #d1d1d1 !important;
  575. }
  576. ::v-deep.empty-page {
  577. margin-top: 20rpx;
  578. }
  579. .accountTitle {
  580. background: #f5f5f5;
  581. position: fixed;
  582. left: 0;
  583. top: 0;
  584. width: 100%;
  585. z-index: 99;
  586. padding-bottom: 6rpx;
  587. .sysTitle {
  588. width: 100%;
  589. position: relative;
  590. font-weight: 500;
  591. color: #333333;
  592. font-size: 30rpx;
  593. .iconfont {
  594. position: absolute;
  595. font-size: 42rpx;
  596. left: 20rpx;
  597. width: 60rpx;
  598. font-weight: 500;
  599. }
  600. }
  601. }
  602. .user-list {
  603. padding: 20rpx 20rpx 0 20rpx;
  604. .searchCon {
  605. .search {
  606. width: 620rpx;
  607. height: 72rpx;
  608. background: #ffffff;
  609. border-radius: 50rpx;
  610. padding: 0 34rpx;
  611. &.on {
  612. width: 618rpx;
  613. }
  614. .iconfont {
  615. color: #999;
  616. font-size: 32rpx;
  617. margin-right: 16rpx;
  618. }
  619. .inputs {
  620. font-size: 28rpx;
  621. width: 100%;
  622. height: 100%;
  623. flex: 1;
  624. }
  625. .placeholder {
  626. color: #ccc;
  627. }
  628. }
  629. .edit {
  630. width: 72rpx;
  631. height: 72rpx;
  632. background: #ffffff;
  633. border-radius: 50%;
  634. .iconfont {
  635. color: #666;
  636. font-size: 36rpx;
  637. }
  638. }
  639. }
  640. .list {
  641. padding-bottom: 20rpx;
  642. margin-top: 32rpx;
  643. ::v-deep uni-checkbox .uni-checkbox-input {
  644. margin: 0 20rpx 20rpx 0;
  645. }
  646. ::v-deep wx-checkbox .wx-checkbox-input {
  647. margin: 0 20rpx 20rpx 0;
  648. }
  649. .item {
  650. width: 100%;
  651. background-color: #fff;
  652. padding: 30rpx 24rpx;
  653. box-sizing: border-box;
  654. margin-bottom: 20rpx;
  655. border-radius: 24rpx;
  656. position: relative;
  657. flex: 1;
  658. .icon-ic_more {
  659. position: absolute;
  660. right: 20rpx;
  661. top: 30rpx;
  662. color: #999;
  663. font-size: 40rpx;
  664. }
  665. .pictrue {
  666. width: 96rpx;
  667. height: 96rpx;
  668. margin-right: 24rpx;
  669. image {
  670. width: 100%;
  671. height: 100%;
  672. border-radius: 50%;
  673. }
  674. }
  675. .text {
  676. flex: 1;
  677. overflow: hidden;
  678. .top {
  679. .name {
  680. max-width: 230rpx;
  681. font-size: 28rpx;
  682. font-weight: 600;
  683. color: #333333;
  684. font-family: PingFang SC, PingFang SC;
  685. }
  686. .svip {
  687. width: 56rpx;
  688. height: 26rpx;
  689. background: linear-gradient(270deg, #484643 0%, #1f1b17 100%);
  690. border-radius: 100rpx;
  691. font-size: 18rpx;
  692. font-family: PingFang SC, PingFang SC;
  693. font-weight: 600;
  694. color: #fddaa4;
  695. margin-left: 10rpx;
  696. }
  697. .vip {
  698. width: 64rpx;
  699. // height: 26rpx;
  700. background: #fef0d9;
  701. border: 1px solid #facc7d;
  702. border-radius: 50rpx;
  703. font-size: 18rpx;
  704. font-family: PingFang SC, PingFang SC;
  705. font-weight: 500;
  706. color: #dfa541;
  707. margin-left: 10rpx;
  708. .iconfont {
  709. font-size: 20rpx;
  710. margin-right: 4rpx;
  711. }
  712. }
  713. }
  714. .phone {
  715. font-size: 24rpx;
  716. font-family: PingFang SC, PingFang SC;
  717. font-weight: 400;
  718. color: #999999;
  719. margin-top: 4rpx;
  720. }
  721. .info {
  722. font-size: 24rpx;
  723. font-weight: 400;
  724. color: #999999;
  725. margin-top: 4rpx;
  726. text {
  727. color: #333333;
  728. margin-right: 28rpx;
  729. }
  730. }
  731. }
  732. .bottom {
  733. margin-top: 26rpx;
  734. .bnt {
  735. width: 144rpx;
  736. height: 56rpx;
  737. border: 1px solid #ccc;
  738. font-size: 24rpx;
  739. font-family: PingFang SC, PingFang SC;
  740. font-weight: 400;
  741. color: #333333;
  742. border-radius: 50rpx;
  743. & ~ .bnt {
  744. margin-left: 16rpx;
  745. }
  746. &.on {
  747. border-color: #2a7efb;
  748. background-color: #2a7efb;
  749. color: #fff;
  750. }
  751. &.up {
  752. border-color: #ff7e00;
  753. color: #ff7e00;
  754. }
  755. }
  756. }
  757. }
  758. }
  759. .footerH {
  760. height: calc(constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
  761. height: calc(env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
  762. }
  763. .footer {
  764. box-sizing: border-box;
  765. padding: 0 32rpx;
  766. width: 100%;
  767. height: 96rpx;
  768. background-color: #fff;
  769. position: fixed;
  770. bottom: 0;
  771. z-index: 30;
  772. height: calc(96rpx + constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
  773. height: calc(96rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
  774. padding-bottom: constant(safe-area-inset-bottom); ///兼容 IOS<11.2/
  775. padding-bottom: env(safe-area-inset-bottom); ///兼容 IOS>11.2/
  776. width: 100%;
  777. left: 0;
  778. ::v-deep uni-checkbox .uni-checkbox-input {
  779. margin-bottom: 6rpx;
  780. }
  781. .bnt {
  782. width: 160rpx;
  783. height: 64rpx;
  784. border-radius: 50rpx;
  785. border: 1rpx solid #2a7efb;
  786. color: #2a7efb;
  787. font-size: 24rpx;
  788. font-family: PingFang SC, PingFang SC;
  789. font-weight: 500;
  790. & ~ .bnt {
  791. margin-left: 16rpx;
  792. }
  793. }
  794. }
  795. .edit-list {
  796. background-color: #fff;
  797. padding: 45rpx 34rpx;
  798. .item {
  799. font-family: PingFang SC, PingFang SC;
  800. font-weight: 400;
  801. color: #333333;
  802. font-size: 32rpx;
  803. text-align: center;
  804. height: 106rpx;
  805. line-height: 106rpx;
  806. }
  807. }
  808. }
  809. </style>