liukangdong
2024-07-19 1b897c74e44d185669d87abd4c3a29c90d6fe225
Merge branch 'master' of http://139.186.142.91:10010/r/productDev/zbomyoujia
已修改30个文件
482 ■■■■ 文件已修改
admin/.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.production 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/customer.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/api/index.js 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/app.js 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/package-lock.json 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/package.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/login/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/login/index.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/sets/index.js 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/sets/index.wxml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/sets/protocol.js 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/sets/protocol.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/index.js 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/index.wxml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/info.js 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/info.wxml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/info.wxss 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.js 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.wxml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/store/staff.wxss 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/work/index.js 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/work/index.wxml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/pages/work/index.wxss 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/project.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/project.private.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/static/icon/mingpian_ic_dizhi@2x.png 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/utils/config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
wechat_staff/utils/request.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/.env.development
@@ -1,3 +1,3 @@
# 开发环境配置
NODE_ENV = 'development'
VUE_APP_BASE_API = 'http://localhost:10028'
VUE_APP_BASE_API = 'http://192.168.0.135:10028'
admin/.env.production
@@ -1,2 +1,4 @@
# 生产环境配置
NODE_ENV = 'production'
VUE_APP_BASE_API = 'https://dmtest.ahapp.net/admin_interface'
admin/src/views/business/customer.vue
@@ -40,18 +40,20 @@
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="120px"></el-table-column>
        <el-table-column prop="name" label="姓名" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="电话" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" fixed min-width="140px"></el-table-column>
        <el-table-column prop="name" label="姓名" fixed min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="电话" fixed min-width="100px"></el-table-column>
        <el-table-column prop="proName" label="省份" min-width="180px">
          <template slot-scope="{row}">
            {{row.proName||''}}{{row.cityName||''}}{{row.areaName||''}}
          </template>
        </el-table-column>
        <el-table-column prop="addr" label="地址" min-width="100px"></el-table-column>
        <el-table-column prop="ip" label="IP地址" min-width="100px"></el-table-column>
        <el-table-column prop="proName" label="省份" min-width="100px"></el-table-column>
        <el-table-column prop="cityName" label="城市" min-width="100px"></el-table-column>
        <el-table-column prop="areaName" label="区域" min-width="100px"></el-table-column>
        <el-table-column prop="sysVersion" label="系统版本" min-width="100px"></el-table-column>
        <el-table-column prop="browser" label="浏览器" min-width="100px"></el-table-column>
        <el-table-column prop="terminal" label="终端类型" min-width="100px"></el-table-column>
        <el-table-column prop="openid" label="微信openid" min-width="100px"></el-table-column>
        <el-table-column prop="openid" label="微信openid" min-width="240px"></el-table-column>
        <el-table-column prop="info" label="备注" min-width="100px"></el-table-column>
<!--        <el-table-column
          v-if="containPermissions(['business:customer:update', 'business:customer:delete'])"
