1
admin
2026-01-07 29f3a095dc58860849cdaa0b057b9fab495e5f6d
1
11 files modified
3 files added
516 ■■■■ changed files
src/assets/home/在线客服.png patch | view | raw | blame | history
src/assets/home/实名认证.png patch | view | raw | blame | history
src/assets/img/kf.png patch | view | raw | blame | history
src/axios/api.js 5 ●●●●● patch | view | raw | blame | history
src/locales/en.js 4 ●●●● patch | view | raw | blame | history
src/locales/tw.js 4 ●●●● patch | view | raw | blame | history
src/locales/zh.js 4 ●●●● patch | view | raw | blame | history
src/page/home/Subscription.vue 27 ●●●● patch | view | raw | blame | history
src/page/home/home.vue 16 ●●●● patch | view | raw | blame | history
src/page/home/listcomponents/dazongjiaoyi.vue 34 ●●●●● patch | view | raw | blame | history
src/page/home/listcomponents/xingusg.vue 36 ●●●●● patch | view | raw | blame | history
src/page/login/register.vue 127 ●●●●● patch | view | raw | blame | history
src/page/newUser/index.vue 115 ●●●●● patch | view | raw | blame | history
src/page/newUser/setup.vue 144 ●●●●● patch | view | raw | blame | history
src/assets/home/在线客服.png
src/assets/home/实名认证.png
src/assets/img/kf.png
src/axios/api.js
@@ -444,6 +444,11 @@
  return post('/user/upload.do', options)
}
// 更新用户头像
export function updatePhoto(options) {
  return post('/api/user/updatePhoto.do', options)
}
// 查询点差费率
export function findSpreadRateOne(options) {
  return post('/api/user/findSpreadRateOne.do', options)
src/locales/en.js
@@ -817,6 +817,10 @@
  jy539: "Exit Account",
  jy540: "Please enter trading password",
  jy541: "One-click Full Position",
  jy542: "Bank to Securities Transfer",
  jy543: "Securities to Bank Transfer",
  jy544: "Discount Rate",
  jy545: "Remaining Share Percentage",
  
}
src/locales/tw.js
@@ -820,5 +820,9 @@
  jy539: "退出賬戶",
  jy540: "請輸入交易密碼",
  jy541: "一鍵全倉",
  jy542: "銀證轉入",
  jy543: "銀證轉出",
  jy544: "折價率",
  jy545: "剩餘份額百分比",
  
}
src/locales/zh.js
@@ -819,5 +819,9 @@
  jy539: "退出账户",
  jy540: "请输入交易密码",
  jy541: "一键全仓",
  jy542: "银证转入",
  jy543: "银证转出",
  jy544: "折价率",
  jy545: "剩余份额百分比",
  
};
src/page/home/Subscription.vue
@@ -3,16 +3,17 @@
        <div class="heabox">
            <div class="toubu">
                <span class="fanhui" @click="$router.go(-1)"></span>
                <van-tabs v-model="tabactive" class="ghbn" @click="getNewsList" color="#ffffff"
                <div class="title-text">{{ getTitle() }}</div>
                <!-- <van-tabs v-model="tabactive" class="ghbn" @click="getNewsList" color="#ffffff"
                    title-inactive-color="#ffffff" title-active-color="#ffffff"
                    background="transparent">
                    <van-tab :title="$t('jy534')" name="1"></van-tab>
                    <van-tab :title="$t('jy189')" name="2"></van-tab>
                    <van-tab :title="$t('jy187')" name="3"></van-tab>
                    <!-- <van-tab title="新债配售" name="4"></van-tab> -->
                    <van-tab :title="$t('jy536')" name="4"></van-tab>
                    <van-tab :title="$t('jy188')" name="5"></van-tab>
                </van-tabs>
                </van-tabs> -->
            </div>
            <div class="suo" @click="getsearch"><a class="tr"></a></div>
        </div>
@@ -68,6 +69,16 @@
              path: '/Searchlist'
            })
            // }
        },
        getTitle() {
            const titleMap = {
                '1': this.$t('jy534'), // 战略配售
                '2': this.$t('jy189'), // 新股抢筹
                '3': this.$t('jy187'), // 新债申购
                '4': this.$t('jy536'), // 折价交易
                '5': this.$t('jy188')  // VIP抢筹
            };
            return titleMap[String(this.tabactive)] || this.$t('jy534');
        }
    },
}
@@ -102,6 +113,16 @@
            margin-left: 0.32rem;
        }
        .title-text {
            flex: 1;
            text-align: center;
            color: #ffffff;
            font-size: 0.48rem;
            font-weight: 500;
            line-height: 1.2rem;
            margin-top: 0.45rem;
        }
        .ghbn {
            width: 100%;
        }
src/page/home/home.vue
@@ -16,7 +16,7 @@
          <div class="lingdang-wrapper" @click="$router.push('/notify')" v-if="isLoggedIn">
            <img
              class="lingdang"
              src="../../assets/ico/lingdang.png"
              src="@/assets/img/消息中心.png"
              alt=""
            />
            <span v-if="unreadCount > 0" class="lingdang-badge"></span>
@@ -67,7 +67,7 @@
    <div class="dang">
      <div class="xbox" @click="$router.push('/smrz')">
        <img
          src="data:image/png;base64,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" />
          src="@/assets/home/实名认证.png" />
        <p>{{ $t("hj146") }}</p>
      </div>
      <!-- <div class="xbox" @click="getHeaderlink1(1)">
@@ -104,7 +104,7 @@
      <div class="xbox" @click="$router.push('/recharge')">
        <img
          src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAA6CAYAAADhu0ooAAAAAXNSR0IArs4c6QAABWpJREFUaEPtWl1sFFUU/s7spluVH6m1y8xssDYEDcaAhCBsl5b+PIhoYkiA4Is/iUFRQR/EaDAYiA8mPmhAIRKivhCFaIwi8gCldtsCCmIwEkkqNs3u3S4tIDFgO9mZY+6GNrvD1s7uztKp7H2953zn++bcmbnn3Eu4RQbdIjpRFvp/y3Q5oyMZDQaDdwQCgQqvZnh4eNhIJpNXx+OXM6O6rrcw85MAlgNQxwPxwHwCwPdEtDcejx/JxSdLaDAYrPP5fB8DaPEA+UIpHDZNc10ymTyfCTAqNBQKLbIs6xCAGYVG8JDfJUVRlsdisR9HOKWF6roeYuafAdztIbLFUrloWdbC/v7+XgmUFqqq6ndE9OgYyNcAJImIi43stj8zS/5BALfnwmbmg4lEYkVaqKZpEQDRHIbnmHljIpE4DMB0m6SLeD5VVVuJ6AMA9+XAXSqE6JRCtwN4KdOAmf8IBAILe3t7/3KRUEmhamtr7zQM4ycAs22BdgghXpZCf8/xJNYKIT4vKbMSgGuatgaAnfc5IcT9Uug/ACoz4/r9/qq+vr7LJeBSUshZs2bNSKVSl2xBhoQQt0mhN3xkhBCTdms4lp6y0JKusRKClzNafkdLuLxKCV1euvksXU3TNgHYCEBzmJU+AFuFEHvGso9GIjN8FYosKGodYkqzAWbeHT4a3UxA1u+x6Izqur6CmQ/kQWbElBVFWZxZMo1OAHSsufErgJ8oABcMera+7YdPMn2LFqqq6jYi2lwIIbmXFkJ8aPftamrcQMRyM17o2BVu63jBVaGapj0O4JtCGCmK8rA9o53Lli1UFKsLQMH9KAI/s6Qt+qmrQiWYqqpvEtGrAKodCu4H8I4QYkem/cnW1umGZcj3ss4hjt3sCjPviVfP3LR6//6sErLopVsgoZxu3c0N+wCsyjH5Xrit47ViYnlGaFdT43oivuF9JcLxaVWDjQ/sP2tMeqHdrQ0PwUK3vSwEcJksZcGS9vZ0f6eYMeEZ7ayvn0oB30kC5tiEMIhXho9Evy5G4IjvhAvtbl66F6C1djEM3l7fFt3ghkiJ4YpQBuh4U2QRFP/UfIhZbC0mYNuNPnRq+l0DYflehkKhBy3Lkh09J+OaEEL2bFN246KF/rZqbsWVi9UHXeziXzHJWrD0SOd5TdPkx2m9E4UZNqcMw2gaHBz829X/aHdLwzowduVJZkxzYqxZcrRj33+0W52E2iKE2Oqq0GPNDVsYeNtJ9PFsGLyzvi2azqCqqiuJ6MvxfMaY/0gI8aKrQk+0ROaYrJweqyueB9HTw5YSbmpvH5I+VVVV0yorK88AuCcPDGlqKopSH4vFTrgqVIJFmyLz/EQbGTQlT1Kj5habb0WOdp3L9A+FQrplWW8AqHGIK49Jdgsh5F45axT9MXJIYMLNykLz6TBMeLocEChn9FbK6IC9kE6lUjMvXLiQdLBSPGVSU1MT9Pv9stjPHFeFEFPk2Yv8N87PnCGi9fF4fKenVDggo+v688xs531GCDGPdF1/X55s23AGFEUJx2KxHgf4njAJhUKzLcuStW7WPQx5Eh6Px1+h61XDLwAUG+OLALYA+FYIEffo8b5P0zQdgGzcye2pvZdlKYoyPxaL/Zo+B9U0TXbSnvJEatwl8ZkQ4mkJmRZaV1c3fWhoSO4Zc112cDf0zUPrud5mTZ+Aj55sB4PBe30+n+zEz715XEoW6axpmo8lk8k/RyJkHeFXV1dPraioeBfAcwD8JaNROmDZcdhtGMbr9oI8512F63cCVxPRI8wsr7PkvLBUOr55IV8joh5mPmSa5heZWcz6ZeYFOYmNJ+3tk3yfeVlovk/M6/bljHo9Q/ny+xcuWZRZFpiovgAAAABJRU5ErkJggg==" />
        <p>{{ $t("jy522") }}</p>
        <p>{{ $t("jy542") }}</p>
      </div>
      <!-- <div class="xbox" @click="getHeaderlink1(4)">
