forked from angelo/web-retail-h5
				
			
		
			
				
	
	
		
			1259 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			1259 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <!--
 | ||
|  * @Descripttion:
 | ||
|  * @version:
 | ||
|  * @Author: kBank
 | ||
|  * @Date: 2022-11-21 15:11:22
 | ||
| -->
 | ||
| <template>
 | ||
|   <view class="content">
 | ||
|     <view class="context">
 | ||
|       <!-- <view class="subTxt">
 | ||
|         <view class="subTxt1">{{ '会员信息' }}</view>
 | ||
|       </view> -->
 | ||
|       <u-form :model="form" labelWidth="75" :rules="rules" ref="uForm">
 | ||
|         <!-- <u-form-item :label="'发货方式'" borderBottom>
 | ||
|           <view class="pickerHui">
 | ||
|             <u-input v-model="form.deliveryName"
 | ||
|                      disabled
 | ||
|                      :placeholder="'请选择发货方式'"
 | ||
|                      border="none"></u-input>
 | ||
|             <u-icon name="arrow-down"></u-icon>
 | ||
|           </view>
 | ||
|         </u-form-item> -->
 | ||
|         <view>
 | ||
|           <u-form-item
 | ||
|             :label="'会员编号'"
 | ||
|             required
 | ||
|             borderBottom
 | ||
|             prop="upgradeMemberCode"
 | ||
|           >
 | ||
|             <u-input v-model="form.upgradeMemberCode" disabled border="none" />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item
 | ||
|             :label="'会员姓名'"
 | ||
|             required
 | ||
|             borderBottom
 | ||
|             prop="upgradeMemberName"
 | ||
|           >
 | ||
|             <u-input v-model="form.upgradeMemberName" disabled border="none" />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
| 
 | ||
|         <!-- <u-form-item
 | ||
|           :label="'发货方式'"
 | ||
|           required
 | ||
|           borderBottom
 | ||
|           @click="userInfo.pkSettleCountry != 1 ? (isDelivery = true) : ''"
 | ||
|           prop="deliveryWayLabel"
 | ||
|         >
 | ||
|           <view class="disFlex justBwn">
 | ||
|             <u-input
 | ||
|               v-model="form.deliveryWayLabel"
 | ||
|               :disabled="userInfo.pkSettleCountry == 1"
 | ||
|               border="none"
 | ||
|             />
 | ||
|             <u-icon name="arrow-right"></u-icon>
 | ||
|           </view>
 | ||
|         </u-form-item> -->
 | ||
|         <!-- <u-form-item
 | ||
|           :label="'运输方式'"
 | ||
|           :required="isDeliveryWay"
 | ||
|           borderBottom
 | ||
|           @click="userInfo.pkSettleCountry != 1 ? (isTrans = true) : ''"
 | ||
|           prop="transTypeLabel"
 | ||
|         >
 | ||
|           <view class="disFlex justBwn">
 | ||
|             <u-input
 | ||
|               v-model="form.transTypeLabel"
 | ||
|               :disabled="userInfo.pkSettleCountry == 1"
 | ||
|               border="none"
 | ||
|             />
 | ||
|             <u-icon name="arrow-right"></u-icon>
 | ||
|           </view>
 | ||
|         </u-form-item> -->
 | ||
| 
 | ||
|         <view class="subTxt" v-if="isDeliveryWay">
 | ||
|           <view class="subTxt1">{{ '收货人信息' }}</view>
 | ||
|           <span class="subTxt2" @click="addAdress">
 | ||
|             <u-icon color="#fff" name="plus-circle-fill"></u-icon>
 | ||
|             <view>{{ '添加' }}</view>
 | ||
|           </span>
 | ||
|         </view>
 | ||
|         <view v-if="isDeliveryWay">
 | ||
|           <u-form-item :label="'收货人'" borderBottom prop="recName">
 | ||
|             <u-input
 | ||
|               v-model.trim="form.recName"
 | ||
|               border="none"
 | ||
|               :maxlength="40"
 | ||
|               :placeholder="'请输入收货人'"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item
 | ||
|             :label="'收货电话'"
 | ||
|             borderBottom
 | ||
|             prop="recPhone"
 | ||
|             v-if="pkCountry == 1"
 | ||
|           >
 | ||
|             <u-input
 | ||
|               v-model.trim="form.recPhone"
 | ||
|               border="none"
 | ||
|               type="number"
 | ||
|               :maxlength="11"
 | ||
|               :placeholder="'请输入收货电话'"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item :label="'收货电话'" borderBottom prop="recPhone" v-else>
 | ||
|             <u-input
 | ||
|               v-model.trim="form.recPhone"
 | ||
|               border="none"
 | ||
|               :maxlength="30"
 | ||
|               :placeholder="'请输入收货电话'"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item
 | ||
|             :label="'收货地址'"
 | ||
|             borderBottom
 | ||
|             prop="diqu"
 | ||
|             @click="getDiqu"
 | ||
|           >
 | ||
|             <view class="disFlex justBwn">
 | ||
|               <u-input
 | ||
|                 v-model.trim="form.diqu"
 | ||
|                 :placeholder="'请选收货地址'"
 | ||
|                 border="none"
 | ||
|               ></u-input>
 | ||
|               <u-icon name="arrow-right"></u-icon>
 | ||
|             </view>
 | ||
|           </u-form-item>
 | ||
|           <u-form-item :label="'详细地址'" borderBottom prop="recAddress">
 | ||
|             <u-input
 | ||
|               v-model.trim="form.recAddress"
 | ||
|               border="none"
 | ||
|               maxlength="200"
 | ||
|               :placeholder="'请输入详细地址'"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item :label="'邮费'" borderBottom>
 | ||
|             <u-input disabled border="none" v-model="form.postage" />
 | ||
|           </u-form-item>
 | ||
|           <u-form-item :label="'备注'" borderBottom>
 | ||
|             <u-input
 | ||
|               v-model="form.remark"
 | ||
|               border="none"
 | ||
|               :placeholder="'请输入备注'"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|       </u-form>
 | ||
