1
PC-20250623MANY\Administrator
2025-09-30 9ddad348a549154e7b328f9d7dd9517d2abd330c
src/page/user/account.vue
@@ -12,94 +12,208 @@
      </template>
    </tab-head>
    <div class="wallet">
    <!-- <div class="wallet">
      <div class="wallet_title flex-start">
        <img src="@/assets/img/钱袋.png" alt="" />
        <span>{{ $t("hj244") }}</span>
      </div>
      <div class="wallet_price flex-between">
        <span>MX$ 16,407,946.28</span>
        <span>MX$ 3,247,918.14</span>
      <div class="wallet_record flex-center" @click="toPage('/wallet')">
        <span>{{ $t("我的钱包") }}</span>
        <van-icon name="play" size=".5em" />
      </div>
      <div class="wallet_price_name flex-between">
        <span>{{ $t("hometips") }}</span>
        <span>{{ $t("hj48") }}</span>
      </div>
      <div class="wallet_record flex-center">
      <div class="wallet_record flex-center" @click="toPage('/Record')">
        <span>{{ $t("账户变动记录") }}</span>
        <van-icon name="play" size=".5em" />
      </div>
    </div>
    </div> -->
    <div class="account_tabs flex-between">
      <div class="tab flex-center ">
      <div class="tab flex-center" @click="czts()">
        <img src="@/assets/img/cz.png" alt="" />
        <span>{{ $t("hj172") }}</span>
      </div>
      <div class="tab flex-center ">
      <div class="tab flex-center" @click="toPage('/RechargeSure')">
        <img src="@/assets/img/tx.png" alt="" />
        <span>{{ $t("subdka") }}</span>
      </div>
      <div class="tab flex-center ">
      <div class="tab flex-center" @click="toPage('/wallet')">
        <div class="qb_icon flex-center">
          <img src="@/assets/img/qb.png" alt="" />
        </div>
        <span>{{ $t("hj244") }}</span>
      </div>
      <div class="tab flex-center" @click="toPage('/rechargelist')">
        <img src="@/assets/img/jl.png" alt="" />
        <span>{{ $t("jl") }}</span>
      </div>
    </div>
    <!-- <div class="account_loan flex-between" @click="toPage('/loan')">
      <div class="loan_left">
        <p class="loan_left_title">{{ $t("待还款金额") }}</p>
        <p>$ {{ userInfo.refundAmount || 0 }}</p>
      </div>
      <div class="flex-end loan_right">
        {{ $t("我的贷款") }}
        <van-icon name="play" style="margin-left:.5em" />
      </div>
    </div> -->
    <div class="account_card">
      <div class="held_head flex-between">
        <div class="flex-center head_left">
        <div class="flex-center head_left" @click="toPage('/tradeNew')">
          <span>{{ $t("hj2") }}</span>
          <img src="@/assets/img/cc_ss.png" alt="" />
        </div>
        <div class="flex-center head_right">
          <span>{{ $t("jl") }}</span>
        <div class="flex-center head_right" @click="toPage('/stockRecord')">
          <span>{{ $t("hj121") }}</span>
          <img src="@/assets/img/cc_jl.png" alt="" />
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon">MEX</span>
          <span class="held_icon">US</span>
          <p>{{ $t("Worth") }}</p>
        </div>
        <div class="item_right flex-end">
          3,010 MXN
          {{ positionData.usMarketValue }} USD
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon">MEX</span>
          <span class="held_icon">US</span>
          <p>{{ $t("持仓收益") }}</p>
        </div>
        <div class="item_right flex-end" :class="'rise'">
          <img src="@/assets/img/rise.png" alt="" />
          2,010 (201%)
        <div
          class="item_right flex-end"
          :class="{
            descend: positionData.usPositionEarnings < 0,
            rise: positionData.usPositionEarnings > 0
          }"
        >
          <img
            src="@/assets/img/rise.png"
            v-if="positionData.usPositionEarnings > 0"
          />
          <img
            src="@/assets/img/descend.png"
            alt=""
            v-else-if="positionData.usPositionEarnings < 0"
          />
          {{ positionData.usPositionEarnings }}
          ({{ positionData.usPositionEarningsParent }})
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">US</span>
          <span class="held_icon2">HK</span>
          <p>{{ $t("Worth") }}</p>
        </div>
        <div class="item_right flex-end">
          685,059.11 USD
          {{ positionData.hkMarketValue }} HKD
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">US</span>
          <span class="held_icon2">HK</span>
          <p>{{ $t("持仓收益") }}</p>
        </div>
        <div class="item_right flex-end" :class="'descend'">
          <img src="@/assets/img/descend.png" alt="" />
          191,980.42 (38.94%)
        <div
          class="item_right flex-end"
          :class="{
            descend: positionData.hkPositionEarnings < 0,
            rise: positionData.hkPositionEarnings > 0
          }"
        >
          <img
            src="@/assets/img/rise.png"
            v-if="positionData.hkPositionEarnings > 0"
          />
          <img
            src="@/assets/img/descend.png"
            alt=""
            v-else-if="positionData.hkPositionEarnings < 0"
          />
          {{ positionData.hkPositionEarnings }}
          ({{ positionData.hkPositionEarningsParent }})
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">IN</span>
          <p>{{ $t("Worth") }}</p>
        </div>
        <div class="item_right flex-end">
          {{ positionData.inMarketValue }} INR
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">IN</span>
          <p>{{ $t("持仓收益") }}</p>
        </div>
        <div
          class="item_right flex-end"
          :class="{
            descend: positionData.inPositionEarnings < 0,
            rise: positionData.inPositionEarnings > 0
          }"
        >
          <img
            src="@/assets/img/rise.png"
            v-if="positionData.inPositionEarnings > 0"
          />
          <img
            src="@/assets/img/descend.png"
            alt=""
            v-else-if="positionData.inPositionEarnings < 0"
          />
          {{ positionData.inPositionEarnings }}
          ({{ positionData.inPositionEarningsParent }})
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">TW</span>
          <p>{{ $t("Worth") }}</p>
        </div>
        <div class="item_right flex-end">
          {{ positionData.twMarketValue }} TWD
        </div>
      </div>
      <div class="held_item flex-between">
        <div class="item_left flex-start">
          <span class="held_icon2">TW</span>
          <p>{{ $t("持仓收益") }}</p>
        </div>
        <div
          class="item_right flex-end"
          :class="{
            descend: positionData.twPositionEarnings < 0,
            rise: positionData.twPositionEarnings > 0
          }"
        >
          <img
            src="@/assets/img/rise.png"
            v-if="positionData.twPositionEarnings > 0"
          />
          <img
            src="@/assets/img/descend.png"
            alt=""
            v-else-if="positionData.twPositionEarnings < 0"
          />
          {{ positionData.twPositionEarnings }}
          ({{ positionData.twPositionEarningsParent }})
        </div>
      </div>
    </div>
