lxf
2025-07-15 691b86ca853959f5beb3db9b25d0a4a9929dd40f
style
5 files modified
172 ■■■■■ changed files
src/components/Transform/list-quotation/index.vue 73 ●●●● patch | view | raw | blame | history
src/views/cryptos/Recharge/rechargePage.vue 12 ●●●●● patch | view | raw | blame | history
src/views/customerService/index.vue 19 ●●●● patch | view | raw | blame | history
src/views/my/newindex.vue 60 ●●●●● patch | view | raw | blame | history
src/views/register/index.vue 8 ●●●●● patch | view | raw | blame | history
src/components/Transform/list-quotation/index.vue
@@ -18,15 +18,17 @@
      </van-cell> -->
      <!-- 热门 -->
      <div class="flex items-end justify-between" style="margin: 14px 0;">
        <div class="block text-22 font-medium" >{{$t('Market')}}</div>
        <div class="block text-22 font-medium">{{ $t('Market') }}</div>
        <div class="relative text-13" @click="toggleDropdown">
          <div class="flex px-20 justify-between rounded-full bg-black text-white min-w-140 box-border">
            <div class="block">{{ $t(topTitle) }}</div>
            <van-icon name="play" style="align-content:center;transform: rotate(90deg);"/>
            <van-icon name="play" style="align-content:center;transform: rotate(90deg);" />
          </div>
          <div class="px-16 py-20 bg-black text-white flex flex-col absolute min-w-140 box-border top-25 rounded-11 leading-28" style="z-index:999;margin-top: 0.8rem;" v-show="isTopShow">
          <div
            class="px-16 py-20 bg-black text-white flex flex-col absolute min-w-140 box-border top-25 rounded-11 leading-28"
            style="z-index:999;margin-top: 0.8rem;" v-show="isTopShow">
            <div @click="changeType('货币兑换', 2)">{{ $t('货币兑换') }}</div>
            <div @click="changeType('外汇交易', 1)">{{ $t('外汇交易') }}</div>
            <div @click="changeType('外汇交易', 1)">{{ $t('外汇交易') }}</div>
            <!-- <div>期貨</div>
            <div>收藏</div> -->
          </div>
@@ -35,7 +37,7 @@
      <transition-group :name="type" tag="div">
        <div v-if="active == 0" :key="active">
        <div>
          <van-cell v-for="item in listData" :key="item.id" style="background-color: #f0f0f0;margin-bottom: 10px;">
            <ul class="flex justify-between w-full items-center" @click="onItemClick(item)">
              <li class="flex items-center left">
@@ -45,7 +47,7 @@
                <p class="flex flex-col">
                  <span class="flex items-end font-32 flex items-center">
                    <span class="textColor font-600 font-30">{{ item.name || '--'
                    }}</span>
                      }}</span>
                    <!-- <span class="font-24 text-grey" style="position: relative; top: 1px">
                      /USDT
                    </span> -->
@@ -66,44 +68,6 @@
                  {{ (item.change_ratio === 0 ? 0 : item.change_ratio) }}%</p>
                <p class="w-153 font-31 h-71 bg-red text-white border-0 text-center btn" v-else>
                  {{ (item.change_ratio === 0 ? 0 : item.change_ratio) }}%</p>
              </li>
            </ul>
          </van-cell>
        </div>
        <div v-else :key="active">
          <van-cell v-for="item in showList" :key="item.id">
            <ul class="flex justify-between w-full items-center" @click="onItemClick(item)">
              <li class="flex items-center left">
                <img :src="`${HOST_URL}/symbol/${item.symbol_data}.png`" alt="logo"
                  class="w-72 h-72 mr-16" />
                <p class="flex flex-col">
                  <span class="flex items-end font-32 flex items-center">
                    <span class="textColor font-600 font-30">{{ item.symbol_data && item.symbol_data.toUpperCase() || '--'
                    }}</span>
                    <!-- <span class="font-24 text-grey" style="position: relative; top: 1px">
                      {{ item.name && item.name.replace(item.symbol.toUpperCase(), '') || '--' }}</span> -->
                    <!-- <span class="font-24 text-grey" style="position: relative; top: 1px">
                      /USDT
                    </span> -->
                  </span>
                  <span class="font-24 text-grey text-left">{{ $t('成交量') + ' ' + (item.amount * 1).toFixed(2) }}</span>
                </p>
              </li>
              <li class="flex flex-col items-end mid">
                <p class="textColor font-32 font-600">{{ item.close }}</p>
                <!-- <p class="font-24 text-grey">{{ currency.currency_symbol }} {{ item.close && item.symbol_data.toUpperCase() == 'SHIB' ? (item.close * currency.rate).toFixed(8) : (item.close *
                    currency.rate).toFixed(2) || '--' }}</p> -->
              </li>
              <li class="right flex items-center justify-end text-right">
                <div v-if="active == 3" class="textColor w-182 font-700 font-24">
                  {{ (item.volume * 1).toFixed(2) }}
                </div>
                <template v-else>
                  <p class="w-153 font-31 h-71 bg-green text-white border-0 text-center btn" v-if="item.change_ratio_str > 0 || item.change_ratio > 0">
                    +{{ item.change_ratio_str }}%</p>
                  <p class="w-153 font-31 h-71 bg-red text-white border-0 text-center btn" v-else>
                    {{ (item.change_ratio_str === 0 ? 0 : '--') }}%</p>
                </template>
              </li>
            </ul>
          </van-cell>