|       <view class="heng"> </view>
 | ||
|       <view class="subTxt" v-show="isDeliveryWay">
 | ||
|         <view>{{ '历史地址' }}</view>
 | ||
|       </view>
 | ||
|       <u-radio-group
 | ||
|         v-model="moren"
 | ||
|         v-show="isDeliveryWay"
 | ||
|         shape="circle"
 | ||
|         placement="column"
 | ||
|         @change="checkRadio"
 | ||
|       >
 | ||
|         <view
 | ||
|           v-for="item in addressList"
 | ||
|           :key="item.pkId"
 | ||
|           class="disFlex address_a"
 | ||
|         >
 | ||
|           <u-radio activeColor="#005BAC" :name="item.pkId"></u-radio>
 | ||
|           <view class="address_r">
 | ||
|             <view class="disFlex justBwn">
 | ||
|               <view class="disFlex">
 | ||
|                 <view>{{ item.recName }}</view>
 | ||
|                 <view class="mr" v-show="item.isDefault == 1">{{
 | ||
|                   '默认'
 | ||
|                 }}</view>
 | ||
|               </view>
 | ||
|               <view class="disFlex">
 | ||
|                 <u-icon
 | ||
|                   name="edit-pen"
 | ||
|                   @click="editAddress(item)"
 | ||
|                   style="margin-right: 20rpx"
 | ||
|                   color="#999999"
 | ||
|                   size="20"
 | ||
|                 ></u-icon>
 | ||
|                 <u-icon
 | ||
|                   name="trash"
 | ||
|                   @click="delAds(item.pkId)"
 | ||
|                   color="#999999"
 | ||
|                   size="20"
 | ||
|                 ></u-icon>
 | ||
|               </view>
 | ||
|             </view>
 | ||
|             <view class="address_rc">{{ item.recPhone }}</view>
 | ||
|             <view class="tit3">{{ item.recArea }}{{ item.recAddress }}</view>
 | ||
|           </view>
 | ||
|         </view>
 | ||
|       </u-radio-group>
 | ||
|       <view
 | ||
|         v-for="(item, index) in allGoodsData.orderItemsParams"
 | ||
|         :key="index"
 | ||
|         class="goodList"
 | ||
|       >
 | ||
|         <view class="goodList_i">
 | ||
|           <view class="goodList_it">
 | ||
|             <img :src="item.cover1" class="cover" alt="" />
 | ||
|             <view class="goodList_ir">
 | ||
|               <view class="goodList_ib">
 | ||
|                 <view class="tit1">
 | ||
|                   {{ item.waresName }}
 | ||
|                 </view>
 | ||
|                 <view class="tit5"> x{{ item.quantity }} </view>
 | ||
|               </view>
 | ||
|               <view class="goodList_ib">
 | ||
|                 <view class="tit2">
 | ||
|                   {{ item.price | numberToCurrency | isLocal }}
 | ||
|                 </view>
 | ||
|                 <view class="tit3"
 | ||
|                   >业绩: {{ item.achieve | numberToCurrency | isLocal }}</view
 | ||
|                 >
 | ||
|               </view>
 | ||
|             </view>
 | ||
|           </view>
 | ||
|           <view
 | ||
|             v-for="(stem, sndex) in item.waresItemsParamList"
 | ||
|             :key="sndex"
 | ||
|             v-if="item.energySilo != 1"
 | ||
|             class="product_i"
 | ||
|           >
 | ||
|             <img :src="stem.specCover" alt="" />
 | ||
|             <view class="product_il">
 | ||
|               <view class="tit4"
 | ||
|                 >{{ stem.productName }} {{ stem.skuInfo }}</view
 | ||
|               >
 | ||
|               <view class="tit5">x{{ stem.quantity }}</view>
 | ||
|             </view>
 | ||
|           </view>
 | ||
|           <view class="fen">
 | ||
|             <view class="disFlex justBwn">
 | ||
|               <view class="tit3">{{ '商品业绩' }}</view>
 | ||
|               <view class="tit1">{{
 | ||
|                 item.achieveAmount | numberToCurrency
 | ||
|               }}</view>
 | ||
|             </view>
 | ||
|             <view class="disFlex justBwn">
 | ||
|               <view class="tit3">{{ '金额小计' }}</view>
 | ||
|               <view class="tit1">{{
 | ||
|                 item.priceAmount | numberToCurrency
 | ||
|               }}</view>
 | ||
|             </view>
 | ||
|           </view>
 | ||
|         </view>
 | ||
|       </view>
 | ||
| 
 | ||
|       <view class="pad">
 | ||
|         <view class="disFlex justBwn">
 | ||
|           <view class="tit3">{{ '商品金额总计' }}(¥):</view>
 | ||
|           <view class="tit1">{{
 | ||
|             allGoodsData.priceAmount | numberToCurrency | isLocal
 | ||
|           }}</view>
 | ||
|         </view>
 | ||
|         <view class="disFlex justBwn">
 | ||
|           <view class="tit3">{{ '邮费' }}:</view>
 | ||
|           <view class="tit1">{{
 | ||
|             form.postage | numberToCurrency | isLocal
 | ||
|           }}</view>
 | ||
|         </view>
 | ||
|         <view class="disFlex justBwn">
 | ||
|           <view class="tit3">{{ '总价' }}:</view>
 | ||
|           <view class="tit1">{{
 | ||
|             totalAmont | numberToCurrency | isLocal
 | ||
|           }}</view>
 | ||
|         </view>
 | ||
|         <view class="disFlex justBwn">
 | ||
|           <view class="tit3">{{ '业绩' }}</view>
 | ||
|           <view class="tit1">{{
 | ||
|             allGoodsData.achieveAmount | numberToCurrency
 | ||
|           }}</view>
 | ||
|         </view>
 | ||
|         <view class="disFlex justBwn" v-if="specialArea == 13">
 | ||
|           <view class="tit3">BV</view>
 | ||
