1
PC-20250623MANY\Administrator
2025-07-22 3003b7486ddeffd169f2b2f564fc0ff8c2c58bb3
src/page/trading/TradeNew.vue
@@ -2,6 +2,16 @@
  <div class="trade_new">
    <tab-head></tab-head>
    <div class="order_tabs">
      <van-tabs v-model="active" swipe-threshold="1">
        <van-tab :title="$t('hj160')" name=""></van-tab>
        <van-tab title="AI" name="4"></van-tab>
        <van-tab :title="$t('hj621')" name="3"></van-tab>
        <van-tab title="IPO" name="2"></van-tab>
        <van-tab :title="$t('日内')" name="0"></van-tab>
      </van-tabs>
    </div>
    <van-row class="list_head">
      <van-col span="8" class="flex-start head_item">
        {{ $t("hj313") }}/{{ $t("Worth") }}
@@ -14,53 +24,131 @@
      </van-col>
    </van-row>
    <van-row class="list_item" v-for="item in 10" :key="item">
    <van-row
      class="list_item"
      v-for="i in list"
      :key="i.id"
      @click="toDetails(i)"
    >
      <van-col span="8" class="item_n">
        <div class="flex-start">
          <span class="i_icon">US</span>
          <span class="i_hint">WINVU</span>
          <span class="i_icon">{{ i.stockGid }}</span>
          <span class="i_hint">{{ i.stockSpell }}</span>
        </div>
        <div class="i_name">124.1</div>
        <div class="i_name">
          {{ (i.orderNum * i.now_price).toFixed(2) }}
        </div>
      </van-col>
      <van-col span="8" class="item_n">
        <p class="flex-start">18</p>
        <p class="flex-start i_name">24.1 (24.1%)</p>
        <p class="flex-start">{{ i.orderNum }}</p>
        <p class="flex-start i_name">
          {{ i.profitAndLose }} ({{ i.profitAndLoseParent }})
        </p>
      </van-col>
      <van-col span="8" class="item_n">
        <div class="flex-end" style="margin-bottom: .15em;">
          <span>10</span>
          <span>{{ i.buyOrderPrice }}</span>
        </div>
        <div class="flex-end">
          <span>12.41</span>
          <span>{{ i.now_price }}</span>
        </div>
      </van-col>
      <van-col span="24" class="flex-start transaction_type">
        <span>AI交易</span>
        <span>{{ types[i.positionType] }}</span>
      </van-col>
      <van-col span="24" class="flex-between item_card">
      <van-col
        span="24"
        class="flex-between-start item_card"
        v-if="i.positionType == 4"
      >
        <div class="card_label">
          <p>建仓成本</p>
          <p>100</p>
          <p>{{ $t("建仓成本") }}</p>
          <p>{{ i.orderTotalPrice }}</p>
        </div>
        <div class="card_label">
          <p>平仓金额</p>
          <p>90</p>
          <p>{{ $t("pcje") }}</p>
          <p>{{ i.sellOrderTotalPrice }}</p>
        </div>
        <div class="card_label">
          <p>预期收益</p>
          <p>-10</p>
          <p>{{ $t("预期收益") }}</p>
          <p>{{ i.profitAndLose }}</p>
        </div>
      </van-col>
    </van-row>
    <!-- 无数据时显示 -->
    <div class="no_data flex-center" v-show="!list || list.length == 0">
      <img src="@/assets/img/zhaobudao2.png" alt="" />
    </div>
    <n-pagination
      :pageNo.sync="pageNum"
      :pageSize="pageSize"
      :total="total"
    ></n-pagination>
  </div>
</template>
<script>
import tabHead from "@/components/tabHead.vue";
import * as api from "@/axios/api";
import nPagination from "@/components/nPagination.vue";
export default {
  components: {
    tabHead
    tabHead,
    nPagination
  },
  data() {
    return {
      pageNum: 1,
      pageSize: 15,
      total: 1,
      list: [],
      active: "",
      types: {
        0: this.$t("日内"),
        2: "IPO",
        3: this.$t("hj621"),
        4: "AI"
      }
    };
  },
  watch: {
    pageNum() {
      this.getList();
    },
    active() {
      this.pageNum = 1;
      this.getList();
    }
  },
  created() {
    this.getList();
  },
  methods: {
    // 获取数据
    async getList() {
      let data = await api.getchicang({
        state: 0,
        positionType: this.active,
        pageNum: this.pageNum,
        pageSize: this.pageSize
      });
      if (data.status === 0) {
        this.list = data.data.list;
        this.total = data.data.total;
      }
    },
    // 跳转详情
    toDetails(i) {
      if (!i.positionSn) return;
      this.$router.push({
        path: "/Stockdetail",
        query: { codes: i.positionSn }
      });
    }
  }
};
</script>
@@ -70,12 +158,37 @@
@dark_green: #07c160;
@red: #ee0a24;
@brown: #ff976a;
@green: #c4d600;
.trade_new {
  width: 100%;
  height: 100%;
  // height: 100%;
  background: #fff;
  font-size: 10vw;
  padding-bottom: 1.3rem;
  // padding-top: 1.4em;
  /deep/ .van-tabs--line .van-tabs__wrap {
    height: 1.2em;
  }
  /deep/ .van-tab__text--ellipsis {
    overflow: visible;
  }
  /deep/ .van-tab {
    font-size: 0.4em;
  }
  /deep/ .van-tabs__line {
    background-color: @green;
    height: 0.1em;
    width: 1em;
  }
  .order_tabs {
    width: 100%;
    // position: fixed;
    // top: 1.4em;
    // left: 0;
    // z-index: 999;
  }
  .list_head {
    background-color: @green2;