jhzh
2025-08-27 ef2e2e3f9c6d37cc47b14ce0444fb75e6aa19dd1
src/page/newUser/index.vue
@@ -1,7 +1,7 @@
<template>
  <div class="user_page DINPro">
    <div class="content">
      <div class="top_icon">
      <!-- <div class="top_icon">
        <div class="left_icon">
          <div>
            <img
@@ -14,7 +14,7 @@
              {{ userInfo.realName }}
            </div>
            <div class="top_box_top" style="margin-top: 2px">
              ID:{{ userInfo.id }}
              ID:{{ userInfo.phone }}
            </div>
          </div>
        </div>
@@ -23,33 +23,53 @@
            <img src="@/assets/img/shezhia.png" alt />
          </div>
        </div>
      </div> -->
      <div class="userbox">
        <img style="width: 59px;height: 59px;margin-bottom: 20px;" src="@/assets/img/aass.png"/>
        <div style="margin-bottom: 10px;font-size: 15px;">{{ userInfo.phone }}</div>
        <div style="margin-bottom: 20px;display: flex;">
          <div >UID:{{ userInfo.id }}
          </div>
          <div :style="userInfo.isActive==2?'color:#16B06E;margin-left: 10px;':'color:#C8302F;margin-left: 10px;'">{{userInfo.isActive==2?$t('hj203'):$t('hj204')}}</div>
        </div>
      </div>
      <div class="sfrz">
        <div class="sfrz_left">
          <img src="@/assets/img/shiminga.png"/>
          <div style="margin-left: 5px;">{{$t('hj246')}}</div>
        </div>
        <div class="sfrz_right" @click="$router.push('/authentications')">
          {{userInfo.isActive==2?$t('hj203'):$t('hj204')}}
        </div>
      </div>
      <div>
        <div style="margin-top: 20px;color: #fff;border-radius: 4px;width: max-content;padding: 8px 16px;background-color: #185546;margin-left: 15px;margin-bottom: 20px;">
          {{$t('日股')}}
        </div>
      </div>
      <div class="content-box">
        <van-row class="van-row-box">
          <van-col span="20">
            <div class="content-all">
              <span>{{ $t("賬戶總資產") }}({{ $USD }})</span>
              <i @click="xy = !xy" class="iconfont xy">&#xe8c7;</i>
              <span>{{ $t("賬戶總資產") }}(JPY)</span>
            </div>
            <div class="number-all">
              <showHide :text="asstesAll" :flg="xy" />
            </div>
          </van-col>
          <van-col span="4" style="display: flex; justify-content: flex-end">
            <van-icon
            <!-- <van-icon
              @click="$router.push('/rechargelist')"
              name="orders-o"
              size="20"
            />
            /> -->
            <i @click="xy = !xy" class="iconfont xy">&#xe8c7;</i>
          </van-col>
        </van-row>
        <van-row style="margin-top: 16px">
        <!-- <van-row style="margin-top: 16px">
          <van-col span="8" style="display: flex; justify-content: center">
            <!-- @click="$router.push('/recharge')" -->
            <!-- @click="kefu" -->
            <van-button @click="kefu" class="btn-two" type="primary">
            <van-button @click="$router.push('/recharge')" class="btn-two" type="primary">
              {{ $t("hj172") }}
            </van-button>
          </van-col>
