liukangdong
2024-07-16 a93496ffe02ae8a97ac582a5c0a5d9ac1f7ba10f
wxmini
已添加37个文件
已删除1个文件
已修改42个文件
2914 ■■■■■ 文件已修改
wechat_jiaxuan/api/index.js 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/app.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/app.json 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/authCard/authCard.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/authCard/authCard.less 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/authCard/authCard.wxml 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/components/authCard/authCard.wxss 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/auth/auth.js 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/auth/auth.json 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/auth/auth.less 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/auth/auth.wxml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/auth/auth.wxss 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/calculator/index.js 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/design/design.js 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/design/design.json 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/design/design.less 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/design/design.wxml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/design/design.wxss 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.less 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.wxml 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/homeId/index.wxss 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/index/index.js 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/index/index.less 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/index/index.wxml 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/index/index.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/fond.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/fond.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/fond.less 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/fond.wxml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/fond.wxss 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/index.js 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/index.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/index.less 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/index.wxml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/index.wxss 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/select.js 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/select.json 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/select.less 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/select.wxml 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/kefu/select.wxss 154 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/mine/mine.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/mine/mine.less 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/mine/mine.wxml 25 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/mine/mine.wxss 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/productVideo/index.js 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/productVideo/index.json 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/productVideo/index.less 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/productVideo/index.wxml 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/productVideo/index.wxss 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/index.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/index.wxml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/protocol.js 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/protocol.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/protocol.wxml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/sets/protocol.wxss 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/store.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/store.less 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/store.wxml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/store/store.wxss 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/userinfo/index.js 150 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/userinfo/index.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/userinfo/index.less 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/userinfo/index.wxml 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/pages/userinfo/index.wxss 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/project.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/project.private.config.json 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/home_ic_liangchi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/home_ic_xuqiu@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/home_ic_yusuan@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/home_ic_zhutihuodong@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/ic_dingwei@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/icon/mendian_item.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/images/default_avatar.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/static/images/home_img_weixiaoxd@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/utils/config.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/utils/request.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/utils/config.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/utils/request.js 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_jiaxuan/api/index.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
import { request } from '../utils/request'
import { baseUrl } from '../utils/config'
export const uploadUrl = baseUrl + '/public/upload'
// å°ç¨‹åºç™»å½•
export const wxLoginCustomer = (data) => {
  return request({
    url: '/web/customer/wxLoginCustomer',
    data
  })
}
// èŽ·å–æ‰‹æœºå·
export const getWxMiniPhone = (data) => {
  return request({
    url: '/web/customer/getWxMiniPhone',
    method: "POST",
    data
  })
}
// èŽ·å–å­—å…¸å€¼
export const getDictData = (data) => {
  return request({
    url: '/public/getDictData',
    data,
    loading: '0'
  })
}
// èŽ·å–ä¼šå‘˜ä¿¡æ¯
export const getMemberInfo = () => {
  return request({
    url: '/web/customer/getMemberInfo',
  })
}
// èŽ·å–é—¨åº—åˆ—è¡¨
export const getShopPage = (data) => {
  return request({
    url: '/web/customer/shopPage',
    method: 'POST',
    data
  })
}
// èŽ·å–é—¨åº—è¯¦æƒ…
export const getShopDetail = (data) => {
  return request({
    url: '/web/customer/shopDetail',
    data
  })
}
// æ›´æ–°ä¼šå‘˜ä¿¡æ¯
export const editMember = (data) => {
  return request({
    url: '/web/customer/editMember',
    method: 'POST',
    data
  })
}
// 0元定制信息
export const saveFreeCustomizationApply = (data) => {
  return request({
    url: '/web/customer/saveFreeCustomizationApply',
    method: 'POST',
    data
  })
}
// èŽ·å–è®¡ç®—å™¨é…ç½®
export const getBjParamConfig = (data) => {
  return request({
    url: '/web/customer/getBjParamConfig',
    data
  })
}
// ä¿å­˜è®¡ç®—器配置
export const saveRenovationCalculator = (data) => {
  return request({
    url: '/web/customer/saveRenovationCalculator',
    method: 'POST',
    data
  })
}
// èŽ·å–çœå¸‚åŒº
export const getArea = (data) => {
  return request({
    url: '/web/common/getArea',
    data
  })
}
// å°ç¨‹åºæ³¨é”€
export const wxLogOff = (data) => {
  return request({
    url: '/web/customer/logOff',
    data
  })
}
wechat_jiaxuan/app.js
@@ -1,4 +1,4 @@
// app.js
import { wxLoginCustomer } from './api/index'
App({
  globalData: {
    primary: '#B08771',
@@ -10,5 +10,38 @@
    if (WindowInfo.safeArea.top > 20) {
      this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom;
    }
    //
    const res = wx.getStorageSync('member')
    if (res) {
      this.globalData.userInfo = res
    } else {
      // ç™»å½•
      wx.login({
        timeout: 5000,
        success(res) {
          if (res.code) {
            //发起网络请求
            wxLoginCustomer({
              code: res.code
            }).then(res => {
              console.log(res)
              if (res && res.data.member) {
                wx.setStorageSync('member', res.data.member)
                wx.setStorageSync('openid', res.data.member.openid)
                wx.setStorageSync('sessionKey', res.data.sessionKey)
                wx.setStorageSync('token', res.data.token)
              } else {
                console.log('登录失败!')
              }
            })
          } else {
            console.log('登录失败!' + res)
          }
        },
        fail(err) {
          console.log(err)
        }
      })
    }
  }
})
})
wechat_jiaxuan/app.json
@@ -13,6 +13,9 @@
    "pages/store/staffList",
    "pages/calculator/index",
    "pages/webView/index",
    "pages/productVideo/index",
    "pages/homeId/index",
    "pages/kefu/index",
    "pages/detailDis/product",
    "pages/detailDis/case",
    "pages/detailDis/realpic",
@@ -68,7 +71,8 @@
  },
  "requiredPrivateInfos": [
    "getLocation",
    "chooseLocation"
    "chooseLocation",
    "getFuzzyLocation"
  ],
  "permission": {
    "scope.userLocation": {
wechat_jiaxuan/components/authCard/authCard.js
@@ -1,4 +1,4 @@
// components/authCard/authCard.js
import { getShopPage } from '../../api/index'
Component({
  /**
   * ç»„件的属性列表
@@ -6,21 +6,25 @@
  properties: {
    type: { // å±žæ€§å
      type: String,
      value: '0'
      value: '0',
      observer(val) {
        if(val === '1'){
          this.getShops()
        }
      }
    },
  },
  /**
   * ç»„件的初始数据
   */
  data: {
  },
  /**
   * ç»„件的方法列表
   */
  methods: {
    getShops() {
      getShopPage()
    },
    jumpStore() {
      wx.navigateTo({
        url: '/pages/store/store',
      })
    }
  }
})
wechat_jiaxuan/components/authCard/authCard.less
@@ -52,4 +52,99 @@
    background: #B08771;
    border-radius: 0rpx 8rpx 8rpx 0rpx;
  }
}
.wrap2{
  .header{
    display: flex;
    align-items: center;
    .left{
      flex: 1;
      .name{
        display: flex;
        align-items: center;
        font-weight: 600;
        font-size: 36rpx;
        .icon{
          width: 36rpx;
          margin-right: 12rpx;
        }
      }
      .desc{
        margin-top: 10rpx;
        font-weight: 300;
        font-size: 26rpx;
        color: #333333;
      }
    }
    .right{
      width: 16rpx;
    }
  }
  .list{
    padding: 40rpx 8rpx;
    display: flex;
    width: 710rpx;
    overflow: auto;
    .item{
      flex-shrink: 0;
      width: 305rpx;
      height: 184rpx;
      background: rgba(176,135,113,0.05) #FFFFFF;
      box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0,0,0,0.12);
      border-radius: 8rpx;
      padding: 20rpx;
      margin-right: 20rpx;
      .name{
        display: flex;
        margin-bottom: 20rpx;
        .icon{
          width: 60rpx;
          height: 60rpx;
          background: rgba(176,135,113,0.14);
          border-radius: 50%;
          display: flex;
          justify-content: center;
          align-items: center;
          margin-right: 20rpx;
          image{
            width: 36rpx;
          }
        }
      }
      .addr{
        display: flex;
        justify-content: space-between;
        align-items: center;
        .left{
          display: flex;
          align-items: center;
          font-size: 24rpx;
          color: #999999;
          .icon{
            width: 24rpx;
          }
        }
        .right{
          display: flex;
          align-items: center;
          color: #B08771;
          font-size: 26rpx;
        }
      }
    }
  }
}
.wrap3{
  display: flex;
  box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(176,135,113,0.2);
  border-radius: 8rpx;
  padding: 30rpx;
  height: 140rpx;
  .ai{
    image{
      width: 40rpx;
      height: 40rpx;
    }
  }
}
wechat_jiaxuan/components/authCard/authCard.wxml
@@ -16,7 +16,51 @@
  </view>
  <!-- å·²æŽˆæƒ -->
  <view wx:if="{{ type == '1' }}" class="wrap2">
    <view class="header" bindtap="jumpStore">
      <view class="left">
        <view class="name">
          <image class="icon" src="../../static/icon/home_ic_zhutihuodong@2x.png" mode="widthFix"></image>
          <text>附近门店</text>
        </view>
        <view class="desc">您身边的全屋设计专家~</view>
      </view>
      <image class="right" src="../../static/icon/arrow_right.png" mode="widthFix"></image>
    </view>
    <view class="list">
      <view class="item" wx:for="{{6}}">
        <view class="name">
          <view class="icon">
            <image src="../../static/icon/mendian_item.png" mode="widthFix"></image>
          </view>
          <text>合肥红星新品关</text>
        </view>
        <view class="addr">
          <view class="left">
            <image class="icon" src="../../static/icon/location.png" mode="widthFix"></image>
            <text>3.9km</text>
          </view>
          <view class="right">
            <text>进入门店</text>
            <van-icon  name="arrow" />
          </view>
        </view>
      </view>
    </view>
  </view>
  <!-- å·²æŽˆæƒ å·²ç»‘定 -->
</view>
  <view wx:if="{{ type == '2' }}" class="wrap1 wrap3">
    <view class="ai df_ct">
      <image src="../../static/icon/home_ic_guwen@2x.png" mode="widthFix"></image>
    </view>
    <view class="content">
      <view class="name">您的专属家居顾问</view>
      <view class="desc">您身边的全屋设计专家</view>
    </view>
    <view class="btn">
      <view>去</view>
      <view>看</view>
      <view>看</view>
    </view>
  </view>
