From fcb00a66b4053550b473a29d7299c7a4737eea75 Mon Sep 17 00:00:00 2001
From: lxf <1371462558@qq.com>
Date: Wed, 16 Jul 2025 14:41:04 +0800
Subject: [PATCH] 翻译
---
src/components/perpetual-open/index.vue | 380 ++++++++++++++---------------------------------------
1 files changed, 103 insertions(+), 277 deletions(-)
diff --git a/src/components/perpetual-open/index.vue b/src/components/perpetual-open/index.vue
index 17c6575..f46d0b0 100644
--- a/src/components/perpetual-open/index.vue
+++ b/src/components/perpetual-open/index.vue
@@ -3,41 +3,19 @@
<div class="perpetual-open">
<div class="flex header-open">
<div class="flex flex-1 pt-34">
- <div
- class="w-180 h-60 lh-60 text-center rounded inputBackground textColor"
- >
+ <div class="w-180 h-60 lh-60 text-center rounded inputBackground textColor">
{{ $t("全仓") }}
</div>
<!-- <div class="w-80 h-60 lh-60 ml-29 rounded tabBackground textColor" style="text-align:center">1x</div> -->
- <div
- class="w-140 h-60 lh-60 ml-29 rounded tabBackground textColor"
- v-if="selectIndex / 1 === 1"
- >
- <div
- @click="showOptions = !showOptions"
- style="height: 100%; box-sizing: border-box"
- class="relative word-30 pl-28 pr-10 w-140 h-60 select-wrap flex justify-between items-center"
- >
+ <div class="w-140 h-60 lh-60 ml-29 rounded tabBackground textColor" v-if="selectIndex / 1 === 1">
+ <div @click="showOptions = !showOptions" style="height: 100%; box-sizing: border-box"
+ class="relative word-30 pl-28 pr-10 w-140 h-60 select-wrap flex justify-between items-center">
{{ form.lever_rate }}x
- <img
- src="../../assets/image/public/grey-select.png"
- alt="select-icon"
- class="w-22 h-11"
- />
- <div
- v-if="showOptions"
- class="options w-140 absolute top-97 left-0 z-10"
- >
- <div
- class="w-full"
- @click.stop="handleChoose(item)"
- :class="{
- 'option-active': form.lever_rate === item.lever_rate,
- }"
- :value="item.lever_rate"
- v-for="item in initData.lever"
- :key="item.id"
- >
+ <img src="../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11" />
+ <div v-if="showOptions" class="options w-140 absolute top-97 left-0 z-10">
+ <div class="w-full" @click.stop="handleChoose(item)" :class="{
+ 'option-active': form.lever_rate === item.lever_rate,
+ }" :value="item.lever_rate" v-for="item in initData.lever" :key="item.id">
{{ item.lever_rate }}x
</div>
</div>
@@ -45,12 +23,7 @@
</div>
</div>
<div>
- <img
- src="../../assets/image/public/k-line.png"
- alt="line-img"
- class="w-38 h-35"
- @click="jump"
- />
+ <img src="../../assets/image/public/k-line.png" alt="line-img" class="w-38 h-35" @click="jump" />
</div>
</div>
<div class="pt-30 pb-20">
@@ -58,67 +31,34 @@
<div class="w-440 flex flex-col">
<template v-if="selectIndex == 1">
<div class="flex items-center h-66 rounded-lg text-grey">
- <p
- class="font-28 flex-1 flex items-center justify-center h-66"
- :class="currentType == 'long' ? 'long' : ''"
- @click="changeTab('long')"
- >
+ <p class="font-28 flex-1 flex items-center justify-center h-66"
+ :class="currentType == 'long' ? 'long' : ''" @click="changeTab('long')">
{{ $t("开多") }}
</p>
- <p
- class="font-28 flex-1 flex items-center justify-center h-66"
- :class="currentType == 'short' ? 'short' : ''"
- @click="changeTab('short')"
- >
+ <p class="font-28 flex-1 flex items-center justify-center h-66"
+ :class="currentType == 'short' ? 'short' : ''" @click="changeTab('short')">
{{ $t("开空") }}
</p>
</div>
<div class="mt-30 mb-30" style="position: relative">
- <div
- class="inputBackground flex justify-between items-center w-full h-76 rounded-lg textColor"
- @click="selectBtn"
- >
- <img
- src="../../assets/image/public/warn.png"
- alt="warn-icon"
- class="w-25 h-25 pl-20"
- />
+ <div class="inputBackground flex justify-between items-center w-full h-76 rounded-lg textColor"
+ @click="selectBtn">
+ <img src="../../assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 pl-20" />
<div class="text-center" style="width: 80%">{{ title }}</div>
- <img
- src="../../assets/image/public/grey-select.png"
- alt="select-icon"
- class="w-22 h-11 pr-20"
- />
+ <img src="../../assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 pr-20" />
</div>
<div class="option-box" v-show="isShow">
- <div
- class="font-30"
- v-for="item in selectData"
- :key="item.type"
- @click="selectItem(item)"
- >
+ <div class="font-30" v-for="item in selectData" :key="item.type" @click="selectItem(item)">
{{ item.title }}
</div>
</div>
</div>
</template>
- <contract-futrue
- v-if="selectIndex == 2"
- class="mb-20"
- :initFutrue="initFutrue"
- @paraId="onParaId"
- />
- <div
- class="h-76 lh-76 inputBackground mb-30 flex pr-20 justify-center rounded-lg textColor"
- v-if="selectIndex == 1"
- >
- <input
- placeholder=""
- class="inputBackground w-full pl-20 h-76 border-none text-left rounded-lg"
- :disabled="type / 1 === 1"
- @focus="focus = true"
- v-model="form.price"
- />
+ <contract-futrue v-if="selectIndex == 2" class="mb-20" :initFutrue="initFutrue" @paraId="onParaId" />
+ <div class="h-76 lh-76 inputBackground mb-30 flex pr-20 justify-center rounded-lg textColor"
+ v-if="selectIndex == 1">
+ <input placeholder="" class="inputBackground w-full pl-20 h-76 border-none text-left rounded-lg"
+ :disabled="type / 1 === 1" @focus="focus = true" v-model="form.price" />
<span class="ml-20">USDT</span>
</div>
<!-- <div
@@ -143,46 +83,21 @@
/>
<span class="font-22 font-400 textColor">{{ $t("止损") }}</span>
</div> -->
- <div
- class="w-440 flex items-center inputBackground h-76 lh-76 rounded-lg"
- >
- <div
- v-if="selectIndex == 1"
- class="w-80 flex items-center justify-center"
- style="height: 100%"
- @click="onReduce"
- >
- <img
- src="../../assets/image/public/reduce.png"
- alt="add"
- class="w-30 h-6"
- />
+ <div class="w-440 flex items-center inputBackground h-76 lh-76 rounded-lg">
+ <div v-if="selectIndex == 1" class="w-80 flex items-center justify-center" style="height: 100%"
+ @click="onReduce">
+ <img src="../../assets/image/public/reduce.png" alt="add" class="w-30 h-6" />
</div>
- <input
- :placeholder="
- selectIndex == 1
- ? $t('手数')
- : $t('最少') + initFutrue && initFutrue.para
- ? $t('最小金额') + initFutrue.para[paraIndex].buy_min
- : ''
- "
- class="border-none inputBackground text-center textColor"
- style="width: 156px"
- v-model="form.amount"
- type="number"
- @input="onInput"
- />
- <div
- class="w-80 flex items-center justify-center"
- style="height: 100%"
- >
+ <input :placeholder="selectIndex == 1
+ ? $t('手数')
+ : $t('最少') + initFutrue && initFutrue.para
+ ? $t('最小金额') + initFutrue.para[paraIndex].buy_min
+ : ''
+ " class="border-none inputBackground text-center textColor" style="width: 156px" v-model="form.amount"
+ type="number" @input="onInput" />
+ <div class="w-80 flex items-center justify-center" style="height: 100%">
<template v-if="selectIndex == 1">
- <img
- @click="onAdd"
- src="../../assets/image/public/add.png"
- alt="reduce"
- class="w-30 h-30"
- />
+ <img @click="onAdd" src="../../assets/image/public/add.png" alt="reduce" class="w-30 h-30" />
</template>
<template v-else>
<span class="textColor">USDT</span>
@@ -211,20 +126,16 @@
<template v-slot:step="{ active }">
<div :class="['custom-step', { active }]"></div>
</template>
- </vue-slider>
- <div style="color: #868D9A" class="mt-36 font-24 w-full flex justify-between items-center">
- <span class="flex-1 text-left">0%</span>
- <span class="flex-1 text-left">25%</span>
- <span class="flex-1 text-center">50%</span>
- <span class="flex-1 text-right">75%</span>
- <span class="flex-1 text-right">100%</span>
- </div> -->
+</vue-slider>
+<div style="color: #868D9A" class="mt-36 font-24 w-full flex justify-between items-center">
+ <span class="flex-1 text-left">0%</span>
+ <span class="flex-1 text-left">25%</span>
+ <span class="flex-1 text-center">50%</span>
+ <span class="flex-1 text-right">75%</span>
+ <span class="flex-1 text-right">100%</span>
+</div> -->
<!-- 张数 滑块 -->
- <amount-slider
- ref="sliderRef"
- :maxAmount="maxItems"
- @getAmount="getAmount"
- ></amount-slider>
+ <amount-slider ref="sliderRef" :maxAmount="maxItems" @getAmount="getAmount"></amount-slider>
</template>
<template v-if="selectIndex == 1 && userInfo.token">
<div class="flex justify-between mt-30">
@@ -251,17 +162,11 @@
<div class="textColor">{{ fee.toFixed(4) }} USDT</div>
</div>
</template>
- <div
- class="flex font-24 text-grey justify-between mt-32"
- v-if="selectIndex == 2"
- >
+ <div class="flex font-24 text-grey justify-between mt-32" v-if="selectIndex == 2">
<div>{{ $t("可用USDT") }}</div>
<div class="textColor">{{ initFutrue.amount | nan }} USDT</div>
</div>
- <div
- class="flex font-24 text-grey justify-between mt-20"
- v-if="selectIndex == 2"
- >
+ <div class="flex font-24 text-grey justify-between mt-20" v-if="selectIndex == 2">
<div>{{ $t("手续费") }}</div>
<div class="textColor">
{{
@@ -277,78 +182,48 @@
</div>
<template v-if="userInfo.token">
<template v-if="selectIndex == 1">
- <div
- class="w-full h-80 lh-80 bg-green flex text-white rounded-md mt-50"
- v-if="currentType == 'long'"
- @click="order('long')"
- >
- <div
- class="font-34 relative text-center"
- style="flex-grow: 1"
- v-if="selectIndex == 1"
- >
+ <div class="w-full h-80 lh-80 bg-green flex text-white rounded-md mt-50" v-if="currentType == 'long'"
+ @click="order('long')">
+ <div class="font-34 relative text-center" style="flex-grow: 1" v-if="selectIndex == 1">
{{ $t("开多") }}
- <span class="right-word font-22 text-center">{{
+ <!-- <span class="right-word font-22 text-center">{{
$t("看涨")
- }}</span>
+ }}</span> -->
</div>
- <div
- class="font-34 relative text-center"
- style="flex-grow: 1"
- v-else
- >
+ <div class="font-34 relative text-center" style="flex-grow: 1" v-else>
{{ $t("做多买入") }}
</div>
</div>
- <div
- class="w-full h-80 lh-80 bg-red flex text-white rounded-md mt-50"
- v-if="currentType == 'short'"
- @click="order('short')"
- >
- <div
- class="relative font-34 text-center"
- style="flex-grow: 1"
- v-if="selectIndex == 1"
- >
+ <div class="w-full h-80 lh-80 bg-red flex text-white rounded-md mt-50" v-if="currentType == 'short'"
+ @click="order('short')">
+ <div class="relative font-34 text-center" style="flex-grow: 1" v-if="selectIndex == 1">
{{ $t("开空") }}
- <span class="right-word font-22 text-center">{{
+ <!-- <span class="right-word font-22 text-center">{{
$t("看跌")
- }}</span>
+ }}</span> -->
</div>
- <div
- class="relative font-34 text-center"
- style="flex-grow: 1"
- v-else
- >
+ <div class="relative font-34 text-center" style="flex-grow: 1" v-else>
{{ $t("做空买入") }}
</div>
</div>
</template>
<template v-if="selectIndex == 2">
- <div
- class="w-full h-80 lh-80 bg-green flex text-white rounded-md mt-30"
- @click="order('open')"
- v-if="userInfo.token"
- >
+ <div class="w-full h-80 lh-80 bg-green flex text-white rounded-md mt-30" @click="order('open')"
+ v-if="userInfo.token">
<div class="font-34 relative text-center" style="flex-grow: 1">
{{ $t("开多") }}
- <span class="right-word font-22 text-center">{{
+ <!-- <span class="right-word font-22 text-center">{{
$t("看涨")
- }}</span>
+ }}</span> -->
</div>
</div>
- <div
- class="w-full h-80 lh-80 bg-red flex text-white rounded-md mt-20 mb-10"
- style="position: relative"
- :class="{ 'mt-22': selectIndex == 2 }"
- @click="order('close')"
- v-if="userInfo.token"
- >
+ <div class="w-full h-80 lh-80 bg-red flex text-white rounded-md mt-20 mb-10" style="position: relative"
+ :class="{ 'mt-22': selectIndex == 2 }" @click="order('close')" v-if="userInfo.token">
<div class="relative font-34 text-center" style="flex-grow: 1">
{{ $t("开空") }}
- <span class="right-word font-22 text-center">{{
+ <!-- <span class="right-word font-22 text-center">{{
$t("看跌")
- }}</span>
+ }}</span> -->
</div>
</div>
</template>
@@ -358,10 +233,8 @@
<p>{{ $t("套期保值,风险对冲") }}</p>
<p class="pt-8">{{ $t("登陆后继续") }}</p>
</div>
- <div
- class="h-80 lh-80 btnBackground flex text-white rounded-md justify-center mt-50"
- @click="$router.push('/login')"
- >
+ <div class="h-80 lh-80 btnBackground flex text-white rounded-md justify-center mt-50"
+ @click="$router.push('/login')">
{{ $t("登录后进行交易") }}
</div>
</div>
@@ -377,25 +250,18 @@
<div class="mt-5">({{ symbolname || "--" }})</div>
</div>
</div>
- <div
- v-if="showType == 0 || showType == 1"
- class="w-290 flex justify-between pt-12 font-26"
- v-for="(item, index) in greenData"
- :key="index"
- @click="onQuickPrice(item.price)"
- :style="{
+ <div v-if="showType == 0 || showType == 1" class="w-290 flex justify-between pt-12 font-26"
+ v-for="(item, index) in greenData" :key="index" @click="onQuickPrice(item.price)" :style="{
background:
- `linear-gradient(to right,${
- theme == 'dark' ? '#121212' : '#ffffff'
+ `linear-gradient(to right,${theme == 'dark' ? '#121212' : '#ffffff'
} 0%` +
(1 - item.amount / greenData[greenData.length - 1].amount) *
- 100 +
+ 100 +
'%,rgba(94,186,137,.1) ' +
(1 - item.amount / greenData[greenData.length - 1].amount) *
- 100 +
+ 100 +
'%,rgba(94,186,137,.1) 100%)',
- }"
- >
+ }">
<div class="text-green">{{ item.price }}</div>
<div class="text-right textColor" v-if="symbol == 'shib'">
{{ fixDate(item.amount, $i18n) || "--" }}
@@ -404,37 +270,26 @@
{{ item.amount || "--" }}
</div>
</div>
- <div
- v-if="showType == 0 || showType == 1 || showType == 2"
- class="w-290 text-red pt-12 font-34 font-700 text-center"
- >
+ <div v-if="showType == 0 || showType == 1 || showType == 2"
+ class="w-290 text-red pt-12 font-34 font-700 text-center">
{{ approximately || "--" }}
</div>
- <div
- v-if="showType == 0 || showType == 1 || showType == 2"
- class="approximately-text pb-12 font-20 text-center"
- >
+ <div v-if="showType == 0 || showType == 1 || showType == 2"
+ class="approximately-text pb-12 font-20 text-center">
≈ {{ price || "--" }}
</div>
- <div
- v-if="showType == 0 || showType == 2"
- class="w-290 flex justify-between pt-12 font-26"
- v-for="(item, index) in redData"
- :key="item + index"
- @click="onQuickPrice(item.price)"
- :style="{
+ <div v-if="showType == 0 || showType == 2" class="w-290 flex justify-between pt-12 font-26"
+ v-for="(item, index) in redData" :key="item + index" @click="onQuickPrice(item.price)" :style="{
background:
- `linear-gradient(to right,${
- theme == 'dark' ? '#121212' : '#ffffff'
+ `linear-gradient(to right,${theme == 'dark' ? '#121212' : '#ffffff'
} 0%` +
(1 - item.amount / greenData[greenData.length - 1].amount) *
- 100 +
+ 100 +
'%,rgba(246,70,93,.1) ' +
(1 - item.amount / greenData[greenData.length - 1].amount) *
- 100 +
+ 100 +
'%,rgba(246,70,93,.1) 100%)',
- }"
- >
+ }">
<div class="text-red">{{ item.price }}</div>
<div class="text-right textColor" v-if="symbol == 'shib'">
{{ fixDate(item.amount, $i18n) || "--" }}
@@ -445,62 +300,32 @@
</div>
<div class="flex k-select-box">
<div class="mt-30 mb-30 select-box" style="position: relative">
- <div
- class="flex justify-between items-center w-full h-70"
- @click="selectArryBtn"
- >
+ <div class="flex justify-between items-center w-full h-70" @click="selectArryBtn">
<!-- <img src="@/assets/image/public/warn.png" alt="warn-icon" class="w-25 h-25 pl-20"/> -->
<div class="pl-16 textColor" style="width: 80%">
{{ dataArrTitle }}
</div>
- <img
- src="@/assets/image/public/grey-select.png"
- alt="select-icon"
- class="w-22 h-11 pr-20"
- />
+ <img src="@/assets/image/public/grey-select.png" alt="select-icon" class="w-22 h-11 pr-20" />
</div>
<div class="option-box" v-show="arryIsShow">
- <div
- class="font-30"
- v-for="(item, index) in selectDataArry"
- :key="index"
- @click="selectItemArry(item)"
- >
+ <div class="font-30" v-for="(item, index) in selectDataArry" :key="index" @click="selectItemArry(item)">
{{ item.name }}
</div>
</div>
</div>
<div @click="isSelectShow = true">
- <img
- src="@/assets/image/selectIcon.png"
- alt="warn-icon"
- class="w-36 h-30"
- />
+ <img src="@/assets/image/selectIcon.png" alt="warn-icon" class="w-36 h-30" />
</div>
</div>
</div>
</div>
</div>
<van-popup v-model="show" class="rounded-2xl">
- <popup-delivery
- showBtns
- :detailData="detailData"
- :key="detailData.order_no"
- @close="onClose"
- @continueToBuy="continueTobuy"
- @timeEnd="handleTimeEnd"
- :price="price"
- :symbol="symbol"
- />
+ <popup-delivery showBtns :detailData="detailData" :key="detailData.order_no" @close="onClose"
+ @continueToBuy="continueTobuy" @timeEnd="handleTimeEnd" :price="price" :symbol="symbol" />
</van-popup>
- <van-action-sheet
- v-model="isSelectShow"
- @select="onSelect"
- :actions="actions"
- :cancel-text="$t('取消')"
- close-on-click-action
- @cancel="onCancel"
- >
+ <van-action-sheet v-model="isSelectShow" @select="onSelect" :actions="actions" :cancel-text="$t('取消')"
+ close-on-click-action @cancel="onCancel">
</van-action-sheet>
</div>
</template>
@@ -1198,7 +1023,8 @@
this.$store.commit("user/SET_USERINFO", {
balance: data.money,
});
- location.reload();
+ this.initFutrue.amount = data.money;
+ // location.reload();
});
this.$emit("ordered", emitFunc);
if (this.selectIndex / 1 === 2) {
@@ -1340,16 +1166,16 @@
overflow: hidden;
}
-.tab > * {
+.tab>* {
height: 100%;
}
-.tab > img {
+.tab>img {
margin-left: -2px;
margin-right: -2px;
}
-.tab > a {
+.tab>a {
flex-grow: 1;
display: flex;
justify-content: center;
@@ -1388,11 +1214,11 @@
}
}
-.option-box > div {
+.option-box>div {
padding: 30px 0;
}
-.option-box > div:hover {
+.option-box>div:hover {
// background-color: #f5f5f5;
}
@@ -1408,8 +1234,7 @@
-webkit-appearance: none;
/* Safari and Chrome */
padding: 0 20px 0 20px;
- background: url("../../assets/image/public/grey-select.png") no-repeat scroll
- right center transparent;
+ background: url("../../assets/image/public/grey-select.png") no-repeat scroll right center transparent;
/* 自己的图*/
background-size: 20px 11px;
}
@@ -1522,6 +1347,7 @@
}
.perpetual-open {
+
::v-deep .van-action-sheet__item,
::v-deep .van-action-sheet__cancel {
@include themify() {
--
Gitblit v1.9.3