<template>
  <scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y">
    <wx-points-commit ref="wxPointsCommit"></wx-points-commit>

    <view class="warp">
      <view
        :class="{
          warp_index: true,
          warp_index1: true,
          'bgc-blue': custTypeId === 1,
          'bgc-green': custTypeId === 2,
        }"
        >{{ parkInfo.carno | formatCarno }}</view
      >
      <view class="warp_index">
        <view>停车场</view>
        <view class="warp_index_color">{{ parkInfo.parkname }}</view>
      </view>
      <view class="warp_index">
        <view>入场时间</view>
        <view class="warp_index_color">{{ parkInfo.entertime }}</view>
      </view>
      <view class="warp_index">
        <view>已停车时长</view>
        <view class="warp_index_color">{{ parkingTime }}</view>
      </view>
      <view class="warp_index">
        <view>应缴</view>
        <view class="warp_index_color">{{
          (parkInfo.servicefee / 100) | currency
        }}</view>
      </view>
    </view>
    <view class="warp">
      <view
        class="warp_index warp_index_da"
        v-if="
          parkFee.parkInfoEntity.consumeReduce ||
          parkFee.parkInfoEntity.memberLevelReduce
        "
      >
        <view>停车优惠</view>
        <view class="warp_index_color" @click="discounts">
          <view
            style="margin-right: 10rpx"
            :class="hasDiscount ? 'text-red' : ''"
            >{{ discountDesc }}</view
          >
          <image
            style="width: 26rpx; height: 26rpx"
            src="static/images/arrows.png"
          />
        </view>
      </view>
      <view
        class="warp_index warp_index_da"
        v-if="
          parkFee.parkInfoEntity.isuseintegral === 1 &&
          parkFee.discountKind === 7
        "
      >
        <view>新会员积分优惠</view>
        <view class="warp_index_color" @click="newToggle('bottom')">
          <view
            style="margin-right: 10rpx"
            :class="bonusCopy >= integralNew || durationNew ? 'text-red' : ''"
            >{{ integralDescNew }}</view
          >
          <image
            style="width: 26rpx; height: 26rpx"
            src="static/images/arrows.png"
          />
        </view>
      </view>
      <view
        class="warp_index warp_index_da"
        v-if="parkFee.parkInfoEntity.isuseintegral === 1"
      >
        <view>积分减免</view>
        <view class="warp_index_color" @click="toggle('bottom')">
          <view
            style="margin-right: 10rpx"
            :class="bonusCopy >= integral || duration ? 'text-red' : ''"
            >{{ integralDesc }}</view
          >
          <image
            style="width: 26rpx; height: 26rpx"
            src="static/images/arrows.png"
          />
        </view>
      </view>
      <view
        class="warp_index warp_index_da"
        v-if="parkFee.parkInfoEntity.isuseticket === 1"
      >
        <view>优惠劵</view>
        <view class="warp_index_color" @click="coupon">
          <view
            style="margin-right: 10rpx"
            :class="couponCount > 0 ? 'text-red' : ''"
            >{{ couponDesc }}</view
          >
          <image
            style="width: 26rpx; height: 26rpx"
            src="static/images/arrows.png"
          />
        </view>
      </view>
      <!-- 纸质券 -->
      <view
        class="warp_index warp_index_da"
        v-if="parkFee.parkInfoEntity.papercoupons === 1 || isShowPapercoupons"
      >
        <view>纸质优惠劵</view>
        <view class="warp_index_color" @click="paperCoupon">
          <view style="margin-right: 10rpx" class="text-red"
            >扫描纸质优惠劵二维码</view
          >
          <image
            style="width: 26rpx; height: 26rpx"
            src="static/images/arrows.png"
          />
        </view>
      </view>
      <view
        :class="{
          warp_index: true,
          color_warp_index: custTypeId !== 0,
          warp_index_da: true,
        }"
      >
        <view>优惠金额:</view>
        <view class="warp_index_color" style="color: #ff0000"
          >-{{ discountTotalFee | currency }}</view
        >
      </view>
      <view :class="{ warp_index: true, color_warp_index: custTypeId !== 0 }">
        <view>应付金额:</view>
        <view class="warp_index_color" style="color: #ff0000">{{
          actualFee | currency
        }}</view>
      </view>
    </view>
    <view class="top_content" v-if="parkFee.parkInfoEntity.payinstruction">
      <view class="title_box">
        <text class="btn">缴费说明</text>
      </view>
      <view class="info" :class="!isShow ? 'is-show' : ''">
        <text>{{ parkFee.parkInfoEntity.payinstruction }}</text>
      </view>
      <view
        class="top-down"
        @click="togglePayinstruction"
        v-if="!isShow && parkFee.parkInfoEntity.payinstruction.length > 60"
        >︾</view
      >
      <view
        class="top-down"
        @click="togglePayinstruction"
        v-if="isShow && parkFee.parkInfoEntity.payinstruction.length > 60"
        >︽</view
      >
    </view>
    <view class="flewx">
      <view class="flewx-content"
        >应付<text
          style="color: #ff0000; font-size: 32rpx; padding-left: 20rpx"
          >{{ actualFee | currency }}</text
        >
        元
        <text style="color: #8d8d8d; padding-left: 30rpx; font-size: 28rpx"
          >已优惠{{ discountTotalFee | currency }}元</text
        >
        <uni-countdown
          v-if="payCarno"
          splitorColor="#FF0000"
          color="#FF0000"
          :show-day="false"
          :show-hour="false"
          :second="refreshTime"
          @timeup="resetCountDown()"
        >
          <text style="align-self: center; font-size: 26rpx; color: #ff0000"
            >后同步最新费用</text
          >
        </uni-countdown>
      </view>
      <view
        :class="{
          flewx_index3: true,
          blue_flewx_index3: custTypeId === 1,
          green_flewx_index3: custTypeId === 2,
          'btn-disabled': payBtnDisabled,
        }"
        @click="toPay"
        >支付</view
      >
    </view>
    <uni-popup ref="popup" type="bottom" :animation="false" :maskClick="false">
      <view class="popue_box">
        <view class="popue_box_index1">积分减免</view>
        <view class="popue_box_index">
          <view>减免规则</view>
          <view style="color: #989898"
            >{{ integral }}积分抵扣{{
              parkMallCode === 5 ? integralToValue + '元' : '1小时'
            }}</view
          >
        </view>
        <view class="popue_box_index">
          <view style="font-weight: 700">可用积分</view>
          <view style="color: #ed1c24">{{ bonus }}分</view>
        </view>
        <view class="popue_box_index">
          <view>抵扣{{ parkMallCode === 5 ? '金额' : '时长' }}</view>
          <view class="popue_box_index" style="width: 325rpx">
            <view class="popue_box_index4_xs">
              <view class="popue_box_index4_xs_index1" @click="durationMinus"
                >-</view
              >
              <view class="popue_box_index4_xs_index2">{{ duration }}</view>
              <view class="popue_box_index4_xs_index3" @click="durationAdd"
                >+</view
              >
            </view>
            <view style="color: #808080">{{
              parkMallCode === 5 ? '元' : '小时'
            }}</view>
          </view>
        </view>
        <view class="popue_box_index5">
          <view
            :class="{
              popue_box_index4_by: true,
              blue_popue_box_index4_by: custTypeId === 1,
              green_popue_box_index4_by: custTypeId === 2,
            }"
            @click="cancel(1)"
            >取消</view
          >
          <view
            :class="{
              popue_box_index4_by1: true,
              blue_popue_box_index4_by1: custTypeId === 1,
              green_popue_box_index4_by1: custTypeId === 2,
            }"
            @click="confirm(1)"
            >确定</view
          >
        </view>
      </view>
    </uni-popup>
    <uni-popup
      ref="newpopup"
      type="bottom"
      :animation="false"
      :maskClick="false"
    >
      <view class="popue_box">
        <view class="popue_box_index1">积分优惠减免</view>
        <view class="popue_box_index">
          <view>减免规则</view>
          <view style="color: #989898">{{ integralNew }}积分抵扣1小时</view>
        </view>
        <view class="popue_box_index">
          <view style="font-weight: 700">可用积分</view>
          <view style="color: #ed1c24">{{ bonus }}分</view>
        </view>
        <view class="popue_box_index">
          <view>抵扣{{ parkMallCode === 5 ? '金额' : '时长' }}</view>
          <view class="popue_box_index" style="width: 325rpx">
            <view class="popue_box_index4_xs">
              <view class="popue_box_index4_xs_index1" @click="durationMinusNew"
                >-</view
              >
              <view class="popue_box_index4_xs_index2">{{ durationNew }}</view>
              <view class="popue_box_index4_xs_index3" @click="durationAddNew"
                >+</view
              >
            </view>
            <view style="color: #808080">{{
              parkMallCode === 5 ? '元' : '小时'
            }}</view>
          </view>
        </view>
        <view class="popue_box_index5">
          <view
            :class="{
              popue_box_index4_by: true,
              blue_popue_box_index4_by: custTypeId === 1,
              green_popue_box_index4_by: custTypeId === 2,
            }"
            @click="cancel(2)"
            >取消</view
          >
          <view
            :class="{
              popue_box_index4_by1: true,
              blue_popue_box_index4_by1: custTypeId === 1,
              green_popue_box_index4_by1: custTypeId === 2,
            }"
            @click="confirm(2)"
            >确定</view
          >
        </view>
      </view>
    </uni-popup>
  </scroll-view>
</template>