</view>
wechat_jiaxuan/components/authCard/authCard.wxss
@@ -53,3 +53,93 @@
  background: #B08771;
  border-radius: 0rpx 8rpx 8rpx 0rpx;
}
.wrap2 .header {
  display: flex;
  align-items: center;
}
.wrap2 .header .left {
  flex: 1;
}
.wrap2 .header .left .name {
  display: flex;
  align-items: center;
  font-weight: 600;
  font-size: 36rpx;
}
.wrap2 .header .left .name .icon {
  width: 36rpx;
  margin-right: 12rpx;
}
.wrap2 .header .left .desc {
  margin-top: 10rpx;
  font-weight: 300;
  font-size: 26rpx;
  color: #333333;
}
.wrap2 .header .right {
  width: 16rpx;
}
.wrap2 .list {
  padding: 40rpx 8rpx;
  display: flex;
  width: 710rpx;
  overflow: auto;
}
.wrap2 .list .item {
  flex-shrink: 0;
  width: 305rpx;
  height: 184rpx;
  background: rgba(176, 135, 113, 0.05) #FFFFFF;
  box-shadow: 0rpx 4rpx 12rpx 0rpx rgba(0, 0, 0, 0.12);
  border-radius: 8rpx;
  padding: 20rpx;
  margin-right: 20rpx;
}
.wrap2 .list .item .name {
  display: flex;
  margin-bottom: 20rpx;
}
.wrap2 .list .item .name .icon {
  width: 60rpx;
  height: 60rpx;
  background: rgba(176, 135, 113, 0.14);
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-right: 20rpx;
}
.wrap2 .list .item .name .icon image {
  width: 36rpx;
}
.wrap2 .list .item .addr {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.wrap2 .list .item .addr .left {
  display: flex;
  align-items: center;
  font-size: 24rpx;
  color: #999999;
}
.wrap2 .list .item .addr .left .icon {
  width: 24rpx;
}
.wrap2 .list .item .addr .right {
  display: flex;
  align-items: center;
  color: #B08771;
  font-size: 26rpx;
}
.wrap3 {
  display: flex;
  box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(176, 135, 113, 0.2);
  border-radius: 8rpx;
  padding: 30rpx;
  height: 140rpx;
}
.wrap3 .ai image {
  width: 40rpx;
  height: 40rpx;
}
wechat_jiaxuan/pages/auth/auth.js
@@ -1,4 +1,8 @@
// pages/auth/auth.js
import {
  wxLoginCustomer,
  getDictData,
  getWxMiniPhone
} from '../../api/index'
Page({
  /**
@@ -6,9 +10,86 @@
   */
  data: {
    agreementFalg: false,
    primary: ''
  },
    primary: '',
    showModal: false,
    serviceHtml: '',
    title: '',
    privacyHtml: '',
    activeHtml: ''
  },
  initData(){
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label: 'SERVER_AGREEMENT'
    }).then(res => {
      this.setData({
        serviceHtml: res.data.code
      })
    })
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label: 'PRIVACY_AGREEMENT'
    }).then(res => {
      this.setData({
        privacyHtml: res.data.code
      })
    })
  },
  getPhoneNumber (e) {
    console.log(e.detail)
    console.log(e.detail.iv)
    console.log(e.detail.encryptedData)
    const data = { ...e.detail }
    getWxMiniPhone({
      encryptedData: data.encryptedData,
      iv: data.iv,
      sessionKey: wx.getStorageSync('sessionKey'),
    })
  },
  loginIn() {
    const { agreementFalg } = this.data
    if(!agreementFalg) return wx.showToast({
      title: '请先阅读并同意相关协议',
      icon: 'none',
      duration: 2000
    })
    wx.login({
      success: (res) => {
        if (res.code) {
          // èŽ·å–åˆ°ç”¨æˆ·ç™»å½•å‡­è¯ code
          const code = res.code;
          wx.setStorageSync('code', res.code)
          // å°† code å‘送给后端服务器
          wxLoginCustomer({code}).then(ress => {
            wx.setStorageSync('token', ress.data.token)
            wx.setStorageSync('member', ress.data.member)
            wx.redirectTo({
              url: '/pages/index/index',
            })
          })
        } else {
          console.error('获取用户登录凭证失败', res.errMsg);
        }
      },
      fail: (err) => {
        console.error('调用 wx.login å¤±è´¥', err);
      },
    })
  },
  onOpen(e){
    console.log('e', e);
    const { serviceHtml, privacyHtml } = this.data
    const { index } = e.target.dataset
    let activeHtml = index == '0' ? serviceHtml : privacyHtml
    this.setData({
      activeHtml,
      showModal: true
    })
  },
  onClose(){
    this.setData({showModal: false})
  },
  agreementChange(e) {
    this.setData({
      agreementFalg: e.detail,
@@ -19,6 +100,7 @@
    this.setData({
      primary: app.primary
    })
    this.initData()
  },
  /**
wechat_jiaxuan/pages/auth/auth.json
@@ -1,6 +1,8 @@
{
  "usingComponents": {
    "van-nav-bar": "@vant/weapp/nav-bar/index",
    "van-checkbox": "@vant/weapp/checkbox/index"
  }
    "van-checkbox": "@vant/weapp/checkbox/index",
    "van-popup": "@vant/weapp/popup/index"
  },
  "navigationBarTitleText": "授权登录"
}
wechat_jiaxuan/pages/auth/auth.less
@@ -36,6 +36,11 @@
    font-size: 30rpx;
  }
}
.modal{
  width: 600rpx;
  min-height: 600rpx;
  padding: 30rpx;
}
.title{
  font-weight: 600;
  font-size: 44rpx;
wechat_jiaxuan/pages/auth/auth.wxml
@@ -1,26 +1,28 @@
<view>
  <van-nav-bar title="授权登录">
    <view slot="left">
      <van-icon name="arrow-left" size="22px" color="#000000" />
    </view>
  </van-nav-bar>
  <view class="container">
    <view class="logo_wrap">
      <image src="../../static/icon/logo.png"></image>
    </view>
    <view class="title">欢迎来到志邦家居选志邦,实现您对家的美好想象</view>
    <view class="placeholder9">您喜欢的样子,我都有~</view>
    <view>{{ test }}</view>
    <view class="main_footer">
      <view class="line">
        <van-checkbox value="{{ agreementFalg }}" checked-color="{{primary}}" shape="round" bind:change="agreementChange"></van-checkbox>
        <view class="content">
          <text>我已阅读并同意</text>
          <text class="primary">《ZBOM用户服务协议》</text>
          <text data-index="0" bindtap="onOpen" class="primary">《ZBOM用户服务协议》</text>
          <text>及</text>
          <text class="primary">《ZBOM用户隐私政策》</text>
          <text data-index="1" bindtap="onOpen" class="primary">《ZBOM用户隐私政策》</text>
        </view>
      </view>
      <view class="btn">手机号快捷登录</view>
      <button class="btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">手机号快捷登录</button>
    </view>
  </view>
  <!--  -->
  <van-popup show="{{ showModal }}" round bind:close="onClose">
    <view class="modal">
      <rich-text nodes="{{activeHtml}}"></rich-text>
    </view>
  </van-popup>
</view>
wechat_jiaxuan/pages/auth/auth.wxss
@@ -36,6 +36,11 @@
  font-weight: 500;
  font-size: 30rpx;
}
.modal {
  width: 600rpx;
  min-height: 600rpx;
  padding: 30rpx;
}
.title {
  font-weight: 600;
  font-size: 44rpx;
wechat_jiaxuan/pages/calculator/index.js
@@ -1,6 +1,7 @@
// pages/calculator/index.js
// import { imageUrl } from '../../utils/config'
// import { calculatorOption, calculatorSave, decodePhone, bindPhone } from '../../api/index'
import { getBjParamConfig, saveRenovationCalculator } from '../../api/index'
// import Ls from '../../utils/storage'
// let ls = new Ls
Page({
@@ -29,6 +30,14 @@
    containerContentStyle: 'hidden;'
  },
  onLoad: function (options) {
    let that = this
    this.getCalculatorOption()
    const userInfo = wx.getStorageSync('member')
    if (userInfo.phone) {
      that.setData({ userPhone: userInfo.phone })
    }
  },
  // è¿”回上一页
  navigateBack () {
    wx.navigateBack({
@@ -71,7 +80,7 @@
    let { activePicker, pickerIndex } = this.data
    this.setData({ [activePicker]: pickerIndex, showPopup: false })
  },
  // èŽ·å–ç”¨æˆ·æ‰‹æœºå·
  getPhoneNumber (e) {
    // console.log(e)
@@ -98,60 +107,59 @@
  submit () {
    // console.log('立即计算')
    let { userPhone } = this.data
    ls.get('userInfo').then(res => {
      // console.log(res)
      if (userPhone) {
        let { type, info, area, money, typeArray, infoArray, calculatorOptions: options } = this.data
        let submitData = {}
        submitData.name = res.name
        submitData.phone = res.phone
        if (type === '') {
          wx.showToast({
            title: '请选择房屋类型',
            icon: 'none'
          })
          return false
        }
        if (info === '') {
          wx.showToast({
            title: '请选择户型信息',
            icon: 'none'
          })
          return false
        }
        if (area === '') {
          wx.showToast({
            title: '请输入房屋面积',
            icon: 'none'
          })
          return false
        }
        if (money === '') {
          wx.showToast({
            title: '请输入装修预算',
            icon: 'none'
          })
          return false
        }
        submitData = ['房屋类型:' + typeArray[type], '户型信息:' + infoArray[info], '房屋面积:' + area + '㎡', '装修预算:' + money + '万元'].join('-')
        for (let i in options) {
          options[i].money = (money * options[i].rate / 100).toFixed(2)
          let childList = options[i].childList
          for(let j in childList) {
            childList[j].money = (money * childList[j].rate / 100).toFixed(2)
          }
        }
        this.setData({ calculatorOptions: options, showResultMoney: true, containerContentStyle: 'auto' })
        this.submitCalculatorResult(submitData)
    const res = wx.getStorageSync('member')
    if (userPhone) {
      let { type, info, area, money, typeArray, infoArray, calculatorOptions: options } = this.data
      let submitData = {}
      submitData.name = res.name
      submitData.phone = res.phone
      if (type === '') {
        wx.showToast({
          title: '请选择房屋类型',
          icon: 'none'
        })
        return false
      }
      if (info === '') {
        wx.showToast({
          title: '请选择户型信息',
          icon: 'none'
        })
        return false
      }
      if (area === '') {
        wx.showToast({
          title: '请输入房屋面积',
          icon: 'none'
        })
        return false
      }
      if (money === '') {
        wx.showToast({
          title: '请输入装修预算',
          icon: 'none'
        })
        return false
      }
    })
      submitData = ['房屋类型:' + typeArray[type], '户型信息:' + infoArray[info], '房屋面积:' + area + '㎡', '装修预算:' + money + '万元'].join('-')
      for (let i in options) {
        options[i].money = (money * options[i].rate / 100).toFixed(2)
        let childList = options[i].childList
        for(let j in childList) {
          childList[j].money = (money * childList[j].rate / 100).toFixed(2)
        }
      }
      this.setData({ calculatorOptions: options, showResultMoney: true, containerContentStyle: 'auto' })
      this.submitCalculatorResult(submitData)
    }
  },
  // æäº¤è®¡ç®—结果
  submitCalculatorResult (data) {
    calculatorSave({ info: data }).then(res => {
    saveRenovationCalculator({ info: data }).then(res => {
      // console.log(res)
      if (res.success) {
        wx.showToast({
@@ -166,27 +174,10 @@
  // èŽ·å–è®¡ç®—å™¨é…ç½®
  getCalculatorOption () {
    calculatorOption().then(res => {
    getBjParamConfig().then(res => {
      this.setData({ calculatorOptions: res.data })
    })
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad: function (options) {
    let that = this
    // this.getCalculatorOption()
    // ls.get('userInfo').then(res => {
    //   if (res.phone) {
    //     that.setData({ userPhone: res.phone })
    //   }
    // })
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady: function () {
  },
wechat_jiaxuan/pages/design/design.js
@@ -1,4 +1,7 @@
// pages/design/design.js
import {
  getDictData,
  saveFreeCustomizationApply
} from '../../api/index'
Page({
  /**
@@ -7,26 +10,76 @@
  data: {
    name: '',
    phone: '',
    city: ''
    city: '',
    showAreaList: false,
    areaList: [],
    DESIGN_BANNER: '',
    WechatIMG558: '',
  },
  onLoad(options) {
    this.initData()
  },
  onSubmit() {
    console.log('dd', this.data.name);
    console.log('dd', this.data.phone);
    const {
      name,
      phone
    } = this.data
    if (!name) return wx.showToast({
      title: '请输入姓名',
      icon: 'none'
    })
    if (!phone) return wx.showToast({
      title: '请输入联系电话',
      icon: 'none'
    })
    saveFreeCustomizationApply({
      name,
      phone
    }).then(res => {
      wx.showToast({
        title: '报名成功'
      })
    })
  },
  selAddress() {
    console.log('点击了');
    wx.chooseLocation({
      type: 'wgs84',
      success: (res)=> {
        this.setData({
          city: res.name
        })
        console.log('res', res);
      }
  // æ˜¾ç¤ºåˆ‡æ¢åŸŽå¸‚弹窗
  chooseCity () {
    this.setData({ showAreaList: !this.data.showAreaList })
  },
  // åˆ‡æ¢åŸŽå¸‚
  confirmChange(e) {
    let {
      values
    } = e.detail
    let region = []
    for (let i in values) {
      region.push(values[i].name)
    }
    this.setData({
      region,
      cityCode: values[1].code
    })
    this.getShopList()
    this.chooseCity()
  },
  initData() {
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'DESIGN_BANNER'
    }).then(res => {
      this.setData({
        DESIGN_BANNER: res.data.code
      })
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'WechatIMG558'
    }).then(res => {
      this.setData({
        WechatIMG558: res.data.code
      })
    })
  },
  onReady() {
wechat_jiaxuan/pages/design/design.json
@@ -1,7 +1,8 @@
{
  "usingComponents": {
    "van-field": "@vant/weapp/field/index"
    "van-field": "@vant/weapp/field/index",
    "van-area": "@vant/weapp/area/index",
    "van-popup": "@vant/weapp/popup/index"
  },
  "navigationStyle": "custom",
  "navigationBarTextStyle": "white"
  "navigationBarTitleText": "0元免费设计"
}
wechat_jiaxuan/pages/design/design.less
@@ -1,5 +1,6 @@
.banner {
  width: 100%;
  padding-bottom: 100rpx;
}
.main_content {
@@ -59,4 +60,9 @@
    margin-bottom: 34rpx;
    text-align: center;
  }
}
.area-list  {
  .van-picker__confirm{
    color: #B08771;
  }
}
wechat_jiaxuan/pages/design/design.wxml
@@ -1,6 +1,5 @@
<view class="container">
  <navBar title="0元免费设计"></navBar>
  <!-- <image class="banner" src="../../static/images/design_banner.png"></image> -->
  <image class="banner" src="{{ DESIGN_BANNER }}" mode="widthFix"></image>
  <view class="main_content">
    <view class="title">0元定制 | æ‚¨çš„æˆ·åž‹è£…修方案</view>
    <view class="line">
@@ -11,11 +10,16 @@
      <image class="icon" src="../../static/icon/design_ic_phone.png" mode="widthFix"></image>
      <van-field type="number" class="input" custom-style="background-color: #F6F6F6;" model:value="{{ phone }}" placeholder="请输入联系电话" clearable maxlength="{{ 11 }}" />
    </view>
    <view class="line" bindtap="selAddress">
    <view class="line" bindtap="chooseCity">
      <image class="icon" src="../../static/icon/design_ic_city.png" mode="widthFix"></image>
      <view class="city">{{ city }}</view>
      <image class="arrow_right" src="../../static/icon/arrow_right.png" mode="widthFix"></image>
    </view>
    <view class="btn" bindtap="onSubmit">立即报名</view>
  </view>
  <image class="banner" src="{{ WechatIMG558 }}" mode="widthFix"></image>
  <!--  -->
  <van-popup show="{{ showAreaList }}" position="bottom" round>
    <van-area class="area-list" area-list="{{ areaList }}"  bind:confirm="confirmChange" bind:cancel="chooseCity" />
  </van-popup>
</view>
wechat_jiaxuan/pages/design/design.wxss
@@ -1,5 +1,6 @@
.banner {
  width: 100%;
  padding-bottom: 100rpx;
}
.main_content {
  width: 670rpx;
@@ -54,3 +55,6 @@
  margin-bottom: 34rpx;
  text-align: center;
}
.area-list .van-picker__confirm {
  color: #B08771;
}
wechat_jiaxuan/pages/homeId/index.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
// pages/consult/consult.js
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    category: ['新品上市', '专利证书', '大牌授权','新品上市', '专利证书', '大牌授权'],
    secondCategory: ['级分类','级分类','级分类','级分类','级分类','级分类'],
    activeCate: '',
    seActiveCate: '',
    dataList: []
  },
  itemClick(e) {
    const { id } = e.target.dataset
    console.log(e.target.dataset);
    wx.navigateTo({
      url: '/pages/consult/detail',
    })
  },
  cateClick(e) {
    const { index } = e.target.dataset
    console.log(index);
  },
  seCateClick(e) {
    const { index } = e.target.dataset
    console.log(index);
  },
  onLoad(options) {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
  }
})
wechat_jiaxuan/pages/homeId/index.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
{
  "navigationBarTitleText": "家的ID"
}
wechat_jiaxuan/pages/homeId/index.less
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
.container {
  background-color: #fff;
}
.search_wrap{
  width: 670rpx;
  height: 72rpx;
  margin: 24rpx auto;
  background: #F7F7F7;
  border-radius: 8rpx;
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  background-color: #F7F7F7;
  image{
    width: 28rpx;
    margin-right: 16rpx;
  }
}
.scroll_cate {
  display: flex;
  align-items: center;
  margin-left: 40rpx;
  height: 60rpx;
  .item {
    margin-right: 54rpx;
    color: #666666;
    flex-shrink: 0;
  }
  .active {
    color: #222222;
    font-weight: 500;
    font-size: 30rpx;
  }
}
.second_list {
  .item {
    padding: 0 40rpx;
    display: flex;
    align-items: center;
    font-size: 24rpx;
    color: #333333;
    height: 60rpx;
    background: #F7F7F7;
    border-radius: 8rpx;
    margin-right: 24rpx;
  }
  .active{
    background-color: var(--themeColor);
    color: #fff;
    font-size: 24rpx;
    font-weight: 400;
  }
}
.content{
  padding: 0 40rpx 40rpx;
  .item{
    .img{
      width: 100%;
    }
    .title{
      font-size: 30rpx;
      color: #111111;
      margin: 24rpx 0 12rpx;
    }
    .static{
      font-size: 24rpx;
      color: #999999;
      .liulan{
        width: 26rpx;
        margin-right: 10rpx;
      }
    }
  }
}
wechat_jiaxuan/pages/homeId/index.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
<view class="container">
  <!-- åˆ†ç±» -->
  <view>
    <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 30rpx;">
      <view class="scroll_cate">
        <view bindtap="cateClick" data-index="{{index}}" wx:for="{{ category }}" class="item {{ index == 0 ? 'active': '' }}">{{ item }}</view>
      </view>
    </scroll-view>
  </view>
  <!-- content -->
  <view class="content">
    <view class="item" bindtap="itemClick" data-abg="qwe">
      <image class="img" src="../../static/icon/test.png" mode="widthFix"></image>
      <view class="title">吊灯实用特辑 | ä¸€æ­¥å­¦ä¼šç†æƒ³å…‰å½±å¸ƒå±€</view>
      <view class="df_sb static">
        <view>{{ '2021-08-21 12:00:00' }}</view>
        <view class="df_sb">
          <image class="liulan" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image>
          <text>1000</text>
        </view>
      </view>
    </view>
  </view>
</view>
wechat_jiaxuan/pages/homeId/index.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
.container {
  background-color: #fff;
}
.search_wrap {
  width: 670rpx;
  height: 72rpx;
  margin: 24rpx auto;
  background: #F7F7F7;
  border-radius: 8rpx;
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  background-color: #F7F7F7;
}
.search_wrap image {
  width: 28rpx;
  margin-right: 16rpx;
}
.scroll_cate {
  display: flex;
  align-items: center;
  margin-left: 40rpx;
  height: 60rpx;
}
.scroll_cate .item {
  margin-right: 54rpx;
  color: #666666;
  flex-shrink: 0;
}
.scroll_cate .active {
  color: #222222;
  font-weight: 500;
  font-size: 30rpx;
}
.second_list .item {
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  font-size: 24rpx;
  color: #333333;
  height: 60rpx;
  background: #F7F7F7;
  border-radius: 8rpx;
  margin-right: 24rpx;
}
.second_list .active {
  background-color: var(--themeColor);
  color: #fff;
  font-size: 24rpx;
  font-weight: 400;
}
.content {
  padding: 0 40rpx 40rpx;
}
.content .item .img {
  width: 100%;
}
.content .item .title {
  font-size: 30rpx;
  color: #111111;
  margin: 24rpx 0 12rpx;
}
.content .item .static {
  font-size: 24rpx;
  color: #999999;
}
.content .item .static .liulan {
  width: 26rpx;
  margin-right: 10rpx;
}
wechat_jiaxuan/pages/index/index.js
@@ -1,4 +1,4 @@
// pages/index/index.js
import { getDictData } from '../../api/index'
Page({
  /**
@@ -24,11 +24,15 @@
      interval: 3000,
      duration: 500
    },
    HOME_CLASS_A: '',
    HOME_CLASS_B: '',
    HOME_CLASS_B2: '',
    HOME_CLASS_C: '',
  },
  toSearch() {},
  onLoad(options) {
    this.initData()
  },
  changePath(e) {
    let index = e.currentTarget.dataset.type
@@ -40,7 +44,7 @@
          success: function (res) {
            // é€šè¿‡eventChannel向被打开页面传送数据
            res.eventChannel.emit('acceptDataFromOpenerPage', { link: 'https://m.zbom.com/mobile/styleTest.html?type=1' })
            saveBehavior({ type: 1 })
            // saveBehavior({ type: 1 })
          }
        })
        break;
@@ -69,6 +73,47 @@
        break;
    }
  },
  initData() {
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'HOME_CLASS_A'
    }).then(res => {
      this.setData({ HOME_CLASS_A: res.data.code })
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'HOME_CLASS_B'
    }).then(res => {
      this.setData({ HOME_CLASS_B: res.data.code })
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'HOME_CLASS_B2'
    }).then(res => {
      this.setData({ HOME_CLASS_B2: res.data.code })
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'HOME_CLASS_C'
    }).then(res => {
      this.setData({ HOME_CLASS_C: res.data.code })
    })
  },
  jumpProVideo() {
    wx.navigateTo({
      url: '/pages/productVideo/index',
    })
  },
  jumpProKefu() {
    wx.navigateTo({
      url: '/pages/kefu/index',
    })
  },
  jumpProConsult() {
    wx.switchTab({
      url: '/pages/consult/consult',
    })
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
wechat_jiaxuan/pages/index/index.less
@@ -64,7 +64,6 @@
        width: 72rpx;
        height: 72rpx;
        background: #FFFFFF;
        border: 1px solid;
        border-radius: 50%;
      }
wechat_jiaxuan/pages/index/index.wxml
@@ -19,25 +19,25 @@
  <!--  -->
  <view class="function_wrap">
    <view class="item" data-type="0" bindtap="changePath">
      <image class="img" src="../../static/icon/test.png"></image>
      <image class="img" src="../../static/icon/home_ic_xuqiu@2x.png"></image>
      <view class="name">需求</view>
      <view class="placeholder9">分析小帮手</view>
    </view>
    <view class="item" data-type="2" bindtap="changePath">
      <image class="img" src="../../static/icon/test.png"></image>
      <image class="img" src="../../static/icon/home_ic_liangchi@2x.png"></image>
      <view class="name">免费量尺</view>
      <view class="placeholder9">分析小帮手</view>
    </view>
    <view class="item" data-type="1" bindtap="changePath">
      <image class="img" src="../../static/icon/test.png"></image>
      <image class="img" src="../../static/icon/home_ic_yusuan@2x.png"></image>
      <view class="name">预算</view>
      <view class="placeholder9">快速获取报价</view>
    </view>
  </view>
  <!--  -->
  <authCard />
  <authCard type="1" />
  <!-- äº§å“è§†é¢‘  -->
  <view class="product_video">
  <view class="product_video" bindtap="jumpProVideo">
    <view class="com_header">
      <view class="left">
        <view class="name">
@@ -63,19 +63,19 @@
    </view>
    <view class="line">
      <view class="line_left">
        <image src="../../static/images/home_class_a@2x.png"></image>
        <image src="{{HOME_CLASS_A}}"></image>
      </view>
      <view class="line_right">
        <view class="item"><image src="../../static/images/home_class_b@2x.png"></image></view>
        <view class="item"><image src="../../static/images/home_class_b2@2x.png"></image></view>
        <view class="item"><image src="{{ HOME_CLASS_B }}"></image></view>
        <view class="item"><image src="{{ HOME_CLASS_B2 }}"></image></view>
      </view>
    </view>
    <view class="home_id">
      <image src="../../static/images/home_class_c@2x.png"></image>
      <image src="{{HOME_CLASS_C}}"></image>
    </view>
  </view>
  <!-- å’¨è¯¢ -->
  <view class="consult">
  <view class="consult" bindtap="jumpProConsult">
    <view class="com_header">
      <view class="left">
        <view class="name">
@@ -95,7 +95,7 @@
  </swiper>
  </view>
  <!-- service -->
  <view class="consult">
  <view class="consult" bindtap="jumpProKefu">
    <view class="com_header">
      <view class="left">
        <view class="name">
@@ -118,6 +118,6 @@
    <image src="../../static/icon/home_logo@2x.png" class="logo" mode="widthFix"></image>
  </view>
  <!-- active -->
  <image class="active_baoming" src="../../static/icon/ic_float_baoming@2x.png" mode="widthFix"></image>
  <image class="active_baoming" data-type="2" bindtap="changePath" src="../../static/icon/ic_float_baoming@2x.png" mode="widthFix"></image>
</view>
wechat_jiaxuan/pages/index/index.wxss
@@ -59,7 +59,6 @@
  width: 72rpx;
  height: 72rpx;
  background: #FFFFFF;
  border: 1px solid;
  border-radius: 50%;
}
.container .function_wrap .item .name {
wechat_jiaxuan/pages/kefu/fond.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
// pages/kefu/fond.js
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    bottomLift: 0
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
    var app = getApp().globalData
    this.setData({
      bottomLift: app.bottomLift
    })
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
  }
})
wechat_jiaxuan/pages/kefu/fond.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
{
  "usingComponents": {},
  "navigationBarTitleText": "客户喜欢"
}
wechat_jiaxuan/pages/kefu/fond.less
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,105 @@
page{
  background-color: #f7f7f7;
  padding-bottom: 220rpx;
}
.date_item{
  .date{
    display: flex;
    font-weight: 500;
    font-size: 32rpx;
    color: #222222;
    height: 108rpx;
    align-items: center;
    padding: 0 22rpx;
  }
  .list{
    padding: 30rpx 22rpx 1rpx;
    background-color: #fff;
  }
  .line{
    display: flex;
    align-items: center;
    height: 120rpx;
    margin-bottom: 30rpx;
    .icon{
      width: 40rpx;
    }
    .content{
      flex: 1;
      height: 100%;
      display: flex;
      flex-direction: column;
      justify-content: space-between;
      .name{
        width: 100%;
        font-size: 30rpx;
        overflow : hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
      }
      .time{
        font-size: 24rpx;
        color: #999999;
      }
    }
    .img{
      width: 214rpx;
      height: 120rpx;
      border-radius: 8rpx;
      margin-left: 26rpx;
      margin-right: 20rpx;
      border: 1px solid;
    }
  }
}
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
  .btns{
    display: flex;
    align-items: center;
    height: 100rpx;
    padding: 12rpx 40rpx;
    .all_sel{
      display: flex;
      width: 160rpx;
      .icon{
        width: 40rpx;
        margin-right: 18rpx;
      }
    }
    .list{
      flex: 1;
      display: flex;
      align-items: center;
      .item {
        display: flex;
        justify-content: center;
        align-items: center;
        height: 72rpx;
        width: 152rpx;
        font-weight: 500;
        color: #777777;
        border: 1rpx solid #999999;
        margin-left: 20rpx;
        font-style: 28rpx;
        border-radius: 8rpx;
      }
      .paina{
        color: var(--themeColor);
        border: 1rpx solid var(--themeColor);
      }
      .primary{
        color: #fff !important;
        border: 1rpx solid var(--themeColor);
        background-color: var(--themeColor);
      }
    }
  }
}
wechat_jiaxuan/pages/kefu/fond.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
<view class="container">
  <view class="date_item">
    <view class="date">2024å¹´07月10日</view>
    <view class="list">
      <view class="line">
        <image class="icon" src="../../static/icon/ic_select_sel@2x.png" mode="widthFix"></image>
        <image class="icon" src="../../static/icon/ic_select@2x.png" mode="widthFix"></image>
        <image class="img" src=""></image>
        <view class="content">
          <view class="name">简约轻奢|万科公园里,已光为媒简约轻奢|万科公园里,已光为媒简约轻奢|万科公园里,已光为媒</view>
          <view class="time">18:00</view>
        </view>
      </view>
    </view>
  </view>
  <!-- footer -->
  <view class="footer" style="padding-bottom: {{bottomLift}}px;">
    <view class="btns">
      <view class="all_sel">
        <image class="icon" src="../../static/icon/ic_select_sel@2x.png" mode="widthFix"></image>
        <text>全选</text>
      </view>
      <view class="list">
        <view class="item">删除</view>
        <view class="item paina">关联</view>
        <view class="item primary">分享</view>
      </view>
    </view>
  </view>
</view>
wechat_jiaxuan/pages/kefu/fond.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
page {
  background-color: #f7f7f7;
  padding-bottom: 220rpx;
}
.date_item .date {
  display: flex;
  font-weight: 500;
  font-size: 32rpx;
  color: #222222;
  height: 108rpx;
  align-items: center;
  padding: 0 22rpx;
}
.date_item .list {
  padding: 30rpx 22rpx 1rpx;
  background-color: #fff;
}
.date_item .line {
  display: flex;
  align-items: center;
  height: 120rpx;
  margin-bottom: 30rpx;
}
.date_item .line .icon {
  width: 40rpx;
}
.date_item .line .content {
  flex: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.date_item .line .content .name {
  width: 100%;
  font-size: 30rpx;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.date_item .line .content .time {
  font-size: 24rpx;
  color: #999999;
}
.date_item .line .img {
  width: 214rpx;
  height: 120rpx;
  border-radius: 8rpx;
  margin-left: 26rpx;
  margin-right: 20rpx;
  border: 1px solid;
}
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
}
.footer .btns {
  display: flex;
  align-items: center;
  height: 100rpx;
  padding: 12rpx 40rpx;
}
.footer .btns .all_sel {
  display: flex;
  width: 160rpx;
}
.footer .btns .all_sel .icon {
  width: 40rpx;
  margin-right: 18rpx;
}
.footer .btns .list {
  flex: 1;
  display: flex;
  align-items: center;
}
.footer .btns .list .item {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 72rpx;
  width: 152rpx;
  font-weight: 500;
  color: #777777;
  border: 1rpx solid #999999;
  margin-left: 20rpx;
  font-style: 28rpx;
  border-radius: 8rpx;
}
.footer .btns .list .paina {
  color: var(--themeColor);
  border: 1rpx solid var(--themeColor);
}
.footer .btns .list .primary {
  color: #fff !important;
  border: 1rpx solid var(--themeColor);
  background-color: var(--themeColor);
}
wechat_jiaxuan/pages/kefu/index.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,69 @@
// pages/kefu/index.js
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    bottomLift: 0
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
    var app = getApp().globalData
    this.setData({
      bottomLift: app.bottomLift
    })
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
  }
})
wechat_jiaxuan/pages/kefu/index.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
{
  "usingComponents": {},
  "navigationBarTitleText": "专属客服"
}
wechat_jiaxuan/pages/kefu/index.less
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
  .btns{
    display: flex;
    align-items: center;
    height: 100rpx;
    padding: 12rpx 40rpx;
  }
  .sub_btn {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 72rpx;
    width: 152rpx;
    background-color: var(--themeColor);
    font-weight: 500;
    color: #FFFFFF;
    font-style: 28rpx;
    box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(176,135,113,0.3), inset 0rpx 2rpx 2rpx 0rpx rgba(255,255,255,0.33);
    border-radius: 8rpx;
    .icon{
      width: 34rpx;
      margin-right: 8rpx;
    }
  }
  .item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 20rpx;
    color: #666666;
    margin-right: 48rpx;
    .icon {
      width: 44rpx;
    }
  }
}
wechat_jiaxuan/pages/kefu/index.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
<view class="container">
  <!-- footer -->
  <view class="footer" style="padding-bottom: {{bottomLift}}px;">
    <view class="btns">
        <view class="item">
          <image class="icon" src="../../static/icon/detail_nav_share.png" mode="widthFix"></image>
          <view class="name">分享</view>
        </view>
      <view class="sub_btn">
        <image class="icon" src="../../static/icon/home_ic_kefu.png" mode="widthFix"></image>
        <view>立即咨询客服</view>
      </view>
    </view>
  </view>
</view>
wechat_jiaxuan/pages/kefu/index.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,44 @@
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
}
.footer .btns {
  display: flex;
  align-items: center;
  height: 100rpx;
  padding: 12rpx 40rpx;
}
.footer .sub_btn {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 72rpx;
  width: 152rpx;
  background-color: var(--themeColor);
  font-weight: 500;
  color: #FFFFFF;
  font-style: 28rpx;
  box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(176, 135, 113, 0.3), inset 0rpx 2rpx 2rpx 0rpx rgba(255, 255, 255, 0.33);
  border-radius: 8rpx;
}
.footer .sub_btn .icon {
  width: 34rpx;
  margin-right: 8rpx;
}
.footer .item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 20rpx;
  color: #666666;
  margin-right: 48rpx;
}
.footer .item .icon {
  width: 44rpx;
}
wechat_jiaxuan/pages/kefu/select.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,85 @@
// pages/discover/discover.js
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    activeTabs: '0',
    bottomLift: 0
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
    var app = getApp().globalData
    this.setData({
      bottomLift: app.bottomLift
    })
  },
  tabsClick(e) {
    const activeTabs = e.currentTarget.dataset.tab
    this.setData({activeTabs})
  },
  handleSub() {
    console.log('点击饿了');
    wx.canvasToTempFilePath({
      x: 100,
      y: 200,
      width: 50,
      height: 50,
      destWidth: 100,
      destHeight: 100,
      canvasId: 'myCanvas',
      success(res) {
        console.log(res.tempFilePath)
      }
    })
  },
  onReady() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
  }
})
wechat_jiaxuan/pages/kefu/select.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
{
  "usingComponents": {},
  "navigationBarTitleText": "选择客户"
}
wechat_jiaxuan/pages/kefu/select.less
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
page{
  background-color: #f7f7f7;
}
.main_tab{
  width: 100%;
  display: flex;
  align-items: flex-end;
  height: 88rpx;
  background-color: #fff;
  padding: 0 40rpx;
  .item{
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-size: 32rpx;
    color: #555555;
    margin-right: 60rpx;
    .name{}
    .border{
      width: 40rpx;
      height: 6rpx;
      background-color: #fff;
      border-radius: 3rpx;
      margin-top: 16rpx;
    }
  }
  .active{
    font-weight: 600;
    font-size: 38rpx;
    color: #222222;
    .border{
      background: #F4CA1C;
    }
  }
}
.search_wrap {
  width: 750rpx;
  height: 100rpx;
  padding: 0rpx 40rpx;
  border-radius: 8rpx;
  display: flex;
  align-items: center;
  background-color: #fff;
  .input_wrap{
    flex: 1;
    height: 72rpx;
    background-color: #f7f7f7;
    padding-left: 40rpx;
    display: flex;
    align-items: center;
    font-size: 26rpx;
    input{
      width: 100%;
    }
    .icon{
      width: 26rpx;
      margin-top: 4rpx;
      margin-right: 16rpx;
    }
  }
  .kehu{
    width: 48rpx;
    margin-left: 30rpx;
  }
}
.list{
  padding: 0 40rpx;
  background-color: #fff;
  .line{
    display: flex;
    align-items: center;
    height: 148rpx;
    border-bottom: 1rpx solid #e5e5e5;
    &:nth-last-child(1){
      border: none;
    }
    .icon{
      width: 40rpx;
      margin-right: 30rpx;
    }
    .avatar{
      width: 88rpx;
      height: 88rpx;
      border-radius: 50%;
      border: 1px solid;
      margin-right: 20rpx;
    }
    .content{
      flex: 1;
      .header{
        display: flex;
        justify-content: space-between;
        .left{
          display: flex;
          align-items: center;
          .name{
            font-weight: 500;
            font-size: 30rpx;
            color: #111111;
            margin-right: 10rpx;
          }
          .tag{
            font-size: 24rpx;
            color: #57BE6A;
          }
        }
        .remark{
          font-size: 26rpx;
          color: #666666;
        }
      }
      .desc{
        display: flex;
        justify-content: space-between;
        font-size: 24rpx;
        color: #999999;
        margin-top: 14rpx;
      }
    }
  }
}
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
  .btns{
    background-color: #f7f7f7;
    display: flex;
    align-items: center;
    height: 102rpx;
    padding: 14rpx 40rpx 0;
    .btn {
      flex: 1;
      display: flex;
      justify-content: center;
      align-items: center;
      height: 88rpx;
      width: 152rpx;
      font-weight: 500;
      color: #777777;
      border: 1rpx solid #999999;
      margin-left: 20rpx;
      font-style: 28rpx;
      border-radius: 8rpx;
      color: #fff !important;
      border: 1rpx solid var(--themeColor);
      background-color: var(--themeColor);
    }
  }
}
wechat_jiaxuan/pages/kefu/select.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
<view class="container" id="myCanvas">
  <view class="main_tab">
    <view class="item {{ activeTabs == '0' ? 'active' : '' }}" data-tab="0" bindtap="tabsClick">
      <view class="name">客户列表</view>
      <view class="border"></view>
    </view>
    <view class="item {{ activeTabs == '1' ? 'active' : '' }}" data-tab="1" bindtap="tabsClick">
      <view class="name">潜客列表</view>
      <view class="border"></view>
    </view>
  </view>
  <!--  -->
  <view class="search_wrap">
    <view class="input_wrap">
      <image class="icon" src="../../static/icon/ic_search@2x.png" mode="widthFix"></image>
      <input type="text" placeholder="搜索客户昵称、导购、备注名" />
    </view>
    <image class="kehu" src="../../static/icon/kehu_ic_new@2x.png" mode="widthFix"></image>
  </view>
  <!--  -->
  <view class="list">
    <view class="line">
      <image class="icon" src="../../static/icon/ic_video@2x.png" mode="widthFix"></image>
      <image class="icon" src="../../static/icon/ic_select@2x.png" mode="widthFix"></image>
      <image class="avatar" src=""></image>
      <view class="content">
        <view class="header">
          <view class="left">
            <view class="name">王德发</view>
            <view class="tag">@微信</view>
          </view>
          <view class="remark">备注名:王哥</view>
        </view>
        <view class="desc">
          <view>导购:王某某</view>
          <view>创建时间:2002</view>
        </view>
      </view>
    </view>
    <view class="line">
      <image class="icon" src="../../static/icon/ic_video@2x.png" mode="widthFix"></image>
      <image class="icon" src="../../static/icon/ic_select@2x.png" mode="widthFix"></image>
      <image class="avatar" src=""></image>
      <view class="content">
        <view class="header">
          <view class="left">
            <view class="name">王德发</view>
            <view class="tag">@微信</view>
          </view>
          <view class="remark">备注名:王哥</view>
        </view>
        <view class="desc">
          <view>导购:王某某</view>
          <view>创建时间:2002</view>
        </view>
      </view>
    </view>
  </view>
  <!-- footer -->
  <view class="footer" style="padding-bottom: {{bottomLift}}px;">
    <view class="btns">
      <view class="btn" bindtap="handleSub">确认关联</view>
    </view>
  </view>
</view>
wechat_jiaxuan/pages/kefu/select.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,154 @@
page {
  background-color: #f7f7f7;
}
.main_tab {
  width: 100%;
  display: flex;
  align-items: flex-end;
  height: 88rpx;
  background-color: #fff;
  padding: 0 40rpx;
}
.main_tab .item {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 32rpx;
  color: #555555;
  margin-right: 60rpx;
}
.main_tab .item .border {
  width: 40rpx;
  height: 6rpx;
  background-color: #fff;
  border-radius: 3rpx;
  margin-top: 16rpx;
}
.main_tab .active {
  font-weight: 600;
  font-size: 38rpx;
  color: #222222;
}
.main_tab .active .border {
  background: #F4CA1C;
}
.search_wrap {
  width: 750rpx;
  height: 100rpx;
  padding: 0rpx 40rpx;
  border-radius: 8rpx;
  display: flex;
  align-items: center;
  background-color: #fff;
}
.search_wrap .input_wrap {
  flex: 1;
  height: 72rpx;
  background-color: #f7f7f7;
  padding-left: 40rpx;
  display: flex;
  align-items: center;
  font-size: 26rpx;
}
.search_wrap .input_wrap input {
  width: 100%;
}
.search_wrap .input_wrap .icon {
  width: 26rpx;
  margin-top: 4rpx;
  margin-right: 16rpx;
}
.search_wrap .kehu {
  width: 48rpx;
  margin-left: 30rpx;
}
.list {
  padding: 0 40rpx;
  background-color: #fff;
}
.list .line {
  display: flex;
  align-items: center;
  height: 148rpx;
  border-bottom: 1rpx solid #e5e5e5;
}
.list .line:nth-last-child(1) {
  border: none;
}
.list .line .icon {
  width: 40rpx;
  margin-right: 30rpx;
}
.list .line .avatar {
  width: 88rpx;
  height: 88rpx;
  border-radius: 50%;
  border: 1px solid;
  margin-right: 20rpx;
}
.list .line .content {
  flex: 1;
}
.list .line .content .header {
  display: flex;
  justify-content: space-between;
}
.list .line .content .header .left {
  display: flex;
  align-items: center;
}
.list .line .content .header .left .name {
  font-weight: 500;
  font-size: 30rpx;
  color: #111111;
  margin-right: 10rpx;
}
.list .line .content .header .left .tag {
  font-size: 24rpx;
  color: #57BE6A;
}
.list .line .content .header .remark {
  font-size: 26rpx;
  color: #666666;
}
.list .line .content .desc {
  display: flex;
  justify-content: space-between;
  font-size: 24rpx;
  color: #999999;
  margin-top: 14rpx;
}
.footer {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 750rpx;
  background-color: #fff;
  box-shadow: 0rpx -1rpx 0rpx 0rpx #EEEEEE;
}
.footer .btns {
  background-color: #f7f7f7;
  display: flex;
  align-items: center;
  height: 102rpx;
  padding: 14rpx 40rpx 0;
}
.footer .btns .btn {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 88rpx;
  width: 152rpx;
  font-weight: 500;
  color: #777777;
  border: 1rpx solid #999999;
  margin-left: 20rpx;
  font-style: 28rpx;
  border-radius: 8rpx;
  color: #fff !important;
  border: 1rpx solid var(--themeColor);
  background-color: var(--themeColor);
}
wechat_jiaxuan/pages/mine/mine.js
@@ -1,12 +1,16 @@
// pages/mine/mine.js
import { getMemberInfo, getDictData } from '../../api/index'
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    clientHeight: 0,
    clientTop: 0,
    member: {},
    housetype: '',
    IMG_LIUCHENG: '',
    MINE_BG: ''
  },
  /**
@@ -16,11 +20,49 @@
    const res = wx.getMenuButtonBoundingClientRect()
    this.setData({clientHeight: res.height})
    this.setData({clientTop: res.top})
    this.initData()
  },
  initData() {
    getMemberInfo().then(res => {
      this.setData({member: res.data})
      if(res.data.housetype){
        const temp = res.data.housetype.split('-')
        let houseType = {
          val1: temp[0],
          val2: temp[1],
          val3: temp[2],
          val4: temp[3],
          val5: temp[4],
        }
        this.setData({houseType})
      }
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'IMG_LIUCHENG'
    }).then(res => {
      this.setData({ IMG_LIUCHENG: res.data.code })
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'MINE_BG'
    }).then(res => {
      this.setData({ MINE_BG: res.data.code })
    })
  },
  changePath(e) {
    // é¡µé¢è·³è½¬
    let temp = ['mysub', 'collect', 'favorite', 'index']
    let temp = ['mysub', 'collect', 'favorite','index']
    const index = e.currentTarget.dataset.index
    if(index == '4'){
    }
    if(index == '5'){
      wx.navigateTo({
        url: `/pages/sets/index`,
      })
    }
    wx.navigateTo({
      url: `/pages/userinfo/${temp[index]}`,
    })
wechat_jiaxuan/pages/mine/mine.less
@@ -1,6 +1,11 @@
.container {
  background-color: #aca9a6;
  .mine_bg{
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: -1;
  }
  .navbar {
    padding-left: 30rpx;
    font-weight: 600;
@@ -72,4 +77,23 @@
      }
    }
  }
}
.liucheng{
  width: 100%;
  padding: 0rpx 40rpx 120rpx;
  text-align: center;
  .h1{
    margin-bottom: 16rpx;
    font-weight: 600;
    font-size: 36rpx;
  }
  .h2{
    font-weight: 300;
    font-size: 26rpx;
    color: #333333;
    margin-bottom: 40rpx;
  }
  .img{
    width: 100%;
  }
}
wechat_jiaxuan/pages/mine/mine.wxml
@@ -1,14 +1,22 @@
<view class="container">
  <view class="navbar" style="padding-top: {{ clientTop }}px;height: {{clientHeight + clientTop}}px;">我的家</view>
  <image class="mine_bg" src="{{ MINE_BG }}" mode="widthFix"></image>
  <view class="userinfo">
    <image class="avatar" src=""></image>
    <image class="avatar" src="{{ imgurlFull ? imgurlFull : '../../static/images/default_avatar.png' }}"></image>
    <view class="content">
      <view class="header">
        <view class="name">苏灿</view>
        <view class="name">{{ member.nickname }}</view>
        <view data-index="3" bindtap="changePath" class="edit">编辑</view>
      </view>
      <view class="addr">合肥莲花小区</view>
      <view class="detail">120m² ï½œ3室1厅1厨1卫</view>
      <view class="addr">{{ member.district || '' }}</view>
      <view class="detail">
        <text wx:if="{{member.housearea}}">{{ member.housearea }}m²|</text>
        <text class="item" wx:if="{{ houseType.val1 }}">{{ houseType.val1 }}室</text>
        <text class="item" wx:if="{{ houseType.val2 }}">{{ houseType.val2 }}厅</text>
        <text class="item" wx:if="{{ houseType.val3 }}">{{ houseType.val3 }}厨</text>
        <text class="item" wx:if="{{ houseType.val4 }}">{{ houseType.val4 }}卫</text>
        <text class="item" wx:if="{{ houseType.val5 }}">{{ houseType.val5 }}阳</text>
      </view>
    </view>
  </view>
  <view class="main_content">
@@ -27,14 +35,19 @@
      </view>
    </view>
    <view class="func_list">
      <view class="line">
      <view class="line" data-index="4" bindtap="changePath">
        <view class="name">员工绑定</view>
        <image class="icon" src="../../static/icon/mine_ic_ar.png" mode="widthFix"></image>
      </view>
      <view class="line">
      <view class="line" data-index="5" bindtap="changePath">
        <view class="name">更多设置</view>
        <image class="icon" src="../../static/icon/mine_ic_ar.png" mode="widthFix"></image>
      </view>
    </view>
  </view>
  <view class="liucheng">
    <view class="h1">服务流程</view>
    <view class="h2">专注厨房 æ›´æ‡‚生活</view>
    <image class="img" src="{{ IMG_LIUCHENG }}" mode="widthFix"></image>
  </view>
</view>
wechat_jiaxuan/pages/mine/mine.wxss
@@ -1,5 +1,9 @@
.container {
  background-color: #aca9a6;
.container .mine_bg {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: -1;
}
.container .navbar {
  padding-left: 30rpx;
@@ -65,3 +69,22 @@
.container .main_content .func_list .line .icon {
  width: 40rpx;
}
.liucheng {
  width: 100%;
  padding: 0rpx 40rpx 120rpx;
  text-align: center;
}
.liucheng .h1 {
  margin-bottom: 16rpx;
  font-weight: 600;
  font-size: 36rpx;
}
.liucheng .h2 {
  font-weight: 300;
  font-size: 26rpx;
  color: #333333;
  margin-bottom: 40rpx;
}
.liucheng .img {
  width: 100%;
}
wechat_jiaxuan/pages/productVideo/index.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,82 @@
// pages/consult/consult.js
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    category: ['新品上市', '专利证书', '大牌授权','新品上市', '专利证书', '大牌授权'],
    secondCategory: ['级分类','级分类','级分类','级分类','级分类','级分类'],
    activeCate: '',
    seActiveCate: '',
    dataList: []
  },
  itemClick(e) {
    const { id } = e.target.dataset
    console.log(e.target.dataset);
    wx.navigateTo({
      url: '/pages/consult/detail',
    })
  },
  cateClick(e) {
    const { index } = e.target.dataset
    console.log(index);
  },
  seCateClick(e) {
    const { index } = e.target.dataset
    console.log(index);
  },
  onLoad(options) {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面显示
   */
  onShow() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面隐藏
   */
  onHide() {
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面卸载
   */
  onUnload() {
  },
  /**
   * é¡µé¢ç›¸å…³äº‹ä»¶å¤„理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
  },
  /**
   * é¡µé¢ä¸Šæ‹‰è§¦åº•事件的处理函数
   */
  onReachBottom() {
  },
  /**
   * ç”¨æˆ·ç‚¹å‡»å³ä¸Šè§’分享
   */
  onShareAppMessage() {
  }
})
wechat_jiaxuan/pages/productVideo/index.json
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,3 @@
{
  "navigationBarTitleText": "产品视频"
}
wechat_jiaxuan/pages/productVideo/index.less
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
.container {
  background-color: #fff;
}
.search_wrap{
  width: 670rpx;
  height: 72rpx;
  margin: 24rpx auto;
  background: #F7F7F7;
  border-radius: 8rpx;
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  background-color: #F7F7F7;
  image{
    width: 28rpx;
    margin-right: 16rpx;
  }
}
.scroll_cate {
  display: flex;
  align-items: center;
  margin-left: 40rpx;
  height: 60rpx;
  .item {
    margin-right: 54rpx;
    color: #666666;
    flex-shrink: 0;
  }
  .active {
    color: #222222;
    font-weight: 500;
    font-size: 30rpx;
  }
}
.second_list {
  .item {
    padding: 0 40rpx;
    display: flex;
    align-items: center;
    font-size: 24rpx;
    color: #333333;
    height: 60rpx;
    background: #F7F7F7;
    border-radius: 8rpx;
    margin-right: 24rpx;
  }
  .active{
    background-color: var(--themeColor);
    color: #fff;
    font-size: 24rpx;
    font-weight: 400;
  }
}
.content{
  padding: 0 40rpx 40rpx;
  .item{
    .img{
      width: 100%;
    }
    .title{
      font-size: 30rpx;
      color: #111111;
      margin: 24rpx 0 12rpx;
    }
    .static{
      font-size: 24rpx;
      color: #999999;
      .liulan{
        width: 26rpx;
        margin-right: 10rpx;
      }
    }
  }
}
wechat_jiaxuan/pages/productVideo/index.wxml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
<view class="container">
  <view class="search_wrap">
    <image src="../../static/icon/ic_search@2x.png" mode="widthFix"></image>
    <input type="text" placeholder="搜索咨询标题" />
  </view>
  <!-- åˆ†ç±» -->
  <view>
    <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 30rpx;">
      <view class="scroll_cate">
        <view bindtap="cateClick" data-index="{{index}}" wx:for="{{ category }}" class="item {{ index == 0 ? 'active': '' }}">{{ item }}</view>
      </view>
    </scroll-view>
    <scroll-view scroll-x="true" style="weight: 710rpx;margin-bottom: 28rpx;">
      <view class="scroll_cate second_list">
        <view bindtap="seCateClick" data-index="{{index}}" wx:for="{{ secondCategory }}" class="item {{ index == 0 ? 'active': '' }}">{{ index }}{{ item }}</view>
      </view>
    </scroll-view>
  </view>
  <!-- content -->
  <view class="content">
    <view class="item" bindtap="itemClick" data-abg="qwe">
      <image class="img" src="../../static/icon/test.png" mode="widthFix"></image>
      <view class="title">吊灯实用特辑 | ä¸€æ­¥å­¦ä¼šç†æƒ³å…‰å½±å¸ƒå±€</view>
      <view class="df_sb static">
        <view>{{ '2021-08-21 12:00:00' }}</view>
        <view class="df_sb">
          <image class="liulan" src="../../static/icon/zixun_ic_liulan.png" mode="widthFix"></image>
          <text>1000</text>
        </view>
      </view>
    </view>
  </view>
</view>
wechat_jiaxuan/pages/productVideo/index.wxss
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
.container {
  background-color: #fff;
}
.search_wrap {
  width: 670rpx;
  height: 72rpx;
  margin: 24rpx auto;
  background: #F7F7F7;
  border-radius: 8rpx;
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  background-color: #F7F7F7;
}
.search_wrap image {
  width: 28rpx;
  margin-right: 16rpx;
}
.scroll_cate {
  display: flex;
  align-items: center;
  margin-left: 40rpx;
  height: 60rpx;
}
.scroll_cate .item {
  margin-right: 54rpx;
  color: #666666;
  flex-shrink: 0;
}
.scroll_cate .active {
  color: #222222;
  font-weight: 500;
  font-size: 30rpx;
}
.second_list .item {
  padding: 0 40rpx;
  display: flex;
  align-items: center;
  font-size: 24rpx;
  color: #333333;
  height: 60rpx;
  background: #F7F7F7;
  border-radius: 8rpx;
  margin-right: 24rpx;
}
.second_list .active {
  background-color: var(--themeColor);
  color: #fff;
  font-size: 24rpx;
  font-weight: 400;
}
.content {
  padding: 0 40rpx 40rpx;
}
.content .item .img {
  width: 100%;
}
.content .item .title {
  font-size: 30rpx;
  color: #111111;
  margin: 24rpx 0 12rpx;
}
.content .item .static {
  font-size: 24rpx;
  color: #999999;
}
.content .item .static .liulan {
  width: 26rpx;
  margin-right: 10rpx;
}
wechat_jiaxuan/pages/sets/index.js
@@ -1,4 +1,4 @@
// pages/sets/index.js
import { wxLogOff } from '../../api/index'
Page({
  /**
@@ -20,9 +20,20 @@
  onClose() {
    this.setData({show: false})
  },
  changeDeal(){
  onSubLgout() {
    wxLogOff().then(res => {
      wx.removeStorageSync('token')
      wx.removeStorageSync('member')
      wx.removeStorageSync('code')
      wx.redirectTo({
        url: '/pages/index/index',
      })
    })
  },
  changeDeal(e){
    const { label } = e.currentTarget.dataset
    wx.navigateTo({
      url: '/pages/sets/protocol',
      url: '/pages/sets/protocol?label=' + label,
    })
  },
wechat_jiaxuan/pages/sets/index.wxml
@@ -1,10 +1,10 @@
<view class="container">
  <view class="list">
    <view class="line" bindtap="changeDeal">
    <view class="line" data-label="SERVER_AGREEMENT" bindtap="changeDeal">
      <view class="name">《ZBOM用户服务协议》</view>
      <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
    </view>
    <view class="line" bindtap="changeDeal">
    <view class="line" data-label="PRIVACY_AGREEMENT" bindtap="changeDeal">
      <view class="name">《ZBOM用户隐私协议》</view>
      <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
    </view>
@@ -19,7 +19,7 @@
        <view class="title">注销提醒</view>
        <view class="text">如您不再使用此账号,可以将其注销。账号成功注销后,其下所有数据将会被删除并将无法恢复,请谨慎操作</view>
        <view class="btns">
          <view class="btn">确认注销</view>
          <view class="btn" bindtap="onSubLgout">确认注销</view>
          <view class="btn cancel" bindtap="onClose">还是算了</view>
        </view>
    </view>
wechat_jiaxuan/pages/sets/protocol.js
@@ -1,25 +1,36 @@
// pages/sets/protocol.js
import {
  getDictData
} from '../../api/index'
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    label: '',
    activeHtml: ''
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面加载
   */
  onLoad(options) {
    const { label } = options
    this.initData(label)
  },
  /**
   * ç”Ÿå‘½å‘¨æœŸå‡½æ•°--监听页面初次渲染完成
   */
  onReady() {
  initData(label){
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label
    }).then(res => {
      wx.setNavigationBarTitle({
        title: res.data.remark
      })
      this.setData({
        activeHtml: res.data.code
      })
    })
  },
  /**
wechat_jiaxuan/pages/sets/protocol.json
@@ -1,3 +1,4 @@
{
  "usingComponents": {}
  "usingComponents": {},
  "navigationBarTitleText": ""
}
wechat_jiaxuan/pages/sets/protocol.wxml
@@ -1,2 +1,3 @@
<!--pages/sets/protocol.wxml-->
<text>pages/sets/protocol.wxml</text>
<view class="container">
  <rich-text nodes="{{ activeHtml }}"></rich-text>
</view>
wechat_jiaxuan/pages/sets/protocol.wxss
@@ -1 +1,3 @@
/* pages/sets/protocol.wxss */
.container{
  padding: 40rpx;
}
wechat_jiaxuan/pages/store/store.json
@@ -1,3 +1,4 @@
{
  "usingComponents": {}
  "usingComponents": {},
  "navigationBarTitleText": "推荐门店"
}
wechat_jiaxuan/pages/store/store.less
@@ -15,10 +15,20 @@
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0 10rpx;
    font-weight: 500;
    font-size: 30rpx;
  }
  .right {
    width: 42rpx;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    font-size: 26rpx;
    width: 160rpx;
    image{
      width: 28rpx;
      margin-right: 10rpx;
    }
  }
}
wechat_jiaxuan/pages/store/store.wxml
@@ -1,9 +1,11 @@
<view>
  <navBar title="推荐门店"></navBar>
  <view class="app_header">
    <image class="location" src="../../static/icon/location.png" mode="widthFix"></image>
    <view bindtap="selAddress" class="add">{{ 111 }}</view>
    <image class="right" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
    <view bindtap="selAddress" class="add">{{ 111 }}阿大使大赛的阿大使大赛的阿大使大赛的阿大使大赛的</view>
    <view class="right">
      <image src="../../static/icon/ic_dingwei@2x.png" mode="widthFix"></image>
      <text class="primary">重新定位</text>
    </view>
  </view>
  <view class="main_content">
    <view class="app_title">AI为您推荐以下门店:</view>