@@ -123,7 +123,7 @@
      <div class="xbox" @click="$router.push('/withdraw')">
        <img
          src="data:image/png;base64,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" />
        <p>{{ $t("jy521") }}</p>
        <p>{{ $t("jy543") }}</p>
      </div>
      <!-- <div class="xbox" @click="getHeaderlink1(5)">
@@ -194,7 +194,7 @@
      
      <div class="xbox" @click="getHeaderlink(4)">
        <img
          src="data:image/png;base64,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" />
          src="@/assets/home/在线客服.png" />
        <p>{{ $t("jy186") }}</p>
      </div>
    </div>
@@ -510,7 +510,7 @@
      switch (val) {
        case 1:
          this.$router.push({
            path: "/Subscription"
            path: "/Subscription?idx=1"
          });
          break;
        case 2:
@@ -659,8 +659,8 @@
        display: inline-block;
        
        .lingdang {
          width: 0.4rem;
          height: 0.4rem;
          width: 0.55rem;
          height: 0.55rem;
          display: block;
        }
        
src/page/home/listcomponents/dazongjiaoyi.vue
@@ -11,7 +11,12 @@
            </div>
        </div>
        <div class="dbox">
            <div class="daz"><span class="d1">{{ $t("MingCheng") }}</span><span class="d2">{{ $t("hj81") }}</span><span class="d3"></span></div>
            <div class="daz">
                <span class="d1">{{ $t("MingCheng") }}</span>
                <span class="d2">{{ $t("hj81") }}</span><span class="d3"></span>
                <span class="d2">{{ $t("jy544") }}</span><span class="d3"></span>
                <span class="d2">{{ $t("jy545") }}</span><span class="d3"></span>
            </div>
        </div>
        <div class="list" v-for="(item, index) in dazongList" :key="index">
            <div class="lbox">
@@ -22,11 +27,13 @@
                        <span class="sh" v-if="item.stockType == 'sh'">{{ $t("jy84") }}</span>
                        <span class="bj" v-if="item.stockType == 'bj'">{{ $t("jy85") }}</span>
                        <a :class="item.stockType == 'sh' ? 'shbg' : item.stockType == 'bj' ? 'bjbg' : ''">{{
                                item.stockGid
                            item.stockGid
                        }}</a>
                    </p>
                </div>
                <div class="lb2"> {{ item.price }} </div>
                <div class="lb2"> {{ item.discount }}</div>
                <div class="lb2"> {{ item.residualShare }}%</div>
                <div class="lb3"><a @click="getdetail(item)">{{ $t("hj238") }}</a></div>
            </div>
        </div>
@@ -37,10 +44,13 @@
                <h6>{{ currentItem.price ? currentItem.price : '' }}</h6>
                <div class="erty tghj"><input :placeholder="$t('jy87')" type="number" class="inpy" v-model="num"
                        @input="num = num.replace(/^(0+)|[^\d]+/g, '')"><a>{{ $t("hj117") }}</a></div>
                <p class="plm"><span>{{ $t("jy88") }}</span><a>{{ currentItem.price ? (currentItem.price * num * 100).toFixed(2) :
                        '0.00'
                }}</a></p>
                <div class="erty"><input :placeholder="$t('jy89')" type="password" class="inpy" v-model="password"></div>
                <p class="plm"><span>{{ $t("jy88") }}</span><a>{{ currentItem.price ? (currentItem.price * num *
                    100).toFixed(2) :
                    '0.00'
                        }}</a>
                </p>
                <div class="erty"><input :placeholder="$t('jy89')" type="password" class="inpy" v-model="password">
                </div>
                <p class="plm"><span>{{ $t("hj54") }}</span><a>{{ userinfo.enableAmt }}</a></p>
                <div class="maik" @click="getxiadan">{{ $t("hj85") }}</div>
            </div>
@@ -69,8 +79,8 @@
        this.getUserInfo()
    },
    methods: {
        sharerecordDz(){
            this.$router.push({path:'/sharerecordDz'})
        sharerecordDz() {
            this.$router.push({ path: '/sharerecordDz' })
        },
        getdetail(item) {
            this.currentItem = item
@@ -143,10 +153,11 @@
        }
        .d3 {
            width: 40%;
            width: 15%;
        }
    }
}
.kuange {
    width: 5.34rem;
    margin: 0 auto;
@@ -158,6 +169,7 @@
        text-align: center;
        margin: 0 auto;
        margin-bottom: 0.5rem;
        img {
            width: 0.51rem;
            height: 0.51rem;
@@ -251,7 +263,7 @@
                display: inline-block;
                width: 1.6rem;
                height: 0.67rem;
                background: linear-gradient(-55deg,rgb(241, 22, 20),rgb(240, 40, 37));
                background: linear-gradient(-55deg, rgb(241, 22, 20), rgb(240, 40, 37));
                border-radius: 0.35rem;
                text-align: center;
                color: #fff;
@@ -363,7 +375,7 @@
    .maik {
        width: 9.21rem;
        height: 1.07rem;
        background: linear-gradient(-55deg,rgb(241, 22, 20),rgb(240, 40, 37));
        background: linear-gradient(-55deg, rgb(241, 22, 20), rgb(240, 40, 37));
        border-radius: 0.26rem;
        margin: 0 auto;
        margin-top: 0.56rem;
src/page/home/listcomponents/xingusg.vue
@@ -13,7 +13,7 @@
        <div class="sange">
            <span v-for="(item, index) in shengouTab" :key="index" @click="gettab(index)"
                :class="shengouIdx == index ? 'xuan' : ''">{{
                        item.name
                    item.name
                }}</span>
        </div>
        <div>
@@ -24,33 +24,45 @@
                        <div class="shl">
                            <h6>{{ item.name }}</h6>
                            <p>
                                <span v-if="item.stockType == $t('jy83') || item.stockType == $t('jy92')">{{ $t('jy83') }}</span>
                                <span class="sh" v-if="item.stockType == $t('jy84') || item.stockType == $t('jy93')">{{$t('jy84')}}</span>
                                <span v-if="item.stockType == $t('jy83') || item.stockType == $t('jy92')">
                                    {{ $t('jy83') }}
                                </span>
                                <span class="sh" v-if="item.stockType == $t('jy84') || item.stockType == $t('jy93')">
                                    {{ $t('jy84') }}
                                </span>
                                <span class="bj" v-if="item.stockType == $t('jy85')">{{ $t('jy85') }}</span>
                                <a
                                    :class="(item.stockType == $t('jy84') || item.stockType == $t('jy93')) ? 'shbg' : item.stockType == $t('jy85') ? 'bjbg' : ''">{{
                                            item.code
                                    }}</a>
                                    :class="(item.stockType == $t('jy84') || item.stockType == $t('jy93')) ? 'shbg' : item.stockType == $t('jy85') ? 'bjbg' : ''">
                                    {{ item.code }}
                                </a>
                            </p>
                        </div>
                        <div v-if="shengouIdx == 0">
                            <div class="she1" @click="getshengou(1, item)"><span
                                    style="font-size: 0.32rem;"> {{ $t("jy98") }}</span><span> {{ $t("jy94") }}</span></div>
                            <div class="she2" @click="getshengou(2, item)"><span
                                    style="font-size: 0.32rem;"> {{ $t("jy99") }}</span><span> {{ $t("jy100") }}</span></div>
                            <div class="she1" @click="getshengou(1, item)"><span style="font-size: 0.32rem;"> {{
                                $t("jy98") }}</span><span> {{ $t("jy94") }}</span></div>
                            <div class="she2" @click="getshengou(2, item)"><span style="font-size: 0.32rem;"> {{
                                $t("jy99") }}</span><span> {{ $t("jy100") }}</span></div>
                        </div>
                        <p class="shr" v-if="shengouIdx == 1"> {{ $t("hj59") }}
                            <span>{{ dayjs(item.subscribeTime).format('YYYY-MM-DD') }}</span>
                        </p>
                    </div>
                    <div class="shead shn" style="padding-top: 0px !important;" v-if="shengouIdx == 0">
                        <p class="shr"> {{ $t("hj59") }} <span>{{ dayjs(item.subscribeTime).format('YYYY-MM-DD') }}</span></p>
                        <p class="shr">
                            {{ $t("hj59") }}
                            <span>{{ dayjs(item.subscribeTime).format('YYYY-MM-DD') }}</span>
                        </p>
                    </div>
                    <div class="plkm">
                        <p><span> {{ $t("jy101") }}</span><a>{{ item.price }}/ {{ $t("jy96") }}</a></p>
                        <p><span> {{ $t("jy102") }}</span><a>{{ item.pe }}</a></p>
                        <p style="display: none;"><span> {{ $t("jy103") }}</span><a> 0.75{{ $t("jy104") }}</a></p>
                        <p><span> {{ $t("jy105") }}</span><a>{{ item.orderNumber }} {{ $t("jy104") }}</a></p>
                        <p><span> {{ $t("jy545") }}</span><a>{{ item.residualShare || '--' }}%</a></p>
                    </div>
                </div>
            </van-list>
@@ -156,7 +168,7 @@
        getfilterdate(list) {
            if (this.shengouIdx == 0) {
                for (let i = 0; i < list.length; i++) {
                    if (this.dayjs(list[i].subscribeTime).format('YYYY-MM-DD') == this.dayjs(new Date().getTime()).format('YYYY-MM-DD')) {
                    if (this.dayjs(list[i].subscribeTime).format('YYYY-MM-DD') <= this.dayjs(new Date().getTime()).format('YYYY-MM-DD')) {
                        this.shengouList.push(list[i])
                    }
                }
src/page/login/register.vue
@@ -46,34 +46,30 @@
        </el-select>
        <input :placeholder="$t('jy311')" v-model="phone" />
      </div>
      <div class="flex">
      <!-- <div class="flex">
        <span></span>
        <input :placeholder="$t('jy459')" v-model="yzmCode" type="text" />
        <div class="num" @click="getCodeRandom()" :class="{ block: !showTime }">
          {{ $t("jy455") }}
        </div>
        <div class="num" :class="{ block: showTime }">{{ countNum }}</div>
      </div>
      </div> -->
      <div class="formDemos">
        <span class="pwdIcon"></span>
        <input
          :placeholder="$t('hj30')"
          v-model="userPassword"
          type="password"
        />
        <input :placeholder="$t('hj30')" v-model="userPassword" type="password" />
      </div>
      <div class="formDemos">
        <span class="pwdIcon"></span>
        <input
          :placeholder="$t('jy312')"
          v-model="rePassword"
          type="password"
        />
        <input :placeholder="$t('jy312')" v-model="rePassword" type="password" />
      </div>
      <div class="formDemos">
      <!-- <div class="formDemos">
        <span class="pwdIcons"></span>
        <input :placeholder="$t('jy313')" v-model="userName" />
      </div>
      </div> -->
    </div>
    <div class="loginBtn" v-loading="loginBtn" @click="gook">
@@ -124,7 +120,7 @@
      yzmCode: ""
    };
  },
  mounted() {},
  mounted() { },
  methods: {
    setTime() {
      let TIME_COUNT = 60;
@@ -142,17 +138,17 @@
        }, 1000);
      }
    },
    getCodeRandom(){
        const code = Math.floor(1000 + Math.random() * 9000).toString();
        this.yzmCode = code;
        this.setTime();
    },
    getCodeRandom() {
      const code = Math.floor(1000 + Math.random() * 9000).toString();
      this.yzmCode = code;
      this.setTime();
    },
    async send() {
       // 手机号码验证
      // 手机号码验证
      const phoneRegex = /^1[3-9]\d{9}$/;
      if (isNull(this.phone)) {
        return Toast(this.$t("hj29"));
      } else if(!phoneRegex.test(this.phone)){
      } else if (!phoneRegex.test(this.phone)) {
        return Toast(this.$t("hj28"));
      }
      let data = await api.sendRegSms({
@@ -169,8 +165,8 @@
      if (
        this.userPassword !== "" &&
        this.phone !== "" &&
        this.userPassword == this.rePassword &&
        this.userName != ""
        this.userPassword == this.rePassword
        // && this.userName != ""
      ) {
        this.btnClass = true;
      } else {
@@ -288,15 +284,17 @@
        // }, 2000)
        Toast(this.$t("hj28"));
        this.loginBtn = false;
      } else if (isNull(this.yzmCode)) {
        // this.texts = this.$t('hj30')
        // this.alertShow = true
        // setTimeout(() => {
        //   this.alertShow = false
        // }, 2000)
        Toast(this.$t("jy459"));
        this.loginBtn = false;
      } else if (isNull(this.userPassword)) {
      }
      //  else if (isNull(this.yzmCode)) {
      //   // this.texts = this.$t('hj30')
      //   // this.alertShow = true
      //   // setTimeout(() => {
      //   //   this.alertShow = false
      //   // }, 2000)
      //   Toast(this.$t("jy459"));
      //   this.loginBtn = false;
      // }
      else if (isNull(this.userPassword)) {
        // this.texts = this.$t('hj30')
        // this.alertShow = true
        // setTimeout(() => {
@@ -331,21 +329,23 @@
          // }, 2000)
          Toast(this.$t("hj19"));
          this.loginBtn = false;
        } else if (isNull(this.userName)) {
          // this.texts = this.$t('hj33')
          // this.alertShow = true
          // setTimeout(() => {
          //   this.alertShow = false
          // }, 2000)
          Toast(this.$t("hj33"));
          this.loginBtn = false;
        } else {
        }
        // else if (isNull(this.userName)) {
        //   // this.texts = this.$t('hj33')
        //   // this.alertShow = true
        //   // setTimeout(() => {
        //   //   this.alertShow = false
        //   // }, 2000)
        //   Toast(this.$t("hj33"));
        //   this.loginBtn = false;
        // }
        else {
          let opts = {
            // agentCode:'4023', // SR330001
            phone: this.phone,
            yzmCode: this.yzmCode,
            // yzmCode: this.yzmCode,
            userPwd: this.userPassword,
            agentCode: this.userName
            // agentCode: this.userName
          };
          let data = await api.register(opts);
          if (data.status === 0) {
@@ -438,7 +438,7 @@
    color: #000;
    font-weight: 600 !important;
    > span {
    >span {
      font-weight: 600 !important;
    }
  }
@@ -463,7 +463,7 @@
        // background: #1e1e1e;
        border-radius: 0.3564rem;
        > input {
        >input {
          width: 100%;
          height: 100%;
          padding-left: 0.3564rem;
@@ -498,7 +498,7 @@
        font-size: 0.5128rem;
        margin-top: 0.75rem;
        > span {
        >span {
          font-weight: 530 !important;
        }
      }
@@ -547,7 +547,7 @@
    align-items: center;
    justify-content: center;
    > span {
    >span {
      font-size: 0.3046rem;
      color: #000;
      background-color: #fff;
@@ -608,7 +608,7 @@
    width: 3rem;
    height: 3.5769rem;
    > img {
    >img {
      width: 100%;
      height: 100%;
    }
@@ -666,16 +666,17 @@
  background-size: 100%;
  position: relative;
}
.bock {
  position: absolute;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAVdJREFUSEut1usqBVEYxvH/c1MuRJJDkhwTEpIkJUlyCEk++CJJckpycw49Gs3Wa+y9Z82ePd/Xr5n38KwRNR7bE0APMK1OHdtTwAWQGZcdQbZngPMc+QImK0O2Z4GzgIxLuqoE2Z4DTgMyJuk6K08yZHseOAnIqKSbRo2TINsLwHFARiTdxkaVQrYXgaOADEu6K3a7LWR7CTjMD2XdaYq0rZHtFWA/Rz6BIUn3reau6RvZXgX28kMfOfLQbnj/QbbXgN380HuOPJZtwB/I9jqwE5ABSc9lyJ8a2d4AtgPSL+klBfmFbG8CWwHpk/SaivxAtjMgg7Inq0mvpLcqSHehTOvKpzU+oSvFDlj99gesOJCDkp7Kip+yIknT3XL7C0tbum9lMbIMHKQkQEqwJWVSKZTPWTElq0dt6GYxt6uHf8DqX0cBq39BBqz+lR2w+j8RAfv9rfkGqF24CUdT9E4AAAAASUVORK5CYII=)
    no-repeat 50%;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAgCAYAAAAffCjxAAAAAXNSR0IArs4c6QAAAVdJREFUSEut1usqBVEYxvH/c1MuRJJDkhwTEpIkJUlyCEk++CJJckpycw49Gs3Wa+y9Z82ePd/Xr5n38KwRNR7bE0APMK1OHdtTwAWQGZcdQbZngPMc+QImK0O2Z4GzgIxLuqoE2Z4DTgMyJuk6K08yZHseOAnIqKSbRo2TINsLwHFARiTdxkaVQrYXgaOADEu6K3a7LWR7CTjMD2XdaYq0rZHtFWA/Rz6BIUn3reau6RvZXgX28kMfOfLQbnj/QbbXgN380HuOPJZtwB/I9jqwE5ABSc9lyJ8a2d4AtgPSL+klBfmFbG8CWwHpk/SaivxAtjMgg7Inq0mvpLcqSHehTOvKpzU+oSvFDlj99gesOJCDkp7Kip+yIknT3XL7C0tbum9lMbIMHKQkQEqwJWVSKZTPWTElq0dt6GYxt6uHf8DqX0cBq39BBqz+lR2w+j8RAfv9rfkGqF24CUdT9E4AAAAASUVORK5CYII=) no-repeat 50%;
  background-size: 100%;
  width: 0.23rem;
  height: 0.41rem;
  left: 0.38461rem;
  top: 0.38461rem;
}
.logo {
  width: 2.03rem;
  height: 2.03rem;
@@ -686,11 +687,13 @@
  margin-top: -1.0153rem;
  position: relative;
}
.formInt {
  width: 8.63rem;
  margin: 0 auto;
  margin-top: 1rem;
}
.formDemo {
  display: flex;
  height: 1.26923rem;
@@ -700,6 +703,7 @@
  position: relative;
  margin-bottom: 0.253846rem;
}
.flex {
  display: flex;
  height: 1.26923rem;
@@ -707,9 +711,11 @@
  align-items: center;
  margin-bottom: 0.253846rem;
}
.block {
  display: block !important;
}
.flex input {
  background: #f5f5f5;
  height: 1.25rem;
@@ -718,6 +724,7 @@
  color: #000;
  padding-left: 0.4rem;
}
.flex .num {
  flex: 1;
  background: #f5f5f5;
@@ -729,15 +736,18 @@
  margin-left: 0.25rem;
  display: none;
}
.formDemo .el-select {
  height: 100%;
  width: 2rem;
  background: #f5f5f5;
  border: none;
}
/deep/ .formDemo .el-select .el-input {
  height: 100%;
}
/deep/ .formDemo .el-select .el-input__inner {
  height: 100%;
  border: none;
@@ -747,8 +757,7 @@
.formDemo span {
  width: 0.406rem;
  height: 0.406rem;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEAklEQVRYhbWXXWgcVRTHf2dmk1jjS4QK9qEKKamFYrDgixUfShKUipYiRgRL6iZtRUSpJpsvRCFN3V0CihY02fTDFmmKeVBTkIjBmvSh2Ddb1GLRllDMuxHzMXPkzkcy2WayOzb9s7Azd845//8998y5d4QE+PiUpubmeQHYi/A4yiaFeWAa4WdVRquqGH1znyyWG7VsAflB3S1CHtjmean3WxFF/ctfXKU90ybny4lrlTLY0TAhA0PaL8I3ZZCb/20ijOUKevTRpgslJ1jSID+onSIcXbJW/lYYVuUrV7lm26hCncAehTRwXyTykY609P5vAQNDukthHLAD8imF5vY2ubWafa6gm4ARhCeDIVWlMdMq38dxxC6BSb3CRxHyS7P/0hBHbtDRKrf+maMBuLQ0QeHD7U0/xk409kFuUBstYTwgn1tw2Np1SG7E2UfRP6gPpWx+U6gyw67S1NUq361mG5sBS3g+UnBflEtu0H1Abhif8F7huVie2CjCY2G1q1LWK1WEsYDcTGZHcgF+kwnFXE/K7irXI/4PJhag4ATOJgOJOmYgwAr9CWMlEQDMhLRiUZtUgG18lmXPJBcg/MRyh9uTVACmiAMofqxkAuDLSHttzg9rXbnc2ROe7Uuw1LJHEwtob5UpgctBgJQq5/oHtboUed+QVhtbz8cfutz1qkwlFmDguLzFcjHWp2wm88d1S5x99oRuSdlMAPUBuRPEiEXJ6s4V9B38bTjEvMJp4GsRfldfaK1leWv+ClAZvn6u0tmTluwdCfBmVtB2ET4wGdPIePGWHBlzA/Ko8FVR8jyQLehmEUxROWWSGziWxdYjx3VzqfhrZiBb0DeCs0B1DPlCcFURfe41L/9qVqGzZ798kkhAblgrgWNAKytndsVRzqoyYVn8cebcRa/BvLh35wMpm4cRdlkWLytsLxJaUHi9t0XmSwoIyM1G0hgJcg14+/ORyfNXx5/SYp8oHnn6ouxrfmK3wgBQF8mG2Y6fLRaxWg0UisiHLYv6TFrGSpEb/PrtTu3eL2PGB2E44tCocGrNDGQLmhbxBITk+UxaOkqRroW+k5ozfS0UotD2bosUbstA36e6UYRchPzM6ZHJzJ2QG/S2SEfQN8K4uZ6CbrxNQGUFh4H7A6Obiw6HrpSR8nKw6PCawk3PVKip8rmWBbx3TM3Z7WCkg3X3HJDZ9SA3eD8tsyZmZMEPZj7zOH0B997DMwo1Afl0VSUj60Ue4s8ZzqrLdHBbYziXBLjqV703YDFyOMG3Xbk42SmObfsTC86ZjUsCJDg0BhvLhfUmD+EqP4TLHHKGRVgbPrAsrt4tAY67Ira3rXsCFDb4sliwLf66WwIqUt7ZMNw/NgD8B2plfW1RGaDfAAAAAElFTkSuQmCC)
    no-repeat 50%;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEAklEQVRYhbWXXWgcVRTHf2dmk1jjS4QK9qEKKamFYrDgixUfShKUipYiRgRL6iZtRUSpJpsvRCFN3V0CihY02fTDFmmKeVBTkIjBmvSh2Ddb1GLRllDMuxHzMXPkzkcy2WayOzb9s7Azd845//8998y5d4QE+PiUpubmeQHYi/A4yiaFeWAa4WdVRquqGH1znyyWG7VsAflB3S1CHtjmean3WxFF/ctfXKU90ybny4lrlTLY0TAhA0PaL8I3ZZCb/20ijOUKevTRpgslJ1jSID+onSIcXbJW/lYYVuUrV7lm26hCncAehTRwXyTykY609P5vAQNDukthHLAD8imF5vY2ubWafa6gm4ARhCeDIVWlMdMq38dxxC6BSb3CRxHyS7P/0hBHbtDRKrf+maMBuLQ0QeHD7U0/xk409kFuUBstYTwgn1tw2Np1SG7E2UfRP6gPpWx+U6gyw67S1NUq361mG5sBS3g+UnBflEtu0H1Abhif8F7huVie2CjCY2G1q1LWK1WEsYDcTGZHcgF+kwnFXE/K7irXI/4PJhag4ATOJgOJOmYgwAr9CWMlEQDMhLRiUZtUgG18lmXPJBcg/MRyh9uTVACmiAMofqxkAuDLSHttzg9rXbnc2ROe7Uuw1LJHEwtob5UpgctBgJQq5/oHtboUed+QVhtbz8cfutz1qkwlFmDguLzFcjHWp2wm88d1S5x99oRuSdlMAPUBuRPEiEXJ6s4V9B38bTjEvMJp4GsRfldfaK1leWv+ClAZvn6u0tmTluwdCfBmVtB2ET4wGdPIePGWHBlzA/Ko8FVR8jyQLehmEUxROWWSGziWxdYjx3VzqfhrZiBb0DeCs0B1DPlCcFURfe41L/9qVqGzZ798kkhAblgrgWNAKytndsVRzqoyYVn8cebcRa/BvLh35wMpm4cRdlkWLytsLxJaUHi9t0XmSwoIyM1G0hgJcg14+/ORyfNXx5/SYp8oHnn6ouxrfmK3wgBQF8mG2Y6fLRaxWg0UisiHLYv6TFrGSpEb/PrtTu3eL2PGB2E44tCocGrNDGQLmhbxBITk+UxaOkqRroW+k5ozfS0UotD2bosUbstA36e6UYRchPzM6ZHJzJ2QG/S2SEfQN8K4uZ6CbrxNQGUFh4H7A6Obiw6HrpSR8nKw6PCawk3PVKip8rmWBbx3TM3Z7WCkg3X3HJDZ9SA3eD8tsyZmZMEPZj7zOH0B997DMwo1Afl0VSUj60Ue4s8ZzqrLdHBbYziXBLjqV703YDFyOMG3Xbk42SmObfsTC86ZjUsCJDg0BhvLhfUmD+EqP4TLHHKGRVgbPrAsrt4tAY67Ira3rXsCFDb4sliwLf66WwIqUt7ZMNw/NgD8B2plfW1RGaDfAAAAAElFTkSuQmCC) no-repeat 50%;
  background-size: 100%;
  margin-top: 0.431rem;
  margin-left: 0.25346rem;
@@ -763,24 +772,25 @@
  position: relative;
  margin-bottom: 0.253846rem;
}
.pwdIcon {
  width: 0.406rem;
  height: 0.406rem;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADMklEQVRYha2WXYhMYRjHf88xu2uJ5EZJWiFFkq8LJYRSvpILRMQ2NheIlWXJd5F2JKTY3Qi5FeFKiciNC+Vjb2R9XOyVVqHFzJ7z6Mx5j52ZPWfmHTP/5nSa877P8/+/z9c5Qploa9fxjrADWK4wEQH16EZ4qMqVlib5Uo7HsgS0tes+RzgF1Gtordlf6O2XwtGWpKSqLiDVoacFWgk4fyHcVY+XPrkIcxHWKNQbTWdaknKoagJSHbpS4L4hf66waf/2/FCf7cim5rbCfPNoVUtSHlQs4NINddJp3gBTXeV1IsG85kbpi9p77poOcz1eADMQumprmL5ni3jF/DulBKTTLPDJNTj9zjhyH/sapc/12GWONTWdydoWRUkBnrLQFFz3gSZ5Vmp/a7CnO7StWIBCg6n2d6X2/rNR3prOaKhYgONQa1rth60AhJ8E3VFbsYC8Pi8TNnY2KQhQ5sy0FR3p9my7LhwiJBUm41/CaIVegY8aY537XGECMBqhF3jvX65H5+GkPC0pINWpR1FO5J5cB6auDXn8unCsdZucjBWQ6tSVKPeNQQ/CY4W+CsmHAYsRxqpfT8Kqw9sGJmQi7/hKs3HyKlHDor1b5TtVQNtNHZnp54kKM4Fm4J8AJ5+fOeZ+oVrkPvZvke8eXDDRmZO7VtgFI0zOv1aLPETWZ+B7RLyAnIKrNkSiWzOvBkLyoq8vgyOXtW74UF4YtfMONkq6RAQGd1KhgHCDzRCpr2MMwiyC000CukrZRPktLEJrSE6eXI8htuSFHJGjWMooAtuIRZFHCyiTHEvBcSIHdUG55NnOsQhB3EstEbHXKqQZl2+1NfT65BmPTxYmkQcclALbfB5rkh/9LlNcZcrx7VLyYyXkLtqGcZUahyNJsZ+YMYOoMAK/jYBR1o4tkePzdzEB74zKddOWPavaRG5Y8VJEWB9y5K7lpcBVrjvCbMdh9eb18x/JBr3jKf3ZRVPtGsqSwSmL+mYQIeEpa4El/n9HuBYr4HOPXpkwTpYCa3wDTwOj/yXPDqn8xN/70MPViK0DOH9LE38y7FZImu/BxP+SG/gR/AC019Vw8eBGCSLqA/gLhUArt4NKdJwAAAAASUVORK5CYII=)
    no-repeat 50%;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADMklEQVRYha2WXYhMYRjHf88xu2uJ5EZJWiFFkq8LJYRSvpILRMQ2NheIlWXJd5F2JKTY3Qi5FeFKiciNC+Vjb2R9XOyVVqHFzJ7z6Mx5j52ZPWfmHTP/5nSa877P8/+/z9c5Qploa9fxjrADWK4wEQH16EZ4qMqVlib5Uo7HsgS0tes+RzgF1Gtordlf6O2XwtGWpKSqLiDVoacFWgk4fyHcVY+XPrkIcxHWKNQbTWdaknKoagJSHbpS4L4hf66waf/2/FCf7cim5rbCfPNoVUtSHlQs4NINddJp3gBTXeV1IsG85kbpi9p77poOcz1eADMQumprmL5ni3jF/DulBKTTLPDJNTj9zjhyH/sapc/12GWONTWdydoWRUkBnrLQFFz3gSZ5Vmp/a7CnO7StWIBCg6n2d6X2/rNR3prOaKhYgONQa1rth60AhJ8E3VFbsYC8Pi8TNnY2KQhQ5sy0FR3p9my7LhwiJBUm41/CaIVegY8aY537XGECMBqhF3jvX65H5+GkPC0pINWpR1FO5J5cB6auDXn8unCsdZucjBWQ6tSVKPeNQQ/CY4W+CsmHAYsRxqpfT8Kqw9sGJmQi7/hKs3HyKlHDor1b5TtVQNtNHZnp54kKM4Fm4J8AJ5+fOeZ+oVrkPvZvke8eXDDRmZO7VtgFI0zOv1aLPETWZ+B7RLyAnIKrNkSiWzOvBkLyoq8vgyOXtW74UF4YtfMONkq6RAQGd1KhgHCDzRCpr2MMwiyC000CukrZRPktLEJrSE6eXI8htuSFHJGjWMooAtuIRZFHCyiTHEvBcSIHdUG55NnOsQhB3EstEbHXKqQZl2+1NfT65BmPTxYmkQcclALbfB5rkh/9LlNcZcrx7VLyYyXkLtqGcZUahyNJsZ+YMYOoMAK/jYBR1o4tkePzdzEB74zKddOWPavaRG5Y8VJEWB9y5K7lpcBVrjvCbMdh9eb18x/JBr3jKf3ZRVPtGsqSwSmL+mYQIeEpa4El/n9HuBYr4HOPXpkwTpYCa3wDTwOj/yXPDqn8xN/70MPViK0DOH9LE38y7FZImu/BxP+SG/gR/AC019Vw8eBGCSLqA/gLhUArt4NKdJwAAAAASUVORK5CYII=) no-repeat 50%;
  background-size: 100%;
  margin-top: 0.431rem;
  margin-left: 0.25346rem;
}
.pwdIcons {
  width: 0.406rem;
  height: 0.406rem;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAADIUlEQVRIia2WWYhPYRTAf2dMyFbWUvZ1SsmLrBMPiCwveCCRsjyIB548WGqiZEJNTBjCAw9keZks02SyxIMlKco6MpNJzYNi7Efn3nPHN9e9xvxzHv73+5/7fef3neU735V9RxUTTX7Ex/HQpERhFTAHYShKd4UmhPvAJYXTAt+SNclCN0Woj2A5oO7AAYXVQKdkpQa78CWvFdYDV/8GsnFxDqgvUKsw3hXNKOcV7iN8BAYrzBOYpjAMqAY2IlTmgUyKM0BFwIUAdAhlq8KHlEe7FGYCpwyOUKFQL1CdBYoN/5mjNQqlrihD2ZABStZcB6YiNCh0Ejio0DULZFKUAtmEza54gLIzI0ekiuGtwgbXW0gXZ4EiWAo0BhjrFm2XP9sBJXqrynrXLswCma4oAJmMCqruzj+CEv1dnzsyC9TqWbCTHkF5t3QAZNLi455ZoKhA2risNAY5Gt0BUJICe9GQBdLEsyB09/wc2XhZB0DDgUm+yRtZoDiMbTuDhe6MG1yhVtbtg2zDFUj0/A6czALFnv3ZgrYJNNm5AS76OcoDdQGqEOa7ao/CqyzQ75y1rbp3CiuAL0B/hDqFKoHpCt089Nau1gKPkKh3mtQo7MgDRbb3VmkICnduHlnbGpDS/3Cvw/I+4c34ax6IsPRTBq3XrVPonRG6NMh0k4FFCJIHIun6KYMrvan2cr0lvQ64o/AS+IzQDxgHzPZKLEE4q3AFmJsFiq6YFGgnwnYFkfiQVgDlwPucFmT/ZiHRDTARmKJxhdtzIHCOwH5xALL7aId7+lRhKfCY1JkJdxo9hGsKNcAShWcIPRVqgc5AqcLNVs987QSEcgc9UZhh3rQDCkOlCmf9/yAH2bhvOD/pIPsVOgt8Ukt0x0DpYpBgnoTzLb6T7Mb13O0GnhcA2qTwAnhj3T94dxxoRGgEDlrOljvoE1BZoEcWjRHhPH/2DmwssWos9RfWQJsLDN1KYIHGNdBHocznHwMeek7riluvBrhVIMjErqYj/m4IBottXLby//11BVuI+97RAkHp0GXbcNhhhcP/EWTFcBsYpP6pEAnwC3pQe5rECoGFAAAAAElFTkSuQmCC)
    no-repeat 50%;
  background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAYAAACN1PRVAAADIUlEQVRIia2WWYhPYRTAf2dMyFbWUvZ1SsmLrBMPiCwveCCRsjyIB548WGqiZEJNTBjCAw9keZks02SyxIMlKco6MpNJzYNi7Efn3nPHN9e9xvxzHv73+5/7fef3neU735V9RxUTTX7Ex/HQpERhFTAHYShKd4UmhPvAJYXTAt+SNclCN0Woj2A5oO7AAYXVQKdkpQa78CWvFdYDV/8GsnFxDqgvUKsw3hXNKOcV7iN8BAYrzBOYpjAMqAY2IlTmgUyKM0BFwIUAdAhlq8KHlEe7FGYCpwyOUKFQL1CdBYoN/5mjNQqlrihD2ZABStZcB6YiNCh0Ejio0DULZFKUAtmEza54gLIzI0ekiuGtwgbXW0gXZ4EiWAo0BhjrFm2XP9sBJXqrynrXLswCma4oAJmMCqruzj+CEv1dnzsyC9TqWbCTHkF5t3QAZNLi455ZoKhA2risNAY5Gt0BUJICe9GQBdLEsyB09/wc2XhZB0DDgUm+yRtZoDiMbTuDhe6MG1yhVtbtg2zDFUj0/A6czALFnv3ZgrYJNNm5AS76OcoDdQGqEOa7ao/CqyzQ75y1rbp3CiuAL0B/hDqFKoHpCt089Nau1gKPkKh3mtQo7MgDRbb3VmkICnduHlnbGpDS/3Cvw/I+4c34ax6IsPRTBq3XrVPonRG6NMh0k4FFCJIHIun6KYMrvan2cr0lvQ64o/AS+IzQDxgHzPZKLEE4q3AFmJsFiq6YFGgnwnYFkfiQVgDlwPucFmT/ZiHRDTARmKJxhdtzIHCOwH5xALL7aId7+lRhKfCY1JkJdxo9hGsKNcAShWcIPRVqgc5AqcLNVs987QSEcgc9UZhh3rQDCkOlCmf9/yAH2bhvOD/pIPsVOgt8Ukt0x0DpYpBgnoTzLb6T7Mb13O0GnhcA2qTwAnhj3T94dxxoRGgEDlrOljvoE1BZoEcWjRHhPH/2DmwssWos9RfWQJsLDN1KYIHGNdBHocznHwMeek7riluvBrhVIMjErqYj/m4IBottXLby//11BVuI+97RAkHp0GXbcNhhhcP/EWTFcBsYpP6pEAnwC3pQe5rECoGFAAAAAElFTkSuQmCC) no-repeat 50%;
  background-size: 100%;
  margin-top: 0.431rem;
  margin-left: 0.25346rem;
}
.formDemos input {
  background: transparent;
  height: 1.25rem;
@@ -789,6 +799,7 @@
  color: #000;
  margin-left: 0.25rem;
}
.formDemo input {
  background: transparent;
  height: 1.25rem;
@@ -803,6 +814,7 @@
  color: #999;
  font-size: 0.4rem;
}
.djzc {
  width: 8.5rem;
  margin: 0.45rem auto;
@@ -815,6 +827,7 @@
  font-size: 0.375rem;
  color: #ec4a58;
}
.loginBtn {
  width: 8.5rem;
  height: 1.1rem;
src/page/newUser/index.vue
@@ -213,11 +213,21 @@
          </template>
</van-popover> -->
        <img class="xxzx" src="@/assets/img/消息中心.png" @click="$router.push('/notify')" />
        <!-- <img class="xxzx" src="@/assets/img/消息中心.png" @click="$router.push('/notify')" /> -->
        <!-- 小铃铛图标,带红点提示 -->
        <div class="rety">
          <div class="lingdang-wrapper" @click="$router.push('/notify')" v-if="isLoggedIn">
            <img class="lingdang" src="@/assets/img/消息中心.png" alt="" />
            <span v-if="unreadCount > 0" class="lingdang-badge"></span>
          </div>
        </div>
      </div>
      <div class="userHead">
        <div class="tl">
          <img class="touxiang" src="~@/assets/imgRed/touxiang.png" />
          <img class="touxiang" :src="userInfo.photoUrl" v-if="userInfo.photoUrl" />
          <img class="touxiang" src="~@/assets/imgRed/touxiang.png" v-else />
          <div class="mingzi">
            <p>{{ userInfo.phone ? userInfo.phone : userInfo.phone }}</p>
            <div class="feae" @click="$router.push('/smrz')">
@@ -348,9 +358,9 @@
      </div>
      <div class="congz">
        <a @click="$router.push('/recharge')" class="tx"> {{ $t("jy522") }}</a>
        <a @click="$router.push('/withdraw')"> {{ $t("jy521") }}</a>
        <!-- <a @click="getHeaderlink()"> {{ $t("jy521") }}</a> -->
        <a @click="$router.push('/recharge')" class="tx"> {{ $t("jy522") }}</a>
        <!-- <a @click="rechargeMsg()" class="tx"> {{ $t("jy522") }}</a> -->
      </div>
    </div>
@@ -388,7 +398,7 @@
        <p>{{ $t("hj247") }}</p>
      </div>
      <div class="bl" @click="getHeaderlink(4)">
        <img src="../../assets/img/icon_conversion.svg" />
        <img src="../../assets/img/kf.png" />
        <p>{{ $t("jy186") }}</p>
      </div>
    </div>
@@ -482,15 +492,58 @@
          icon: require("@/assets/ico/english.png"),
          lang: "en"
        }
      ]
      ],
      unreadCount: 0,
      messageTimer: null,
    };
  },
  components: {},
  computed: {
    isLoggedIn() {
      return !!window.localStorage.getItem("USERTOKEN");
    }
  },
  created() {
    this.getUserInfo();
    this.getInfoSite();
  },
  mounted() {
    // 如果已登录,获取未读消息数
    if (this.isLoggedIn) {
      this.getUnreadCount();
      this.startMessagePolling();
    }
  },
  beforeDestroy() {
    if (this.messageTimer) {
      clearInterval(this.messageTimer);
    }
  },
  methods: {
    // 获取未读消息数
    async getUnreadCount() {
      try {
        const data = await api.getUnreadCount();
        if (data && data.status === 0) {
          this.unreadCount = data.data || 0;
        } else {
          this.unreadCount = 0;
        }
      } catch (error) {
        console.error('获取未读消息数失败:', error);
        this.unreadCount = 0;
      }
    },
    // 开始轮询未读消息数(每30秒)
    startMessagePolling() {
      if (this.messageTimer) {
        clearInterval(this.messageTimer);
      }
      this.messageTimer = setInterval(() => {
        if (this.isLoggedIn) {
          this.getUnreadCount();
        }
      }, 30000);
    },
    rechargeMsg(msg) {
      Toast(this.$t("jy527"));
    },
@@ -707,7 +760,55 @@
};
</script>
<style scoped>
<style lang="less" scoped>
.rety {
  display: flex;
  align-items: center;
  // 小铃铛图标容器
  .lingdang-wrapper {
    position: relative;
    margin-left: auto;
    cursor: pointer;
    display: inline-block;
    .lingdang {
      width: 0.55rem;
      height: 0.55rem;
      display: block;
    }
    // 小铃铛红点提示
    .lingdang-badge {
      position: absolute;
      top: -0.05rem;
      right: -0.05rem;
      width: 0.16rem;
      height: 0.16rem;
      background-color: #ff4d4f;
      border-radius: 50%;
      border: 0.02rem solid #fff;
      display: block;
      animation: pulse 2s infinite;
    }
  }
  .yf {
    width: 0.51rem;
    height: 0.51rem;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAzdJREFUWEftmE2IlVUYx39/k8SoFoVKofmBFIFfG6NQRrBapGKjy9okbUQKR4mQUafyAxEFjSJBCFxEEkI2i7GPUWFqZdEiZxej0WBCpgUSNtDiL8943st777z3exYj3GdzL+95zjm/83+f8zznvGKKmqYoF/cnmO13gD7gkaTsn8B6ST83o7Tt54F+YHbqdxt4T9LxauNUVcz2PmBvQceAekHS/43A2X4QuASsKPDvk7S/aJxCMNvvx4pSh7+As8BiYG16dhLYKsm14GxPAz4F3kh+F4ERYBMwKz3bI+lg5TgTwGwHUICFBdSLkoZtzwRCrWdT25cJLnwmmO0ngBPAq6lxGHhO0pjtJUBAVoUrA7Md8fRBDuolSZezWW3PA34A5qdn/wKfAV8DV2B8My0ENgCvAQ8nv9/SAuN33GwvBS7k4HolHcraS2C2I54irjKlyqByAz4JnAa6ar3GXFtM/rqk2DhlZnsZcD4Ht0vS4XAaB7O9GziQg3pZ0i/VJrYd/UKR2LVFQR1dfwKOAmdqxWIB3LuSjsh2D3AsQdwEQqmqUAWrXhSxA4SSYX8AP0oqvbZ6ytpeDgzmlNsWYLeAx4DILV3NQNWbsJn2BPc98Cjwd4CNAhHUYTtqJb1mJmrWt+LNjQRY5KZzwIwItwT3YbMDN+qf4nN6PkHb3p7CKWL3TuzqLPhfAb4CIkuX4GyvieAFrgE9kkLqli0F+ufA3MhvkoZsvw2EEBlUt6TBfLpYlzJ8Bvcx8CbwUCL5VdIzLVPd2/2RZCO5hoUyURXeSlD/AQH1XSldZJPZ3pgUCrhKG5WUJdaW+Gz/DjxV0HksQX2btRWVpG7gi/RaI7PHyuJUMJlg14HHU1yHUpslfZMHrlbEn44TRKpnEROrJxlsANgJrIoSJykKe5nVPSjajto46WCSop5WtQ5YSJML/oGOYo3kj45ijaiU9+ko1lGsSIFO5m+jVv4DzGn000Cl+rYfAOIKF6eKScn8Q7k7ZNzErzYb9Ml/AbAy/e+XFMertop4fFfobRGmWrctkk61CxbfLD6Jw1y6WrXDeAP4SFJ2uW5dsXYo2ulb9zzWzuDt9J2yYHcBbbCKnGsh2/cAAAAASUVORK5CYII=) no-repeat 50%;
    background-size: 100%;
    margin-right: 0.32rem;
  }
  .kf {
    width: 0.51rem;
    height: 0.51rem;
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAu5JREFUWEftmEuoTVEYx39/eUV5D7wSg2siRVIGDBkw9SgXIxGXTJCBK+8UImXgnetVbsrESEbIM2Rgooi8yrPLQLg+fcfet3W3vc89+5xzX7lrcur0rW/91v+/vm+vvUUXHeqiXPSA5XWmeyhmZmOBncA8YETeXZYZ/wG4AmyW9CrO0aKYmY0B7gKjy1yg0mlvgemSXnuiEKwBWBpkfwq8qHS1NuaPAyYGMWckLUuCfQKGBkHfgHWSTrYHnJktAI4Dg4L8nyUNS4JZBkAjsELSl2oAmlk/YB+wJi2fpIKLoZUx2H3ggcMEE18CSyRdrwTOzGqAi8CUII+rNhWYVgAqAnZD0qxI6qPAkChJM7Ab2C7pV17AFOu+AqsknTMz3/DMksA8yMwmAOeBGQHILaBW0vNS4MysP7A3Yd0jYKEkLzBfJx9YNKkPsAPYAPSKYJqA1b7bYnAZ1h0G1kv6Hs8tCyyYPAc4DYwMYM4CdZIctNVIsc6Lx4vIiykZm1+xMIOZOZT3u9nB/8+AxZLuRAq7dftd0SDGC8qtS7XfzHyDtcA7SaOyqrJw+LMsMjO3c2Nkb+8ozothK3AJuBBUnVf6QWCTpB9FcnqBLQeuSXpYFlhgrReEQ4wPFvwdnMOPvpiky6UUSTImrY8VVSxhre/0GDA/kfg2sEiS97+yRkVggXorI8s83wGgPq3XmVlfYA8wOYX2J3AqLo6qgEWHfiDQHLaBlOqbG11xslRskjS4ojNWjj9m5ote9etNynw/nyckFR6FVVOsHNBic/4fMDObBHiTzTu85z2Jz2hVFTOzLcC2vERB/E1Jf28ZQcnH97GS+1hK1R0C1lYA9kaSv3tUHWxAdMEMH/Slcnofa5T0OAusRc5SM7ZHXGhl/DLivzWS/LfTRtbr23vAJc16QWkPYL+6N0jyG3OrM+aH7h5QuA910vj3keQg0SeCXdEnguEdDOeKHZFU10qxDoZoc7nu8bWnzW10YECPYnnF/gMpGUo2PhT3BQAAAABJRU5ErkJggg==) no-repeat 50%;
    background-size: 100%;
  }
}
.user_page {
  background-color: #fff;
  font-size: 14px;
src/page/newUser/setup.vue
@@ -6,24 +6,44 @@
            </div>
        </div>
        <ul class="ulk">
            <li><span style="line-height: 1.1748rem;"> {{ $t('jy354') }}</span><img src="~@/assets/imgRed/touxiang.png"
                    class="heasd" /></li>
            <li>
                <span style="line-height: 1.1748rem;"> {{ $t('jy354') }}</span>
                <div style="position: relative; margin-right: 0.3204rem;" v-if="userInfo.id">
                    <el-upload :with-credentials="true" class="avatar-uploader" :action="admin + '/user/upload.do'"
                        list-type="picture-card" name="upload_file" :show-file-list="false"
                        :on-success="handleAvatarSuccess" :on-error="handleError" :before-upload="beforeAvatarUpload"
                        :headers="headers">
                        <img v-if="avatarUrl" :src="avatarUrl" class="heasd" />
                        <i v-else class="iconfont icon-zhaopian"></i>
                        <span v-if="!avatarUrl && !imgStatus" class="btn-title">{{ $t('hj197') }}</span>
                        <span v-if="imgStatus" class="btn-title">{{ $t('hj198') }}</span>
                    </el-upload>
                </div>
            </li>
            <li><span> {{ $t('jy523') }}</span><a>{{ userInfo.phone ? userInfo.phone : userInfo.phone }}</a></li>
            <li @click="handleOutLoginClick()"><span> {{ $t('hj148') }}</span><img
            <!-- <li @click="handleOutLoginClick()"><span> {{ $t('hj148') }}</span><img
                    src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjVJREFUWEfll7+LE1EQx7+zEcMhBOFKRXG1sLFIZjcaRcxp652lP2oLz0JEsRFBOBubKxS8K87CRhBSKAfiIXKVJshm9j/wam0EiyhZyI5MSCCGCDHydgW32OLt2zefN+8782YIAMIwPJmm6QMANQBzNubg+a6qTSK6JyIfh+tTpVI5TUTvAOx2YHTSkonneQtRFDXtIwVB0FRV23lCRGuq+tkFiKruJ6JlAAUA2yJyrg/AzF3bvaq+iOP4sgvjwzWDINhU1UUAX0VkfgiggwnrInLdJQAzPwdwBcA3Edn7XwKsArgF4JOIHMncA7Vaba7b7S4VCoUoiqKdzAEm6cuiwJkImfkRgEVVvR3H8cs8AMzNhwD0ANwQkbVxCNceOAbgDYB9A8MrInJ/FMIpgBkql8sHPc/bAnB0YHjD9/3lRqNhXulnQmcaGO60Wq3O93q91wCO25iqbhaLxUutVuvHzAD1en1Xp9M5MG3mTNN0D4BnACqDf94nSbI0MwAzbwNYmBbgN/MkVwAi2poZ4G+PwHRQKpUuzgzwJ64fF6Fpwff9qxYJzgEmhOGqiNyxYHAehsw8mojM4F0ReZhZImLm0VR8TUSeZp2KHwO4oKo3c7mMphGqcxGOQlhBkiTJec/zJJeChJmHJdmOiBx2HgXjR/DPVsWZNSbM/MqiYrwxaQE4Ya2Zqj4hoi/TqHeGOVYVWePza2sWhuGZNE3fZtmcEtHZdrv9oS9CewVBcEpVV/Joz38CIWVsSJNAjP0AAAAASUVORK5CYII="
                    class="tui"></li>
                    class="tui">
            </li> -->
        </ul>
    </div>
</template>
<script>
import * as api from "@/axios/api";
import { MessageBox, Toast } from 'mint-ui';
import APIUrl from "@/axios/api.url";
import { MessageBox } from 'mint-ui'
export default {
    name: 'setup',
    data() {
        return {
            userInfo: []
            userInfo: {},
            avatarUrl: require('@/assets/imgRed/touxiang.png'),
            imgStatus: false,
            admin: APIUrl.baseURL,
            headers: {
                USERTOKEN: localStorage.getItem("USERTOKEN")
            }
        }
    },
    mounted() {
@@ -38,9 +58,78 @@
                this.$store.commit('dialogVisible', false);
                this.$store.state.userInfo = data.data;
                this.userInfo = data.data;
                // 设置头像URL
                if (data.data.photoUrl) {
                    this.avatarUrl = data.data.photoUrl;
                }
            } else {
                this.$store.commit('dialogVisible', true);
            }
        },
        // 上传前验证
        beforeAvatarUpload(file) {
            this.imgStatus = true;
            const isLt10M = file.size / 1024 / 1024 < 10;
            if (!isLt10M) {
                Toast(this.$t('hj205'));
                this.imgStatus = false;
                return false;
            }
            return true;
        },
        // 上传成功
        async handleAvatarSuccess(res, file) {
            this.imgStatus = false;
            if (res.status === 0 && res.data && res.data.url) {
                // 上传成功,更新头像URL
                const photoUrl = res.data.url;
                this.avatarUrl = photoUrl;
                // 调用头像设置接口
                if (this.userInfo && this.userInfo.id) {
                    try {
                        const updateRes = await api.updatePhoto({
                            photoUrl: photoUrl,
                            userId: this.userInfo.id
                        });
                        if (updateRes.status === 0) {
                            // 更新用户信息中的头像
                            this.userInfo.avatar = photoUrl;
                            this.userInfo.headImg = photoUrl;
                            Toast(this.$t('hj220'));
                        } else {
                            Toast(updateRes.msg || this.$t('hj200'));
                            // 恢复默认头像
                            this.avatarUrl = require('@/assets/imgRed/touxiang.png');
                        }
                    } catch (updateError) {
                        console.error('设置头像失败:', updateError);
                        Toast(this.$t('hj200'));
                        // 恢复默认头像
                        this.avatarUrl = require('@/assets/imgRed/touxiang.png');
                    }
                }
                // else {
                //     // 如果没有 userId,仍然更新本地显示
                //     if (this.userInfo) {
                //         this.userInfo.avatar = photoUrl;
                //         this.userInfo.headImg = photoUrl;
                //     }
                //     Toast(this.$t('hj220'));
                // }
            } else {
                Toast(res.msg || this.$t('hj200'));
                // 恢复默认头像
                this.avatarUrl = require('@/assets/imgRed/touxiang.png');
            }
        },
        // 上传失败
        handleError() {
            this.imgStatus = false;
            Toast(this.$t('hj200'));
            // 恢复默认头像
            this.avatarUrl = require('@/assets/imgRed/touxiang.png');
        },
        handleOutLoginClick() {
            // 退出登录
@@ -71,7 +160,7 @@
}
</script>
<style scoped>
<style lang="less" scoped>
.bijnm {
    background: #fff;
    min-height: 100vh;
@@ -137,10 +226,49 @@
}
.ulk li .heasd {
    margin-right: 0.3204rem;
    // margin-right: 0.3204rem;
    width: 1.1748rem;
    height: 1.1748rem;
    border-radius: 50%;
    object-fit: cover;
}
.avatar-uploader {
    overflow: hidden;
}
.avatar-uploader ::v-deep .el-upload {
    width: 1.1748rem;
    height: 1.1748rem;
}
.avatar-uploader ::v-deep .el-upload__input {
    opacity: 0 !important;
}
.avatar-uploader ::v-deep .el-upload--picture-card {
    width: 1.1748rem;
    height: 1.1748rem;
    border-radius: 50%;
    border: none;
    background: transparent;
}
.avatar-uploader ::v-deep .el-upload--picture-card .el-upload__input {
    opacity: 0;
}
.btn-title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    text-align: center;
    color: #fff;
    font-size: 0.24rem;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 0 0 50% 50%;
    padding: 0.1rem 0;
}
.ulk li a {