server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -445,8 +445,6 @@
        return ztUserGetTokenResponse;
    }
    @Override
    public Member getMemberInfo(Long memberId){
        Member member = memberMapper.selectById(memberId);
wechat_staff/api/index.js
@@ -42,7 +42,7 @@
// 获取字典值
export const getDictData = (data) => {
  return request({
    url: '/public/getDictData',
    url: '/public/getDictData?code='+data.code+'&label='+data.label,
    data,
    loading: '0'
  })
@@ -91,6 +91,21 @@
    data
  })
}
export const getUserCard = (data) => {
  return request({
    url: '/web/personnel/getUserCard',
    method: "POST",
    data
  })
}
export const logout = (data) => {
  return request({
    url: '/web/personnel/logOff',
    method: "POST",
    data
  })
}
// 志说装修 内容
export const pageZSZXContentList = (data) => {
  return request({
@@ -107,10 +122,17 @@
    data
  })
}
export const updateShop = (data) => {
  return request({
    url: '/web/personnel/updShop',
    method: 'POST',
    data
  })
}
// 获取门店详情
export const getShopDetail = (data) => {
  return request({
    url: '/web/customer/shopDetail',
    url: '/web/personnel/shopDetail?shopId='+data,
    data
  })
}
@@ -159,4 +181,4 @@
    url: '/web/customer/logOff',
    data
  })
}
}
wechat_staff/app.js
@@ -9,12 +9,11 @@
    const WindowInfo = wx.getWindowInfo()
    if (WindowInfo.safeArea.top > 20) {
      this.globalData.bottomLift = WindowInfo.screenHeight - WindowInfo.safeArea.bottom;
    }
    //
    return
    const res = wx.getStorageSync('member')
    }
    const res = wx.getStorageSync('member')
    if (res) {
      this.globalData.userInfo = res
      console.error("res",res)
    } else {
      // 登录
      wx.login({
@@ -26,16 +25,22 @@
              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)
              if (res && res.data.users) {
                wx.setStorageSync('member', res.data.users)
                wx.setStorageSync('openid', res.data.users.openid)
                wx.setStorageSync('sessionKey', res.data.sessionKey)
                wx.setStorageSync('token', res.data.token)
              } else {
                wx.navigateTo({
                  url: '/pages/login/index',
                })
                console.log('登录失败!')
              }
            })
          } else {
            wx.navigateTo({
              url: '/pages/login/index',
            })
            console.log('登录失败!' + res)
          }
        },
wechat_staff/package-lock.json
@@ -1,11 +1,26 @@
{
  "requires": true,
  "name": "wechat_staff",
  "version": "1.0.0",
  "lockfileVersion": 1,
  "requires": true,
  "dependencies": {
    "@vant/weapp": {
      "version": "1.11.6",
      "resolved": "https://registry.npmjs.org/@vant/weapp/-/weapp-1.11.6.tgz",
      "resolved": "https://registry.npmmirror.com/@vant/weapp/-/weapp-1.11.6.tgz",
      "integrity": "sha512-a3heReWYT2gNdsyj6x1hBwsM8V8NrjcPAmle86NH2CD2V/i/h0le75piW6KntSfOPCwekVWMBKhysNrBpJeKdw=="
    },
    "jsbn": {
      "version": "1.1.0",
      "resolved": "https://registry.npmmirror.com/jsbn/-/jsbn-1.1.0.tgz",
      "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="
    },
    "miniprogram-sm-crypto": {
      "version": "0.3.13",
      "resolved": "https://registry.npmmirror.com/miniprogram-sm-crypto/-/miniprogram-sm-crypto-0.3.13.tgz",
      "integrity": "sha512-H7qwbCEmIXZzekCSgEWeHh1mb4cnz0E42YH3U5xqpOaJBB2Sj9ySq0hTGv0f+Jwo5SknABR6fw+EtjnMyJ/O/Q==",
      "requires": {
        "jsbn": "^1.1.0"
      }
    }
  }
}
wechat_staff/package.json
@@ -1,14 +1,17 @@
{
  "name": "wechat_staff",
  "version": "1.0.0",
  "description": "",
  "main": ".eslintrc.js",
  "dependencies": {},
  "dependencies": {
    "@vant/weapp": "^1.11.6",
    "miniprogram-sm-crypto": "^0.3.13"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
  "license": "ISC",
  "description": ""
}
wechat_staff/pages/login/index.js
@@ -9,9 +9,8 @@
    primary: '',
    status: '0', // 标识
    countDown: 0,
    phone: '13663966099',
    code: '',
    phone: '',
    code: '',
    showModal: false,
    activeHtml: '',
  },