<script>
const app = getApp();
import moment from '@/common/js/moment.min.js';
import { mapState } from 'vuex';
import MemberCacheTool from '@/utils/member-cache-tool.js';
import log from '@/utils/log.js';
import { compare } from '@/utils/location.js';
export default {
  data() {
    return {
      bindflag: '',
      initFlag: true, // 用作应缴费用为0时的提示弹框标记
      animationChilc: false,
      duration: 0, // 积分兑换时长
      durationNew: 0, // 北京新会员积分兑换时长
      durationCopy: 0, // 积分兑换时长备份
      durationNewCopy: 0, // 积分兑换时长备份
      orderno: '',
      params: {},
      integral: 0, // 积分
      integralNew: 0, // 北京新会员积分
      bonus: 0, // 当前积分
      bonusCopy: 0, // 积分备份
      bonusfee: 0, // 积分减免金额
      newBonusfee: 0, // 新会员减免金额
      hourMoney: 15,
      payCarno: '',
      picUrl: '',
      parkInfo: {},
      parkFee: {},
      checkedTotal: 0, // 已选择优惠项目数
      discountTotal: {}, // 已选择优惠项目统计(时间、费用)
      couponCount: 0, // 可选优惠券数量
      checkedCouponCount: 0, // 已选优惠券数量
      couponInfo: {}, // 已选择电子券信息
      paperCouponInfo: {}, // 已选择纸质优惠券信息
      isShowPapercoupons: false, // 未登录时显示纸质优惠券
      // dimension: 1, // 计算维度 浦东0.5小时 其它停车场1小时
      maxonetimediscountFee: 0, // 每次优惠上限金额
      maxonedaydiscountFee: 0, // 每天优惠上限金额
      discountTotalFeeCopy: 0, // 用于超限判断
      parkMallCode: 0, // 0静安 1浦东 2杭州 3北京 4沈阳 5深圳
      hasDiscount: false, // 是否有会员减免、消费减免
      isShow: true, // 缴费说明true:显示全部 false:显示部分
      orderCreateTime: '', // 订单创建时间
      refreshTime: 180, // 停车场重置费用倒计时3分钟
      isPageHide: false, // 用于其它有人吗倒计时重置时不再弹出优惠框
      isShowPopup: false, // 优惠提示是否显示
      preUrl: '',
      integralToValue: 0, // 深圳前海停车500积分兑换5元
      integralMaxMoney: 0, // 深圳前海停车积分上限
      integralNewToValue: 0, // 北京新会员积分
      integralNewMaxMoney: 0, // 北京新会员积分
      discountKind: null,
      parkingTrack: null,
      reFresh: '',
    };
  },
  onBackPress(event) {
    return true;
  },
  computed: {
    // 支付按钮状态
    payBtnDisabled() {
      return (
        !this.parkInfo.servicefee ||
        (app.globalData.member && !this.parkFee.parkInfoEntity)
      );
    },

    // 已停车时长
    parkingTime() {
      const time = this.parkInfo.serviceMin;
      const days = parseInt(time / 60 / 24);
      const hours = parseInt((time / 60) % 24);
      const minutes = parseInt(time % 60);
      if (days > 0) {
        return `${days}天 ${hours}小时 ${minutes}分钟`;
      }
      if (hours > 0) {
        return `${hours}小时 ${minutes}分钟`;
      }
      return `${minutes}分钟`;
    },

    // 停车优惠(首停、会员减免、消费减免)
    discountDesc() {
      if (this.hasDiscount) {
        if (this.checkedTotal > 0) {
          return `已选择${this.checkedTotal}项优惠`;
        }
        return '立即使用';
      } else {
        return '暂无可用优惠';
      }
    },

    // 积分减免
    integralDesc() {
      if (this.duration > 0) {
        // 深圳特殊处理(单位:金额)
        if (this.parkMallCode === 5) {
          return `已选择兑换${this.duration}元`;
        }
        return `已选择兑换${this.duration}小时`;
      }
      if (this.bonusCopy < this.integral) {
        return `${this.integral}积分可停车1小时`;
      }
      if (
        this.parkMallCode === 3 &&
        app.globalData.member?.currnentintegral >= this.integral &&
        !this.bonus
      ) {
        return `今日已达上限`;
      }
      return `${this.bonus}积分可减免`;
    },
    // 北京新会员积分减免
    integralDescNew() {
      if (this.durationNew > 0) {
        return `已选择兑换${this.durationNew}小时`;
      }
      if (this.bonusCopy < this.integralNew) {
        return `${this.integralNew}积分可停车1小时`;
      }
      if (
        this.parkMallCode === 3 &&
        app.globalData.member?.currnentintegral >= this.integralNew &&
        !this.bonus
      ) {
        return `今日已达上限`;
      }
      return `${this.bonus}积分可减免`;
    },
    // 电子券
    couponDesc() {
      if (this.checkedCouponCount > 0) {
        return `已选择${this.checkedCouponCount}张优惠劵`;
      } else {
        if (this.couponCount > 0) {
          return `您有${this.couponCount}张可用优惠劵`;
        }
        return `暂无可用优惠券`;
      }
    },

    // 实际支付金额
    actualFee() {
      const fee = this.parkInfo.servicefee / 100 - this.discountTotalFee;
      return fee > 0 ? fee : 0;
    },

    // 优惠金额
    discountTotalFee() {
      let total = 0;
      if (this.discountTotal.fee > 0) {
        total += this.discountTotal.fee; // 首停、会员、消费减免
      }
      if (this.bonusfee > 0) {
        total += this.bonusfee; // 积分减免
      }
      if (this.newBonusfee > 0) {
        total += this.newBonusfee; // 积分减免
      }
      if (this.couponInfo.couponfee > 0) {
        total += this.couponInfo.couponfee; // 电子券减免
      }
      this.discountTotalFeeCopy = total;
      // 超出上限按上限计算(parkMallCode: 0静安 1浦东 2杭州 3北京 4沈阳 5深圳)
      if (this.parkMallCode === 1) {
        if (total > this.maxonetimediscountFee) {
          total = this.maxonetimediscountFee;
        }
      }
      if (this.parkMallCode === 5) {
        if (total > this.maxonedaydiscountFee) {
          total = this.maxonedaydiscountFee;
        }
      }
      // 沈阳超限处理(maxonedaydiscountFee 会员、消费、电子券减免)
      if (this.parkMallCode === 4) {
        if (total - this.bonusfee > this.maxonedaydiscountFee) {
          total = this.maxonedaydiscountFee + this.bonusfee;
        }
      }
      if (this.paperCouponInfo.paperDiscountFee > 0) {
        total += this.paperCouponInfo.paperDiscountFee; // 纸质券减免
        this.discountTotalFeeCopy += this.paperCouponInfo.paperDiscountFee;
      }
      uni.setStorageSync('parkingTotal', {
        time: total / this.hourMoney,
        fee: total,
        feeCopy: this.discountTotalFeeCopy,
        bonusfee: this.bonusfee || 0,
        newBonusfee: this.newBonusfee || 0,
      });
      return total;
    },

    ...mapState({
      custTypeId: (state) => state.custTypeId,
    }),
  },
  // 分享好友
  onShareAppMessage: function (res) {
    return {
      title: '缴费详情', // 分享标题
      // desc: this.params.shareDescribe, // 分享描述
      imageUrl: '', // 分享图标
      path: `/pages/parkingFee/parkingFeeDetail?orderno=${this.orderno}&id=${this.id}&mallid=${app.globalData.mallid}`,
    };
  },
  // 分享朋友圈
  onShareTimeline: function (res) {
    return {
      title: '缴费详情', // 分享标题
      // desc: this.params.shareDescribe, // 分享描述
      imageUrl: '', // 分享图标
      path: `/pages/parkingFee/parkingFeeDetail?orderno=${this.orderno}&id=${this.id}&mallid=${app.globalData.mallid}`,
    };
  },
  onLoad(option) {
    this.picUrl = this.$picUrl;
    this.payCarno = option.carno;
    this.orderno = option.orderno;
    this.id = option.id;
    // 埋点初始化
    this.parkingTrack = new this.$trackFactory('parking_pay_order', {});
    this.parkingTrack.track(1);
    // 场景二维码记录(是否扫码进入)
    app.globalData.paramsScene = {};
    this.$saveSceneQrcodeDetail(
      'page',
      'parkingFeeDetail:' + option.id,
      '缴费详情',
      '',
      '',
      '',
      ''
    );
    this.init();
    // if (JSON.stringify(app.globalData.userInfo) !== "{}" && JSON.stringify(app.globalData.member) !== "{}") {
    this.createParkOrder();
    // } else {
    // 	this.$refs.authorize.login("/pages/parkingFee/parkingFeeDetail", () => {
    // 		this.createParkOrder();
    // 	});
    // }
    // 埋点本地化
    this.preUrl = uni.getStorageSync('previousUrl');
    uni.setStorageSync('previousUrl', '/pages/parkingFee/parkingFeeDetail.vue');
  },
  onBackPress(event) {
    uni.redirectTo({
      url: './parkingFee.vue',
    });
    return true;
  },
  onShow() {
    log.info('订单时间：' + this.orderCreateTime);
    this.isPageHide = false;
    // 如果订单时间+3分钟-当前时间<=0 刷新订单
    if (this.orderCreateTime) {
      const countDownTime = moment(this.orderCreateTime)
        .add(180, 's')
        .diff(moment(), 's');
      log.info('剩余时间：' + countDownTime);
      if (countDownTime <= 0) {
        this.createParkOrder();
      } else {
        this.refreshTime = countDownTime;
      }
    }

    // 优惠减免(首停、会员、消费)
    this.checkedTotal = uni.getStorageSync('checkedTotal');
    this.discountTotal = uni.getStorageSync('discountTotal');

    // 电子券减免(停车券)
    this.couponInfo = uni.getStorageSync('couponInfo');
    this.checkedCouponCount = uni.getStorageSync('checkedCouponList').length;

    // 纸质优惠券
    this.paperCouponInfo = uni.getStorageSync('paperCouponInfo');
  },
  onHide() {
    this.isPageHide = true;
  },
  watch: {
    reFresh: function () {
      this.getList();
      console.log('页面已重新加载');
    },
  },
  methods: {
    // 触发返回按钮
    getList() {
      var pages = getCurrentPages(); //当前页面栈
      let beforePage = pages[pages.length - 2]; //获取上一个页面实例对象
      beforePage.$vm.reFresh = Math.random(); //触发上一页监听器
      uni.navigateBack();
    },
    // 页面初始清空缓存
    init() {
      // 优惠减免(首停、会员、消费)
      uni.removeStorageSync('checkedList'); // 选中list
      uni.removeStorageSync('checkedTotal'); // 选中count数
      uni.removeStorageSync('discountTotal'); // 减免信息(时长、费用)

      // 停车减免(优惠、积分、停车券)
      uni.removeStorageSync('parkFee');

      // 电子券优惠信息
      uni.removeStorageSync('checkedCouponList'); // 选中list
      uni.removeStorageSync('couponInfo'); // 减免信息(时长、费用)
      uni.removeStorageSync('list'); // 电子券list

      // 总停车优惠信息(时长、费用)
      uni.removeStorageSync('parkingTotal');

      // 应缴金额
      uni.removeStorageSync('servicefee');

      // 订单号
      uni.removeStorageSync('orderno');

      // 纸质优惠券
      uni.removeStorageSync('paperCouponInfo');
    },

    // 重置倒计时
    resetCountDown() {
      this.refreshTime = 0;
      this.createParkOrder();
    },

    // 创建订单
    createParkOrder() {
      uni.showLoading({
        title: '加载中',
      });
      const openId = MemberCacheTool.getOpenId(app);
      const member = uni.getStorageSync('member');
      const params = {
        carno: this.payCarno,
        mallid: app.globalData.mallid,
        openId: openId,
        vipcode:
          app.globalData.member?.vipcode ||
          uni.getStorageSync('member')?.vipcode,
        mobile:
          app.globalData.member?.mobile || uni.getStorageSync('member')?.mobile,
        groupId: app.globalData.groupId,
        kipUserId: app.globalData.member?.kipUserId || member.kipUserId || '',
        createuser: 'sys_miniprogram',
      };
      this.$md(params);
      if (this.$store.state.radiusType === null) {
        this.payUrl = 'api/1.0/park/createParkOrderAndCarFee';
      } else if (this.$store.state.radiusType === 0) {
        this.payUrl = 'api/1.0/park/createParkOrder';
      }
      this.$request({
        // url: this.$baseURL + 'api/1.0/park/createParkOrder',
        url: this.$baseURL + this.payUrl,

        // url: 'http://172.21.202.252:8083/xcrm-api/api/1.0/park/createParkOrderAndCarFee',
        data: params,
        method: 'POST',
        header: JSON.parse(uni.getStorageSync('handleUser')),
      })
        .then((res) => {
          uni.hideLoading();
          if (res.data.code === 0) {
            this.bindflag = res.data.data.bind;
            this.parkInfo = res.data.data;
            this.parkMallCode = this.parkInfo.parkMallCode;
            this.orderCreateTime = this.parkInfo.createDate;
            uni.setStorageSync('servicefee', this.parkInfo.servicefee / 100);
            uni.setStorageSync('orderno', this.parkInfo.orderno);

            if (!this.parkInfo.servicefee && this.initFlag) {
              this.initFlag = false;
              return uni.showModal({
                showCancel: false,
                title: '提示',
                content: '当前无需缴费',
                complete: () => {
                  // this.createParkOrder();
                  uni.navigateBack();
                },
              });
            }
            if (app.globalData.member) {
              this.getDiscount();
            } else {
              // 未登录状态显示纸质券
              this.isShowPapercoupons = true;
            }
            this.refreshTime = 180;
          } else {
            uni.showModal({
              showCancel: false,
              title: '提示',
              content: res.data.msg,
              complete(r) {
                uni.navigateBack();
              },
            });
          }
        })
        .catch((err) => {
          console.log(err);
        });
    },

    // 获取优惠、停车场相关配置
    getDiscount() {
      uni.showLoading({
        title: '加载中',
      });
      let _this = this;
      const params = {
        carno: this.payCarno,
        mallid: app.globalData.mallid,
        vipcode: app.globalData.member.vipcode,
        groupId: app.globalData.groupId,
      };
      this.$md(params);
      this.$request({
        // url:  'http://172.21.202.252:8083/xcrm-api/api/1.0/park/discount',
        url: this.$baseURL + 'api/1.0/park/discount',
        data: params,
        method: 'POST',
        header: JSON.parse(uni.getStorageSync('handleUser')),
      })
        .then((res) => {
          uni.hideLoading();
          if (res.data.code === 0) {
            this.parkFee = res.data.data;
            if (this.parkFee.parkIntegraltomoneyList) {
              this.integral = this.parkFee.parkIntegraltomoneyList[0].integral;
              this.integralToValue =
                this.parkFee.parkIntegraltomoneyList[0].value || 0;
              this.integralMaxMoney =
                this.parkFee.parkIntegraltomoneyList[0].integralMaxHour || 0;
              this.bonus = this.parkFee.parkIntegraltomoneyList[0].bonus;
              // this.bonus = 600
              // this.bonus = this.parkFee.parkIntegraltomoneyList[0].bonus;
              this.discountKind = this.parkFee.discountKind;
              if (this.parkFee.discountKind === 7) {
                // console.log('this.parkFee.parkIntegraltomoneyList[1]::::::', res.data.data.parkIntegraltomoneyList)
                this.integralNew =
                  _this.parkFee.parkIntegraltomoneyList[1].integral;
                this.integralNewToValue =
                  this.parkFee.parkIntegraltomoneyList[1].value || 0;
                this.integralNewMaxMoney =
                  this.parkFee.parkIntegraltomoneyList[1].integralMaxHour || 0;
              }
              // 深圳特殊处理(单位:金额)
              if (this.parkMallCode === 5) {
                if (this.duration) {
                  this.bonus -=
                    (this.duration * this.integral) / this.integralToValue;
                  this.bonusfee = this.duration;
                  this.durationCopy = this.duration;
                }
              } else {
                if (this.duration) {
                  this.bonus -= this.duration * this.integral;
                  this.bonusfee = this.duration * this.hourMoney;
                  this.durationCopy = this.duration;
                }
              }
              this.bonusCopy = this.bonus;
            }
            if (!this.parkFee.parkInfoEntity) {
              return;
            }
            const reg = /[;；]/g;
            this.parkFee.parkInfoEntity.payinstruction =
              this.parkFee.parkInfoEntity.payinstruction.replace(reg, '\r\n');
            this.hourMoney = this.parkFee.parkInfoEntity.needmoney;
            this.parkMallCode = this.parkFee.parkInfoEntity.parkMallCode;
            if (this.parkFee.memberTicketList) {
              this.couponCount = this.parkFee.memberTicketList.length;
            }
            // 上限金额
            this.maxonetimediscountFee =
              this.parkFee.parkInfoEntity.maxonetimediscount * this.hourMoney;
            // 深圳特殊处理(单位:金额)
            if (this.parkMallCode === 5) {
              this.maxonedaydiscountFee =
                this.parkFee.parkInfoEntity.maxOneDayHour -
                  this.parkFee.parkInfoEntity
                    .ticketandMemeberGradeAndConsumeUseHour || 0;
            } else {
              this.maxonedaydiscountFee =
                (this.parkFee.parkInfoEntity.maxOneDayHour -
                  this.parkFee.parkInfoEntity
                    .ticketandMemeberGradeAndConsumeUseHour) *
                  this.hourMoney || 0;
            }
            if (this.maxonedaydiscountFee < 0) {
              this.maxonedaydiscountFee = 0;
            }
            uni.setStorageSync('parkFee', JSON.stringify(this.parkFee));
            // 如果有可使用会员减免、消费减免，追加弹框提示
            if (
              this.parkFee.parkInfoEntity.consumeReduce ||
              this.parkFee.parkInfoEntity.memberLevelReduce
            ) {
              if (
                (this.parkFee.parkMemberOrderReducesEntityList &&
                  this.parkFee.parkMemberOrderReducesEntityList[0]) ||
                (this.parkFee.parkConsumeReducesEntityList &&
                  this.parkFee.parkConsumeReducesEntityList[0])
              ) {
                this.hasDiscount = true;
                // if (!this.parkInfo.servicefee) {
                // 	return;
                // }
                // let confirmColor = '#703a98';
                // if (this.custTypeId === 1) {
                // 	confirmColor = '#023694';
                // }
                // if (this.custTypeId === 2) {
                // 	confirmColor = '#0B683A';
                // }
                // if (this.checkedTotal || this.isPageHide || this.isShowPopup) {
                // 	return;
                // }
                // this.isShowPopup = true;
                // uni.showModal({
                // 	title: '停车优惠',
                // 	content: '您有停车优惠可使用, 前往使用!',
                // 	cancelText: '返回',
                // 	confirmText: '点击查看',
                // 	confirmColor: confirmColor,
                // 	success: res => {
                // 		if (res.confirm) {
                // 			this.discounts();
                // 		}
                // 		this.isShowPopup = false;
                // 	}
                // })
              }
            }
            // 自动勾选优惠
            if (
              !this.discountTotalFee &&
              (this.hasDiscount ||
                this.bonusCopy >= this.integral ||
                this.bonusCopy >= this.integralNew ||
                this.couponCount)
            ) {
              this.autoCheckDiscounts();
            }
          } else {
            uni.showModal({
              showCancel: false,
              title: '提示',
              content: res.data.msg,
              complete(r) {
                // uni.navigateBack();
              },
            });
          }
        })
        .catch((err) => {
          console.log(err);
        });
    },

    // 积分取消
    cancel(flag) {
      if (flag === 1) {
        this.duration = this.durationCopy;
        this.bonus = this.bonusCopy;
        // 深圳特殊处理(单位:金额)
        if (this.parkMallCode === 5) {
          this.bonusfee = this.duration;
        } else {
          this.bonusfee = this.duration * this.hourMoney;
        }
        this.$refs.popup.close();
      } else if (flag === 2) {
        // 北京新会员积分减免操作后取消
        this.durationNew = this.durationCopy2;
        this.bonus = this.bonusCopy;
        this.newBonusfee = this.durationNew * this.hourMoney;
        this.$refs.newpopup.close();
      }
    },

    // 积分确认
    confirm(type) {
      if (type === 1) {
        this.bonusCopy = this.bonus;
        this.durationCopy = this.duration;
        this.$refs.popup.close();
      } else if (type === 2) {
        this.bonusCopy = this.bonus;
        this.durationCopy2 = this.durationNew;
        this.$refs.newpopup.close();
      }
    },

    // 减积分
    durationMinus() {
      if (this.duration > 0) {
        // 深圳特殊处理(单位:金额)
        if (this.parkMallCode === 5) {
          this.duration -= this.integralToValue;
        } else {
          this.duration--;
        }
        this.bonus += this.integral;
      }
      // 深圳特殊处理(单位:金额)
      if (this.parkMallCode === 5) {
        this.bonusfee = this.duration;
      } else {
        this.bonusfee = this.duration * this.hourMoney;
      }
    },

    // 加积分
    durationAdd() {
      // 浦东每次缴费超限控制
      if (
        this.parkMallCode === 1 &&
        this.discountTotalFee >= this.maxonetimediscountFee
      ) {
        return uni.showToast({
          title: `超出抵扣上限,每次最高可抵扣${this.parkFee.parkInfoEntity.maxonetimediscount}小时`,
          icon: 'none',
        });
      }
      // 北京积分上限控制
      if (this.parkMallCode === 3) {
        const bonusMax =
          this.parkFee.parkInfoEntity.integralMaxHour -
            this.parkFee.parkInfoEntity.integralUseHour || 0;
        if (this.duration >= bonusMax) {
          return uni.showToast({
            title: `超出抵扣上限,每日最高可抵扣${this.parkFee.parkInfoEntity.integralMaxHour}小时`,
            icon: 'none',
          });
        }
      }
      // 深圳积分上限控制
      if (this.parkMallCode === 5) {
        if (this.discountTotalFee >= this.maxonedaydiscountFee) {
          return uni.showToast({
            title: `超出抵扣上限,每日最高可抵扣${this.parkFee.parkInfoEntity.maxOneDayHour}元`,
            icon: 'none',
          });
        }
        if (this.duration >= this.integralMaxMoney) {
          return uni.showToast({
            title: `超出抵扣上限,每次最高可抵扣${this.integralMaxMoney}元`,
            icon: 'none',
          });
        }
      }

      if (this.bonus - this.integral >= 0) {
        this.bonus -= this.integral;
        // 深圳特殊处理(单位:金额)
        if (this.parkMallCode === 5) {
          this.duration += this.integralToValue;
        } else {
          this.duration++;
        }
      } else {
        uni.showToast({
          title: '积分不足',
          icon: 'none',
        });
      }
      // 深圳特殊处理(单位:金额)
      if (this.parkMallCode === 5) {
        this.bonusfee = this.duration;
      } else {
        this.bonusfee = this.duration * this.hourMoney;
      }
    },
    // 北京新会员加积分
    durationAddNew() {
      const bonusMaxNew =
        this.parkFee.parkIntegraltomoneyList[1].integralMaxHour -
          this.parkFee.parkIntegraltomoneyList[1].integralUseHour || 0;
      if (this.durationNew >= bonusMaxNew) {
        return uni.showToast({
          title: `超出抵扣上限,每日最高可抵扣${this.parkFee.parkIntegraltomoneyList[1].integralMaxHour}小时`,
          icon: 'none',
        });
      }
      if (this.bonus - this.integralNew >= 0) {
        this.bonus -= this.integralNew;
        this.durationNew++;
        this.newBonusfee = this.durationNew * this.hourMoney;
      } else {
        uni.showToast({
          title: '积分不足',
          icon: 'none',
        });
      }
    },
    // 北京新会员减积分
    durationMinusNew() {
      if (this.durationNew > 0) {
        this.bonus += this.integralNew;
        this.durationNew--;
        this.newBonusfee = this.durationNew * this.hourMoney;
      }
    },
    // 积分减免弹出
    toggle(type) {
      if (
        this.parkFee.parkIntegraltomoneyList &&
        this.parkFee.parkIntegraltomoneyList.length
      ) {
        this.$refs['popup'].open();
      }
    },
    // 积分减免弹出
    newToggle(type) {
      if (
        this.parkFee.parkIntegraltomoneyList &&
        this.parkFee.parkIntegraltomoneyList.length
      ) {
        this.$refs['newpopup'].open();
      }
    },
    // 跳转纸质优惠
    paperCoupon() {
      uni.navigateTo({
        url: './parkingFeePaperCoupon',
      });
    },

    // 电子优惠劵
    coupon() {
      if (!this.couponCount) {
        return uni.showToast({
          title: '暂无可使用的优惠券，请前往积分商城兑换优惠券',
          icon: 'none',
        });
      }
      uni.navigateTo({
        url: './parkingFeeCoupon',
      });
    },

    // 跳转首停、会员、消费减免页面
    discounts() {
      if (!this.hasDiscount && this.parkMallCode !== 2) {
        return uni.showToast({
          title: '暂无可用优惠',
          icon: 'none',
        });
      }
      uni.navigateTo({
        url: '/pages/parkingFee/parkingFeeDiscounts',
      });
    },

    // 自动勾选优惠 优先级：会员/消费->电子券->积分
    autoCheckDiscounts() {
      // console.log('if外1',this.bonusCopy, this.integral)
      if (!this.parkFee || !this.parkInfo.servicefee) {
        return;
      }
      const serviceFee = this.parkInfo.servicefee / 100; // 应缴费用

      // 自动选取消费减免
      if (
        this.parkFee.parkConsumeReducesEntityList &&
        this.parkFee.parkConsumeReducesEntityList[0] &&
        this.parkFee.parkConsumeReducesEntityList[0].recuceContent
      ) {
        this.autoConsume(serviceFee);
      }

      // 自动选取会员等级减免
      if (
        this.parkFee.parkMemberOrderReducesEntityList &&
        this.parkFee.parkMemberOrderReducesEntityList[0] &&
        this.parkFee.parkMemberOrderReducesEntityList[0].reduceContent &&
        Number.parseInt(
          this.parkFee.parkMemberOrderReducesEntityList[0].reduceContent
        ) > 0
      ) {
        this.autoMember();
      }

      // 自动选取电子券减免
      if (this.couponCount) {
        this.autoCoupon(serviceFee);
      }
      // 自动选取北京新会员积分减免
      if (this.discountKind === 7) {
        // console.log('this.bonusCopy::::::',this.bonusCopy, this.integral)
        if (this.bonusCopy >= this.integralNew) {
          this.newMemberautoBonus(serviceFee);
        }
      }
      // console.log('this.bonusCopy::::::',this.bonusCopy, this.integral)
      // 自动选取积分减免
      if (this.bonusCopy >= this.integral) {
        // this.newMemberautoBonus(serviceFee);
        this.autoBonus(serviceFee);
      }
    },

    // 自动选取消费减免
    autoConsume(serviceFee) {
      let consumeTime =
        +this.parkFee.parkConsumeReducesEntityList[0].recuceContent || 0; // 消费减免时长
      let consumeFee = 0; // 消费减免费用
      const isSplit = this.parkFee.parkInfoEntity.isSplit === 0 ? 0 : 1; // 是否拆分 0: 可拆 1: 不可拆
      const serviceTime = Math.ceil(serviceFee / this.hourMoney); // 停车时长(防止有小数情况向上取整)

      /*************************************************** 静安 ***************************************************/
      if (this.parkMallCode === 0) {
        // 超过上限取上限
        if (consumeTime > this.parkFee.parkInfoEntity.remainReduceTime) {
          consumeTime = this.parkFee.parkInfoEntity.remainReduceTime;
        }
        // 拆分消费减免
        if (isSplit === 0) {
          // 减免时长超出停车时长取停车时长
          if (consumeTime > serviceTime) {
            consumeTime = serviceTime;
          }
        }
        // 消费减免费用
        consumeFee = consumeTime * this.hourMoney;
      }

      /*************************************************** 浦东 ***************************************************/
      if (this.parkMallCode === 1) {
        // 可用消费减免时长上限
        let remainReduceTime = this.parkFee.parkInfoEntity.remainReduceTime;
        if (remainReduceTime > this.parkFee.parkInfoEntity.maxonetimediscount) {
          remainReduceTime = this.parkFee.parkInfoEntity.maxonetimediscount;
        }
        // 超过上限取上限
        if (consumeTime > remainReduceTime) {
          consumeTime = remainReduceTime;
        }
        // 拆分消费减免
        if (isSplit === 0) {
          // 减免时长超出停车时长取停车时长
          if (consumeTime > serviceTime) {
            consumeTime = serviceTime;
          }
        }
        // 消费减免费用
        consumeFee = consumeTime * this.hourMoney;
      }

      /*************************************************** 杭州 ***************************************************/
      if (this.parkMallCode === 2) {
        // 超过上限取上限
        if (consumeTime > this.parkFee.parkInfoEntity.remainReduceTime) {
          consumeTime = this.parkFee.parkInfoEntity.remainReduceTime;
        }
        // 消费减免费用
        consumeFee = consumeTime * this.hourMoney;
      }

      /*************************************************** 沈阳 ***************************************************/
      if (this.parkMallCode === 4) {
        // 超过上限取上限
        if (
          consumeTime >
          this.parkFee.parkInfoEntity.maxOneDayHour -
            this.parkFee.parkInfoEntity.ticketandMemeberGradeAndConsumeUseHour
        ) {
          consumeTime =
            this.parkFee.parkInfoEntity.maxOneDayHour -
            this.parkFee.parkInfoEntity.ticketandMemeberGradeAndConsumeUseHour;
        }
        // 消费减免费用
        consumeFee = consumeTime * this.hourMoney;
      }

      // 实时显示
      this.checkedTotal++;
      this.discountTotal = {
        memberGradeFee: 0,
        consumeFee: consumeFee,
        useConsumeFee:
          this.parkFee.parkConsumeReducesEntityList[0].consumerLimit,
        time: consumeTime,
        fee: consumeFee,
      };

      // 存入缓存(用于子页面停车优惠画面显示)
      uni.setStorageSync('checkedList', ['reduces']);
      uni.setStorageSync('checkedTotal', this.checkedTotal);
      uni.setStorageSync('discountTotal', this.discountTotal);
    },

    // 自动选取会员等级减免
    autoMember() {
      // 支付金额0 则无需后续减免
      if (!this.actualFee) {
        return;
      }

      const memberGradeTime =
        +this.parkFee.parkMemberOrderReducesEntityList[0].reduceContent || 0; // 会员等级减免时长
      const memberGradeFee = memberGradeTime * this.hourMoney; // 会员等级减免费用

      // 浦东每次超限
      if (this.parkMallCode === 1) {
        // 超出每次减免上限 则无需后续
        if (this.discountTotalFee >= this.maxonetimediscountFee) {
          return;
        }
      }

      // 沈阳(会员等级+消费+电子券)、深圳每日超限
      if (this.parkMallCode === 4 || this.parkMallCode === 5) {
        // 超出每日减免上限 则无需后续
        if (this.discountTotalFee >= this.maxonedaydiscountFee) {
          return;
        }
      }

      // 实时显示
      let checkedList = [];
      if (uni.getStorageSync('discountTotal')) {
        this.discountTotal.memberGradeFee = memberGradeFee;
        this.discountTotal.time += memberGradeTime;
        this.discountTotal.fee += memberGradeFee;
        checkedList = ['reduces', 'member'];
      } else {
        this.discountTotal = {
          memberGradeFee: memberGradeFee,
          consumeFee: 0,
          useConsumeFee: 0,
          time: memberGradeTime,
          fee: memberGradeFee,
        };
        checkedList = ['member'];
      }
      this.checkedTotal++;

      // 存入缓存(用于子页面停车优惠画面显示)
      uni.setStorageSync('checkedList', checkedList);
      uni.setStorageSync('checkedTotal', this.checkedTotal);
      uni.setStorageSync('discountTotal', this.discountTotal);
    },

    // 自动选取电子券减免
    autoCoupon(serviceFee) {
      // 支付金额0 则无需后续减免
      if (!this.actualFee) {
        return;
      }

      // 浦东 超出每次减免上限 则无需后续
      if (
        this.parkMallCode === 1 &&
        this.discountTotalFee >= this.maxonetimediscountFee
      ) {
        return;
      }

      // 沈阳(会员等级+消费+电子券)、深圳 超出每日减免上限 则无需后续
      if (
        (this.parkMallCode === 4 || this.parkMallCode === 5) &&
        this.discountTotalFee >= this.maxonedaydiscountFee
      ) {
        return;
      }

      // 杭州 超出电子券使用数量上限 则无需后续
      if (
        this.parkMallCode === 2 &&
        this.parkFee.parkInfoEntity.useTicketNum ===
          this.parkFee.parkInfoEntity.couponcodeNum
      ) {
        return;
      }

      const checkedCouponList = []; // 所选电子券
      let couponList = this.parkFee.memberTicketList; // 所有电子券
      let couponFee = 0;
      let couponCode = '';

      // 电子券价值统一转换金额方便后续排序 type 1: 金额 2: 时长
      couponList.forEach((e) => {
        e.disabled = true;
        e.checked = false;
        if (e.carType == '2') {
          e.value = e.parktime * this.hourMoney;
        } else if (e.carType == '1') {
          e.value = e.ticketValue;
        }
      });

      // 电子券按叠加规则分组
      const couponListRule1 = couponList.filter(
        (e) => e.superpositionrule == '1'
      ); // 不可叠加
      const couponListRule2 = couponList.filter(
        (e) => e.superpositionrule == '2'
      ); // 同类型可叠加

      // 电子券按价值排序
      if (couponListRule1 && couponListRule1.length > 1) {
        couponListRule1.sort(compare('value'));
      }
      if (couponListRule2 && couponListRule2.length > 1) {
        couponListRule2.sort(compare('value'));
      }

      // 排序后的全部电子券
      couponList = [...couponListRule1, ...couponListRule2];

      // 如果不可叠加电子券价值大于可叠加总和则使用不可叠加电子券
      let couponListRule1Max = 0;
      if (couponListRule1 && couponListRule1.length) {
        couponListRule1Max = couponListRule1[couponListRule1.length - 1].value;
      }
      let couponListRule2Sum = 0;
      if (couponListRule2 && couponListRule2.length) {
        couponListRule2.forEach((e) => {
          couponListRule2Sum += e.value;
        });
      }
      let isCheckedRule1 = false;
      if (
        couponListRule1Max >= couponListRule2Sum &&
        couponListRule2Sum < serviceFee - this.discountTotalFee
      ) {
        isCheckedRule1 = true;
      }

      // 使用不可叠加电子券
      if (isCheckedRule1 && couponListRule1 && couponListRule1.length) {
        for (let i = 0; i < couponListRule1.length; i++) {
          const coupon = couponListRule1[i];
          const checkedIndex = couponList.findIndex(
            (e) => e.couponCode === coupon.couponCode
          );

          // 浦东每次上限处理
          if (this.parkMallCode === 1) {
            if (
              this.discountTotalFee + coupon.value >
              this.maxonetimediscountFee
            ) {
              couponList[checkedIndex - 1].checked = true;
              couponList[checkedIndex - 1].disabled = false;
              checkedCouponList.push(checkedIndex - 1);
              couponFee += coupon.value;
              couponCode += coupon.couponCode + '#';
              break;
            }
          }

          // 沈阳(会员等级+消费+电子券)、深圳 超出每日减免上限处理
          if (this.parkMallCode === 4 || this.parkMallCode === 5) {
            if (
              this.discountTotalFee + coupon.value >
              this.maxonedaydiscountFee
            ) {
              couponList[checkedIndex - 1].checked = true;
              couponList[checkedIndex - 1].disabled = false;
              checkedCouponList.push(checkedIndex - 1);
              couponFee += coupon.value;
              couponCode += coupon.couponCode + '#';
              break;
            }
          }

          // 若当前减免已经使费用减免为0则跳出循环
          if (coupon.value >= serviceFee - this.discountTotalFee) {
            couponList[checkedIndex].checked = true;
            couponList[checkedIndex].disabled = false;
            checkedCouponList.push(checkedIndex);
            couponFee += coupon.value;
            couponCode += coupon.couponCode + '#';
            break;
          }

          // 循环到最后一张券
          if (i === couponListRule1.length - 1) {
            couponList[checkedIndex].checked = true;
            couponList[checkedIndex].disabled = false;
            checkedCouponList.push(checkedIndex);
            couponFee += coupon.value;
            couponCode += coupon.couponCode + '#';
          }
        }
      }

      // 未使用规则1的电子券则继续
      if (!isCheckedRule1 && couponListRule2 && couponListRule2.length) {
        // 使用同类型可叠加电子券
        let sum = 0; // 电子券价值累加
        for (const coupon of couponListRule2) {
          sum += coupon.value;
          // 浦东每次上限处理
          if (
            this.parkMallCode === 1 &&
            this.discountTotalFee + sum > this.maxonetimediscountFee
          ) {
            break;
          }
          // 沈阳(会员等级+消费+电子券)、深圳每日上限处理
          if (
            (this.parkMallCode === 4 || this.parkMallCode === 5) &&
            this.discountTotalFee + sum > this.maxonedaydiscountFee
          ) {
            break;
          }
          const checkedIndex = couponList.findIndex(
            (e) => e.couponCode === coupon.couponCode
          );
          couponList[checkedIndex].checked = true;
          couponList[checkedIndex].disabled = false;
          checkedCouponList.push(checkedIndex);
          couponFee = sum;
          couponCode += coupon.couponCode + '#';

          // 杭州电子券使用数量上限处理
          if (
            this.parkMallCode === 2 &&
            checkedCouponList.length ===
              this.parkFee.parkInfoEntity.useTicketNum -
                this.parkFee.parkInfoEntity.couponcodeNum
          ) {
            break;
          }

          // 若当前减免已经使费用减免为0则跳出循环
          if (sum >= serviceFee - this.discountTotalFee) {
            break;
          }
        }
      }

      // 实时显示
      if (couponCode.lastIndexOf('#') === couponCode.length - 1) {
        couponCode = couponCode.slice(0, couponCode.length - 1);
      }
      this.couponInfo = {
        couponfee: couponFee,
        couponcode: couponCode,
      };
      this.checkedCouponCount = checkedCouponList.length;

      // 存入缓存(用于子页面停车优惠画面显示)
      uni.setStorageSync('checkedCouponList', checkedCouponList);
      uni.setStorageSync('list', couponList);
      uni.setStorageSync('couponInfo', this.couponInfo);
    },

    // 自动选取积分减免
    autoBonus(serviceFee) {
      // 支付金额0 则无需后续减免
      if (!this.actualFee) {
        return;
      }

      // 浦东 超出每次减免上限 则无需后续
      if (
        this.parkMallCode === 1 &&
        this.discountTotalFee >= this.maxonetimediscountFee
      ) {
        return;
      }

      // 深圳积分特殊处理(金额计算) 其它停车场小时计算
      if (this.parkMallCode === 5) {
        if (this.discountTotalFee >= this.maxonedaydiscountFee) {
          return;
        }
        let bonus = this.bonus;
        // 剩余可减免金额
        const remainDiscountFee =
          this.maxonedaydiscountFee - this.discountTotalFee;
        // 剩余停车金额
        let remainFee = serviceFee - this.discountTotalFee;
        if (remainFee > remainDiscountFee) {
          remainFee = remainDiscountFee;
        }
        let bonusAll = (remainFee * this.integral) / this.integralToValue; // 全部减免所需积分
        if (bonusAll < this.integral) {
          bonusAll = this.integral;
        }
        // 取余
        const remainBonus = bonusAll % this.integral;
        const remainMyBonus = this.bonus % this.integral;
        // 如果有余数 做倍数处理
        if (remainBonus) {
          bonusAll = bonusAll - remainBonus + this.integral;
        }
        if (remainMyBonus) {
          bonus = this.bonus - remainMyBonus;
        }
        if (bonus <= bonusAll) {
          // 积分可兑换多少金额 小数向下取整
          this.duration = Math.floor(
            (bonus * this.integralToValue) / this.integral
          );
        } else {
          this.duration = (bonusAll * this.integralToValue) / this.integral;
        }
        if (this.duration > this.integralMaxMoney) {
          this.duration = this.integralMaxMoney;
        }
      } else {
        // 剩余停车时长(有小数情况因此向上取整)
        const serviceTime = Math.ceil(
          (serviceFee - this.discountTotalFee) / this.hourMoney
        );
        // if (this.parkFee.discountKind === 6) {
        //   const newMemberBonusAll = serviceTime * this.integralNew; // 全部新会员积分减免所需积分
        //   if (this.bonus <= newMemberBonusAll) {
        //     // 积分不够兑换整小时 向下取整
        //     this.durationNew = Math.floor(this.bonus / this.integralNew);
        //   }
        // }
        const bonusAll = serviceTime * this.integral; // 全部减免所需积分
        // console.log('this.bonusAll::::::::::', this.bonusAll, this.bonus)
        if (this.bonus <= bonusAll) {
          // 积分不够兑换整小时 向下取整
          // console.log('1111111this.duration::::::::::', this.duration,)
          this.duration = Math.floor(this.bonus / this.integral);
          // console.log('this.duration::::::::::', this.duration, )
        } else {
          this.duration = serviceTime;
        }
      }

      // 浦东每次减免上限处理
      if (this.parkMallCode === 1) {
        const bonusMax = Math.floor(
          (this.maxonetimediscountFee - this.discountTotalFee) / this.hourMoney
        );
        if (this.duration > bonusMax) {
          this.duration = bonusMax;
        }
      }
      // 北京积分减免每日上限处理
      if (this.parkMallCode === 3) {
        const bonusMax =
          this.parkFee.parkInfoEntity.integralMaxHour -
            this.parkFee.parkInfoEntity.integralUseHour || 0;
        if (this.duration > bonusMax) {
          this.duration = bonusMax;
          // console.log('this.duration::', this.duration)
        }
      }

      // 深圳特殊处理(单位:金额)
      if (this.parkMallCode === 5) {
        this.bonus -= (this.duration * this.integral) / this.integralToValue;
        this.bonusfee = this.duration;
      } else {
        this.bonus -= this.duration * this.integral;

        this.bonusfee = this.duration * this.hourMoney;
      }
      this.durationCopy = this.duration;
      this.bonusCopy = this.bonus;
    },
    //北京新会员自动选取积分减免
    newMemberautoBonus(serviceFee) {
      const serviceTime = Math.ceil(
        (serviceFee - this.discountTotalFee) / this.hourMoney
      );
      const bonusAll = serviceTime * this.integralNew; // 全部减免所需积分
      if (this.bonus <= bonusAll) {
        // 积分不够兑换整小时 向下取整
        this.durationNew = Math.floor(this.bonus / this.integralNew);
      } else {
        this.durationNew = serviceTime;
      }

      const bonusMaxNew =
        this.parkFee.parkIntegraltomoneyList[1].integralMaxHour -
          this.parkFee.parkIntegraltomoneyList[1].integralUseHour || 0;
      if (this.durationNew > bonusMaxNew) {
        this.durationNew = bonusMaxNew;
      }

      this.bonus -= this.integralNew * this.durationNew;
      this.durationCopy2 = this.durationNew;
      this.newBonusfee = this.durationNew * this.hourMoney;
      this.bonusCopy = this.bonus;
    },
    // 节流函数
    throttle(fc, waitTime = 1500, imme = true) {
      if (imme) {
        if (!this.flag) {
          this.flag = true;
          typeof fc === 'function' && fc();
          this.timer = setTimeout(() => {
            this.flag = false;
          }, waitTime);
        }
      } else {
        if (!this.flag) {
          this.flag = true;
          this.timer = setTimeout(() => {
            this.flag = false;
            typeof fc === 'function' && fc();
          }, waitTime);
        }
      }
    },

    // 支付前
    toPay() {
      this.throttle(() => {
        // 北京特殊处理
        if (this.parkMallCode === 3 && this.discountTotalFee) {
          return uni.showModal({
            title: '提示',
            content: '请确认是否使用优惠，确认后无法返还!',
            success: (res) => {
              if (res.confirm) {
                this.goPay();
              }
            },
          });
        }
        this.goPay();
      }, 3000);
    },

    // 支付
    goPay() {
      if (
        !this.parkInfo.servicefee ||
        (app.globalData.member && !this.parkFee.parkInfoEntity)
      ) {
        return;
      }
      uni.showLoading({
        title: '加载中',
      });
      let bonus = this.duration * this.integral;
      let newMemberBonus = this.durationNew * this.integralNew;
      // 深圳特殊处理(单位:金额)
      if (this.parkMallCode === 5) {
        bonus = (this.duration * this.integral) / this.integralToValue;
      }

      const openId = MemberCacheTool.getOpenId(app);
      // 埋点-点击 提交支付
      // console.log(this.parkingTrack, '数据埋点')

      const params = {
        carno: this.parkInfo.carno,
        mallid: app.globalData.mallid,
        groupId: app.globalData.groupId,
        openId: openId,
        vipcode:
          app.globalData.member?.vipcode ||
          uni.getStorageSync('member')?.vipcode,
        createuser: 'sys_miniprogram',
        orderno: this.parkInfo.orderno,
        bonusfee: this.bonusfee * 100,
        newMemeberBonusFee: this.newBonusfee * 100 || 0,
        bonus: bonus,
        couponfee: this.couponInfo.couponfee * 100 || 0,
        couponfeeMin: (this.couponInfo.couponfee / this.hourMoney) * 60 || 0,
        couponcode: this.couponInfo.couponcode,
        paperCoupons: JSON.stringify(this.paperCouponInfo.paperCouponList), // 纸质优惠券券码 多个以#分割
        paperCouponCode: this.paperCouponInfo.paperCouponcode, // 纸质优惠券券码 多个以#分割
        paperCouponFee: this.paperCouponInfo.paperDiscountFee * 100 || 0, // 纸质优惠券优惠金额，单位：分
        paperCouponFeeMin:
          parseInt(this.paperCouponInfo.paperDiscountTime * 60) || 0, // 纸质优惠券优惠时长，单位：分钟
        bonusFeeMin: this.duration * 60, // 积分抵扣时长，单位：分钟
        newMemberBonusMin: this.durationNew * 60, // 新会员积分抵扣时间， 单位：分钟
        consumeFeeMin:
          (this.discountTotal.consumeFee / this.hourMoney) * 60 || 0, // 消费减免时长，单位：分钟
        firstParkFeeMin:
          (this.discountTotal.firstParkFee / this.hourMoney) * 60 || 0, // 首停减免时长 单位 分钟
        memberGradeFeeMin:
          (this.discountTotal.memberGradeFee / this.hourMoney) * 60 || 0, // 会员等级减免时长，单位：分钟
        consumeFee: this.discountTotal.consumeFee * 100 || 0,
        consumeFeeHour: this.discountTotal.consumeFee / this.hourMoney || 0,
        useConsumeFee:
          this.parkMallCode === 3 ? '0.0' : this.discountTotal.useConsumeFee,
        memberGradeFee: this.discountTotal.memberGradeFee * 100 || 0,
        memberGradeFeeHour:
          this.discountTotal.memberGradeFee / this.hourMoney || 0,
        firstParkFee: this.discountTotal.firstParkFee * 100 || 0,
        usetotalfee:
          ((this.discountTotal.memberGradeFee || 0) +
            (this.discountTotal.consumeFee || 0) +
            this.bonusfee +
            (this.newBonusfee || 0) +
            (this.couponInfo.couponfee || 0) +
            (this.paperCouponInfo.paperDiscountFee || 0)) *
          100,
        payfee: parseFloat((this.actualFee * 100).toFixed(2)),
        // payfee: 1,
        totalfee:
          this.discountTotalFee * 100 < this.parkInfo.servicefee
            ? this.discountTotalFee * 100
            : this.parkInfo.servicefee,
        paytype: this.actualFee > 0 ? 3 : 1,
        projectId: app.globalData.curMarket.projectId,
        newMemberBonus: newMemberBonus,
      };
      // 北京新会员积分兑换
      // if (this.parkMallCode === 3 || this.discountKind === 6) {
      //   console.log('params.newMemberBonus::::::', params.newMemberBonus)
      //   params.newMemberBonus = this.newBonusfee * 100
      // }
      let url =
        this.actualFee > 0
          ? 'api/1.0/park/weixinPay'
          : 'api/1.0/park/notWeixinPay';
      // 北京特殊处理
      if (this.parkMallCode === 3) {
        url = 'api/1.0/park/dealParkOrderBj';
      }
      this.$md(params);
      this.$request({
        url: this.$baseURL + url,
        // url: 'http://172.21.202.252:8083/xcrm-api/' + url,

        data: params,
        method: 'POST',
        header: JSON.parse(uni.getStorageSync('handleUser')),
      })
        .then((res) => {
          uni.hideLoading();
          if (res.data.code === 0) {
            this.parkingTrack.track(100, {
              order_id: this.parkInfo.orderno,
              plate_type: 1,
              plate_num: this.parkInfo.carno,
              area: this.parkInfo.parkname,
              parking_duration: this.parkInfo.servicehour * 3600,
              start_time: this.parkInfo.createDate,
              total_amount: (this.parkInfo.servicefee / 100).toFixed(2),
              pay_amount: this.actualFee,
              // total_point: this.parkInfo.parkname,
              pay_point: this.integral * this.duration,
              coupon_type: this.parkInfo.paykind || '',
              coupon_id: this.parkInfo.couponcode || '',
              // coupon_name: this.parkInfo.parkname,
              coupon_value: this.parkInfo.bonusfee || 0,
              pay_type: this.parkInfo.paytype || '',
              pay_time: this.parkInfo.createDate || '',
            });
            uni.setStorageSync('actualFee', this.actualFee);
            uni.setStorageSync('bonus', this.bonusfee);
            // 北京特殊处理
            if (this.parkMallCode === 3) {
              if (!res.data.data.syncId) {
                uni.showToast({
                  title: '缴费成功',
                  icon: 'none',
                });
                uni.navigateBack();
                return;
              }
              // console.log(this.bindflag, 'bindflag')
              // const accountInfo = uni.getAccountInfoSync();
              //                 const { miniProgram: { envVersion }} = accountInfo;

              // 				if (this.bindflag === 0) {
              // 					uni.navigateToMiniProgram({
              // 					  appId: this.$etcpAppId,
              // 					  path: this.$etcpAppPath,
              // 					  extraData: {
              // 					    params : {
              // 					      token: res.data.data.token,
              // 					      syncId: res.data.data.syncId,
              // 					      payType: 6,
              // 					      CarNumber: res.data.data.CarNumber,
              // 					      actionId: 1,
              // 						  payAcType: 2
              // 					    }
              // 					  },
              // 					  envVersion: 'release',
              // 					  success: res => {
              // 					    console.log(res);
              // 					    uni.navigateBack();
              // 					  }
              // 					});
              // 				} else if (this.bindflag === 1) {
              // 					uni.navigateToMiniProgram({
              // 					  appId: this.$etcpAppId,
              // 					  path: this.$etcpAppPath,
              // 					  extraData: {
              // 					    params : {
              // 					      token: res.data.data.token,
              // 					      syncId: res.data.data.syncId,
              // 					      payType: 6,
              // 					      CarNumber: res.data.data.CarNumber,
              // 					      actionId: 1
              // 					    }
              // 					  },
              // 					  envVersion: 'release',
              // 					  success: res => {
              // 					    console.log(res);
              // 					    uni.navigateBack();
              // 					  }
              // 					});
              // 				}
              if (this.bindflag === 0) {
                uni.navigateToMiniProgram({
                  appId: this.$etcpAppId,
                  path: this.$etcpAppPath,
                  extraData: {
                    params: {
                      token: res.data.data.token,
                      syncId: res.data.data.syncId,
                      payType: 6,
                      CarNumber: res.data.data.CarNumber,
                      actionId: 1,
                      payAcType: 2,
                    },
                  },
                  // envVersion: 'trial',
                  envVersion: this.$etcpEnv_Version,
                  success: (res) => {
                    console.log(res);
                    uni.navigateBack();
                  },
                });
              } else if (this.bindflag === 1) {
                uni.navigateToMiniProgram({
                  appId: this.$etcpAppId,
                  path: this.$etcpAppPath,
                  extraData: {
                    params: {
                      token: res.data.data.token,
                      syncId: res.data.data.syncId,
                      payType: 6,
                      CarNumber: res.data.data.CarNumber,
                      actionId: 1,
                    },
                  },
                  // envVersion: 'trial',
                  envVersion: this.$etcpEnv_Version,
                  success: (res) => {
                    uni.navigateBack();
                  },
                });
              }

              return;
            }
            if (this.actualFee > 0) {
              this.kerryPayment(res.data.data, params);
            } else {
              uni.redirectTo({
                url: './parkingFeeSuccess?carno=' + this.parkInfo.carno,
              });
            }
          } else {
            uni.showModal({
              showCancel: false,
              title: '提示',
              content: res.data.msg,
              complete: (r) => {
                // uni.navigateBack({})
                this.createParkOrder();
              },
            });
          }
        })
        .catch((err) => {
          console.log(err);
          uni.hideLoading();
          uni.showToast({
            title: JSON.stringify(err),
            icon: 'none',
          });
        });
    },
    // 嘉里第三方支付接口
    kerryPayment(session, payParams) {
      const openId = MemberCacheTool.getOpenId(app);
      const appId = uni.getAccountInfoSync().miniProgram.appId;
      const params = {
        region: 'cn',
        payChannel: 'MINI_PROGRAM',
        payOption: 'WECHATPAY',
        appId: appId,
        openId: openId,
      };
      this.$md(params);
      let url =
        this.$kipPaymentUrl + '/services/session/' + session + '/transactions';
      this.$request({
        url: url,
        data: params,
        method: 'POST',
        header: JSON.parse(uni.getStorageSync('handleUser')),
      })
        .then((res) => {
          if (res.data?.code == '000000') {
            const prepayJson = res.data.data.params;
            // 微信支付接口
            uni.requestPayment({
              provider: 'wxpay',
              timeStamp: prepayJson.timeStamp,
              nonceStr: prepayJson.nonceStr,
              package: prepayJson.package,
              signType: prepayJson.signType,
              paySign: prepayJson.paySign,
              success: () => {
                uni.showModal({
                  showCancel: false,
                  title: '提示',
                  content: '支付成功',
                  complete: () => {
                    uni.redirectTo({
                      url: './parkingFeeSuccess?carno=' + this.parkInfo.carno,
                    });
                  },
                });
              },
              fail: () => {
                this.failedParkOrder();
              },
            });
          } else {
            this.failedParkOrder();
          }
        })
        .catch((err) => {
          console.log(err);
          this.failedParkOrder();
        });
    },

    // 支付失败弹框 重新创建订单
    reCreateParkOrder() {
      uni.showModal({
        showCancel: false,
        title: '提示',
        content: '支付失败',
        complete: (r) => {
          this.createParkOrder();
        },
      });
    },

    // 支付失败后返还优惠券
    failedParkOrder() {
      const param = {
        orderno: this.parkInfo.orderno,
      };
      this.$md(param);
      this.$request({
        url: this.$baseURL + 'api/1.0/park/failedParkOrder',
        data: param,
        method: 'POST',
        header: JSON.parse(uni.getStorageSync('handleUser')),
      })
        .then((res) => {
          this.reCreateParkOrder();
        })
        .catch((err) => {
          this.reCreateParkOrder();
        });
    },

    //缴费说明隐藏显示
    togglePayinstruction() {
      this.isShow = !this.isShow;
    },
  },
};
</script>