@@ -60,12 +80,81 @@
              type="default"
              >{{ $t("提款") }}</van-button
            >
          </van-col>
          </van-col> -->
         <!-- <van-col span="8" style="display: flex; justify-content: center">
            <van-button
              @click="leverShow = true"
              class="btn-two"
              type="default"
            >
              {{ $t("申请杠杠") }}
            </van-button>
          </van-col> -->
        </van-row>
        <van-dialog
          v-model="leverShow"
          :title="$t('申请杠杠')"
          show-cancel-button
          :cancelButtonText="$t('取消')"
          :confirmButtonText="$t('确认')"
          @confirm="confirmLever"
        >
          <van-radio-group v-model="radio">
            <van-cell-group>
              <van-cell title="1X" clickable @click="radio = '1'">
                <template #right-icon>
                  <van-radio name="1" />
                </template>
              </van-cell>
              <van-cell title="2X" clickable @click="radio = '2'">
                <template #right-icon>
                  <van-radio name="2" />
                </template>
              </van-cell>
              <van-cell title="5X" clickable @click="radio = '5'">
                <template #right-icon>
                  <van-radio name="5" />
                </template>
              </van-cell>
              <van-cell title="10X" clickable @click="radio = '10'">
                <template #right-icon>
                  <van-radio name="10" />
                </template>
              </van-cell>
            </van-cell-group>
          </van-radio-group>
        </van-dialog>
      </div>
      <div class="content-list-box">
        <div class="divider div-shrink"></div>
        <van-tabs
        <div class="price">
          <div class="price_box">
            <div class="price_box_title">{{$t('hometips')}}</div>
            <div class="price_box_txt">{{asstesAll}}</div>
          </div>
          <div class="price_box">
            <div class="price_box_title">{{$t('日股冻结')}}</div>
            <div class="price_box_txt">0.00</div>
          </div>
          <div class="price_box">
            <div class="price_box_title">{{$t('累計盈虧')}}</div>
            <div class="price_box_txt">{{moneyList[0].cumulativeProfitAndLoss}}</div>
          </div>
          <div class="price_box">
            <div class="price_box_title">{{$t('浮動盈虧')}}</div>
            <div class="price_box_txt">{{moneyList[0].profitAndLoss}}</div>
          </div>
          <div class="price_box">
            <div class="price_box_title">{{$t('待补金额')}}</div>
            <div class="price_box_txt">{{moneyList[0].amountToBeCovered}}</div>
          </div>
          <div class="price_box">
            <div class="price_box_title">{{$t('hj48')}}</div>
            <div class="price_box_txt">{{moneyList[0].availableBalance}}</div>
          </div>
        </div>
        <!-- <div class="divider div-shrink"></div> -->
        <!-- <van-tabs
          line-width="22px"
          swipe-threshold="2"
          offset-top="20px"
@@ -85,11 +174,9 @@
                </div>
                <div class="li-USDT">
                  <div class="DINPro">
                    {{ item.symbol }} {{ item.availableBalance || "0.00" }}
                    {{ item.symbol }}
                    {{ item.availableBalance   }}
                  </div>
                  <!-- <div class="DINPro">
                    ≈ $ {{ item.availableBalanceUSD || "0.00" }}
                  </div> -->
                </div>
              </li>
              <li>