@@ -107,6 +221,7 @@
</template>
<script>
import { Toast } from "vant";
import tabHead from "@/components/tabHead.vue";
import * as api from "@/axios/api";
export default {
@@ -116,12 +231,28 @@
  },
  data() {
    return {
      userInfo: {}
      userInfo: {}, // 用户信息
      moneyData: [], // 账户金额, 包含可用余额数组
      positionData: {} // 账户持仓数据
    };
  },
  methods: {
    // 获取账户金额
    async getMoney() {
      let data = await api.getMoney();
      if (data.status === 0) {
        this.moneyData = data.data;
      }
    },
    // 获取账户持仓数据
    async getMyPositionProfitAndLose() {
      let data = await api.getMyPositionProfitAndLose();
      if (data.status === 0) {
        this.positionData = data.data;
      }
    },
    // 获取用户信息
    async getUserInfo() {
      // 获取用户信息
      let data = await api.getUserInfodata();
      if (data.status === 0) {
        // 判断是否登录
@@ -131,10 +262,21 @@
      } else {
        this.$store.commit("dialogVisible", true);
      }
    },
    // 跳转
    toPage(url) {
      if (!url) return;
      this.$router.push(url);
    },
    // 充值提示
    czts() {
      Toast(this.$t("充值提示"));
    }
  },
  created() {
    this.getUserInfo();
    this.getMoney();
    this.getMyPositionProfitAndLose();
  }
};
</script>
@@ -146,17 +288,37 @@
@dark_green: #07c160;
.account {
  width: 100%;
  height: 100%;
  min-height: 100vh;
  background: #fff;
  font-size: 10vw;
  padding-top: 0.2em;
  padding-bottom: 1.4rem;
  .account_loan {
    height: 2em;
    background-color: #e5eff7;
    width: 100%;
    padding: 0 0.5em 0.15em;
    .loan_left {
      p {
        font-size: 0.4em;
      }
      .loan_left_title {
        font-size: 0.3em;
        color: #999;
        margin-bottom: 0.75em;
      }
    }
    .loan_right {
      font-size: 0.4em;
    }
  }
  .account_card {
    background-color: #f5f5f5;
    border-radius: 0.25em;
    width: 9.5em;
    margin: 0.5em auto 0;
    margin: 0.25em auto 0;
    .held_item {
      padding: 0.42em 0;
@@ -244,7 +406,7 @@
  }
  .account_tabs {
    box-shadow: 0 -0.26667rem 0.53333rem #1a00394d;
    // box-shadow: 0 -0.26667rem 0.53333rem #1a00394d;
    width: 100%;
    padding: 0.4em 0.25em 0.5em;
    background-color: #f1f1f1;
@@ -268,7 +430,20 @@
        font-size: 0.42em;
      }
      img {
      .qb_icon {
        width: 1.6em;
        height: 1.6em;
        background-color: rgba(@green, 0.2);
        border-radius: 50%;
        margin-bottom: 0.3em;
        img {
          width: 1em;
          height: auto;
        }
      }
      & > img {
        width: 1.6em;
        margin-bottom: 0.3em;
      }
@@ -284,19 +459,24 @@
    color: #fff;
    .wallet_record {
      color: @green;
      margin-top: 0.5em;
      padding: 0.5em;
      // margin-top: 0.5em;
      padding: 0.3em;
      border-top: 0.01em solid rgba(#fff, 0.1);
      span {
        font-size: 0.4em;
      }
    }
    .wallet_price_name {
      padding: 0 0.25em;
      padding: 0 0.25em 0.25em;
      span {
        font-size: 0.3em;
      }
    }
    .wallet_i_title {
      border-top: rgba(#fff, 0.1) solid 0.01em;
      font-size: 0.4em;
      padding: 0.6em 0;
    }
    .wallet_price {
      color: #f7b52b;
      padding: 0 0.25em;