<style lang="less" scoped>
@import '../../styles/common.less';
.scroll-Y {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 100vh;
  background: #f2f2f2;
  padding-bottom: 20rpx;
}

.wrap {
  display: flex;
  flex-direction: column;
  width: 100%;

  .parkingFee {
    display: flex;
    flex-direction: column;

    .parkingFee-top {
      display: flex;
      flex-direction: column;
      background: #c69c6d;

      .top_content {
        padding: 35rpx;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;

        text {
          font-size: 24rpx;
          color: #fff;
          text-align: left;
        }

        .title_box {
          display: flex;
          align-items: center;
          justify-content: space-between;
          margin-bottom: 30rpx;

          .btn {
            padding: 8rpx 14rpx;
            box-sizing: border-box;
            color: #c69c6d;
            background: #fff;
            border-radius: 20rpx;
            text-align: center;
          }
        }
      }

      .top_menu {
        background: #fff;
        padding: 30rpx 0;
        box-sizing: border-box;
        display: flex;
        justify-content: space-between;
        border-radius: 15rpx 15rpx 0 0;

        .menu_item {
          display: flex;
          flex-direction: column;
          align-items: center;
          width: 33.3%;

          image {
            width: 102rpx;
            height: 102rpx;
          }

          text {
            font-size: 24rpx;
            margin-top: 24rpx;
          }
        }
      }
    }

    .parkingFee-bottom {
      width: 100%;
      display: flex;
      flex-direction: column;
      padding: 14rpx 25rpx;
      box-sizing: border-box;

      // 车牌号查询
      .parkingFee-search {
        width: 100%;
        display: flex;
        flex-direction: column;
        background: #fff;
        border-radius: 24rpx;
        padding: 26rpx 25rpx 20rpx;
        box-sizing: border-box;

        .search_tip {
          color: #999;
          font-size: 24rpx;
          text-align: center;
        }

        .searchPrice {
          margin: 0 auto;
          width: 40%;
          height: 60rpx;
          line-height: 60rpx;
          border-radius: 20rpx;
        }
      }

      .search-list {
        display: flex;
        flex-direction: column;
        background: #fff;
        padding: 0 30rpx;
        box-sizing: border-box;
        margin-top: 20rpx;
        border-radius: 24rpx;
        width: 100%;

        .list_item {
          padding: 38rpx 0;
          box-sizing: border-box;
          display: flex;
          align-items: center;
          justify-content: space-between;
          border-bottom: 1px solid #f2f2f2;

          text {
            font-size: 28rpx;
          }

          button {
            height: 60rpx;
            line-height: 60rpx;
            margin: 0;
          }
        }
      }
    }
  }
}

