作者 lihongjuan

1

正在显示 100 个修改的文件 包含 1747 行增加0 行删除

要显示太多修改。

为保证性能只显示 100 of 100+ 个文件。

  1 +
  2 +Component({
  3 + /**
  4 + * 组件的属性列表
  5 + */
  6 + properties: {
  7 + list: Array
  8 + },
  9 +
  10 + /**
  11 + * 组件的初始数据
  12 + */
  13 + data: {
  14 +
  15 + },
  16 +
  17 + /**
  18 + * 组件的方法列表
  19 + */
  20 + methods: {
  21 + look_more(e) {
  22 + let id = e.currentTarget.dataset.id
  23 + wx.navigateTo({
  24 + url: '/pages/shop_detail/shop_detail?id=' + id
  25 + })
  26 + },
  27 + },
  28 + lifetimes: {
  29 + created() {
  30 + // 在组件实例刚刚被创建时执行
  31 +
  32 +
  33 + },
  34 + attached() {
  35 + // 在组件实例进入页面节点树时执行
  36 + },
  37 + ready() {
  38 + // 在组件在视图层布局完成后执行
  39 + this.setData({
  40 + list: this.properties.list
  41 + })
  42 +
  43 + },
  44 + detached() {
  45 + // 在组件实例被从页面节点树移除时执行
  46 + },
  47 + }
  48 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<view class='real_goods'>
  2 + <view class="real_goods_item" wx:for="{{list}}" wx:key="index" data-id="{{item.id}}" bindtap="{{item.sold==0?'':'look_more'}}">
  3 + <view class='real_goods_img'>
  4 + <image src='{{item.images[0]}}' mode="aspectFill" />
  5 + <image src='/images/mei.png' class="tip" wx:if="{{item.sold == 0}}" />
  6 + </view>
  7 + <view class='real_goods_bottom'>
  8 + <view class='goods_title'>{{item.name}}</view>
  9 + <view class='goods_flex'>
  10 + <view class='score'>积分</view>
  11 + <view class='price'>{{item.price}}</view>
  12 + <view class='sell'>已卖出{{item.paynum}}件</view>
  13 + </view>
  14 + </view>
  15 +
  16 + <view class="pink_cover" wx:if="{{item.sold == 0}}"/>
  17 +
  18 + </view>
  19 +</view>
  1 +.real_goods {
  2 + width: 708rpx;
  3 + margin: 0 auto;
  4 + background: #f9f9f9;
  5 + display: flex;
  6 + flex-wrap: wrap;
  7 + padding: 8rpx 11rpx 20rpx;
  8 + box-sizing: border-box;
  9 +}
  10 +
  11 +.real_goods_item {
  12 + width: 50%;
  13 + margin-top: 20rpx;
  14 + border-radius: 10rpx;
  15 + background: #fff;
  16 + overflow: hidden;
  17 + position: relative;
  18 +}
  19 +
  20 +.real_goods_img {
  21 + width: 332rpx;
  22 + height: 332rpx;
  23 + margin-bottom: 16rpx;
  24 + border-top-left-radius: 10rpx;
  25 + border-top-right-radius: 10rpx;
  26 + overflow: hidden;
  27 + position: relative;
  28 +}
  29 +
  30 +.real_goods_img image {
  31 + width: 100%;
  32 + height: 100%;
  33 +}
  34 +
  35 +.tip {
  36 + width: 87rpx !important;
  37 + height: 80rpx !important;
  38 + position: absolute;
  39 + right: 0;
  40 + top: 0;
  41 + z-index: 2;
  42 +}
  43 +
  44 +.real_goods_bottom {
  45 + padding: 16rpx 16rpx 28rpx 16rpx;
  46 + box-sizing: border-box;
  47 + background: #fff;
  48 +}
  49 +
  50 +.goods_title {
  51 + height: 72rpx;
  52 + font-size: 26rpx;
  53 + font-family: PingFang SC;
  54 + font-weight: 500;
  55 + line-height: 36rpx;
  56 + color: rgba(5, 9, 26, 1);
  57 + overflow: hidden;
  58 + text-overflow: ellipsis;
  59 + display: -webkit-box;
  60 + -webkit-box-orient: vertical;
  61 + -webkit-line-clamp: 2;
  62 + margin-bottom: 20rpx;
  63 +}
  64 +
  65 +.goods_flex {
  66 + height: 50rpx;
  67 + display: flex;
  68 + align-items: center;
  69 +}
  70 +
  71 +.score {
  72 + width: 64rpx;
  73 + height: 32rpx;
  74 + background: rgba(242, 0, 0, 1);
  75 + border-radius: 2rpx;
  76 + text-align: center;
  77 + color: #fff;
  78 + font-size: 22rpx;
  79 + font-family: PingFang SC;
  80 + font-weight: 400;
  81 + margin-right: 12rpx;
  82 +}
  83 +
  84 +.price {
  85 + font-size: 36rpx;
  86 + font-family: PingFang SC;
  87 + font-weight: bold;
  88 + color: rgba(242, 0, 0, 1);
  89 + margin-right: 20rpx;
  90 +}
  91 +
  92 +.sell {
  93 + font-size: 20rpx;
  94 + font-family: PingFang SC;
  95 + font-weight: 400;
  96 + color: rgba(156, 156, 156, 1);
  97 +}
  98 +
  99 +.pink_cover{
  100 + width: 100%;
  101 + height: 100%;
  102 + background: #ccc;
  103 + opacity: 0.3;
  104 + position: absolute;
  105 + left: 0;
  106 + top: 0;
  107 +}
  1 +
  2 +Component({
  3 + /**
  4 + * 组件的属性列表
  5 + */
  6 + properties: {
  7 +
  8 + },
  9 +
  10 + /**
  11 + * 组件的初始数据
  12 + */
  13 + data: {
  14 +
  15 + },
  16 +
  17 + /**
  18 + * 组件的方法列表
  19 + */
  20 + methods: {
  21 + tel(){
  22 + wx.makePhoneCall({
  23 + phoneNumber: wx.getStorageSync('tel')
  24 + })
  25 + }
  26 + }
  27 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<view class="concat_box">
  2 + <button open-type="contact" class="item" plain="true">
  3 + <image src="/images/icon_65.png" />
  4 + </button>
  5 + <view class="item" catchtap="tel">
  6 + <image src="/images/bodadianhua_icon.png" />
  7 + </view>
  8 +</view>
  1 +.concat_box {
  2 + width: 96rpx;
  3 + height: 210rpx;
  4 + position: fixed;
  5 + right: 32rpx;
  6 + bottom: 200rpx;
  7 +}
  8 +
  9 +.item {
  10 + width: 96rpx;
  11 + height: 96rpx;
  12 + padding: 0;
  13 + border: none !important;
  14 + margin: 0 !important;
  15 +}
  16 +
  17 +.item:first-child {
  18 + margin-bottom: 16rpx !important;
  19 +}
  20 +
  21 +.item image {
  22 + width: 100%;
  23 + height: 100%;
  24 +}
  1 +Component({
  2 + /**
  3 + * 组件的属性列表
  4 + */
  5 + properties: {
  6 + check_num: Number, //已选择商品数量
  7 + list: Array,
  8 + type: Number,
  9 + checkAll: Boolean
  10 + },
  11 +
  12 + /**
  13 + * 组件的初始数据
  14 + */
  15 + data: {
  16 +
  17 + },
  18 +
  19 + /**
  20 + * 组件的方法列表
  21 + */
  22 + methods: {
  23 + //查看商品详情
  24 + look_detail(e) {
  25 + let id = e.currentTarget.dataset.id
  26 + wx.navigateTo({
  27 + url: '/pages/shop_detail/shop_detail?id=' + id
  28 + })
  29 + },
  30 + //加减商品数量
  31 + num_change(e) {
  32 + let num = Number(e.currentTarget.dataset.num)
  33 + let type = e.currentTarget.dataset.type
  34 + let index = e.currentTarget.dataset.index
  35 + let id = e.currentTarget.dataset.id
  36 + let product_id = e.currentTarget.dataset.product_id
  37 + if (type == 1) {
  38 + num++
  39 + } else {
  40 + num--
  41 + if (num < 1) {
  42 + //触发删除商品的接口
  43 +
  44 + this.triggerEvent('delete_shop', {
  45 + index: index,
  46 + id: id
  47 + })
  48 + return
  49 + }
  50 + }
  51 + this.triggerEvent('change_num', {
  52 + num: num,
  53 + index: index,
  54 + type: type,
  55 + product_id: product_id
  56 + })
  57 + },
  58 + //改变商品选中状态
  59 + check_item(e){
  60 + let index = e.currentTarget.dataset.index
  61 + let check_type = e.currentTarget.dataset.check_type ? e.currentTarget.dataset.check_type:false
  62 + let check_num = Number(this.data.check_num)
  63 + if (!check_type){
  64 + check_num ++
  65 + } else {
  66 + check_num --
  67 + }
  68 + this.triggerEvent('check_type', {
  69 + index: index,
  70 + check_type: !check_type,
  71 + check_num: check_num
  72 + })
  73 + }
  74 + },
  75 + lifetimes: {
  76 + created() {
  77 + // 在组件实例刚刚被创建时执行
  78 +
  79 +
  80 + },
  81 + attached() {
  82 + // 在组件实例进入页面节点树时执行
  83 + },
  84 + ready() {
  85 + // 在组件在视图层布局完成后执行
  86 + this.setData({
  87 + list: this.properties.list,
  88 + type: this.properties.type,
  89 + checkAll: this.properties.checkAll,
  90 + check_num: this.properties.check_num ? this.properties.check_num:0
  91 + })
  92 +
  93 + },
  94 + detached() {
  95 + // 在组件实例被从页面节点树移除时执行
  96 + },
  97 + }
  98 +})
  1 +{
  2 + "component": true,
  3 + "usingComponents": {}
  4 +}
  1 +<view class="item" wx:for="{{list}}" wx:key="index">
  2 + <view class="top">
  3 + <image class="check_box" src="{{item.check_type?'/images/check@.png':'/images/check.png'}}" wx:if="{{type == 1 || type == 2}}" catchtap="check_item" data-check_type="{{item.check_type}}" data-index="{{index}}" />
  4 + <view class="content {{type==3?'active':''}}">
  5 + <image class="show_img" src="{{type == 3?item.images[0]:type==4?item.product.images[0]:type==2?item.image:item.product.allimages[0]}}" mode="aspectFill" bindtap="{{type == 1 || type == 2?'look_detail':''}}" data-id="{{item.product_id}}"/>
  6 + <view class="right {{type==3?'ractive':''}}">
  7 + <view class="word">{{type == 3?item.name:type==2?item.product_name:item.product.name}}</view>
  8 + <view class="info">
  9 + <view class="jifen">
  10 + <view class="name">积分</view>
  11 + <text>{{type == 3 || type == 2?item.price:item.product.price}}</text>
  12 + <text style="margin-left: 10rpx;color:#ccc;font-size: 28rpx;" wx:if="{{type == 3 || type == 4}}">X{{item.num}}</text>
  13 + </view>
  14 + <view class="num_box" wx:if="{{type == 1}}">
  15 + <image class="num_btn" src="/images/reduce.png" data-index="{{index}}" data-type="0" data-num="{{item.num}}" data-id="{{item.id}}" data-product_id="{{item.product_id}}" catchtap="num_change" />
  16 + <text>{{item.num}}</text>
  17 + <image class="num_btn" src="/images/add.png" data-index="{{index}}" data-type="1" data-num="{{item.num}}" data-id="{{item.id}}" data-product_id="{{item.product_id}}" catchtap="num_change"/>
  18 + </view>
  19 + </view>
  20 + </view>
  21 + </view>
  22 + </view>
  23 + <view class="info_box" wx:if="{{type == 3}}">
  24 + <view class="f_item">
  25 + <view class="shop">
  26 + 商品积分
  27 + <text>{{item.price*100*item.num/100}}积分</text>
  28 + </view>
  29 + </view>
  30 + </view>
  31 +</view>
  1 +.item {
  2 + width: 100%;
  3 + background: #fff;
  4 + padding: 0 24rpx;
  5 + box-sizing: border-box;
  6 + margin-top: 20rpx;
  7 +}
  8 +
  9 +.item:first-child {
  10 + margin-top: 0;
  11 +}
  12 +
  13 +.item .top {
  14 + padding: 36rpx 0;
  15 + box-sizing: border-box;
  16 + display: flex;
  17 + align-items: center;
  18 +}
  19 +
  20 +.check_box {
  21 + width: 36rpx;
  22 + height: 36rpx;
  23 + padding: 30rpx 30rpx 30rpx 0;
  24 +}
  25 +
  26 +.content {
  27 + width: 564rpx;
  28 + display: flex;
  29 + justify-content: space-between;
  30 + align-items: center;
  31 +}
  32 +
  33 +.show_img {
  34 + width: 164rpx;
  35 + height: 164rpx;
  36 + margin-right: 24rpx;
  37 +}
  38 +
  39 +.right {
  40 + width: 376rpx;
  41 +}
  42 +
  43 +.word {
  44 + width: 100%;
  45 + height: 76rpx;
  46 + font-size: 28rpx;
  47 + font-family: PingFang SC;
  48 + font-weight: 400;
  49 + overflow: hidden;
  50 + text-overflow: ellipsis;
  51 + display: -webkit-box;
  52 + word-break: break-all;
  53 + -webkit-box-orient: vertical;
  54 + -webkit-line-clamp: 2;
  55 +}
  56 +
  57 +.info {
  58 + display: flex;
  59 + align-items: center;
  60 + justify-content: space-between;
  61 + margin-top: 32rpx;
  62 +}
  63 +
  64 +.jifen {
  65 + display: flex;
  66 + align-items: center;
  67 +}
  68 +
  69 +.jifen .name {
  70 + width: 64rpx;
  71 + height: 36rpx;
  72 + background: rgba(242, 0, 0, 1);
  73 + border-radius: 4rpx;
  74 + font-size: 22rpx;
  75 + font-family: PingFang SC;
  76 + font-weight: 400;
  77 + color: #fff;
  78 + display: flex;
  79 + justify-content: center;
  80 + align-items: center;
  81 + margin-right: 20rpx;
  82 +}
  83 +
  84 +.jifen text {
  85 + font-size: 26rpx;
  86 + font-family: PingFang SC;
  87 + font-weight: bold;
  88 + color: rgba(242, 0, 0, 1);
  89 +}
  90 +
  91 +.num_box {
  92 + display: flex;
  93 + align-items: center;
  94 + justify-content: space-between;
  95 +}
  96 +
  97 +.num_box .num_btn {
  98 + width: 36rpx;
  99 + height: 36rpx;
  100 +}
  101 +
  102 +.num_box text {
  103 + font-size: 30rpx;
  104 + font-family: PingFang SC;
  105 + font-weight: 400;
  106 + color: rgba(19, 26, 46, 1);
  107 + margin: 0 24rpx;
  108 +}
  109 +
  110 +.active {
  111 + width: 100%;
  112 +}
  113 +
  114 +.ractive {
  115 + width: 448rpx;
  116 +}
  117 +
  118 +.info_box {
  119 + width: 100%;
  120 + margin-top: 26rpx;
  121 +}
  122 +
  123 +.f_item {
  124 + width: 100%;
  125 + padding: 28rpx 0;
  126 + box-sizing: border-box;
  127 + border-bottom: 1px solid #eee;
  128 +}
  129 +
  130 +.f_item .shop {
  131 + width: 100%;
  132 + font-size: 28rpx;
  133 + font-family: PingFang SC;
  134 + font-weight: 400;
  135 + color: rgba(19, 26, 46, 1);
  136 + display: flex;
  137 + justify-content: space-between;
  138 + align-items: center;
  139 +}
  140 +
  141 +.f_item .shop text:last-child {
  142 + color: #8e8e8e;
  143 +}
  144 +
  145 +.youfei {
  146 + font-size: 24rpx;
  147 + font-family: PingFang SC;
  148 + font-weight: 400;
  149 + line-height: 34rpx;
  150 + color: rgba(142, 142, 142, 1);
  151 + margin-top: 10rxp;
  152 +}
  153 +
  154 +.jifen_num {
  155 + width: 100%;
  156 + padding: 28rpx 0;
  157 + box-sizing: border-box;
  158 + display: flex;
  159 + flex-direction: row-reverse;
  160 + align-items: center;
  161 + font-size: 28rpx;
  162 + font-family: PingFang SC;
  163 + font-weight: Regular;
  164 + color: #131a2e;
  165 +}
  166 +
  167 +.jifen_num text:last-child {
  168 + font-size: 32rpx;
  169 + color: rgba(242, 0, 0, 1);
  170 + font-family: PingFang SC Bold;
  171 + font-weight: Bold;
  172 +}
  173 +
  174 +.jifen_num text:first-child {
  175 + color: rgba(242, 0, 0, 1);
  176 + margin-left: 10rpx;
  177 +}
  1 +App({
  2 + onLaunch: function () {
  3 +
  4 + //自动更新版本
  5 + const updateManager = wx.getUpdateManager()
  6 + updateManager.onCheckForUpdate(function (res) {
  7 + // 请求完新版本信息的回调
  8 +
  9 + })
  10 + updateManager.onUpdateReady(function () {
  11 + wx.showModal({
  12 + title: '更新提示',
  13 + content: '新版本已经准备好,是否重启应用?',
  14 + success: function (res) {
  15 + if (res.confirm) {
  16 + // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
  17 + updateManager.applyUpdate()
  18 + }
  19 + }
  20 + })
  21 + })
  22 + updateManager.onUpdateFailed(function () {
  23 + // 新的版本下载失败
  24 + wx.showModal({
  25 + title: '更新提示',
  26 + content: '新版本下载失败',
  27 + showCancel: false
  28 + })
  29 + })
  30 + },
  31 + post: function (url, data, showLoad) {
  32 +
  33 + wx.showNavigationBarLoading()
  34 + var promise = new Promise((resolve, reject) => {
  35 + //init
  36 + let that = this;
  37 + let postData = data
  38 + // let baseUrl = 'https://binhai.w.broing.cn/api';
  39 + let baseUrl ='http://binhaitest.w.brotop.cn/api'
  40 + //网络请求
  41 + wx.request({
  42 + url: baseUrl + url,
  43 + data: postData,
  44 + method: 'POST',
  45 + header: {
  46 + 'content-type': 'application/x-www-form-urlencoded',
  47 + 'token': wx.getStorageSync('token') || ''
  48 + },
  49 + success: function (res) { //返回取得的数据
  50 + if (res.data.code == '200') {
  51 + resolve(res.data)
  52 + } else if (res.data.code == '5000') {
  53 + wx.hideLoading();
  54 + wx.removeStorageSync('token');
  55 + wx.removeStorageSync('login');
  56 + wx.navigateTo({
  57 + url: '/pages/register/register?type=1',
  58 + })
  59 + } else {
  60 + wx.showModal({
  61 + title: '提示',
  62 + content: res.data.msg,
  63 + showCancel: false
  64 + })
  65 + reject(res.data)
  66 + }
  67 + setTimeout(function () {
  68 + wx.hideNavigationBarLoading()
  69 + }, 600)
  70 + },
  71 + fail: function (e) {
  72 + reject('网络出错');
  73 + wx.hideNavigationBarLoading()
  74 + }
  75 + })
  76 + });
  77 + return promise;
  78 + },
  79 +
  80 + //接口管理
  81 + interface: {
  82 +
  83 +
  84 + openid: '/getopenid/get', // 获取openid
  85 + getcode: '/getopenid/getcode', // 获取验证码
  86 + readteacher: '/getopenid/readteacher', // 获取个人信息
  87 + login: '/getopenid/smslogin', // 登录
  88 + jifenlist: '/order/jifenlist', // 积分列表
  89 + address: '/address/index', // 地址列表
  90 + addaddress: '/address/add', // 添加地址
  91 + editaddress: '/address/edit', // 修改地址
  92 + deladdress: '/address/delete', // 删除地址
  93 + mraddress: '/address/mo', // 修改默认地址
  94 + adshow: '/address/editshow', //地址详情(数据回显)
  95 + about: '/wb/wb', // 关于我们
  96 + order: '/order/orderlist', // 获取订单列表
  97 + payorder: '/order/payorder', // 订单页点击支付
  98 + disorder: '/order/disorder', // 订单列表取消订单
  99 + orderrefund: '/order/orderrefund', // 退换货详情
  100 + // upload: 'https://binhai.w.broing.cn/api/common/upload', // 上传图片
  101 + upload: 'http://binhaitest.w.brotop.cn/api',
  102 + refund: '/order/refund', // 退货提交
  103 +
  104 + delorder: '/order/delorder', // 删除订单
  105 + okorder: '/order/okorder', // 确认订单
  106 + orderInfo: '/order/orderInfo', // 订单详情
  107 + kuaidi: '/kuaidi/kuaidi', //物流信息
  108 + collectdel: '/product/collectdel', //收藏删除
  109 + collectList: '/getopenid/collectlist', //收藏列表
  110 + deleteseach: '/product/deleteseach', //删除搜索历史
  111 + order_pay: '/order/pay', //订单支付
  112 + now_add: '/order/now_add', //点击结算
  113 + hotsreach: '/product/hotsreach', // 热门搜索
  114 + searchhis: '/product/searchhis', // 商品搜索历史
  115 + search: '/product/search', // 商品搜索结果列表
  116 + getPid: '/cap/getpid', // 分类页面
  117 + prev_pay: '/shop/prev_pay', // 购物车点击结算
  118 + gwcshop: '/shop/gwcshop', //购物车数量修改保存
  119 + deletes: '/shop/deletes', //购物车删除
  120 + shopcar: '/shop/shopcar', // 购物车页面
  121 + now_prev_pay: '/shop/now_prev_pay', // 直接购买
  122 + addshop: '/shop/addshop', // 添加购物车
  123 + collect: '/product/collect', // 收藏
  124 + getInfo: '/product/getInfo', //商品详情
  125 + good_list: '/product/get', // 商品
  126 + index: '/cap/get', // 首页大小分类
  127 + banner: '/banner/index', // 轮播图
  128 + notice: '/cap/notice', // 公告
  129 + youfei: '/shop/youfei1', // 单算邮费
  130 + youfei1: '/shop/youfei', // 購物車邮费
  131 +
  132 + shopcarNum: '/shop/shopcarnum', // 购物车数量
  133 + orderlist: '/shop/orderlist', // 订单各状态数量
  134 +
  135 + order_read: '/shop/read', // 订单数
  136 + },
  137 + globalData: {
  138 +
  139 + }
  140 +})
  1 +{
  2 + "pages": [
  3 + "pages/register/register",
  4 + "pages/messagedetail/messagedetail",
  5 + "pages/message/message",
  6 + "pages/login/login",
  7 + "pages/index/index",
  8 + "pages/shop_cart/shop_cart",
  9 + "pages/classify/classify",
  10 + "pages/my/my",
  11 + "pages/shop_detail/shop_detail",
  12 + "pages/order/order",
  13 + "pages/Collection/collection",
  14 + "pages/order/return_goods/return_goods",
  15 + "pages/my/about_us/about_us",
  16 + "pages/my/my_integral/my_integral",
  17 + "pages/address/address",
  18 + "pages/address/edit_address/edit_address",
  19 + "pages/address/add_address/add_address",
  20 + "pages/search/search",
  21 + "pages/search/search_result/search_result",
  22 + "pages/order/order_list/order_list",
  23 + "pages/order/order_detail/order_detail",
  24 + "pages/logistics/logistics",
  25 + "pages/notice/notice",
  26 + "pages/outerChain/outerChain",
  27 + "pages/zhuanqu/zhuanqu",
  28 + "pages/taocandetail/taocandetail",
  29 + "pages/taocanpay/taocanpay",
  30 + "pages/orderdetail/orderdetail",
  31 + "pages/xianshi/xianshi"
  32 + ],
  33 + "window": {
  34 + "backgroundTextStyle": "light",
  35 + "navigationBarBackgroundColor": "#3D9AF8",
  36 + "navigationBarTitleText": "海创诚品",
  37 + "navigationBarTextStyle": "white"
  38 + },
  39 + "tabBar": {
  40 + "list": [
  41 + {
  42 + "pagePath": "pages/index/index",
  43 + "text": "商品",
  44 + "iconPath": "images/tabbar/icon_75.png",
  45 + "selectedIconPath": "images/tabbar/icon_68.png"
  46 + },
  47 + {
  48 + "pagePath": "pages/message/message",
  49 + "text": "消息",
  50 + "iconPath": "images/tabbar/icon_69.png",
  51 + "selectedIconPath": "images/tabbar/icon_74.png"
  52 + },
  53 + {
  54 + "pagePath": "pages/shop_cart/shop_cart",
  55 + "text": "购物车",
  56 + "iconPath": "images/tabbar/icon_70.png",
  57 + "selectedIconPath": "images/tabbar/icon_73.png"
  58 + },
  59 + {
  60 + "pagePath": "pages/my/my",
  61 + "text": "我的",
  62 + "iconPath": "images/tabbar/icon_71.png",
  63 + "selectedIconPath": "images/tabbar/icon_72.png"
  64 + }
  65 + ],
  66 + "selectedColor": "#05091A"
  67 + },
  68 + "sitemapLocation": "sitemap.json"
  69 +}
  1 +
  2 +.container {
  3 + height: 100%;
  4 + display: flex;
  5 + flex-direction: column;
  6 + align-items: center;
  7 + justify-content: space-between;
  8 + padding: 200rpx 0;
  9 + box-sizing: border-box;
  10 +}
  11 +.flex{
  12 + display:flex;
  13 +}
  14 +.flexone {
  15 + display: flex;
  16 + align-items: center;
  17 + }
  18 +
  19 + .flextwo {
  20 + display: flex;
  21 + align-items: center;
  22 + justify-content: space-between;
  23 + }
  24 +
  25 + .flexthree {
  26 + display: flex;
  27 + align-items: center;
  28 + justify-content: center;
  29 + }
  30 + .flex {
  31 + display: flex;
  32 +}
  33 +
  34 +.flexone {
  35 + display: flex;
  36 + align-items: center;
  37 +}
  38 +
  39 +.flextwo {
  40 + display: flex;
  41 + align-items: center;
  42 + justify-content: space-between;
  43 +}
  44 +
  45 +.flexthree {
  46 + display: flex;
  47 + align-items: center;
  48 + justify-content: center;
  49 +}

595 字节

533 字节

578 字节

976 字节

662 字节

740 字节

1007 字节

688 字节

  1 +const app = getApp()
  2 +Page({
  3 +
  4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + check_num: 0, //选中数量
  9 + checkAll: false, //全选状态
  10 + check_str: ''
  11 + },
  12 + //改变商品状态
  13 + check_type(e) {
  14 + let index = Number(e.detail.index)
  15 + this.setData({
  16 + [`list[${index}].check_type`]: e.detail.check_type,
  17 + check_num: e.detail.check_num
  18 + })
  19 + if (e.detail.check_num == this.data.list.length) {
  20 + this.setData({
  21 + checkAll: true
  22 + })
  23 + } else if (e.detail.check_num == 0) {
  24 + this.setData({
  25 + checkAll: false
  26 + })
  27 + }
  28 + this.get_all()
  29 + },
  30 + //全选|全不选
  31 + check_all() {
  32 + let list = this.data.list
  33 + for (let obj of list) {
  34 + obj.check_type = !this.data.checkAll
  35 + }
  36 + this.setData({
  37 + checkAll: !this.data.checkAll,
  38 + list: list,
  39 + check_num: !this.data.checkAll ? list.length : 0
  40 + })
  41 + this.get_all()
  42 + },
  43 + //获取选中商品
  44 + get_all() {
  45 + let that = this
  46 + let list = that.data.list
  47 + let check_str = ''
  48 + for (let obj of list) {
  49 + if (obj.check_type) {
  50 + if (check_str == ""){
  51 + check_str = obj.id
  52 + } else {
  53 + check_str = check_str + ',' + obj.id
  54 + }
  55 + }
  56 + }
  57 + that.setData({
  58 + check_str: check_str
  59 + })
  60 + },
  61 + delete_item(){
  62 + if (this.data.check_str == ""){
  63 + wx.showToast({
  64 + title: '请先选中商品',
  65 + icon: 'none',
  66 + duration: 1000
  67 + })
  68 + return
  69 + }
  70 + let url = app.interface.collectdel
  71 + let params = {
  72 + ids: this.data.check_str
  73 + }
  74 + app.post(url,params).then((res)=>{
  75 + wx.showToast({
  76 + title: '删除成功',
  77 + duration: 1000
  78 + })
  79 + this.get_info()
  80 + })
  81 + },
  82 +//获取页面信息
  83 + get_info() {
  84 + wx.showLoading({
  85 + title: '加载中'
  86 + })
  87 + let that = this
  88 + let url = app.interface.collectList
  89 + app.post(url, {}).then((res) => {
  90 + wx.hideLoading()
  91 + that.setData({
  92 + list: res.msg
  93 + })
  94 + })
  95 + },
  96 +
  97 +
  98 + /**
  99 + * 生命周期函数--监听页面加载
  100 + */
  101 + onLoad: function(options) {
  102 + this.get_info()
  103 + },
  104 +
  105 + /**
  106 + * 生命周期函数--监听页面初次渲染完成
  107 + */
  108 + onReady: function() {
  109 +
  110 + },
  111 +
  112 + /**
  113 + * 生命周期函数--监听页面显示
  114 + */
  115 + onShow: function() {
  116 +
  117 + },
  118 +
  119 + /**
  120 + * 生命周期函数--监听页面隐藏
  121 + */
  122 + onHide: function() {
  123 +
  124 + },
  125 +
  126 + /**
  127 + * 生命周期函数--监听页面卸载
  128 + */
  129 + onUnload: function() {
  130 +
  131 + },
  132 +
  133 + /**
  134 + * 页面相关事件处理函数--监听用户下拉动作
  135 + */
  136 + onPullDownRefresh: function() {
  137 +
  138 + },
  139 +
  140 + /**
  141 + * 页面上拉触底事件的处理函数
  142 + */
  143 + onReachBottom: function() {
  144 +
  145 + },
  146 +
  147 + /**
  148 + * 用户点击右上角分享
  149 + */
  150 + onShareAppMessage: function() {
  151 +
  152 + }
  153 +})
  1 +{
  2 + "navigationBarTitleText": "我的收藏",
  3 + "usingComponents": {
  4 + "shop_item": "/Components/shop_item/shop_item"
  5 + }
  6 +}
  1 +<view class="content">
  2 + <shop_item list="{{list}}" type="2" bindcheck_type="check_type" check_num="{{check_num}}" />
  3 + <view class="empty" wx:if="{{list.length == 0}}">暂无更多数据</view>
  4 +</view>
  5 +
  6 +<view class="footer" wx:if="{{list.length>0}}">
  7 + <view class="check_box" bindtap="check_all">
  8 + <image class="check" src="{{checkAll?'/images/check@.png':'/images/check.png'}}" />
  9 + <text>全选</text>
  10 + </view>
  11 + <view class="del" catchtap="delete_item">删除</view>
  12 +</view>
  1 +page {
  2 + background: #f9f9f9;
  3 +}
  4 +
  5 +.content {
  6 + width: 100%;
  7 + padding: 30rpx 32rpx 120rpx;
  8 + box-sizing: border-box;
  9 +}
  10 +
  11 +.footer {
  12 + width: 100%;
  13 + height: 100rpx;
  14 + padding: 0 32rpx;
  15 + box-sizing: border-box;
  16 + background: #fff;
  17 + position: fixed;
  18 + left: 0;
  19 + bottom: 0;
  20 + display: flex;
  21 + justify-content: space-between;
  22 + align-items: center;
  23 +}
  24 +
  25 +.footer .check_box {
  26 + display: flex;
  27 + align-items: center;
  28 + font-size: 26rpx;
  29 + font-family: PingFang SC;
  30 + font-weight: 400;
  31 + color: rgba(19, 26, 46, 1);
  32 +}
  33 +
  34 +.footer .check_box .check {
  35 + width: 36rpx;
  36 + height: 36rpx;
  37 + padding: 20rpx 20rpx 20rpx 0;
  38 +}
  39 +
  40 +.footer .del {
  41 + width: 180rpx;
  42 + height: 68rpx;
  43 + background: rgba(242, 0, 0, 1);
  44 + border-radius: 34rpx;
  45 + font-size: 30rpx;
  46 + font-family: PingFang SC;
  47 + font-weight: 400;
  48 + color: rgba(255, 255, 255, 1);
  49 + display: flex;
  50 + justify-content: center;
  51 + align-items: center;
  52 +}
  53 +.empty {
  54 + font-size: 36rpx;
  55 + font-family: PingFang SC;
  56 + font-weight: 400;
  57 + color: #ccc;
  58 + margin-top: 200rpx;
  59 + text-align: center;
  60 +}
  1 +const a = getApp();
  2 +Page({
  3 +
  4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + name: '',
  9 + tel: '',
  10 + area: '',
  11 + address: '',
  12 + mr: 0
  13 + },
  14 +
  15 + /**
  16 + * 生命周期函数--监听页面加载
  17 + */
  18 + onLoad: function(options) {
  19 +
  20 + },
  21 +
  22 + // 获取名字
  23 + nameFun(e) {
  24 + this.setData({
  25 + name: e.detail.value.replace(/\s+/g, '')
  26 + })
  27 + },
  28 +
  29 + // 获取手机号
  30 + telFun(e) {
  31 + this.setData({
  32 + tel: e.detail.value.replace(/\s+/g, '')
  33 + })
  34 + },
  35 +
  36 + // 获取详细地址
  37 + getAddressFun(e) {
  38 + this.setData({
  39 + address: e.detail.value
  40 + })
  41 + },
  42 +
  43 + bindRegionChange(e) {
  44 + this.setData({
  45 + area: e.detail.value[0] + ' ' + e.detail.value[1] + ' ' + e.detail.value[2]
  46 + })
  47 + },
  48 +
  49 + // 设置默认地址
  50 + switchChange(e) {
  51 + if (e.detail.value) {
  52 + this.setData({
  53 + mr: 1
  54 + })
  55 + } else {
  56 + this.setData({
  57 + mr: 0
  58 + })
  59 + }
  60 + },
  61 +
  62 + // 保存地址
  63 + addFun() {
  64 + let t = this;
  65 + let AuglyTest_phone = /^1(3|4|5|6|7|8|9)\d{9}$/;
  66 + let u = a.interface.addaddress;
  67 + let d = {
  68 + tel: t.data.tel,
  69 + name: t.data.name,
  70 + area: t.data.area,
  71 + address: t.data.address,
  72 + mo: t.data.mr
  73 + }
  74 + if (d.name == '') {
  75 + wx.showToast({
  76 + title: '请输入收货人名称',
  77 + icon: 'none',
  78 + duration: 1300
  79 + })
  80 + } else if (d.tel == '') {
  81 + wx.showToast({
  82 + title: '请输入手机号',
  83 + icon: 'none',
  84 + duration: 1300
  85 + })
  86 + } else if (!AuglyTest_phone.test(d.tel)) {
  87 + wx.showToast({
  88 + title: '请输入正确的手机号',
  89 + icon: 'none',
  90 + duration: 1300
  91 + })
  92 + } else if (d.area == '') {
  93 + wx.showToast({
  94 + title: '请选择省市区',
  95 + icon: 'none',
  96 + duration: 1300
  97 + })
  98 + } else if (d.address == '') {
  99 + wx.showToast({
  100 + title: '请输入详细地址',
  101 + icon: 'none',
  102 + duration: 1300
  103 + })
  104 + } else {
  105 + a.post(u, d).then((r) => {
  106 + if (r.code == 200) {
  107 + wx.showToast({
  108 + title: '保存成功',
  109 + icon: 'none',
  110 + duration: 1300
  111 + })
  112 + setTimeout(() => {
  113 + wx.navigateBack()
  114 + }, 1300)
  115 + }
  116 + })
  117 + }
  118 + },
  119 +
  120 + /**
  121 + * 生命周期函数--监听页面初次渲染完成
  122 + */
  123 + onReady: function() {
  124 +
  125 + },
  126 +
  127 + /**
  128 + * 生命周期函数--监听页面显示
  129 + */
  130 + onShow: function() {
  131 +
  132 + },
  133 +
  134 + /**
  135 + * 生命周期函数--监听页面隐藏
  136 + */
  137 + onHide: function() {
  138 +
  139 + },
  140 +
  141 + /**
  142 + * 生命周期函数--监听页面卸载
  143 + */
  144 + onUnload: function() {
  145 +
  146 + },
  147 +
  148 + /**
  149 + * 页面相关事件处理函数--监听用户下拉动作
  150 + */
  151 + onPullDownRefresh: function() {
  152 +
  153 + },
  154 +
  155 + /**
  156 + * 页面上拉触底事件的处理函数
  157 + */
  158 + onReachBottom: function() {
  159 +
  160 + },
  161 +
  162 + /**
  163 + * 用户点击右上角分享
  164 + */
  165 + onShareAppMessage: function() {
  166 +
  167 + }
  168 +})
  1 +{
  2 + "navigationBarTitleText": "新增地址"
  3 +}
  1 +<view class="box">
  2 + <view class="list">
  3 + <view class="list_left">收货人</view>
  4 + <view class="list_right">
  5 + <input placeholder="请输入收货人" bindinput="nameFun" placeholder-class="inut_plclass"></input>
  6 + </view>
  7 + </view>
  8 + <view class="list">
  9 + <view class="list_left">手机号码</view>
  10 + <view class="list_right">
  11 + <input placeholder="请输入手机号" type="number" maxlength="11" bindinput="telFun" placeholder-class="inut_plclass"></input>
  12 + </view>
  13 + </view>
  14 + <picker mode="region" style="width: 100%;" bindchange="bindRegionChange">
  15 + <view class="list">
  16 + <view class="list_left">所在地区</view>
  17 + <view class="list_right">
  18 + <view class="area">{{area}}</view>
  19 + <view class="list_right_img">
  20 + <image src="/images/youjiantou.png"></image>
  21 + </view>
  22 + </view>
  23 + </view>
  24 + </picker>
  25 + <view class="list_textarea">
  26 + <view class="list_left">详细地址</view>
  27 + <view class="list_right">
  28 + <textarea placeholder="道路、门牌号、小区、楼栋号等" placeholder-class="inut_plclass" bindinput="getAddressFun" style="padding-top:22rpx;"></textarea>
  29 + </view>
  30 + </view>
  31 + <view class="list">
  32 + <view class="list_left">设为默认地址</view>
  33 + <view class="list_right">
  34 + <switch type="switch" color="rgba(242, 0, 0, 1)" bindchange="switchChange" />
  35 + </view>
  36 + </view>
  37 +</view>
  38 +
  39 +
  40 +
  41 +
  42 +
  43 +<view class="add_btn_box">
  44 + <view class="add_btn" bindtap="addFun">保存</view>
  45 +</view>
  1 +
  2 +page {
  3 + width: 100%;
  4 + height: 100%;
  5 +}
  6 +
  7 +.box {
  8 + width: 100%;
  9 + height: 200%;
  10 + background: rgba(255, 255, 255, 1);
  11 + box-sizing: border-box;
  12 + padding-left: 32rpx;
  13 +}
  14 +
  15 +.list,.list_textarea {
  16 + width: 100%;
  17 + height: 122rpx;
  18 + box-sizing: border-box;
  19 + display: flex;
  20 + justify-content: space-between;
  21 + align-items: center;
  22 + padding-right: 32rpx;
  23 + border-bottom: 1px solid rgba(238, 238, 238, 1);
  24 +}
  25 +
  26 +.list_textarea {
  27 + height: 202rpx;
  28 + align-items: flex-start;
  29 + padding: 40rpx 32rpx 40rpx 0;
  30 +}
  31 +
  32 +.list_left {
  33 + min-width: 166rpx;
  34 +}
  35 +
  36 +
  37 +.list_right {
  38 + flex: 1;
  39 + height: 100%;
  40 + display: flex;
  41 + justify-content: flex-end;
  42 + align-items: center;
  43 + margin-top: 10ropx;
  44 +}
  45 +
  46 +.area {
  47 + flex: 1;
  48 + font-size: 30rpx;
  49 + color: rgba(19, 26, 46, 1);
  50 + font-weight: bold;
  51 +}
  52 +
  53 +.list_right_img {
  54 + width: 48rpx;
  55 + height: 48rpx;
  56 +}
  57 +
  58 +.list_right_img image {
  59 + display: block;
  60 + width: 100%;
  61 + height: 100%;
  62 +}
  63 +
  64 +.list_right input,.list_textarea textarea {
  65 + flex: 1;
  66 + height: 100%;
  67 + color: rgba(19, 26, 46, 1);
  68 + font-size: 30rpx;
  69 + font-weight: bold;
  70 + display: block;
  71 +}
  72 +
  73 +.list_textarea textarea {
  74 + width: 100%;
  75 +}
  76 +
  77 +.inut_plclass {
  78 + font-weight: normal;
  79 +}
  80 +
  81 +.add_btn_box {
  82 + width: 100%;
  83 + box-sizing: border-box;
  84 + padding: 32rpx;
  85 + background: rgba(255, 255, 255, 1);
  86 + position: fixed;
  87 + bottom: 0;
  88 + left: 0;
  89 +}
  90 +
  91 +.add_btn {
  92 + width: 100%;
  93 + height: 80rpx;
  94 + background: rgba(242, 0, 0, 1);
  95 + border-radius: 40rpx;
  96 + display: flex;
  97 + justify-content: center;
  98 + align-items: center;
  99 + font-size: 30rpx;
  100 + color: rgba(255, 255, 255, 1);
  101 +}
  102 +
  103 +
  104 +
  105 +
  106 +
  107 +
  108 +
  109 +
  110 +
  111 +
  112 +
  113 +
  114 +
  115 +
  116 +
  117 +
  118 +
  119 +
  120 +
  121 +
  122 +
  123 +
  124 +
  125 +
  126 +
  127 +
  128 +
  129 +
  130 +
  131 +
  132 +
  133 +
  134 +
  135 +
  1 +const a = getApp();
  2 +Page({
  3 +
  4 + /**
  5 + * 页面的初始数据
  6 + */
  7 + data: {
  8 + list: [],
  9 + },
  10 +
  11 + /**
  12 + * 生命周期函数--监听页面加载
  13 + */
  14 + onLoad: function(options) {
  15 +
  16 + },
  17 +
  18 + // 获取地址列表
  19 + getListFun() {
  20 + let t = this;
  21 + let u = a.interface.address
  22 + a.post(u, {}).then((r) => {
  23 + if (r.code == 200) {
  24 + t.setData({
  25 + list: r.msg,
  26 + check: true
  27 + })
  28 + if (r.msg.length == 0){
  29 + wx.setStorageSync('no_address', true)
  30 + }
  31 + }
  32 + }).catch((er) => {
  33 + })
  34 + },
  35 +
  36 + //选择地址返回确认订单页面
  37 + selectAdddressFun(e) {
  38 + let pages = getCurrentPages();
  39 + let prevPage = pages[pages.length - 2]; //上一个页面
  40 + //直接调用上一个页面的setData()方法,把数据存到上一个页面中去
  41 + prevPage.setData({
  42 + name: e.currentTarget.dataset.n,
  43 + area: e.currentTarget.dataset.a,
  44 + tel: e.currentTarget.dataset.tel,
  45 + address: e.currentTarget.dataset.ad,
  46 + id: e.currentTarget.dataset.id
  47 + })
  48 + wx.navigateBack({
  49 + delta: 1
  50 + })
  51 + },
  52 +
  53 + // 设置默认地址
  54 + mrAddressFun(e) {
  55 + let t = this
  56 + let index = e.currentTarget.dataset.index
  57 + let u = a.interface.mraddress;
  58 + let d = {
  59 + id: e.currentTarget.dataset.id,
  60 + mo: 1
  61 + }
  62 + a.post(u, d).then((r) => {
  63 + if (r.code == 200) {
  64 + t.setData({
  65 + [`list[${index}].check`]: true
  66 + })
  67 + wx.showToast({
  68 + title: '设置成功',
  69 + icon: 'none',
  70 + duration: 1300
  71 + })
  72 + setTimeout(() => {
  73 + t.getListFun()
  74 + }, 1300)
  75 + }
  76 + }).catch((er) => {
  77 + })
  78 + },
  79 +
  80 + // 修改地址
  81 + editAddressFun(e) {
  82 + wx.navigateTo({
  83 + url: '/pages/address/edit_address/edit_address?id=' + e.currentTarget.dataset.id,
  84 + })
  85 + },
  86 +
  87 + // 删除地址
  88 + delAddressFun(e) {
  89 + let t = this;
  90 + let u = a.interface.deladdress;
  91 + let d = {
  92 + id: e.currentTarget.dataset.id
  93 + }
  94 + a.post(u, d).then((r) => {
  95 + if (r.code == 200) {
  96 + wx.showToast({
  97 + title: '删除成功',
  98 + icon: 'none',
  99 + duration: 1300
  100 + })
  101 + setTimeout(() => {
  102 + t.getListFun()
  103 + }, 1300)
  104 + }
  105 + }).catch((er) => {
  106 + })
  107 + },
  108 +
  109 + // 新增地址
  110 + addFun() {
  111 + wx.navigateTo({
  112 + url: '/pages/address/add_address/add_address',
  113 + })
  114 + },
  115 +
  116 + /**
  117 + * 生命周期函数--监听页面初次渲染完成
  118 + */
  119 + onReady: function() {
  120 +
  121 + },
  122 +
  123 + /**
  124 + * 生命周期函数--监听页面显示
  125 + */
  126 + onShow: function() {
  127 + this.getListFun()
  128 + },
  129 +
  130 + /**
  131 + * 生命周期函数--监听页面隐藏
  132 + */
  133 + onHide: function() {
  134 +
  135 + },
  136 +
  137 + /**
  138 + * 生命周期函数--监听页面卸载
  139 + */
  140 + onUnload: function() {
  141 +
  142 + },
  143 +
  144 + /**
  145 + * 页面相关事件处理函数--监听用户下拉动作
  146 + */
  147 + onPullDownRefresh: function() {
  148 +
  149 + },
  150 +
  151 + /**
  152 + * 页面上拉触底事件的处理函数
  153 + */
  154 + onReachBottom: function() {
  155 +
  156 + },
  157 +
  158 + /**
  159 + * 用户点击右上角分享
  160 + */
  161 + onShareAppMessage: function() {
  162 +
  163 + }
  164 +})
  1 +{
  2 + "navigationBarTitleText": "我的地址"
  3 +}
  1 +<view class="content">
  2 + <view class="item" wx:for="{{list}}" wx:key data-id="{{item.id}}" data-n="{{item.name}}" data-tel="{{item.tel}}" data-a="{{item.area}}" data-ad="{{item.address}}" bindtap="selectAdddressFun">
  3 + <view class="user_info">
  4 + <view class="name">{{item.name}}</view>
  5 + <view class="tel">{{item.tel}}</view>
  6 + <view class="type" wx:if="{{item.mo == 1}}">默认</view>
  7 + </view>
  8 + <view class="address">
  9 + {{item.area}} {{item.address}}
  10 + </view>
  11 + <view class="btn_box">
  12 + <view class="check" data-id="{{item.id}}" data-index="{{index}}" wx:if="{{item.mo != 1}}" catchtap="mrAddressFun">
  13 + <image wx:if="{{!item.check}}" src="/images/check.png" />
  14 + <image wx:else src="/images/check@.png" /> 设为默认地址
  15 + </view>
  16 + <block>
  17 + <view class="btn_item" data-id="{{item.id}}" catchtap="editAddressFun">
  18 + <image src="/images/icon_60.png" style="width: 26rpx;height: 26rpx;" />编辑
  19 + </view>
  20 + <view class="btn_item" data-id="{{item.id}}" catchtap="delAddressFun">
  21 + <image src="/images/icon_48.png" />删除
  22 + </view>
  23 + </block>
  24 + </view>
  25 + </view>
  26 + <view class="empty" wx:if="{{list.length==0}}">暂无地址信息,请去添加</view>
  27 +
  28 +</view>
  29 +
  30 +<view class="add_btn_box">
  31 + <view class="add_btn" bindtap="addFun">+ 添加收货地址</view>
  32 +</view>
  1 +page {
  2 + background: #f9f9f9;
  3 + padding-bottom: 120rpx;
  4 +}
  5 +
  6 +.content {
  7 + padding: 32rpx;
  8 + box-sizing: border-box;
  9 +}
  10 +
  11 +.item {
  12 + width: 100%;
  13 + background: #fff;
  14 + border-radius: 10rpx;
  15 + margin-bottom: 20rpx;
  16 +}
  17 +
  18 +.item .user_info {
  19 + width: 100%;
  20 + height: 96rpx;
  21 + padding: 0 40rpx;
  22 + box-sizing: border-box;
  23 + display: flex;
  24 + align-items: center;
  25 +}
  26 +
  27 +.user_info .name {
  28 + font-size: 32rpx;
  29 + font-family: PingFang SC;
  30 + font-weight: bold;
  31 + color: rgba(6, 14, 35, 1);
  32 +}
  33 +
  34 +.user_info .tel {
  35 + font-size: 32rpx;
  36 + font-family: PingFang SC;
  37 + font-weight: bold;
  38 + color: rgba(19, 26, 46, 1);
  39 + margin-left: 40rpx;
  40 + margin-right: 20rpx;
  41 +}
  42 +
  43 +.user_info .type {
  44 + width: 56rpx;
  45 + height: 28rpx;
  46 + background: rgba(242, 0, 0, 1);
  47 + border-radius: 4rpx;
  48 + font-size: 20rpx;
  49 + font-family: PingFang SC;
  50 + font-weight: 400;
  51 + color: rgba(255, 255, 255, 1);
  52 + display: flex;
  53 + justify-content: center;
  54 + align-items: center;
  55 +}
  56 +
  57 +.address {
  58 + padding: 0 40rpx 20rpx 40rpx;
  59 + box-sizing: border-box;
  60 + font-size: 26rpx;
  61 + font-family: PingFang SC;
  62 + font-weight: 400;
  63 + color: rgba(102, 102, 102, 1);
  64 + border-bottom: 1rpx solid #eee;
  65 +}
  66 +
  67 +.btn_box {
  68 + height: 70rpx;
  69 + display: flex;
  70 + justify-content: flex-end;
  71 +}
  72 +
  73 +.btn_item {
  74 + width: 100rpx;
  75 + font-size: 26rpx;
  76 + font-family: PingFang SC;
  77 + font-weight: 400;
  78 + color: rgba(102, 102, 102, 1);
  79 + display: flex;
  80 + align-items: center;
  81 + margin-right: 52rpx;
  82 +}
  83 +
  84 +.btn_item:last-child {
  85 + margin-right: 38rpx;
  86 +}
  87 +
  88 +.btn_item image {
  89 + width: 28rpx;
  90 + height: 30rpx;
  91 + margin-right: 16rpx;
  92 +}
  93 +
  94 +.check {
  95 + flex: 1;
  96 + /* width: 200rpx; */
  97 + font-size: 26rpx;
  98 + font-family: PingFang SC;
  99 + font-weight: 400;
  100 + line-height: 36px;
  101 + color: rgba(102, 102, 102, 1);
  102 + display: flex;
  103 + align-items: center;
  104 + margin-left: 48rpx;
  105 +}
  106 +
  107 +.check image {
  108 + width: 26rpx;
  109 + height: 26rpx;
  110 + margin-right: 20rpx;
  111 +}
  112 +
  113 +
  114 +/* 添加地址按钮 */
  115 +.add_btn_box {
  116 + width: 100%;
  117 + box-sizing: border-box;
  118 + padding: 32rpx;
  119 + background: rgba(249, 249, 249, 1);
  120 + position: fixed;
  121 + bottom: 0;
  122 + left: 0;
  123 +}
  124 +
  125 +.add_btn {
  126 + width: 100%;
  127 + height: 80rpx;
  128 + background: rgba(242, 0, 0, 1);
  129 + border-radius: 40rpx;
  130 + display: flex;
  131 + justify-content: center;
  132 + align-items: center;
  133 + font-size: 30rpx;
  134 + color: rgba(255, 255, 255, 1);
  135 +}
  136 +
  137 +
  138 +.empty{
  139 + width: 100%;
  140 + text-align: center;
  141 + font-size: 36rpx;
  142 + color: #ccc;
  143 + margin-top: 200rpx;
  144 +}
  145 +
  146 +
  147 +
  148 +
  149 +
  150 +
  151 +
  152 +
  153 +
  154 +
  155 +
  156 +
  157 +