wechat_jiaxuan/pages/store/store.wxss
@@ -14,9 +14,19 @@
  overflow: hidden;
  text-overflow: ellipsis;
  margin: 0 10rpx;
  font-weight: 500;
  font-size: 30rpx;
}
.app_header .right {
  width: 42rpx;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-size: 26rpx;
  width: 160rpx;
}
.app_header .right image {
  width: 28rpx;
  margin-right: 10rpx;
}
.main_content {
  padding: 40rpx;
wechat_jiaxuan/pages/userinfo/index.js
@@ -1,27 +1,111 @@
// pages/userinfo/index.js
import {
  uploadUrl,
  editMember,
  getMemberInfo
} from '../../api/index'
Page({
  /**
   * é¡µé¢çš„初始数据
   */
  data: {
    imgurl: "",
    imgurlFull: "",
    name: "",
    nickname: "",
    phone: "",
    address: '',
    latitude: '',
    longitude: '',
    district: '',
    housearea: '',
    // åŸŽå¸‚。地址
    region: [],
    address: ''
    showHouseType: false,
    houseType: {
      val1: '',
      val2: '',
      val3: '',
      val4: '',
      val5: '',
    }
  },
  onLoad(options) {
    this.initData()
  },
  onSubmit() {
    const {
      imgurl,
      name,
      nickname,
      phone,
      address,
      latitude,
      longitude,
      district,
      housearea,
      houseType
    } = this.data
    if (!nickname) return wx.showToast({
      title: '请输入昵称',
      icon: 'none'
    })
    editMember({
      imgurl: imgurl || '',
      name: name || '',
      nickname: nickname || '',
      phone: phone || '',
      address: address || '',
      latitude: latitude || '',
      longitude: longitude || '',
      district: district || '',
      housearea: housearea || '',
      housetype: houseType.val1 + '-' + houseType.val2 + '-' + houseType.val3 + '-' + houseType.val4 + '-' + houseType.val5
    }).then(res => {
      wx.showToast({
        title: '保存成功',
        icon: 'none'
      })
    })
  },
  initData() {
    getMemberInfo().then(res => {
      if(res.data.housetype){
        const temp = res.data.housetype.split('-')
        let houseType = {
          val1: temp[0],
          val2: temp[1],
          val3: temp[2],
          val4: temp[3],
          val5: temp[4],
        }
        this.setData({houseType})
      }
      this.setData({
        imgurlFull: res.data.imgurl ? res.data.prefix + res.data.imgurl : '',
        imgurl: res.data.imgurl,
        name: res.data.name || '',
        nickname: res.data.nickname || '',
        phone: res.data.phone || '',
        address: res.data.address || '',
        latitude: res.data.latitude || '',
        longitude: res.data.longitude || '',
        district: res.data.district || '',
        housearea: res.data.housearea || '',
      })
    })
  },
  changeAddr() {
    console.log('点击了');
    // console.log('点击了');
    wx.chooseLocation({
      type: 'wgs84',
      success: (res) => {
        console.log('res', res);
        this.setData({
          longitude: res.longitude,
          latitude: res.latitude,
          address: res.address,
        })
      }
    })
  },
@@ -31,17 +115,63 @@
      region: e.detail.value
    })
  },
  openHouse() {
    this.setData({
      showHouseType: true
    })
  },
  onClose() {
    this.setData({
      showHouseType: false
    })
  },
  houseBlur(e) {
    const {
      str
    } = e.currentTarget.dataset
    const {
      value
    } = e.detail
    const houseType = {
      ...this.data.houseType
    }
    houseType[str] = value
    this.setData({
      houseType
    })
  },
  selMedia() {
    console.log('dianjile');
    wx.chooseMedia({
      count: 1,
      mediaType: ['image'],
      sourceType: ['album', 'camera'],
      maxDuration: 16,
      camera: 'back',
      success(res) {
        console.log(res.tempFiles[0].tempFilePath)
        console.log(res.tempFiles[0].size)
      success: (res) => {
        // console.log(res.tempFiles[0].tempFilePath)
        // console.log(res.tempFiles[0].size)
        wx.uploadFile({
          url: uploadUrl, //仅为示例,非真实的接口地址
          filePath: res.tempFiles[0].tempFilePath,
          name: 'file',
          formData: {
            folder: 'member'
          },
          header: {
            token: wx.getStorageSync('token')
          },
          success: (ress) => {
            // console.log('ress', JSON.parse(ress.data));
            let data = JSON.parse(ress.data)
            this.setData({
              imgurl: data.data.imgaddr,
              imgurlFull: data.data.url,
            })
            setTimeout(() => {
              console.log('imgurlFull', this.data.imgurlFull);
            }, 1000)
          }
        })
      }
    })
  },
wechat_jiaxuan/pages/userinfo/index.json
@@ -1,6 +1,7 @@
{
  "usingComponents": {
    "van-field": "@vant/weapp/field/index"
    "van-field": "@vant/weapp/field/index",
    "van-popup": "@vant/weapp/popup/index"
  },
  "navigationBarTitleText": "个人资料"
}
wechat_jiaxuan/pages/userinfo/index.less
@@ -5,7 +5,6 @@
  border-radius: 50%;
  box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(0,0,0,0.08);
  border: 4rpx solid #FFFFFF;
  border: 1px solid;
}
.avatar_btn{
  width: 168rpx;
@@ -33,6 +32,7 @@
    .input{
      flex: 1;
      color: #111111;
      border-bottom: 1rpx solid #e5e5e5;
    }
    .icon{
      width: 40rpx;
@@ -40,9 +40,9 @@
  }
  .val{
    flex: 1;
    height: 78rpx;
    height: 100rpx;
    border-bottom: 1rpx solid #e5e5e5;
    padding-left: 32rpx;
    border-bottom: 1rpx solid #f7f7f7;
    display: flex;
    align-items: center;
    justify-content: space-between;
@@ -59,4 +59,28 @@
    font-weight: 500;
    font-size: 32rpx;
  }
}
.modal{
  padding: 40rpx 30rpx;
  .label{
    font-size: 30rpx;
  }
  .val{
    display: flex;
    align-items: center;
    color: #999999;
    .item{
      display: flex;
      align-items: center;
      .unit{
        font-size: 24rpx;
      }
      .input{
        flex: 1;
      }
      input{
        text-align: right;
      }
    }
  }
}
wechat_jiaxuan/pages/userinfo/index.wxml
@@ -1,23 +1,23 @@
<view class="container">
  <image class="avatar" src="" mode="widthFix"></image>
  <image class="avatar" src="{{ imgurlFull ? imgurlFull : '../../static/images/default_avatar.png' }}" mode="widthFix"></image>
  <view bindtap="selMedia" class="avatar_btn">更换头像</view>
  <view class="list">
    <view class="line">
      <view class="label">昵称</view>
      <van-field type="text" class="input" model:value="{{ name }}" maxlength="{{ 18 }}" clearable />
      <van-field type="text" class="input" model:value="{{ nickname }}" maxlength="{{ 18 }}" clearable />
    </view>
    <view class="line">
      <view class="label">姓名</view>
      <van-field type="text" class="input" model:value="{{ name }}" maxlength="{{ 18 }}" clearable />
      <van-field type="text" border="{{ false }}" class="input" model:value="{{ name }}" maxlength="{{ 18 }}" clearable />
    </view>
    <view class="line">
      <view class="label">电话</view>
      <van-field type="number" class="input" model:value="{{ name }}" maxlength="{{ 11 }}" clearable />
      <van-field type="number" border="{{ false }}" class="input" model:value="{{ phone }}" maxlength="{{ 11 }}" clearable />
    </view>
    <view class="line">
      <view class="label">城市</view>
      <view class="val">
        <view class="input">
        <view class="df_ac">
          <picker mode="region" bindchange="bindRegionChange" value="{{region}}">
            <view class="picker {{ region.length > 0 ? '' : 'placeholder9' }}">
              {{ region.length == 0 ? '选择城市' : '' }}{{region[0]}}{{region[1]}}{{region[2]}}