|           <view class="tit1">{{
 | ||
|             allGoodsData.assAchieveAmount | numberToCurrency
 | ||
|           }}</view>
 | ||
|         </view>
 | ||
|       </view>
 | ||
|     </view>
 | ||
|     <!-- 占空 -->
 | ||
|     <view style="height: 296rpx"></view>
 | ||
|     <!-- 底部 -->
 | ||
|     <view class="footer_f">
 | ||
|       <view class="footer">
 | ||
|         <view class="footer_l">
 | ||
|           <!-- <u-checkbox-group
 | ||
|             v-model="agreementShow"
 | ||
|             shape="circle"
 | ||
|             activeColor="#005BAC"
 | ||
|             @change="checkboxChange"
 | ||
|           >
 | ||
|             <u-checkbox :name="1"> </u-checkbox>
 | ||
|           </u-checkbox-group> -->
 | ||
|           <!-- <view class="tit3">{{ '请阅读并同意' }}</view> -->
 | ||
|           <!-- <view class="tit2" @click="toAgree" v-if="specialArea != 30">
 | ||
|             《{{ '购买协议' }}》</view
 | ||
|           > -->
 | ||
|           <!-- <view
 | ||
|             class="tit2"
 | ||
|             @click="toAgree"
 | ||
|             v-if="specialArea == 30 && userInfo.isDealer == 1"
 | ||
|           >
 | ||
|             《推广人员服务协议》</view
 | ||
|           > -->
 | ||
|           <!-- <view
 | ||
|             class="tit2"
 | ||
|             @click="toAgree"
 | ||
|             v-if="specialArea == 30 && userInfo.isDealer == 0"
 | ||
|           >
 | ||
|             《经销商合同》</view
 | ||
|           > -->
 | ||
|         </view>
 | ||
|         <view class="tit2 cen" v-if="specialArea == 30"
 | ||
|           >该礼包一旦购买不能退换</view
 | ||
|         >
 | ||
|         <view class="footer_r">
 | ||
|           <u-button
 | ||
|             type="success"
 | ||
|             class="uBtn"
 | ||
|             shape="circle"
 | ||
|             :loading="isLoading"
 | ||
|             :loadingText="'购买中'"
 | ||
|             @tap="goBuy"
 | ||
|             color="linear-gradient(to right, #005BAC, #005BAC )"
 | ||
|             >{{ '购买' }}</u-button
 | ||
|           >
 | ||
|         </view>
 | ||
|       </view>
 | ||
|     </view>
 | ||
|     <!-- 发货方式 -->
 | ||
|     <u-picker
 | ||
|       :show="isDelivery"
 | ||
|       @cancel="isDelivery = false"
 | ||
|       @confirm="sureDelivery"
 | ||
|       :columns="deliList"
 | ||
|       keyName="label"
 | ||
|     ></u-picker>
 | ||
|     <!-- 运输方式 -->
 | ||
|     <u-picker
 | ||
|       :show="isTrans"
 | ||
|       @cancel="isTrans = false"
 | ||
|       @confirm="sureTrans"
 | ||
|       :columns="transList"
 | ||
|       keyName="label"
 | ||
|     ></u-picker>
 | ||
| 
 | ||
|     <!-- 强制阅读协议 -->
 | ||
|     <mustAgreeMent :waresCodeList="waresCodeList"></mustAgreeMent>
 | ||
|     <agreement ref="agreement"></agreement>
 | ||
|     <!-- 经销商合同 -->
 | ||
|     <jxsht ref="jxsht"></jxsht>
 | ||
|     <!-- 推广服务协议 -->
 | ||
|     <tgfuxy ref="tgfuxy"></tgfuxy>
 | ||
|     <u-modal
 | ||
|       :show="delAddress"
 | ||
|       showConfirmButton
 | ||
|       showCancelButton
 | ||
|       :content="'确定要删除该收货地址吗' + '?'"
 | ||
|       confirmColor="#DE3932"
 | ||
|       @confirm="toDel"
 | ||
|       @cancel="delAddress = false"
 | ||
|       ref="uModal"
 | ||
|       :asyncClose="true"
 | ||
|     ></u-modal>
 | ||
|     <v-address
 | ||
|       ref="address"
 | ||
|       :defaultCode="defaultCode"
 | ||
|       @addressData="addressData"
 | ||
|     ></v-address>
 | ||
|   </view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import address from '@/components/address.vue'
 | ||
| import * as api from '@/config/regiest'
 | ||
| import mustAgreeMent from '@/components/mustAgreeMent.vue'
 | ||
| import agreement from '@/components/agreement.vue'
 | ||
| import jxsht from '@/components/jxsht.vue'
 | ||
| import tgfuxy from '@/components/tgfuxy.vue'
 | ||
| import {
 | ||
|   REGIEST_AREA,
 | ||
|   UPGRADE_AREA,
 | ||
|   REPURCHASE_AREA,
 | ||
|   REISSUE_AREA,
 | ||
| } from '@/util/specialAreaMap'
 | ||
| 
 | ||
