1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651 |
- <!-- 确认订单 -->
- <template>
- <view class="order-wrap">
- <!-- 地址栏 -->
- <view class="head_box" v-if="orderPre.need_address" @tap="jump('/pages/user/address/list', { from: 'order' })">
- <view class="add-address-box u-flex u-flex-1" v-if="!addressId">
- <view class="box-bg u-p-30 u-flex-1 u-flex u-row-between">
- <text class="select-notice">请选择收货地址</text>
- <text class="u-iconfont uicon-arrow-right" style="color: #bfbfbf;"></text>
- </view>
- </view>
- <view class="add-address-box u-p-30" v-else>
- <view class="top u-flex">
- <text class="name">{{ addressData.consignee }}</text>
- <text class="phone">{{ addressData.phone }}</text>
- <text class="tag" v-show="addressData.is_default == 1">默认</text>
- </view>
- <view class="detail u-flex u-row-between">
- <view class="address">
- {{ addressData.province_name }}{{ addressData.city_name }}{{ addressData.area_name }}{{ addressData.address }}
- </view>
- <text class="u-iconfont uicon-arrow-right" style="color: #bfbfbf;"></text>
- </view>
- </view>
- </view>
- <view class="u-m-b-10">
- <!-- 确认订单商品卡片 -->
- <view class="goods-list" v-for="g in perGoodsList" :key="g.sku_price_id">
- <view class="goods-card u-p-30">
- <shopro-mini-card :title="g.detail.title" :image="g.detail.image">
- <template #describe>
- <view class="order-sku u-ellipsis-1">
- <text class="order-num">
- {{ g.detail.current_sku_price && g.detail.current_sku_price.goods_sku_text ? g.detail.current_sku_price.goods_sku_text : '' }}
- </text>
- </view>
- </template>
- <template #cardBottom>
- <view class="goods-price u-flex u-row-between">
- <view class="">
- <text
- v-show="orderType === 'score'">{{ g.detail.current_sku_price.score }}积分+</text>
- <text>¥{{ g.detail.current_sku_price.price }}</text>
- </view>
- <text class="goods-num">x{{ g.goods_num }}</text>
- </view>
- </template>
- </shopro-mini-card>
- </view>
- <!-- 配送方式 -->
- <view class="logistic item-list u-flex u-row-between" @tap="onSelExpressType(g)">
- <view class="item-title">配送方式</view>
- <view class="u-flex">
- <view class="detail">{{ getCurGoodsExpress(g) }}</view>
- <text class="u-iconfont uicon-arrow-right" style="color: #bfbfbf;"></text>
- </view>
- </view>
- </view>
- <block v-if="perGoodsList.length">
- <!-- 备注 -->
- <view class="remark-box u-flex item-list u-p-30">
- <view class="item-title">备注</view>
- <input class="item-input " placeholder-class="input-pl" type="text" v-model="remark"
- placeholder="建议留言前先于卖家沟通确认" />
- </view>
- <!-- 选择优惠券 -->
- <sh-select-coupon v-if="hasCoupons" :couponList="couponList" @change="selectCoupon"></sh-select-coupon>
- <!-- 积分 -->
- <view class="score item-list u-flex u-row-between" v-show="orderType === 'score'">
- <view class="u-flex"><text class="item-title">积分</text></view>
- <view class="price">-{{ orderPre.score_amount || 0 }}积分</view>
- </view>
- <!-- 金额明细 -->
- <view class=" u-flex u-row-between item-list border-top u-m-b-10">
- <view class="item-title">商品金额</view>
- <view class="u-flex">
- <text class="price">¥{{ orderPre.goods_amount || '0.00' }}</text>
- </view>
- </view>
- <!-- 活动优惠 -->
- <u-collapse
- v-if="orderPre.activity_discount_infos && orderPre.activity_discount_infos.length && Number(orderPre.activity_discount_money)"
- event-type="close" :arrow="true" :accordion="true" arrowColor="#bfbfbf"
- :head-style="{ background: '#fff', height: '100rpx' }">
- <u-collapse-item>
- <block slot="title">
- <view style="width: 680rpx;padding-right: 0;" class="u-flex u-row-between item-list">
- <view class="item-title">活动优惠</view>
- <view class="u-flex">
- <text class="price"
- style="margin-right: 0;">-¥{{ orderPre.activity_discount_money || '0.00' }}</text>
- </view>
- </view>
- </block>
- <view class="" v-for="item in orderPre.activity_discount_infos" :key="item.activity_id">
- <view class="u-flex u-row-between item-list" v-if="item.activity_type !== 'free_shipping'">
- <view class="item-title">{{ item.activity_title }}</view>
- <view class="u-flex">
- <text class="price"
- style="color: #666;">-¥{{ item.activity_discount_money || '0.00' }}</text>
- </view>
- </view>
- </view>
- </u-collapse-item>
- </u-collapse>
- <!-- 价格 -->
- <view class="price-box u-flex u-row-between item-list">
- <view class="item-title u-flex u-col-center">
- <view class="u-m-r-10">运费</view>
- <view class="activity-title" v-if="Number(orderPre.dispatch_discount_money) > 0">活动减¥
- {{ orderPre.dispatch_discount_money }}</view>
- </view>
- <view class="u-flex">
- <text class="origin-price u-m-r-10"
- v-if="Number(orderPre.dispatch_discount_money) > 0">-¥{{ orderPre.dispatch_amount }}</text>
- <text
- class="price">¥{{ Number(orderPre.dispatch_amount) - Number(orderPre.dispatch_discount_money) || '0.00' }}</text>
- </view>
- </view>
- <!-- 发票 -->
- <view v-if="orderPre && Number(orderPre.invoice_amount)"
- class="u-flex u-row-between item-list u-p-20 border-top">
- <view class="item-title">申请发票</view>
- <view class="u-flex u-col-center" @tap="onInvoice">
- <text class="selected-invoice"
- style="font-size: 28rpx;color:#c4c4c4;">{{ selectedInvoice }}</text>
- <text class="u-iconfont uicon-arrow-right" style="color: #bfbfbf;"></text>
- </view>
- </view>
- </block>
- </view>
- <!-- 底部 -->
- <view class="foot-box-wrap">
- <view class="foot-box u-flex u-row-between safe-area-inset-bottom">
- <view class="u-flex">
- <text class="num">共{{ totalNum }}件</text>
- <view class="all-money">
- <text>合计:</text>
- <text class="price">¥{{ orderPre.total_fee || '0.00' }}</text>
- </view>
- </view>
- <button class="cu-btn sub-btn" @tap="subOrder" :disabled="isDisabled"
- hover-class="btn-hover">提交订单</button>
- </view>
- </view>
- <!-- 发票弹窗 -->
- <u-popup v-model="showInvoice" @close="showInvoice = false" safe-area-inset-bottom mode="bottom"
- :closeable="false" border-radius="20">
- <view class="invoice-modal page_box">
- <view class="invoice-head u-flex u-col-center">
- <view class="head-nav u-flex u-col-center u-row-center" @tap="changeInvoiceType('person')">
- <text class="nav-title " :class="{ 'nav-title--active': invoiceType === 'person' }">个人</text>
- <view v-show="invoiceType === 'person'" class="head-nav--active"></view>
- </view>
- <view class="head-nav u-flex u-col-center u-row-center" @tap="changeInvoiceType('company')">
- <text class="nav-title"
- :class="{ 'nav-title--active': invoiceType === 'company' }">企/事业单位</text>
- <view v-show="invoiceType === 'company'" class="head-nav--active"></view>
- </view>
- </view>
- <view class="invoice-content content_box">
- <u-form
- :labelStyle="{ 'font-size': '28rpx', 'font-weight': '600', color: '#595959', 'padding-left': '20rpx' }"
- label-position="left" :model="invoiceForm.model" :rules="invoiceForm.rules" ref="invoiceRef"
- :errorType="['toast']">
- <u-form-item class="u-p-r-20" label-width="150" label="名称:" prop="header_name">
- <u-input placeholder="请填写名称" v-model="invoiceForm.model.header_name" type="text"></u-input>
- </u-form-item>
- <u-form-item class="u-p-r-20" v-if="invoiceType === 'company'" label-width="220" label="纳税人识别号:"
- prop="tax_no">
- <u-input placeholder="请输入纳税人识别号" v-model="invoiceForm.model.tax_no" type="text"></u-input>
- </u-form-item>
- <u-form-item class="u-p-r-20" label-width="150" label="手机号:" prop="mobile">
- <u-input placeholder="请输入填写手机号" v-model="invoiceForm.model.mobile" type="number"></u-input>
- </u-form-item>
- </u-form>
- </view>
- <view class="invoice-foot">
- <view class="invoite-price u-flex u-col-center u-row-center u-m-b-40">
- <text class="price-title">可开票金额:</text>
- <text class="price-num">{{ orderPre.invoice_amount }}元</text>
- </view>
- <view class="u-flex u-col-center u-row-around u-p-b-30">
- <button class="cancel-btn u-reset-button" @tap="cancelInvoice">取消</button>
- <button class="save-btn u-reset-button" @tap="saveInvoice">确定</button>
- </view>
- </view>
- </view>
- </u-popup>
- <!-- 配送方式弹窗 -->
- <u-popup v-model="showExpressType" @close="showExpressType = false" safe-area-inset-bottom mode="bottom"
- :closeable="false" border-radius="20">
- <!-- 配送方式tab-->
- <view class="express-type page_box">
- <view class="express-type__head head-box u-flex u-col-center">
- <view class="express-type__head-nav u-flex u-col-center u-row-center"
- v-for="(nav, index) in expressType" :key="nav.id" @tap="changeExpressType(nav.value)"
- v-if="inExpressType.includes(nav.value)">
- <text class="head-nav__title"
- :class="{ 'head-nav__title--active': expressTypeCur === nav.value }">{{ nav.title }}</text>
- <view :class="expressClass" v-show="expressTypeCur === nav.value"></view>
- </view>
- </view>
- <view class="express-type__content content_box">
- <!-- 快递 -->
- <!-- 空 -->
- <view class="empty-address u-flex u-col-center"
- v-if="!addressId && expressTypeCur !== 'selfetch' && expressTypeCur !== 'autosend'"
- @tap="jump('/pages/user/address/list', { from: 'order' })">
- 请选择收货地址
- <text class="u-iconfont uicon-arrow-right" style="color: #999;"></text>
- </view>
- <!-- 地址 -->
- <view class="express-address" v-if="expressTypeCur == 'express' && addressId">
- <view class="express-top u-flex u-row-between"
- @tap="jump('/pages/user/address/list', { from: 'order' })">
- <view class="u-flex">
- <text class="tag" style="white-space: nowrap;"
- v-show="addressData.is_default == 1">默认</text>
- <text
- class="address">{{ addressData.province_name }}{{ addressData.city_name }}{{ addressData.area_name }}{{ addressData.address }}</text>
- <view class="address-guide"><text class="u-iconfont uicon-arrow-right"
- style="color: #bfbfbf"></text></view>
- </view>
- <view class="address-location u-flex-col u-col-center">
- <image class="location-img" :src="$IMG_URL + '/imgs/order/e0.png'" mode=""></image>
- <text class="location-text">物流快递</text>
- </view>
- </view>
- <view class="express-content">
- <view class="phone-box1">
- <text class="name">{{ addressData.consignee }}</text>
- <text class="phone">{{ addressData.phone }}</text>
- </view>
- </view>
- </view>
- <!-- 自提 -->
- <view class="express-address" v-if="expressTypeCur == 'selfetch'">
- <!-- 定位 -->
- <view class="u-flex-col u-col-center location-box" v-if="!lat">
- <image class="nolocation-img" :src="$IMG_URL + '/imgs/order/location.png'" mode=""></image>
- <text class="location-title">开启定位服务</text>
- <text class="location-tip">为你推荐更精准的位置信息噢~</text>
- <button class="u-reset-button open-location" @tap="getLocation">去开启</button>
- </view>
- <!-- 已定位 -->
- <view class="" v-else>
- <view class="express-top u-flex u-col-center u-row-between"
- @tap="jump('/pages/order/express/store-address', { goodsId: currentGoodsId, lat: lat, lng: lng, storeId: storeInfo ? storeInfo.id : 0 })">
- <view class="u-flex">
- <text class="tag1" v-if="addressData.is_default == 1">最近</text>
- <text class="address">{{ storeInfo ? storeInfo.name : '暂无自提点' }}</text>
- <text class="u-iconfont uicon-arrow-right" style="color: #999;"></text>
- </view>
- <view class="address-location u-flex-col u-col-center">
- <image class="location-img" :src="$IMG_URL + '/imgs/order/e1.png'" mode=""></image>
- <view class="location-text">距您{{ storeInfo ? storeInfo.distance_text : 0 }}</view>
- </view>
- </view>
- <view class="express-content u-flex u-col-cetner">
- <view class="time-box">
- <view class="box-title u-m-b-20">到店时间</view>
- <view class="box-content u-flex u-col-center" @tap="checkExpressTime('selfetch')">
- <text
- class="box-text">{{ checkTime['day'][checkDayCur].title }}{{ checkTime['time'][checkTimeCur] }}</text>
- <text class="u-iconfont uicon-arrow-right" style="color: #999;"></text>
- </view>
- </view>
- <view class="box-line"></view>
- <view class="phone-box">
- <view class="box-title u-m-b-20">预留电话</view>
- <view class="box-content u-flex" style="width: 340rpx;">
- <u-input placeholder="请输入预留电话" placeholderStyle="font-size:24rpx" border
- height="40" :focus="getFocus" v-model="selfPhone" type="number"></u-input>
- </view>
- </view>
- </view>
- <view class="express-bottom" @tap="checkProtocol">
- <u-checkbox active-color="#f0c785" :value="isProtocol">
- <view class="protocol">
- 同意并接受
- <text class="protocol-text"
- @tap.stop="jump('/pages/public/richtext', { id: initStore.selfetch_protocol })">《到店自提服务协议》</text>
- </view>
- </u-checkbox>
- </view>
- </view>
- </view>
- <!-- 商家配送 -->
- <view class="express-address" v-if="expressTypeCur == 'store' && addressId">
- <view class="express-top u-flex u-row-between"
- @tap="jump('/pages/user/address/list', { from: 'order' })">
- <view class="">
- <text class="tag" v-if="addressData.is_default == 1">默认</text>
- <text
- class="address">{{ addressData.province_name }}{{ addressData.city_name }}{{ addressData.area_name }}{{ addressData.address }}</text>
- <text class="address-guide u-iconfont uicon-arrow-right" style="color: #999;"></text>
- </view>
- <view class="address-location u-flex-col u-col-center">
- <image class="location-img" :src="$IMG_URL + '/imgs/order/e2.png'" mode=""></image>
- <text class="location-text">商家配送</text>
- </view>
- </view>
- <view class="express-content u-flex">
- <view class="time-box">
- <view class="box-title u-m-b-20">配送时间</view>
- <view class="box-content u-flex" @tap="checkExpressTime('store')">
- <text
- class="box-text">{{ checkTime['day'][checkDayCur].title }}{{ checkTime['time'][checkTimeCur] }}</text>
- <text class="u-iconfont uicon-arrow-right" style="color: #999"></text>
- </view>
- </view>
- <view class="box-line"></view>
- <view class="phone-box">
- <view class="box-title u-m-b-20">预留电话</view>
- <view class="box-content u-flex">
- <view class="box-content u-flex" style="width: 340rpx;">
- <u-input placeholder="请输入预留电话" placeholderStyle="font-size:24rpx" border
- height="40" :focus="getFocus" v-model="selfPhone" type="number"></u-input>
- </view>
- </view>
- </view>
- </view>
- </view>
- <!-- 自动发货 -->
- <view class="express-address" v-if="expressTypeCur == 'autosend'">
- <view class="express-top u-flex u-row-between">
- <text class="dispatch-notice">订单支付完成后,请在订单详情页查看发货信息</text>
- <view class="address-location u-flex-col u-col-center">
- <image class="location-img" :src="$IMG_URL + '/imgs/order/e3.png'" mode=""></image>
- <text class="location-text">自动发货</text>
- </view>
- </view>
- </view>
- </view>
- <view class="express-type__bottom u-flex u-row-between u-p-b-20"
- v-show="expressTypeCur !== 'selfetch' || (expressTypeCur == 'selfetch' && lat)">
- <button class="u-reset-button cancel-btn" @tap="hideExpressType">取消</button>
- <button class="u-reset-button save-btn" @tap="saveExpressType">确定</button>
- </view>
- </view>
- </u-popup>
- <!-- 配送时间弹窗 -->
- <u-popup v-model="showCheckTime" mode="bottom" safe-area-inset-bottom :closeable="true"
- close-icon-pos="top-right" border-radius="20">
- <view class="checkTime-box page_box">
- <view class="checkTime-head">选择{{ checkType }}时间</view>
- <view class="checkTime-content content_box u-flex">
- <view class="checkTime-content__left">
- <view class="left-item u-flex u-row-center u-col-center" @tap="check('day', index)"
- :class="{ 'item--active': checkDayCur == index }" v-for="(day, index) in checkTime.day"
- :key="day.value">
- {{ day.title }}
- </view>
- </view>
- <scroll-view class="checkTime-content__right scroll-box" :scroll-into-view="'c' + checkTimeId"
- scroll-y scroll-with-animation>
- <view class="right-item" :id="'c' + time.split(':')[0]" @tap="check('time', index)"
- :class="{ 'item--active': checkTimeCur == index }" v-for="(time, index) in checkTime.time"
- :key="time">
- {{ time }}
- </view>
- </scroll-view>
- </view>
- <view class=" checkTime-foot u-flex u-row-center u-col-center"><button class="u-reset-button save-btn"
- @tap="showCheckTime = false">保存并使用</button></view>
- </view>
- </u-popup>
- </view>
- </template>
- <script>
- import shSelectCoupon from './components/sh-select-coupon.vue';
- import { mapMutations, mapActions, mapState, mapGetters } from 'vuex';
- import Auth from '@/shopro/permission/index.js';
- export default {
- components: {
- shSelectCoupon
- },
- data() {
- return {
- platform: this.$platform.get(),
- totalNum: 0,
- couponList: [], //优惠券列表
- addressData: {}, //收货地址
- addressId: 0, //收货地址ID
- customStyle: {
- //自定义按钮样式
- width: '210rpx',
- lineHeight: '70rpx',
- background: 'linear-gradient(90deg, rgba(233, 180, 97, 1), rgba(238, 204, 137, 1))',
- boxShadow: ' 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22)',
- borderRadius: '100rpx',
- fontSize: '28rpx',
- border: 'none',
- color: '#fff',
- margin: '0'
- },
- isDisabled: false, //提交
- showCheckTime: false, //配送时间弹窗。
- checkTime: {}, //配送时间数据
- showExpressType: false, //配送方式弹窗
- expressTypeMap: {
- express: '物流快递',
- selfetch: '到店/自提',
- store: '商家配送',
- autosend: '自动发货'
- },
- expressType: [
- //配送方式
- {
- id: 'e1',
- title: '物流快递',
- value: 'express'
- },
- {
- id: 'e2',
- title: '到店/自提',
- value: 'selfetch'
- },
- {
- id: 'e3',
- title: '商家配送',
- value: 'store'
- },
- {
- id: 'e4',
- title: '自动发货',
- value: 'autosend'
- }
- ],
- storeList: [], //门店列表
- storeInfo: {
- id: 0,
- name: '',
- dispatch_text: ''
- }, //自提点商家信息
- from: '',
- orderType: '',
- grouponBuyType: 'alone',
- grouponId: 0,
- goodsList: [], //传递过来的参数
- perGoodsList: {}, //确认单订单商品
- currentGoodsId: 0, //当前商品id.
- currentSkuId: 0, //商品的规格ID
- remark: '',
- orderPre: {},
- couponId: 0,
- couponPrice: '选择优惠券',
- expressTypeCur: '',
- inExpressType: [], //当前商品支持的配送方式。
- isProtocol: true, //自提协议。
- selfPhone: '', //编辑手机号
- getFocus: false, //获取焦点。
- checkType: '自提',
- checkTimeCur: 0, //默认选中时间。
- checkTimeId: 'c1', //锚点用
- checkDayCur: 0, //默认日期
- lat: 0, //地理位置
- lng: 0,
- showInvoice: false, //申请发票
- invoiceType: 'person',
- selectedInvoice: '不开具发票',
- invoiceForm: {
- model: {
- header_name: '',
- mobile: '',
- tax_no: '',
- type: 'person'
- },
- rules: {
- mobile: [{
- required: true,
- message: '请输入手机号',
- trigger: ['change', 'blur']
- },
- {
- validator: (rule, value, callback) => {
- return this.$u.test.mobile(value);
- },
- message: '手机号码不正确',
- trigger: ['change', 'blur']
- }
- ],
- header_name: [{
- required: true,
- message: '请填写名称',
- trigger: ['change', 'blur']
- }]
- }
- }
- };
- },
- computed: {
- ...mapGetters(['initStore']),
- expressClass() {
- let cl = 'head-nav--active';
- const { expressType, expressTypeCur } = this;
- if (expressTypeCur === 0) {
- cl = 'head-nav__left--active';
- }
- if (expressTypeCur === expressType.length - 1) {
- cl = 'head-nav__right--active';
- }
- return cl;
- },
- // 是否可以使用优惠券
- hasCoupons() {
- if (this.couponList.length && !this.orderPre.activity_type) {
- return true;
- }
- return Boolean(
- this.couponList.length &&
- this.orderPre.activity_type &&
- this.orderPre.activity_type.indexOf('groupon') === -1 &&
- this.orderPre.activity_type.indexOf('seckill') === -1 &&
- this.orderType !== 'score'
- );
- }
- },
- onShow() {
- // 监听选择自提点
- uni.$once('SELECT_STORE', res => {
- this.storeInfo = JSON.parse(res.storeInfo);
- });
- // 监听地址
- uni.$on('SELECT_ADDRESS', res => {
- if (res.addressData) {
- this.addressData = JSON.parse(res.addressData);
- this.addressId = this.addressData.id;
- } else {
- this.addressId = 0;
- }
- this.getPre();
- res.addressData && uni.$off('SELECT_ADDRESS');
- });
- },
- async onLoad() {
- this.goodsList = this.$Route.query.goodsList;
- this.from = this.$Route.query.from;
- this.orderType = this.$Route.query.orderType;
- this.grouponBuyType = this.$Route.query.grouponBuyType;
- this.grouponId = this.$Route.query.grouponId;
- await this.init();
- },
- methods: {
- ...mapActions(['getCartList']),
- // 切换发票类型
- changeInvoiceType(type) {
- this.invoiceType = type;
- this.invoiceForm.model.type = type;
- },
- // 点击开发票
- onInvoice() {
- this.showInvoice = !this.showInvoice;
- this.$nextTick(() => {
- if (this.showInvoice) {
- this.invoiceForm.model.type = 'person';
- this.$refs.invoiceRef.setRules(this.invoiceForm.rules);
- }
- });
- },
- // 发票确认取消
- cancelInvoice() {
- this.selectedInvoice = '不开具发票';
- Object.keys(this.invoiceForm.model).map(key => (this.invoiceForm.model[key] = ''));
- this.showInvoice = false;
- },
- saveInvoice() {
- this.$refs.invoiceRef.validate(valid => {
- if (valid) {
- if (this.invoiceType === 'company' && !this.invoiceForm.model.tax_no) {
- this.$u.toast('请输入纳税人识别号');
- }
- this.selectedInvoice = this.invoiceForm.model.header_name;
- this.showInvoice = false;
- }
- });
- },
- // 初始化
- init() {
- uni.showLoading({
- title: '加载中...',
- mask: true
- });
- return Promise.all([this.getDefaultAddress(), this.initDate(), this.getCoupons()]).then(() => {
- uni.hideLoading();
- });
- },
- jump(path, parmas) {
- this.$Router.push({
- path: path,
- query: parmas
- });
- },
- // 格式化选择时间
- initDate() {
- let week = {
- 0: '周日',
- 1: '周一',
- 2: '周二',
- 3: '周三',
- 4: '周四',
- 5: '周五',
- 6: '周六'
- };
- let now = new Date().getTime();
- let today = this.$u.timeFormat(now);
- let tomorrow = this.$u.timeFormat(now + 86400000);
- let aftertomorrow = this.$u.timeFormat(now + 172800000);
- let week1 = week[new Date().getDay()];
- let week2 = week[new Date(now + 86400000).getDay()];
- let week3 = week[new Date(now + 172800000).getDay()];
- let obj = {
- day: [{
- title: '今天(' + week1 + ')',
- value: today
- },
- {
- title: '明天(' + week2 + ')',
- value: tomorrow
- },
- {
- title: '后天(' + week3 + ')',
- value: aftertomorrow
- }
- ],
- time: ['08:00', '09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00',
- '18:00', '19:00'
- ]
- };
- this.checkTime = obj;
- },
- // 格式日期
- check(type, index) {
- if (type == 'time') {
- this.checkTimeCur = index;
- this.checkTimeId = this.checkTime['time'][index].split(':')[[0]];
- }
- if (type == 'day') {
- this.checkDayCur = index;
- }
- },
- // 获取当前商品配送方式
- getCurGoodsExpress(goods) {
- for (let item of this.goodsList) {
- if (item.goods_id == goods.goods_id && goods.sku_price_id == item.sku_price_id) {
- return this.expressTypeMap[item.dispatch_type];
- }
- }
- },
- // 获取位置
- async getLocation() {
- let authState = await new Auth('userLocation').check();
- // #ifdef MP || APP-VUE
- authState &&
- uni.getLocation({
- type: 'gcj02',
- success: res => {
- this.lng = res.longitude;
- this.lat = res.latitude;
- this.getStoreAddress();
- },
- fail: err => {
- console.log('确认订单自提位置:', err);
- }
- });
- // #endif
- // #ifdef H5
- uni.getLocation({
- type: 'gcj02',
- success: res => {
- this.lng = res.longitude;
- this.lat = res.latitude;
- this.getStoreAddress();
- }
- });
- // #endif
- },
- // 获取商品支持的自提点。
- getStoreAddress() {
- let that = this;
- that.$http('goods.storeAddress', {
- id: that.currentGoodsId,
- latitude: that.lat,
- longitude: that.lng
- }).then(res => {
- if (res.code == 1) {
- that.storeInfo = res.data.data[0];
- that.storeList = res.data.data;
- }
- });
- },
- // 订单信息
- getPre() {
- let that = this;
- that.$http('order.pre', {
- goods_list: that.goodsList,
- from: that.from,
- address_id: that.addressId,
- coupons_id: that.couponId,
- order_type: that.orderType,
- buy_type: that.grouponBuyType,
- groupon_id: that.grouponId
- }).then(res => {
- if (res.data) {
- that.orderPre = res.data;
- that.perGoodsList = res.data.new_goods_list;
- that.totalNum = 0;
- that.perGoodsList.map(item => {
- item.selType = item.dispatch_type;
- that.totalNum += item.goods_num;
- that.goodsList.forEach(goods => {
- if (item.goods_id == goods.goods_id && item.sku_price_id == goods
- .sku_price_id) {
- goods.dispatch_type = item.dispatch_type;
- if (item.store_id) {
- goods.store_id = item.store_id;
- }
- }
- });
- });
- }
- });
- },
- // 提交订单
- subOrder() {
- let that = this;
- that.isDisabled = true;
- that.$http(
- 'order.createOrder', {
- goods_list: that.goodsList,
- from: that.from,
- address_id: that.addressId,
- coupons_id: that.couponId,
- remark: that.remark,
- order_type: that.orderType,
- buy_type: that.grouponBuyType,
- groupon_id: that.grouponId,
- invoice: Number(that.orderPre.invoice_amount) && that.selectedInvoice !== '不开具发票' ? { ...that
- .invoiceForm.model, amount: that.orderPre.invoice_amount } : {}
- },
- '提交中...'
- ).then(res => {
- that.isDisabled = false;
- if (res.code === 1) {
- that.getCartList();
- that.$Router.replace({
- path: res.data.status > 0 ? `/pages/order/payment/result` :
- `/pages/order/payment/method`,
- query: {
- orderId: res.data.id,
- payState: res.data.status > 0 ? 'success' : 'paying',
- orderType: 'goods'
- }
- });
- }
- });
- },
- // 初始地址
- getDefaultAddress() {
- this.$http('address.defaults', {}, '', false).then(res => {
- if (res.code === 1 && res.data) {
- this.addressData = res.data;
- this.addressId = res.data.id;
- }
- this.getPre();
- });
- },
- // 可用优惠券
- getCoupons() {
- let that = this;
- that.$http('order.coupons', {
- goods_list: that.goodsList,
- from: that.from,
- address_id: that.addressId,
- coupons_id: that.couponId,
- order_type: that.orderType
- }).then(res => {
- if (res.code === 1) {
- that.couponList = res.data;
- }
- });
- },
- // 选择优惠券
- selectCoupon(index) {
- this.couponId = index >= 0 ? this.couponList[index].user_coupons_id : 0;
- this.getPre();
- },
- // 显示配送方式弹窗
- async onSelExpressType(goods) {
- this.showExpressType = true;
- this.inExpressType = goods.detail.dispatch_type_arr;
- this.currentGoodsId = goods.goods_id;
- this.currentSkuId = goods.sku_price_id;
- this.goodsList.forEach(item => {
- if (item.goods_id == this.currentGoodsId && this.currentSkuId == item.sku_price_id) {
- this.expressTypeCur = item.dispatch_type;
- this.selfPhone = item.dispatch_phone ? item.dispatch_phone : this.addressData && this
- .addressData.phone;
- this.checkDayCur = item.checkDayCur ? item.checkDayCur : 0;
- this.checkTimeCur = item.checkTimeCur ? item.checkTimeCur : 0;
- if (this.expressTypeCur == 'selfetch') {
- !this.lat && this.getLocation();
- this.storeList.forEach(store => {
- if (item.store_id == store.id) {
- this.storeInfo = store;
- }
- });
- this.selfPhone = item.dispatch_phone ? item.dispatch_phone : this.addressData &&
- this.addressData.phone;
- }
- }
- });
- },
- // 关闭配送方式弹窗
- hideExpressType() {
- this.showExpressType = false;
- this.changeGoodsList();
- },
- // 保存配送方式
- saveExpressType() {
- if (this.expressTypeCur === 'selfetch') {
- if (!this.storeInfo) {
- this.$u.toast('暂无自提点,请选择其他配送方式');
- return false;
- }
- if (!this.isProtocol) {
- this.$u.toast('请先勾选门店协议');
- return false;
- }
- }
- this.showExpressType = false;
- this.changeGoodsList();
- this.getPre();
- },
- // 更改提交数据
- changeGoodsList() {
- this.goodsList.forEach(goods => {
- if (goods.goods_id == this.currentGoodsId && this.currentSkuId == goods.sku_price_id) {
- goods.dispatch_type = this.expressTypeCur;
- goods.dispatch_phone = this.selfPhone;
- goods.dispatch_date = this.checkTime['day'][this.checkDayCur].value + ' ' + this.checkTime[
- 'time'][this.checkTimeCur] + ':00';
- if (this.expressTypeCur == 'selfetch') {
- if (!this.storeInfo) {
- this.$u.toast('暂无自提点,请选择其他配送方式');
- return false;
- }
- goods.store_id = this.storeInfo.id;
- }
- goods.checkDayCur = this.checkDayCur;
- goods.checkTimeCur = this.checkTimeCur;
- }
- });
- },
- // 选择快递方式
- changeExpressType(cur) {
- this.expressTypeCur = cur;
- this.getFocus = false;
- cur === 'selfetch' && !this.lat && this.getLocation();
- },
- // 是否同意协议
- checkProtocol() {
- this.isProtocol = !this.isProtocol;
- },
- // 选择配送时间
- checkExpressTime(type) {
- switch (type) {
- case 'store':
- this.checkType = '配送';
- break;
- case 'selfetch':
- this.checkType = '自提';
- break;
- default:
- this.checkType = '自提';
- }
- this.showCheckTime = !this.showCheckTime;
- }
- }
- };
- </script>
- <style lang="scss" scoped>
- // 发票弹窗
- .invoice-modal {
- width: 750rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0 0;
- height: 700rpx;
- overflow: visible;
-
- .invoice-foot {
- .price-title {
- font-size: 28rpx;
- font-weight: 400;
- color: #333333;
- }
- .price-num {
- font-size: 28rpx;
- font-weight: 500;
- color: #eab662;
- }
- .cancel-btn {
- width: 335rpx;
- line-height: 74rpx;
- background: rgba(238, 238, 238, 1);
- border-radius: 37rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(51, 51, 51, 1);
- }
- .save-btn {
- width: 335rpx;
- line-height: 74rpx;
- background: linear-gradient(90deg, rgba(233, 180, 97, 1), rgba(238, 204, 137, 1));
- border-radius: 37rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(255, 255, 255, 1);
- }
- }
- .invoice-head {
- width: 100%;
- height: 80rpx;
- background: #f8e3bd;
- border-radius: 20rpx 20rpx 0 0;
- .head-nav {
- width: (750rpx/2);
- position: relative;
- height: 100%;
- }
- .nav-title {
- font-size: 24rpx;
- font-weight: 500;
- color: #666;
- position: relative;
- z-index: 6;
- }
- .nav-title--active {
- color: #a8700d;
- font-size: 26rpx;
- }
- .head-nav--active {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- bottom: 0;
- background: #fff;
- width: 100%;
- height: 80rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0px 0px;
- &::after {
- content: '';
- display: block;
- width: 40rpx;
- height: 80rpx;
- position: absolute;
- transform: skewX(20deg);
- background: #fff;
- border-top-right-radius: 20rpx;
- top: 0;
- right: -15rpx;
- }
- &::before {
- content: '';
- display: block;
- width: 40rpx;
- height: 80rpx;
- position: absolute;
- transform: skewX(-20deg);
- background: #fff;
- border-top-left-radius: 20rpx;
- top: 0;
- left: -15rpx;
- }
- }
- }
- }
- // 收货地址栏
- .head_box {
- background-color: #fff;
- }
- .add-address-box {
- min-height: 100rpx;
- background: url($IMG_URL+'/imgs/order/order_address_line.png') no-repeat;
- background-size: 100% auto;
- background-position: bottom center;
- .select-notice {
- font-weight: 400;
- color: rgba(153, 153, 153, 1);
- line-height: 40rpx;
- }
- .name,
- .phone {
- font-size: 30rpx;
- font-weight: 500;
- }
- .phone {
- margin: 0 20rpx;
- }
- .tag {
- background: rgba(233, 191, 113, 0.2);
- border-radius: 6rpx;
- padding: 0 16rpx;
- line-height: 38rpx;
- color: #a8700d;
- font-size: 22rpx;
- }
- .detail {
- .address {
- margin-top: 25rpx;
- width: 543rpx;
- font-size: 26rpx;
- font-weight: 400;
- color: rgba(153, 153, 153, 1);
- line-height: 40rpx;
- }
- }
- }
- // 备注
- .remark-box {
- margin-top: 20rpx;
- background: #fff;
- padding: 25rpx;
- .item-input {
- flex: 1;
- text-align: end;
- font-size: 28rpx;
- }
- .input-pl {
- color: #c4c4c4;
- }
- }
- // 商品卡片
- .goods-list {
- background: #fff;
- margin-top: 20rpx;
- .goods-card {
- min-height: 200rpx;
- .goods-price {
- font-size: 30rpx;
- font-weight: 500;
- width: 480rpx;
- color: #333333;
- .goods-num {
- font-size: 28rpx;
- color: #c4c4c4;
- }
- }
- .order-sku {
- font-size: 24rpx;
- font-weight: 400;
- color: rgba(153, 153, 153, 1);
- width: 440rpx;
- margin-bottom: 20rpx;
- .order-num {
- margin-right: 10rpx;
- }
- }
- }
- }
- .item-list {
- height: 100rpx;
- background: #fff;
- padding: 0 25rpx;
- .item-title {
- font-size: 28rpx;
- margin-right: 20rpx;
- .activity-title {
- font-size: 26rpx;
- color: #999;
- }
- }
- .detail {
- font-size: 28rpx;
- color: #333;
- }
- .origin-price {
- font-size: 26rpx;
- color: #666;
- text-decoration: line-through;
- }
- .price {
- font-size: 26rpx;
- color: #ff0000;
- margin-right: 40rpx;
- }
- .sel-coupon {
- font-size: 26rpx;
- color: #c4c4c4;
- margin-right: 20rpx;
- }
- }
- .logistic,
- .price-box,
- .remark-box,
- .score,
- .coupon {
- border-top: 1rpx solid rgba(#dfdfdf, 0.5);
- }
- .border-top {
- border-top: 1rpx solid rgba(#dfdfdf, 0.5);
- }
- .foot-box-wrap {
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
- padding-bottom: calc(env(safe-area-inset-bottom) / 2);
- position: relative;
- width: 100%;
- z-index: 70;
- }
- .foot-box {
- position: fixed;
- display: flex;
- align-items: center;
- width: 100%;
- height: calc(100rpx + env(safe-area-inset-bottom) / 2);
- border-top: 1rpx solid #eeeeee;
- background-color: #fff;
- z-index: 998;
- bottom: 0;
- padding-bottom: calc(env(safe-area-inset-bottom) / 2);
- padding: 0 30rpx;
-
- .btn-hover {
- color: #fff;
- }
- .num {
- font-size: 26rpx;
- color: #999;
- }
- .all-money {
- margin: 0 60rpx 0 20rpx;
- .price {
- color: #ff0000;
- }
- }
- .sub-btn {
- width: 210rpx;
- line-height: 70rpx;
- background: linear-gradient(90deg, rgba(233, 180, 97, 1), rgba(238, 204, 137, 1));
- box-shadow: 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22);
- border-radius: 50rpx;
- font-size: 28rpx;
- color: #fff;
- }
- }
- // 弹窗之配送方式
- // 配送方式
- .express-type {
- width: 750rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0 0;
- height: 700rpx;
- overflow: visible;
-
- .express-type__head {
- width: 100%;
- height: 80rpx;
- background: #f8e3bd;
- border-radius: 20rpx 20rpx 0 0;
- &-nav {
- width: (750rpx/4);
- position: relative;
- height: 100%;
- }
- .head-nav--active {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- bottom: 0;
- background: #fff;
- width: 100%;
- height: 80rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0px 0px;
- &::after {
- content: '';
- display: block;
- width: 40rpx;
- height: 80rpx;
- position: absolute;
- transform: skewX(20deg);
- background: #fff;
- border-top-right-radius: 20rpx;
- top: 0;
- right: -15rpx;
- }
- &::before {
- content: '';
- display: block;
- width: 40rpx;
- height: 80rpx;
- position: absolute;
- transform: skewX(-20deg);
- background: #fff;
- border-top-left-radius: 20rpx;
- top: 0;
- left: -15rpx;
- }
- }
- .head-nav__left--active {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- bottom: 0;
- background: #fff;
- width: 100%;
- height: 74rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0px 0px;
- &::after {
- content: '';
- display: block;
- width: 40rpx;
- height: 74rpx;
- position: absolute;
- transform: skewX(20deg);
- background: #fff;
- border-top-right-radius: 20rpx;
- top: 0;
- right: -15rpx;
- }
- }
- .head-nav__right--active {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- bottom: 0;
- background: #fff;
- width: 100%;
- height: 74rpx;
- background-color: #fff;
- border-radius: 20rpx 20rpx 0px 0px;
- &::before {
- content: '';
- display: block;
- width: 40rpx;
- height: 74rpx;
- position: absolute;
- transform: skewX(-20deg);
- background: #fff;
- border-top-left-radius: 20rpx;
- top: 0;
- left: -15rpx;
- }
- }
- .head-nav__title {
- font-size: 24rpx;
- font-weight: 500;
- color: #666;
- position: relative;
- z-index: 6;
- }
- .head-nav__title--active {
- color: #a8700d;
- font-size: 26rpx;
- }
- }
- .express-type__content {
- .empty-address {
- height: 120rpx;
- padding: 0 25rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(153, 153, 153, 1);
- }
- // 无定位
- .location-box {
- height: 500rpx;
- justify-content: center;
- .nolocation-img {
- width: 74rpx;
- height: 90rpx;
- margin-bottom: 40rpx;
- }
- .location-title {
- font-size: 35rpx;
- font-weight: bold;
- color: rgba(70, 53, 27, 1);
- margin-bottom: 20rpx;
- }
- .location-tip {
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(153, 153, 153, 1);
- margin-bottom: 40rpx;
- }
- .open-location {
- width: 492rpx;
- line-height: 70rpx;
- background: linear-gradient(90deg, rgba(233, 180, 97, 1), rgba(238, 204, 137, 1));
- box-shadow: 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22);
- border-radius: 35rpx;
- font-size: 28rpx;
- font-weight: 500;
- color: rgba(255, 255, 255, 1);
- }
- }
- // 快递
- .express-address {
- position: relative;
- padding: 30rpx 25rpx;
- background: url($IMG_URL+'/imgs/order/address_bg.png') no-repeat;
- background-size: 430rpx 300rpx;
- background-position: top right;
- .express-top {
- margin-bottom: 20rpx;
- width: 550rpx;
- text-align: left;
- .address {
- font-size: 28rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- line-height: 40rpx;
- text-align: left;
- }
- .dispatch-notice {
- font-size: 28rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- line-height: 40rpx;
- text-align: left;
- }
- .address-location {
- position: absolute;
- right: 60rpx;
- top: 30rpx;
- .location-img {
- width: 80rpx;
- height: 90rpx;
- }
- .location-text {
- font-size: 18rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- }
- }
- .tag {
- background: rgba(233, 191, 113, 0.2);
- border-radius: 6rpx;
- padding: 0 16rpx;
- line-height: 38rpx;
- color: #a8700d;
- font-size: 22rpx;
- margin-right: 20rpx;
- }
- .tag1 {
- background: rgba(53, 190, 105, 0.2);
- border-radius: 6rpx;
- padding: 0 16rpx;
- line-height: 38rpx;
- color: #1bbc50;
- font-size: 22rpx;
- margin-right: 20rpx;
- }
- .address-guide {
- position: absolute;
- right: 25rpx;
- top: 40rpx;
- color: #999999;
- }
- }
- .express-content {
- margin-bottom: 20rpx;
- .box-line {
- width: 1rpx;
- height: 61rpx;
- border-left: 1rpx solid rgba(238, 238, 238, 1);
- margin: 0 40rpx;
- }
- .phone-box1 {
- .name,
- .phone {
- font-size: 26rpx;
- font-weight: 400;
- color: rgba(102, 102, 102, 1);
- }
- .phone {
- margin-left: 20rpx;
- }
- }
- .time-box,
- .phone-box {
- text-align: left;
- min-height: 120rpx;
- .box-title {
- font-size: 24rpx;
- font-weight: 400;
- color: #666;
- padding-bottom: 10rpx;
- }
- .box-text {
- font-size: 24rpx;
- font-weight: 500;
- color: #333;
- }
- .edit-phone {
- width: 160rpx;
- font-size: 24rpx;
- font-weight: 500;
- color: #333;
- }
- .box-icon {
- font-size: 28rpx;
- color: #999;
- display: inline-block;
- width: 40rpx;
- text-align: center;
- line-height: 40rpx;
- }
- }
- }
- .express-bottom {
- .protocol {
- font-size: 24rpx;
- font-weight: 400;
- color: rgba(102, 102, 102, 1);
- .protocol-text {
- color: #6487a4;
- }
- }
- }
- }
- }
- .express-type__bottom {
- height: 90rpx;
- padding: 0 30rpx;
- .cancel-btn {
- width: 335rpx;
- line-height: 74rpx;
- background: rgba(238, 238, 238, 1);
- border-radius: 37rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(51, 51, 51, 1);
- }
- .save-btn {
- width: 335rpx;
- line-height: 74rpx;
- background: linear-gradient(90deg, rgba(233, 180, 97, 1), rgba(238, 204, 137, 1));
- border-radius: 37rpx;
- font-size: 28rpx;
- font-weight: 400;
- color: rgba(255, 255, 255, 1);
- }
- }
- }
- // 选择配送给时间
- .checkTime-box {
- background: rgba(255, 255, 255, 1);
- border-radius: 20rpx 20rpx 0px 0px;
- height: 720rpx;
- text-align: center;
- .checkTime-head {
- font-size: 32rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- line-height: 100rpx;
- position: relative;
- }
- .checkTime-foot {
- height: 100rpx;
- .save-btn {
- width: 690rpx;
- line-height: 80rpx;
- background: linear-gradient(90deg, rgba(240, 199, 133, 1), rgba(246, 214, 157, 1));
- border-radius: 40rpx;
- font-size: 30rpx;
- font-weight: 500;
- color: rgba(255, 255, 255, 1);
- }
- }
- .checkTime-content {
- .checkTime-content__left {
- height: 100%;
- width: 190rpx;
- background: #f5f5f5;
- .left-item {
- font-size: 26rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- height: 100rpx;
- width: 100%;
- }
- }
- .checkTime-content__right {
- flex: 1;
- height: 100%;
- overflow-y: auto;
- .right-item {
- font-size: 26rpx;
- font-weight: 500;
- color: rgba(51, 51, 51, 1);
- width: 100%;
- text-align: center;
- border-bottom: 1rpx solid rgba(#dfdfdf, 0.6);
- margin: 0 30rpx;
- line-height: 100rpx;
- }
- }
- .item--active {
- font-size: 26rpx;
- font-weight: 500;
- color: rgba(168, 112, 13, 1) !important;
- background-color: #fff;
- }
- }
- }
- </style>
|