// 缴费说明
.payInstruct_wrap {
  width: 300px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20rpx;

  .scroll {
    height: 600rpx;
    display: flex;
    flex-direction: column;
    padding: 20rpx;
    box-sizing: border-box;

    .payInstruct_title {
      font-size: 30rpx;
      text-align: center;
      padding: 20rpx 0;
      box-sizing: border-box;
      border-bottom: 1px solid #f2f2f2;
    }

    .payInstruct_con {
      display: flex;
      width: 100%;
      padding: 20rpx 10rpx;
      box-sizing: border-box;

      text {
        font-size: 28rpx;
        color: #999;
      }
    }
  }
}

// 车牌号 & 虚拟键盘
.input-box {
  width: 100%;
  height: 70rpx;
  margin: auto;
  background: rgba(255, 255, 255, 1);
  box-shadow: 0px 6px 8px 0px rgba(96, 100, 112, 0.1);
  border-radius: 0.4rem;
  margin: 1rem auto;
  display: flex;
  justify-content: center;

  .li {
    flex: 1;
    border: 1px solid rgba(206, 208, 210, 1);
    box-sizing: border-box;
    margin: 0 2px;
    font-size: 30rpx;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #323233;

    image {
      width: 80%;
      height: 100%;
    }

    &.active {
      border-color: #3e67ff;
    }

    &:nth-child(2) {
      margin-right: 26rpx;
    }
  }
}

