|
@@ -0,0 +1,2559 @@
|
|
|
+<template>
|
|
|
+ <view :style="colorStyle">
|
|
|
+ <view class='order-submission'>
|
|
|
+ <view class="headerCon" >
|
|
|
+ <view class="add-title acea-row row-between-wrapper">
|
|
|
+ <view class="acea-row row-middle">
|
|
|
+ <view class="icon ">
|
|
|
+ 门店选择</view>
|
|
|
+ <view class="text add-text line1">线上下单</view>
|
|
|
+ <view class="text add-text line1" v-if="deliveryType==3">{{system_store.name || '请选择门店'}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="text" @tap='onDelivery'>
|
|
|
+ 点击切换 <text class='iconfont icon-jiantou'></text></view>
|
|
|
+ </view>
|
|
|
+ <view class="address acea-row row-between-wrapper">
|
|
|
+ <view class="addressCon" v-if="storeList.length>0">
|
|
|
+ <view class='name acea-row row-middle'>
|
|
|
+ <view class="nameCon line1 on">{{system_store.name || ''}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="line1">
|
|
|
+ {{system_store.address || ''}}{{system_store.detailed_address || ''}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='addressCon' v-else>
|
|
|
+ <view class='setaddress'>暂无门店信息</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon acea-row row-middle" v-if="storeList.length>0">
|
|
|
+ <view class="iconfont icon-dianhua" @click.stop="call(system_store.phone)"></view>
|
|
|
+ <view class="iconfont icon-dingwei2" @click.stop="showMaoLocation(system_store)"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="allAddress" v-if="product_type == 0">
|
|
|
+ <!-- #ifdef MP -->
|
|
|
+ <!-- 桌码信息 -->
|
|
|
+ <view v-if="tableId" class="table-header">
|
|
|
+ <view class="top">
|
|
|
+ <view class="name">{{ codeData.storeName.storeName }}</view>
|
|
|
+ <view class="number"><text
|
|
|
+ class="light">{{ codeData.category.name }}{{ codeData.table_number }}</text>号桌</view>
|
|
|
+ </view>
|
|
|
+ <view>{{ codeData.serial_number }}</view>
|
|
|
+ </view>
|
|
|
+ <!-- #endif -->
|
|
|
+ <!-- 地址 -->
|
|
|
+ <view v-if="!tableId" class='headerCon'>
|
|
|
+ <view class="add-title acea-row row-between-wrapper">
|
|
|
+ <view class="acea-row row-middle">
|
|
|
+ <view class="icon" :class="deliveryType==1?'':deliveryType==3?'orange':'red'">
|
|
|
+ {{deliveryType==1?'商城配送':deliveryType==2?'门店自提':'门店配送'}}
|
|
|
+ </view>
|
|
|
+ <view class="text add-text line1" v-if="deliveryType==1">由平台为您提供配送服务</view>
|
|
|
+ <view class="text add-text line1" v-if="deliveryType==2">线上下单,到店自提</view>
|
|
|
+ <view class="text add-text line1" v-if="deliveryType==3">{{system_store.name || '请选择门店'}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="text" @tap='onDelivery'
|
|
|
+ v-if="(isDisplay.length >1 || (isDisplay.length==1 && deliveryType !=1)) && store_func_status && goodsType != 9">
|
|
|
+ 点击切换 <text class='iconfont icon-jiantou'></text></view>
|
|
|
+ </view>
|
|
|
+ <view class="address acea-row row-between-wrapper" @tap="onAddress(addressInfo.real_name)"
|
|
|
+ v-if="deliveryType==1 || deliveryType==3">
|
|
|
+ <view class="addressCon" v-if="addressInfo.real_name">
|
|
|
+ <view class='name acea-row row-middle'>
|
|
|
+ <view class="nameCon line1">{{addressInfo.real_name}}</view><text
|
|
|
+ class='phone'>{{addressInfo.phone}}</text>
|
|
|
+ </view>
|
|
|
+ <view class="line1">
|
|
|
+ <text class='default font-num'
|
|
|
+ v-if="addressInfo.is_default">[默认]</text>{{addressInfo.province}}{{addressInfo.city}}{{addressInfo.district}}{{addressInfo.street}}{{addressInfo.detail}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='addressCon' v-else>
|
|
|
+ <view class='setaddress'>设置收货地址</view>
|
|
|
+ </view>
|
|
|
+ <view class="iconfont icon-s-bianji"></view>
|
|
|
+ </view>
|
|
|
+ <view class="address acea-row row-between-wrapper" v-else>
|
|
|
+ <view class="addressCon" v-if="storeList.length>0">
|
|
|
+ <view class='name acea-row row-middle'>
|
|
|
+ <view class="nameCon line1 on">{{system_store.name || ''}}</view>
|
|
|
+ </view>
|
|
|
+ <view class="line1">
|
|
|
+ {{system_store.address || ''}}{{system_store.detailed_address || ''}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='addressCon' v-else>
|
|
|
+ <view class='setaddress'>暂无门店信息</view>
|
|
|
+ </view>
|
|
|
+ <view class="icon acea-row row-middle" v-if="storeList.length>0">
|
|
|
+ <view class="iconfont icon-dianhua" @click.stop="call(system_store.phone)"></view>
|
|
|
+ <view class="iconfont icon-dingwei2" @click.stop="showMaoLocation(system_store)"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view v-if="!tableId" class='line'>
|
|
|
+ <image src='/static/images/line.jpg'></image>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="wrapper">
|
|
|
+ <group-goods-list v-if="collage_id" :goods-list="goodsList"></group-goods-list>
|
|
|
+ <orderGoods v-else :cartInfo="cartInfo" :giveData="giveData" :shippingType="shippingType"
|
|
|
+ :product_type='product_type' :giveCartInfo="giveCartInfo"></orderGoods>
|
|
|
+ </view>
|
|
|
+ <view class='wrapper'>
|
|
|
+ <view class="item acea-row row-between-wrapper" >
|
|
|
+ <view>预约时间</view>
|
|
|
+ <view class='discount' @click="openDatetimePicker">
|
|
|
+ {{yytime || '请选择预约时间'}}
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ <!-- <view v-if="shippingType == 1">
|
|
|
+ <view class="item acea-row row-between-wrapper">
|
|
|
+ <view>联系人</view>
|
|
|
+ <view class="discount">
|
|
|
+ <input v-model="contacts" type="text" placeholder="请填写您的联系姓名"
|
|
|
+ placeholder-class="placeholder"></input>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="item acea-row row-between-wrapper">
|
|
|
+ <view>联系电话</view>
|
|
|
+ <view class="discount">
|
|
|
+ <input type="number" maxlength="11" v-model="contactsTel" placeholder="请填写您的联系电话"
|
|
|
+ placeholder-class="placeholder"></input>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view> -->
|
|
|
+ <!-- <view class='item' v-if="textareaStatus">
|
|
|
+ <view>备注信息</view>
|
|
|
+ <textarea placeholder-class='placeholder' placeholder="请添加备注(150字以内)" :always-embed="true"
|
|
|
+ :adjust-position="true" cursor-spacing="30" v-if="!coupon.coupon" @input='bindHideKeyboard'
|
|
|
+ :value="mark" :maxlength="150" name="mark">
|
|
|
+ </textarea>
|
|
|
+ </view> -->
|
|
|
+ </view>
|
|
|
+ <view class='wrapper' v-if="confirm.length">
|
|
|
+ <view class='item acea-row row-between-wrapper'
|
|
|
+ :class="{on:(item.name=='radios' || item.name=='checkboxs'),on2:item.name == 'dateranges',on3:item.name == 'citys'}"
|
|
|
+ v-for="(item,index) in confirm" :key="index">
|
|
|
+ <view class="name">
|
|
|
+ <span class="asterisk" v-if="item.titleShow.val">*</span>
|
|
|
+ {{ item.titleConfig.value }}
|
|
|
+ </view>
|
|
|
+ <!-- radio -->
|
|
|
+ <view v-if="item.name=='radios'" class="discount">
|
|
|
+ <radio-group @change="radioChange(e, index, item)" class="acea-row row-middle row-right">
|
|
|
+ <label class="radio" v-for="(j,jindex) in item.wordsConfig.list" :key="jindex">
|
|
|
+ <view class="acea-row row-middle">
|
|
|
+ <!-- #ifndef MP -->
|
|
|
+ <radio :value="jindex.toString()" :checked='j.show' />
|
|
|
+ <!-- #endif -->
|
|
|
+ <!-- #ifdef MP -->
|
|
|
+ <radio :value="jindex" :checked='j.show' />
|
|
|
+ <!-- #endif -->
|
|
|
+ <view>{{j.val}}</view>
|
|
|
+ </view>
|
|
|
+ </label>
|
|
|
+ </radio-group>
|
|
|
+ </view>
|
|
|
+ <!-- checkbox -->
|
|
|
+ <view v-if="item.name=='checkboxs'" class="discount">
|
|
|
+ <checkbox-group @change="checkboxChange($event, index, item)"
|
|
|
+ class="acea-row row-middle row-right">
|
|
|
+ <label class="radio" v-for="(j,jindex) in item.wordsConfig.list" :key="jindex">
|
|
|
+ <view class="acea-row row-middle">
|
|
|
+ <!-- #ifndef MP -->
|
|
|
+ <checkbox :value="jindex.toString()" :checked="j.show"
|
|
|
+ style="transform:scale(0.9)" />
|
|
|
+ <!-- #endif -->
|
|
|
+ <!-- #ifdef MP -->
|
|
|
+ <checkbox :value="jindex" :checked="j.show" style="transform:scale(0.9)" />
|
|
|
+ <!-- #endif -->
|
|
|
+ <view>{{j.val}}</view>
|
|
|
+ </view>
|
|
|
+ </label>
|
|
|
+ </checkbox-group>
|
|
|
+ </view>
|
|
|
+ <!-- text -->
|
|
|
+ <view v-if="item.name=='texts' && item.valConfig.tabVal == 0" class="discount">
|
|
|
+ <input type="text" :placeholder="item.tipConfig.value" placeholder-class="placeholder"
|
|
|
+ v-model="item.value" />
|
|
|
+ </view>
|
|
|
+ <!-- number -->
|
|
|
+ <view v-if="item.name=='texts' && item.valConfig.tabVal == 4" class="discount">
|
|
|
+ <input type="number" :placeholder="item.tipConfig.value" placeholder-class="placeholder"
|
|
|
+ v-model="item.value" />
|
|
|
+ </view>
|
|
|
+ <!-- email -->
|
|
|
+ <view v-if="item.name=='texts' && item.valConfig.tabVal == 3" class="discount">
|
|
|
+ <input type="text" :placeholder="item.tipConfig.value" placeholder-class="placeholder"
|
|
|
+ v-model="item.value" />
|
|
|
+ </view>
|
|
|
+ <!-- data -->
|
|
|
+ <view v-if="item.name=='dates'" class="discount">
|
|
|
+ <picker mode="date" :value="item.value" @change="bindDateChange($event,index)">
|
|
|
+ <view class="acea-row row-between-wrapper">
|
|
|
+ <view v-if="item.value == ''">{{item.tipConfig.value}}</view>
|
|
|
+ <view v-else>{{item.value}}</view>
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+ </picker>
|
|
|
+ </view>
|
|
|
+ <!-- dateranges -->
|
|
|
+ <view v-if="item.name=='dateranges'" class="discount">
|
|
|
+ <uni-datetime-picker v-model="item.value" type="daterange" @maskClick="maskClick">
|
|
|
+ {{item.value.length?item.value[0]+' - '+item.value[1]:item.tipConfig.value}}
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </uni-datetime-picker>
|
|
|
+ </view>
|
|
|
+ <!-- time -->
|
|
|
+ <view v-if="item.name=='times'" class="discount">
|
|
|
+ <picker mode="time" :value="item.value" @change="bindTimeChange($event,index)"
|
|
|
+ :placeholder="item.tipConfig.value">
|
|
|
+ <view class="acea-row row-between-wrapper">
|
|
|
+ <view v-if="item.value == ''">{{item.tipConfig.value}}</view>
|
|
|
+ <view v-else>{{item.value}}</view>
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+ </picker>
|
|
|
+ </view>
|
|
|
+ <!-- timeranges -->
|
|
|
+ <view v-if="item.name=='timeranges'" class="discount acea-row row-between-wrapper"
|
|
|
+ @click="getTimeranges(index)">
|
|
|
+ <view v-if="item.value">{{item.value}}</view>
|
|
|
+ <view v-else>{{item.tipConfig.value}}</view>
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+ <!-- select -->
|
|
|
+ <view v-if="item.name=='selects'" class="discount">
|
|
|
+ <picker :value="item.value" :range="item.wordsConfig.list"
|
|
|
+ @change="bindSelectChange($event,index,item)" range-key="val">
|
|
|
+ <view class="acea-row row-between-wrapper">
|
|
|
+ <view v-if="item.value == ''">请选择</view>
|
|
|
+ <view v-else>{{item.value}}</view>
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+ </picker>
|
|
|
+ </view>
|
|
|
+ <!-- city -->
|
|
|
+ <view v-if="item.name=='citys'" class="discount" @click="changeRegion(index)">
|
|
|
+ <view class="acea-row row-middle row-right">
|
|
|
+ <view class="city" v-if="item.value == ''">{{item.tipConfig.value}}</view>
|
|
|
+ <view class="city" v-else>{{item.value}}</view>
|
|
|
+ <text class='iconfont icon-jiantou'></text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- id -->
|
|
|
+ <view v-if="item.name=='texts' && item.valConfig.tabVal == 2" class="discount">
|
|
|
+ <input type="idcard" :placeholder="item.tipConfig.value" placeholder-class="placeholder"
|
|
|
+ v-model="item.value" />
|
|
|
+ </view>
|
|
|
+ <!-- phone -->
|
|
|
+ <view v-if="item.name=='texts' && item.valConfig.tabVal == 1" class="discount">
|
|
|
+ <input type="number" :placeholder="item.tipConfig.value" placeholder-class="placeholder"
|
|
|
+ v-model="item.value" />
|
|
|
+ </view>
|
|
|
+ <!-- img -->
|
|
|
+ <view v-if="item.name=='uploadPicture'" class="confirmImg">
|
|
|
+ <view class='upload acea-row row-middle'>
|
|
|
+ <view class='pictrue' v-for="(items,indexs) in item.value" :key="indexs">
|
|
|
+ <image :src='items' mode="aspectFill"></image>
|
|
|
+ <!-- <view class='iconfont icon-guanbi1 font-num' @tap='DelPic(index,indexs)'></view> -->
|
|
|
+ <view class="close acea-row row-center-wrapper" @tap='DelPic(index,indexs)'>
|
|
|
+ <view class="iconfont icon-guanbi5"></view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='pictrue acea-row row-center-wrapper row-column' @tap='uploadpic(index)'
|
|
|
+ v-if="item.value.length < item.numConfig.val">
|
|
|
+ <text class='iconfont icon-icon25201'></text>
|
|
|
+ <view>上传图片</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='moneyList'>
|
|
|
+
|
|
|
+ <scroll-view scroll-x="true" class="zp-wrap" @scrolltolower="">
|
|
|
+ <view class="zp-item" v-for="ygitem in yg.list" @click="choosYg(ygitem)"
|
|
|
+ :class="{'choose': ygitem.id == choose_yg.id}">
|
|
|
+ <image :src="ygitem.avatar || '../../../static/images/avt.png'" mode="" class="zp-logo"></image>
|
|
|
+ <view class="zp-name">{{ygitem.name}}</view>
|
|
|
+ </view>
|
|
|
+ </scroll-view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ <view class='moneyList'>
|
|
|
+
|
|
|
+ <view class='item acea-row row-between-wrapper'>
|
|
|
+ <view>商品总价:</view>
|
|
|
+ <view class='money'>
|
|
|
+ ¥{{payInfo.total_price}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class='item acea-row row-between-wrapper' v-if="payInfo.deduction_price">
|
|
|
+ <view>优惠金额:</view>
|
|
|
+ <view class='money'>
|
|
|
+ ¥{{payInfo.deduction_price}}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="height-add"></view>
|
|
|
+ <view class='footer acea-row row-between-wrapper'>
|
|
|
+ <view>合计:
|
|
|
+ <text class='font-color'>¥{{payInfo.pay_price || 0}}</text>
|
|
|
+ </view>
|
|
|
+ <!-- <view class='settlement' style='z-index:100' @tap.stop="goPay"
|
|
|
+ v-if="(((valid_count>0&&!discount_id) || (valid_count==cartInfo.length&&discount_id)) && shippingType) || (!shippingType && addressId) || product_type != 0">
|
|
|
+ 立即结算</view>
|
|
|
+ <view class='settlement bg-color-hui' style='z-index:100' v-else>立即结算</view> -->
|
|
|
+ <view class='settlement' style='z-index:100' @tap.stop="goPay">立即结算</view>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="alipaysubmit" v-html="formContent"></view>
|
|
|
+ <view class="tipaddress" v-show="isaddress">
|
|
|
+ <view class="top"></view>
|
|
|
+ <view class="bottom">
|
|
|
+ <div class="font1">更新地址</div>
|
|
|
+ <div class="font2">当前地址功能已更新,请重新修改</div>
|
|
|
+ <div class="btn" @tap="payAddress">前往修改</div>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="mark" v-show="isaddress"></view>
|
|
|
+ <couponListWindow :coupon='coupon' @ChangCouponsClone="ChangCouponsClone" :openType='openType' :cartId='cartId'
|
|
|
+ @ChangCoupons="ChangCoupons"></couponListWindow>
|
|
|
+ <addressWindow ref="addressWindow" @changeTextareaStatus="changeTextareaStatus" :news='news' :address='address'
|
|
|
+ :pagesUrl="pagesUrl" @OnChangeAddress="OnChangeAddress" @changeClose="changeClose">
|
|
|
+ </addressWindow>
|
|
|
+ <home v-show="!invShow && navigation"></home>
|
|
|
+ <invoice-picker :inv-show="invShow" :inv-list="invList" :inv-checked="invChecked" :is-special="special_invoice"
|
|
|
+ :url-query="urlQuery" @inv-close="invClose" @inv-change="invChange" @inv-cancel="invCancel">
|
|
|
+ </invoice-picker>
|
|
|
+ <payment v-if="totalPrice" :payMode="cartArr" :pay_close="pay_close" :isCall="true" :totalPrice="totalPrice"
|
|
|
+ @changePayType="changePayType" @onChangeFun="onChangeFun"></payment>
|
|
|
+ <deliveryMethod ref="deliveryMethod" :isDisplay="isDisplay" :storeList="storeList" :ptype="ptype"
|
|
|
+ :storeSelfMention="store_self_mention" @deliveryFun="deliveryFun" @storeFun="storeFun"></deliveryMethod>
|
|
|
+ <!-- #ifdef MP -->
|
|
|
+ <!-- <authorize v-if="isShowAuth" @authColse="authColse" @onLoadFun="onLoadFun"></authorize> -->
|
|
|
+ <!-- #endif -->
|
|
|
+ <timeranges :isShow='isShow' :time='timeranges' @confrim="confrim" @cancel="cancels"></timeranges>
|
|
|
+ <areaWindow ref="areaWindow" :display="display" :address='addressInfoArea' :cityShow='cityShow'
|
|
|
+ @submit="OnAreaAddress" @changeClose="changeAddressClose"></areaWindow>
|
|
|
+ <buuug7-simple-datetime-picker ref="myPicker" @submit="handleSubmit" @err="datetimePickerErr" :start-year="start_year"
|
|
|
+ :end-year="2030" :time-hide="[true, true, true, true, true, false]"
|
|
|
+ :time-label="['年', '月', '日', '时', '分', '秒']" />
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+ const CACHE_CITY = {};
|
|
|
+ import dayjs from '@/plugin/dayjs/dayjs.min.js';
|
|
|
+ import {
|
|
|
+ orderConfirm,
|
|
|
+ getCouponsOrderPrice,
|
|
|
+ orderCreate,
|
|
|
+ postOrderComputed,
|
|
|
+ checkShipping,
|
|
|
+ computedServe,
|
|
|
+ SubscribeCreate
|
|
|
+ } from '@/api/order.js';
|
|
|
+ import {
|
|
|
+ getAddressDefault,
|
|
|
+ getAddressDetail,
|
|
|
+ invoiceList,
|
|
|
+ invoiceOrder,
|
|
|
+ getUserInfo
|
|
|
+ } from '@/api/user.js';
|
|
|
+ import {
|
|
|
+ openPaySubscribe
|
|
|
+ } from '@/utils/SubscribeMessage.js';
|
|
|
+ import {
|
|
|
+ storeListApi,
|
|
|
+ getCollagePartake,
|
|
|
+ getCodeData,
|
|
|
+ getMen
|
|
|
+ } from '@/api/store.js';
|
|
|
+ import {
|
|
|
+ CACHE_LONGITUDE,
|
|
|
+ CACHE_LATITUDE
|
|
|
+ } from '@/config/cache.js';
|
|
|
+ import areaWindow from '@/components/areaWindow';
|
|
|
+ import couponListWindow from '@/components/couponListWindow';
|
|
|
+ import addressWindow from '@/components/addressWindow';
|
|
|
+ import orderGoods from '@/components/orderGoods';
|
|
|
+ import deliveryMethod from '../components/deliveryMethod/index.vue';
|
|
|
+ import timeranges from '@/components/timeranges';
|
|
|
+ import home from '@/components/home';
|
|
|
+ import invoicePicker from '../components/invoicePicker';
|
|
|
+ import groupGoodsList from '@/components/groupGoodsList/index.vue'
|
|
|
+ import {
|
|
|
+ toLogin
|
|
|
+ } from '@/libs/login.js';
|
|
|
+ import {
|
|
|
+ mapGetters
|
|
|
+ } from "vuex";
|
|
|
+ import payment from '@/components/payment';
|
|
|
+ import colors from "@/mixins/color";
|
|
|
+ let newTime = new Date()
|
|
|
+
|
|
|
+ export default {
|
|
|
+ components: {
|
|
|
+ payment,
|
|
|
+ invoicePicker,
|
|
|
+ couponListWindow,
|
|
|
+ addressWindow,
|
|
|
+ orderGoods,
|
|
|
+ home,
|
|
|
+ deliveryMethod,
|
|
|
+ timeranges,
|
|
|
+ areaWindow,
|
|
|
+ groupGoodsList
|
|
|
+ },
|
|
|
+ mixins: [colors],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ start_year: newTime.getFullYear(),
|
|
|
+ addressInfoArea: [],
|
|
|
+ cityShow: 2,
|
|
|
+ display: false,
|
|
|
+ timeranges: [],
|
|
|
+ isShow: false,
|
|
|
+ giveData: {
|
|
|
+ give_integral: 0,
|
|
|
+ give_coupon: []
|
|
|
+ },
|
|
|
+ giveCartInfo: [],
|
|
|
+ confirm: [], //自定义留言
|
|
|
+ id: 0,
|
|
|
+ isaddress: false,
|
|
|
+ textareaStatus: true,
|
|
|
+ //支付方式
|
|
|
+ cartArr: [{
|
|
|
+ "name": "微信支付",
|
|
|
+ "icon": "icon-weixin2",
|
|
|
+ value: 'weixin',
|
|
|
+ title: '使用微信快捷支付',
|
|
|
+ payStatus: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "支付宝支付",
|
|
|
+ "icon": "icon-zhifubao",
|
|
|
+ value: 'alipay',
|
|
|
+ title: '使用线上支付宝支付',
|
|
|
+ payStatus: 1,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "name": "余额支付",
|
|
|
+ "icon": "icon-yuezhifu",
|
|
|
+ value: 'yue',
|
|
|
+ title: '可用余额:',
|
|
|
+ payStatus: 1,
|
|
|
+ },
|
|
|
+ // {
|
|
|
+ // "name": "线下支付",
|
|
|
+ // "icon": "icon-yuezhifu1",
|
|
|
+ // value: 'offline',
|
|
|
+ // title: '选择线下付款方式',
|
|
|
+ // payStatus: 2,
|
|
|
+ // }
|
|
|
+ ],
|
|
|
+ formContent: '',
|
|
|
+ payType: 'weixin', //支付方式
|
|
|
+ openType: 1, //优惠券打开方式 1=使用
|
|
|
+ active: 0, //支付方式切换
|
|
|
+ coupon: {
|
|
|
+ coupon: false,
|
|
|
+ list: [],
|
|
|
+ statusTile: '立即使用'
|
|
|
+ }, //优惠券组件
|
|
|
+ address: {
|
|
|
+ address: false
|
|
|
+ }, //地址组件
|
|
|
+ addressInfo: {}, //地址信息
|
|
|
+ pinkId: 0, //拼团id
|
|
|
+ addressId: 0, //地址id
|
|
|
+ couponId: 0, //优惠券id
|
|
|
+ cartId: '', //购物车id
|
|
|
+ BargainId: 0,
|
|
|
+ combinationId: 0,
|
|
|
+ seckillId: 0,
|
|
|
+ discountId: 0,
|
|
|
+ userInfo: {}, //用户信息
|
|
|
+ mark: '', //备注信息
|
|
|
+ couponTitle: '请选择', //优惠券
|
|
|
+ coupon_price: 0, //优惠券抵扣金额
|
|
|
+ promotions_detail: [], //优惠活动金额明细
|
|
|
+ useIntegral: false, //是否使用积分
|
|
|
+ integral_price: 0, //积分抵扣金额
|
|
|
+ integral: 0,
|
|
|
+ ChangePrice: 0, //使用积分抵扣变动后的金额
|
|
|
+ formIds: [], //收集formid
|
|
|
+ status: 0,
|
|
|
+ is_address: false,
|
|
|
+ toPay: false, //修复进入支付时页面隐藏从新刷新页面
|
|
|
+ shippingType: 0,
|
|
|
+ system_store: {},
|
|
|
+ storePostage: 0,
|
|
|
+ contacts: '',
|
|
|
+ contactsTel: '',
|
|
|
+ mydata: {},
|
|
|
+ storeList: [],
|
|
|
+ store_self_mention: 0, //是开启门店自提;
|
|
|
+ store_func_status: false, //是否开启门店自提和门店配送;
|
|
|
+ cartInfo: [],
|
|
|
+ priceGroup: {},
|
|
|
+ animated: false,
|
|
|
+ totalPrice: 0,
|
|
|
+ integralRatio: "0",
|
|
|
+ pagesUrl: "",
|
|
|
+ orderKey: "",
|
|
|
+ // usableCoupon: {},
|
|
|
+ offlinePostage: "",
|
|
|
+ isAuto: false, //没有授权的不会自动授权
|
|
|
+ isShowAuth: false, //是否隐藏授权
|
|
|
+ from: '',
|
|
|
+ news: 1,
|
|
|
+ invTitle: '不开发票',
|
|
|
+ special_invoice: false,
|
|
|
+ invoice_func: false,
|
|
|
+ integral_ratio_status: 1,
|
|
|
+ header_type: '',
|
|
|
+ invShow: false,
|
|
|
+ invList: [],
|
|
|
+ invChecked: '',
|
|
|
+ urlQuery: '',
|
|
|
+ pay_close: false,
|
|
|
+ noCoupon: 0,
|
|
|
+ valid_count: 0,
|
|
|
+ discount_id: 0,
|
|
|
+ storeId: 0,
|
|
|
+ product_type: 1,
|
|
|
+ newImg: [],
|
|
|
+ isDisplay: [],
|
|
|
+ deliveryType: 1,
|
|
|
+ goodsType: 0,
|
|
|
+ product_id: 0,
|
|
|
+ selectIndex: 0,
|
|
|
+ timerangesIndex: 0,
|
|
|
+ collage_id: 0,
|
|
|
+ goodsList: [],
|
|
|
+ tableId: 0,
|
|
|
+ codeData: {},
|
|
|
+ ptype: 1,
|
|
|
+ yytime: '',//预约时间
|
|
|
+ yg: {
|
|
|
+ page: 1,
|
|
|
+ limit: 100,
|
|
|
+ list: [],
|
|
|
+ loadingType: 'loadmore',
|
|
|
+ loaded: false,
|
|
|
+ },
|
|
|
+ choose_yg: {
|
|
|
+
|
|
|
+ },
|
|
|
+ payInfo: {},
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: mapGetters(['isLogin']),
|
|
|
+ onLoad: function(options) {
|
|
|
+ this.ptype = options.product_type
|
|
|
+ // #ifdef H5
|
|
|
+ this.from = this.$wechat.isWeixin() ? 'weixin' : 'weixinh5'
|
|
|
+ // #endif
|
|
|
+ // #ifdef MP
|
|
|
+ this.from = 'routine'
|
|
|
+ // #endif
|
|
|
+ this.product_id = options.product_id || 0;
|
|
|
+ this.getUserInfo()
|
|
|
+ this.computedServe()
|
|
|
+ this.getList()
|
|
|
+ this.ptype = 6
|
|
|
+ // if (!options.cartId) return this.$util.Tips({
|
|
|
+ // title: '请选择要购买的商品'
|
|
|
+ // }, {
|
|
|
+ // tab: 3,
|
|
|
+ // url: 1
|
|
|
+ // });
|
|
|
+ // this.deliveryType = options.delivery_type || 1;
|
|
|
+ // if (this.deliveryType == 1 || this.deliveryType == 3) {
|
|
|
+ // this.addressId = options.addressId || 0;
|
|
|
+ // this.system_store.name = options.store_name;
|
|
|
+ // }
|
|
|
+ // if (this.deliveryType == 2 || this.deliveryType == 3) {
|
|
|
+ // this.storeId = options.store_id || 0;
|
|
|
+ // this.system_store.id = options.store_id || 0;
|
|
|
+ // }
|
|
|
+ // this.couponId = options.couponId || 0;
|
|
|
+ // this.noCoupon = options.noCoupon || 0;
|
|
|
+ // this.product_id = options.product_id || 0;
|
|
|
+ // this.pinkId = options.pinkId ? parseInt(options.pinkId) : 0;
|
|
|
+ // this.cartId = options.cartId;
|
|
|
+ // this.is_address = options.is_address ? true : false;
|
|
|
+ // this.news = !options.new || options.new === '0' ? 0 : 1;
|
|
|
+ // uni.setStorageSync('news', this.news);
|
|
|
+ // this.invChecked = options.invoice_id || '';
|
|
|
+ // this.header_type = options.header_type || '1';
|
|
|
+ // this.couponTitle = options.couponTitle || '请选择'
|
|
|
+ // switch (options.invoice_type) {
|
|
|
+ // case '1':
|
|
|
+ // this.invTitle = '增值税电子普通发票';
|
|
|
+ // break;
|
|
|
+ // case '2':
|
|
|
+ // this.invTitle = '增值税电子专用发票';
|
|
|
+ // break;
|
|
|
+ // }
|
|
|
+ // if (options.invoice_name) {
|
|
|
+ // this.invTitle = options.invoice_name;
|
|
|
+ // }
|
|
|
+ // // #ifndef APP-PLUS
|
|
|
+ // this.textareaStatus = true;
|
|
|
+ // // #endif
|
|
|
+ // if (this.isLogin && this.toPay == false) {
|
|
|
+ // this.getCheckShipping();
|
|
|
+ // } else {
|
|
|
+ // toLogin();
|
|
|
+ // }
|
|
|
+ // this.collage_id = options.collage_id || 0;
|
|
|
+ // if (this.collage_id) {
|
|
|
+ // this.getCollagePartake();
|
|
|
+ // }
|
|
|
+ // // #ifdef MP
|
|
|
+ // // 桌码
|
|
|
+ // this.tableId = options.tableId || 0;
|
|
|
+ // if (this.tableId) {
|
|
|
+ // this.getCodeData();
|
|
|
+ // }
|
|
|
+ // // #endif
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 生命周期函数--监听页面显示
|
|
|
+ */
|
|
|
+ onShow: function() {
|
|
|
+ uni.removeStorageSync('form_type_cart');
|
|
|
+ let _this = this
|
|
|
+ uni.$on("handClick", res => {
|
|
|
+ if (res) {
|
|
|
+ _this.system_store = res.address
|
|
|
+ _this.storeId = _this.system_store.id
|
|
|
+ _this.cartId = res.cartId
|
|
|
+ _this.news = res.new
|
|
|
+ _this.pinkId = Number(res.pinkId)
|
|
|
+ _this.couponId = res.couponId
|
|
|
+ _this.getConfirm()
|
|
|
+ }
|
|
|
+ // 清除监听
|
|
|
+ uni.$off('handClick');
|
|
|
+ })
|
|
|
+ let current = (dayjs(new Date(Number(new Date().getTime()))).format('HH:mm')).split(':');
|
|
|
+ let currentArray = current;
|
|
|
+ currentArray.push(0);
|
|
|
+ let arrayNew = [];
|
|
|
+ [...currentArray, ...current].forEach(item => {
|
|
|
+ arrayNew.push(Number(item))
|
|
|
+ })
|
|
|
+ this.timeranges = arrayNew;
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getUserInfo() {
|
|
|
+ let that = this
|
|
|
+ getUserInfo().then(res => {
|
|
|
+ this.userInfo = res.data
|
|
|
+
|
|
|
+ //微信支付是否开启
|
|
|
+ that.cartArr[0].payStatus = res.data.pay_weixin_open || 0
|
|
|
+ //支付宝是否开启
|
|
|
+ that.cartArr[1].payStatus = res.data.ali_pay_status || 0;
|
|
|
+ //#ifdef MP
|
|
|
+ that.cartArr[1].payStatus = 0;
|
|
|
+ //#endif
|
|
|
+ //余额支付是否开启
|
|
|
+ that.cartArr[2].title = '可用余额:' + this.userInfo.now_money;
|
|
|
+ that.cartArr[2].number = this.userInfo.now_money;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ computedServe() {
|
|
|
+ computedServe({
|
|
|
+ products: this.product_id
|
|
|
+ }).then(ress => {
|
|
|
+ console.log(ress)
|
|
|
+ this.payInfo = ress.data
|
|
|
+ this.totalPrice = ress.data.pay_price + ''
|
|
|
+ console.log(this.totalPrice,'this.totalPrice')
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 选择员工
|
|
|
+ choosYg(item) {
|
|
|
+ this.choose_yg = item
|
|
|
+ },
|
|
|
+ // 获取员工列表
|
|
|
+ getMen() {
|
|
|
+ let that = this
|
|
|
+ if(that.yg.loadingType == 'noMore' || that.yg.loadingType == 'loading' ) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ that.yg.loadingType = 'loading'
|
|
|
+ getMen({
|
|
|
+ page: that.yg.page,
|
|
|
+ limit: that.yg.limit,
|
|
|
+ store_id: this.system_store.id
|
|
|
+ }).then(res => {
|
|
|
+ console.log(res)
|
|
|
+ let arr = []
|
|
|
+ arr = arr.concat(res.data.list)
|
|
|
+ that.yg.list = that.yg.list.concat(arr)
|
|
|
+ if(that.yg.limit == res.data.list.length) {
|
|
|
+ that.yg.loadingType = 'more'
|
|
|
+ that.yg.page++
|
|
|
+ }else {
|
|
|
+ that.yg.loadingType = 'noMore'
|
|
|
+ }
|
|
|
+ that.yg.loaded = true
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 打开picker
|
|
|
+ openDatetimePicker() {
|
|
|
+ this.$refs.myPicker.show();
|
|
|
+ },
|
|
|
+
|
|
|
+ // 关闭picker
|
|
|
+ closeDatetimePicker() {
|
|
|
+ this.$refs.myPicker.hide();
|
|
|
+ },
|
|
|
+ datetimePickerErr() {
|
|
|
+ this.yytime = ''
|
|
|
+ },
|
|
|
+ handleSubmit(e) {
|
|
|
+ console.log(e);
|
|
|
+ this.yytime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}`;
|
|
|
+ },
|
|
|
+ // #ifdef MP
|
|
|
+ // 桌码信息
|
|
|
+ getCodeData() {
|
|
|
+ getCodeData({
|
|
|
+ tableId: this.tableId
|
|
|
+ }).then(res => {
|
|
|
+ this.codeData = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // #endif
|
|
|
+ getCollagePartake() {
|
|
|
+ getCollagePartake({
|
|
|
+ collage_id: this.collage_id
|
|
|
+ }).then(res => {
|
|
|
+ this.goodsList = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ OnAreaAddress(address) {
|
|
|
+ let addr = '';
|
|
|
+ if (address.length == 4) {
|
|
|
+ addr = address[0].label + '/' + address[1].label + '/' + address[2].label + '/' + address[3].label;
|
|
|
+ } else if (address.length == 3) {
|
|
|
+ addr = address[0].label + '/' + address[1].label + '/' + address[2].label;
|
|
|
+ } else if (address.length == 2) {
|
|
|
+ addr = address[0].label + '/' + address[1].label;
|
|
|
+ } else {
|
|
|
+ addr = address[0].label;
|
|
|
+ }
|
|
|
+ this.confirm[this.timerangesIndex].value = addr;
|
|
|
+ CACHE_CITY[this.timerangesIndex] = address;
|
|
|
+ },
|
|
|
+ changeRegion(index) {
|
|
|
+ if (!this.confirm[index].value) {
|
|
|
+ this.addressInfoArea = [];
|
|
|
+ }
|
|
|
+ this.timerangesIndex = index;
|
|
|
+ this.cityShow = Number(this.confirm[index].valConfig.tabVal) + 1;
|
|
|
+ this.display = true;
|
|
|
+ if (CACHE_CITY[index]) {
|
|
|
+ this.addressInfoArea = CACHE_CITY[index];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 关闭地址弹窗;
|
|
|
+ changeAddressClose: function() {
|
|
|
+ this.display = false;
|
|
|
+ },
|
|
|
+ maskClick(e) {
|
|
|
+ console.log(e);
|
|
|
+ },
|
|
|
+ // 授权关闭
|
|
|
+ authColse: function(e) {
|
|
|
+ this.isShowAuth = e
|
|
|
+ },
|
|
|
+ showMaoLocation(e) {
|
|
|
+ let self = this;
|
|
|
+ // #ifdef H5
|
|
|
+ if (self.$wechat.isWeixin()) {
|
|
|
+ self.$wechat.seeLocation({
|
|
|
+ latitude: Number(e.latitude),
|
|
|
+ longitude: Number(e.longitude),
|
|
|
+ name: e.name,
|
|
|
+ scale: 13,
|
|
|
+ address: `${e.address}-${e.detailed_address}`,
|
|
|
+ }).then(res => {})
|
|
|
+ } else {
|
|
|
+ // #endif
|
|
|
+ uni.openLocation({
|
|
|
+ latitude: Number(e.latitude),
|
|
|
+ longitude: Number(e.longitude),
|
|
|
+ name: e.name,
|
|
|
+ address: `${e.address}-${e.detailed_address}`,
|
|
|
+ success: function() {
|
|
|
+ Number
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // #ifdef H5
|
|
|
+ }
|
|
|
+ // #endif
|
|
|
+ },
|
|
|
+ call(phone) {
|
|
|
+ uni.makePhoneCall({
|
|
|
+ phoneNumber: phone,
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 选中配送类型
|
|
|
+ deliveryFun(e, item) {
|
|
|
+ this.deliveryType = e;
|
|
|
+ this.$refs.deliveryMethod.module = false;
|
|
|
+ if (e == 2) {
|
|
|
+ this.storeId = item.id;
|
|
|
+ } else {
|
|
|
+ if (e == 3) {
|
|
|
+ this.storeId = item.id;
|
|
|
+ if (this.isDisplay.includes("2") && this.isDisplay.includes("3")) {
|
|
|
+ this.getaddressInfo();
|
|
|
+ this.$nextTick(function() {
|
|
|
+ this.$refs.addressWindow.getAddressList();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.system_store = item;
|
|
|
+ }
|
|
|
+ if (e == 1 || e == 3) {
|
|
|
+ this.addressType(0, e);
|
|
|
+ } else {
|
|
|
+ this.addressType(1, e);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 选择配送方式
|
|
|
+ onDelivery() {
|
|
|
+ this.$refs.deliveryMethod.module = true
|
|
|
+ },
|
|
|
+ // 子集调用门店列表接口
|
|
|
+ storeFun(index) {
|
|
|
+ this.getList(1, index);
|
|
|
+ },
|
|
|
+ // 是否显示快递配送
|
|
|
+ getCheckShipping() {
|
|
|
+ let data = {
|
|
|
+ cartId: this.cartId,
|
|
|
+ new: this.news
|
|
|
+ }
|
|
|
+ checkShipping(data).then(res => {
|
|
|
+ // 1:快递配送,2:到店自提,3:门店配送
|
|
|
+ res.data.type.sort((x, y) => x - y) //正序
|
|
|
+ this.isDisplay = res.data.type;
|
|
|
+ if (((this.isDisplay.includes("2") && this.isDisplay.length == 1) || (this.deliveryType == 2 &&
|
|
|
+ !this.tableId) || (this.deliveryType == 3 && this.storeId > 0 && !this.system_store
|
|
|
+ .name)) && this.isDisplay.length) {
|
|
|
+ if ((this.deliveryType == 2 || (this.deliveryType == 3 && !this.isDisplay.includes(
|
|
|
+ "3"))) && this.isDisplay.includes("2")) {
|
|
|
+ this.deliveryType = 2
|
|
|
+ this.addressType(1, this.deliveryType);
|
|
|
+ }
|
|
|
+ if ((this.deliveryType == 3 || (this.deliveryType == 2 && !this.isDisplay.includes(
|
|
|
+ "2"))) && this.isDisplay.includes("3")) {
|
|
|
+ this.deliveryType = 3
|
|
|
+ this.addressType(0, this.deliveryType);
|
|
|
+ this.getaddressInfo();
|
|
|
+ this.$nextTick(function() {
|
|
|
+ this.$refs.addressWindow.getAddressList();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.getaddressInfo();
|
|
|
+ this.getConfirm();
|
|
|
+ this.$nextTick(function() {
|
|
|
+ this.$refs.addressWindow.getAddressList();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ uni.showToast({
|
|
|
+ title: err,
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除图片
|
|
|
+ *
|
|
|
+ */
|
|
|
+ DelPic: function(index, indexs) {
|
|
|
+ let that = this,
|
|
|
+ pic = this.confirm[index].value;
|
|
|
+ that.confirm[index].value.splice(indexs, 1);
|
|
|
+ that.$set(that.confirm[index], 'value', that.confirm[index].value);
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传文件
|
|
|
+ *
|
|
|
+ */
|
|
|
+ uploadpic: function(index) {
|
|
|
+ let that = this;
|
|
|
+ this.$util.uploadImageOne('upload/image', function(res) {
|
|
|
+ that.newImg.push(res.data.url);
|
|
|
+ that.$set(that.confirm[index], 'value', that.newImg);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 不开发票
|
|
|
+ invCancel() {
|
|
|
+ this.invChecked = '';
|
|
|
+ this.invTitle = '不开发票';
|
|
|
+ this.invShow = false;
|
|
|
+ },
|
|
|
+ // 选择发票
|
|
|
+ invChange(id) {
|
|
|
+ this.invChecked = id;
|
|
|
+ this.invShow = false;
|
|
|
+ const result = this.invList.find(item => item.id === id);
|
|
|
+ let name = '';
|
|
|
+ name += result.header_type === 1 ? '个人' : '企业';
|
|
|
+ name += result.type === 1 ? '普通' : '专用';
|
|
|
+ name += '发票';
|
|
|
+ this.invTitle = name;
|
|
|
+ },
|
|
|
+ // 关闭发票
|
|
|
+ invClose() {
|
|
|
+ this.invShow = false;
|
|
|
+ this.getInvoiceList()
|
|
|
+ },
|
|
|
+ getInvoiceList() {
|
|
|
+ uni.showLoading({
|
|
|
+ title: '正在加载…'
|
|
|
+ })
|
|
|
+ invoiceList().then(res => {
|
|
|
+ uni.hideLoading();
|
|
|
+ this.invList = res.data.map(item => {
|
|
|
+ item.id = item.id.toString();
|
|
|
+ return item;
|
|
|
+ });
|
|
|
+ const result = this.invList.find(item => item.id == this.invChecked);
|
|
|
+ if (result) {
|
|
|
+ let name = '';
|
|
|
+ name += result.header_type === 1 ? '个人' : '企业';
|
|
|
+ name += result.type === 1 ? '普通' : '专用';
|
|
|
+ name += '发票';
|
|
|
+ this.invTitle = name;
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ uni.showToast({
|
|
|
+ title: err,
|
|
|
+ icon: 'none'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 开发票
|
|
|
+ */
|
|
|
+ goInvoice: function() {
|
|
|
+ this.getInvoiceList()
|
|
|
+ this.invShow = true;
|
|
|
+ this.urlQuery =
|
|
|
+ `new=${this.news}&cartId=${this.cartId}&pinkId=${this.pinkId}&couponId=${this.couponId}&addressId=${this.addressId}&specialInvoice=${this.special_invoice}&couponTitle=${this.couponTitle}&delivery_type=${this.deliveryType}&store_id=${this.storeId}&store_name=${this.system_store.name}&product_id=${this.product_id}`;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 授权回调事件
|
|
|
+ *
|
|
|
+ */
|
|
|
+ onLoadFun: function() {
|
|
|
+ this.getCheckShipping();
|
|
|
+ this.isShowAuth = false;
|
|
|
+ //调用子页面方法授权后执行获取地址列表
|
|
|
+ // this.$scope.selectComponent('#address-window').getAddressList();
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 事件回调
|
|
|
+ *
|
|
|
+ */
|
|
|
+ onChangeFun: function(e) {
|
|
|
+ // let opt = e;
|
|
|
+ // let action = opt.action || null;
|
|
|
+ // let value = opt.value != undefined ? opt.value : null;
|
|
|
+ // action && this[action] && this[action](value);
|
|
|
+ console.log(e)
|
|
|
+ let that = this
|
|
|
+ if(e.action == 'payClose') {
|
|
|
+ this.pay_close = false
|
|
|
+ }else {
|
|
|
+ SubscribeCreate({
|
|
|
+ uid: this.userInfo.uid,
|
|
|
+ work_member_id: this.choose_yg.id,
|
|
|
+ products: this.product_id,
|
|
|
+ pay_type: e.value,
|
|
|
+ store_id: that.system_store.id,
|
|
|
+ reservation_time: that.yytime,
|
|
|
+
|
|
|
+ }).then(res => {
|
|
|
+ that.$util.Tips({
|
|
|
+ title: '支付成功',
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 4,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ setTimeout(()=> {
|
|
|
+ uni.switchTab({
|
|
|
+ url: '/pages/index/index'
|
|
|
+ })
|
|
|
+ },1500)
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ payClose: function() {
|
|
|
+ this.pay_close = false;
|
|
|
+ },
|
|
|
+ goPay() {
|
|
|
+ if(!this.choose_yg.id) {
|
|
|
+ return this.$util.Tips({
|
|
|
+ title: '请选择预约员工'
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if(!this.yytime) {
|
|
|
+ return this.$util.Tips({
|
|
|
+ title: '请选择预约时间'
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ this.formVerify();
|
|
|
+ },
|
|
|
+ payCheck(type) {
|
|
|
+ this.payType = type;
|
|
|
+ this.SubOrder();
|
|
|
+ },
|
|
|
+ payAddress() {
|
|
|
+ uni.navigateTo({
|
|
|
+ // /pages/users/user_address/index?id=25&cartId=76179610656654229504&pinkId=0&couponId=0&new=1
|
|
|
+ url: '/pages/users/user_address/index?id=' + this.id + '&new=' + this.news + '&cartId=' + this
|
|
|
+ .cartId +
|
|
|
+ '&pinkId=' +
|
|
|
+ this.pinkId +
|
|
|
+ '&couponId=' +
|
|
|
+ this.couponId + '&delivery_type=' + this.deliveryType + '&addressId=' + this.addressId +
|
|
|
+ '&store_id=' + this.storeId + '&store_name=' + this.system_store.name + '&product_id=' +
|
|
|
+ this.product_id
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取门店列表数据
|
|
|
+ */
|
|
|
+ getList: function(fromType, index) {
|
|
|
+ let longitude = uni.getStorageSync("user_longitude"); //经度
|
|
|
+ let latitude = uni.getStorageSync("user_latitude"); //纬度
|
|
|
+ let data = {
|
|
|
+ latitude: latitude, //纬度
|
|
|
+ longitude: longitude, //经度
|
|
|
+ page: 1,
|
|
|
+ limit: 100,
|
|
|
+ type: this.seckillId > 0 ? 1 : 0,
|
|
|
+ product_id: this.product_id,
|
|
|
+ is_store: index
|
|
|
+ }
|
|
|
+ storeListApi(data).then(res => {
|
|
|
+ let list = res.data.list.list || [];
|
|
|
+ this.$set(this, 'storeList', list);
|
|
|
+ this.$set(this, 'storeId', this.storeId != 0 ? this.storeId : list[0].id);
|
|
|
+ list.forEach(item => {
|
|
|
+ if (this.storeId == item.id) {
|
|
|
+ this.$set(this, 'system_store', item);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if (fromType != 1) {
|
|
|
+ this.getConfirm();
|
|
|
+ }
|
|
|
+ this.yg.list = []
|
|
|
+ this.yg.loadingType = 'more'
|
|
|
+ this.yg.page = 1
|
|
|
+ this.getMen()
|
|
|
+ }).catch(err => {})
|
|
|
+ },
|
|
|
+ // 关闭地址弹窗;
|
|
|
+ changeClose: function() {
|
|
|
+ this.$set(this.address, 'address', false);
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 跳转门店列表
|
|
|
+ */
|
|
|
+ showStoreList: function() {
|
|
|
+ let _this = this
|
|
|
+ if (this.storeList.length > 0) {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages/store/store_list/index?type=1&cartId=${_this.cartId}&new=${_this.news}&pinkId=${_this.pinkId}&couponId=${_this.couponId}`
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ changePayType(type) {
|
|
|
+ this.payType = type
|
|
|
+ this.computedPrice()
|
|
|
+ },
|
|
|
+ computedPrice: function() {
|
|
|
+ let shippingType = this.shippingType;
|
|
|
+ postOrderComputed(this.orderKey, {
|
|
|
+ addressId: this.addressId,
|
|
|
+ useIntegral: this.useIntegral ? 1 : 0,
|
|
|
+ couponId: this.priceGroup.couponPrice == 0 ? 0 : this.couponId,
|
|
|
+ shipping_type: this.tableId ? 4 : parseInt(shippingType) + 1,
|
|
|
+ payType: this.payType
|
|
|
+ }).then(res => {
|
|
|
+ let result = res.data.result;
|
|
|
+ if (result) {
|
|
|
+ this.totalPrice = result.pay_price;
|
|
|
+ this.integral_price = result.deduction_price;
|
|
|
+ this.coupon_price = result.coupon_price;
|
|
|
+ this.promotions_detail = result.promotions_detail;
|
|
|
+ this.integral = this.useIntegral ? result.SurplusIntegral : this.userInfo.integral;
|
|
|
+ this.$set(this.priceGroup, 'storePostage', shippingType == 1 ? 0 : result.pay_postage);
|
|
|
+ this.$set(this.priceGroup, 'storePostageDiscount', result.storePostageDiscount);
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: err
|
|
|
+ });
|
|
|
+ })
|
|
|
+ },
|
|
|
+ addressType: function(e, type) {
|
|
|
+ let index = e;
|
|
|
+ this.shippingType = parseInt(index);
|
|
|
+ // this.computedPrice();
|
|
|
+ if (index == 1) {
|
|
|
+ this.getList(0, type);
|
|
|
+ } else {
|
|
|
+ this.getConfirm();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ bindPickerChange: function(e) {
|
|
|
+ let value = e.detail.value;
|
|
|
+ this.shippingType = value;
|
|
|
+ this.computedPrice();
|
|
|
+ },
|
|
|
+ ChangCouponsClone: function() {
|
|
|
+ this.$set(this.coupon, 'coupon', false);
|
|
|
+ },
|
|
|
+ changeTextareaStatus: function() {
|
|
|
+ for (let i = 0, len = this.coupon.list.length; i < len; i++) {
|
|
|
+ this.coupon.list[i].use_title = '';
|
|
|
+ this.coupon.list[i].is_use = 0;
|
|
|
+ }
|
|
|
+ this.textareaStatus = true;
|
|
|
+ this.status = 0;
|
|
|
+ this.$set(this.coupon, 'list', this.coupon.list);
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 处理点击优惠券后的事件
|
|
|
+ *
|
|
|
+ */
|
|
|
+ ChangCoupons: function(e) {
|
|
|
+ // this.usableCoupon = e
|
|
|
+ // this.coupon.coupon = false
|
|
|
+ let index = e,
|
|
|
+ list = this.coupon.list,
|
|
|
+ couponTitle = '请选择',
|
|
|
+ couponId = 0;
|
|
|
+ for (let i = 0, len = list.length; i < len; i++) {
|
|
|
+ if (i != index) {
|
|
|
+ list[i].use_title = '';
|
|
|
+ list[i].is_use = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (list[index].is_use) {
|
|
|
+ //不使用优惠券
|
|
|
+ list[index].use_title = '';
|
|
|
+ list[index].is_use = 0;
|
|
|
+ } else {
|
|
|
+ //使用优惠券
|
|
|
+ list[index].use_title = '不使用';
|
|
|
+ list[index].is_use = 1;
|
|
|
+ couponTitle = list[index].coupon_title;
|
|
|
+ couponId = list[index].id;
|
|
|
+ }
|
|
|
+ this.couponTitle = couponTitle;
|
|
|
+ this.couponId = couponId;
|
|
|
+ this.$set(this.coupon, 'coupon', false);
|
|
|
+ this.$set(this.coupon, 'list', list);
|
|
|
+ this.getConfirm(1);
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 使用积分抵扣
|
|
|
+ */
|
|
|
+ ChangeIntegral: function() {
|
|
|
+ this.useIntegral = !this.useIntegral;
|
|
|
+ this.computedPrice();
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 选择地址后改变事件
|
|
|
+ * @param object e
|
|
|
+ */
|
|
|
+ OnChangeAddress: function(e) {
|
|
|
+ this.textareaStatus = true;
|
|
|
+ this.addressId = e;
|
|
|
+ this.address.address = false;
|
|
|
+ this.getConfirm()
|
|
|
+ this.getaddressInfo();
|
|
|
+ this.computedPrice();
|
|
|
+ },
|
|
|
+ bindHideKeyboard: function(e) {
|
|
|
+ this.mark = e.detail.value;
|
|
|
+ },
|
|
|
+ // 对象转数组
|
|
|
+ objToArr(data) {
|
|
|
+ let obj = Object.keys(data);
|
|
|
+ let m = obj.map(key => data[key]);
|
|
|
+ return m;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取当前订单详细信息
|
|
|
+ *
|
|
|
+ */
|
|
|
+ getConfirm: function(numType) {
|
|
|
+ // let that = this;
|
|
|
+ // let shippingType = parseInt(this.shippingType) + 1;
|
|
|
+ // let addressId = 0,
|
|
|
+ // storeid;
|
|
|
+ // if (this.tableId) {
|
|
|
+ // shippingType = 4;
|
|
|
+ // }
|
|
|
+ // if (shippingType == 1) {
|
|
|
+ // addressId = that.addressId
|
|
|
+ // if (this.deliveryType == 1) {
|
|
|
+ // storeid = 0
|
|
|
+ // } else {
|
|
|
+ // storeid = that.storeId
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // addressId = ''
|
|
|
+ // storeid = that.storeId
|
|
|
+ // }
|
|
|
+ // orderConfirm(that.cartId, that.news, addressId, shippingType, storeid, that.couponId).then(res => {
|
|
|
+ // if (res.data.upgrade_addr == 1) {
|
|
|
+ // that.id = res.data.addressInfo.id
|
|
|
+ // this.isaddress = true
|
|
|
+ // }
|
|
|
+ // if (numType != 1) {
|
|
|
+ // let confirm = this.objToArr(res.data.custom_form);
|
|
|
+ // confirm.forEach((item, index, arr) => {
|
|
|
+ // CACHE_CITY[index] = ''; //清空省市区
|
|
|
+ // if (item.name == 'texts') {
|
|
|
+ // if (item.defaultValConfig.value) {
|
|
|
+ // item.value = item.defaultValConfig.value
|
|
|
+ // } else {
|
|
|
+ // item.value = ''
|
|
|
+ // }
|
|
|
+ // } else if (item.name == 'radios') {
|
|
|
+ // item.value = item.wordsConfig.list[0].val
|
|
|
+ // } else if (item.name == 'uploadPicture') {
|
|
|
+ // item.value = [];
|
|
|
+ // } else if (item.name == 'dateranges') {
|
|
|
+ // if (item.valConfig.tabVal == 0) {
|
|
|
+ // if (item.valConfig.tabData == 0) {
|
|
|
+ // let obj = dayjs(new Date(Number(new Date().getTime()))).format(
|
|
|
+ // 'YYYY-MM-DD');
|
|
|
+ // item.value = [obj, obj]
|
|
|
+ // } else {
|
|
|
+ // let data1 = dayjs(new Date(Number(new Date(item.valConfig
|
|
|
+ // .specifyDate[0]).getTime()))).format('YYYY-MM-DD');
|
|
|
+ // let data2 = dayjs(new Date(Number(new Date(item.valConfig
|
|
|
+ // .specifyDate[1]).getTime()))).format('YYYY-MM-DD');
|
|
|
+ // item.value = [data1, data2];
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // item.value = [];
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (['times', 'dates', 'timeranges'].indexOf(item.name) != -1) {
|
|
|
+ // if (item.valConfig.tabVal == 0) {
|
|
|
+ // if (item.valConfig.tabData == 0) {
|
|
|
+ // if (item.name == 'times') {
|
|
|
+ // item.value = dayjs(new Date(Number(new Date()
|
|
|
+ // .getTime()))).format('HH:mm');
|
|
|
+ // } else if (item.name == 'dates') {
|
|
|
+ // item.value = dayjs(new Date(Number(new Date()
|
|
|
+ // .getTime()))).format('YYYY-MM-DD');
|
|
|
+ // } else {
|
|
|
+ // let current = dayjs(new Date(Number(new Date()
|
|
|
+ // .getTime()))).format('HH:mm');
|
|
|
+ // item.value = current + ' - ' + current;
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // if (item.name == 'times' || item.name == 'dates') {
|
|
|
+ // item.value = item.valConfig.specifyDate;
|
|
|
+ // } else {
|
|
|
+ // item.value = item.valConfig.specifyDate[0] + ' - ' +
|
|
|
+ // item.valConfig.specifyDate[1];
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // item.value = '';
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // item.value = '';
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+
|
|
|
+ // function sortNumber(a, b) {
|
|
|
+ // return a.timestamp - b.timestamp;
|
|
|
+ // }
|
|
|
+ // confirm.sort(sortNumber);
|
|
|
+ // that.$set(that, 'confirm', confirm);
|
|
|
+ // }
|
|
|
+ // that.$set(that, 'goodsType', res.data.type);
|
|
|
+ // that.$set(that, 'userInfo', res.data.userInfo);
|
|
|
+ // that.$set(that, 'integral', res.data.userInfo.integral);
|
|
|
+ // that.$set(that, 'contacts', res.data.userInfo.real_name);
|
|
|
+ // that.$set(that, 'contactsTel', res.data.userInfo.record_phone || '');
|
|
|
+ // that.$set(that, 'integralRatio', res.data.integralRatio);
|
|
|
+ // that.$set(that, 'offlinePostage', res.data.offlinePostage);
|
|
|
+ // that.$set(that, 'orderKey', res.data.orderKey);
|
|
|
+ // that.$set(that, 'valid_count', res.data.valid_count);
|
|
|
+ // that.$set(that, 'discount_id', res.data.discount_id)
|
|
|
+ // that.$set(that, 'priceGroup', res.data.priceGroup);
|
|
|
+ // that.$set(that, 'seckillId', parseInt(res.data.seckill_id));
|
|
|
+ // that.$set(that, 'BargainId', parseInt(res.data.bargain_id));
|
|
|
+ // that.$set(that, 'combinationId', parseInt(res.data.combination_id));
|
|
|
+ // that.$set(that, 'discountId', parseInt(res.data.discount_id));
|
|
|
+ // that.$set(that, 'invoice_func', res.data.invoice_func);
|
|
|
+ // that.$set(that, 'special_invoice', res.data.special_invoice);
|
|
|
+ // that.$set(that, 'integral_ratio_status', res.data.integral_ratio_status);
|
|
|
+ // that.$set(that, 'store_self_mention', res.data.store_self_mention);
|
|
|
+ // that.$set(that, 'store_func_status', res.data.store_func_status);
|
|
|
+ // that.giveData.give_integral = res.data.give_integral;
|
|
|
+ // that.giveData.give_coupon = res.data.give_coupon;
|
|
|
+ // let cartInfo = res.data.cartInfo;
|
|
|
+ // let cartObj = [],
|
|
|
+ // giftObj = [];
|
|
|
+ // cartInfo.forEach(item => {
|
|
|
+ // if (item.is_gift == 1) {
|
|
|
+ // giftObj.push(item)
|
|
|
+ // } else {
|
|
|
+ // cartObj.push(item)
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // that.$set(that, 'cartInfo', cartObj);
|
|
|
+ // that.$set(that, 'giveCartInfo', giftObj);
|
|
|
+ // let giveType = -1;
|
|
|
+ // giftObj.forEach(item => {
|
|
|
+ // if (item.product_type == 0 || item.product_type == 4) {
|
|
|
+ // return giveType = 0
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // that.$set(that, 'product_type', (res.data.product_type == 0 || giveType == 0 || res.data
|
|
|
+ // .product_type == 4) ? 0 : 1);
|
|
|
+ // //微信支付是否开启
|
|
|
+ // that.cartArr[0].payStatus = res.data.pay_weixin_open || 0
|
|
|
+ // //支付宝是否开启
|
|
|
+ // that.cartArr[1].payStatus = res.data.ali_pay_status || 0;
|
|
|
+ // //#ifdef MP
|
|
|
+ // that.cartArr[1].payStatus = 0;
|
|
|
+ // //#endif
|
|
|
+ // //余额支付是否开启
|
|
|
+ // // that.cartArr[2].title = '可用余额:' + res.data.userInfo.now_money;
|
|
|
+ // that.cartArr[2].number = res.data.userInfo.now_money;
|
|
|
+ // that.cartArr[2].payStatus = res.data.yue_pay_status == 1 ? res.data.yue_pay_status : 0
|
|
|
+ // if (res.data.offline_pay_status == 2) {
|
|
|
+ // that.cartArr[3].payStatus = 0
|
|
|
+ // } else {
|
|
|
+ // that.cartArr[3].payStatus = 1
|
|
|
+ // }
|
|
|
+ // // that.$set(that, 'cartArr', that.cartArr);
|
|
|
+ // that.$set(that, 'ChangePrice', that.totalPrice);
|
|
|
+ // that.getBargainId();
|
|
|
+ // that.getCouponList();
|
|
|
+ // that.computedPrice();
|
|
|
+ // if (this.addressId || this.couponId) {
|
|
|
+ // // this.computedPrice();
|
|
|
+ // } else {
|
|
|
+ // that.$set(that, 'totalPrice', that.$util.$h.Add(parseFloat(res.data.priceGroup
|
|
|
+ // .totalPrice),
|
|
|
+ // parseFloat(res.data
|
|
|
+ // .priceGroup.storePostage)));
|
|
|
+ // }
|
|
|
+ // }).catch(err => {
|
|
|
+ // return this.$util.Tips({
|
|
|
+ // title: err
|
|
|
+ // });
|
|
|
+ // });
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 提取砍价和拼团id
|
|
|
+ */
|
|
|
+ getBargainId: function() {
|
|
|
+ let that = this;
|
|
|
+ // let cartINfo = that.cartInfo;
|
|
|
+ // let BargainId = 0;
|
|
|
+ // let combinationId = 0;
|
|
|
+ // let discountId = 0;
|
|
|
+ // cartINfo.forEach(function(value, index, cartINfo) {
|
|
|
+ // BargainId = cartINfo[index].bargain_id,
|
|
|
+ // combinationId = cartINfo[index].combination_id,
|
|
|
+ // discountId = cartINfo[index].discount_id
|
|
|
+ // })
|
|
|
+ // that.$set(that, 'BargainId', parseInt(BargainId));
|
|
|
+ // that.$set(that, 'combinationId', parseInt(combinationId));
|
|
|
+ // that.$set(that, 'discountId', parseInt(discountId));
|
|
|
+ if (that.cartArr.length == 3 && (that.BargainId || that.combinationId || that.seckillId || that
|
|
|
+ .discountId)) {
|
|
|
+ that.cartArr[2].payStatus = 0;
|
|
|
+ that.$set(that, 'cartArr', that.cartArr);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取当前金额可用优惠券
|
|
|
+ *
|
|
|
+ */
|
|
|
+ getCouponList: function() {
|
|
|
+ let that = this;
|
|
|
+ let data = {
|
|
|
+ cartId: this.cartId,
|
|
|
+ 'new': this.news,
|
|
|
+ shipping_type: that.$util.$h.Add(that.shippingType, 1),
|
|
|
+ store_id: that.system_store ? that.system_store.id : 0
|
|
|
+ }
|
|
|
+ getCouponsOrderPrice(this.totalPrice, data).then(res => {
|
|
|
+ that.$set(that.coupon, 'list', res.data);
|
|
|
+ that.openType = 1;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /*
|
|
|
+ * 获取默认收货地址或者获取某条地址信息
|
|
|
+ */
|
|
|
+ getaddressInfo: function() {
|
|
|
+ let that = this;
|
|
|
+ if (that.addressId) {
|
|
|
+ getAddressDetail(that.addressId).then(res => {
|
|
|
+ res.data.is_default = parseInt(res.data.is_default);
|
|
|
+ that.addressInfo = res.data || {};
|
|
|
+ that.addressId = res.data.id || 0;
|
|
|
+ that.address.addressId = res.data.id || 0;
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ getAddressDefault().then(res => {
|
|
|
+ res.data.is_default = parseInt(res.data.is_default);
|
|
|
+ that.addressInfo = res.data || {};
|
|
|
+ that.addressId = res.data.id || 0;
|
|
|
+ that.address.addressId = res.data.id || 0;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ payItem: function(e) {
|
|
|
+ let that = this;
|
|
|
+ let active = e;
|
|
|
+ that.active = active;
|
|
|
+ that.animated = true;
|
|
|
+ that.payType = that.cartArr[active].value;
|
|
|
+ that.computedPrice();
|
|
|
+ setTimeout(function() {
|
|
|
+ that.car();
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+ couponTap: function() {
|
|
|
+ this.coupon.coupon = true;
|
|
|
+ this.coupon.list.forEach((item, index) => {
|
|
|
+ if (item.id == this.couponId) {
|
|
|
+ item.is_use = 1
|
|
|
+ } else {
|
|
|
+ item.is_use = 0
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.$set(this.coupon, 'list', this.coupon.list);
|
|
|
+ },
|
|
|
+ car: function() {
|
|
|
+ let that = this;
|
|
|
+ that.animated = false;
|
|
|
+ },
|
|
|
+ onAddress: function(name) {
|
|
|
+ let that = this;
|
|
|
+ if (name) {
|
|
|
+ that.textareaStatus = false;
|
|
|
+ that.address.address = true;
|
|
|
+ that.pagesUrl = '/pages/users/user_address_list/index?news=' + this.news + '&cartId=' + this
|
|
|
+ .cartId +
|
|
|
+ '&pinkId=' +
|
|
|
+ this.pinkId +
|
|
|
+ '&couponId=' +
|
|
|
+ this.couponId + '&delivery_type=' + this.deliveryType + '&addressId=' + this.addressId +
|
|
|
+ '&store_id=' + this.storeId + '&store_name=' + this.system_store.name + '&product_id=' + this
|
|
|
+ .product_id
|
|
|
+ } else {
|
|
|
+ uni.navigateTo({
|
|
|
+ url: '/pages/users/user_address/index?new=' + this.news + '&cartId=' + this.cartId +
|
|
|
+ '&pinkId=' +
|
|
|
+ this.pinkId +
|
|
|
+ '&couponId=' +
|
|
|
+ this.couponId + '&delivery_type=' + this.deliveryType + '&addressId=' + this
|
|
|
+ .addressId + '&store_id=' + this.storeId + '&store_name=' + this.system_store
|
|
|
+ .name + '&product_id=' + this.product_id
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ payment: function(data) {
|
|
|
+ let that = this;
|
|
|
+ orderCreate(that.orderKey, data).then(res => {
|
|
|
+ let status = res.data.status,
|
|
|
+ orderId = res.data.result.orderId,
|
|
|
+ jsConfig = res.data.result.jsConfig,
|
|
|
+ goPages = '/pages/goods/order_pay_status/index?order_id=' + orderId + '&msg=' + res
|
|
|
+ .msg +
|
|
|
+ '&type=3' + '&totalPrice=' + this.totalPrice
|
|
|
+ switch (status) {
|
|
|
+ case 'ORDER_EXIST':
|
|
|
+ case 'EXTEND_ORDER':
|
|
|
+ case 'PAY_ERROR':
|
|
|
+ uni.hideLoading();
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: res.msg
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case 'SUCCESS':
|
|
|
+ uni.hideLoading();
|
|
|
+ if (that.BargainId || that.combinationId || that.pinkId || that.seckillId || that
|
|
|
+ .discountId)
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: res.msg,
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 4,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: res.msg,
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case 'WECHAT_PAY':
|
|
|
+ that.toPay = true;
|
|
|
+ // #ifdef MP
|
|
|
+ /* that.toPay = true; */
|
|
|
+ let mp_pay_name = ''
|
|
|
+ if (uni.requestOrderPayment) {
|
|
|
+ mp_pay_name = 'requestOrderPayment'
|
|
|
+ } else {
|
|
|
+ mp_pay_name = 'requestPayment'
|
|
|
+ }
|
|
|
+ uni[mp_pay_name]({
|
|
|
+ timeStamp: jsConfig.timestamp,
|
|
|
+ nonceStr: jsConfig.nonceStr,
|
|
|
+ package: jsConfig.package,
|
|
|
+ signType: jsConfig.signType,
|
|
|
+ paySign: jsConfig.paySign,
|
|
|
+ success: function(res) {
|
|
|
+ uni.hideLoading();
|
|
|
+ if (that.BargainId || that.combinationId || that.pinkId || that
|
|
|
+ .seckillId || that.discountId)
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: '支付成功',
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 4,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: '支付成功',
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ },
|
|
|
+ fail: function(e) {
|
|
|
+ uni.hideLoading();
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: '取消支付'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages + '&status=2'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ complete: function(e) {
|
|
|
+ uni.hideLoading();
|
|
|
+ //关闭当前页面跳转至订单状态
|
|
|
+ if (res.errMsg == 'requestPayment:cancel') return that.$util
|
|
|
+ .Tips({
|
|
|
+ title: '取消支付'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages + '&status=2'
|
|
|
+ });
|
|
|
+ },
|
|
|
+ })
|
|
|
+ // #endif
|
|
|
+ // #ifdef H5
|
|
|
+ this.$wechat.pay(res.data.result.jsConfig).then(res => {
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: '支付成功',
|
|
|
+ icon: 'success'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages
|
|
|
+ });
|
|
|
+ }).catch(res => {
|
|
|
+ if (!this.$wechat.isWeixin()) {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: goPages +
|
|
|
+ '&msg=支付失败&status=2'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ if (res.errMsg == 'chooseWXPay:cancel') return that.$util.Tips({
|
|
|
+ title: '取消支付'
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages + '&status=2'
|
|
|
+ });
|
|
|
+ })
|
|
|
+ // #endif
|
|
|
+ // #ifdef APP-PLUS
|
|
|
+ uni.requestPayment({
|
|
|
+ provider: 'wxpay',
|
|
|
+ orderInfo: jsConfig,
|
|
|
+ success: (e) => {
|
|
|
+ let url = goPages;
|
|
|
+ uni.showToast({
|
|
|
+ title: "支付成功"
|
|
|
+ })
|
|
|
+ setTimeout(res => {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: url
|
|
|
+ })
|
|
|
+ }, 2000)
|
|
|
+ },
|
|
|
+ fail: (e) => {
|
|
|
+ let url = '/pages/goods/order_pay_status/index?order_id=' +
|
|
|
+ orderId +
|
|
|
+ '&msg=支付失败';
|
|
|
+ uni.showModal({
|
|
|
+ content: "支付失败",
|
|
|
+ showCancel: false,
|
|
|
+ success: function(res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: url
|
|
|
+ })
|
|
|
+ } else if (res.cancel) {
|
|
|
+ console.log('用户点击取消');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ complete: () => {
|
|
|
+ uni.hideLoading();
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ break;
|
|
|
+ case 'PAY_DEFICIENCY':
|
|
|
+ uni.hideLoading();
|
|
|
+ //余额不足
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: res.msg
|
|
|
+ }, {
|
|
|
+ tab: 5,
|
|
|
+ url: goPages + '&status=1'
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "WECHAT_H5_PAY":
|
|
|
+ uni.hideLoading();
|
|
|
+ that.$util.Tips({
|
|
|
+ title: '订单创建成功!'
|
|
|
+ }, {
|
|
|
+ tab: 4,
|
|
|
+ url: goPages + '&status=0'
|
|
|
+ });
|
|
|
+ setTimeout(() => {
|
|
|
+ location.href = res.data.result.jsConfig.mweb_url;
|
|
|
+ }, 2000);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 'ALIPAY_PAY':
|
|
|
+ //#ifdef H5
|
|
|
+ if (this.from === 'weixin') {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: `/pages/users/alipay_invoke/index?id=${orderId}&pay_key=${res.data.result.pay_key}`
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ uni.hideLoading();
|
|
|
+ that.formContent = res.data.result.jsConfig;
|
|
|
+ that.$nextTick(() => {
|
|
|
+ document.getElementById('alipaysubmit').submit();
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //#endif
|
|
|
+ // #ifdef MP
|
|
|
+ uni.navigateTo({
|
|
|
+ url: `/pages/users/alipay_invoke/index?id=${orderId}&link=${jsConfig.qrCode}`
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ // #ifdef APP-PLUS
|
|
|
+ uni.requestPayment({
|
|
|
+ provider: 'alipay',
|
|
|
+ orderInfo: jsConfig,
|
|
|
+ success: (e) => {
|
|
|
+ uni.showToast({
|
|
|
+ title: "支付成功"
|
|
|
+ })
|
|
|
+ let url = '/pages/goods/order_pay_status/index?order_id=' +
|
|
|
+ orderId +
|
|
|
+ '&msg=支付成功';
|
|
|
+ setTimeout(res => {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: url
|
|
|
+ })
|
|
|
+ }, 2000)
|
|
|
+
|
|
|
+ },
|
|
|
+ fail: (e) => {
|
|
|
+ let url = '/pages/goods/order_pay_status/index?order_id=' +
|
|
|
+ orderId +
|
|
|
+ '&msg=支付失败';
|
|
|
+ uni.showModal({
|
|
|
+ content: "支付失败",
|
|
|
+ showCancel: false,
|
|
|
+ success: function(res) {
|
|
|
+ if (res.confirm) {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: url
|
|
|
+ })
|
|
|
+ } else if (res.cancel) {
|
|
|
+ console.log('用户点击取消');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ complete: () => {
|
|
|
+ uni.hideLoading();
|
|
|
+ },
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ uni.hideLoading();
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: err
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clickTextArea() {
|
|
|
+ this.$refs.textarea.focus()
|
|
|
+ },
|
|
|
+ bindDateChange: function(e, index) {
|
|
|
+ this.confirm[index].value = e.target.value
|
|
|
+ },
|
|
|
+ bindTimeChange: function(e, index) {
|
|
|
+ this.confirm[index].value = e.target.value
|
|
|
+ },
|
|
|
+ bindSelectChange: function(e, index, item) {
|
|
|
+ this.confirm[index].value = item.wordsConfig.list[e.detail.value].val
|
|
|
+ },
|
|
|
+ getTimeranges(index) {
|
|
|
+ this.isShow = true
|
|
|
+ this.timerangesIndex = index
|
|
|
+ },
|
|
|
+ confrim(e) {
|
|
|
+ this.isShow = false;
|
|
|
+ this.confirm[this.timerangesIndex].value = e.time;
|
|
|
+ let arrayNew = [];
|
|
|
+ e.val.forEach(item => {
|
|
|
+ arrayNew.push(Number(item))
|
|
|
+ })
|
|
|
+ this.timeranges = arrayNew;
|
|
|
+ },
|
|
|
+ cancels() {
|
|
|
+ this.isShow = false;
|
|
|
+ },
|
|
|
+ // 单选
|
|
|
+ radioChange(e, index, item) {
|
|
|
+ this.confirm[index].value = item.wordsConfig.list[e.detail.value].val
|
|
|
+ },
|
|
|
+ // 多选
|
|
|
+ checkboxChange(e, index, item) {
|
|
|
+ let obj = e.detail.value;
|
|
|
+ let val = '';
|
|
|
+ item.wordsConfig.list.forEach((j, jindex) => {
|
|
|
+ obj.forEach(x => {
|
|
|
+ if (jindex == x) {
|
|
|
+ val = val + (val ? ',' : '') + j.val;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ this.confirm[index].value = val
|
|
|
+ },
|
|
|
+ formVerify() {
|
|
|
+
|
|
|
+ this.pay_close = true;
|
|
|
+ },
|
|
|
+ SubOrder: function(e) {
|
|
|
+ let that = this,
|
|
|
+ data = {};
|
|
|
+ if (!that.payType) return that.$util.Tips({
|
|
|
+ title: '请选择支付方式'
|
|
|
+ });
|
|
|
+ data = {
|
|
|
+ collate_code_id: that.collage_id || that.tableId,
|
|
|
+ custom_form: that.confirm,
|
|
|
+ real_name: that.contacts,
|
|
|
+ phone: that.contactsTel,
|
|
|
+ addressId: that.addressId,
|
|
|
+ formId: '',
|
|
|
+ couponId: that.priceGroup.couponPrice == 0 ? 0 : that.couponId,
|
|
|
+ payType: that.payType,
|
|
|
+ useIntegral: that.useIntegral,
|
|
|
+ bargainId: that.BargainId,
|
|
|
+ combinationId: that.combinationId,
|
|
|
+ discountId: that.discountId,
|
|
|
+ pinkId: that.pinkId,
|
|
|
+ seckill_id: that.seckillId,
|
|
|
+ mark: that.mark,
|
|
|
+ store_id: that.ptype == 6 ? that.system_store.id : (that.deliveryType == 1 ? 0 : that.system_store.id || 0),
|
|
|
+ 'from': that.from,
|
|
|
+ shipping_type: that.tableId ? 4 : that.$util.$h.Add(that.shippingType, 1),
|
|
|
+ 'new': that.news,
|
|
|
+ 'invoice_id': that.invChecked,
|
|
|
+ // #ifdef H5
|
|
|
+ quitUrl: location.protocol + '//' + location.hostname +
|
|
|
+ '/pages/goods/order_pay_status/index?' +
|
|
|
+ '&type=3' + '&totalPrice=' + this.totalPrice
|
|
|
+ // #endif
|
|
|
+ // #ifdef APP-PLUS
|
|
|
+ quitUrl: '/pages/goods/order_details/index?order_id=' + this.order_id
|
|
|
+ // #endif
|
|
|
+ };
|
|
|
+ if (data.payType == 'yue' && parseFloat(that.userInfo.now_money) < parseFloat(that.totalPrice))
|
|
|
+ return that.$util.Tips({
|
|
|
+ title: '余额不足!'
|
|
|
+ });
|
|
|
+ uni.showLoading({
|
|
|
+ title: '订单支付中'
|
|
|
+ });
|
|
|
+ // #ifdef MP
|
|
|
+ openPaySubscribe().then(() => {
|
|
|
+ that.payment(data);
|
|
|
+ });
|
|
|
+ // #endif
|
|
|
+ // #ifndef MP
|
|
|
+ that.payment(data);
|
|
|
+ // #endif
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+ /deep/.uni-date-x--border {
|
|
|
+ border: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.uni-icons {
|
|
|
+ font-size: 0 !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.uni-date-x {
|
|
|
+ color: #999;
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.uni-date__x-input {
|
|
|
+ font-size: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .height-add {
|
|
|
+ height: calc(120rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
|
|
+ height: calc(120rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/uni-checkbox[disabled] .uni-checkbox-input {
|
|
|
+ background-color: #eee;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg {
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.orderGoods {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ border-radius: 14rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload {
|
|
|
+ padding-bottom: 36rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue {
|
|
|
+ margin: 22rpx 23rpx 0 0;
|
|
|
+ width: 146rpx;
|
|
|
+ height: 146rpx;
|
|
|
+ position: relative;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #bbb;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue:nth-of-type(4n) {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue image {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ border-radius: 8rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue .icon-guanbi1 {
|
|
|
+ position: absolute;
|
|
|
+ font-size: 45rpx;
|
|
|
+ top: -10rpx;
|
|
|
+ right: -10rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue .close {
|
|
|
+ position: absolute;
|
|
|
+ width: 26rpx;
|
|
|
+ height: 26rpx;
|
|
|
+ border-radius: 0 8rpx 0 8rpx;
|
|
|
+ background-color: rgba(0, 0, 0, 0.6);
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue .close .iconfont {
|
|
|
+ font-size: 24rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue .icon-icon25201 {
|
|
|
+ color: #bfbfbf;
|
|
|
+ font-size: 50rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .confirmImg .upload .pictrue:nth-last-child(1) {
|
|
|
+ border: 1rpx solid #ddd;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+
|
|
|
+ .alipaysubmit {
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .line {
|
|
|
+ width: 100%;
|
|
|
+ height: 4rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .line image {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .headerCon {
|
|
|
+ background-color: #fff;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .icon-s-bianji {
|
|
|
+ width: 44rpx;
|
|
|
+ height: 44rpx;
|
|
|
+ background: #F5F5F5;
|
|
|
+ border-radius: 50%;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 44rpx;
|
|
|
+ font-size: 17rpx;
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-title {
|
|
|
+ height: 72rpx;
|
|
|
+ padding: 0 26rpx;
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ height: 32rpx;
|
|
|
+ background: #1890FF;
|
|
|
+ border-radius: 4rpx;
|
|
|
+ font-size: 20rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #FFFFFF;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 32rpx;
|
|
|
+ padding: 0 6rpx;
|
|
|
+
|
|
|
+ &.orange {
|
|
|
+ background: #FE960F;
|
|
|
+ }
|
|
|
+
|
|
|
+ &.red {
|
|
|
+ background: #E93323;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .add-text {
|
|
|
+ margin-left: 14rpx;
|
|
|
+ width: 360rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ font-size: 24rpx;
|
|
|
+ font-weight: 400;
|
|
|
+ color: #999999;
|
|
|
+
|
|
|
+ .icon-jiantou {
|
|
|
+ display: inline-block;
|
|
|
+ font-size: 20rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address {
|
|
|
+ padding: 0 26rpx;
|
|
|
+ height: 130rpx;
|
|
|
+
|
|
|
+ .icon {
|
|
|
+ .iconfont {
|
|
|
+ width: 44rpx;
|
|
|
+ height: 44rpx;
|
|
|
+ background: var(--view-minorColorT);
|
|
|
+ font-size: 20rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 44rpx;
|
|
|
+ color: var(--view-theme);
|
|
|
+ margin-left: 26rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address .addressCon {
|
|
|
+ width: 502rpx;
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #666;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address .addressCon .name {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #282828;
|
|
|
+ font-weight: bold;
|
|
|
+ margin-bottom: 10rpx;
|
|
|
+
|
|
|
+ .nameCon {
|
|
|
+ max-width: 244rpx;
|
|
|
+
|
|
|
+ &.on {
|
|
|
+ max-width: unset;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address .addressCon .name .phone {
|
|
|
+ margin-left: 50rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address .addressCon .default {
|
|
|
+ margin-right: 12rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .address .addressCon .setaddress {
|
|
|
+ color: #333;
|
|
|
+ font-size: 28rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress {
|
|
|
+ width: 100%;
|
|
|
+ background: linear-gradient(to bottom, var(--view-theme) 0%, #f5f5f5 100%);
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ padding-top: 24rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav {
|
|
|
+ width: 710rpx;
|
|
|
+
|
|
|
+ // margin: 0 auto;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item {
|
|
|
+ width: 355rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item.on {
|
|
|
+ position: relative;
|
|
|
+ width: 250rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item.on::before {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ content: "快递配送";
|
|
|
+ font-size: 28rpx;
|
|
|
+ display: block;
|
|
|
+ height: 0;
|
|
|
+ width: 336rpx;
|
|
|
+ border-width: 0 20rpx 80rpx 0;
|
|
|
+ border-style: none solid solid;
|
|
|
+ border-color: transparent transparent #fff;
|
|
|
+ z-index: 2;
|
|
|
+ border-radius: 7rpx 30rpx 0 0;
|
|
|
+ text-align: center;
|
|
|
+ // line-height: 80rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .header-title {
|
|
|
+
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #FFFFFF;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item:nth-of-type(2).on::before {
|
|
|
+ content: "到店自提";
|
|
|
+ border-width: 0 0 80rpx 20rpx;
|
|
|
+ border-radius: 30rpx 7rpx 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item.on2 {
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item.on2::before {
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ content: "到店自提";
|
|
|
+ font-size: 28rpx;
|
|
|
+ display: block;
|
|
|
+ height: 0;
|
|
|
+ width: 400rpx;
|
|
|
+ border-width: 0 0 60rpx 60rpx;
|
|
|
+ border-style: none solid solid;
|
|
|
+ border-color: transparent transparent rgba(255, 255, 255, 0.6);
|
|
|
+ border-radius: 40rpx 6rpx 0 0;
|
|
|
+ text-align: center;
|
|
|
+ // line-height: 60rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .nav .item:nth-of-type(1).on2::before {
|
|
|
+ content: "快递配送";
|
|
|
+ border-width: 0 60rpx 60rpx 0;
|
|
|
+ border-radius: 6rpx 40rpx 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .headerCon {
|
|
|
+ width: 710rpx;
|
|
|
+ margin: 0 auto;
|
|
|
+ border-radius: 14rpx;
|
|
|
+ background-color: #fff;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .allAddress .line {
|
|
|
+ width: 710rpx;
|
|
|
+ margin: 0 auto;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount .placeholder {
|
|
|
+ color: #ccc;
|
|
|
+ }
|
|
|
+
|
|
|
+ .placeholder-textarea {
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .placeholder {
|
|
|
+ position: absolute;
|
|
|
+ color: #ccc;
|
|
|
+ top: 26rpx;
|
|
|
+ left: 30rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper {
|
|
|
+ background-color: #fff;
|
|
|
+
|
|
|
+ width: 710rpx;
|
|
|
+ border-radius: 14rpx;
|
|
|
+ margin: 0 auto;
|
|
|
+ margin-top: 14rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .name {
|
|
|
+ position: relative;
|
|
|
+ width: 190rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .asterisk {
|
|
|
+ position: absolute;
|
|
|
+ color: red;
|
|
|
+ left: -15rpx
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item {
|
|
|
+ padding: 27rpx 30rpx;
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #282828;
|
|
|
+ border-bottom: 1px solid #f0f0f0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item.on {
|
|
|
+ padding: 17rpx 14rpx 17rpx 30rpx;
|
|
|
+ align-items: baseline;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item.on3 {
|
|
|
+ align-items: baseline;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item.on2 {
|
|
|
+ padding: 17rpx 30rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #999;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item.on .discount,
|
|
|
+ .order-submission .wrapper .item.on3 .discount {
|
|
|
+ width: 460rpx;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item.on3 .discount .city {
|
|
|
+ width: 400rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount input {
|
|
|
+ text-align: right;
|
|
|
+ width: 450rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount .iconfont {
|
|
|
+ color: #515151;
|
|
|
+ font-size: 30rpx;
|
|
|
+ margin-left: 15rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount .num {
|
|
|
+ font-size: 32rpx;
|
|
|
+ margin-right: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount .radio {
|
|
|
+ margin: 0 22rpx 0 22rpx;
|
|
|
+ padding: 10rpx 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .discount .radio /deep/uni-checkbox .uni-checkbox-input {
|
|
|
+ border-radius: 0
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .shipping {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #999;
|
|
|
+ position: relative;
|
|
|
+ padding-right: 58rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .shipping .iconfont {
|
|
|
+ font-size: 35rpx;
|
|
|
+ color: #707070;
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ top: 50%;
|
|
|
+ transform: translateY(-50%);
|
|
|
+ margin-left: 30rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item textarea {
|
|
|
+ background-color: #f9f9f9;
|
|
|
+ width: 650rpx;
|
|
|
+ height: 140rpx;
|
|
|
+ border-radius: 3rpx;
|
|
|
+ margin-top: 30rpx;
|
|
|
+ padding: 25rpx 28rpx;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .placeholder {
|
|
|
+ color: #ccc;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list {
|
|
|
+ margin-top: 35rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem {
|
|
|
+ border: 1px solid #eee;
|
|
|
+ border-radius: 6rpx;
|
|
|
+ height: 86rpx;
|
|
|
+ width: 100%;
|
|
|
+ box-sizing: border-box;
|
|
|
+ margin-top: 20rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #282828;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem.on {
|
|
|
+ border-color: #fc5445;
|
|
|
+ color: #e93323;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem .name {
|
|
|
+ width: 50%;
|
|
|
+ text-align: center;
|
|
|
+ border-right: 1px solid #eee;
|
|
|
+ padding-left: 80rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem .name .iconfont {
|
|
|
+ width: 44rpx;
|
|
|
+ height: 44rpx;
|
|
|
+ border-radius: 50%;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 44rpx;
|
|
|
+ background-color: #fe960f;
|
|
|
+ color: #fff;
|
|
|
+ font-size: 30rpx;
|
|
|
+ margin-right: 15rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem .name .iconfont.icon-weixin2 {
|
|
|
+ background-color: #41b035;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem .name .iconfont.icon-zhifubao {
|
|
|
+ background-color: #1677FF;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .wrapper .item .list .payItem .tip {
|
|
|
+ width: 49%;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 26rpx;
|
|
|
+ color: #aaa;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .moneyList {
|
|
|
+
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 30rpx;
|
|
|
+ width: 710rpx;
|
|
|
+ border-radius: 14rpx;
|
|
|
+ margin: 0 auto;
|
|
|
+ margin-top: 14rpx;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .moneyList .item {
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #282828;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .moneyList .item~.item {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .moneyList .item .money {
|
|
|
+ color: #868686;
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .footer {
|
|
|
+ width: 100%;
|
|
|
+ height: 100rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ padding: 0 30rpx;
|
|
|
+ font-size: 28rpx;
|
|
|
+ color: #333;
|
|
|
+ box-sizing: border-box;
|
|
|
+ position: fixed;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ z-index: 9;
|
|
|
+ height: calc(100rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
|
|
+ height: calc(100rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
|
|
+ padding-bottom: calc(0rpx+ constant(safe-area-inset-bottom)); ///兼容 IOS<11.2/
|
|
|
+ padding-bottom: calc(0rpx + env(safe-area-inset-bottom)); ///兼容 IOS>11.2/
|
|
|
+ }
|
|
|
+
|
|
|
+ .order-submission .footer .settlement {
|
|
|
+ font-size: 30rpx;
|
|
|
+ color: #fff;
|
|
|
+ width: 240rpx;
|
|
|
+ height: 70rpx;
|
|
|
+ background-color: var(--view-theme);
|
|
|
+ border-radius: 50rpx;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 70rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .footer .transparent {
|
|
|
+ opacity: 0
|
|
|
+ }
|
|
|
+
|
|
|
+ .tipaddress {
|
|
|
+ position: fixed;
|
|
|
+ left: 13%;
|
|
|
+ top: 25%;
|
|
|
+ // margin-left: -283rpx;
|
|
|
+ width: 560rpx;
|
|
|
+ height: 614rpx;
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 10rpx;
|
|
|
+ z-index: 100;
|
|
|
+ text-align: center;
|
|
|
+
|
|
|
+ .top {
|
|
|
+ width: 560rpx;
|
|
|
+ height: 270rpx;
|
|
|
+ border-top-left-radius: 10rpx;
|
|
|
+ border-top-right-radius: 10rpx;
|
|
|
+ background-image: url(../../../static/images/address.png);
|
|
|
+ background-repeat: round;
|
|
|
+ background-color: var(--view-theme);
|
|
|
+
|
|
|
+ .tipsphoto {
|
|
|
+ display: inline-block;
|
|
|
+ width: 200rpx;
|
|
|
+ height: 200rpx;
|
|
|
+ margin-top: 73rpx;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .bottom {
|
|
|
+ font-size: 32rpx;
|
|
|
+ font-weight: 400;
|
|
|
+
|
|
|
+ .font1 {
|
|
|
+
|
|
|
+ font-size: 36rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #333333;
|
|
|
+ margin: 32rpx 0rpx 22rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .font2 {
|
|
|
+ color: #666666;
|
|
|
+ margin-bottom: 48rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .btn {
|
|
|
+ width: 360rpx;
|
|
|
+ height: 82rpx;
|
|
|
+ border-radius: 42rpx;
|
|
|
+ background: linear-gradient(to left, var(--view-theme) 0%, #f5f5f5 100%);
|
|
|
+ color: #FFFFFF;
|
|
|
+ line-height: 82rpx;
|
|
|
+ margin: 0 auto;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .mark {
|
|
|
+ position: fixed;
|
|
|
+ top: 0;
|
|
|
+ left: 0;
|
|
|
+ bottom: 0;
|
|
|
+ right: 0;
|
|
|
+ background: rgba(0, 0, 0, 0.5);
|
|
|
+ z-index: 99;
|
|
|
+ }
|
|
|
+
|
|
|
+ .table-header {
|
|
|
+ width: 710rpx;
|
|
|
+ padding: 52rpx 24rpx 46rpx;
|
|
|
+ border-radius: 14rpx;
|
|
|
+ margin: 0 30rpx;
|
|
|
+ background-color: #FFFFFF;
|
|
|
+ font-size: 24rpx;
|
|
|
+ color: #999999;
|
|
|
+
|
|
|
+ .top {
|
|
|
+ display: flex;
|
|
|
+ margin-bottom: 18rpx;
|
|
|
+ }
|
|
|
+
|
|
|
+ .name {
|
|
|
+ flex: 1;
|
|
|
+ min-width: 0;
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 34rpx;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ .number {
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+
|
|
|
+ .light {
|
|
|
+ margin-right: 6rpx;
|
|
|
+ font-weight: 600;
|
|
|
+ font-size: 34rpx;
|
|
|
+ color: var(--view-theme);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //指派
|
|
|
+ .zp-wrap {
|
|
|
+ margin-top: 20rpx;
|
|
|
+ width: 750rpx;
|
|
|
+ height: 216rpx;
|
|
|
+ white-space: nowrap;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ .zp-item {
|
|
|
+ display: inline-block;
|
|
|
+ margin-right: 15rpx;
|
|
|
+ padding-top: 34rpx;
|
|
|
+ width: 172rpx;
|
|
|
+ height: 216rpx;
|
|
|
+ // background: #E02020;
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 10rpx;
|
|
|
+
|
|
|
+ .zp-logo {
|
|
|
+ display: block;
|
|
|
+ width: 106rpx;
|
|
|
+ height: 106rpx;
|
|
|
+ margin: auto;
|
|
|
+ border-radius: 50%;
|
|
|
+ background-color: #eee;
|
|
|
+ }
|
|
|
+
|
|
|
+ .zp-name {
|
|
|
+ margin-top: 15rpx;
|
|
|
+ width: 100%;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 30rpx;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #333333;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .choose {
|
|
|
+ background-color: #262261 !important;
|
|
|
+
|
|
|
+ .zp-name {
|
|
|
+ color: #fff !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|