@@ -167,15 +131,15 @@
  },
  methods: {
    ...mapActions('home', [SET_CURRENCY]),
    changeType(tit, val){
    changeType(tit, val) {
      this.topTitle = tit
      this.topValue = val
      this.$emit('onfetchQList', val)
    },
    toggleDropdown(){
      if(this.isTopShow){
    toggleDropdown() {
      if (this.isTopShow) {
        this.isTopShow = false
      }else{
      } else {
        this.isTopShow = true
      }
    },
@@ -183,14 +147,14 @@
      if (this.topValue == 2) { //现货
        setStorage('symbol', item.symbol)
        this.$router.push({
           path: `/cryptos/perpetualContract/${item.symbol}`,
           query: { selectIndex: 2 }
          path: `/cryptos/perpetualContract/${item.symbol}`,
          query: { selectIndex: 2 }
        });
      } else {
        setStorage('symbol', item.symbol)
        // /cryptos/perpetualContract/btcusdt?selectIndex=2
        this.$router.push({
          path:`/cryptos/trade/${item.symbol}`,
          path: `/cryptos/trade/${item.symbol}`,
          // path: `/cryptos/perpetualContract/${item.symbol}`,
          // query: { selectIndex: 2 }
        });
@@ -320,15 +284,16 @@
  color: #242629;
}
.text-grey{
.text-grey {
  // color: #8c8c8c;
}
#cryptos .list-quatation .van-cell{
#cryptos .list-quatation .van-cell {
  padding: 24px !important;
  border-radius: 1rem;
}
.list-quatation{
.list-quatation {
  margin: 0 20px;
}
</style>
src/views/cryptos/Recharge/rechargePage.vue
@@ -17,7 +17,8 @@
            <div class="pl-10 pr-10 font-28">
                <div class=" flex flex-col items-center justify-center font-28">
                    <div class="textColor font-30 mt50" ref="address">{{ address }}</div>
                    <div @click="copy(address)" class="font-26 border-solid-grey text-center code-btn rounded-6 textColor">
                    <div @click="copy(address)"
                        class="font-26 border-solid-grey text-center code-btn rounded-6 textColor">
                        {{ $t('复制地址') }}</div>
                </div>
                <div>
@@ -49,16 +50,17 @@
                <div>
                    <div class="font-28 textColor">{{ $t('付款凭证(上传支付详情截图)') }}</div>
                    <div class="img-box">
                        <van-uploader accept="image/*" v-model="fileList" multiple :max-count="1" :before-read="beforeRead"
                            :after-read="afterRead" />
                        <van-uploader accept="image/*" v-model="fileList" multiple :max-count="1"
                            :before-read="beforeRead" :after-read="afterRead" />
                    </div>
                </div>
            </div>
            <div class="hint-box">
                <div class="pl-30 pr-30">
                    <div class="font-30 mb-27 textColor">{{ $t('重要提示') }}</div>
                    <!-- <div class="font-30 mb-27 textColor">{{ $t('重要提示') }}</div> -->
                    <div class="font-28 text-grey" v-html="tip"></div>
                    <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">{{ $t('下一步') }}</button>
                    <button class="btnMain text-white next-btn font-30 rounded-lg" @click="nextBtn">{{ $t('下一步')
                        }}</button>
                </div>
            </div>
        </div>
src/views/customerService/index.vue
@@ -5,7 +5,7 @@
      <div class="px-3.5 py-5" :style="{ 'margin-top': navHeight + 'px' }" v-if="state == 0">
        <div class="white">{{ $t('OrdersWill') }} <span style="color: #1194F7">{{ msgTitle }}</span> {{
          $t('afterCancel')
        }}</div>
          }}</div>
        <div class="mt-3">
          <span class="mr-1" style="color: #8A919E">{{ $t('lumpSum') }}</span>
          <span class="white">{{ payInfo.currency }} {{ payInfo.amount }}</span>
@@ -27,9 +27,9 @@
              item.createtime &&
              item.createtime.split(' ')[0]
            }}</p> -->
             <p class="font-13 text-center pb-3 text-grey font-15">{{
            <p class="font-13 text-center pb-3 text-grey font-15">{{
              item.createtime
            }}</p>
              }}</p>
            <div class="flex" :class="item.send_receive === 'send' ? 'justify-end' : ''">
              <template v-if="item.send_receive === 'receive'">
                <img src="@/assets/image/service/responser.png" class="w-10 h-10 mr-5" />
@@ -50,13 +50,12 @@
        </ul>
      </div>
    </div>
    <div
      class="bottom bottomBox flex justify-between items-center w-full fixed bottom-0 borderTop px-4 box-border bgBottom">
    <div class="bottom bottomBox flex justify-between items-center w-full fixed bottom-0 borderTop px-4 box-border ">
      <van-uploader :max-size="10000 * 1024" @oversize="onOversize" :after-read="afterRead">
        <img src="@/assets/image/service/photo2.png" class="w-12 h-12" />
      </van-uploader>
      <input type="text" v-model="message" :placeholder="$t('entryYouMessage')"
        class="flex-1 mx-3 h-full border-none bgBottom textColor chatBg" maxlength="500"/>
        class="flex-1 mx-3 h-full border-none textColor chatBg" maxlength="500" />
      <img src="@/assets/image/service/send2.png" class="w-12 h-12" @click="throttleSend(message)" />
    </div>
  </div>
@@ -264,13 +263,13 @@
  font-size: 14px;
  width: 100%;
  box-sizing: border-box;
  background: $mainBgColor;
  // background: $mainBgColor;
  overflow: hidden;
  padding-bottom: 70px;
  :deep(.van-hairline--bottom::after) {
    border-color: $mainBgColor;
  }
  // :deep(.van-hairline--bottom::after) {
  //   border-color: $mainBgColor;
  // }
}
.break-word {
src/views/my/newindex.vue
@@ -2,11 +2,14 @@
  <div class="pb-30">
    <!-- 顶部用户信息卡片 -->
    <div class="mt-20 mx-17 pt-24 px-14 flex h-120 box-border bgimg">
      <div class="w-65 h-65 rounded-full"></div>
      <div class="w-50 h-50 rounded-full">
        <van-icon name="contact" size="50" color="#fff" />
        <!-- <img :src="userStore.userInfo.avatar" alt=""> -->
      </div>
      <div class="text-white flex-1 ml-9">
        <div class="text-19 font-bold">{{userStore.userInfo.username}}</div>
        <div class="text-24 font-bold">{{ userStore.userInfo.username }}</div>
        <div class="flex">
          <div class="text-10">ID: {{userStore.userInfo.usercode}}</div>
          <div class="text-14">ID: {{ userStore.userInfo.usercode }}</div>
        </div>
        <!-- <div class="text-10 block">信用分: 100</div> -->
      </div>
@@ -16,13 +19,8 @@
    <div class="mt-20 px-17">
      <div class="text-22 font-medium">{{ t('账号') }} {{ t('详情') }}</div>
      <div class="mt-15 p-15 rounded-15 bg-#f5f7f9">
        <div
          v-for="(item, index) in accountItems"
          :key="index"
          class="flex items-center justify-between text-16"
          :class="{'mt-15': index > 0}"
           @click="onRoute(item.path)"
        >
        <div v-for="(item, index) in accountItems" :key="index" class="flex items-center justify-between text-16"
          :class="{ 'mt-15': index > 0 }" @click="onRoute(item.path)">
          <div class="flex items-center">
            <img :src="`${item.icon}`" class="w-20 h-20">
            <div class="ml-10">{{ item.title }}</div>
@@ -37,17 +35,12 @@
      </div>
    </div>
     <!-- 帮助和支持部分 -->
     <div class="mt-20 px-17">
      <div class="text-22 font-medium">{{ t('帮助')}}</div>
    <!-- 帮助和支持部分 -->
    <div class="mt-20 px-17">
      <div class="text-22 font-medium">{{ t('帮助') }}</div>
      <div class="mt-15 p-15 rounded-15 bg-#f5f7f9">
        <div
          v-for="(item, index) in helpItems"
          :key="index"
          class="flex items-center justify-between text-16"
          :class="{'mt-15': index > 0}"
          @click="onRoute(item.path)"
        >
        <div v-for="(item, index) in helpItems" :key="index" class="flex items-center justify-between text-16"
          :class="{ 'mt-15': index > 0 }" @click="onRoute(item.path)">
          <div v-if="item.button" class="flex items-center" @click="loginOut">
            <img :src="`${item.icon}`" class="w-20 h-20">
            <div class="ml-10">{{ item.title }}</div>
@@ -59,7 +52,7 @@
          <div class="i-material-symbols:arrow-right-rounded text-20 text-gray-400">
            <!---->
          </div>
        </div>
      </div>
@@ -83,21 +76,21 @@
const router = useRouter()
const userStore = useUserStore()
const status = ref([t('未认证'),t("审核中"),t("已认证"),t("审核未通过")])
const status = ref([t('未认证'), t("审核中"), t("已认证"), t("审核未通过")])
const kycHighStatus = ref(null)
// kyc_status
// 账户详情选项数据
const accountItems = ref([
  // { icon: 'icon-option.png', title: '貨幣訂單' , path: '/position/index'},
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('hbdhdd') , path: '/cryptos/deliveryContractHistory?symbol=USDSGD&type=forex'},
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('whjydd') , path: '/cryptos/tradeRecord/USDSGD/?type=forex'},
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('账变记录') , path:'/cryptos/accountChange'},
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('hbdhdd'), path: '/cryptos/deliveryContractHistory?symbol=USDSGD&type=forex' },
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('whjydd'), path: '/cryptos/tradeRecord/USDSGD/?type=forex' },
  { icon: new URL('../../assets/img/icon-option.png', import.meta.url), title: t('账变记录'), path: '/cryptos/accountChange' },
  // { icon: new URL('../../assets/img/icon-wallet.png', import.meta.url), title: t('银行卡'), path: '/payMentMethod/list'},
  { icon: new URL('../../assets/img/icon-real.png', import.meta.url), title: t('实名认证'), status: status.value[userStore.userInfo.kyc_status] , path: '/certificationCenter'},
  { icon: new URL('../../assets/img/icon-real.png', import.meta.url), title: t('实名认证'), status: status.value[userStore.userInfo.kyc_status], path: '/certificationCenter' },
  { icon: new URL('../../assets/img/icon-small-language.png', import.meta.url), title: t('语言'), status: JSON.parse(localStorage.getItem('lang_tit')), path: '/language' },
  { icon: new URL('../../assets/img/icon-small-password.png', import.meta.url), title: t('修改密码'), path: '/changePassword'},
  { icon: new URL('../../assets/img/icon-small-password.png', import.meta.url), title: t('修改资金密码'), path: '/changeFundsPassword' }
  { icon: new URL('../../assets/img/icon-small-password.png', import.meta.url), title: t('修改密码'), path: '/changePassword' },
  { icon: new URL('../../assets/img/icon-small-password.png', import.meta.url), title: t('修改资金密码'), path: '/changeFundsPassword' }
]);
// 帮助和支持选项数据
@@ -108,7 +101,7 @@
  // { icon: 'icon-service.png', title: '專屬客服' },
  { icon: new URL('../../assets/img/icon-about.png', import.meta.url), title: t('关于我们'), path: '/aboutUs' },
  // { icon: 'icon-logout.png', title: '下載 APP' },
  { icon: new URL('../../assets/img/icon-logout.png', import.meta.url), title: t('退出'),path:'/aaa', button: true  }
  { icon: new URL('../../assets/img/icon-logout.png', import.meta.url), title: t('退出'), path: '/aaa', button: true }
]);
const state = reactive({
@@ -137,10 +130,10 @@
    router.push('/login')
    return
  }
  if(path=='/aaa'){
      loginOut()
  }else{
      router.push(path)
  if (path == '/aaa') {
    loginOut()
  } else {
    router.push(path)
  }
}
onMounted(() => {
@@ -237,6 +230,7 @@
.bgimg {
  background: url('@/assets/imgs/bg-account.png') 0% 0% / cover;
}
:deep(.van-cell-group__title) {
  background: $main2_background !important;
  padding: 12px 16px;
src/views/register/index.vue
@@ -95,7 +95,7 @@
                    <div class="ml-9 text-black flex-1">
                        <div class="uni-input-wrapper">
                            <input type="password" v-model="repassword" maxlength="140" step="" enterkeyhint="done"
                                class="uni-input-input" autocomplete="off" :placeholder="$t('密码')">
                                class="uni-input-input" autocomplete="off" :placeholder="$t('确认密码')">
                        </div>
                    </div>
                </div>
@@ -358,9 +358,11 @@
<style lang="scss" scoped>
@import '@/assets/css/deepseek_css_20250625_30ff932.css';
.uni-input-input{
    background-color: #fff;
.uni-input-input {
    background-color: #fff;
}
.activeBKClick {
    &:active {
        background: $tab_background;