.class-van-button-small {
  min-width: 0;
  border-radius: 10rpx;
  margin: 10rpx 3rpx;
  box-shadow: 10rpx 10rpx 10rpx #aaa;
}

.class-plate-box {
  width: 100%;
  padding: 24rpx 0;
  box-sizing: border-box;
  position: relative;
}

.plate_number {
  width: 100%;
  display: flex;
  flex-direction: column;

  .plate_number_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    background: #eaf1f9;
    padding: 0 0 10rpx;
    box-sizing: border-box;

    .close-box {
      width: 100%;
      font-size: 24rpx;
      color: #3e67ff;
      text-align: right;
      margin-right: 1.25rem;

      view {
        padding: 10px;
      }
    }

    .plate_chinese_box {
      width: 100%;
      display: flex;
      flex-wrap: wrap;
      justify-content: center;

      button {
        width: 9%;
        height: 2.5rem;
        line-height: 2.5rem;
        text-align: center;
        padding: 0;
        font-size: 28rpx;
        .class-van-button-small;
      }
    }
  }
}

.allBoard {
  width: 100%;
  display: flex;
  flex-direction: column;

  .allBoard_wrap {
    width: 100%;
    display: flex;
    flex-direction: column;
    background: #eaf1f9;
    padding: 0 0 10rpx;
    box-sizing: border-box;
  }

  .close-box {
    padding-top: 22rpx;
    box-sizing: border-box;
    font-size: 24rpx;
    color: #3e67ff;
    text-align: right;
    margin-right: 1.25rem;
  }

  .plate_number_box {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;

    button {
      width: 9%;
      height: 2.5rem;
      line-height: 2.5rem;
      text-align: center;
      padding: 0;
      font-size: 28rpx;
      .class-van-button-small;
    }
  }
}

