panhui před 3 roky
rodič
revize
5f4d65357d
42 změnil soubory, kde provedl 18804 přidání a 1384 odebrání
  1. 1 1
      .env.development
  2. 18094 1
      package-lock.json
  3. binární
      src/assets/._icon1.png
  4. binární
      src/assets/._icon2.png
  5. binární
      src/assets/._icon3.png
  6. binární
      src/assets/._icon4.png
  7. binární
      src/assets/._img_default_photo.png
  8. binární
      src/assets/._menu1.png
  9. binární
      src/assets/._menu2.png
  10. binární
      src/assets/._menu3.png
  11. binární
      src/assets/._png-moren-touxiang.png
  12. binární
      src/assets/._tabbar_icon_01.png
  13. binární
      src/assets/._tabbar_icon_01_pre.png
  14. binární
      src/assets/._tabbar_icon_02.png
  15. binární
      src/assets/._tabbar_icon_02_pre.png
  16. binární
      src/assets/._tabbar_icon_03.png
  17. binární
      src/assets/._tabbar_icon_03_pre.png
  18. binární
      src/assets/._tabbar_icon_04.png
  19. binární
      src/assets/._tabbar_icon_04_pre.png
  20. binární
      src/assets/icon1.png
  21. binární
      src/assets/icon2.png
  22. binární
      src/assets/icon3.png
  23. binární
      src/assets/icon4.png
  24. binární
      src/assets/img_default_photo.png
  25. binární
      src/assets/menu1.png
  26. binární
      src/assets/menu2.png
  27. binární
      src/assets/menu3.png
  28. binární
      src/assets/png-moren-touxiang.png
  29. binární
      src/assets/tabbar_icon_01.png
  30. binární
      src/assets/tabbar_icon_01_pre.png
  31. binární
      src/assets/tabbar_icon_02.png
  32. binární
      src/assets/tabbar_icon_02_pre.png
  33. binární
      src/assets/tabbar_icon_03.png
  34. binární
      src/assets/tabbar_icon_03_pre.png
  35. binární
      src/assets/tabbar_icon_04.png
  36. binární
      src/assets/tabbar_icon_04_pre.png
  37. 75 37
      src/mixins/common.js
  38. 1 1
      src/styles/common/theme.less
  39. 3 3
      src/views/Index.vue
  40. 64 270
      src/views/Mine.vue
  41. 239 744
      src/views/account/Login.vue
  42. 327 327
      yarn.lock

+ 1 - 1
.env.development

@@ -1,4 +1,4 @@
-VUE_APP_BASE_URL=https://www.adcs.vip
+VUE_APP_BASE_URL=https://test.adcs.vip
 NODE_ENV=development
 VUE_APP_PUBLIC_PATH=/
 ASSETS_PATH=raex

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 18094 - 1
package-lock.json


binární
src/assets/._icon1.png


binární
src/assets/._icon2.png


binární
src/assets/._icon3.png


binární
src/assets/._icon4.png


binární
src/assets/._img_default_photo.png


binární
src/assets/._menu1.png


binární
src/assets/._menu2.png


binární
src/assets/._menu3.png


binární
src/assets/._png-moren-touxiang.png


binární
src/assets/._tabbar_icon_01.png


binární
src/assets/._tabbar_icon_01_pre.png


binární
src/assets/._tabbar_icon_02.png


binární
src/assets/._tabbar_icon_02_pre.png


binární
src/assets/._tabbar_icon_03.png


binární
src/assets/._tabbar_icon_03_pre.png


binární
src/assets/._tabbar_icon_04.png


binární
src/assets/._tabbar_icon_04_pre.png


binární
src/assets/icon1.png


binární
src/assets/icon2.png


binární
src/assets/icon3.png


binární
src/assets/icon4.png


binární
src/assets/img_default_photo.png


binární
src/assets/menu1.png


binární
src/assets/menu2.png


binární
src/assets/menu3.png


binární
src/assets/png-moren-touxiang.png


binární
src/assets/tabbar_icon_01.png


binární
src/assets/tabbar_icon_01_pre.png


binární
src/assets/tabbar_icon_02.png


binární
src/assets/tabbar_icon_02_pre.png


binární
src/assets/tabbar_icon_03.png


binární
src/assets/tabbar_icon_03_pre.png


binární
src/assets/tabbar_icon_04.png


binární
src/assets/tabbar_icon_04_pre.png


+ 75 - 37
src/mixins/common.js

@@ -17,23 +17,18 @@ export default {
                 ['PENDING', '认证中'],
                 ['SUCCESS', '已认证'],
                 ['FAIL', '认证失败']
-            ])
+            ]),
+            isLoading: true
         };
     },
     methods: {
         updateUser(info, sucess = true) {
             if (info) {
                 return this.$http
-                    .post(
-                        '/user/save',
-                        {
-                            ...this.$store.state.userInfo,
-                            ...info
-                        },
-                        {
-                            body: 'json'
-                        }
-                    )
+                    .post('/user/update', {
+                        ...this.$store.state.userInfo,
+                        ...info
+                    })
                     .then(() => {
                         return this.$store.dispatch('getUserInfo');
                     })
@@ -51,13 +46,14 @@ export default {
                     });
             }
         },