| export default {
 | ||
|   components: {
 | ||
|     'v-address': address,
 | ||
|     mustAgreeMent,
 | ||
|     agreement,
 | ||
|     jxsht,
 | ||
|     tgfuxy,
 | ||
|   },
 | ||
|   data() {
 | ||
|     return {
 | ||
|       isDeliveryWay: true,
 | ||
|       isDp: false,
 | ||
|       storehouseList: [],
 | ||
|       isCk: false,
 | ||
|       strTitle: '',
 | ||
|       delAddress: false,
 | ||
|       waresCodeList: [],
 | ||
|       defaultCode: [],
 | ||
|       moren: '',
 | ||
|       addressList: [],
 | ||
|       deliList: [],
 | ||
|       transList: [],
 | ||
|       bankList: [],
 | ||
|       isDelivery: false,
 | ||
|       isBank: false,
 | ||
|       isTrans: false,
 | ||
|       countryIndex: 0,
 | ||
|       isCountry: false,
 | ||
|       userInfo: '',
 | ||
|       countryList: [],
 | ||
|       isClick: 0,
 | ||
|       specialArea: '',
 | ||
|       shoppingArr: [],
 | ||
|       allGoodsData: {
 | ||
|         deleteList: [],
 | ||
|       },
 | ||
|       pageList: {
 | ||
|         mail: false,
 | ||
|         card: false,
 | ||
|         bankName: false,
 | ||
|         bankNo: false,
 | ||
|         accountBranch: false,
 | ||
|       },
 | ||
| 
 | ||
|       form: {
 | ||
|         deliveryName: '快递发货',
 | ||
|         deliveryWay: 1,
 | ||
|         postage: 0,
 | ||
|         transType: 1,
 | ||
|         pkGradeVal: '',
 | ||
|       },
 | ||
|       deliList: [],
 | ||
|       diqu: '',
 | ||
|       allData: [],
 | ||
|       goodsNum: 1,
 | ||
|       agreementShow: [1],
 | ||
|       priceAmount: 0, //商品总价
 | ||
|       achiveAmount: 0, //总业绩
 | ||
|       totalAmont: 0,
 | ||
|       orderItemsParams: [],
 | ||
|       isLoading: false,
 | ||
|       centerCodeId: '',
 | ||
|       rules: {
 | ||
|         upgradeMemberCode: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             trigger: ['blur'],
 | ||
|           },
 | ||
|         ],
 | ||
| 
 | ||
|         recName: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请输入收货人',
 | ||
|             trigger: ['change', 'blur'],
 | ||
|           },
 | ||
|         ],
 | ||
|         recPhone: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             validator: this.checkRecPhone,
 | ||
|             trigger: ['change', 'blur'],
 | ||
|           },
 | ||
|         ],
 | ||
|         diqu: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请选择收货地址',
 | ||
|             trigger: ['change', 'blur'],
 | ||
|           },
 | ||
|         ],
 | ||
|         recAddress: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请输入详细地址',
 | ||
|             trigger: ['change', 'blur'],
 | ||
|           },
 | ||
|         ],
 | ||
|         transTypeLabel: [
 | ||
|           {
 | ||
|             validator: this.transPass,
 | ||
|             trigger: ['change'],
 | ||
|           },
 | ||
|         ],
 | ||
|         deliveryWayLabel: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请选择发货方式',
 | ||
|             trigger: ['change'],
 | ||
|           },
 | ||
|         ],
 | ||
|         makerSpaceMemberLabel: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请选择',
 | ||
|             trigger: ['change'],
 | ||
|           },
 | ||
|         ],
 | ||
|       },
 | ||
|       delId: '',
 | ||
|       isSpace: false,
 | ||
|       checkObj: {},
 | ||
|       selTable: [],
 | ||
|       pkCountry: '',
 | ||
|       howSure: false,
 | ||
|       ishowSure: false,
 | ||
|       queryCardList: [],
 | ||
|     }
 | ||
|   },
 | ||
|   onLoad(options) {
 | ||
|     this.pkCountry = uni.getStorageSync('pkCountry')
 | ||
|     this.specialArea = options.specialArea
 | ||
| 
 | ||
|     this.shoppingArr = JSON.parse(options.shoppArr)
 | ||
|     if (options.selTable) {
 | ||
|       let a = JSON.parse(options.selTable)
 | ||
|       let b = a.map(item => {
 | ||
|         return {
 | ||
|           waresCode: item.waresCode,
 | ||
|           quantity: item.quantity,
 | ||
|           waresItemsParamList: item.productGroup,
 | ||
|           waresName: item.waresName,
 | ||
|           achieve: 0,
 | ||
|           achieveAmount: 0,
 | ||
|           price: 0,
 | ||
|           priceAmount: 0,
 | ||
|           cover1: item.cover1,
 | ||
|           energySilo: 1,
 | ||
|         }
 | ||
|       })
 | ||
|       b.forEach(item => {
 | ||
|         item.waresItemsParamList = item.waresItemsParamList.map(ctem => {
 | ||
|           return {
 | ||
|             pkWaresSpecsSku: ctem.pkProductSku,
 | ||
|             quantity: ctem.quantity,
 | ||
|           }
 | ||
|         })
 | ||
|       })
 | ||
|       this.selTable = b
 | ||
|     }
 | ||
|     // 获取购物车详情
 | ||
|     this.getCatDetail()
 | ||
|     // 获取页面权限
 | ||
|     this.getPageList()
 | ||
|     // 幂等性
 | ||
|     this.getGenerate()
 | ||
|     //  登录信息
 | ||
|     this.userInfo = uni.getStorageSync('User')
 | ||
|     this.form.upgradeMemberCode = this.userInfo.memberCode
 | ||
|     this.form.upgradeMemberName = this.userInfo.memberName
 | ||
|     // this.getUserName()
 | ||
| 
 | ||
|     if (this.specialArea == 30) {
 | ||
|       this.agreementShow = [1]
 | ||
|       this.$forceUpdate()
 | ||
|     }
 | ||
|     this.setPageTitle(this.specialArea)
 | ||
|   },
 | ||
|   onShow() {
 | ||
|     // 获取地址
 | ||
|     this.getAddressList()
 | ||
|   },
 | ||
