From 29f3a095dc58860849cdaa0b057b9fab495e5f6d Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Wed, 07 Jan 2026 14:04:07 +0800
Subject: [PATCH] 1

---
 src/page/login/register.vue                   |  127 +++++++------
 src/locales/tw.js                             |    4 
 src/page/home/home.vue                        |   16 
 src/axios/api.js                              |    5 
 src/page/home/listcomponents/xingusg.vue      |   36 ++-
 src/locales/zh.js                             |    4 
 src/page/home/listcomponents/dazongjiaoyi.vue |   34 ++-
 src/locales/en.js                             |    4 
 src/page/newUser/setup.vue                    |  144 +++++++++++++++
 src/assets/home/在线客服.png                      |    0 
 src/page/newUser/index.vue                    |  115 ++++++++++++
 src/assets/home/实名认证.png                      |    0 
 src/page/home/Subscription.vue                |   27 ++
 src/assets/img/kf.png                         |    0 
 14 files changed, 410 insertions(+), 106 deletions(-)

diff --git "a/src/assets/home/\345\234\250\347\272\277\345\256\242\346\234\215.png" "b/src/assets/home/\345\234\250\347\272\277\345\256\242\346\234\215.png"
new file mode 100644
index 0000000..94871cd
--- /dev/null
+++ "b/src/assets/home/\345\234\250\347\272\277\345\256\242\346\234\215.png"
Binary files differ
diff --git "a/src/assets/home/\345\256\236\345\220\215\350\256\244\350\257\201.png" "b/src/assets/home/\345\256\236\345\220\215\350\256\244\350\257\201.png"
new file mode 100644
index 0000000..c19248d
--- /dev/null
+++ "b/src/assets/home/\345\256\236\345\220\215\350\256\244\350\257\201.png"
Binary files differ
diff --git a/src/assets/img/kf.png b/src/assets/img/kf.png
new file mode 100644
index 0000000..46e2d32
--- /dev/null
+++ b/src/assets/img/kf.png
Binary files differ
diff --git a/src/axios/api.js b/src/axios/api.js
index e528749..c9d4e56 100644
--- a/src/axios/api.js
+++ b/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)
diff --git a/src/locales/en.js b/src/locales/en.js
index 3453a9c..6c9a271 100644
--- a/src/locales/en.js
+++ b/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",
   
 }
 
diff --git a/src/locales/tw.js b/src/locales/tw.js
index 8b91885..4ef89b9 100644
--- a/src/locales/tw.js
+++ b/src/locales/tw.js
@@ -820,5 +820,9 @@
   jy539: "退出賬戶",
   jy540: "請輸入交易密碼",
   jy541: "一鍵全倉",
+  jy542: "銀證轉入",
+  jy543: "銀證轉出",
+  jy544: "折價率",
+  jy545: "剩餘份額百分比",
   
 }
diff --git a/src/locales/zh.js b/src/locales/zh.js
index 040528b..6c0b38a 100644
--- a/src/locales/zh.js
+++ b/src/locales/zh.js
@@ -819,5 +819,9 @@
   jy539: "退出账户",
   jy540: "请输入交易密码",
   jy541: "一键全仓",
+  jy542: "银证转入",
+  jy543: "银证转出",
+  jy544: "折价率",
+  jy545: "剩余份额百分比",
   
 };
diff --git a/src/page/home/Subscription.vue b/src/page/home/Subscription.vue
index 99c7de4..b65a8e0 100644
--- a/src/page/home/Subscription.vue
+++ b/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%;
         }
diff --git a/src/page/home/home.vue b/src/page/home/home.vue
index 45b2be0..fa6d8fd 100644
--- a/src/page/home/home.vue
+++ b/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;
         }
         
diff --git a/src/page/home/listcomponents/dazongjiaoyi.vue b/src/page/home/listcomponents/dazongjiaoyi.vue
index ff01761..0e7a88f 100644
--- a/src/page/home/listcomponents/dazongjiaoyi.vue
+++ b/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;
diff --git a/src/page/home/listcomponents/xingusg.vue b/src/page/home/listcomponents/xingusg.vue
index a55beb3..59be104 100644
--- a/src/page/home/listcomponents/xingusg.vue
+++ b/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])
                     }
                 }
diff --git a/src/page/login/register.vue b/src/page/login/register.vue
index 7a981b4..5173c70 100644
--- a/src/page/login/register.vue
+++ b/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;
diff --git a/src/page/newUser/index.vue b/src/page/newUser/index.vue
index a9ead97..6bd3816 100644
--- a/src/page/newUser/index.vue
+++ b/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;
diff --git a/src/page/newUser/setup.vue b/src/page/newUser/setup.vue
index e433da5..7c010ad 100644
--- a/src/page/newUser/setup.vue
+++ b/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 {

--
Gitblit v1.9.3