.vehicleMgt-list {
  display: flex;
  flex-direction: column;
  margin-bottom: 35rpx;

  .vehicleMgt-title {
    display: flex;
    padding: 30rpx;
    box-sizing: border-box;
    border-bottom: 1px solid #f2f2f2;

    text {
      font-size: 28rpx;
    }
  }

  .vehicleMgt-content {
    display: flex;
    flex-direction: column;
    background: #fff;

    .item {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 15rpx 36rpx;
      box-sizing: border-box;
      border-bottom: 1px solid #f2f2f2;

      text {
        font-size: 28rpx;
      }
    }
  }
}

.delBtn {
  color: #c69c6d;
  height: 38rpx;
  line-height: 38rpx;
  font-size: 20rpx;
  width: 124rpx;
  border: 1px solid #c69c6d;
  border-radius: 19rpx;
  text-align: center;
}

.payThe {
  width: 100%;

  .pay_index {
    text-align: center;
    padding: 20rpx 0;
    font-size: 20px;
    margin-bottom: 5px;
    background-color: #fff;
    font-weight: 600;
  }

  .pay_title {
    display: flex;
    justify-content: space-between;
    background-color: #fff;
    border-bottom: 1px solid #eee;
    padding: 15px 30rpx;
    .title {
      font-size: 16px;
    }
    .dk_desc {
      font-size: 12px;
      color: #999;
      margin-top: 3px;
    }
    .value {
      font-size: 14px;
      color: #999;
    }
  }

  .payjf {
    font-size: 12px;
    color: #999;
    margin-right: 18rpx;
    margin-top: 12px;
  }

  .paySelect {
    color: rgba(16, 16, 16, 100);
    font-size: 20rpx;
    font-family: Arial;
    border: 1px solid rgba(187, 187, 187, 100);
    border-radius: 10rpx;
    margin-left: 80rpx;
    width: 260rpx;
    height: 80rpx;
  }

  .paySelect1 {
    color: rgba(16, 16, 16, 100);
    font-size: 20rpx;
    font-family: Arial;
    border: 1px solid rgba(187, 187, 187, 100);
    width: 200rpx;
    height: 50rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #f2f2f2;
    margin-top: 5px;

    .pay-se-l {
      height: 50rpx;
      width: 50rpx;
      line-height: 50rpx;
      text-align: center;
      font-size: 50rpx;
      background-color: #fff;
    }
  }

  .payjfzk {
    font-size: 20rpx;
    color: #8b8c8b;
    margin-top: 10rpx;
    margin-left: 210rpx;
  }

  .pay_time {
    font-size: 28rpx;
    margin-left: 180rpx;
    padding-bottom: 40rpx;
  }

  .pay_time1 {
    margin-top: 26rpx;
  }
}

