goodDetail.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  1. <template>
  2. <view class="good__detail">
  3. <!-- 轮播图 -->
  4. <view class="good__detail-swiper">
  5. <!-- <u-swiper :list="list6" @change="e => currentNum = e.current" :autoplay="false" indicatorStyle="right: 20px"
  6. :height='400'>
  7. <view slot="indicator" class="indicator-num">
  8. <text class="indicator-num__text">{{ currentNum + 1 }}/{{ list6.length }}</text>
  9. </view>
  10. </u-swiper> -->
  11. <swiper class="swiper" @change="swiperChange" style="height:400px">
  12. <swiper-item v-for="item in list1" :key="item">
  13. <image :src="item" class="swiper-img" mode="aspectFit" @click="preview(item)"></image>
  14. </swiper-item>
  15. </swiper>
  16. <view class="indicator">
  17. <text class="indicator__text">{{ currentIndex + 1 }}/{{ list1.length }}</text>
  18. </view>
  19. </view>
  20. <!-- 商品信息区域 -->
  21. <view class="good__detail-info-box">
  22. <!-- 商品名称 -->
  23. <view class="good__detail-name">{{detailData.productName}}</view>
  24. <!-- 商品信息 -->
  25. <view class="good__detail-info-body">
  26. <view class="info-item" @click="showSpec = true">
  27. <view class="item__label">规格</view>
  28. <view class="item-1">
  29. <view class="item-1-1">
  30. <view class="item-1-1-placeholder" v-if="!businessInfo.spec.length">请选择规格</view>
  31. <view class="item-1-1-name" v-else v-for="item in getSpecName(businessInfo.spec)"
  32. :key="item.tagKey">
  33. {{ item}}
  34. </view>
  35. </view>
  36. <u-icon name="arrow-right" color="#606266" size="16"></u-icon>
  37. </view>
  38. </view>
  39. <view class="info-item">
  40. <view class="item__label">数量</view>
  41. <u-number-box v-model="businessInfo.tradeCount">
  42. <view slot="minus" class="minus">
  43. <u-icon name="minus" size="12"></u-icon>
  44. </view>
  45. <text slot="input" style="text-align: center;" class="input">{{businessInfo.tradeCount}}</text>
  46. <view slot="plus" class="plus">
  47. <u-icon name="plus" size="12"></u-icon>
  48. </view>
  49. </u-number-box>
  50. </view>
  51. <view class="info-item">
  52. <view class="item__label">交易</view>
  53. <view>
  54. <u-radio-group v-model="businessInfo.tradeType">
  55. <u-radio label="购买" name="0" :size='16' :customStyle="{marginRight: '40px'}"></u-radio>
  56. <u-radio label="借用" name="1" :size='16'></u-radio>
  57. </u-radio-group>
  58. </view>
  59. </view>
  60. <view class="info-item">
  61. <view class="item__label">物流</view>
  62. <view>
  63. <u-radio-group v-model="businessInfo.expressType">
  64. <u-radio label="到付" :size='16' name="0" :customStyle="{marginRight: '40px'}"></u-radio>
  65. <u-radio label="寄付" :size='16' name="1"></u-radio>
  66. </u-radio-group>
  67. </view>
  68. </view>
  69. <view class="info-item" @click="showAddress = true">
  70. <view class="item__label ">送至</view>
  71. <view class="item__label-address">
  72. <view class="item__label-placeholder"
  73. v-if="!form.contactsName && !form.contactsPhone && !form.address && !form.fullAddress">
  74. 请选择收货地址
  75. </view>
  76. <view class="item__label-text" v-else>
  77. <view class="item__label-text1">
  78. {{form.address}}{{form.fullAddress}}
  79. </view>
  80. <view class="item__label-text2">
  81. <text class="label-text2-name">{{form.contactsName}}</text>
  82. <text class="label-text2-phone">{{form.contactsPhone}}</text>
  83. </view>
  84. </view>
  85. <u-icon name="arrow-right" color="#606266" size="16"></u-icon>
  86. </view>
  87. </view>
  88. </view>
  89. <!-- 商品介绍 -->
  90. <view class="good__detail-intro">
  91. <view class="intro-title">商品介绍</view>
  92. <view class="intro-info">
  93. <text class="intro-info-text">{{detailData.productDesc}}</text>
  94. </view>
  95. </view>
  96. </view>
  97. <!-- 去下单 -->
  98. <view class="go-order-btn">
  99. <u-button type="primary" text="去下单" @click="goOrderOk(id)"></u-button>
  100. </view>
  101. <!-- 规格选择 -->
  102. <view class="popupOverflow">
  103. <u-popup :show="showSpec" @close="closeSpec" closeable>
  104. <view class="popup-content">
  105. <view class="spec-select-top">
  106. <text class="select-top-text">规格选择</text>
  107. </view>
  108. <view class="scroll-container">
  109. <SpecSelect @changeSelect='changeSelect' :list="list" />
  110. </view>
  111. </view>
  112. </u-popup>
  113. </view>
  114. <!-- 送至 -->
  115. <u-popup :show="showAddress" @close="closeAddress" @open="openAddress" closeable>
  116. <view class="popup-content">
  117. <view class="spec-select-top">
  118. <text class="select-top-text">配送至</text>
  119. </view>
  120. <u--form :model="form" :rules="rules" ref="uForm" labelWidth='100' :labelStyle="{color:'#868990'}">
  121. <u-form-item label="收货人" prop="name" borderBottom>
  122. <u--input v-model="form.contactsName" placeholder="请输入收货人"></u--input>
  123. </u-form-item>
  124. <u-form-item label="收货人手机号" prop="contactsPhone" borderBottom>
  125. <u--input v-model="form.contactsPhone" placeholder="请输入收货人手机号"></u--input>
  126. </u-form-item>
  127. <!-- <u-form-item label="收货地址" prop="address" borderBottom @click='show = !show'> -->
  128. <u-form-item label="收货地址" prop="address" borderBottom>
  129. <picker :value="valueIndex" class="spec-select-bottom" mode="multiSelector" :range="addressList"
  130. range-key="name" @change="changeValue" @columnchange="changeColumn">
  131. <view v-if="!result_show" class="select-address">
  132. <view style="color:#c0c4cc;font-size:15px;">
  133. 请选择省/市/区</view>
  134. <view><u-icon name="arrow-right" color="#c0c4cc"></u-icon></view>
  135. </view>
  136. <view v-else>
  137. {{result_show}}
  138. </view>
  139. </picker>
  140. </u-form-item>
  141. <u-form-item label="详细地址" prop="fullAddress" borderBottom>
  142. <u--input v-model="form.fullAddress" placeholder="请输入详细地址"></u--input>
  143. </u-form-item>
  144. </u--form>
  145. <view class="btn">
  146. <u-button type="primary" text="确定" @click="submit"></u-button>
  147. </view>
  148. </view>
  149. </u-popup>
  150. <u-toast ref="uToast"></u-toast>
  151. </view>
  152. </template>
  153. <script>
  154. import SpecSelect from '../../../components/specSelect.vue'
  155. import {
  156. getGoodsDetail,
  157. } from '@/api/goods.js'
  158. import {
  159. getUserInfo,
  160. updateUserInfo,
  161. getProvince,
  162. getCity,
  163. getArea
  164. } from '@/api/login.js'
  165. export default {
  166. components: {
  167. SpecSelect,
  168. },
  169. onLoad(option) {
  170. this.id = option.id;
  171. this.fetchData(option.id)
  172. let value = this.result_show;
  173. value = value ? value : ''
  174. this.getAddressList(-1, 0, value)
  175. getUserInfo().then(res => {
  176. this.form.companyName = res.data.companyName
  177. this.form.provinceId = res.data.provinceId //省
  178. this.form.cityId = res.data.cityId //市
  179. this.form.areaId = res.data.areaId //区
  180. this.result_show = res.data.provinceName + ' ' + res.data.cityName + ' ' + res.data.areaName
  181. this.form.address = res.data.provinceName + ' ' + res.data.cityName + ' ' + res.data.areaName
  182. this.form.fullAddress = res.data.companyAddress
  183. this.form.contactsName = res.data.contactsName
  184. this.form.contactsPhone = res.data.contactsPhone
  185. }).catch(err => {});
  186. },
  187. data() {
  188. return {
  189. id: '',
  190. detailData: {},
  191. list1: [], //轮播图
  192. list: [], //规格数据
  193. currentIndex: 0, //轮播图
  194. addressList: [],
  195. valueIndex: [],
  196. result: [],
  197. result_show: '',
  198. areaCodeId: [], //省市区的id
  199. showSpec: false,
  200. showAddress: false,
  201. businessInfo: {
  202. spec: [],
  203. tradeCount: 1,
  204. tradeType: '1', //交易方式
  205. expressType: '1', //物流方式
  206. fullAddress: '' //收货地址
  207. },
  208. rules: {},
  209. form: {
  210. contactsName: '',
  211. contactsPhone: '',
  212. address: '', //省市区
  213. provinceId: '', //省
  214. cityId: '', //市
  215. areaId: '', //区
  216. fullAddress: '' //收货地址
  217. },
  218. showLocation: false,
  219. };
  220. },
  221. methods: {
  222. // 获取详情数据
  223. async fetchData(id) {
  224. const res = {
  225. productId: id
  226. }
  227. this.list = []
  228. const result = await getGoodsDetail(res)
  229. console.log(result, 'result');
  230. this.detailData = result.data
  231. this.list1 = result.data.productImages
  232. const list = JSON.parse(result.data.productAttr)
  233. const arr = list.map(item => {
  234. return {
  235. ...item,
  236. inputValue: item.featureType == 1 ? "" : []
  237. }
  238. })
  239. this.list.push(...arr)
  240. // console.log(this.list, 'this.list');
  241. },
  242. // 轮播图
  243. swiperChange(event) {
  244. this.currentIndex = event.detail.current;
  245. },
  246. // 预览图片
  247. preview() {
  248. uni.previewImage({
  249. current: this.list1,
  250. urls: this.list1,
  251. });
  252. },
  253. // 规格选择
  254. changeSelect(value) {
  255. if (!value.length) {
  256. this.$refs.uToast.show({
  257. type: 'default',
  258. title: '默认主题',
  259. message: "请选择规格",
  260. //duration: 20000
  261. })
  262. console.log(value, '接收到的数据')
  263. return
  264. }
  265. console.log(value, 'valuevalue')
  266. this.businessInfo.spec = value
  267. this.closeSpec()
  268. },
  269. getSpecName(arr) {
  270. const values = []
  271. arr.forEach(v => {
  272. v.selectData.forEach(j => {
  273. values.push(j.name)
  274. })
  275. })
  276. return values
  277. },
  278. closeSpec() {
  279. this.showSpec = false
  280. },
  281. closeAddress() {
  282. this.showAddress = false
  283. },
  284. openAddress() {
  285. this.showAddress = true
  286. let value = this.result_show;
  287. value = value ? value : ''
  288. this.getAddressList(-1, 0, value)
  289. },
  290. // 送至确定
  291. submit() {
  292. if (!this.form.contactsName) {
  293. wx.showToast({
  294. title: '收货人不能为空',
  295. icon: 'none'
  296. })
  297. return
  298. }
  299. if (!this.form.contactsPhone) {
  300. wx.showToast({
  301. title: '收货人手机号不能为空',
  302. icon: 'none'
  303. })
  304. return
  305. }
  306. if (!this.form.address) {
  307. wx.showToast({
  308. title: '收货地址不能为空',
  309. icon: 'none'
  310. })
  311. return
  312. }
  313. if (!this.form.fullAddress) {
  314. wx.showToast({
  315. title: '详细地址不能为空',
  316. icon: 'none'
  317. })
  318. return
  319. }
  320. this.closeAddress()
  321. },
  322. // 去下单
  323. goOrderOk(id) {
  324. if (!this.businessInfo.spec.length) {
  325. wx.showToast({
  326. title: '请选择规格',
  327. icon: 'none'
  328. })
  329. return
  330. }
  331. if (!this.form.address) {
  332. wx.showToast({
  333. title: '收货地址不能为空',
  334. icon: 'none'
  335. })
  336. return
  337. }
  338. console.log(this.businessInfo, this.form);
  339. this.confirmSelection()
  340. uni.navigateTo({
  341. url: `/pages/goods/orderOK/orderOK?id=${id}`
  342. })
  343. },
  344. // 存储信息
  345. confirmSelection() {
  346. const app = getApp();
  347. app.globalData.selectedInfo = {
  348. productImages: this.detailData.productImages[0],
  349. productName: this.detailData.productName,
  350. productDesc: this.detailData.productDesc,
  351. productAttr: this.businessInfo.spec,
  352. tradeCount: this.businessInfo.tradeCount,
  353. tradeType: this.businessInfo.tradeType,
  354. expressType: this.businessInfo.expressType,
  355. contactsName: this.form.contactsName,
  356. contactsPhone: this.form.contactsPhone,
  357. provinceId: this.form.provinceId,
  358. cityId: this.form.cityId,
  359. areaId: this.form.areaId,
  360. receiveAddress: this.form.fullAddress,
  361. address: this.form.address
  362. };
  363. },
  364. //获取省市区列表并赋值
  365. async getAddressList(column = -1, index = 0, value) {
  366. let {
  367. addressList,
  368. valueIndex,
  369. result,
  370. result_show,
  371. areaCodeId
  372. } = this;
  373. let oneList = []
  374. let twoList = []
  375. let threeList = []
  376. if (column <= -1) {
  377. await getProvince().then(provinceList => {
  378. oneList = provinceList.data;
  379. if (value) {
  380. index = provinceList.data.findIndex((item) => {
  381. return item.name == value[0]
  382. });
  383. index = (index > -1) ? index : 0
  384. } else {
  385. index = 0
  386. }
  387. });
  388. this.$set(addressList, 0, oneList)
  389. };
  390. if (column <= 0) {
  391. valueIndex[0] = index;
  392. result[0] = addressList[0][index].name
  393. areaCodeId[0] = addressList[0][index].areaCodeId
  394. await getCity(addressList[0][(index || 0)].areaCodeId).then(cityList => {
  395. twoList = cityList.data;
  396. if (value) {
  397. index = cityList.data.findIndex((item) => {
  398. return item.name == value[1]
  399. });
  400. index = (index > -1) ? index : 0
  401. } else {
  402. index = 0
  403. }
  404. })
  405. this.$set(addressList, 1, twoList)
  406. this.$set(valueIndex, 1, index)
  407. result[1] = addressList[1][index].name; // 更新result数组的第二个元素
  408. areaCodeId[1] = addressList[1][index].areaCodeId; // 更新result数组的第二个元素
  409. }
  410. if (column <= 1) {
  411. valueIndex[1] = index;
  412. result[1] = addressList[1][index].name
  413. areaCodeId[1] = addressList[1][index].areaCodeId;
  414. await getArea(addressList[1][(index || 0)].areaCodeId).then(areaList => {
  415. threeList = areaList.data;
  416. if (value) {
  417. index = areaList.data.findIndex((item) => {
  418. return item.name == value[2]
  419. });
  420. index = (index > -1) ? index : 0
  421. } else {
  422. index = 0
  423. }
  424. })
  425. this.$set(addressList, 2, threeList)
  426. this.$set(valueIndex, 2, index)
  427. result[2] = addressList[2][index].name; // 更新result数组的第3个元素
  428. areaCodeId[2] = addressList[2][index].areaCodeId;
  429. }
  430. if (column <= -1 && !value) {
  431. result = [];
  432. result_show = ''
  433. }
  434. this.valueIndex = valueIndex;
  435. },
  436. //改变列时
  437. changeColumn(e) {
  438. // console.log(e);
  439. let column = e.detail.column;
  440. let index = e.detail.value;
  441. this.getAddressList(column, index)
  442. },
  443. // 点击确定时
  444. changeValue(e) {
  445. let {
  446. valueIndex,
  447. result,
  448. result_show,
  449. areaCodeId,
  450. } = this;
  451. valueIndex = e.detail.value;
  452. valueIndex.forEach((item, index) => {
  453. if (this.addressList[index][item]) {
  454. result[index] = this.addressList[index][item].name
  455. areaCodeId[index] = this.addressList[index][item].areaCodeId;
  456. }
  457. });
  458. result_show = result.join(' ');
  459. this.result_show = result_show
  460. this.form.address = result_show
  461. this.areaCodeId = areaCodeId
  462. this.form.provinceId = this.areaCodeId[0]
  463. this.form.cityId = this.areaCodeId[1]
  464. this.form.areaId = this.areaCodeId[2]
  465. },
  466. }
  467. }
  468. </script>
  469. <style lang="scss" scoped>
  470. .popupOverflow {
  471. height: 100vh;
  472. overflow: auto;
  473. }
  474. .scroll-container {
  475. max-height: 600px;
  476. /* 设置滚动容器的最大高度,超出时将出现滚动条 */
  477. overflow-y: auto;
  478. /* 设置滚动容器的纵向overflow属性为auto,以便出现纵向滚动条 */
  479. }
  480. .good__detail {
  481. width: 100%;
  482. position: relative;
  483. }
  484. // 轮播图
  485. .good__detail-swiper {
  486. position: relative;
  487. background-color: #FFFFFF;
  488. .swiper-img {
  489. width: 100%;
  490. height: 400px;
  491. }
  492. .indicator {
  493. position: absolute;
  494. margin-top: -55px;
  495. margin-left: 630rpx;
  496. padding: 5px 12px;
  497. background-color: rgba(0, 0, 0, 0.35);
  498. border-radius: 100px;
  499. @include flex;
  500. justify-content: center;
  501. z-index: 1;
  502. &__text {
  503. color: #FFFFFF;
  504. font-size: 12px;
  505. }
  506. }
  507. }
  508. // 商品信息区域
  509. .good__detail-info-box {
  510. position: absolute;
  511. top: 385px;
  512. //height: 907px;
  513. width: 100%;
  514. border-radius: 15px;
  515. background-color: #fff;
  516. // 商品名称
  517. .good__detail-name {
  518. padding: 24px 16px 16px;
  519. color: #333;
  520. font-size: 20px;
  521. font-weight: 700;
  522. line-height: 30px;
  523. }
  524. // 商品信息
  525. .good__detail-info-body {
  526. padding: 0 16px;
  527. box-sizing: border-box;
  528. .info-item {
  529. display: flex;
  530. justify-content: space-between;
  531. align-items: center;
  532. padding: 20px 0;
  533. border-bottom: 1px solid #f3f4f6;
  534. // 左边lable
  535. .item__label {
  536. color: #606266;
  537. font-size: 15px;
  538. width: 30px;
  539. font-weight: 400;
  540. }
  541. .item__label-address {
  542. display: flex;
  543. max-width: 298px;
  544. .item__label-placeholder {
  545. color: #B1B4BA;
  546. margin-right: 8px;
  547. font-size: 15px;
  548. font-weight: 500;
  549. text-align: right;
  550. width: 100%;
  551. }
  552. .item__label-text {
  553. margin-right: 8px;
  554. .item__label-text1 {
  555. color: #333;
  556. text-align: right;
  557. font-size: 15px;
  558. font-weight: 500;
  559. // overflow: hidden;
  560. // white-space: nowrap;
  561. // text-overflow: ellipsis;
  562. }
  563. .item__label-text2 {
  564. color: #333;
  565. text-align: right;
  566. font-size: 15px;
  567. font-weight: 500;
  568. .label-text2-name {
  569. margin-right: 10px;
  570. }
  571. }
  572. }
  573. }
  574. .minus {
  575. width: 31px;
  576. height: 31px;
  577. background: #F2F3F5;
  578. border-radius: 4px 0px 0px 4px;
  579. @include flex;
  580. // display: flex;
  581. justify-content: center;
  582. align-items: center;
  583. }
  584. .input {
  585. width: 78px;
  586. height: 31px;
  587. line-height: 31px;
  588. margin: 0 2px;
  589. background: #F2F3F5;
  590. }
  591. .plus {
  592. width: 31px;
  593. height: 31px;
  594. border-radius: 0px 4px 4px 0px;
  595. background: #F2F3F5;
  596. @include flex;
  597. justify-content: center;
  598. align-items: center;
  599. }
  600. // 请选择规格
  601. .item-1 {
  602. // flex: 1;
  603. display: flex;
  604. // justify-content: end;
  605. // flex-wrap: nowrap;
  606. // margin-left: 10px;
  607. max-width: 298px;
  608. .item-1-1 {
  609. // width: 300px;
  610. // max-width: 270px;
  611. white-space: nowrap;
  612. overflow: auto;
  613. // text-overflow: ellipsis;
  614. text-align: right;
  615. display: flex;
  616. align-items: center;
  617. margin-right: 8px;
  618. .item-1-1-placeholder {
  619. color: #B1B4BA;
  620. // margin-right: 8px;
  621. font-size: 15px;
  622. font-weight: 500;
  623. text-align: right;
  624. width: 100%;
  625. }
  626. .item-1-1-name {
  627. color: #000;
  628. text-align: right;
  629. font-size: 15px;
  630. font-weight: 500;
  631. display: flex;
  632. padding: 4px 12px;
  633. flex-direction: column;
  634. justify-content: center;
  635. align-items: center;
  636. border-radius: 8px;
  637. background: #F2F3F5;
  638. margin-right: 8px;
  639. &:last-child {
  640. margin-right: 0;
  641. }
  642. }
  643. }
  644. }
  645. }
  646. }
  647. // 商品介绍
  648. .good__detail-intro {
  649. margin-top: 40px;
  650. padding: 0 16px;
  651. // margin-bottom: 48px;
  652. margin-bottom: 116px;
  653. .intro-title {
  654. color: #333;
  655. font-size: 17px;
  656. font-weight: 500;
  657. }
  658. .intro-info {
  659. border-radius: 8px;
  660. background: #F1F7FF;
  661. padding: 20px 17px 20px 18px;
  662. margin-top: 10px;
  663. .intro-info-text {
  664. color: #4A5562;
  665. font-size: 16px;
  666. font-weight: 400;
  667. text-indent: 2em;
  668. display: inline-block;
  669. text-align: justify;
  670. line-height: 22px;
  671. }
  672. }
  673. }
  674. }
  675. .popup-content {
  676. padding: 16px;
  677. box-sizing: border-box;
  678. .spec-select-top {
  679. margin-bottom: 12px;
  680. .select-top-text {
  681. color: #333;
  682. font-size: 18px;
  683. font-weight: 400;
  684. }
  685. }
  686. .select-address {
  687. display: flex;
  688. align-items: center;
  689. justify-content: space-between;
  690. }
  691. .spec-select-bottom {
  692. padding: 8px 9px;
  693. font-size: 15px;
  694. }
  695. .btn {
  696. background-color: #fff;
  697. margin-top: 248px;
  698. // height: 112px;
  699. width: 100%;
  700. text-align: center;
  701. padding: 10px 14px 50px 14px;
  702. box-sizing: border-box;
  703. // background-color: red;
  704. }
  705. }
  706. .go-order-btn {
  707. background-color: #fff;
  708. position: fixed;
  709. bottom: 0;
  710. // height: 112px;
  711. width: 100%;
  712. text-align: center;
  713. padding: 10px 30px 50px 30px;
  714. box-sizing: border-box;
  715. }
  716. ::v-deep .u-fade-enter-active {
  717. z-index: 10075 !important;
  718. }
  719. ::v-deep .u-button {
  720. height: 50px !important;
  721. }
  722. // 省市区
  723. ::v-deep .u-transition .u-slide-up-enter-active {
  724. height: 380px;
  725. }
  726. ::v-deep .u-picker__view__column {
  727. padding-top: 80px;
  728. /* margin-top: 50px; */
  729. }
  730. </style>