| | |
| | | <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="$t('美股指数')" name="US"></van-tab> |
| | | <van-tab :title="$t('hksi')" name="HK"></van-tab> |
| | | <van-tab :title="$t('tsi')" name="TW"></van-tab> |
| | | <van-tab :title="$t('ni')" name="IN"></van-tab> |
| | | </van-tabs> |
| | | </div> |
| | | |
| | | <van-row class="list_head"> |
| | | <van-col span="8" class="flex-start head_item"> |
| | | {{ $t("hj313") }}/{{ $t("Worth") }} |
| | |
| | | </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" :style="{ |
| | | color: |
| | | i.profitAndLose > 0 ? 'green' : i.profitAndLose < 0 ? 'red' : '' |
| | | }"> |
| | | {{ 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> |
| | | let times = null; // 计时器 |
| | | 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(); |
| | | this.creatTimer(); |
| | | }, |
| | | active() { |
| | | this.pageNum = 1; |
| | | this.getList(); |
| | | this.creatTimer(); |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.creatTimer(); |
| | | }, |
| | | destroyed() { |
| | | this.stopTimer(); |
| | | }, |
| | | methods: { |
| | | // 获取数据 |
| | | async getList() { |
| | | let data = await api.getchicang({ |
| | | state: 0, |
| | | stockType: 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 } |
| | | }); |
| | | }, |
| | | // |
| | | stopTimer() { |
| | | if (times) { |
| | | clearInterval(times); |
| | | times = null; |
| | | } |
| | | }, |
| | | creatTimer() { |
| | | this.stopTimer() |
| | | times = setInterval(() => { |
| | | this.getList(); |
| | | }, 3000); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | |
| | | @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; |
| | |
| | | color: #999; |
| | | font-size: 0.35em; |
| | | |
| | | & > p:last-child { |
| | | &>p:last-child { |
| | | color: #333; |
| | | margin-top: 0.15em; |
| | | } |
| | |
| | | .transaction_type { |
| | | color: #fff; |
| | | padding-top: 0.08em; |
| | | |
| | | span { |
| | | font-size: 0.3em; |
| | | background: @brown; |
| | |
| | | position: absolute; |
| | | top: 0; |
| | | left: 0; |
| | | background: linear-gradient( |
| | | to right, |
| | | rgba(0, 0, 0, 0), |
| | | rgba(0, 0, 0, 0.8) |
| | | ); |
| | | background: linear-gradient(to right, |
| | | rgba(0, 0, 0, 0), |
| | | rgba(0, 0, 0, 0.8)); |
| | | text-align: end; |
| | | color: @red; |
| | | padding-right: 0.25em; |