|   methods: {
 | ||
|     setPageTitle(areaId) {
 | ||
|       const areaList = [
 | ||
|         REGIEST_AREA,
 | ||
|         UPGRADE_AREA,
 | ||
|         REISSUE_AREA,
 | ||
|         REPURCHASE_AREA,
 | ||
|       ]
 | ||
|       const title = areaList.find(item => item.id == areaId)?.name
 | ||
|       uni.setNavigationBarTitle({
 | ||
|         title,
 | ||
|       })
 | ||
|     },
 | ||
|     toAgree() {
 | ||
|       // agreeMent
 | ||
|       if (this.specialArea == 30) {
 | ||
|         if (this.userInfo.isDealer == 1) {
 | ||
|           this.$refs.tgfuxy.openDig()
 | ||
|         } else {
 | ||
|           this.$refs.jxsht.openDig()
 | ||
|         }
 | ||
|         // tgfuxy
 | ||
|       } else {
 | ||
|         this.$refs.agreement.openDig()
 | ||
|       }
 | ||
|     },
 | ||
|     getMember() {
 | ||
|       let deleteList = []
 | ||
|       this.shoppingArr.forEach(item => {
 | ||
|         deleteList.push({
 | ||
|           shoppingId: item,
 | ||
|         })
 | ||
|       })
 | ||
|       this.allGoodsData.deleteList = deleteList
 | ||
|       this.allGoodsData.upgradeMemberCode = this.form.upgradeMemberCode
 | ||
|       if (this.specialArea == 2) {
 | ||
|         let howSure = this.allGoodsData.orderItemsParams.some(
 | ||
|           item => item.isMakerGift == 4 || item.isMakerGift == 0
 | ||
|         )
 | ||
|         this.howSure = howSure
 | ||
|       }
 | ||
| 
 | ||
|       api.memLevel(this.allGoodsData).then(res => {
 | ||
|         if (res.data.isEnough) {
 | ||
|           console.log(res.data, 'res.data...memLevel')
 | ||
|           this.form.pkGradeVal = res.data.pkGradeVal
 | ||
|         } else {
 | ||
|           this.isLoading.close()
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
|     addAdress() {
 | ||
|       uni.navigateTo({
 | ||
|         url: '/pages/address/index',
 | ||
|       })
 | ||
|     },
 | ||
|     editAddress(item) {
 | ||
|       uni.navigateTo({
 | ||
|         url: '/pages/address/index?pkId=' + item.pkId,
 | ||
|       })
 | ||
|     },
 | ||
|     delAds(id) {
 | ||
|       this.delId = id
 | ||
|       this.delAddress = true
 | ||
|     },
 | ||
|     toDel() {
 | ||
|       api.delAddress(this.delId).then(res => {
 | ||
|         uni.showToast({
 | ||
|           title: '删除成功',
 | ||
|           icon: 'none',
 | ||
|         })
 | ||
|         this.getAddressList()
 | ||
|       })
 | ||
|       this.delAddress = false
 | ||
|     },
 | ||
|     getPageList() {
 | ||
|       api.registerList().then(res => {
 | ||
|         res.data.forEach(item => {
 | ||
|           if (item.field == 'MAILBOX') {
 | ||
|             this.pageList.mail = true
 | ||
|           } else if (item.field == 'CREDENTIALS') {
 | ||
|             this.pageList.card = true
 | ||
|           } else if (item.field == 'BANK_NAME') {
 | ||
|             this.pageList.bankName = true
 | ||
|           } else if (item.field == 'BANK_NO') {
 | ||
|             this.pageList.bankNo = true
 | ||
|           } else if (item.field == 'Account_Branch') {
 | ||
|             this.pageList.accountBranch = true
 | ||
|           }
 | ||
|         })
 | ||
|       })
 | ||
|     },
 | ||
|     getCatDetail() {
 | ||
|       api
 | ||
|         .shoppingWaresDetail({
 | ||
|           shoppingIds: this.shoppingArr,
 | ||
|           specialArea: this.specialArea,
 | ||
|         })
 | ||
|         .then(res => {
 | ||
|           this.allGoodsData = res.data
 | ||
|           this.waresCodeList = res.data.orderItemsParams.map(item => {
 | ||
|             return item.waresCode
 | ||
|           })
 | ||
|           this.allGoodsData.specialArea = this.specialArea
 | ||
|           this.selTable.forEach(item => {
 | ||
|             this.allGoodsData.orderItemsParams.push(item)
 | ||
|           })
 | ||
|           this.totalAmont = this.allGoodsData.priceAmount
 | ||
|           let orderItemsParams = []
 | ||
|           this.waresCodeList.forEach(item => {
 | ||
|             orderItemsParams.push({
 | ||
|               waresCode: item,
 | ||
|             })
 | ||
|           })
 | ||
|           this.checkObj = {
 | ||
|             specialArea: this.specialArea,
 | ||
|             orderItemsParams: orderItemsParams,
 | ||
|           }
 | ||
|           // 获取运输方式
 | ||
|           this.getTransList()
 | ||
|           // 获取发货方式
 | ||
|           this.getDeliveryList()
 | ||
|           if (
 | ||
|             this.specialArea == 2 ||
 | ||
|             this.specialArea == 25 ||
 | ||
|             this.specialArea == 27
 | ||
|           ) {
 | ||
|             this.getMember()
 | ||
|           }
 | ||
|           // 判断特殊商品
 | ||
|           if (this.specialArea == 3) {
 | ||
|             this.checkGoods()
 | ||
|           }
 | ||
|         })
 | ||
|     },
 | ||
|     checkGoods() {
 | ||
|       // 判断特殊商品
 | ||
|       api.makerList().then(res => {
 | ||
|         if (res.data.length > 0) {
 | ||
|           let isYes = 0
 | ||
|           res.data.forEach(item => {
 | ||
|             if (
 | ||
|               this.allGoodsData.orderItemsParams.some(
 | ||
|                 ctem => ctem.waresCode == item
 | ||
|               )
 | ||
|             ) {
 | ||
|               isYes++
 | ||
|             }
 | ||
|           })
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
|     transPass(rule, value, callback) {
 | ||
|       if (this.isDeliveryWay) {
 | ||
|         if (!value) {
 | ||
|           callback(new Error('请选择运输方式'))
 | ||
|         } else {
 | ||
|           callback()
 | ||
|         }
 | ||
|       } else {
 | ||
|         callback()
 | ||
|       }
 | ||
|     },
 | ||
|     checkAddress() {},
 | ||
|     checkRecPhone(rule, value, callback) {
 | ||
|       if (!value) {
 | ||
|         callback(new Error('请输入联系方式'))
 | ||
|       } else {
 | ||
|         if (this.userInfo.pkSettleCountry == 1) {
 | ||
|           let patrn = /^(1\d{10})$/
 | ||
|           if (patrn.test(value)) {
 | ||
|             callback()
 | ||
|           } else {
 | ||
|             callback(new Error('请输入正确联系方式'))
 | ||
|           }
 | ||
|         } else {
 | ||
|           let patrn = /^(1\d{10})$/
 | ||
|           if (value.length >= 1 && value.length <= 30) {
 | ||
|             callback()
 | ||
|           } else {
 | ||
|             callback(new Error('请输入正确联系方式'))
 | ||
|           }
 | ||
|         }
 | ||
|       }
 | ||
|     },
 | ||
| 
 | ||
|     sureCk(e) {
 | ||
|       const { value } = e
 | ||
|       this.form.pkStorehouse = value[0].id
 | ||
|       this.form.pkStorehouseLabel = value[0].label
 | ||
|       this.isCk = false
 | ||
|     },
 | ||
|     sureDp(e) {
 | ||
|       const { value } = e
 | ||
|       this.form.pkMemberStore = value[0].id
 | ||
|       this.form.pkMemberStoreLabel = value[0].label
 | ||
|       this.isDp = false
 | ||
|     },
 | ||
|     getAddressList() {
 | ||
|       api.addressList().then(res => {
 | ||
|         this.addressList = res.data
 | ||
|         this.addressList.forEach(item => {
 | ||
|           if (item.isDefault == 1) {
 | ||
|             this.moren = item.pkId
 | ||
|             this.checkRadio()
 | ||
|           }
 | ||
|         })
 | ||
|       })
 | ||
|     },
 | ||
|     getUserName() {
 | ||
|       api
 | ||
|         .upgRel({
 | ||
|           upgradeMemberCode: this.form.upgradeMemberCode,
 | ||
|         })
 | ||
|         .then(res => {
 | ||
|           if (res.code == 200) {
 | ||
|             this.form.upgradeMemberName = res.data.upgradeMemberName
 | ||
|             this.$forceUpdate()
 | ||
|           }
 | ||
|         })
 | ||
|     },
 | ||
|     checkboxChange(e) {},
 | ||
|     checkRadio() {
 | ||
|       let arr = []
 | ||
|       this.addressList.forEach(item => {
 | ||
|         if (item.pkId == this.moren) {
 | ||
|           this.form.recName = item.recName
 | ||
|           this.form.nameList = item.recArea
 | ||
|           this.form.recPhone = item.recPhone
 | ||
|           this.form.recAddress = item.recAddress
 | ||
|           this.form.recProvince = item.recProvince
 | ||
|           this.form.recCity = item.recCity
 | ||
|           if (item.recCounty) {
 | ||
|             this.form.diqu = `${item.recProvinceVal}-${item.recCityVal}-${item.recCountyVal}`
 | ||
|             this.form.recCounty = item.recCounty
 | ||
|           } else {
 | ||
|             this.form.diqu = `${item.recProvinceVal}-${item.recCityVal}`
 | ||
|             this.form.recCounty = ''
 | ||
|           }
 | ||
|           this.defaultCode = [
 | ||
|             item.recProvince,
 | ||
|             item.recCity,
 | ||
|             item.recCounty || '',
 | ||
|           ]
 | ||
|         }
 | ||
|       })
 | ||
|       // this.allGoodsData.deliveryWay = this.form.deliveryWay
 | ||
|       // this.allGoodsData.transType = this.form.transType
 | ||
|       setTimeout(() => {
 | ||
|         this.getPostAge()
 | ||
|         this.$forceUpdate()
 | ||
|       }, 50)
 | ||
|     },
 | ||
|     getPostAge() {
 | ||
|       let deleteList = []
 | ||
|       this.shoppingArr.forEach(item => {
 | ||
|         deleteList.push({
 | ||
|           shoppingId: item,
 | ||
|         })
 | ||
|       })
 | ||
|       // this.allGoodsData.deliveryWay = this.form.deliveryWay
 | ||
|       // this.allGoodsData.transType = this.form.transType
 | ||
|       this.allGoodsData.deleteList = deleteList
 | ||
|       this.allGoodsData.shopList = deleteList
 | ||
|       api
 | ||
|         .queryPostage(
 | ||
|           Object.assign(
 | ||
|             {
 | ||
|               specialArea: this.specialArea,
 | ||
|               recName: this.form.recName,
 | ||
|               recPhone: this.form.recPhone,
 | ||
|               recAddress: this.form.recAddress,
 | ||
|               recProvince: this.form.recProvince,
 | ||
|               recCity: this.form.recCity,
 | ||
|               recCounty: this.form.recCounty,
 | ||
|               transType: this.form.transType,
 | ||
|               deliveryWay: this.form.deliveryWay,
 | ||
|             },
 | ||
|             this.allGoodsData
 | ||
|           )
 | ||
|         )
 | ||
|         .then(res => {
 | ||
|           this.form.postage = Number(res.data.postage).toFixed(2)
 | ||
|           this.totalAmont =
 | ||
|             parseFloat(this.allGoodsData.priceAmount) +
 | ||
|             parseFloat(res.data.postage)
 | ||
|         })
 | ||
|     },
 | ||
|     getTransList() {
 | ||
|       api.transportList().then(res => {
 | ||
|         let data = res.data.map(item => {
 | ||
|           return {
 | ||
|             id: item.value,
 | ||
|             label: item.label,
 | ||
|           }
 | ||
|         })
 | ||
|         this.transList = [data]
 | ||
|         if (this.userInfo.pkSettleCountry == 1) {
 | ||
|           this.form.transType = 1
 | ||
|           data.forEach(item => {
 | ||
|             if (item.id == 1) {
 | ||
|               this.form.transTypeLabel = item.label
 | ||
|             }
 | ||
|           })
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
|     getDeliveryList() {
 | ||
|       api.deliveryList().then(res => {
 | ||
|         let data = res.data.map(item => {
 | ||
|           return {
 | ||
|             id: item.value,
 | ||
|             label: item.label,
 | ||
|           }
 | ||
|         })
 | ||
|         this.deliList = [data]
 | ||
|         if (this.userInfo.pkSettleCountry == 1) {
 | ||
|           this.form.deliveryWay = 1
 | ||
|           data.forEach(item => {
 | ||
|             if (item.id == 1) {
 | ||
|               this.form.deliveryWayLabel = item.label
 | ||
|             }
 | ||
|           })
 | ||
|         }
 | ||
|       })
 | ||
|     },
 | ||
| 
 | ||
|     surehowSure(e) {
 | ||
|       const { value } = e
 | ||
|       this.form.makerSpaceMember = value[0].id
 | ||
|       this.form.makerSpaceMemberLabel = value[0].label
 | ||
|       this.ishowSure = false
 | ||
|     },
 | ||
|     sureTrans(e) {
 | ||
|       const { value } = e
 | ||
|       this.form.transType = value[0].id
 | ||
|       this.form.transTypeLabel = value[0].label
 | ||
|       this.isTrans = false
 | ||
|     },
 | ||
|     sureDelivery(e) {
 | ||
|       const { value } = e
 | ||
|       this.form.deliveryWay = value[0].id
 | ||
|       this.form.deliveryWayLabel = value[0].label
 | ||
|       if (value[0].id == 2 || value[0].id == 3) {
 | ||
|         this.isDeliveryWay = false
 | ||
|       } else {
 | ||
|         this.isDeliveryWay = true
 | ||
|       }
 | ||
|       this.isDelivery = false
 | ||
|     },
 | ||
|     getGenerate() {
 | ||
|       api.generate().then(res => {
 | ||
|         uni.setStorageSync('mToken', res.msg)
 | ||
|       })
 | ||
|     },
 | ||
|     goBuy() {
 | ||
|       this.$refs.uForm.validate().then(res => {
 | ||
|         if (this.agreementShow.length == 0) {
 | ||
|           uni.showToast({
 | ||
|             title: '请阅读并同意购买协议',
 | ||
|             icon: 'none',
 | ||
|             duration: 1500,
 | ||
|           })
 | ||
|           return
 | ||
|         }
 | ||
| 
 | ||
|         this.isLoading = true
 | ||
|         let deleteList = []
 | ||
|         this.shoppingArr.forEach(item => {
 | ||
|           deleteList.push({
 | ||
|             shoppingId: item,
 | ||
|           })
 | ||
|         })
 | ||
|         let url
 | ||
| 
 | ||
|         api
 | ||
|           .confirmOthOrder(
 | ||
|             Object.assign({}, this.form, this.allGoodsData, {
 | ||
|               deleteList: deleteList,
 | ||
|               shopList: deleteList,
 | ||
|               buyMemberCode: this.userInfo.memberCode,
 | ||
|             })
 | ||
|           )
 | ||
|           .then(res => {
 | ||
|             this.isLoading = false
 | ||
| 
 | ||
|             if (res.code == 200) {
 | ||
|               const params = {
 | ||
|                 ...res.data,
 | ||
|                 specialArea: this.specialArea,
 | ||
|               }
 | ||
|               uni.redirectTo({
 | ||
|                 url:
 | ||
|                   '/pages/pay/index?paramsPost=' +
 | ||
|                   JSON.stringify(params) +
 | ||
|                   '&businessType=1',
 | ||
|               })
 | ||
|             }
 | ||
|           })
 | ||
|       })
 | ||
|     },
 | ||
|     getDiqu() {
 | ||
|       this.$refs.address.setShow()
 | ||
|     },
 | ||
|     confirmPopup() {},
 | ||
|     addressData(diqu, obj) {
 | ||
|       this.form.diqu = diqu
 | ||
|       this.form.recProvince = obj.province + ''
 | ||
|       this.form.recCity = obj.city + ''
 | ||
|       this.form.recCounty = obj.county + ''
 | ||
|       this.$forceUpdate()
 | ||
|       this.getPostAge()
 | ||
|       // this.queryAdressPostage()
 | ||
|     },
 | ||
|   },
 | ||
| }
 | ||
| </script>
 | ||
| 
 | ||
| <style lang="scss" scoped>
 | ||
| .content {
 | ||
|   .con_top {
 | ||
|     width: 100%;
 | ||
|     position: fixed;
 | ||
|     display: flex;
 | ||
|     background: #005bac;
 | ||
|     font-size: 28rpx;
 | ||
|     font-weight: 400;
 | ||
|     color: #ffffff;
 | ||
|     padding: 24rpx 0;
 | ||
|     z-index: 1;
 | ||
| 
 | ||
|     .con_top_i {
 | ||
|       flex: 1;
 | ||
|       text-align: center;
 | ||
| 
 | ||
|       .bai {
 | ||
|         width: 52rpx;
 | ||
|         height: 6rpx;
 | ||
|         background: #ffffff;
 | ||
|         margin: 0 auto;
 | ||
|         margin-top: 10rpx;
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| 
 | ||
|   .zhan {
 | ||
|     height: 96rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .countImg {
 | ||
|   width: 62rpx;
 | ||
|   height: 41rpx;
 | ||
|   margin-right: 20rpx;
 | ||
| }
 | ||
| 
 | ||
| .context {
 | ||
| }
 | ||
| 
 | ||
| ::v-deep .u-form-item__body {
 | ||
|   padding: 10px 20px;
 | ||
| }
 | ||
| 
 | ||
| ::v-deep .u-input__content {
 | ||
|   padding: 0px 20rpx;
 | ||
| }
 | ||
| 
 | ||
| ::v-deep .u-form-item__body__right__message {
 | ||
|   margin-left: 105px !important;
 | ||
| }
 | ||
| 
 | ||
| .disFlex {
 | ||
|   display: flex;
 | ||
|   align-items: center;
 | ||
| }
 | ||
| 
 | ||
| .justBwn {
 | ||
|   width: 100%;
 | ||
|   justify-content: space-between;
 | ||
| }
 | ||
| 
 | ||
| .goodList {
 | ||
|   display: flex;
 | ||
|   padding: 20rpx;
 | ||
|   border-bottom: 1px solid #eee;
 | ||
|   background: #fff;
 | ||
| }
 | ||
| 
 | ||
| .cover {
 | ||
|   width: 136rpx;
 | ||
|   height: 136rpx;
 | ||
|   background: #ffffff;
 | ||
|   border: 1px solid #eeeeee;
 | ||
|   border-radius: 10rpx;
 | ||
| }
 | ||
| 
 | ||
| .goodList_i {
 | ||
|   flex: 1;
 | ||
| }
 | ||
| 
 | ||
| .goodList_it {
 | ||
|   display: flex;
 | ||
|   padding: 0rpx 0 20rpx 0rpx;
 | ||
| 
 | ||
|   .goodList_ir {
 | ||
|     margin-left: 20rpx;
 | ||
|     flex: 1;
 | ||
|     display: flex;
 | ||
|     flex-direction: column;
 | ||
|     justify-content: space-between;
 | ||
| 
 | ||
|     .goodList_ib {
 | ||
|       display: flex;
 | ||
|       align-items: center;
 | ||
|       justify-content: space-between;
 | ||
| 
 | ||
|       img {
 | ||
|         width: 56rpx;
 | ||
|         height: 56rpx;
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .product_i {
 | ||
|   display: flex;
 | ||
|   align-items: center;
 | ||
|   background: #f6f6f6;
 | ||
|   padding: 28rpx;
 | ||
| 
 | ||
|   .product_il {
 | ||
|     display: flex;
 | ||
|     align-items: center;
 | ||
|     flex: 1;
 | ||
|     justify-content: space-between;
 | ||
|     margin-left: 20rpx;
 | ||
|   }
 | ||
| 
 | ||
|   img {
 | ||
|     width: 50rpx;
 | ||
|     height: 50rpx;
 | ||
|     background: #ffffff;
 | ||
|     border: 1px solid #dddddd;
 | ||
|     border-radius: 10rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .fen {
 | ||
|   background: #f6f6f6;
 | ||
|   padding: 0 28rpx 28rpx 28rpx;
 | ||
| }
 | ||
| 
 | ||
| .pad {
 | ||
|   padding: 28rpx;
 | ||
| }
 | ||
| 
 | ||
| .footer_f {
 | ||
|   position: fixed;
 | ||
|   bottom: 0;
 | ||
|   width: 100%;
 | ||
|   z-index: 10;
 | ||
|   background: #f2f2f2;
 | ||
|   // height: 296rpx;
 | ||
| }
 | ||
| 
 | ||
| .footer {
 | ||
|   display: flex;
 | ||
|   flex-direction: column;
 | ||
|   justify-content: space-between;
 | ||
|   padding: 20rpx 24rpx 40rpx 20rpx;
 | ||
| 
 | ||
|   .footer_l {
 | ||
|     display: flex;
 | ||
|     justify-content: center;
 | ||
|     margin: 30rpx 0 20rpx 0;
 | ||
|   }
 | ||
| 
 | ||
|   .footer_r {
 | ||
|     // flex: 1;
 | ||
|     display: flex;
 | ||
|     align-items: center;
 | ||
|     font-size: 20rpx;
 | ||
|     font-weight: 500;
 | ||
|     color: #333333;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .tit1 {
 | ||
|   font-size: 28rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: 400;
 | ||
|   color: #333333;
 | ||
| }
 | ||
| 
 | ||
| .tit2 {
 | ||
|   font-size: 26rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: bold;
 | ||
|   color: #f82c1a;
 | ||
| }
 | ||
| 
 | ||
| .cen {
 | ||
|   text-align: center;
 | ||
| }
 | ||
| 
 | ||
| .tit3 {
 | ||
|   font-size: 26rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: 400;
 | ||
|   color: #999999;
 | ||
| }
 | ||
| 
 | ||
| .tit4 {
 | ||
|   font-size: 28rpx;
 | ||
|   font-family: PingFang SC;
 | ||
|   font-weight: 400;
 | ||
|   color: #333333;
 | ||
| }
 | ||
| 
 | ||
| .tit5 {
 | ||
|   font-size: 24rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: 400;
 | ||
|   color: #999999;
 | ||
| }
 | ||
| 
 | ||
| .heng {
 | ||
|   height: 20rpx;
 | ||
|   background: #f2f2f2;
 | ||
| }
 | ||
| 
 | ||
| .subTxt {
 | ||
|   background: #005bac;
 | ||
|   font-size: 28rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: bold;
 | ||
|   color: #fff;
 | ||
|   padding: 35rpx 27rpx;
 | ||
|   display: flex;
 | ||
|   align-items: center;
 | ||
|   justify-content: space-between;
 | ||
| 
 | ||
|   .subTxt1 {
 | ||
|     border-left: 4px solid #fff;
 | ||
|     padding: 0 20rpx;
 | ||
|   }
 | ||
| 
 | ||
|   .subTxt2 {
 | ||
|     display: flex;
 | ||
|     align-items: center;
 | ||
| 
 | ||
|     view {
 | ||
|       margin-left: 20rpx;
 | ||
|     }
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .address_a {
 | ||
|   padding: 27rpx;
 | ||
|   border-bottom: 2rpx solid #eee;
 | ||
| }
 | ||
| 
 | ||
| .address_r {
 | ||
|   flex: 1;
 | ||
|   margin-left: 20rpx;
 | ||
|   font-size: 28rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: bold;
 | ||
|   color: #333333;
 | ||
| }
 | ||
| 
 | ||
| .address_rc {
 | ||
|   margin: 6rpx 0;
 | ||
| }
 | ||
| 
 | ||
| .mr {
 | ||
|   margin-left: 20rpx;
 | ||
|   background: #181818;
 | ||
|   border-radius: 16rpx;
 | ||
|   font-size: 20rpx;
 | ||
|   font-family: Source Han Sans CN;
 | ||
|   font-weight: 400;
 | ||
|   color: #ffffff;
 | ||
|   padding: 6rpx 16rpx;
 | ||
|   border-radius: 20px;
 | ||
| }
 | ||
| </style>
 |