.pay_jiaof {
  width: 80%;
  height: 70rpx;
  line-height: 70rpx;
  background-color: #c69c6d;
  text-align: center;
  color: rgba(255, 255, 255, 100);
  font-size: 28rpx;
  font-family: Microsoft Yahei;
  border-radius: 10rpx;
  margin: 20rpx auto;
}

// 停车券弹窗
.ticketPopup {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 20rpx 20rpx 0 0;
  z-index: 999;

  .popup-title {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 30rpx 42rpx;
    box-sizing: border-box;
    border-bottom: 1px solid #f2f2f2;
    position: relative;

    text {
      color: #999;
      font-size: 28rpx;
    }

    .useRule-text {
      position: absolute;
      right: 42rpx;
      color: rgb(58, 130, 248);
    }
  }

  .popup_scroll {
    height: 70vh;
    background: #f2f2f2;
  }

  .popup_content {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: 10rpx 20rpx;
    box-sizing: border-box;

    .item {
      display: flex;
      margin-bottom: 16rpx;

      .item-image {
        border: 2rpx solid #f2f2f2;
        border-right: 2rpx dashed #f2f2f2;
        padding: 16rpx;
        border-radius: 16rpx 0 0 16rpx;
        box-sizing: border-box;
        display: flex;
        align-items: center;
        justify-content: center;
        background: #fff;

        &.cro {
          position: relative;
        }

        .img {
          width: 130rpx;
          height: 130rpx;
          border-radius: 8rpx;

          image {
            width: 100%;
            height: 100%;
          }
        }
      }

      .item-content {
        flex: 1;
        border: 2rpx solid #f2f2f2;
        border-radius: 0 8rpx 8rpx 0;
        padding: 16rpx;
        box-sizing: border-box;
        background: #fff;
        display: flex;
        position: relative;

        &.cro_ {
          position: relative;
        }

        .content {
          display: flex;
          flex-direction: column;
          justify-content: center;
          flex: 1;

          .h3 {
            font-size: 28rpx;
            line-height: 48rpx;
            font-weight: 600;
          }
          .h3.color_disabled {
            color: #838181;
            font-weight: 400;
          }

          .span {
            font-size: 24rpx;
            color: #838181;
            line-height: 40rpx;
          }
        }

        .erwm_box {
          display: flex;
          flex-direction: column;
          align-items: flex-end;
          justify-content: space-between;

          image {
            width: 52rpx;
            height: 52rpx;
          }

          .tag {
            position: absolute;
            bottom: 0;
            right: 0;
            border-radius: 16rpx;
            padding: 5rpx 10rpx;
            box-sizing: border-box;
            background: #f7931e;
            text-align: center;
            color: #fff;
            width: 122rpx;
            font-size: 24rpx;
          }
        }
      }
    }
  }
  // 对勾
  .dot {
    position: absolute;
    top: 0;
    right: 0;
    width: 2.25rem;
    height: 2.375rem;
  }
}

