小程序本地假分页 自适应滚动高度

2023-10-30  本文已影响0人  糖醋里脊120625
    <!-- 自定义的导航栏开始 -->
    <view class="custom flex_center" style="padding-top:{{statusBarHeight}}px">

        <view class="title-left">
            <view class="back" bind:tap="backFun">
                <van-icon color="white" name="arrow-left" size="25px" />
            </view>
            <view class="avatar-title">选择商品</view>
        </view>
        <view class="search-icon" bind:tap="searchClick" style="margin-right:{{navInfo.width}}px">
            <van-icon
            color="white"
            class="icon-forn"
            slot="left-icon"
            prefix="wr"
            name="search"
            size="50rpx"
            />
        </view>
    </view>


<view class="name-all" id="nameID">
    <!-- <van-search disabled bind:click-input="searchClick" placeholder="请输入搜索关键词" /> -->
    <view class="business-top">
        <view class="business-left">
            <view class="business-name">{{postBusiness.eiName}}</view>
            <view class="business-text"><van-icon name="location" color="white" />{{postBusiness.eiAddress}}</view>
            <view class="business-text">
                <van-icon name="friends" color="white" />
                {{postBusiness.eiContact}}/
                <view bind:tap="callPhone">{{postBusiness.eiAdminMobile}}</view>
                
            </view>
            
        </view>
    </view>
</view>
<view class="main-cate">
    <scroll-view class="menu-left" style="height:{{heightScroll}}px;box-sizing: border-box;" scroll-y scroll-with-animation="{{true}}">
        <view class="menu-main">
            <view
                class="cate-list"
                wx:for="{{goodsList}}"
                wx:for-item="item"
                wx:for-index="index"
                wx:key="index"
                data-bean="{{item}}"
                data-index="{{index}}"
                bindtap="switchCategory"
            >
                <text class="cate-text {{curIndex==index?'on':''}}">{{item.ptItemName}}</text>
                
            </view>
        </view>
    </scroll-view>
    <view  class="menu-right" >
        <scroll-view style="height:{{heightScroll}}px;box-sizing: border-box;"  scroll-y="true" scroll-with-animation="true" bindscroll="watchScroll" scroll-into-view="{{toView}}" bindscrolltolower="Reachbottom">
            <block class="cate-product">
                <view  class="product-list" wx:for="{{ProductList}}"  wx:for-item="each" data-each="{{each}}" wx:key="key">                     <van-image   lazy-load src="{{each.piImageUrl}}"/>
                    <view class="product-left">
                        <view class="product-name">{{each.piProductName}}</view>
                        <view class="product-desc">{{each.ProductDes}}</view>
                        <view class="product-end">
                            <view class="product_price">¥{{each.standardPrice}}</view>
                            <view class="add-cart"  wx:if="{{each.showAddOrSub==false}}">
                                <van-icon 
                                    name="shopping-cart"  
                                    color="#fa550f" 
                                    size="50rpx"  
                                    data-item-index="{{index}}" 
                                    data-parentIndex="{{parentIndex}}"
                                    bindtap="addCart"/>
                            </view>
                            <view class="count-part" wx:if="{{each.showAddOrSub==true}}">
                                <van-stepper
                                    data-item-index="{{index}}" 
                                    data-parentIndex="{{parentIndex}}"
                                    min="" 
                                    
                                    value="{{ each.SelNum }}" 
                                    bind:blur="BlurItemNum"
                                    bind:minus="MinusItemNum"
                                    bind:plus="PlusItemNum" 
                                    input-class="stepinput" 
                                    plus-class="stepplus" 
                                    minus-class="stepplus"
                                    input-width="60px" 
                                    button-size="25px"
                                />
                            </view>
                        </view>
                    </view>
                </view>
                <view class="none-text" wx:if="{{ProductList.length==0}}">
                    <image  src="https://pic-shop.magcloud.net/miniapp_static/empty_order_icons.png" />
                    <view >空空如也...</view>
                </view>
                
            </block>
        </scroll-view>
    </view>

    