@@ -30,23 +30,61 @@
    <view class="line">
      <view class="label">地址</view>
      <view class="val" bindtap="changeAddr">
        <view class="input">{{ address }}</view>
        <view class="df_ac">{{ address }}</view>
        <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
      </view>
    </view>
    <view class="line">
      <view class="label">小区</view>
      <van-field type="text" class="input" model:value="{{ name }}" maxlength="{{ 15 }}" clearable />
      <van-field type="text" border="{{ false }}" class="input" model:value="{{ district }}" maxlength="{{ 15 }}" clearable />
    </view>
    <view class="line">
      <view class="label">面积</view>
      <van-field type="text" class="input" model:value="{{ name }}" maxlength="{{ 15 }}" clearable />
      <van-field type="text" border="{{ false }}" class="input" model:value="{{ housearea }}" maxlength="{{ 15 }}" clearable />
      <!-- <text>m²</text> -->
    </view>
    <view class="line">
      <view class="label">户型</view>
      <van-field type="text" class="input" model:value="{{ name }}" maxlength="{{ 15 }}" clearable />
      <view class="val" bindtap="openHouse">
        <view class="df_ac">
          <text class="item" wx:if="{{ houseType.val1 }}">{{ houseType.val1 }}室</text>
          <text class="item" wx:if="{{ houseType.val2 }}">{{ houseType.val2 }}厅</text>
          <text class="item" wx:if="{{ houseType.val3 }}">{{ houseType.val3 }}厨</text>
          <text class="item" wx:if="{{ houseType.val4 }}">{{ houseType.val4 }}卫</text>
          <text class="item" wx:if="{{ houseType.val5 }}">{{ houseType.val5 }}阳</text>
        </view>
        <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
      </view>
    </view>
    <view bindtap="onSubmit" class="save">保存</view>
  </view>
  <!--  -->
  <van-popup show="{{ showHouseType }}" round position="bottom" custom-style="height: 30%" bind:close="onClose">
    <view class="modal">
      <view class="label">房屋户型</view>
      <view class="val">
        <view class="item">
          <van-field data-str="val1" bind:blur="houseBlur" type="number" class="input" maxlength="{{ 3 }}" />
          <view class="unit">室</view>
        </view>
        <view class="item">
          <van-field data-str="val2" bind:blur="houseBlur" type="number" class="input" maxlength="{{ 3 }}" />
          <view class="unit">厅</view>
        </view>
        <view class="item">
          <van-field data-str="val3" bind:blur="houseBlur" type="number" class="input" maxlength="{{ 3 }}" />
          <view class="unit">厨</view>
        </view>
        <view class="item">
          <van-field data-str="val4" bind:blur="houseBlur" type="number" class="input" maxlength="{{ 3 }}" />
          <view class="unit">卫</view>
        </view>
        <view class="item">
          <van-field data-str="val5" bind:blur="houseBlur" type="number" class="input" maxlength="{{ 3 }}" />
          <view class="unit">阳</view>
        </view>
      </view>
    </view>
  </van-popup>
