1
admin
2026-01-13 ef4986b7a9ca0435ed4985373ffffbfb58e95114
src/page/trading/TradeNew.vue
@@ -41,7 +41,7 @@
            <span class="i_hint">{{ i.stockName }}</span>
          </div>
          <div class="i_name">
            {{ (i.buyNum * i.nowPrice).toFixed(2) }}
            {{ (i.buyNum * i.targetPrice).toFixed(2) }}
          </div>
        </van-col>
        <van-col span="3" class="item_n">
@@ -125,7 +125,7 @@
      <img src="@/assets/img/zhaobudao2.png" alt="" />
    </div>
    <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total" v-if="active != 'GaDan'"></n-pagination>
    <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="currentTotal" v-if="active != 'GaDan'"></n-pagination>
  </div>
</template>
@@ -146,7 +146,20 @@
      pageNum: 1,
      pageSize: 15,
      total: 1,
      list: [],
      // 为每个tab使用独立的list变量
      lists: {
        '': [],      // 默认tab
        'US': [],    // 美股指数
        'JP': [],    // 日股指数
        'GaDan': []  // 挂单
      },
      // 为每个tab使用独立的total变量
      totals: {
        '': 1,
        'US': 1,
        'JP': 1,
        'GaDan': 0
      },
      active: "",
      types: {
        0: this.$t("日内"),
@@ -158,6 +171,16 @@
      showPopover: false,
    };
  },
  computed: {
    // 当前tab对应的list
    list() {
      return this.lists[this.active] || [];
    },
    // 当前tab对应的total
    currentTotal() {
      return this.totals[this.active] || 0;
    }
  },
  watch: {
    pageNum() {
      this.getList();
@@ -165,7 +188,10 @@
    },
    active(val) {
      this.pageNum = 1;
      this.list = []
      // 清空当前tab的数据
      if (this.lists[val]) {
        this.lists[val] = [];
      }
      if (val == 'GaDan') {
        this.stopTimer()
        this.getList2();
@@ -186,24 +212,33 @@
  methods: {
    // 获取持仓数据
    async getList() {
      const currentActive = this.active;
      let data = await api.getchicang({
        state: 0,
        stockType: this.active,
        stockType: currentActive,
        pageNum: this.pageNum,
        pageSize: this.pageSize
      });
      if (data.status === 0) {
        this.list = data.data.list;
        this.total = data.data.total;
        // 只有当active没有变化时才更新数据,防止数据错乱
        if (this.active === currentActive) {
          this.lists[currentActive] = data.data.list || [];
          this.totals[currentActive] = data.data.total || 0;
          this.total = data.data.total || 0;
        }
      }
    },
    // 获取挂单数据
    async getList2() {
      const currentActive = this.active;
      let data = await api.getGdOrderList();
      if (data.status === 0) {
        this.list = data.data;
        // 只有当active没有变化时才更新数据,防止数据错乱
        if (this.active === currentActive && currentActive === 'GaDan') {
          this.lists['GaDan'] = data.data || [];
        }
      }
    },
    // 跳转详情