// 弹窗按钮
.popup_button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10rpx 20rpx;
  box-sizing: border-box;

  .desc .num {
    color: #c69c6d;
    font-size: 18px;
  }

  .ok_btn {
    height: 110rpx;
    line-height: 110rpx;
    text-align: center;
    background: #c69c6d;
    color: #fff !important;
    width: 120px;
    height: 40px;
    line-height: 40px;
    border-radius: 40px;
  }
}

.warp {
  width: 94%;
  margin-left: 3%;
  margin-top: 20rpx;
  background-color: #fff;
  border-radius: 10rpx;
  padding-bottom: 10rpx;
  .warp_index {
    width: 650rpx;
    margin-left: 27.5rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20rpx 0;
    font-size: 28rpx;
  }
  .warp_index1 {
    justify-content: center;
    font-size: 40rpx;
    padding: 30rpx 0;
    border-bottom: 1rpx solid #f2f2f2;
  }
  .color_warp_index {
    color: #000000;
  }
  .bgc-blue {
    .bgc-color('blue');
  }
  .bgc-green {
    .bgc-color('green');
  }
  .bgc-color(@value) {
    @color: 'color-@{value}';
    color: #fff;
    background-color: @@color;
    margin: 0;
    width: 100%;
    border-radius: 10rpx 10rpx 0 0;
  }
  .warp_index_da {
    padding: 30rpx 0;
    border-bottom: 1rpx solid #f2f2f2;
  }
  .warp_index_color {
    color: #999999;
    display: flex;
    align-items: center;
  }
}

.flewx {
  width: 100%;
  height: 130rpx;
  background-color: #fff;
  position: fixed;
  bottom: 0;
  display: flex;
  align-items: center;
  justify-content: space-around;
  // padding-bottom: constant(safe-area-inset-bottom);
  // padding-bottom: env(safe-area-inset-bottom);
  padding-bottom: 20rpx;
  .flewx-content {
    position: absolute;
    left: 16px;
  }
  .flewx_index3 {
    width: 150rpx;
    height: 70rpx;
    border-radius: 50rpx;
    text-align: center;
    font-size: 28rpx;
    line-height: 70rpx;
    color: #fff;
    background-image: linear-gradient(to right, #7e4fa1, #433c7f);
    box-shadow: 2px 3px 5px #888888;
    position: absolute;
    right: 16px;
  }
  .blue_flewx_index3 {
    .color_flewx_index3('blue');
  }
  .green_flewx_index3 {
    .color_flewx_index3('green');
  }
  .color_flewx_index3(@value) {
    @color: 'color-@{value}';
    background-image: none;
    background-color: @@color;
  }
  .btn-disabled {
    color: hsla(0, 0%, 100%, 0.6);
    cursor: not-allowed;
    background-color: rgb(128, 128, 128);
    background-image: none;
  }
}
.popue_box {
  height: 530rpx;
  background-color: #fff;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  .popue_box_index {
    width: 92%;
    margin-left: 4%;
    font-size: 30rpx;
    height: 90rpx;
    border-bottom: 1px solid #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .popue_box_index1 {
    font-size: 32rpx;
    width: 92%;
    margin-left: 4%;
    font-weight: 700;
    height: 90rpx;
    line-height: 90rpx;
    border-bottom: 1px solid #f5f5f5;
    text-align: center;
  }
  .popue_box_index4_xs {
    width: 250rpx;
    height: 55rpx;
    border: 2rpx solid #e5e6ec;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 10rpx;
    .popue_box_index4_xs_index1 {
      width: 54rpx;
      height: 54rpx;
      background-color: #f5f8fb;
      text-align: center;
      line-height: 54rpx;
      border-right: 1rpx solid #e5e6ec;
    }
    .popue_box_index4_xs_index3 {
      width: 54rpx;
      height: 54rpx;
      background-color: #f5f8fb;
      text-align: center;
      line-height: 54rpx;
      border-left: 1rpx solid #e5e6ec;
    }
  }
  .popue_box_index5 {
    font-size: 30rpx;
    width: 92%;
    margin-left: 4%;
    font-weight: 700;
    height: 140rpx;
    line-height: 90rpx;
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  .popue_box_index4_by {
    width: 320rpx;
    height: 90rpx;
    line-height: 90rpx;
    color: #fff;
    border-radius: 60rpx;
    text-align: center;
    color: #7e4fa1;
    font-weight: 700;
    border: 1rpx solid #7e4fa1;
  }
  .blue_popue_box_index4_by {
    .color_popue_box_index4_by('blue');
  }
  .green_popue_box_index4_by {
    .color_popue_box_index4_by('green');
  }
  .color_popue_box_index4_by(@value) {
    @color: 'color-@{value}';
    color: @@color;
    border: 1rpx solid @@color;
  }
  .popue_box_index4_by1 {
    width: 320rpx;
    height: 90rpx;
    line-height: 90rpx;
    color: #fff;
    border-radius: 60rpx;
    text-align: center;
    background-image: linear-gradient(to right, #7e4fa1, #433c7f);
    border: 1rpx solid #7e4fa1;
  }
  .blue_popue_box_index4_by1 {
    .color-background-color('blue');
  }
  .green_popue_box_index4_by1 {
    .color-background-color('green');
  }
}
.text-purple {
  color: #703a98;
}
.text-red {
  color: #ff0000;
}
.top_content {
  padding: 25rpx 35rpx 120rpx;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;

  text {
    font-size: 24rpx;
    color: #898989;
    text-align: left;
  }

  .title_box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20rpx;

    .btn {
      padding: 0rpx 14rpx;
      box-sizing: border-box;
      border-radius: 20rpx;
      font-size: 30rpx;
      color: #000;
      text-align: center;
    }
  }
  .info {
    padding-left: 18rpx;
    font-size: 27rpx;
    width: 95%;
    color: #666;
    line-height: 45rpx;
  }
  .is-show {
    word-break: break-all;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .top-down {
    text-align: center;
    color: #d6d2d2;
  }
}
</style>
