XiGuaSSR
2022-11-14 b18fc26a095ca2855d71b59975dab70d72501451
src/page/user/Warehouse.vue
@@ -31,7 +31,7 @@
        </div>
        <div class="overflow_box item" @click="SetTitleIndex(2)">
          <div class="left_titles">
            <span>{{ '期货账户' }}</span>
            <span>{{ '新股账户' }}</span>
          </div>
          <div class="right_price">
            <span>{{ '' }}</span>
@@ -113,7 +113,7 @@
                    $store.state.userInfo.allFreezAmt ? $store.state.userInfo.allFreezAmt : '0.00'
                }}</span>
                <span class="numDemo" v-show="titleIndex == 2">{{ '¥ ' +
                    $store.state.userInfo.allFuturesFreezAmt ? $store.state.userInfo.allFuturesFreezAmt : '0.00'
                    $store.state.userInfo.djzj ? $store.state.userInfo.djzj : '0.00'
                }}</span>
              </div>
              <div class="right_titles">
@@ -131,7 +131,8 @@
                <span class="numDemo"
                  :class="$store.state.userInfo.allFuturesProfitAndLose > 0 ? 'red' : $store.state.userInfo.allFuturesProfitAndLose < 0 ? ' green' : ''"
                  v-show="titleIndex == 2">{{
                      '¥' + $store.state.userInfo.allFuturesProfitAndLose ? Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2) : '0.00'
                      '¥' + $store.state.userInfo.allFuturesProfitAndLose ?
                        Number($store.state.userInfo.allFuturesProfitAndLose).toFixed(2) : '0.00'
                  }}</span>
              </div>