wechat_staff/pages/login/index.wxss
@@ -4,6 +4,7 @@
  border-radius: 50%;
  margin: 130rpx auto 30rpx;
}
.home_title {
  font-weight: 500;
  font-size: 40rpx;
wechat_staff/pages/sets/index.js
@@ -1,4 +1,6 @@
// pages/sets/index.js
import { logout } from '../../api/index'
Page({
  /**
@@ -20,12 +22,21 @@
  onClose() {
    this.setData({show: false})
  },
  changeDeal(){
  changeDeal(e){
    wx.navigateTo({
      url: '/pages/sets/protocol',
      url: '/pages/sets/protocol?type='+e.currentTarget.dataset.index,
    })
  },
  logout(){
    logout({
    }).then(res => {
      wx.setStorageSync('member', null)
      wx.setStorageSync('token', '')
      wx.navigateTo({
        url: '/pages/login/index',
      })
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
wechat_staff/pages/sets/index.wxml
@@ -1,10 +1,10 @@
<view class="container">
  <view class="list">
    <view class="line" bindtap="changeDeal">
    <view class="line" data-index="0" 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-index="1" 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" bind:tap="logout">确认注销</view>
          <view class="btn cancel" bindtap="onClose">还是算了</view>
        </view>
    </view>
wechat_staff/pages/sets/protocol.js
@@ -1,20 +1,36 @@
// pages/sets/protocol.js
import { getDictData } from '../../api/index'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    content:''
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log(options.type)
    if(options.type == 1){
      wx.setNavigationBarTitle({title:'隐私协议'})
    }else{
      wx.setNavigationBarTitle({title:'用户协议'})
    }
    this.loadDict(options.type);
  },
  loadDict(type){
    //type ==0 用户协议,否则隐私协议
    const label = type == 1?'PRIVACY_AGREEMENT':'SERVER_AGREEMENT'
    getDictData({
      code: 'ZBOM_CUSTOMIZED',
      label: label
    }).then(res => {
      this.setData({ content: res.data.code })
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
wechat_staff/pages/sets/protocol.wxml
@@ -1,2 +1,2 @@
<!--pages/sets/protocol.wxml-->
<text>pages/sets/protocol.wxml</text>
<rich-text  nodes="{{content}}"> </rich-text>
wechat_staff/pages/store/index.js
@@ -1,3 +1,4 @@
import { getShopDetail } from '../../api/index'
// pages/store/index.js
Page({
@@ -5,18 +6,43 @@
   * 页面的初始数据
   */
  data: {
      shopId: null,
      shopInfo:{}
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  onLoad(options) {
    console.log(options.shopId)
    this.setData({shopId:options.shopId})
  },
  getShopInfo(id){
    getShopDetail(id).then(res => {
      if(res.data && res.data.seqNameList){
        const t = '';
        const tindex =0;
        res.data.seqNameList.array.forEach(element => {
          if(tindex>0){
            t =t+"、"
          }
           t = t+ element;
           tindex++;
        });
        res.data.seqNameInfo = t;
      }
      this.setData({
        shopInfo: res.data
      })
    })
  },
  handleEdit(e) {
    const {shopInfo} = this.data
    const objString = JSON.stringify(shopInfo);
    console.log(objString)
    wx.navigateTo({
      url: '/pages/store/info',
      url: '/pages/store/info?data='+objString ,
    })
  },
  /**
@@ -29,8 +55,8 @@
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  onShow() {
    this.getShopInfo(this.data.shopId)
  },
  /**
wechat_staff/pages/store/index.wxml
@@ -1,22 +1,22 @@
<view class="container">
  <view class="list">
    <view class="item">
      <view class="name">合肥红星新品馆</view>
      <view class="name">{{shopInfo.name}}</view>
      <view class="line">
        <view class="label">联系人</view>
        <view class="val">张的心</view>
        <view class="val">{{shopInfo.linkerName}}</view>
      </view>
      <view class="line">
        <view class="label">联系电话</view>
        <view class="val">188</view>
        <view class="val">{{shopInfo.linkPhone}}</view>
      </view>
      <view class="line">
        <view class="label">经营范围</view>
        <view class="val">全屋定制、整体厨房、木门墙板、卫阳定制</view>
        <view class="val">{{shopInfo.seqNameInfo||''}}</view>
      </view>
      <view class="line">
        <view class="label">门店地址</view>
        <view class="val">安徽省合肥市金寨路琥珀五环国际A座</view>
        <view class="val">{{shopInfo.address}}</view>
      </view>
      <view bindtap="handleEdit" class="edit">编辑</view>
    </view>
wechat_staff/pages/store/info.js
@@ -1,3 +1,5 @@
import { updateShop,getMemberInfo } from "../../api/index";
// pages/store/info.js
Page({
@@ -5,23 +7,67 @@
   * 页面的初始数据
   */
  data: {
    name: ''
    linkerName:'',
    linkPhone:'',
    address:'',
    latitude:'',
    longitude:'',
    shopInfo:{}
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    const obj =JSON.parse(options.data);
    this.setData({shopInfo: obj ,
      linkPhone:obj.linkPhone,
      linkerName:obj.linkerName,
      address:obj.address,
      latitude:obj.latitude,
      longitude:obj.longitude })
  },
  getLocation() {
    console.log('惦记了');
  getLocation() {
    const that = this;
    wx.chooseLocation({
      success: (result) => {
        console.log('result', result);
        const {shopInfo,latitude,longitude,address} = that.data;
        shopInfo.latitude = result.latitude
        shopInfo.longitude = result.longitude
        shopInfo.address = result.address ||shopInfo.address
        that.setData({shopInfo: shopInfo ,
          address:shopInfo.address,
          latitude:shopInfo.latitude,
          longitude:shopInfo.longitude })
      },
    })
  },
  saveInfo(){
    const {shopInfo} =this.data;
    console.log(shopInfo)
    shopInfo.address = this.data.address
    shopInfo.linkerName = this.data.linkerName
    shopInfo.linkPhone = this.data.linkPhone
    shopInfo.latitude = this.data.latitude
    shopInfo.longitude = this.data.longitude
    updateShop(shopInfo).then(res => {
      wx.showToast({
        title: '门店信息修改成功',
        icon: 'none'
      })
      getMemberInfo().then(res => {
        this.setData({
          userInfo: res.data
        })
        wx.setStorageSync('member',res.data)
        wx.navigateBack({
          delta: 1
        });
      })
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
wechat_staff/pages/store/info.wxml
@@ -3,34 +3,30 @@
    <view class="line">
      <view class="la">门店联系人</view>
      <view class="val">
        <view class="input">王德发</view>
        <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
       <van-field class="input" model:value="{{ linkerName }}" clearable border="{{ false }}" />
      </view>
    </view>
    <view class="line">
      <view class="la">门店电话</view>
      <view class="val">
        <van-field class="input" model:value="{{ name }}" clearable border="{{ false }}" />
        <van-field class="input" model:value="{{ linkPhone }}" clearable border="{{ false }}" />
      </view>
    </view>
    <view class="line">
      <view class="la">门店经纬度</view>
      <view class="val">
        <view class="input">116.40,40.28</view>
      <view class="val"  bindtap="getLocation">
        <view class="input">{{ longitude }},{{ latitude }}</view>
        <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
      </view>
    </view>
    <view class="line">
      <view class="la">门店地址</view>
      <view class="val" bindtap="getLocation">
        <view class="input">安徽省合肥市金寨路琥珀五环国…安徽省合肥市金寨路琥珀五环国…</view>
        <image class="icon" src="../../static/icon/home_ar@2x.png" mode="widthFix"></image>
      <view class="val">
        <van-field class="input" model:value="{{address}}" clearable border="{{ false }}" />
      </view>
    </view>
    <view class="line">
      <view class="la">经营范围</view>
      <view class="val">全屋定制、整体厨房、木门墙板</view>
    </view>
    </view>
  </view>
  <view class="bottombtn">
      <button bind:tap="saveInfo" class="savebutton">保存</button>
  </view>
</view>
wechat_staff/pages/store/info.wxss
@@ -31,3 +31,17 @@
.list .line .val .icon {
  width: 40rpx;
}
.bottombtn{
  position: fixed;
  bottom: 0px;
  width: 100%;
  padding: 20px;
}
.savebutton{
  bottom: 20px;
  width: 100%;
  border: none;
  color: white;
  background: #B08771;
  border-radius: 8px;
}
wechat_staff/pages/store/staff.js
@@ -1,4 +1,6 @@
// pages/store/staff.js
// pages/store/staff.jsdownloadImg
import { getUserCard } from '../../api/index'
import { downloadImg } from '../../utils/common'
Page({
  /**
@@ -6,7 +8,10 @@
   */
  data: {
    bottomLift: 0,
    isShow: false
    isShow: false,
    userCard:'',
    isShow2: false,
    userInfo:{}
  },
  /**
@@ -14,12 +19,37 @@
   */
  onLoad(options) {
    var app = getApp().globalData
    var userType = options.userType
    if(userType == 1){
      //如果查询自己的信息
      this.setData({userInfo: wx.getStorageSync('member')})
      console.log(this.data)
    }
    this.setData({
      bottomLift: app.bottomLift
    })
  },
  showQrcode(){
    this.setData({isShow:true})
  },
  closeCard(){
    this.setData({isShow2: false})
  },
  saveCard(){
   downloadImg(this.data.userCard);
  },
  openModal() {
    this.setData({isShow: true})
    if(this.data.userCard !=null && this.data.userCard != ''){
      this.setData({isShow2: true})
      return;
    }
    getUserCard().then(res =>{
      this.setData({userCard: res.data})
      this.setData({isShow2: true})
    })
  },
  onClose() {
    this.setData({isShow: false})
wechat_staff/pages/store/staff.wxml
@@ -2,28 +2,28 @@
  <back />
  <image src="../../static/images/design_banner@2x.png" mode="widthFix" class="bg_wrap"></image>
  <view class="container">
    <image class="avatar" src=""></image>
    <image class="avatar" src="{{userInfo.imgurlFull}}"></image>
    <view class="name_wrap">
      <view class="left">
        <view class="name">姓名</view>
        <view class="name">{{userInfo.name}}</view>
        <view class="tag">导购</view>
        <!-- <view class="tag">5年经验</view> -->
      </view>
      <image class="qrcode" src="../../static/icon/mingpian_erweima@2x.png" mode="widthFix"></image>
      <image bind:tap="showQrcode" class="qrcode" src="../../static/icon/mingpian_erweima@2x.png" mode="widthFix"></image>
    </view>
    <view class="desc">
      <image src="../../static/icon/mingpian_ic_edit@2x.png" mode="widthFix"></image>
      <view>用心服务每一位顾客</view>
      <view>{{userInfo.slogans}}</view>
      <view class="icon"></view>
    </view>
    <view class="static">
      <view class="card">
        <view>从业年限</view>
        <view class="num">5</view>
        <view class="num">{{userInfo.jobDate||'0'}}</view>
      </view>
      <view class="card">
        <view>服务客户</view>
        <view class="num">500+</view>
        <view class="num">{{userInfo.costomerNum||'0'}}</view>
      </view>
    </view>
    <view class="guide">
@@ -31,39 +31,48 @@
      <view class="line">
        <image class="icon" src="../../static/icon/mingpian_ic_phone@2x.png" mode="widthFix"></image>
        <text class="label">联系电话</text>
        <text class="val">1888888888888</text>
        <text class="val">{{userInfo.phone}}</text>
      </view>
      <view class="line">
        <image class="icon" src="../../static/icon/mingpian_ic_mendian@2x.png" mode="widthFix"></image>
        <text class="label">门店名称</text>
        <text class="val">1888888888888</text>
        <text class="val">{{userInfo.shopName}}</text>
      </view>
      <view class="line">
        <image class="icon" src="../../static/icon/mingpian_ic_dizhi@2x.png" mode="widthFix"></image>
        <image class="icon" src="../../static/icon/mingpian_ic_dizhi@2x.png" mode="widthFix" style="width: 45rpx;"  ></image>
        <text class="label">门店地址</text>
        <text class="val">1888888888888</text>
        <text class="val">{{userInfo.shopAddress}}</text>
      </view>
    </view>
  </view>
  <!-- footer -->
  <view class="footer" style="bottom: {{bottomLift}}px;">
    <view class="btn">
    <view class="btn"  bindtap="openModal">
      <image src="../../static/icon/share.png" mode="widthFix"></image>
      <view bindtap="openModal">分享</view>
      <view>分享</view>
    </view>
  </view>
  <!-- 详情 -->
  <van-popup show="{{ isShow }}"  closeable round bind:close="onClose">
    <view class="modal">
      <view class="header">
        <image class="avatar" src=""></image>
        <image class="avatar" src="{{userInfo.imgurlFull}}"></image>
        <view class="content">
            <view class="name">姓名</view>
            <view class="desc">导购 | 5年经验</view>
            <view class="name">{{userInfo.name}}</view>
            <view class="desc">导购 | {{userInfo.jobDate ||'0'}}年经验</view>
        </view>
      </view>
      <image class="qrcode" src=""></image>
      <image class="qrcode" src="{{userInfo.qrcodeImgFull}}"></image>
      <view class="text">长按图片识别二维码</view>
    </view>
  </van-popup> <!-- 用户名片 -->
  <van-popup class="modalcard" show="{{ isShow2 }}" round    custom-style="background-color: rgba(0,0,0,0);">
    <view class="img1">
      <image class="qrcodecard" src="{{userCard}}"></image>
    </view>
    <view class="btns">
      <button class="btn1" bind:tap="closeCard">取消</button>
      <button class="btn2" bind:tap="saveCard">保持到相册</button>
    </view>
  </van-popup>
</view>
wechat_staff/pages/store/staff.wxss
@@ -99,12 +99,12 @@
  margin-bottom: 42rpx;
}
.guide .line .icon {
  width: 30rpx;
  width: 30rpx;
}
.guide .line .label {
  color: #777777;
  margin-left: 24rpx;
  margin-right: 44rpx;
  min-width: 140rpx;
  margin-left: 24rpx;
}
.footer {
  display: flex;
@@ -165,3 +165,51 @@
  color: #999999;
  text-align: center;
}
.modalcard{
  display: inline-block;
  width: 600rpx;
  height: 1100rpx;
  box-sizing: border-box;
}
.modalcard .img1{
  width: 100%;
  height: 956rpx;
  box-sizing: border-box;
}
.modalcard .qrcodecard{
  width: 600rpx;
  height: 956rpx;
  border-radius: 26rpx ;
}
.modalcard .btns{
  width: 100%;
  display: flex;
  margin-top:30rpx ;
  margin-bottom: 10rpx;
}
.modalcard .btns .btn1{
  width: 290rpx;
  border-radius: 8rpx !important;
  height:88rpx ;
  font-size: 32rpx;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  border: 2rpx solid #FFFFFF;
  background:rgba(0,0,0,0)
}
.modalcard .btns .btn2{
  width: 290rpx;
  height:88rpx ;
  font-size: 32rpx;
  color: white;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 8rpx !important;
  background: linear-gradient( 180deg, #E0B49C 0%, #B68B74 100%);
  border-radius: 8px;
  border: none;
}
wechat_staff/pages/work/index.js
@@ -1,16 +1,17 @@
import { getMemberInfo } from '../../api/index'
import { getDictData, getMemberInfo } from '../../api/index'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    topimg:'',
    clientHeight: 0,
    clientTop: 0,
    uesrInfo: {}
    clientTop: 0,
    userInfo: {name:''}
  },
  /**
   * 生命周期函数--监听页面加载
   */
@@ -18,16 +19,17 @@
    const res = wx.getMenuButtonBoundingClientRect()
    this.setData({clientHeight: res.height})
    this.setData({clientTop: res.top})
    this.initData()
  },
  changePath(e) {
    const {userInfo} = this.data
    // 页面跳转
    let temp = [
      '/pages/userinfo/index',
      '/pages/store/staff',
      '/pages/store/staff?userType=1',
      '/pages/userinfo/collect',
      '/pages/store/index',
      '/pages/store/index?shopId='+userInfo.departmentId,
      '/pages/sets/index'
    ]
    const index = e.currentTarget.dataset.index
@@ -38,12 +40,18 @@
  initData() {
    getMemberInfo().then(res => {
      this.setData({
        uesrInfo: res.data
      })
        userInfo: res.data
      })
      wx.setStorageSync('member',res.data)
    })
    getDictData({
      code: 'WEIXIN_DEFAULT_IMGS',
      label: 'STAFF_WORK_TOP_IMG'
    }).then(res => {
      this.setData({ topimg: res.data.code })
    })
  },
  onReady() {
  onReady() {
  },
  /**
wechat_staff/pages/work/index.wxml
@@ -1,16 +1,18 @@
<view class="container">
<view class="topbg" style="background-image:url('{{topimg}}');background-color: aquamarine;">
  <view class="navbar" style="padding-top: {{ clientTop }}px;height: {{clientHeight + clientTop}}px;">工作台</view>
  <view class="userinfo">
    <image class="avatar" src=""></image>
    <view class="content">
  <view class="userinfo" data-index="0" bindtap="changePath">
    <image class="avatar" src="{{userInfo.imgurlFull}}"></image>
    <view class="content" >
      <view class="header">
        <view class="name">苏灿</view>
        <view class="name">{{userInfo.name}}</view>
      </view>
      <view class="addr">合肥莲花小区</view>
      <view class="detail">120m² |3室1厅1厨1卫</view>
      <view class="addr">{{userInfo.phone}}</view>
      <view class="detail">{{userInfo.shopName}}</view>
    </view>
    <image data-index="0" bindtap="changePath" class="edit" src="../../static/icon/gongzuotai_ic_erweima@2x.png" mode="widthFix"></image>
  </view>
</view>
  <view class="main_content">
    <view class="func_list">
      <view class="line" data-index="1" bindtap="changePath">
wechat_staff/pages/work/index.wxss
@@ -11,8 +11,11 @@
  display: flex;
  padding: 72rpx 40rpx 48rpx;
  color: #fff;
  font-size: 26rpx;
  background-color: aquamarine;
  font-size: 26rpx;
}
.container .topbg{
  background-size: 100% auto;
  background-repeat: no-repeat;
}
.container .userinfo .content {
  flex: 1;
wechat_staff/project.config.json
@@ -1,5 +1,5 @@
{
  "appid": "wx208dd1edc0be24ee",
  "appid": "wx9910433b937fff92",
  "compileType": "miniprogram",
  "libVersion": "3.4.10",
  "packOptions": {
wechat_staff/project.private.config.json
@@ -39,5 +39,5 @@
      ]
    }
  },
  "libVersion": "2.25.4"
  "libVersion": "3.4.10"
}
wechat_staff/static/icon/mingpian_ic_dizhi@2x.png

wechat_staff/utils/config.js
@@ -1,7 +1,7 @@
// export const baseUrl = 'https://jiaxuan.zbom.com/jx/wechat/' //正式服务器
export const baseUrl = 'http://192.168.0.135:10027' // 本地
export const baseUrl = 'https://dmtest.ahapp.net/web_interface/' // 本地
// export const baseUrl = 'http://zbtest.ahapp.net/zbom_interface/jx/wechat/' //测试服务器
// export const imageUrl = 'https://osswebcdn.zbom.com/jiaxuan/images/'
wechat_staff/utils/request.js
@@ -19,9 +19,9 @@
        if (res.data.code === 200) {
          resolve(res.data || true)
        } else {
          if(res.data.code && res.data.code == 5112){
          if(res.data.code && (res.data.code == 5112 || res.data.code == 5111)){
            wx.navigateTo({
              url: '/pages/auth/auth',
              url: '/pages/login/index',
            })
          }
          res.data.message && wx.showToast({