xuxueyang
2024-07-25 96aeb2a232d85306ced2061f024a2ff491a92ff7
fix bug
已修改13个文件
已添加1个文件
495 ■■■■■ 文件已修改
common/self.scss 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/components/home-category.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/home/components/home-price.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/supplier-login.vue 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/supplier-reg.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/supplier-user.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/user/user-info/user-info.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
store/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/customer-info/customer-info.vue 373 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shopping/confirm.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/shopping/shopping.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/customer/trade/list.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sub_pages/partner/partner-info/partner-info.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
common/self.scss
@@ -237,7 +237,9 @@
.m-r-80 {
    margin-right: 160rpx;
}
.m-b-12{
    margin-bottom: 24rpx;
}
.m-b-20 {
    margin-bottom: 40rpx;
}
pages.json
@@ -36,8 +36,6 @@
      }
    },
    // #endif
    // #ifdef PUB_SUPPLIER
    {
      "path": "pages/login/supplier-reg",
      "style": {
@@ -45,16 +43,6 @@
        "navigationStyle": "custom"
      }
    },
    // #endif
    // #ifdef PUB_PARTNER
    {
      "path": "pages/login/supplier-reg",
      "style": {
        "navigationBarTitleText": "申请入驻"
      }
    },
    // #endif
    {
      "path": "pages/user/supplier-user",
      "style": {
@@ -217,8 +205,13 @@
      "root": "sub_pages/customer",
      "pages": [
        // #ifdef PUB_CUSTOMER
        {
          "path": "customer-info/customer-info",
          "style": {
            "navigationBarTitleText": "信息维护",
            "enablePullDownRefresh": false
          }
        },
        {
          "path": "trade/trade",
          "style": {
pages/home/components/home-category.vue
@@ -38,7 +38,7 @@
  methods: {
    toList(item){
      uni.navigateTo({
        url:'//sub_pages/customer/trade/list?categoryId='+item.id
        url:'/sub_pages/customer/trade/list?categoryId='+item.id
      })
    }
  },
pages/home/components/home-price.vue
@@ -9,7 +9,7 @@
                <view class="item flex1">
                    <view class="title">{{list1[0]&&list1[0].name||''}}</view>
                    <view class="price">
                        {{list1[0]&&list1[0].avePrice||''}}
                        {{list1[0]&&list1[0].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list1[0]">
                        <view class="m-l-a m-r-a">{{list1[0]&&list1[0].avePriceDifference<0?'-':'+'}}{{list1[0]&&list1[0].avePriceDifference||''}}</view>
@@ -20,7 +20,7 @@
                <view class="item flex1">
                    <view class="title">{{list1[1]&&list1[1].name||''}}</view>
                    <view class="price">
                        {{list1[1]&&list1[1].avePrice||''}}
                        {{list1[1]&&list1[1].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list1[1]">
                        <view class="m-l-a m-r-a">{{list1[1]&&list1[1].avePriceDifference<0?'-':'+'}}{{list1[1]&&list1[1].avePriceDifference||''}}</view>
@@ -31,7 +31,7 @@
                <view class="item flex1">
                    <view class="title">{{list1[2]&&list1[2].name||''}}</view>
                    <view class="price">
                        {{list1[2]&&list1[2].avePrice||''}}
                        {{list1[2]&&list1[2].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list1[2]">
                        <view class="m-l-a m-r-a">{{list1[2]&&list1[2].avePriceDifference<0?'-':'+'}}{{list1[2]&&list1[2].avePriceDifference||''}}</view>
@@ -44,7 +44,7 @@
                <view class="item flex1">
                    <view class="title">{{list2[0]&&list2[0].name||''}}</view>
                    <view class="price">
                        {{list2[0]&&list2[0].avePrice||''}}
                        {{list2[0]&&list2[0].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list2[0]">
                        <view class="m-l-a m-r-a">{{list2[0]&&list2[0].avePriceDifference<0?'-':'+'}}{{list2[0]&&list2[0].avePriceDifference||''}}</view>
@@ -55,7 +55,7 @@
                <view class="item flex1">
                    <view class="title">{{list2[1]&&list2[1].name||''}}</view>
                    <view class="price">
                        {{list2[1]&&list2[1].avePrice||''}}
                        {{list2[1]&&list2[1].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list2[1]">
                        <view class="m-l-a m-r-a">{{list2[1]&&list2[1].avePriceDifference<0?'-':'+'}}{{list2[1]&&list2[1].avePriceDifference||''}}</view>
@@ -66,7 +66,7 @@
                <view class="item flex1">
                    <view class="title">{{list2[2]&&list2[2].name||''}}</view>
                    <view class="price">
                        {{list2[2]&&list2[2].avePrice||''}}
                        {{list2[2]&&list2[2].avePrice||'-'}}
                    </view>
                    <view class="flex desc" v-if="list2[2]">
                        <view class="m-l-a m-r-a">{{list2[2]&&list2[2].avePriceDifference<0?'-':'+'}}{{list2[2]&&list2[2].avePriceDifference||''}}</view>
pages/login/supplier-login.vue
@@ -58,11 +58,13 @@
                        <view class="topic-font" v-if="loginType=='pwd'" @click="loginType='code'">手机验证码登录</view>
                        <view class="topic-font" v-if="loginType=='code'" @click="loginType='pwd'">账号密码登录</view>
                        <!-- #ifndef PUB_CUSTOMER -->
                        <view class="topic-font m-l-a m-r-0" @click="toReg">前往注册</view>
            <!-- #ifdef PUB_CUSTOMER -->
            <view class="topic-font m-l-a m-r-0" @click="toHome">返回首页</view>
                        <!-- #endif -->
                    </view>
                </form>
            </view>
        </view>
@@ -184,6 +186,11 @@
                    holdTime--;
                }, 1000)
            },
    toHome(){
      uni.redirectTo({
        url: '/pages//pages/home/home'
      })
    },
            toReg() {
                // uni.switchTab({
                //     url: '/pages/index/index'
@@ -200,8 +207,12 @@
                    url: '/pages/login/supplier-reg'
                })
                // #endif
      // #ifdef PUB_CUSTOMER
      addstr = '?source=step'
      uni.navigateTo({
        url: '/sub_pages/customer/customer-info/customer-info' + addstr
      })
      // #endif
            },
            changeAll(e) {
                this.pcfvalue = e.detail.value[0]
@@ -260,7 +271,7 @@
                const resp = await this.$store.dispatch(this.apitype, post);
                // uni.hideLoading()
                if (resp.code == 0) {
      if (resp.code === 0) {
                    // myCache.cache("userToken", res.data.accessToken)
                    // let userRes = await gzmzApi.getMemberInfo();
pages/login/supplier-reg.vue
@@ -1,7 +1,10 @@
<template>
    <view>
        <view v-if="source==='step'" style="padding: 20rpx 0rpx;color: red;;background-color: #e6e6e6;">
      <!-- #ifdef PUB_PARTNER -->
            <view style="padding: 20rpx;text-align: center;background-color: #fff;">仅限花满芫合伙人入驻</view>
      <!-- #endif -->e
            <view v-if="source==='step'" class="" style="background-color: #fff;margin-top: 20rpx;padding: 20rpx;">
                <u-steps current="1">
                    <u-steps-item title="信息填写" class="u-steps-item">
@@ -66,8 +69,9 @@
                        <button @tap="login()" class="bottom-button">注 册</button>
                        <view class="flex">
                            <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回填写</view>
              <view class="topic-font m-l-0 m-r-a" @click="backInfoPage" v-if="source==='step'">返回上一步</view>
                            <view class="topic-font m-l-a m-r-0" @click="toLogin">前往登录</view>
                        </view>
                        <view class="flex flex-wrap-normal"
                            style="position: fixed;bottom: 40rpx;left: 40rpx;right: 40rpx;" v-if="false">
@@ -113,6 +117,9 @@
                // #endif
                // #ifdef PUB_PARTNER
                apitype: 'partner',
      // #endif
      // #ifdef PUB_CUSTOMER
      apitype: 'customer',
                // #endif
            };
@@ -161,7 +168,7 @@
                        userType: this.apitype
                    }
                })
                if (code == 0) {
      if (code === 0) {
                    uni.showToast({
                        title: '验证码已发送',
                        icon: "none"
@@ -243,11 +250,17 @@
                    type: this.apitype
                    // openId: '123456789'
                }
                if (this.source == 'step') {
                    var tjson = this.$storage.getItem('cache_partner_info')
      if (this.source === 'step') {
        var tjson = ''
        // #ifdef PUB_PARTNER
        tjson = this.$storage.getItem('cache_partner_info')
        // #endif
        // #ifdef PUB_CUSTOMER
        this.$storage.getItem('cache_customer_info')
        // #endif
                    if (!tjson) {
                        this.$message.showToast('没有合伙人信息请返回重新填写')
          this.$message.showToast('没有填写用户信息请返回重新填写')
                        return
                    }
                    var dto = JSON.parse(tjson)
@@ -260,7 +273,7 @@
                const resp = await this.$store.dispatch('regUser', post);
                // uni.hideLoading()
                if (resp.code == 0) {
      if (resp.code === 0) {
                    // myCache.cache("userToken", res.data.accessToken)
                    // let userRes = await gzmzApi.getMemberInfo();
@@ -296,7 +309,6 @@
                    //                 this.toLogin()
                    //             }, 1000);
                    //         }
                    //     } else {
pages/user/supplier-user.vue
@@ -32,8 +32,9 @@
          </view>
          <view class="t2">{{ currentInfo.tel || '暂无电话' }}</view>
        </view>
        <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="getUserProfile"
        <view class="name" v-if="!currentInfo.id" open-type="getUserInfo" @click.stop="toCustomerLogin"
              style="font-size: 48rpx;margin-top: 16rpx;">
          <!-- getUserProfile -->
          {{ '点击登陆' }}
        </view>
        <image class="icon-setting" src="../../static/common/icon-setting.png" mode="aspectFit"></image>
@@ -138,7 +139,7 @@
    </view>
    <!-- #endif -->
    <view class="user-utils m-20">
      <view class="user-util m-t-12 flex" @click="goto('/pages/user/user-info/user-info',true)">
      <view class="user-util m-t-12 flex" @click="goto('/sub_pages/customer/customer-info/customer-info',true)">
        <view class="title">个人信息</view>
        <view class="right-icon">
          <uni-icons type="right"></uni-icons>
@@ -302,9 +303,12 @@
      uni.makePhoneCall({
        phoneNumber: this.tel //仅为示例
      });
    }
    },
    toCustomerLogin() {
      uni.navigateTo({
        url: '/pages/login/supplier-login'
      })
    },
  }
}
</script>
pages/user/user-info/user-info.vue
@@ -60,7 +60,7 @@
</template>
<script>
    const appId = 'wxafc5aaa0fc79532b'; //需要替换成实际的
    const appId = 'wx1441324401626290'; //需要替换成实际的
    import WXBizDataCrypt from '@/plugins/WXBizDataCrypt.js';
    import {
        mapState
store/index.js
@@ -380,7 +380,7 @@
                    }
                })
                console.log('resp', resp)
                if (resp && resp.code == 0) {
                if (resp && resp.code === 0) {
                    storage.setItem('token', resp.data.access_token)
                    commit("updateLogin", true)
                    await dispatch('getCurrentInfo')
@@ -396,7 +396,7 @@
        },
        submitShopping: async function ({commit, dispatch}, data) {
            const resp = await http.request('post', '/api/api/customer/flower/cart/change-num', {
            const resp = await http.request('post', '/api/customer/flower/cart/change-num', {
                    data: {
                        id: data.id,
                        num: 1
sub_pages/customer/customer-info/customer-info.vue
对比新文件
@@ -0,0 +1,373 @@
<template>
  <view class="container-page" style="padding: 0rpx;">
    <view v-if="source==='step'" class="m-t-20">
      <u-steps current="0">
        <u-steps-item title="信息填写" class="u-steps-item" style="font-size: 28rpx;">
        </u-steps-item>
        <u-steps-item title="提交申请"   class="u-steps-item"></u-steps-item>
      </u-steps>
    </view>
    <view class="p20">
      <view class="form-item before-line">
        <view class="label required">店铺名称</view>
        <view class="m-l-a m-r-0 flex">
          <input v-model="dto.name" placeholder="请输入联系人姓名"
                 style="margin-top: 16px;text-align: right;"></input>
        </view>
      </view>
      <view class="form-item before-line">
        <view class="label ">地区</view>
        <view class="m-l-a m-r-0 flex " :class="[!dto['province']?'desc-gray':'']">
          <uni-data-picker :area="true" @change="(e)=>{PickArea(dto,e)}" placeholder=""
                           :localdata="regionDataPlus">
            {{ dto['province'] || '请选择' }}{{ dto['city'] && ('/' + dto['city']) || '' }}{{
              dto['region'] && ('/' + dto['region']) || ''
            }}
          </uni-data-picker>
          <u-icon class="m-l-a" name="arrow-right"></u-icon>
        </view>
      </view>
      <view class="form-item before-line">
        <view class="label ">地址</view>
        <view class="m-l-a m-r-0 flex">
          <input v-model="dto.address" placeholder="请输入地址"
                 style="margin-top: 16px;text-align: right;"></input>
        </view>
      </view>
      <view class="form-item before-line">
        <view class="label ">店铺简介</view>
        <view class="m-l-a m-r-0 flex1">
          <view  class="m-t-12 m-b-12">
            <u-textarea v-model="dto.description" placeholder="请输入店铺简介">
            </u-textarea>
          </view>
<!--          <input v-model="dto.description" placeholder="请输入地址"-->
<!--                 style="margin-top: 16px;text-align: right;"></input>-->
        </view>
      </view>
      <view class="form-item before-line m-t-20" @click="uploadIcon">
        <view class="label ">上传店铺封面</view>
        <view class="m-l-a m-r-0 flex m-b-12">
          <view class="component-button-upload">
          </view>
        </view>
      </view>
      <view class="flex p20" style="padding-top: 0rpx;padding-bottom: 10rpx"
            v-if="dto.cover">
        <view class="m-t-12 m-r-10">
          <image class="banner-img" :src="dto.cover" @click.stop="previewImg(dto.cover)">
          </image>
          <view class="t-red text-center" @click.stop="dto.cover=''">删除</view>
        </view>
      </view>
      <view class="button-green-1 m-t-20 button-fixed-bottom before-line " @click="submit">
        {{source==='step'?'下一步':'更新'}}
      </view>
    </view>
    <view style="min-height: 200rpx;">
      &nbsp;
    </view>
  </view>
</template>
<script>
import environments from '@/environments'
import {
  mapState
} from 'vuex'
export default {
  data() {
    return {
      id: '',
      source: '',
      refresh: false,
      api: '',
      dto: {
        cover: '',
        address: '',
        id: '',
        userId: '',
        name: '',
        description: '',
        province: '',
        city: '',
        region: '',
      },
      requireFields: [
        {
          name: '店铺名称',
          key: 'name'
        }
      ],
      regionDataPlus: [],
    }
  },
  onLoad(options) {
    //判断是不是来自登录步骤,是等话需要从缓存里面拿信息
    this.source = options.source || ''
    if (this.source === 'step') {
      var tjson = this.$storage.getItem('cache_customer_info')
      if (tjson) {
        this.dto = {
          ...this.dto,
          ...JSON.parse(tjson)
        }
      }
    } else {
      this.getCurrentInfo()
    }
    this.init_area()
  },
  methods: {
    PickArea(item, e) {
      console.log('PickArea', item, e)
      if (e.detail.value) {
        this.dto.province = ''
        this.dto.city = ''
        this.dto.region = ''
        if (e.detail.value.length <= 3) {
          if (!!e.detail.value[0])
            this.dto.province = e.detail.value[0].value
          if (!!e.detail.value[1])
            this.dto.city = e.detail.value[1].value
          if (!!e.detail.value[2])
            this.dto.region = e.detail.value[2].value
        } else {
          //说明有重复的
          var plusnum = e.detail.value.length - 3
          if (!!e.detail.value[plusnum + 0])
            this.dto.province = e.detail.value[plusnum + 0].value
          if (!!e.detail.value[plusnum + 1])
            this.dto.city = e.detail.value[plusnum + 1].value
          if (!!e.detail.value[plusnum + 2])
            this.dto.region = e.detail.value[plusnum + 2].value
        }
        this.$forceUpdate()
      }
    },
    async init_area() {
      const res = await this.$http.request('get', '/api/pub/china/area/json')
      // console.log('area', JSON.parse(res.data))
      this.regionDataPlus = res.data && JSON.parse(res.data.replaceAll('code', 'value').replaceAll('name',
          'text')) || []
    },
    async getCurrentInfo() {
      this.$message.showLoading()
      const {
        code,
        data
      } = await this.$http.request('get', "/api/current/customer", {})
      if (code === 0) {
        this.dto = {
          ...data,
        }
        this.dto.userId = this.currentInfo.id
      }
      this.$message.hideLoading()
    },
    async submit() {
      for (var field of this.requireFields) {
        if (!this.dto[field.key]) {
          this.$message.showToast(`${field.name}信息未填写`)
          return
        }
      }
      await this.$message.confirm(`是否确定提交更新信息`)
      if (this.source === 'step') {
        //先保存下来,进入下一步,然后注册成功后再保存
        this.$storage.setItem("cache_customer_info", JSON.stringify({
          ...this.dto
        }))
        uni.navigateTo({
          url: '/pages/login/supplier-reg?source=step'
        })
      } else {
        var dto = {
          ...this.dto,
        }
        this.$message.showLoading()
        const re = await this.$http.request('post', '/api/customer/addOrUpdate', {
          data: dto
        })
        this.$message.hideLoading()
        if (re.code == 2000 || re.code == 0) {
          this.$message.showToast('操作成功')
          this.$store.dispatch('getCurrentInfo')
          this.backpage()
        } else {
          console.log('error re', re)
          if (re.code === 30000 && Array.isArray(re.msg)) {
            this.$message.showToast('字段未填写完整')
          }
        }
      }
    },
    uploadIcon() {
      const that = this
      uni.chooseImage({
        count: 1, // 最多可以选择的图片张数,默认9
        sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
        sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
        success: function ({
                             errMsg,
                             tempFiles
                           }) {
          if (errMsg === 'chooseImage:ok') {
            if (tempFiles[0].size > 1024 * 1024 * 5) {
              that.$message.confirm('图片最多支持5M大小,超出大小限制')
              return
            }
            that.$message.showLoading()
            that.$http.upload(tempFiles[0].path).then(async res => {
              var pic = res.data && res.data.length > 0 && res.data[
                  0] || {}
              that.$message.hideLoading()
              that.dto.cover = (pic || {}).url || ''
              console.log('pic',that.dto)
              that.$forceUpdate()
            }).catch(res => {
              that.$message.hideLoading()
            })
          }
        }
      })
    },
  },
  computed: {
    ...mapState(['currentInfo'])
  },
  components: {}
}
</script>
<style lang="scss" scoped>
.banner-img {
  width: 96rpx;
  height: 96rpx;
  border-radius: 4rpx;
  border: 2rpx dashed #CECECE;
}
.form-item {
  // padding: 40rpx;
  border-bottom: 2rpx solid #F3F3F3;
  display: flex;
  // height: 100px;
  .label {
    width: 300rpx;
    line-height: 60px;
  }
  .flex {
    line-height: 60px;
    .flex1 {
      flex: 1;
      text-align: center;
      color: var(--selfblue)
    }
  }
}
.form-item.bottom-border-no {
  border-bottom: none;
}
.container-page {
  padding: 40rpx;
  background-color: #FFFFFF;
  // min-height: calc(100vh - 80rpx);
  min-height: 100vh;
}
.style {
  width: fit-content;
  margin: 0 auto;
  line-height: 64rpx;
  border-radius: 8rpx;
  padding-left: 20rpx;
  padding-right: 20rpx;
  // padding-top: 5rpx;
  // padding-bottom: 5rpx;
  border: 2rpx solid var(--selfblue);
  background-color: var(--selfbluebg);
  min-width: 100rpx;
}
.style-1 {
  border: 1px solid rgb(122, 187, 255);
  border: 1px solid #409EFF;
  color: #409EFF;
  background-color: rgb(240, 247, 255);
}
.style-2 {
  border: 1px solid rgb(255, 184, 78);
  border: 1px solid #FE9044;
  color: #FE9044;
  background-color: rgb(255, 247, 235);
}
.style-3 {
  border: 1px solid #19be6b;
  color: #19be6b;
  background-color: rgb(231, 244, 238);
}
.style-4 {
  border: 1px solid #F56c6c;
  color: #F56c6c;
  background-color: rgb(254, 243, 243);
}
</style>
sub_pages/customer/shopping/confirm.vue
@@ -186,20 +186,24 @@
      <view class="form-item p10">
        <view class="label">特殊需求</view>
        <view class="m-l-a m-r-0 flex text-right">
        <view class="m-l-a m-r-0 flex1 text-right">
          <view  class="m-t-12 m-b-12">
          <u-textarea v-model="dto.remarks" placeholder="请输入特殊需求">
          </u-textarea>
        </view>
      </view>
      </view>
      <view class="form-item p10">
        <view class="label">留言</view>
        <view class="m-l-a m-r-0 flex text-right">
        <view class="m-l-a m-r-0 flex1 text-right">
          <view  class="m-t-12 m-b-12">
          <u-textarea v-model="dto.remarks" placeholder="填写内容需与卖家协商并确认">
          </u-textarea>
        </view>
      </view>
      </view>
    </view>
    <view class="bottom-price flex">
sub_pages/customer/shopping/shopping.vue
@@ -106,6 +106,7 @@
      })
      return totalprice.toFixed(2)
    },
  },
    methods: {
      async submitPay() {
        // order/confirm/info
@@ -140,7 +141,7 @@
        //删除商品,重新加载数据?
        this.$message.showLoading()
        const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', {
      const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
              data: {
                id: dto.id,
                num: addnum
@@ -237,7 +238,7 @@
          return
        }
        this.$message.showLoading()
        const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', {
      const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
              data: {
                id: dto.id,
                num: addnum
@@ -260,7 +261,6 @@
        }
      }
    },
  }
}
</script>
sub_pages/customer/trade/list.vue
@@ -303,7 +303,7 @@
        return
      }
      this.$message.showLoading()
      const {code} = await http.request('post', '/api/api/customer/flower/cart/change-num', {
      const {code} = await http.request('post', '/api/customer/flower/cart/change-num', {
            data: {
              id: item.id,
              num: addnum
sub_pages/partner/partner-info/partner-info.vue
@@ -65,7 +65,7 @@
            <view class="form-item before-line m-t-20" @click="uploadIcon('idCards')">
                <view class="label required">上传身份证正反面</view>
                <view class="m-l-a m-r-0 flex">
                    <view class="component-button-upload" @click="uploadIcon('idCards')">
                    <view class="component-button-upload">
                    </view>