@@ -143,8 +144,9 @@
            <div class="tabs_top_title">
              <div class="title_items" v-for="(item, index) in   tabsArr" :key="index"
                @click="handleTabsClick(item, index)" :class="index == 0 ? 'kuan' : 'kuan'">
                <span :class="tabsCurrentIndex === index ? 'active' : ''">{{ item }}{{ index == 0 ? '(' + total + ')' : index == 1 ? '(' + totalss + ')' :
                    '(' + totals + ')'
                <span :class="tabsCurrentIndex === index ? 'active' : ''">{{ item }}{{ index == 0 ? '(' + total + ')' :
                    index == 1 ? '(' + totalss + ')' :
                      index == 2 ? '(' + totals + ')' : '(' + xgTotal + ')'
                }}</span>
              </div>
            </div>
@@ -194,7 +196,7 @@
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无挂单' }}</span>
                    <span class="gd">{{ '当前无持仓' }}</span>
                    <div class="trading" @click="$router.push('/trading-list')">
                      <span>{{ '开始交易' }}</span>
                    </div>
@@ -204,7 +206,7 @@
              <!-- 挂单 -->
              <div class="waiting" v-if="totalss == 0 && tabsCurrentIndex === 1">
                <div class="waiting_box">
                  <div class="img_cont">
@@ -225,11 +227,11 @@
                      <span class="buy_to_sell" :class="item.buyType == 1 ? 'maichu' : 'mairu'">{{
                          item.buyType == 1 ? '卖出' : '买入'
                      }}</span>
                      <span class="multiple">{{ item.lever  }}X</span>
                      <span class="multiple">{{ item.lever }}X</span>
                      <span class="nums">{{ item.buyNum / 100 + '手' }}</span>
                    </div>
                    <div class="center_price">
                      <div class="start_price jiantou">
                        <span>{{ item.targetPrice }}</span>
                      </div>
@@ -238,7 +240,7 @@
                      </div>
                    </div>
                    <div class="bottom_price_title">
                      <div class="start_price">
                        <span>{{ '挂单价格' }}</span>
                      </div>
@@ -246,7 +248,7 @@
                        <span>{{ '当前价格' }}</span>
                      </div>
                    </div>
                    <div class="right_btn">
                    <div class="right_btn" @click="gdClose(item)">
                      <span>{{ '撤销' }}</span>
                    </div>
                  </div>
@@ -256,12 +258,12 @@
              <!-- 平仓 -->
              <div class="waiting" v-if="totals == 0 && tabsCurrentIndex === 2">
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无挂单' }}</span>
                    <span class="gd">{{ '当前无平仓' }}</span>
                    <div class="trading" @click="$router.push('/trading-list')">
                      <span>{{ '开始交易' }}</span>
                    </div>
@@ -291,6 +293,61 @@
                  </div>
                </div>
              </van-list>
              <!-- 新股 -->
              <div class="waiting" v-if="xgTotal == 0 && tabsCurrentIndex === 3">
                <div class="waiting_box">
                  <div class="img_cont">
                    <img src="../../assets/img/zhaobudao.png" alt />
                    <span class="gd">{{ '当前无申购' }}</span>
                    <div class="trading" @click="$router.push({ path: '/trading-list', query: { listid: 3 } })">
                      <span>{{ '开始交易' }}</span>
                    </div>
                  </div>
                </div>
              </div>
              <van-list v-model="loadingXg" :finished="finishedXg" finished-text="没有更多了"
                v-show="tabsCurrentIndex === 3 && xgTotal != 0" @load="onLoadXg" :immediate-check="immediate">
                <div class="tabs_o">
                  <div class="tabs_o_items" v-for="(item, index) in tabsXgArr" :key="item.id">
                    <div class="tabs_o_title">
                      <span class="title">{{ item.newName }}</span>
                      <span class="buy_to_sell" :class="item.type == 1 ? 'mairu' : 'maichu'">{{
                          item.type == 1 ? '新股申购' : '线下配售'
                      }}</span>
                      <!-- <span class="multiple">{{ item.lever  }}X</span>
                      <span class="nums">{{ item.buyNum / 100 + '手' }}</span> -->
                    </div>
                    <div class="center_price">
                      <div class="start_price jiantou">
                        <span>{{ item.buyPrice }}</span>
                      </div>
                      <div class="new_price">
                        <span>{{ item.applyNums }}</span>
                      </div>
                    </div>
                    <div class="bottom_price_title">
                      <div class="start_price">
                        <span>{{ '申购价格' }}</span>
                      </div>
                      <div class="new_price">
                        <span>{{ '申购数量' }}</span>
                      </div>
                    </div>
                    <div class="right_btn" @click="zcsg(item)" :class="item.status == 1 ? 'pink' : item.status == 2 ? 'red'
                                : item.status == 3 ? 'greeen' : item.status == 4 ? 'blue' : item.status == 5 ? 'purple' : ''">
                      <span>{{ item.status == 1 ?
                          '已认购' : item.status == 2 ? '未中签'
                            : item.status == 3 ? '已中签' : item.status == 4 ? '已缴纳' : item.status == 5 ? '已转持仓'
                              : ''
                      }}</span>
                    </div>
                  </div>
                </div>
              </van-list>
            </div>
          </div>
@@ -302,11 +359,12 @@
</template>
<script>
import { Toast } from 'vant';
import * as api from "@/axios/api";
export default {
  data() {
    return {
      tabsArr: ["持仓", "挂单", "已平仓"],
      tabsArr: ["持仓", "挂单", "已平仓", "新股"],
      tabsCurrentIndex: 0,
      titleName: "沪深京账户",
      indexSettingInfo: {},
@@ -318,7 +376,7 @@
      titleDialog: false,
      total: 0,
      totals: 0,
      totalss:0,
      totalss: 0,
      loading: false,
      finished: false,
      finisheds: false,
@@ -328,8 +386,12 @@
      pagess: 1,
      immediate: false,
      loadings: false,
      loadingss:false,
      tabsOrderList:[]
      loadingss: false,
      tabsOrderList: [],
      xgTotal: 0,
      tabsXgArr: [],
      loadingXg: false,
      finishedXg: false,
    };
  },
  mounted() {
@@ -340,6 +402,14 @@
    this.getFuturesSetting();
    this.getListDetails();
    this.getorderList();
    this.getNewXg();
  },
  created() {
    if (this.$route.query.index) {
      this.tabsCurrentIndex = Number(this.$route.query.index)
    }
  },
  methods: {
    onLoad() {
@@ -372,6 +442,51 @@
          break;
      }
    },
    onLoadXg() {
      this.getNewXg();
    },
    async gdClose(item) {
      let opts = {
        id: item.id
      }
      let data = await api.delGuaDan(opts)
      if (data.status == 1) {
        Toast('撤单成功')
        this.page = 1;
        this.pages = 1;
        this.finished = false;
        this.finisheds = false;
        this.tabsPositionNumArr = [];
        this.tabsPcArr = [];
        switch (this.titleIndex) {
          case 0:
            this.titleName = "沪深京账户";
            this.getListDetail();
            this.getListDetails();
            this.getorderList();
            break;
          case 1:
            this.titleName = "指数账户";
            this.getzhishuListDetail();
            this.getzhishuListDetails();
            this.getorderList();
            break;
          case 2:
            this.titleName = "新股账户";
            this.getQhListDetail();
            this.getQhListDetails();
            this.getorderList();
            break;
          default:
            break;
        }
      } else {
        Toast(data.msg)
      }
    },
    zcsg(item) {
      this.$router.push({ path: '/trading-list', query: { listid: 3 } })
    },
    SetTitleIndex(index) {
      //账户选项卡
      this.titleIndex = index;
@@ -395,7 +510,7 @@
          this.getorderList();
          break;
        case 2:
          this.titleName = "期货账户";
          this.titleName = "新股账户";
          this.getQhListDetail();
          this.getQhListDetails();
          this.getorderList();
@@ -404,17 +519,28 @@
          break;
      }
      this.titleDialog = false;
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
    },
    handleTabsClick(item, index) {
      //持仓已平仓选项卡
      this.tabsCurrentIndex = index;
      if (index == 3) {
        this.getNewXg();
      }
      if (navigator.vibrate) {
          // 支持
          navigator.vibrate([55]);
        }
    },
    handleOpenDialog() {
      this.titleDialog = !this.titleDialog;
    },
    //挂单
    async getorderList(){
      let opts={}
    async getorderList() {
      let opts = {}
      let data = await api.getorderList(opts);
      this.loadingss = false;
      if (data.status === 0) {
@@ -614,6 +740,26 @@
        Toast(data.msg)
      }
    },
    async getNewXg() {
      //获取新股
      this.loadingXg = true;
      let opt = {
      }
      let data = await api.getUserNewGuList(opt)
      this.loadingXg = false;
      if (data.data.length < 15) {
        this.finishedXg = true;
      }
      if (data.status === 0) {
        this.tabsXgArr = data.data
        // data.data.list.forEach(element => {
        //   this.tabsXgArr.push(element)
        // })
        this.xgTotal = data.data.length
      } else {
        Toast(data.msg)
      }
    },
  },
  filters: {
    gettime(time) {
@@ -650,6 +796,31 @@
</script>
<style scoped lang="less">
.pink{
  color: #eb2f96;
    background: #fff0f6;
    border-color: #ffadd2;
}
.red{
  color: #f5222d;
    background: #fff1f0;
    border-color: #ffa39e;
}
.blue{
  color: #1890ff;
    background: #e6f7ff;
    border-color: #91d5ff;
}
.green{
  color: #52c41a;
    background: #f6ffed;
    border-color: #b7eb8f;
}
.purple{
  color: #722ed1;
    background: #f9f0ff;
    border-color: #d3adf7;
}
@boxCenter: {
  display: flex;
  justify-content: center;
@@ -885,7 +1056,8 @@
    display: flex;
    align-items: center;
    font-size: 0.4103rem;
    padding-top: 0.2rem;
    padding: 0.2rem 0.3rem 0;
    justify-content: space-between;
    >div {
      width: 20%;
@@ -1065,13 +1237,13 @@
}
.right_btn {
  width: 1.7949rem;
  height: 0.6667rem;
  width: 1.9949rem;
  height: 0.7667rem;
  position: absolute;
  right: 1%;
  top: 48%;
  background: #f7f7f7;
  color: #3773dd;
  // background: #f7f7f7;
  // color: #3773dd;
  display: flex;
  align-items: center;
  justify-content: center;
@@ -1155,7 +1327,7 @@
.kuan {
  width: auto !important;
  padding-left: 0.5rem;
  // padding-left: 0.5rem;
  letter-spacing: 0.02rem;
}