| | |
| | | </p> |
| | | </div> |
| | | <div class="mt-22 mb-30" style="position:relative;"> |
| | | <div class="greyBg flex justify-between items-center w-full h-76 rounded-lg textColor" @click="selectBtn"> |
| | | <div class="greyBg 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 ml-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 mr-20" /> |
| | | </div> |
| | | <div class="option-box" v-show="isShow"> |
| | | <div class="font-30" v-for="item in selectData" :key="item.type" @click="selectItem(item)">{{ item.title |
| | | }}</div> |
| | | <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" /> |
| | | <contract-futrue v-if="selectIndex == 2" class="mb-20" :initFutrue="initFutrue" @paraId="onParaId" /> |
| | | <div class="h-76 lh-76 greyBg mb-30 flex pr-20 justify-center rounded-lg textColor" v-if="selectIndex == 1"> |
| | | <input placeholder="" class="greyBg 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">{{ queryType === 'cryptos' ? 'USDT' : 'USD' }}</span> |
| | | </div> |
| | | |
| | | <div class=" flex items-center greyBg h-76 lh-76 rounded-lg" style="background-color:#f5f5f5;" v-if="initFutrue" > |
| | | <div class=" flex items-center greyBg h-76 lh-76 rounded-lg" style="background-color:#f5f5f5;" |
| | | v-if="initFutrue"> |
| | | <!-- <div v-if="selectIndex == 1 && initFutrue.para && initFutrue.para.length > 0" |
| | | 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" /> |
| | |
| | | style="width: 156px;" v-model="form.amount" type="number" @input="onInput" /> --> |
| | | <input v-if="selectIndex == 2 && JSON.stringify(initFutrue.para) != '[]'" |
| | | :placeholder="($t('最少') + initFutrue && initFutrue.para ? $t('最小金额') + initFutrue.para[paraIndex].buy_min : '')" |
| | | class="border-none greyBg text-center textColor" style="width: 226px;background-color:#f5f5f5;" v-model="form.amount" type="number" |
| | | @input="onInput" /> |
| | | class="border-none greyBg text-center textColor" style="width: 226px;background-color:#f5f5f5;" |
| | | v-model="form.amount" type="number" @input="onInput" /> |
| | | <div class="w-80 flex items-center justify-center" style="height:100%;background-color:#f5f5f5;"> |
| | | <template v-if="selectIndex == 1"> |
| | | <img @click="onAdd" src="../../../assets/image/public/add.png" alt="reduce" class="w-30 h-30" /> |
| | |
| | | <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="getVolumnByLever()" @getAmount="getAmount"></amount-slider> |
| | | </template> |
| | |
| | | <div class="text-grey">{{ $t("建仓手续费") }}</div> |
| | | <div class="textColor">{{ userInfo.perpetual_contracts_status === '1' ? initData.fee * |
| | | (form.amount / 1) : initData.fee * (form.amount / 1) * form.lever_rate }} {{ queryType === 'cryptos' ? |
| | | 'USDT' : 'USD' }}</div> |
| | | 'USDT' : 'USD' }}</div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <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')">{{ $t('logIn') }}</div> |
| | | @click="$router.push('/login')"> |
| | | {{ $t('logIn') }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="ml-30"> |
| | |
| | | </div> |
| | | </div> |
| | | <van-popup v-model:show="show" class="rounded-2xl"> |
| | | <popup-delivery style="padding: 10px;" showBtns :detailData="detailData" :key="detailData.order_no" @close="onClose" |
| | | @continueToBuy="continueTobuy" @timeEnd="handleTimeEnd" :price="price" /> |
| | | <popup-delivery style="padding: 10px;" showBtns :detailData="detailData" :key="detailData.order_no" |
| | | @close="onClose" @continueToBuy="continueTobuy" @timeEnd="handleTimeEnd" :price="price" /> |
| | | </van-popup> |
| | | <van-action-sheet v-model:show="isSelectShow" @select="onSelect" :actions="actions" :cancel-text="$t('取消')" |
| | | close-on-click-action @cancel="onCancel"> |
| | |
| | | }, |
| | | continueTobuy(detailData) { |
| | | this.show = false |
| | | setTimeout(() => { |
| | | this.$router.push(`/trendDetails/${detailData.symbol}?direction=${detailData.direction}`) |
| | | }, 300); |
| | | // this.order() |
| | | // setTimeout(() => { |
| | | // this.$router.push(`/trendDetails/${detailData.symbol}?direction=${detailData.direction}`) |
| | | // }, 300); |
| | | }, |
| | | onQuickPrice(price) { // 点击金额变化 |
| | | if (this.type === '2') { |
| | |
| | | }) |
| | | }, |
| | | //数字排序 |
| | | orderListAsc(filed, type = "asc"){ |
| | | orderListAsc(filed, type = "asc") { |
| | | return (a, b) => { |
| | | if (type == "asc") return parseFloat(a[filed]) > parseFloat(b[filed]) ? 1 : -1; |
| | | return parseFloat(a[filed]) > parseFloat(b[filed]) ? -1 : 1; |
| | |
| | | margin-right: 20px; |
| | | } |
| | | } |
| | | .diviLine{ |
| | | |
| | | .diviLine { |
| | | background-color: #f5f5f5; |
| | | } |
| | | .textColor2, .textColor{ |
| | | |
| | | .textColor2, |
| | | .textColor { |
| | | color: #fff; |
| | | } |
| | | |
| | | .deep-div { |
| | | min-height: 370px; |
| | | } |