| | |
| | | <template #reference> |
| | | <van-button type="primary">{{ $t("一键平仓") }}</van-button> |
| | | </template> |
| | | </van-popover> --> |
| | | </van-popover> --> |
| | | </tab-head> |
| | | |
| | | <div class="order_tabs"> |
| | |
| | | <van-tab :title="$t('hj160')" name=""></van-tab> |
| | | <van-tab :title="$t('美股指数')" name="US"></van-tab> |
| | | <van-tab :title="$t('日股指数')" name="JP"></van-tab> |
| | | <van-tab :title="$t('hj109')" name="GaDan"></van-tab> |
| | | <!-- <van-tab :title="$t('hksi')" name="HK"></van-tab> |
| | | <van-tab :title="$t('tsi')" name="TW"></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-col span="8" class="flex-start head_item"> |
| | | {{ $t("sl") }}/{{ $t("Profit") }} |
| | | </van-col> |
| | | <van-col span="8" class="flex-end head_item"> |
| | | {{ $t("Cost") }}/{{ $t("Current") }} |
| | | </van-col> |
| | | </van-row> |
| | | <!-- 挂单列表 --> |
| | | <div v-if="active == 'GaDan'"> |
| | | |
| | | <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">{{ i.stockGid }}</span> |
| | | <span class="i_hint">{{ i.stockSpell }}</span> |
| | | </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">{{ 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>{{ i.buyOrderPrice }}</span> |
| | | </div> |
| | | <div class="flex-end"> |
| | | <span>{{ i.now_price }}</span> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="24" class="flex-start transaction_type"> |
| | | <span>{{ types[i.positionType] }}</span> |
| | | </van-col> |
| | | <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4"> |
| | | <div class="card_label"> |
| | | <p>{{ $t("建仓成本") }}</p> |
| | | <p>{{ i.orderTotalPrice }}</p> |
| | | </div> |
| | | <div class="card_label"> |
| | | <p>{{ $t("pcje") }}</p> |
| | | <p>{{ i.sellOrderTotalPrice }}</p> |
| | | </div> |
| | | <div class="card_label"> |
| | | <p>{{ $t("预期收益") }}</p> |
| | | <p>{{ i.profitAndLose }}</p> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | <van-row class="list_head"> |
| | | <van-col span="14" class="flex-start head_item"> |
| | | {{ $t("hj313") }}/{{ $t("Worth") }} |
| | | </van-col> |
| | | <van-col span="3" class="flex-center head_item"> |
| | | {{ $t("sl") }} |
| | | </van-col> |
| | | <van-col span="3" class="flex-center head_item"> |
| | | {{ $t("Cost") }} |
| | | </van-col> |
| | | </van-row> |
| | | |
| | | <van-row class="list_item" v-for="i in list" :key="i.id"> |
| | | <van-col span="14" class="item_n"> |
| | | <div class="flex-start"> |
| | | <span class="i_icon">{{ i.stockGid }}</span> |
| | | <span class="i_hint">{{ i.stockName }}</span> |
| | | </div> |
| | | <div class="i_name"> |
| | | {{ (i.buyNum * i.nowPrice).toFixed(2) }} |
| | | </div> |
| | | </van-col> |
| | | <van-col span="3" class="item_n"> |
| | | <p class="flex-center">{{ i.buyNum }}</p> |
| | | </van-col> |
| | | <van-col span="3" class="item_n"> |
| | | <div class="flex-center" style="margin-bottom: .15em;"> |
| | | <span>{{ i.targetPrice }}</span> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="4" class="item_n"> |
| | | <div class="flex-center delete-btn-wrapper"> |
| | | <van-icon name="delete" size="0.5rem" color="#ee0a24" @click.stop="handleDelete(i)" /> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | </div> |
| | | <!-- 正常持仓列表 --> |
| | | <div v-else> |
| | | <van-row class="list_head"> |
| | | <van-col span="8" class="flex-start head_item"> |
| | | {{ $t("hj313") }}/{{ $t("Worth") }} |
| | | </van-col> |
| | | <van-col span="8" class="flex-start head_item"> |
| | | {{ $t("sl") }}/{{ $t("Profit") }} |
| | | </van-col> |
| | | <van-col span="8" class="flex-end head_item"> |
| | | {{ $t("Cost") }}/{{ $t("Current") }} |
| | | </van-col> |
| | | </van-row> |
| | | |
| | | <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">{{ i.stockGid }}</span> |
| | | <span class="i_hint">{{ i.stockSpell }}</span> |
| | | </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">{{ 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>{{ i.buyOrderPrice }}</span> |
| | | </div> |
| | | <div class="flex-end"> |
| | | <span>{{ i.now_price }}</span> |
| | | </div> |
| | | </van-col> |
| | | <van-col span="24" class="flex-start transaction_type"> |
| | | <span>{{ types[i.positionType] }}</span> |
| | | </van-col> |
| | | <van-col span="24" class="flex-between-start item_card" v-if="i.positionType == 4"> |
| | | <div class="card_label"> |
| | | <p>{{ $t("建仓成本") }}</p> |
| | | <p>{{ i.orderTotalPrice }}</p> |
| | | </div> |
| | | <div class="card_label"> |
| | | <p>{{ $t("pcje") }}</p> |
| | | <p>{{ i.sellOrderTotalPrice }}</p> |
| | | </div> |
| | | <div class="card_label"> |
| | | <p>{{ $t("预期收益") }}</p> |
| | | <p>{{ i.profitAndLose }}</p> |
| | | </div> |
| | | </van-col> |
| | | </van-row> |
| | | </div> |
| | | |
| | | <!-- 无数据时显示 --> |
| | | <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> |
| | | <n-pagination :pageNo.sync="pageNum" :pageSize="pageSize" :total="total" v-if="active != 'GaDan'"></n-pagination> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | import tabHead from "@/components/tabHead.vue"; |
| | | import * as api from "@/axios/api"; |
| | | import nPagination from "@/components/nPagination.vue"; |
| | | import { Notify } from "vant"; |
| | | import { Notify, Dialog } from "vant"; |
| | | |
| | | export default { |
| | | components: { |
| | |
| | | this.getList(); |
| | | this.creatTimer(); |
| | | }, |
| | | active() { |
| | | active(val) { |
| | | this.pageNum = 1; |
| | | this.getList(); |
| | | this.creatTimer(); |
| | | this.list = [] |
| | | if (val == 'GaDan') { |
| | | this.stopTimer() |
| | | this.getList2(); |
| | | } |
| | | else { |
| | | this.getList(); |
| | | this.creatTimer(); |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.stopTimer(); |
| | | }, |
| | | methods: { |
| | | // 获取数据 |
| | | // 获取持仓数据 |
| | | async getList() { |
| | | let data = await api.getchicang({ |
| | | state: 0, |
| | |
| | | if (data.status === 0) { |
| | | this.list = data.data.list; |
| | | this.total = data.data.total; |
| | | } |
| | | }, |
| | | // 获取挂单数据 |
| | | async getList2() { |
| | | let data = await api.getGdOrderList(); |
| | | |
| | | if (data.status === 0) { |
| | | this.list = data.data; |
| | | } |
| | | }, |
| | | // 跳转详情 |
| | |
| | | } else { |
| | | Notify({ type: "danger", message: res.msg }); |
| | | } |
| | | }, |
| | | // 删除挂单 |
| | | handleDelete(item) { |
| | | Dialog.confirm({ |
| | | title: this.$t("提示"), |
| | | message: this.$t("确认删除") + "?", |
| | | confirmButtonText: this.$t("qr"), |
| | | cancelButtonText: this.$t("qx") |
| | | }).then(async () => { |
| | | // 用户确认后执行删除 |
| | | try { |
| | | const data = await api.delGuaDan({ id: item.id }); |
| | | if (data.status === 0) { |
| | | Notify({ type: "success", message: data.msg || this.$t("hj137") }); |
| | | // 刷新挂单列表 |
| | | this.getList2(); |
| | | } else { |
| | | Notify({ type: "danger", message: data.msg || this.$t("获取数据失败") }); |
| | | } |
| | | } catch (error) { |
| | | Notify({ type: "danger", message: this.$t("获取数据失败") }); |
| | | } |
| | | }).catch(() => { |
| | | // 用户取消,不做任何操作 |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | |
| | | } |
| | | } |
| | | |
| | | .delete-btn-wrapper { |
| | | width: 100%; |
| | | height: 100%; |
| | | cursor: pointer; |
| | | |
| | | &:hover { |
| | | opacity: 0.8; |
| | | } |
| | | } |
| | | |
| | | .edit { |
| | | width: 100%; |
| | | height: 100%; |