-        updateFile(e, size = 2000) {
+        updateFile(e, type, size = 1000) {
             const formData = new FormData();
             formData.append('file', e.file, e.file.name);
-            formData.append('compress', true);
+            formData.append('type', type);
             formData.append('width', size);
             formData.append('height', size);
-            return http.axios.post('/upload/file', formData).then(res => {
+            formData.append('size', size);
+            return http.axios.post('/upload/user', formData).then(res => {
                 return Promise.resolve(res.data);
             });
         },
@@ -95,28 +91,55 @@ export default {
             m = Math.pow(10, Math.max(r1, r2));
             return (arg1 * m + arg2 * m) / m;
         },
+        accMul(arg1, arg2) {
+            var m = 0,
+                s1 = arg1.toString(),
+                s2 = arg2.toString();
+            try {
+                m += s1.split('.')[1].length;
+            } catch (e) {}
+            try {
+                m += s2.split('.')[1].length;
+            } catch (e) {}
+            return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / Math.pow(10, m);
+        },
         checkBank() {
-            return this.$http
-                .get('/user/myBankCard')
-                .then(res => {
-                    if (res.length > 0) {
-                        return Promise.resolve();
-                    } else {
-                        return Promise.reject();
-                    }
-                })
-                .catch(() => {
-                    return this.$dialog
-                        .confirm({
-                            title: '银行卡未绑定',
-                            message: '您的账户还未绑定银行卡',
-                            confirmButtonText: '前往绑定'
-                        })
-                        .then(() => {
-                            this.$router.push('/mineBanks');
-                            return Promise.reject();
-                        });
-                });
+            // return this.$http
+            //     .get('/user/myBankCard')
+            //     .then(res => {
+            //         if (res.length > 0) {
+            //             return Promise.resolve();
+            //         } else {
+            //             return Promise.reject();
+            //         }
+            //     })
+            //     .catch(() => {
+            //         return this.$dialog
+            //             .confirm({
+            //                 title: '银行卡未绑定',
+            //                 message: '您的账户还未绑定银行卡',
+            //                 confirmButtonText: '前往绑定'
+            //             })
+            //             .then(() => {
+            //                 this.$router.push('/mineBanks');
+            //                 return Promise.reject();
+            //             });
+            //     });
+            return (this.$store.state.userInfo || {}).settleAccountId != undefined
+                ? Promise.resolve()
+                : this.$dialog
+                      .confirm({
+                          title: '银行卡未绑定',
+                          message: '您的账户还未绑定银行卡',
+                          confirmButtonText: '前往绑定'
+                      })
+                      .then(() => {
+                          this.$router.push('/mineBanks');
+                          return Promise.reject();
+                      })
+                      .catch(() => {
+                          return Promise.reject();
+                      });
         },
         checkAuth() {
             if (this.authStatus === '已认证') {
@@ -183,10 +206,25 @@ export default {
         },
         backReson(error) {
             if (error && error.indexOf('超过商户单日额度') !== -1) {
-                return '古藏站冷却系统已启动,请稍后支付。';
+                return '绿洲宇宙冷却系统已启动,请稍后支付。';
             } else {
                 return error;
             }
+        },
+        onRefresh() {
+            setTimeout(() => {
+                this.isLoading = false;
+            }, 1000);
+        },
+        checkWebDriver(e) {
+            if (window.navigator.webdriver == true || e.isTrusted == false) {
+                return false;
+            } else {
+                return true;
+            }
+        },
+        goWin(next) {
+            window.location.href = next;
         }
     }
-};
+};

+ 1 - 1
src/styles/common/theme.less

@@ -14,7 +14,7 @@
 @border3: #dfe1e6;
 @border4: #f2f6fc;
 @bg: #191D27;
-@bg2: #ffffff;
+@bg2: #1E222C;
 @bg3: #f5f7fa;
 @bgProductDetail: #0f0f0f;
 @menu-text-color: #bfcbd9;

+ 3 - 3
src/views/Index.vue

@@ -10,7 +10,7 @@
             z-index="20"
             safe-area-inset-bottom
             route
-            active-color="#28B6FF"
+            active-color="#ffffff"
             inactive-color="#5F646F"
             ref="tabbar"
         >
@@ -37,13 +37,13 @@ export default {
             },
             {
                 name: 'discover',
-                title: '探索',
+                title: '发现',
                 icon: require('@assets/tabbar_icon_02.png'),
                 preIcon: require('@assets/tabbar_icon_02_pre.png')
             },
             {
                 name: 'store',
-                title: '库房',
+                title: '展览室',
                 icon: require('@assets/tabbar_icon_03.png'),
                 preIcon: require('@assets/tabbar_icon_03_pre.png')
             },

+ 64 - 270
src/views/Mine.vue

@@ -1,198 +1,24 @@
 <template>
-    <!-- <div class="mine">
-        <div class="userInfo" v-if="isLogin">
-            <van-image
-                width="100%"
-                height="52vw"
-                :src="userInfo.bg || require('@assets/creatorBg.png')"
-                loading-icon=""
-                fit="cover"
-                class="top-img"
-            />
-
-            <div class="edit-btn" @click="$router.push('/setting')">
-                <img src="../assets/icon-bianji1.png" alt="" />
-                <span>编辑资料</span>
-            </div>
-            <div class="userInfo-content">
-                <div class="userInfo-top">
-                    <van-image
-                        round
-                        width="150"
-                        height="150"
-                        :src="userInfo.avatar || require('@assets/img_default_photo.png')"
-                        fit="cover"
-                        :class="{ activeAvatar: isLogin && userInfo.useCollectionPic }"
-                        @click="$router.push('/setting')"
-                    />
-                    <div class="text">
-                        <div class="text1">
-                            <span class="van-ellipsis" style="max-width: 120px">{{ userInfo.nickname }}</span>
-                        </div>
-                        <div class="text2">
-                            <span> 用户ID:{{ userInfo.id }} </span>
-                            <img @click="copy" src="@assets/svgs/copy_icon.svg" alt="" />
-                        </div>
-                        <div class="icons" @click="goAuth">
-                            <div class="auth-imgs" v-if="authStatus !== '已认证'">
-                                <img src="../assets/renzheng_icon.png" alt="" />
-                                <span>未实名认证</span>
-                            </div>
-                            <div class="auth-imgs authed" @click="goAuth" v-else>
-                                <img src="../assets/yirenzhng-geren-icon.png" alt="" />
-                                <span>个人已认证</span>
-                            </div>
-
-                            <level ref="level"></level>
-                        </div>
-                    </div>
-                </div>
-
-                <div class="sub" :class="{ 'van-multi-ellipsis--l2': !showMore }">
-                    {{ userInfo.intro }}
-                </div>
-                <div class="sub-right" v-if="userInfo && userInfo.intro && userInfo.intro.length > 50">
-                    <img
-                        @click="showMore = !showMore"
-                        :class="{ subAll: showMore }"
-                        src="../assets/icon-xialajiantou.png"
-                        alt=""
-                    />
-                </div>
-
-                <div class="btns">
-                    <div class="collect" @click="$router.push('/store')">
-                        <div class="text1">{{ assetNum }}</div>
-                        <div class="text2">藏品数</div>
-                    </div>
-                    <div class="collect" @click="$router.push('/mineFollows')">
-                        <div class="text1">{{ userInfo.follows }}</div>
-                        <div class="text2">关注</div>
-                    </div>
-                    <div class="collect" @click="$router.push('/mineFollowers')">
-                        <div class="text1">{{ userInfo.followers }}</div>
-                        <div class="text2">粉丝</div>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="userInfo" v-else>
-            <van-image
-                width="100%"
-                height="52vw"
-                :src="require('@assets/creatorBg.png')"
-                loading-icon=""
-                fit="cover"
-                class="top-img"
-            />
-            <div class="userInfo-content">
-                <div class="userInfo-top" @click="$router.push('/login')">
-                    <van-image
-                        round
-                        width="150"
-                        height="150"
-                        :src="require('@assets/img_default_photo.png')"
-                        fit="cover"
-                        @click="$router.push('/login')"
-                    />
-
-                    <div class="text">
-                        <div class="text1" @click="$router.push('/login')">点击登录</div>
-                        <div class="text2" style="padding-bottom: 16px">立即登录获取精彩服务</div>
-                    </div>
-                </div>
-            </div>
-
-        </div>
-        <driver />
-        <div class="orderList">
-            <div class="order-info" @click="$router.push('/orders?type=DEFAULT')">
-                <div class="order-info-box">
-                    <img src="@assets/info_icon_yishuping.png" alt="" />
-                    <span>艺术品订单</span>
-                </div>
-            </div>
-            <div class="order-info" @click="$router.push('/activityOrders')">
-                <img src="@assets/info_icon_zhuzaodingdan.png" alt="" />
-                <span>铸造订单</span>
-            </div>
-        </div>
-        <driver />
-        <div class="orderList prim">
-            <div
-                class="order-info"
-                :style="{ width: $store.state.review ? '100%' : '50%' }"
-                @click="$router.push('/rank')"
-            >
-                <img src="@assets/info_icon_top50.png" alt="" />
-                <span>TOP50&nbsp;探索官</span>
-            </div>
-            <div class="order-info" @click="share" v-if="!$store.state.review">
-                <van-badge :dot="shareProduct.openQuota" :offset="[-15, 5]">
-                    <img src="@assets/info_icon_yaoqing.png" alt="" />
-                </van-badge>
-                <span>立即邀请</span>
-            </div>
-        </div>
-        <van-grid class="menus">
-            <van-grid-item text="我的银行卡" :to="{ path: '/mineBanks' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon_yinhangka.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="我的积分" @click="wait" v-if="!$store.state.review">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon-jifen.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="我喜欢的" :to="{ path: '/mineLikes' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon-dianzan1.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="通知广播" @click="wait" v-if="!$store.state.review">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon_tongzhi.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="交易历史" :to="{ path: '/mineExchange' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/info_icon_jiaoyijilu.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="地址管理" :to="{ path: '/mineAddress' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon_dizhi.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="关于我们" :to="{ path: '/about' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon-guanyuwomen.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-            <van-grid-item text="账号与安全" :to="{ path: '/security' }">
-                <template #icon>
-                    <van-icon :name="require('@assets/icon-anquan.png')" class="search-icon" />
-                </template>
-            </van-grid-item>
-        </van-grid>
-
-        <div class="tabbar-placeholder"></div>
-        <post ref="post" :info="shareProduct" noButton></post>
-    </div> -->
-    <!-- 我的内容区 -->
     <div class="content">
-        <van-image width="100%" height="120px" radius="1" :src="isLogin ? userInfo.bg || require('@assets/bg.png'): require('@assets/bg.png')" fit="cover" style="position:relative"/>
+        <!-- <van-image width="100%" height="120px" radius="1" :src="isLogin ? userInfo.bg || require('@assets/bg.png'): require('@assets/bg.png')" fit="cover" style="position:relative"/> -->
         <!-- <van-image width="100%" height="120px" :src="isLogin?getImg(userInfo.bg):noLogin" fit="cover" class="backgroundImg"/> -->
-        <div class="share-btn" @click="share" v-if="isLogin">
+        <!-- <div class="share-btn" @click="share" v-if="isLogin">
             <img src="../assets/fenxiang-icon@3x.png" alt="" />
             <span>分享</span>
-        </div>
+        </div> -->
         <div class="content_con">
             <!-- 已登录 -->
             <div class="self_introduction" v-if="isLogin">
                 <div class="self_introduction_top">
-                    <van-image width="60px" height="60px" radius="40" :src="userInfo.avatar || require('@assets/img_default_photo.png')" fit="cover" style="margin-right: 10px" @click="$router.push('/setting')"/>
+                    <van-image
+                        width="60px"
+                        height="60px"
+                        radius="40"
+                        :src="userInfo.avatar || require('@assets/img_default_photo.png')"
+                        fit="cover"
+                        style="margin-right: 10px;"
+                        @click="$router.push('/setting')"
+                    />
                     <img
                         :src="require('@assets/icon_inter.png')"
                         alt=""
@@ -224,11 +50,13 @@
                         </div>
                         <div class="self_introduction_top_con_two">
                             <div class="self_introduction_top_con_id">用户ID:{{ userInfo.id }}</div>
-                            <img :src="require('@assets/copy_icon.png')" alt="" class="copy_id" @click="copy"/>
+                            <img :src="require('@assets/copy_icon.png')" alt="" class="copy_id" @click="copy" />
                         </div>
                     </div>
                 </div>
-                <div class="self_introduction_bottom" :style="userInfo.intro === ''?'':'margin-top: 6px'">{{ userInfo.intro }}</div>
+                <div class="self_introduction_bottom" :style="userInfo.intro === '' ? '' : 'margin-top: 6px'">
+                    {{ userInfo.intro }}
+                </div>
             </div>
             <!-- 未登录 -->
             <div class="not_logged" v-else @click="$router.push('/login')">
@@ -244,68 +72,38 @@
                             </div>
                             <div class="not_logged_tip">立即登录获取精彩服务</div>
                         </div>
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="not_logged_img" />
+                        <!-- <img :src="require('@assets/icon_inter.png')" alt="" class="not_logged_img" /> -->
                     </div>
                 </div>
             </div>
             <!-- 展示列表 -->
             <div class="display_list">
-                <div class="display_list_con" @click="$router.push('/orders')">
+                <div class="display_list_con" @click="$router.push('/security')">
                     <div class="display_list_con_one">
-                        <img :src="require('@assets/my-order.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">我的订单</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
+                        <img :src="require('@assets/icon1.png')" alt="" class="display_list_con_displayIcon" />
+                        <div class="display_list_con_title">账户与安全区</div>
                     </div>
                 </div>
-                <div class="display_list_con" @click="$router.push('/mineBanks')">
+                <div class="display_list_con" @click="wait">
                     <div class="display_list_con_one">
-                        <img :src="require('@assets/icon-yinhangka.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">我的银行卡</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <div class="binding_information" v-if="isLogin">{{userInfo.isUserBankCard?'已绑定':'未绑定'}}</div>
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
+                        <img :src="require('@assets/icon2.png')" alt="" class="display_list_con_displayIcon" />
+                        <div class="display_list_con_title">联系我们</div>
                     </div>
                 </div>
-                <div class="display_list_con" @click="$router.push('/mineLove')">
+                <div class="display_list_con" @click="wait">
                     <div class="display_list_con_one">
-                        <img :src="require('@assets/my-love.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">我喜欢的</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
+                        <img :src="require('@assets/icon4.png')" alt="" class="display_list_con_displayIcon" />
+                        <div class="display_list_con_title">关于我们</div>
                     </div>
                 </div>
-                <div class="display_list_con" @click="$router.push('/mineExchange')">
+                <div class="display_list_con" @click="share" >
                     <div class="display_list_con_one">
-                        <img :src="require('@assets/transaction-record.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">交易记录</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
+                        <img :src="require('@assets/icon4.png')" alt="" class="display_list_con_displayIcon" />
+                        <div class="display_list_con_title">分享拉索</div>
                     </div>
                 </div>
-                <!-- <div class="display_list_con">
-                    <div class="display_list_con_one">
-                        <img :src="require('@assets/learn-more.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">了解更多</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
-                    </div>
-                </div> -->
-                <!-- <div class="display_list_con">
-                    <div class="display_list_con_one">
-                        <img :src="require('@assets/about-us.png')" alt="" class="display_list_con_displayIcon" />
-                        <div class="display_list_con_title">关于我们</div>
-                    </div>
-                    <div class="display_list_con_two">
-                        <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
-                    </div>
-                </div> -->
-                <div class="display_list_con" @click="$router.push('/security')">
+
+                <!-- <div class="display_list_con" @click="$router.push('/security')">
                     <div class="display_list_con_one">
                         <img :src="require('@assets/account-security.png')" alt="" class="display_list_con_displayIcon" />
                         <div class="display_list_con_title">账号与安全</div>
@@ -313,7 +111,7 @@
                     <div class="display_list_con_two">
                         <img :src="require('@assets/icon_inter.png')" alt="" class="display_list_con_listArrow" />
                     </div>
-                </div>
+                </div> -->
             </div>
         </div>
         <user-share ref="userShare" v-if="isLogin"></user-share>
@@ -389,7 +187,7 @@ export default {
                 openQuota: false
             },
             shareMoney: 0,
-            height: ""
+            height: ''
         };
     },
     mounted() {
@@ -489,7 +287,7 @@ export default {
         },
         share() {
             this.$refs.userShare.share();
-        },
+        }
         // 点击列表信息跳转
         // clickList(index) {
         //     switch (index) {
@@ -532,7 +330,7 @@ export default {
     height: calc(100vh);
     // position: absolute;
     // margin-top: 44px;
-    background: #0f0f27;
+    background: @bg;
     position: relative;
     .backgroundImg {
         width: 100%;
@@ -546,32 +344,33 @@ export default {
     }
     .content_con {
         width: 100%;
-        padding: 0 10px;
+        padding: 0 16px;
         box-sizing: border-box;
         // background: #0f0f27;
         // position: absolute;
         // left: 0;
         // top: 80px;
         // z-index: 2;
-        transform: translateY(-42px);
+        // transform: translateY(-42px);
         .not_logged {
             // width: 100%;
             // height: 80px;
-            background: #29293f;
+            // background: #29293f;
             border-radius: 8px;
-            padding: 10px;
+            // padding: 10px;
             margin-bottom: 10px;
             // position: absolute;
             // left: 10px;
             // right: 10px;
             // top: -35px;
+            padding: 36px 0 30px;
             box-sizing: border-box;
             // position: relative;
             .not_logged_con {
                 display: flex;
                 .not_logged_touxiang {
-                    width: 60px;
-                    height: 60px;
+                    width: 64px;
+                    height: 64px;
                     border-radius: 50%;
                     margin-right: 10px;
                 }
@@ -583,19 +382,16 @@ export default {
                     padding-top: 10px;
                     box-sizing: border-box;
                     .not_logged_text {
-                        font-size: 16px;
-                        font-family: PingFangSC-Medium, PingFang SC;
-                        font-weight: 500;
+                        font-size: 20px;
+                        font-weight: bold;
                         color: #ffffff;
-                        line-height: 24px;
-                        margin-bottom: 2px;
+                        line-height: 28px;
+                        margin-bottom: 6px;
                     }
                     .not_logged_tip {
-                        font-size: 12px;
-                        font-family: PingFangSC-Regular, PingFang SC;
-                        font-weight: 400;
-                        color: #949699;
-                        line-height: 17px;
+                        font-size: 13px;
+                        color: #ffffff;
+                        line-height: 18px;
                     }
                     .not_logged_img {
                         width: 24px;
@@ -609,10 +405,10 @@ export default {
     .self_introduction {
         // width: 100%;
         // height: 130px;
-        background: #29293f;
-        margin-bottom: 10px;
+        // background: #29293f;
+        // margin-bottom: 10px;
         border-radius: 8px;
-        padding: 10px;
+        padding: 36px 0 30px;
         box-sizing: border-box;
         .self_introduction_top {
             position: relative;
@@ -655,18 +451,18 @@ export default {
                         box-sizing: border-box;
                         display: flex;
                         margin-top: 3px;
-                        .self_introduction_authentication_img{
+                        .self_introduction_authentication_img {
                             width: 18px;
                             height: 18px;
                         }
-                        .self_introduction_authentication_text{
+                        .self_introduction_authentication_text {
                             margin-left: 2px;
                             padding: 4px 0px;
                             box-sizing: border-box;
                             font-size: 10px;
                             font-family: PingFangSC-Regular, PingFang SC;
                             font-weight: 400;
-                            color: #C8C9CC;
+                            color: #c8c9cc;
                             line-height: 10px;
                         }
                     }
@@ -707,17 +503,18 @@ export default {
     padding-bottom: 50px;
     box-sizing: border-box;
     .display_list_con {
-        width: 100%;
-        height: 52px;
-        background: #29293f;
-        border-radius: 8px;
-        padding: 12px;
+        height: 60px;
+        background: @bg2;
+        border-radius: 12px;
+        padding: 16px;
         box-sizing: border-box;
         display: flex;
         justify-content: space-between;
-        margin-bottom: 10px;
+        align-items: center;
+        margin-bottom: 15px;
         .display_list_con_one {
             display: flex;
+            align-items: center;
         }
         .display_list_con_displayIcon {
             width: 28px;
@@ -725,12 +522,9 @@ export default {
             margin-right: 10px;
         }
         .display_list_con_title {
-            padding-top: 6px;
-            box-sizing: border-box;
-            font-size: 12px;
-            font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
+            font-size: 16px;
             color: #ffffff;
+            line-height: 22px;
         }
         .display_list_con_listArrow {
             width: 28px;

+ 239 - 744
src/views/account/Login.vue

@@ -1,378 +1,113 @@
 <template>
-    <div class="content">
-        <!-- 登录 -->
-        <div v-if="loginRegistrationSwitch == true">
-            <!-- 密码登录 -->
-            <div v-if="verificationCode == false">
-                <div class="login_title_one">欢迎来到拉索</div>
-                <div class="login_title_two">看发现更多数字藏品</div>
-                <van-form @submit="submitLogin" ref="loginForm">
-                    <div class="login_information">
-                        <van-field
-                            v-model="loginForm.phone"
-                            type="tel"
-                            placeholder="请输入手机号"
-                            :rules="[
-                                { required: true, message: '请输入手机号码' },
-                                {
-                                    pattern: phonePattern,
-                                    message: '手机号码格式错误'
-                                }
-                            ]"
-                            class="login_information_con"
-                        />
-                    </div>
-                    <van-divider class="login_divider" />
-                    <div class="login_information">
-                        <van-field
-                            v-model="loginForm.code"
-                            type="tel"
-                            placeholder="请输入验证码"
-                            :rules="[{ required: true, message: '请输入验证码' }]"
-                            class="login_information_con"
-                        >
-                            <template #button>
-                                <div v-if="verifyDisplay == true" class="login_information_verification">
-                                    <van-count-down
-                                        :time="timeOne"
-                                        format="ss"
-                                        :auto-start="countDownOne"
-                                        @finish="onFinish"
-                                    />
-                                    <div>S后重新发送</div>
-                                </div>
-                                <van-button size="small" class="send_verification" @click="sendPhone" v-else
-                                    >获取验证码</van-button
-                                >
-                            </template>
-                        </van-field>
-                    </div>
-                    <van-divider class="login_divider" />
+    <div class="login loginHeight">
+        <div class="title">
+            <div class="text1">欢迎来到拉索</div>
+            <div class="text2">看发现更多数字藏品</div>
+        </div>
+        <van-form @submit="submit" ref="code">
+            <div class="field-box">
+                <van-field
+                    type="tel"
+                    name="手机号码"
+                    placeholder="请输入手机号"
+                    v-model="form.phone"
+                    :rules="[
+                        { required: true, message: '请输入手机号码' },
+                        {
+                            pattern: phonePattern,
+                            message: '手机号码格式错误'
+                        }
+                    ]"
+                >
+                </van-field>
 
-                    <div class="login_tip">
-                        <van-checkbox v-model="isReader">
-                            已阅读并同意
-                            <span class="login_tip_con" @click.stop="$router.push('/agreement?page=service')"
-                                >用户协议</span
-                            >
-                            和
-                            <span class="login_tip_con" @click.stop="$router.push('/agreement')">隐私协议</span>
-                        </van-checkbox>
-                    </div>
-                    <div class="login">
-                        <van-button size="large" native-type="submitLogin" type="primary" class="login_now_con"
-                            >登录</van-button
+                <van-field
+                    type="code"
+                    name="验证码"
+                    placeholder="请输入验证码"
+                    v-model="form.code"
+                    :rules="[{ required: true, message: '请输入验证码' }]"
+                >
+                    <template #button>
+                        <van-button
+                            class="sub-code"
+                            size="small"
+                            plain
+                            type="primary"
+                            @click="sendPhone"
+                            :disabled="isSend"
                         >
-                    </div>
-                </van-form>
-                <div class="register">
-                    <!-- <div class="register_now_login" @click="registerNowConLogin">新用户注册</div> -->
-                    <!-- <van-button size="large" @click="registerNowConLogin" class="register_con">注册</van-button> -->
-                </div>
-            </div>
-            <!-- 验证码登录 -->
-            <div v-if="verificationCode == true">
-                <div v-if="verification == true">
-                    <div class="login_title_one">欢迎来到拉索</div>
-                    <div class="login_title_two">看发现更多数字藏品</div>
-                    <van-form @submit="submitLoginCode" ref="loginFormCode">
-                        <div class="login_information">
-                            <van-field
-                                v-model="loginForm.phone"
-                                type="tel"
-                                placeholder="请输入手机号"
-                                :rules="[
-                                    { required: true, message: '请输入手机号码' },
-                                    {
-                                        pattern: phonePattern,
-                                        message: '手机号码格式错误'
-                                    }
-                                ]"
-                                class="login_information_con"
-                            />
-                        </div>
-                        <van-divider class="login_divider" />
-                        <div class="verification_code_login">
-                            <van-button native-type="submitLoginCode" type="primary" class="verification_code_login_con"
-                                >发送验证码</van-button
-                            >
-                        </div>
-                    </van-form>
-                </div>
-                <div class="verification_code_input" v-if="verification == false">
-                    <div class="verification_code_input_con">输入验证码</div>
-                    <div class="verification_code_input_one">验证码已发送到 {{ phone }}</div>
-                    <div class="verification_code_input_two">
-                        <!-- <div v-if="countDownCode == true" style="display: flex">
-                            <van-count-down :time="time" format="ss" :auto-start="countDown" @finish="unFinish"/>
-                            <div>S后重新发送</div>
-                        </div>
-                        <div v-else>重新发送</div> -->
-                        {{ isSend ? `已发送${sendNum}S` : '重新发送' }}
-                    </div>
-                    <div class="verification_code_input_three">
-                        <!-- 密码输入框 -->
-                        <van-password-input
-                            :value="value"
-                            :mask="false"
-                            length="4"
-                            :focused="showKeyboard"
-                            @focus="showKeyboard = true"
-                        />
-                        <!-- 数字键盘 -->
-                        <van-number-keyboard
-                            :show="showKeyboard"
-                            v-model="value"
-                            theme="custom"
-                            extra-key="."
-                            close-button-text="完成"
-                            @blur="showKeyboard = false"
-                            @delete="onDelete"
-                            @close="submitLogin"
-                        />
-                    </div>
-                    <div class="verification_code_login_register">
-                        <van-button @click="submitLogin" type="primary" class="register_now_con_login">登录</van-button>
-                    </div>
-                </div>
-                <div>
-                    <div class="account_password_login" @click="(verificationCode = false), (active = 'phone')">
-                        账户密码登录
-                    </div>
-                </div>
+                            {{ isSend ? `已发送(${sendNum})S` : '获取验证码' }}
+                        </van-button>
+                    </template>
+                </van-field>
             </div>
-        </div>
-        <!-- 注册 -->
-        <div v-if="loginRegistrationSwitch == false">
-            <div class="user_registration">用户注册</div>
-            <van-form @submit="submit" ref="form">
-                <div class="login_information">
-                    <van-field
-                        v-model="form.phone"
-                        :maxlength="11"
-                        type="tel"
-                        placeholder="请输入手机号"
-                        class="login_information_con"
-                        :rules="[
-                            { required: true, message: '请输入手机号码' },
-                            {
-                                pattern: phonePattern,
-                                message: '手机号码格式错误'
-                            }
-                        ]"
-                    />
-                </div>
-                <van-divider class="login_divider" />
-                <div class="login_information">
-                    <van-field
-                        v-model="form.code"
-                        type="tel"
-                        placeholder="请输入验证码"
-                        :rules="[{ required: true, message: '请输入验证码' }]"
-                        class="login_information_con"
-                    >
-                        <template #button>
-                            <div v-if="verifyDisplay == true" class="login_information_verification">
-                                <van-count-down
-                                    :time="timeOne"
-                                    format="ss"
-                                    :auto-start="countDownOne"
-                                    @finish="onFinish"
-                                />
-                                <div>S后重新发送</div>
-                            </div>
-                            <van-button size="small" class="send_verification" @click="sendPhone" v-else
-                                >发送验证码</van-button
-                            >
-                        </template>
-                    </van-field>
-                </div>
-                <van-divider class="login_divider" />
-                <div class="login_information">
-                    <van-field
-                        v-model="form.password"
-                        type="password"
-                        placeholder="建议8-16位,数字、大小写字母组合"
-                        :rules="[{ required: true, message: '请填写密码' }]"
-                        class="login_information_con"
-                    />
-                </div>
-                <van-divider class="login_divider" />
-                <div class="login_tip">
-                    <van-checkbox v-model="isReader">
+            <div class="button">
+                <div class="xieyi">
+                    <van-checkbox v-model="checked">
                         已阅读并同意
-                        <span class="login_tip_con" @click.stop="$router.push('/agreement?page=service')"
-                            >用户协议</span
-                        >
-                        和
-                        <span class="login_tip_con" @click.stop="$router.push('/agreement')">隐私协议</span>
+                        <span @click.stop="$router.push('/agreement?page=service')"> 《服务协议》 </span>
+                        <span @click.stop="$router.push('/agreement')"> 《用户隐私协议》 </span>
                     </van-checkbox>
                 </div>
-                <div class="register_now">
-                    <van-button native-type="submit" color="@prim" class="register_now_con">立即注册</van-button>
-                    <!-- <div class="register_now_con" @click="registerNow">立即注册</div> -->
-                </div>
-            </van-form>
-            <div class="register_now_login" @click="(loginRegistrationSwitch = true), (active = 'phone')">
-                账户密码登录
+                <!-- <van-button plain class="forget" @click="$router.replace('/forget')">
+          忘记密码?
+        </van-button> -->
+
+                <van-button block size="large" native-type="submit" type="primary" class="sure" :disabled="!canLogin"
+                    >登录</van-button
+                >
             </div>
-        </div>
+        </van-form>
     </div>
 </template>
 
 <script>
-// import phone from '../../mixins/phone';
-// import { ref } from 'vue';
-// let fromRoute = null;
 import phone from '../../mixins/phone';
 let fromRoute = null;
-import { Toast } from 'vant';
-import { ref } from 'vue';
 export default {
     mixins: [phone],
-    setup() {
-        const value = ref('');
-        const showKeyboard = ref(false);
-        return {
-            value,
-            showKeyboard
-        };
-    },
+    inject: ['bar'],
     data() {
         return {
-            verification: true,
-            verificationCode: false,
-            countDownCode: true,
-            timeOne: 60000,
-            countDownOne: true,
-            verifyDisplay: false,
-            loginRegistrationSwitch: true,
-            phone: '',
-            active: 'phone',
+            active: 'code',
             form: {
                 phone: '',
                 password: '',
-                code: '',
-                invitor: ''
-            },
-            loginForm: {
-                phone: '',
                 code: ''
             },
-            isReader: false
+            checked: localStorage.getItem('agreeTerm') === 'true'
         };
     },
+    computed: {
+        canLogin() {
+            return this.form.phone && this.form.code;
+        }
+    },
     beforeRouteEnter(to, from) {
         fromRoute = from;
-        console.log(to, from);
     },
     mounted() {
-        //不能注,注册页进入用
-        if (this.$route.query.number == 1) {
-            this.loginRegistrationSwitch = false;
-        }
+        console.log(this.$store.state.loginBackUrl);
     },
     methods: {
-        onFinish() {
-            this.verifyDisplay = false;
-        },
-        unFinish() {
-            this.countDownCode = false;
-        },
-        // 切换注册
-        registerNowConLogin() {
-            this.loginRegistrationSwitch = false;
-        },
-        // 发送手机号
-        sendPhone() {
-            if (this.loginForm.phone == '') {
-                Toast('手机号码格式错误');
-            } else {
-                this.verifyDisplay = true;
-                this.sendMsg(this.loginForm.phone);
+        sendPhone(e) {
+            if (!this.checkWebDriver(e)) {
+                return;
             }
+            this.$refs.code.validate('手机号码').then(() => {
+                this.sendMsg(this.form.phone);
+            });
         },
-        // 注册
         submit() {
-            if (this.$store.state.invitor) {
-                this.form.invitor = this.$store.state.invitor;
+            if (!this.checked) {
+                this.$toast('请先阅读并同意隐私政策');
+                return;
             }
-            this.$http
-                .post('/auth/phoneRegister', this.form)
-                .then(res => {
-                    localStorage.setItem('nineToken', res);
-                    return this.$store.dispatch('getUserInfo');
-                })
-                .then(() => {
-                    this.$toast.success('注册成功');
-                    setTimeout(() => {
-                        if (!fromRoute.name || fromRoute.name === 'userRegister' || fromRoute.name === 'userLogin') {
-                            this.$router.replace('/home');
-                        } else {
-                            this.$router.back();
-                        }
-                    }, 1500);
-                })
-                .catch(e => {
-                    if (e) {
-                        this.$toast(e.error);
-                    }
-                });
-        },
-        // 手机密码登录
-        // submitLogin() {
-        //     this.checkOne().then(() => {
-        //         this.$toast.success('登录成功');
-        //         console.log("1111111")
-        //         setTimeout(() => {
-        //             this.$router.push("/home")
-        // this.$router.replace('/home');
-        // if (this.$store.state.loginBackUrl) {
-        //     this.$router.replace(this.$store.state.loginBackUrl);
-        // } else if (
-        //     !fromRoute ||
-        //     !fromRoute.name ||
-        //     fromRoute.name === 'userRegister' ||
-        //     fromRoute.name === 'userLogin'
-        // ) {
-        //     this.$router.replace('/home');
-        // } else {
-        //     this.$router.back();
-        // }
-        //         }, 1500);
-        //     });
-        // },
-        // 验证码登录
-        // complete() {
-        //     this.checkTwo().then(() => {
-        //         this.$toast.success('登录成功');
-        //         setTimeout(() => {
-        //             this.$router.replace('/home');
-        //             this.$router.push("/home")
-        //             if (this.$store.state.loginBackUrl) {
-        //                 this.$router.replace(this.$store.state.loginBackUrl);
-        //             } else if (
-        //                 !fromRoute ||
-        //                 !fromRoute.name ||
-        //                 fromRoute.name === 'userRegister' ||
-        //                 fromRoute.name === 'userLogin'
-        //             ) {
-        //                 this.$router.replace('/home');
-        //             } else {
-        //                 this.$router.back();
-        //             }
-        //         }, 1500);
-        //     });
-        // },
-        // 验证码登录
-        submitLoginCode() {
-            this.sendMsg(this.loginForm.phone);
-        },
-        // 重新获取
-        submitLoginCodeOne() {
-            this.sendMsg(this.loginForm.phone);
-        },
-        submitLogin() {
+            this.$toast.loading({
+                message: '加载中...',
+                forbidClick: true
+            });
             this.check().then(() => {
                 this.$toast.success('登录成功');
                 setTimeout(() => {
@@ -392,437 +127,197 @@ export default {
             });
         },
         check() {
-            return this.$http
-                .post('/auth/phoneLogin', {
-                    phone: this.loginForm.phone,
-                    code: this.loginForm.code
-                })
-                .catch(e => {
-                    if (e) {
-                        this.$toast(e.error);
-                    }
-                    return Promise.reject();
-                })
-                .then(res => {
-                    localStorage.setItem('nineToken', res);
-                    return this.$store.dispatch('getUserInfo');
-                });
+            if (this.active === 'phone') {
+                return this.loginByPhone(this.form.phone, this.form.password);
+            } else {
+                return this.$http
+                    .post('/auth/phoneLogin', {
+                        phone: this.form.phone,
+                        code: this.form.code
+                    })
+                    .catch(e => {
+                        if (e) {
+                            this.$toast(e.error);
+                        }
+                        return Promise.reject();
+                    })
+                    .then(res => {
+                        localStorage.setItem('nineToken', res);
+                        return this.$store.dispatch('getUserInfo');
+                    });
+            }
+        }
+    },
+    watch: {
+        checked(val) {
+            if (val) {
+                localStorage.setItem('agreeTerm', true);
+            } else {
+                localStorage.removeItem('agreeTerm');
+            }
         }
-        // checkTwo() {
-        //     return this.$http
-        //         .post('/auth/phoneLogin', {
-        //             phone: this.loginForm.phone,
-        //             code: this.value
-        //         })
-        //         .catch(e => {
-        //             if (e) {
-        //                 this.$toast(e.error);
-        //             }
-        //             return Promise.reject();
-        //         })
-        //         .then(res => {
-        //             localStorage.setItem('nineToken', res);
-        //             return this.$store.dispatch('getUserInfo');
-        //         });
-        // }
     }
-    // mixins: [phone],
-    // inject: ['bar'],
-    // data() {
-    //     return {
-    //         active: 'phone',
-    //         form: {
-    //             phone: '',
-    //             password: '',
-    //             code: ''
-    //         },
-    //         checked: false
-    //     };
-    // },
-    // beforeRouteEnter(to, from) {
-    //     fromRoute = from;
-    // },
-    // mounted() {
-    //     console.log(this.$store.state.loginBackUrl);
-    // },
-    // methods: {
-    //     sendPhone() {
-    //         this.$refs.code.validate('手机号码').then(() => {
-    //             this.sendMsg(this.form.phone);
-    //         });
-    //     },
-    //     submit() {
-    //         if (!this.checked) {
-    //             this.$toast('请先阅读并同意隐私政策');
-    //             return;
-    //         }
-    //         this.$toast.loading({
-    //             message: '加载中...',
-    //             forbidClick: true
-    //         });
-    //         this.check().then(() => {
-    //             this.$toast.success('登录成功');
-    //             setTimeout(() => {
-    //                 if (this.$store.state.loginBackUrl) {
-    //                     this.$router.replace(this.$store.state.loginBackUrl);
-    //                 } else if (
-    //                     !fromRoute ||
-    //                     !fromRoute.name ||
-    //                     fromRoute.name === 'userRegister' ||
-    //                     fromRoute.name === 'userLogin'
-    //                 ) {
-    //                     this.$router.replace('/home');
-    //                 } else {
-    //                     this.$router.back();
-    //                 }
-    //             }, 1500);
-    //         });
-    //     },
-    //     check() {
-    //         if (this.active === 'phone') {
-    //             return this.loginByPhone(this.form.phone, this.form.password);
-    //         } else {
-    //             return this.$http
-    //                 .post('/auth/phoneLogin', {
-    //                     phone: this.form.phone,
-    //                     code: this.form.code
-    //                 })
-    //                 .catch(e => {
-    //                     if (e) {
-    //                         this.$toast(e.error);
-    //                     }
-    //                     return Promise.reject();
-    //                 })
-    //                 .then(res => {
-    //                     localStorage.setItem('nineToken', res);
-    //                     return this.$store.dispatch('getUserInfo');
-    //                 });
-    //         }
-    //     }
-    // }
 };
 </script>
 
 <style lang="less" scoped>
-.frist {
-    height: 379px;
-    background-color: #fff;
+.login {
+    padding: 10px 40px 100px;
+    background-repeat: no-repeat;
+    background-size: 100% 100%;
 }
-/deep/ .van-password-input {
-    padding-right: 50px;
-    .van-password-input__item {
-        flex: 1;
-    }
-}
-/deep/ .van-field__control::placeholder {
-    font-size: 14px;
-    font-family: PingFangSC-Regular, PingFang SC;
-    font-weight: 400;
-    color: #5f646f;
-}
-/deep/ .van-divider::before {
-    height: 1px;
-    background: #5f646f;
-    opacity: 0.2;
-}
-.content {
-    width: 100%;
-    height: 100%;
-    // position: absolute;
-    background: @bg;
-    // margin-top: 44px;
-    .login_information_verification {
-        color: @prim;
-        display: flex;
-        margin-right: -15px;
-    }
-    .verification_code_login_register {
-        width: 100%;
-        margin-top: 144px;
-        margin-bottom: 30px;
-        padding: 0px 47px 0px 0px;
-        box-sizing: border-box;
-        .register_now_con_login {
-            width: 100%;
-            height: 40px;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-        }
-    }
-    /deep/ .van-count-down {
-        padding-top: 2px;
-        box-sizing: border-box;
-        font-size: 14px;
-        font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
-        color: @prim;
-    }
-    .login_title_one {
-        padding: 10px 40px;
+.title {
+    .text1 {
         font-size: 32px;
-        font-family: bold;
+        font-weight: bold;
         color: #ffffff;
+        line-height: 45px;
     }
-    .login_title_two {
+    .text2 {
         font-size: 16px;
         color: #ffffff;
         line-height: 22px;
-        padding: 0 40px 30px;
-    }
-    .login_information {
-        display: flex;
-        padding: 0 40px;
-        .login_information_img {
-            width: 24px;
-            height: 24px;
-            margin-right: 8px;
-        }
-        .login_information_img_con {
-            padding-top: 5px;
-        }
-        .van-cell {
-            padding: 0;
-        }
-        .login_information_con {
-            // width: 250px;
-            // height: 24px;
-            background: @bg;
-            overflow: visible;
-        }
-        .send_verification {
-            background-color: @bg;
-            border: none;
-            font-size: 12px;
-            font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
-            color: @prim;
-            // margin-right: -23px;
-        }
+        opacity: 0.8;
+        margin-top: 10px;
     }
-    .login_information:last-child {
-        margin-top: 20px;
-    }
-    .login_divider {
-        padding: 10px 48px 10px 40px;
-        box-sizing: border-box;
-        // background: #5F646F;
-        // opacity: 0.2;
-    }
-    .login_verification {
-        padding: 0px 40px;
-        box-sizing: border-box;
-        font-size: 12px;
-        font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
-        color: #5f646f;
-        display: flex;
-        justify-content: space-between;
-        .login_verification_con {
-            color: @prim;
-        }
-    }
-    .login {
-        width: 100%;
-        // margin-top:15px;
-        padding: 0px 40px;
-        box-sizing: border-box;
-        .login_now_con {
-            width: 100%;
-            height: 60px;
-            background: @prim;
-            border-radius: 8px;
-            line-height: 60px;
-            font-size: 18px;
+}
+.loginHeight {
+    min-height: calc(100vh - 46px);
+    min-height: calc(var(--app-height) - 46px);
+}
+/deep/input:-webkit-autofill {
+    box-shadow: 0 0 0px 1000px @bg inset;
+    -webkit-text-fill-color: #ffffff;
+}
+/deep/.van-field__control {
+    color: #fff;
+    font-size: 14px;
+}
+.logo {
+    width: 94px;
+    height: 16px;
+    display: block;
+    margin-bottom: 2px;
+}
+.tabs {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    padding-right: 10px;
+    .tab {
+        font-size: 16px;
+        color: #c8c9cc;
+        line-height: 30px;
+
+        &.active {
+            font-size: 20px;
             font-weight: bold;
-            color: #282d3a;
-            line-height: 26px;
-        }
-        .login_con {
-            width: 100%;
-            height: 40px;
-            background: @prim;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-            color: #ffffff;
-            line-height: 40px;
-            text-align: center;
+            color: #25f50d;
+            line-height: 30px;
         }
     }
-    .register {
-        width: 100%;
-        margin-top: 28px;
-        padding: 0px 40px;
-        box-sizing: border-box;
-        margin-bottom: 153px;
-        .register_con {
-            width: 100%;
-            height: 60px;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-            color: #939599;
-            background: #29293f;
-            border: none;
-        }
+}
+
+/deep/.field-box {
+    // background: #101010;
+    // box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.5);
+    border-radius: 12px;
+    .van-cell:after {
+        left: 0px;
+        right: 0px;
+        border: none;
+        height: 1px;
+        background: rgba(137, 137, 137, 0.3);
     }
-    .login_tip {
-        font-size: 12px;
-        color: #939599;
-        text-align: center;
-        .login_tip_con {
-            color: @prim;
-        }
-        padding: 40px 40px 15px;
-        /deep/.van-checkbox {
-            .flex();
-            .van-checkbox__icon {
-                height: 14px;
-            }
-            .van-checkbox__label {
-                color: #939599;
-                .flex();
-            }
-            .van-icon {
-                width: 14px;
-                height: 14px;
-            }
-        }
+    .van-cell + .van-cell {
+        margin-top: 0 !important;
     }
-    .verification_code_login {
-        width: 100%;
-        padding: 136px 47px 30px 48px;
-        box-sizing: border-box;
-        .verification_code_login_con {
-            width: 100%;
-            height: 40px;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
+}
+
+.icon {
+    display: block;
+    margin-top: 16px;
+}
+/deep/ .van-form {
+    margin-top: 28px;
+    .van-cell {
+        padding: 0px 0px;
+
+        .van-field__left-icon {
+            margin-right: 16px;
         }
     }
-    .account_password_login {
-        font-size: 12px;
-        font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
-        color: @prim;
-        text-align: center;
-        margin-bottom: 167px;
-        line-height: 24px;
+
+    .van-cell + .van-cell {
+        margin-top: 20px;
     }
-    .verification_code_input {
-        padding: 60px 0 0 50px;
-        box-sizing: border-box;
-        .verification_code_input_con {
-            font-size: 24px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-            margin-bottom: 30px;
-            color: #ffffff;
-        }
-        .verification_code_input_one {
-            font-size: 14px;
-            font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
-            color: #5f646f;
-            margin-bottom: 2px;
-        }
-        .verification_code_input_two {
-            font-size: 14px;
-            font-family: PingFangSC-Regular, PingFang SC;
-            font-weight: 400;
-            color: @prim;
-            display: flex;
-            .van-count-down {
-                color: @prim;
-            }
-        }
-        .verification_code_input_three {
-            margin-top: 24px;
-            .van-password-input {
-                margin: 0;
-            }
-            /deep/ .van-password-input__security li {
-                width: 48px;
-                height: 48px;
-                background: #29293f;
-                border-radius: 4px;
-                margin-right: 28px;
-                font-size: 24px;
-                color: #ffffff;
-                flex: 1;
-                border: none;
-            }
-            /deep/ .van-password-input__security li:last-child {
-                margin-right: 0;
-            }
-            /deep/ [class*='van-hairline']:after {
-                border: none;
-            }
-        }
+    .van-field__body {
+        height: 67px;
+        align-items: center;
     }
-    /deep/ .van-field__control {
+}
+.button {
+    margin-top: 60px;
+    position: relative;
+
+    .del {
+        margin-top: 20px;
+        border-color: #ffffff;
         color: #ffffff;
-        background: @bg;
+        background-color: #101010;
     }
-    .user_registration {
-        padding-top: 60px;
-        box-sizing: border-box;
-        margin-left: 50px;
-        margin-bottom: 50px;
-        font-size: 24px;
-        font-family: PingFangSC-Medium, PingFang SC;
-        font-weight: 500;
-        color: #ffffff;
+
+    .sure {
+        color: #000000 !important;
+        height: 60px;
     }
-    .register_now {
-        width: 100%;
-        padding: 94px 47px 30px 48px;
-        box-sizing: border-box;
-        .register_now_con {
-            width: 100%;
-            height: 40px;
-            background: @prim;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-        }
-        .register_now_con_login {
-            width: 100%;
-            height: 40px;
-            // background: @prim;
-            border-radius: 8px;
-            font-size: 16px;
-            font-family: PingFangSC-Medium, PingFang SC;
-            font-weight: 500;
-            color: #ffffff;
-            text-align: center;
-            line-height: 40px;
-        }
-        .register_now_con_register {
-            color: #939599;
-            margin-bottom: 153px;
-        }
+
+    .van-button {
+        font-weight: bold;
+        border-radius: 12px;
     }
-    .register_now_login {
-        font-size: 12px;
-        font-family: PingFangSC-Regular, PingFang SC;
-        font-weight: 400;
-        color: @prim;
-        text-align: center;
-        margin-bottom: 167px;
-        line-height: 24px;
+}
+
+.sub-code {
+    padding-right: 0;
+    border-width: 0;
+}
+
+.forget {
+    position: absolute;
+    font-weight: normal !important;
+    right: 0;
+    top: -65px;
+}
+.xieyi {
+    .flex();
+    // justify-content: center;
+    margin-top: 50px;
+    font-size: @font1;
+    padding-bottom: 18px;
+
+    color: #5e6168;
+    span {
+        color: #fff;
     }
 }
-// /deep/ .van-button:before{
-//     height: 40px;
-//     background: @prim;
-//     border-radius: 8px;
-// }
+.van-checkbox {
+    // background-color: #101010;
+    padding: 5px 0;
+    border-radius: 12px;
+}
+/deep/.van-checkbox__label {
+    color: #5e6168;
+}
+
+/deep/.van-checkbox__icon {
+    height: 14px;
+}
+
+/deep/.van-checkbox__icon--checked .van-icon {
+    background: @prim;
+    border-width: 0;
+    width: 14px;
+    height: 14px;
+}
 </style>

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 327 - 327
yarn.lock


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů