panhui 3 лет назад
Родитель
Сommit
b37cacd8da

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
src/assets/lottie/scroll.json


BIN
src/assets/tabbar_icon_rank.png


+ 6 - 2
src/components/OrderItem.vue

@@ -3,7 +3,11 @@
         <div class="order-top">
             <div class="order-no">{{ $t('order.id') }}:{{ info.id }}</div>
             <div class="order-staus" :class="info.status">
-                {{ info.locked && info.status === 'SELLING' ? '暂停出售' : orderStatus[info.status] }}
+                {{
+                    info.locked && info.status === 'SELLING'
+                        ? $t('order.stopSale')
+                        : $t('order.status.' + [info.status])
+                }}
             </div>
         </div>
 
@@ -234,7 +238,7 @@ export default {
             }
             var mint = parseInt(times / 60)
             var seconds = parseInt(times % 60)
-            this.times = mint + '分 ' + seconds + '秒'
+            this.times = mint + this.$t('order.mint') + ' ' + seconds + this.$t('order.second')
             if (!times) {
                 return
             }

+ 9 - 4
src/locales/en.json

@@ -49,7 +49,8 @@
     "updateSuccess": "update completed",
     "profit": "Commission",
     "noRecords": "No records",
-    "notAvailable": "Not available"
+    "notAvailable": "Not available",
+    "wait": "stay tuned"
   },
   "delegate": {
     "tip": "The consignment sale has not started yet, it will start today at ${time}",
@@ -95,7 +96,7 @@
     "phone": "phone number",
     "phoneError": "Wrong format of phone number",
     "phonePla": "Please enter phone number",
-    "username":"Username",
+    "username": "Username",
     "enterUsername": "Enter your username",
     "psd": "password",
     "psdAgainError": "The two passwords entered are inconsistent",
@@ -105,7 +106,8 @@
     "registerSuccess": "registration success",
     "sendCode": "Send code",
     "sended": "Sented",
-    "psdEorror": "Wrong format of password"
+    "psdEorror": "Wrong format of password",
+    "nameError": "Account length 6-20, can only contain numbers, letters and underscores, not pure numbers"
   },
   "mine": {
     "address": "Address",
@@ -179,7 +181,10 @@
     "countDown": "Automatically cancel the order when the payment countdown expires",
     "hasProblem": "Encounter problems?",
     "payAt": "Payment time",
-    "viewOrder": "check order"
+    "viewOrder": "check order",
+    "mint": "Minute",
+    "second": "Second",
+    "stopSale": "Suspension of sale"
   },
   "product": {
     "dailyEarning": "Daily Income",

+ 5 - 1
src/locales/zh.json

@@ -24,7 +24,8 @@
         "register": "注册",
         "updateSuccess": "更新成功",
         "noRecords": "暂无记录",
-        "notAvailable": "暂未开放"
+        "notAvailable": "暂未开放",
+        "wait": "敬请期待"
     },
     "order": {
         "id": "订单编号",
@@ -33,6 +34,9 @@
         "detail": "订单详情",
         "payMethod": "支付方式",
         "payAt": "付款时间",
+        "stopSale": "暂停出售",
+        "mint": "分",
+        "second": "秒",
         "status": {
             "ALL": "全部",
             "NOT_PAID": "待付款",

+ 1 - 1
src/mixins/common.js

@@ -27,7 +27,7 @@ export default {
             }
         },
         wait() {
-            this.$toast('敬请期待...')
+            this.$toast(this.$t('common.wait') + '...')
         },
         getLocaleString(localized) {
             if (!localized || typeof localized !== 'object') return ''

+ 5 - 0
src/router/index.js

@@ -187,6 +187,11 @@ const router = createRouter({
             path: '/newsDetail',
             name: 'newsDetail',
             component: () => import('@/views/NewsDetailPage.vue')
+        },
+        {
+            path: '/rule',
+            name: 'rule',
+            component: () => import('@/views/RulePage.vue')
         }
     ]
 })

+ 6 - 1
src/views/DistributionPage.vue

@@ -49,7 +49,7 @@
             </div>
             <div class="invite" @click="drawQr">
                 <img src="@/assets/invite-bg.png" alt="" class="invite-bg" />
-                <span>{{ $t('distribution.invite') }}</span>
+                <span class="animate__pulse animate__animated animate__infinite">{{ $t('distribution.invite') }}</span>
             </div>
             <div class="list">
                 <div class="list-header">
@@ -92,6 +92,7 @@ import { Capacitor } from '@capacitor/core'
 import { Filesystem, Directory, Encoding } from '@capacitor/filesystem'
 import { Media } from '@capacitor-community/media'
 import emptyImg from '@/assets/img_empty_1.png'
+import '@/styles/animate.css'
 
 export default {
     components: {
@@ -386,6 +387,10 @@ ion-content {
     margin: 16px;
     padding-bottom: 10px;
 }
+
+.scroll {
+    width: 100px;
+}
 .list-header {
     .f();
     height: 58px;

+ 2 - 2
src/views/HomePage.vue

@@ -256,7 +256,7 @@ const goList = info => {
             }
         })
     } else {
-        toast('敬请期待...')
+        toast(this.$t('common.wait') + '...')
     }
 }
 
@@ -334,7 +334,7 @@ function goRank() {
 }
 
 function agreement() {
-    Browser.open({ url: `${location.origin}/static/PrivacyPolicy.html` })
+    router.push('/rule')
 }
 
 function tutorial() {

+ 1 - 1
src/views/MinePage.vue

@@ -164,7 +164,7 @@
                     </template>
                     <template #right-icon> <ion-icon class="right-icon" :icon="intoIcon"></ion-icon> </template>
                 </van-cell>
-                <van-cell :title="$t('common.eula')" is-link>
+                <van-cell :title="$t('common.eula')" :to="{ name: 'rule' }" is-link>
                     <template #icon>
                         <img class="menu-icon" src="../assets/info_icon_pingtaixieyi.png" alt="" />
                     </template>

+ 55 - 0
src/views/RulePage.vue

@@ -0,0 +1,55 @@
+<template>
+    <ion-page>
+        <ion-header>
+            <ion-toolbar>
+                <ion-buttons slot="start">
+                    <ion-back-button text="" default-href="#" @click="$router.back()"></ion-back-button>
+                </ion-buttons>
+            </ion-toolbar>
+        </ion-header>
+        <ion-content :fullscreen="true" class="page">
+            <div class="content">
+                <div v-html="detail"></div>
+            </div>
+        </ion-content>
+    </ion-page>
+</template>
+
+<script setup>
+import http from '../plugins/http'
+import { onMounted, ref } from 'vue'
+
+const detail = ref('')
+onMounted(() => {
+    http.http.get('/static/PrivacyPolicy.html').then(res => {
+        let contents = res.split('<body>')[1].split('</body>')
+        // let detail = contents[0].replace(/绿洲/g, 'RAEX');
+        // detail = detail.replace(/<\/h1>/, `</h1><h3>生效时间:【${day}】</h3><h3>更新时间:【${day}】</h3>`);
+        detail.value = contents[0]
+    })
+})
+</script>
+
+<style lang="less" scoped>
+:deep(.content) {
+    background-color: #2c302f;
+    margin: 16px;
+    overflow: hidden;
+    h1 {
+        text-align: center;
+    }
+    ol {
+        counter-reset: li; // 创建计数器
+    }
+    ol li {
+        position: relative;
+        padding-left: 20px;
+        &::before {
+            content: counter(li) '.';
+            counter-increment: li; // 递增计数器
+            position: absolute;
+            left: 0;
+        }
+    }
+}
+</style>

+ 2 - 2
src/views/TabsPage.vue

@@ -120,8 +120,8 @@ ion-icon {
     left: 0;
     right: 0;
     bottom: 15px;
-    width: 75px;
-    height: 55px;
+    width: 56px;
+    display: block;
     z-index: 100;
 }
 </style>

Некоторые файлы не были показаны из-за большого количества измененных файлов