</view>
wechat_jiaxuan/pages/userinfo/index.wxss
@@ -5,7 +5,6 @@
  border-radius: 50%;
  box-shadow: 0rpx 2rpx 12rpx 0rpx rgba(0, 0, 0, 0.08);
  border: 4rpx solid #FFFFFF;
  border: 1px solid;
}
.avatar_btn {
  width: 168rpx;
@@ -35,15 +34,16 @@
.list .line .input {
  flex: 1;
  color: #111111;
  border-bottom: 1rpx solid #e5e5e5;
}
.list .line .icon {
  width: 40rpx;
}
.list .val {
  flex: 1;
  height: 78rpx;
  height: 100rpx;
  border-bottom: 1rpx solid #e5e5e5;
  padding-left: 32rpx;
  border-bottom: 1rpx solid #f7f7f7;
  display: flex;
  align-items: center;
  justify-content: space-between;
@@ -60,3 +60,27 @@
  font-weight: 500;
  font-size: 32rpx;
}
.modal {
  padding: 40rpx 30rpx;
}
.modal .label {
  font-size: 30rpx;
}
.modal .val {
  display: flex;
  align-items: center;
  color: #999999;
}
.modal .val .item {
  display: flex;
  align-items: center;
}
.modal .val .item .unit {
  font-size: 24rpx;
}
.modal .val .item .input {
  flex: 1;
}
.modal .val .item input {
  text-align: right;
}
wechat_jiaxuan/project.config.json
@@ -1,5 +1,5 @@
{
  "appid": "wx9c8b22ccc4642e07",
  "appid": "wx208dd1edc0be24ee",
  "compileType": "miniprogram",
  "libVersion": "3.4.10",
  "packOptions": {
wechat_jiaxuan/project.private.config.json
@@ -5,7 +5,7 @@
    "urlCheck": false
  },
  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json ä¸­çš„相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
  "libVersion": "2.22.1",
  "libVersion": "2.30.4",
  "condition": {
    "miniprogram": {
      "list": [
@@ -39,14 +39,14 @@
        },
        {
          "name": "",
          "pathName": "pages/sets/index",
          "pathName": "pages/auth/auth",
          "query": "",
          "launchMode": "default",
          "scene": null
        },
        {
          "name": "",
          "pathName": "pages/calculator/index",
          "pathName": "pages/store/store",
          "query": "",
          "launchMode": "default",
          "scene": null
wechat_jiaxuan/static/icon/home_ic_liangchi@2x.png
wechat_jiaxuan/static/icon/home_ic_xuqiu@2x.png
wechat_jiaxuan/static/icon/home_ic_yusuan@2x.png
wechat_jiaxuan/static/icon/home_ic_zhutihuodong@2x.png
wechat_jiaxuan/static/icon/ic_dingwei@2x.png
wechat_jiaxuan/static/icon/mendian_item.png
wechat_jiaxuan/static/images/default_avatar.png
wechat_jiaxuan/static/images/home_img_weixiaoxd@2x.png
Binary files differ
wechat_jiaxuan/utils/config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
// export const baseUrl = 'https://jiaxuan.zbom.com/jx/wechat/' //正式服务器
export const baseUrl = 'http://192.168.0.135:10027' // æœ¬åœ°
// export const baseUrl = 'http://zbtest.ahapp.net/zbom_interface/jx/wechat/' //测试服务器
// export const imageUrl = 'https://osswebcdn.zbom.com/jiaxuan/images/'
// è…¾è®¯åœ°å›¾å¼€å‘者 key
export const qqMapKey = 'HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ'
/**
 * æœ¬åœ°å­˜å‚¨ç”¨æˆ·ä¿¡æ¯æ•°æ® 10天
 */
export const userInfoExpire = 10 * 24 * 60 * 60 * 1000
wechat_jiaxuan/utils/request.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import { baseUrl } from "./config"
export function request(options){
  let loading = options.loading || '1' // é»˜è®¤å€¼1显示,否则不显示
  if(loading == '1'){
    wx.showLoading()
  }
  return new Promise(resolve => {
    wx.request({
      url: baseUrl + options.url,
      data: options.data || {},
      method: options.method || "GET",
      header: {
        'content-type': 'application/json;charset=utf-8',
        'token': wx.getStorageSync('token') || ''
      },
      timeout: 12000,
      success: (res) => {
        if (res.data.code === 200) {
          resolve(res.data || true)
        } else {
          if(res.data.code && res.data.code == 5112){
            wx.navigateTo({
              url: '/pages/auth/auth',
            })
          }
          res.data.message && wx.showToast({
            title: res.data.message || '发生错误',
            icon: 'none'
          })
        }
      },
      fail(err) {
        console.log('err', err);
        err.message && wx.showToast({
          title: err.message || '发生错误',
          icon: 'none'
        })
      },
      complete() {
        if(loading == '1'){
          wx.hideLoading()
        }
      }
    })
  } )
}
wechat_staff/utils/config.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
// export const baseUrl = 'https://jiaxuan.zbom.com/jx/wechat/' //正式服务器
export const baseUrl = 'http://192.168.0.124:8080/zbom/jx/wechat/' // æœ¬åœ°
// export const baseUrl = 'http://zbtest.ahapp.net/zbom_interface/jx/wechat/' //测试服务器
// export const imageUrl = 'https://osswebcdn.zbom.com/jiaxuan/images/'
// è…¾è®¯åœ°å›¾å¼€å‘者 key
export const qqMapKey = 'HIDBZ-2QXL4-TAWUD-XET6Q-EKTJE-CCBSQ'
/**
 * æœ¬åœ°å­˜å‚¨ç”¨æˆ·ä¿¡æ¯æ•°æ® 10天
 */
export const userInfoExpire = 10 * 24 * 60 * 60 * 1000
wechat_staff/utils/request.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
import { baseUrl } from "./config"
export function request(options){
  return new Promise(resolve => {
    wx.request({
      url: baseUrl + options.url,
      data: options.options || {},
      method: options.method || "GET",
      header: {
        'content-type': 'application/x-www-form-urlencoded',
      },
      timeout: 12000,
      success: (res) => {
        if (res.code === 0) {
          // res.msg && toast(res.msg)
          resolve(res.data || true)
        } else {
          res.msg && toast(res.msg || '发生错误', 'none')
          resolve(res.data || false)
        }
      },
      fail() {
        wxToast('网络错误', 'none')
      }
    })
  } )
}