</view>


<view class="pop-button" >
    <van-goods-action custom-class="action-box">
        <van-goods-action-icon icon="share-o" text="分享"  open-type="share"/>
        <van-goods-action-icon icon="shop-o" text="我要开店"  bind:click="ClickShop"  />
        <van-goods-action-icon icon="cart-o" text="购物车" info="{{GoodsNum}}"   bind:click="onClickIcon"  />
        <van-goods-action-button wx:if="{{ editChoose==false }}" color="#fa550f" text="去下单" bind:click="SubmitFun" />
        <van-goods-action-button  wx:if="{{ editChoose }}" color="#fa550f" text="去下单" bind:click="EditSubmit" />
    </van-goods-action>
    <view class="support-text">技术支持:400-100-9083</view>
</view>




<van-popup  custom-style="height: 50%;" position="bottom" z-index="{{100}}" show="{{ showPopup }}"  bind:close="onCancelCategory">
    <view class="eject-product">
        <view class="eject-list">
            <view  class="ejectselected-list" wx:for="{{HasSelectedList}}"  wx:for-item="each" data-each="{{each}}" wx:key="key"  wx:if="{{ each.SelNum>0}}" >
                <van-image  lazy-load src="{{each.piImageUrl}}"/>
                <view class="ejectselected-left">
                    <view class="ejectselected-name">{{each.piProductName}}</view>
                    <view class="product-desc">{{each.ProductDes}}</view>
                    <view class="product-end">
                        <view class="product_price">¥{{each.standardPrice}}</view>
                        <view class="ejectselected-part" wx:if="{{each.showAddOrSub==true}}">
                            <van-stepper
                                data-item-index="{{index}}" 
                                data-parentIndex="{{parentIndex}}"
                                min="" 
                                value="{{ each.SelNum }}"
                                bind:blur="BlurSelectedItemNum"
                                bind:minus="MinusSelectedItemNum"
                                bind:plus="PlusSelectedItemNum"   
                                input-class="stepinput" 
                                plus-class="stepplus" 
                                minus-class="stepplus"
                                input-width="60px" 
                                button-size="25px"
                            />
                        </view>
                    </view>
                </view>
            </view>
        </view>
        
    </view>
</van-popup>


//存放右侧分类的高度累加数组
var heightList = [];

import { goodsGroup, basicBusinessInfo,goodsNoTokenGroup } from '../../http/goodsApi'
import { centToYuan } from '../../unit/priceUtil'
import { getLocalUserInfo } from '../../unit/userInfo'
var dayjs = require('dayjs')
const app = getApp()

// https://www.bookstack.cn/read/vant-3.4.7-zh/8bd11acebe45f23c.md