@@ -98,16 +185,77 @@
                </div>
                <div class="li-USDT">
                  <div class="DINPro">
                    {{ item.symbol }} {{ item.freezeMoney || "0.00" }}
                    {{ item.symbol }}
                    {{ item.freezeMoney   }}
                  </div>
                  <!-- <div class="DINPro">≈ $ {{ item.freezeMoney || "0.00" }}</div> -->
                </div>
              </li>
              <li>
                <div class="li-title">
                  {{ $t("待补金额") }}({{ item.symbolCode }})
                </div>
                <div class="li-USDT">
                  <div class="DINPro">
                    {{ item.symbol }}
                    {{ item.amountToBeCovered   }}
                  </div>
                </div>
              </li>
            </ul>
          </van-tab>
        </van-tabs>
        </van-tabs> -->
        <div class="btnsss">
          <div class="btn_box" v-for="(item,index) in btnlist" :key="index" @click="gotorush(item.url)">
            <img class="btn_box_img" :src="item.img"/>
            <div class="btn_box_txt">{{item.txt}}</div>
          </div>
        </div>
        <setting style="width: auto;"></setting>
        <div style="width: 100%;height: 100px;"></div>
      <!--  <div class="path" >
          <div class="path_box" v-for="(item,index) in iconlist" :key="index" @click="nato(item.path)">
            <div class="path_img">
              <img alt :src="item.icon"/>
            </div>
            <div class="path_txt">{{item.title}}</div>
          </div>
        </div> -->
      </div>
    </div>
    <Language ref="language" @onChange="onChange" />
    <van-popup v-model="settingDialog" position="bottom" :style="{ height: '40%' }">
      <div class="setting_content">
        <div class="old_password">
          <div class="left_titles">
            <span>{{ $t("hj150") + ":" }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="oldPassword" />
          </div>
        </div>
        <div class="old_password">
          <div class="left_titles">
            <span>{{ $t("hj151") + ":" }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="newPassword" />
          </div>
        </div>
        <div class="old_password">
          <div class="left_titles">
            <span>{{ $t("hj152") + ":" }}</span>
          </div>
          <div class="right_password_input">
            <input type="password" v-model="cirNewPassword" />
          </div>
        </div>
        <div class="btn_setting" @click="changeLoginPsd()">
          <span>{{ $t("hj153") }}</span>
        </div>
      </div>
    </van-popup>
  </div>
</template>
@@ -117,26 +265,65 @@
import { isNull, pwdReg } from "@/utils/utils";
import showHide from "@/components/showHide";
import Vue from "vue";
import { Notify } from "vant";
import Language from "@/components/Language/index.vue";
import setting from "./setting.vue"
export default {
  name: "newUser",
  components: { showHide },
  components: { showHide,Language,setting },
  data() {
    return {
      pswDialog: false,
      leverShow: false,
      radio: "1",
      // 显示隐藏
      xy: true,
      listAsstes: [
        {
          title: this.$t("印股資產"),
          title3: this.$t("印股總資產"),
          title1: this.$t("印股可用"),
          title2: this.$t("印股冻结"),
          accectType: "IN",
          symbolCode: "INR",
          symbol: "₹",
          title: this.$t("日股資產"),
          title3: this.$t("日股總資產"),
          title1: this.$t("日股可用"),
          title2: this.$t("日股冻结"),
          accectType: "JP",
          symbolCode: "JPY",
          symbol: "¥",
        },
      ],
      active: this.$t("印股資產"),
      active: this.$t("日股資產"),
      name: "",
      btnlist:[
        {
          img:require('../../assets/img/chongzhi.svg'),
          txt:this.$t('hj172'),
          url:'/recharge'
        },
        {
          img:require('../../assets/img/tixian.svg'),
          txt:this.$t('hj177'),
          url:'/RechargeSure'
        },
        {
          img:require('../../assets/img/bank_card.svg'),
          txt:this.$t('hj247'),
          url:'/banklist'
        },
        {
          img:require('../../assets/img/mingxi.svg'),
          txt:this.$t('明细'),
          url:'/Record'
        },
        {
          img:require('../../assets/img/mykefu.svg'),
          txt:this.$t('kf'),
          url:''
        },
        {
          img:require('../../assets/img/userrz.svg'),
          txt:this.$t('hj203'),
          url:'/authentications'
        }
      ],
      selectUserFlag: true,
      settingDialog: false,
      oldPassword: "", // 旧密码
@@ -146,6 +333,43 @@
      onlineService: "",
      moneyList: [],
      asstesAll: "0.00",
      iconlist:[{
        icon:require('../../assets/img/usericon.png'),
        path:'/bankCard1',
        title: this.$t("关于我们"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/banklist',
        title: this.$t("hj147"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/mm',
        title: this.$t("hj144"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/authentications',
        title: this.$t("hj146"),
      },
      // {
      //   icon:require('../../assets/img/usericon.png'),
      //   path:'/banklist',
      //   title: this.$t("ysmrz"),
      // },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/yy',
        title: this.$t("yy"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/tc',
        title: this.$t("hj148"),
      },
      ],
      language: "",
    };
  },
  created() {
@@ -154,12 +378,129 @@
    this.getInfoSite();
  },
  methods: {
    clicklang() {
      this.$refs.language.settingDialog = true;
    },
    onChange(e) {
      this.language = e;
      this.active = this.$t("日股資產")
      this.listAsstes=[
        {
          title: this.$t("日股資產"),
          title3: this.$t("日股總資產"),
          title1: this.$t("日股可用"),
          title2: this.$t("日股冻结"),
          accectType: "JP",
          symbolCode: "JPY",
          symbol: "¥",
        },
      ]
      this.iconlist = [{
        icon:require('../../assets/img/usericon.png'),
        path:'/bankCard1',
        title: this.$t("关于我们"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/banklist',
        title: this.$t("hj147"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/mm',
        title: this.$t("hj144"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/authentications',
        title: 'KYC',
      },
      // {
      //   icon:require('../../assets/img/usericon.png'),
      //   path:'/banklist',
      //   title: this.$t("ysmrz"),
      // },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/yy',
        title: this.$t("yy"),
      },
      {
        icon:require('../../assets/img/usericon.png'),
        path:'/tc',
        title: this.$t("hj148"),
      },
      ]
    },
    nato(path){
      if(path=='/mm'){
        this.goToSettings()
      }else if (path=='/yy'){
        this.clicklang()
      }else if (path == '/tc'){
        this.handleOutLoginClick()
      }else{
        this.$router.push(path);
      }
    },
    async toRegister() {
      // 注销登陆
      window.localStorage.removeItem("USERTOKEN"); // 清空本地存储 USERTOKEN字段
      this.clearCookie();
      let data = await api.logout();
      if (data.status === 0) {
        // Toast(data.msg)
        this.undataToken(null);
        this.$router.push("/login");
      } else {
        Toast(data.msg);
      }
      this.$router.push("/login");
    },
    gotorush(e){
      // if(e=='/recharge'){
      //   Toast(this.$t('请联系客服'));
      // }else
       if(e==''){
        // window.open('https://lin.ee/7I7cvGD', '_blank');
        // window.open('https://lin.ee/69mzBfD', '_blank');
        window.open(this.onlineService);
      }else{
        this.$router.push(e);
      }
    },
    handleOutLoginClick() {
      // 退出登录
      MessageBox.confirm(this.$t("hj149"), this.$t(""), {
        confirmButtonText: this.$t("qr"),
        cancelButtonText: this.$t("hj106"),
      })
        .then(() => {
          this.toRegister();
        })
        .catch(() => {});
    },
    // 申请杠杠
    async confirmLever() {
      const res = await api.applyLever({ lever: this.radio });
      if (res.status === 0) {
        Notify({
          type: "success",
          message: this.$t("申请杠杠成功,请联系客服!"),
        });
      } else {
        Notify({ type: "warning", message: res.msg });
      }
    },
    kefu() {
      this.$store.commit("elAlertShow", {
          elAlertShow: true,
          elAlertText: this.$t("当前充值渠道已关闭请选择在线客服进行充值。")
        });
      // window.open(this.onlineService);
    },
    async getMoneyData() {
      let data = await api.getMoney();
      console.log(data);
      if (data.status === 0) {
        // 判断是否登录
        this.moneyList = data.data;
@@ -172,11 +513,12 @@
              Vue.set(items, "freezeMoneyUSD", item.freezeMoneyUSD);
              Vue.set(items, "symbol", item.symbol);
              Vue.set(items, "symbolCode", item.symbolCode);
              Vue.set(items, "amountToBeCovered", item.amountToBeCovered);
            }
          });
        });
        const arr = data.data.filter((item) => item.accectType === "ALL");
        const arr = data.data.filter((item) => item.accectType === "JP");
        this.asstesAll = arr[0].totalMoney;
      }
    },
@@ -290,17 +632,17 @@
      // }
      this.$router.push("/setting");
    },
    handleOutLoginClick() {
      // 退出登录
      MessageBox.confirm(this.$t("hj149") + "?", this.$t("hj165"), {
        confirmButtonText: this.$t("hj161"),
        cancelButtonText: this.$t("hj106"),
      })
        .then(() => {
          this.toRegister();
        })
        .catch(() => {});
    },
    // handleOutLoginClick() {
    //   // 退出登录
    //   MessageBox.confirm(this.$t(""), this.$t("hj165"), {
    //     confirmButtonText: this.$t("qr"),
    //     cancelButtonText: this.$t("hj106"),
    //   })
    //     .then(() => {
    //       this.toRegister();
    //     })
    //     .catch(() => {});
    // },
    goToSettings() {
      if (this.userInfo.length === 0) {
        this.$store.commit("dialogVisible", true);
@@ -398,6 +740,84 @@
</script>
<style scoped lang="less">
  .sfrz_right{
    background: #185546;
    padding: 8px 16px;
    border-radius: 4px;
    color: #fff;
  }
  .sfrz_left{
    display: flex;
    color: #276048;
  }
  .sfrz{
        // margin-top: 10px;
        background: #e8f4f0;
        padding: 0.422rem 15px;
        display: flex;
        justify-content: space-between;
        align-items: center;
  }
  .userbox{
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 60px;
  }
  .btn_box_txt{
font-size: .346667rem;
    color: #185546;
    font-family: Arial, sans-serif;
  }
  .btn_box_img{
    width: .64rem;
        height: .64rem;
        margin-bottom: .16rem;
  }
  .btn_box{
    margin-top: .373333rem;
    width: 31%;
    display: flex;
    flex-direction: column;
    align-items: center;
    background: #fff;
    padding: .32rem 0;
  }
  .btnsss{
    margin: 0px 20px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
  }
  .path_txt{
    text-align: center;
  }
  .path_img{
    img{
      width: 55px;
      height: 55px;
      margin-bottom: 10px;
    }
  }
  .path_box{
    width: 25%;
    display: flex;
    // justify-content: center;
    align-items: center;
    flex-direction: column;
    margin-bottom: 20px;
  }
  .path{
    margin: 0 20px;
    margin-top: 20px;
    padding: 20px 0;
    display: flex;
    flex-wrap: wrap;
    border-radius: 12px;
    box-shadow:  2px 2px 8px 2px rgba(0, 0, 0, 0.2);
  }
/deep/ .van-button--primary {
  background-color: #0066ed;
}
@@ -452,6 +872,7 @@
      font-weight: 500;
      font-size: 0.37333rem;
      color: #2d2f3c;
      text-align: left;
    }
    .li-USDT {
      min-width: 180px;
@@ -464,10 +885,35 @@
    }
  }
}
.price_box_txt{
  color:#000;
  font-size: 24px;
  font-weight: bold;
}
.price_box_title{
  color:#858093;
  margin-bottom: 15px;
}
.price_box{
  background-color: #E8F4F0;
  display: flex;
  flex-direction: column;
  width: 48.9%;
  border-radius: 6px;
  margin-bottom: 12px;
  padding: .37rem .373333rem;
}
.price{
  margin:12px 15px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.content-list-box {
  width: 100%;
  min-height: calc(100vh - 6rem);
  background-color: #fff;
  // width: 100%;
  // min-height: calc(100vh - 6rem);
  // margin:12px 15px;
  // background-color: #fff;
  .divider {
    width: 100%;
    height: 0.13333rem;
@@ -477,12 +923,12 @@
.content-box {
  width: 100%;
  // min-height: 5.52rem;
  background: #ffffff;
  box-shadow: 0 0.16rem 0.32rem #eaeaea99;
  // background: #ffffff;
  // box-shadow: 0 0.16rem 0.32rem #eaeaea99;
  padding: 0.4rem;
  box-sizing: border-box;
  border-top-left-radius: 0.4rem;
  border-top-right-radius: 0.4rem;
  // border-top-left-radius: 0.4rem;
  // border-top-right-radius: 0.4rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
@@ -629,7 +1075,7 @@
.user_page {
  width: 100%;
  height: calc(100% - 1.3rem);
  background: linear-gradient(to bottom, #3160fd, #ffffff);
  background: #F8FAF9;
  .content {
    width: 100%;
@@ -958,4 +1404,4 @@
input[type="file"] {
  display: none !important;
}
</style>
</style>