Page({

  /**
   * 页面的初始数据
   */
  data: {
    goodsList: [],
    curIndex: 0,
    pageData: 1,
    hasLoadData: true,
    itemCateData: {},
    mainActiveIndex: 0,


    basicInfo: {},
    SeledGoods: [],
    GoodsNum: "",
    showPopup: false,


    heightArr: [],
    distance: 0,
    active: 0,
    selectId: "item0",
    MerchantInfo: {},
    postBusiness: {},
    SendTimeVal: dayjs(new Date().getTime()).format('YYYY-MM-DD'),
    ProductList: [],
    HasSelectedList: [],

    pageTotal: 0,
    pageSize: 10,
    pageIndex: 1,
    TotalDataList: [],
    detailID:"adc8f0fe062e49daa9957deec14d4eb5",
    editChoose:false,


    statusBarHeight: 0,
    navInfo: {},
    heightScroll:0


  },

  setScrollHeight(){
    var that =this;
    let WHeight="";
    let NHeight="";
    wx.getSystemInfo({//微信api,可以获取页面的信息
      success: (result) => {
        WHeight=result.windowHeight
      },
      fail: (res) => {},
      complete: (res) => {},
    })
    wx.createSelectorQuery().select('#nameID').boundingClientRect(function(rect){
      let setHeight = WHeight - rect.height-166;
      console.log(setHeight)

      that.setData({
        heightScroll: setHeight,
      })
      // console.log(WHeight)
      // console.log(rect.height)
    }).exec()

    
  },
  backFun() {
    wx.navigateBack({ delta: 1 });
  },

  callPhone() {
    wx.makePhoneCall({
     phoneNumber: this.data.postBusiness.eiAdminMobile
    })
    },

  // 选择左侧标签锚点定位
  activeNav(e) {
    var index = e.currentTarget.dataset.index
    this.setData({
      active: index,
      selectId: "item" + index
    })
  },

  //计算右侧每个锚点的高度
  selectHeight() {

    var list = []
    var height = 0;
    const query = wx.createSelectorQuery();
    query.selectAll('.subtitle').boundingClientRect()
    query.exec((res) => {
      res[0].forEach((item) => {
        height += item.height;
        list.push(height)
      })
    
      this.data.heightArr = list
    })
  },

  //监听scroll-view的滚动事件
  watchScroll(e) {
   
    let scrollTop = e.detail.scrollTop; //获取距离顶部的距离
    let active = this.data.active;
    if (scrollTop >= this.data.distance) {
      if (active + 1 < this.data.heightArr.length && scrollTop >= this.data.heightArr[active]) {
        this.setData({
          active: active + 1
        })
      }
    } else {
      if (active - 1 >= 0 && scrollTop < this.data.heightArr[active - 1]) {
        this.setData({
          active: active - 1
        })
      }
    }
    this.data.distance = scrollTop;
  },

  getNavigationInfo() {
    var that = this;
    wx.getSystemInfo({
      success(res) {
        const menuButton = wx.getMenuButtonBoundingClientRect();
        that.setData({
          navInfo: {
            top: menuButton.top,
            right: res.windowWidth - menuButton.right,
            width: menuButton.width + 18,
            height: menuButton.height,
            bottom: menuButton.top - res.statusBarHeight
          }
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */

  // aaa
  onLoad: function (options) {

    wx.setNavigationBarColor({
      frontColor: '#ffffff',
      backgroundColor: '#FE6526',
      animation: {
        duration: 400,
        timingFunc: 'easeIn'
      }
    })

    
    var that =this;
    this.getNavigationInfo()
    wx.getSystemInfo({
      success: function (res) {
        that.setData({
          statusBarHeight: res.statusBarHeight,
        })
      },
    })
    if (JSON.stringify(options) == "{}") {
      return

    } else {
      let optionData = JSON.parse(decodeURIComponent(options.detInfo));
      console.log(optionData)
      if(optionData.editChose){
        console.log("编辑")
        this.setData({
          editChoose:true,
          SendTimeVal:optionData.basicInfo.SendTimeVal,
          MerchantInfo: optionData,
          basicInfo: optionData.basicInfo,
          HasSelectedList: optionData.SeledGoods.map((item) => {
            return {
              piImageUrl: item.productImage,
              piId: item.productId,
              piProductName: item.productName,
              ProductDes: item.ProductDes,
              SelNum: item.productNum,
              showAddOrSub: true
            };
          }),
          detailID: optionData.basicInfo.ordSupplierId
        })
        
      }else{
        console.log("新增")
        this.setData({
          MerchantInfo: optionData,
          detailID: optionData.eiId,
        })
      }

      

      console.log(getLocalUserInfo())
      if(getLocalUserInfo()){
        //登录状态下请求数据
        console.log("登录状态下")
      }else{
        //没有登录
        console.log("没有登录")
      }
      this.getGoodsLoginStatusData(this.data.detailID)
      this.getBusinessBasicInfo(this.data.detailID)
    }
    
    wx.setNavigationBarTitle({
      title: '商品下单',
    })

    this.selectHeight();
  },
  getBusinessBasicInfo(eiId) {
    
    basicBusinessInfo(eiId).then((res) => {
      console.log("公司的整个主体信息")

      let resuleData = res.data;
      let buildData = {
        eiId: resuleData.eiId,
        eiName: resuleData.eiName,

        eiContact: resuleData.eiContact,
        eiAdminMobile: resuleData.eiAdminMobile,

        eiProvinceName: resuleData.eiProvinceName,
        eiCityName: resuleData.eiCityName,
        eiAreaName: resuleData.eiAreaName,
        eiAddress: resuleData.eiAddress,
        eiLicenseNo: resuleData.eiLicenseNo,
      }

      this.setData({
        postBusiness: buildData
      })
      console.log("sssssssssssssssssss")
      console.log(buildData)
      
    })
  },
  searchClick() {
    var that = this;
    var selData = []
    this.data.goodsList.map((item) => {
      item.products.map((each) => {
        if (each.SelNum > 0) {
          selData.push(each)
        }

      })

    });

    const newData = JSON.stringify(
      {
        allData: this.data.goodsList,
        hasIncludedData: that.data.HasSelectedList
      }
    );
    wx.navigateTo({ url: `/pages/GoodsSearch/GoodsSearch?detInfo=` + encodeURIComponent(newData) });
  },


  onShareAppMessage: function (res) {
    console.log("上面数据为空吗")
    console.log(this.data.postBusiness.eiName)


    const shareData = {
      eiId:this.data.detailID,
    }
    const BuildData = JSON.stringify(shareData);
    if (res.from === 'button') {
      // 来自页面内转发按钮
      console.log(res);
    }
    return {
      title: this.data.postBusiness.eiName,
      path: '/pages/ChoseGoods/ChoseGoods?detInfo=' + encodeURIComponent(BuildData),
    }
  },

  switchCategory(e) {
    var that = this;
    var index = e.currentTarget.dataset.index;
    var childData = e.currentTarget.dataset.bean.products;


    function FindItem(itemID, moreList) {
      let findData = moreList.find(x => x.piId == itemID.piId);
      return findData
    }
    var changeGoods = childData.map((each) => {
      if (FindItem(each, that.data.HasSelectedList)) {
        return {
          ...each,
          SelNum: FindItem(each, that.data.HasSelectedList).SelNum,
          showAddOrSub: true
        }
      } else {
        return {
          ...each
        }
      }

    })


    this.setData({
      ProductList: [],
      pageSize: 10,
      pageIndex: 1,
    })

    let list = changeGoods
    let qielist = list.slice(that.pageIndex - 1, that.data.pageSize)


    this.setData({
      TotalDataList: list,
      ProductList: qielist,
      curIndex: e.currentTarget.dataset.index ? e.currentTarget.dataset.index : 0,
      toView: 'order' + e.currentTarget.dataset.bean.productTypeId,
      active: index,
      selectId: "item" + index,

    })
  },


  Reachbottom() {
    console.log("是个啥")
    // wx.showLoading({
    //   title: '加载中',
    // })
    let shu = this.data.pageIndex
    this.setData({
      pageIndex: shu + 1
    })
    let num = (this.data.pageIndex - 1) * this.data.pageSize
    let num2 = num + this.data.pageSize
    let arr = this.data.TotalDataList
    let qielist = arr.slice(num, num2)
    let slist = this.data.ProductList
    let newarr = slist.concat(qielist)
    this.setData({
      ProductList: newarr
    })

    setTimeout(function () {
      wx.hideLoading()
    }, 300)
  },




  TotalAllSelecteFun() {
    this.setData({
      GoodsNum: this.data.HasSelectedList.length
    })

  },
  onCancelCategory() {
    this.setData({
      showPopup: false
    })
  },
  onClickIcon() {
    this.setData({
      showPopup: !this.data.showPopup
    })
  },
  ClickShop() {
    wx.navigateTo({ url: `/pages/poster/poster` });
  },
  SubmitFun() {
    if (this.data.HasSelectedList.length == 0) {
      wx.showToast({
        icon: 'none',
        title: "请选择商品",
      })
      return
    }

    const newData = JSON.stringify(
      {
        FromChoseGoods: this.data.HasSelectedList,
        basicInfo: this.data.postBusiness
      }
    );
    wx.navigateTo({ url: `/pages/addOrder/addOrder?detInfo=` + encodeURIComponent(newData) });
  },
  EditSubmit(){
    if (this.data.HasSelectedList.length == 0) {
      wx.showToast({
        icon: 'none',
        title: "请选择商品",
      })
      return
    }
    var pages = getCurrentPages(); // 获取页面栈
    var prevPage = pages[pages.length - 2]; // 上一个页面


    if (prevPage.__route__ == 'pages/addOrder/addOrder') {
      prevPage.changeGoods(this.data.HasSelectedList);
      wx.navigateBack({
        delta: 1
      })
    }

  },
  getGoodsLoginStatusData(infoID) {
    let that = this;
    let postData = {
      enterpriseId: infoID,
    }
    goodsNoTokenGroup(postData).then((res) => {

      function FindItem(itemID, moreList) {
        let findData = moreList.find(x => x.piId == itemID.piId);
        return findData
      }

      function FindPrice(item) {
        if (item.agreementUnitPrice) {
          return centToYuan(item.agreementUnitPrice);
        } else if (item.customerUnitPrice) {
          return centToYuan(item.customerUnitPrice);
        } else {
          return centToYuan(item.latestSaleUnitPrice);
        }

      }

      let newdata = res.data.map((item) => {
        if (item.products) {
          var childFloor = item.products.map((each) => {
            return {
              ...each,
              ProductDes: each.piSpec + '、' + each.piNetContent + each.piNetContentUnit + '/' + each.piSpec,
              standardPrice: FindPrice(each),
              showAddOrSub: FindItem(each, that.data.SeledGoods) == undefined ? false : true,
              SelNum: FindItem(each, that.data.SeledGoods) == undefined ? 0 : FindItem(each, this.data.SeledGoods).SelNum,

            }
          })
        } else {
          var childFloor = []
        }

        return {
          ...item,
          text: item.ptItemName,
          products: childFloor,
        };
      });
      // aaa
      console.log("原始数据")
      console.log(newdata)

      var oneChild = newdata[0].products.map((each) => {
        if (FindItem(each, that.data.HasSelectedList)) {
          return {
            ...each,
            SelNum: FindItem(each, that.data.HasSelectedList).SelNum,
            showAddOrSub: true
          }
        } else {
          return {
            ...each
          }
        }

      })

      this.setData({
        pageTotal: Math.ceil(oneChild.length / 10) //根据后台返回的总数量,判断有多少页
      })
      let list = oneChild
      let qielist = list.slice(that.pageIndex - 1, that.data.pageSize)

      this.setData({
        goodsList: newdata,
        TotalDataList: list,
        ProductList: qielist,
        curIndex: 0

      })
      this.TotalAllSelecteFun()

      this.setScrollHeight()

    })
  },

  DynamicCacheArray(itemData) {
    let that = this;
    var findData = this.data.HasSelectedList.find(x => x.piId == itemData.piId);
    if (findData) {
      this.data.HasSelectedList = this.data.HasSelectedList.map((item) => {
        if (item.piId == itemData.piId) {
          return {
            ...item,
            SelNum: itemData.SelNum
          }
        } else {
          return {
            ...item,
          }
        }

      });
    } else {
      this.data.HasSelectedList.push(itemData)

    }
    if (itemData.SelNum == 0) {
      var indexNum = this.data.HasSelectedList.findIndex((tableData) => tableData.piId == itemData.piId);
      this.data.HasSelectedList.splice(indexNum, 1);
      console.log("删除")
    }

  
    that.setData({
      HasSelectedList: that.data.HasSelectedList,
      ProductList: this.data.ProductList
    });
    // 最后算
    this.TotalAllSelecteFun()
  },

  JudgeDecimal(num){
    var x = String(num).indexOf('.') + 1;   //小数点的位置
    var y = String(num).length - x;  //小数的位数
    console.log(y)
    return y
  },
  addCart(event) {
    let childIndex = event.currentTarget.dataset.itemIndex;
    this.data.ProductList[childIndex].showAddOrSub = true;
    this.data.ProductList[childIndex].SelNum = 1;
    this.setData({
      ProductList: this.data.ProductList
    });
    this.DynamicCacheArray(this.data.ProductList[childIndex])
  },

  BlurItemNum(event){
    var that =this;
    let indexNum = event.currentTarget.dataset.itemIndex;
    that.data.ProductList[indexNum].SelNum = event.detail.value;
    that.ChangeItemNum(indexNum, that.data.ProductList[indexNum])
  },
  MinusItemNum(event){
    var that =this;
    let indexNum = event.currentTarget.dataset.itemIndex;
     that.data.ProductList[indexNum].SelNum--;
    if( that.data.ProductList[indexNum].SelNum<0 ){
      console.log(that.data.ProductList[indexNum].SelNum)
      that.data.ProductList[indexNum].SelNum=0
    }
    that.ChangeItemNum(indexNum, that.data.ProductList[indexNum])
  },
  PlusItemNum(event){
    console.log(event)
    let indexNum = event.currentTarget.dataset.itemIndex;
    var that =this;
     that.data.ProductList[indexNum].SelNum ++;
     that.ChangeItemNum(indexNum, that.data.ProductList[indexNum])
  },

  // aaa
  ChangeItemNum(indexNum,itemData) {
    itemData.SelNum = this.JudgeDecimal(itemData.SelNum)>2?itemData.SelNum.toFixed(2):itemData.SelNum;
    var that = this;
    if (itemData.SelNum == 0) {
      that.data.ProductList[indexNum].showAddOrSub = false;
    }
    that.DynamicCacheArray(that.data.ProductList[indexNum])
    
  },


  BlurSelectedItemNum(event){
    var that =this;
    let indexNum = event.currentTarget.dataset.itemIndex;
    that.data.HasSelectedList[indexNum].SelNum = event.detail.value;
    that.changedSelected(indexNum, that.data.HasSelectedList[indexNum])
  },
  MinusSelectedItemNum(event){
    var that =this;
    let indexNum = event.currentTarget.dataset.itemIndex;
     that.data.HasSelectedList[indexNum].SelNum--;
    if( that.data.HasSelectedList[indexNum].SelNum<0 ){
      console.log(that.data.HasSelectedList[indexNum].SelNum)
      that.data.HasSelectedList[indexNum].SelNum=0
    }
    that.changedSelected(indexNum, that.data.HasSelectedList[indexNum])
  },
  PlusSelectedItemNum(event){
    console.log(event)
    let indexNum = event.currentTarget.dataset.itemIndex
    var that =this;
     that.data.HasSelectedList[indexNum].SelNum ++;
     that.changedSelected(indexNum, that.data.HasSelectedList[indexNum])
  },


  // cccc
  changedSelected(indexNum,itemData) {
    console.log(itemData.SelNum)
    itemData.SelNum = this.JudgeDecimal(itemData.SelNum)>2?itemData.SelNum.toFixed(2):itemData.SelNum;
    console.log(this.JudgeDecimal(itemData.SelNum))
    let that = this;
    this.data.ProductList = this.data.ProductList.map((item, index) => {
      if (item.piId == itemData.piId) {
        if (itemData.SelNum == 0) {
          return {
            ...item,
            showAddOrSub: false,
            SelNum: 0
          }
        } else {
          return {
            ...item,
            SelNum: itemData.SelNum
          }
        }

      } else {
        return {
          ...item,
        }
      }

    });

    if (itemData.SelNum == 0) {
      this.data.HasSelectedList.splice(indexNum, 1);
    }
    // 需要注意
    that.setData({
      HasSelectedList:this.data.HasSelectedList,
      ProductList: this.data.ProductList
    });

    this.TotalAllSelecteFun()
  },


  haveSearchGoods(usefulData) {
    var that = this;
    console.log(usefulData)
    console.log(this.data.HasSelectedList)

    var selData = []
    this.data.HasSelectedList.map((each) => {
      if (each.SelNum > 0) {
        selData.push(each)
      }



    });
    let OldGoods = selData;
    let NewGoods = usefulData;

    NewGoods.forEach((item) => {
      let index = OldGoods.findIndex(e =>
        e.piId == item.piId
      )
      if (index > -1) {
        OldGoods[index] = item
      } else {
        OldGoods.push(item)
      }
    })
    
    this.setData({
      HasSelectedList: OldGoods,
    });
    setTimeout(function () {
      that.getGoodsLoginStatusData(that.data.detailID)
    }, 10);
    return
  },





  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },



  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },


  /**
   * 用户点击右上角分享
   */

})
.product-end{
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.product_price{
  font-size: 28rpx;
  color: #fa550f;
  font-weight: bold;
}
.business-top{
  display: flex;
  box-sizing: border-box;
  padding: 10rpx;
  justify-content: space-between;
  align-items: center;
}

.van-search{
  padding: 4px 12px!important;
}

.business-left{
  margin-left: 20rpx;
}
.business-name{
  font-size: 34rpx;
  color: white;
}
.business-text{
  margin-top: 10rpx;
  font-size: 30rpx;
  color: white;
  align-items: center;
  display: flex;
}
.business-type{
  font-size: 28rpx;
  color: #bbbbbb;
}

/* page,.main-cate {
  position: fixed;
  display: flex;
  width: 100%;
} */

 .name-all{
  position: relative;
  width: 100%;
  box-sizing: border-box;
  border-bottom: 1px solid #f6f6f6;
  background: #fa550f;
  /* padding-top: 200px; */
} 
.main-cate{
  display: flex;
}

.menu-left {
  width: 164rpx;
  height: 100%;
  box-sizing: border-box;
  overflow: hidden;
  /* padding-bottom: 80px; */
  /* background: #f5f5f5; */


  
  height: 100vh;
}

.menu-left .cate-list {
  line-height: 40rpx;
  text-align: center;
  padding: 25rpx 0;
  font-size: .8rem;
}

.menu-left .cate-list .on {
  border-left: 3px solid #fa550f;
  color: #fa550f;
  font-size: 28rpx;
  background: white;
  padding: 25rpx 0rpx!important;
}

.cate-text{
  display: block;
  padding: 10rpx 0;
  font-size: 28rpx;
}

.add-cart{
  margin-top: 13rpx;
  display: flex;
  justify-content: flex-end;
}
.count-part{
  margin-top: 13rpx;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}
.stepinput{
  background: white!important;
  margin: 0rpx 10rpx!important;
}
.stepplus{
  background: #fa550f!important;
  color: white!important;
  font-weight: bolder!important;
  border-radius: 30rpx!important;
}

.product-left input{
  
    background-color:rgba(236,109,81,0.3)!important;
  color: #fa550f!important;
}


.none-text{
  width: 100%;
  text-align: center;
  font-size: 32rpx;
  padding-top: 100px;
  color: #bbbbbb;
}
.select{
  color: red!important;
}
.menu-right {
  /* height: 100vh; */
  /* flex-grow: 1; */
  background: white;
  width: calc(100% - 165rpx);
  /* position: fixed; */
  /* padding-bottom: 200px; */
  /* right: 0px; */
  /* top: 198px; */
  /* height: 100vh; */
}
.cate-product{
  box-sizing: border-box;
  padding-bottom: 82px;
  padding-left: 20rpx;
  padding-right: 20rpx;
  width: 100%;
}
.right-list{
  box-sizing: border-box;
  padding: 30rpx 0rpx;
  border-bottom: 1px solid #ebedf0;
}
.product-left{
  box-sizing: border-box;
  padding-left: 10rpx;
  width: 100%;
}
.product-list{
  box-sizing: border-box;
  padding: 0rpx 18rpx;
  display: flex;
}
.subtitle{
  box-sizing: border-box;
  padding: 0rpx 18rpx;
  margin-bottom: 20rpx;
}
.product-name{
  font-size: 30rpx;
}
.product-desc{
  font-size: 24rpx;
  color: #bbbbbb;
  overflow: hidden;
  -webkit-line-clamp: 2;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
}
.product-price{
  display: flex;
  color: #fa4126;
  align-items: flex-end;
}
.real-icon{
  font-size: 24rpx;
}
.real-num{
  font-size: 32rpx;
  font-weight: bolder;
}
.product-list image {
  flex-shrink: 0;
  width: 140rpx;
  height: 140rpx;
  border-radius: 16rpx;
  margin-bottom: 10rpx;
}


.none-text image{
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 88px;
  height: 97px;
}
.none-text{
  padding-top: 260rpx;
}
.none-text view{
  margin-top: 30rpx;
  font-size: 30rpx;
  color: #a5a5a5;
  text-align: center;
}



.sub-button{
  position: fixed;
  width: 100%;
  bottom: 8rpx;
  background: salmon;
  z-index: 999;
  height: 200rpx;
  padding: 10rpx 0rpx;
}
.sub-flex{
  position: relative;
  margin: auto;
  height: 50px;
  width: 100%;
  background: white;
}
.end-sub{
  width: 80%;
  position: relative;
  margin: auto;
  background: red;
  display: flex;
  justify-content: space-around;

  height: 50px;
  line-height: 50px;
  border-radius: 45px;
}

/* 弹出的部分 */
.eject-product{
  margin-top: 20rpx;
  width: 100%;
  padding-bottom: 100rpx;
}
.ejectselected-list{
  display: flex;
  box-sizing: border-box;
  padding: 20rpx;
  border-bottom:1px solid #f1f4f8;
}
.ejectselected-list image{
  display: block;
  width: 60px;
  height: 60px;
  border-radius: 4px;
  flex-shrink: 0;
}

.ejectselected-left{
  box-sizing: border-box;

  padding-left: 20rpx;
  width: 100%;
}
.ejectselected-name{
  font-size: 30rpx;
}
.ejectselected-part{
  margin-top: 13rpx;
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  
}


.button-part{
  position: relative;
  margin: auto;
  width: 80%;
  height: 52px;
  border-radius: 48rpx;
  display: flex;
  justify-content: space-between;
}

.button-left{
  width: 50%;
  height: 52px;
  background: #ff8200;
  border-top-left-radius: 48rpx;
  border-bottom-left-radius: 48rpx;
  display: flex;
}
.icon-buy{
  text-align: center;
  color: white;
  margin-left: 45rpx;
}
.button-right{
  font-size: 28rpx;
  width: 50%;
  height: 52px;
  line-height: 52px;
  background: #fa550f;
  color: white;
  border-top-right-radius: 48rpx;
  border-bottom-right-radius: 48rpx;
  text-align: center;
}


.business-top button{
  background: none!important;
  outline: none!important;
  border: none !important;
  
}

.business-top button::after{
  background: none!important;
  outline: none!important;
  border: none !important;


}

.action-box{
  bottom: 30px!important;
  padding-bottom: 6px!important;
}
.pop-button{
  z-index: 999;
  width: 100%;
  position: fixed;
  bottom: 0rpx;
  background: white;
  height: 30px;
}
.support-text{
  text-align: center;
  font-size: 28rpx;
  padding: 8rpx 0rpx ;
  color: #bbbbbb;
}


/* 头部 */
.custom{
  /* position: fixed; */
  width: 100%;
  /* top: 0;
  left: 0; */
  height: 45px;
  /* background: #c00; */
  z-index: 9999;
  background: #fa550f;
  display: flex;
  align-items: center;
  justify-content: space-between;
  
}
.title-left{
  margin-left: 18rpx;
  display: flex;
  align-items: center;
}
.avatar-title{
  color: white;
  margin-left: 20rpx;
}




上一篇下一篇

猜你喜欢

热点阅读