@ -0,0 +1,753 @@ |
|||
<template> |
|||
<view class="entrustOrderList"> |
|||
<navigation>{{ i18n.contractOrder }}</navigation> |
|||
<!-- 四个tab --> |
|||
<view class="tab"> |
|||
|
|||
<view class="item" :class="{ select: type === 1 }" @click="onChangeType(1)">{{ i18n.Position }} |
|||
</view> |
|||
<view class="item" :class="{ select: type === 2 }" @click="onChangeType(2)">{{ i18n.Closed }} |
|||
</view> |
|||
<view class="item" :class="{ select: type === 0 }" @click="onChangeType(0)">{{ i18n.CurrentEntrust }} |
|||
</view> |
|||
<view class="item" :class="{ select: type === 3 }" @click="onChangeType(3)">{{ i18n.Revoked }} |
|||
</view> |
|||
</view> |
|||
<!-- 卡片列表 --> |
|||
<view class="content" v-if="list.length"> |
|||
<view class="card" v-for="(item, index) in list" :key="index"> |
|||
<view class="header"> |
|||
<text :class="item.direction">{{item.direction}}</text> |
|||
<text class="time">{{item.timestr}}</text> |
|||
<text class="closeTimeTitle" v-show="type === 2">{{ i18n.CloseTime }}</text> |
|||
<text class="closeTime" v-show="type === 2">{{item.timestr2}}</text> |
|||
<view class="closeBtn" v-show="type === 0" @click="closeItem(item,index)">{{ |
|||
i18n.close |
|||
}}</view> |
|||
|
|||
</view> |
|||
|
|||
<view class="infoBody"> |
|||
<view class="item"> |
|||
<!-- 公共的 --> |
|||
<view class="left"> |
|||
<view class="title">{{ item.pair }}</view> |
|||
<view class="value">{{item.openedPrice}}</view> |
|||
<view class="title">{{ i18n.Bond }}</view> |
|||
<view class="value">{{item.bondAmount}}</view> |
|||
<view class="title" v-show="type == 1||type == 2">{{ i18n.StyPrice }}</view> |
|||
<view class="value" v-show="type ==1||type == 2">{{item.winStopPrice}}</view> |
|||
<view class="closeBtn" v-show="type === 1" @click="Margincall(item)"> |
|||
{{ i18n.Margincall }} |
|||
</view> |
|||
</view> |
|||
<!-- 公共的 --> |
|||
<view class="center"> |
|||
<view class="title">{{ i18n.AmountLeverage }}</view> |
|||
<view class="value">{{item.hand}} * {{item.leverage}}</view> |
|||
<view class="title">{{ i18n.Fee }}</view> |
|||
<view class="value">{{item.fee}}</view> |
|||
<view class="title" v-show="type == 1||type == 2">{{ i18n.StsPrice }}</view> |
|||
<view class="value" v-show="type == 1||type == 2">{{item.lossStopPrice}}</view> |
|||
|
|||
<!-- <view class="title" v-show="type === 1">{{ i18n.do }}</view> --> |
|||
<view class="closeBtn" v-show="type === 1" @click="getStopLimit(item)"> |
|||
{{ i18n.StopLimit }} |
|||
</view> |
|||
|
|||
</view> |
|||
<!-- Current Entrust 和 Position--> |
|||
<view class="right" v-show="type === 0 || type === 1"> |
|||
<view class="title">{{ i18n.CurrentPrice }}</view> |
|||
<view class="value" style="color:#F4506A;">{{latest[item.pair]}}</view> |
|||
<!-- <view class="title" v-show="type === 0">{{ i18n.status }}</view> |
|||
<view class="value" v-show="type === 0"> |
|||
{{item.status=='undone'?i18n.undone:item.status=='opened'?i18n.opened:item.status=='revoked'?i18n.revoked:i18n.closed}} |
|||
</view> --> |
|||
<view class="title" v-show="type === 1">{{ i18n.ROE }}</view> |
|||
<view class="value" v-show="type === 1" :style=" |
|||
getValue(item.direction=='buy' |
|||
?(latest[item.pair]-item.openedPrice)*item.hand/item.bondAmount:(item.openedPrice-latest[item.pair])*item.hand/item.bondAmount)>=0?'color:#00E8A2;':'color:#F4506A'"> |
|||
<!-- {{getValue(item.profitAmount/item.bondAmount)}}% --> |
|||
{{getValue(item.direction=='buy'?(latest[item.pair]-item.openedPrice)*item.hand/item.bondAmount:(item.openedPrice-latest[item.pair])*item.hand/item.bondAmount)}}% |
|||
</view> |
|||
|
|||
<view class="title" v-show="type === 1||type === 2">{{ i18n.ExpectProfit }}</view> |
|||
<view class="value" v-show="type === 1" |
|||
:style="parseFloat(getItem(item.direction=='buy'?(latest[item.pair]-item.openedPrice)*item.hand:(item.openedPrice-latest[item.pair])*item.hand))>=0?'color:#00E8A2':'color:#F4506A'"> |
|||
{{getItem(item.direction=='buy'?(latest[item.pair]-item.openedPrice)*item.hand:(item.openedPrice-latest[item.pair])*item.hand)}} |
|||
</view> |
|||
<view class="value" style="color:#00E8A2;" v-show="type === 2">0</view> |
|||
|
|||
<!-- <view class="title" v-show="type === 1">{{ i18n.do }}</view> --> |
|||
<view class="closeBtn" v-show="type === 1" @click="closeItem(item,index)">{{ |
|||
i18n.close |
|||
}}</view> |
|||
|
|||
</view> |
|||
<!-- Closed --> |
|||
<view class="right" v-show="type === 2"> |
|||
<view class="title">{{ i18n.ClosePrice }}</view> |
|||
<view class="value" style="color:#00E8A2;">{{item.closedPrice}}</view> |
|||
<view class="title">{{ i18n.ROE }}</view> |
|||
<view class="value"> |
|||
<!-- {{item.status=='undone'?i18n.undone:item.status=='opened'?i18n.opened:item.status=='revoked'?i18n.revoked:i18n.closed}} --> |
|||
<view class="value" :style="(item.profitAmount/item.bondAmount)*100>=0?'color:#00E8A2;':'color:#F4506A'"> |
|||
{{getValue(item.profitAmount/item.bondAmount)}}% |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="title">{{ i18n.PL }}</view> |
|||
<!-- <view class="value" :style="item.profitAmount-item.fee>=0?'color:#00E8A2;':'color:#F4506A'"> |
|||
{{item.profitAmount-item.fee}}</view> --> |
|||
<view class="value" :style="item.profitAmount>=0?'color:#00E8A2;':'color:#F4506A'"> |
|||
{{getPrice(item.profitAmount)}} |
|||
</view> |
|||
</view> |
|||
<!-- Revoked --> |
|||
<view class="right" v-show="type === 3"> |
|||
<!-- <view class="title">{{ i18n.status }}</view> |
|||
<view class="value" style="color:#F4506A;"> |
|||
{{item.status=='undone'?i18n.undone:item.status=='opened'?i18n.opened:item.status=='revoked'?i18n.revoked:i18n.closed}} |
|||
</view> --> |
|||
<view class="title">{{ i18n.PL }}</view> |
|||
<view class="value" style="color:#00E8A2;"> |
|||
0 |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<!-- close确认框 --> |
|||
<u-modal :show="closeModalShow" :confirmText="i18n.Confirm" :cancelText="i18n.Cancel" :showCancelButton="true" |
|||
:title="i18n.WarmTips" :content='i18n.WarmTipsText' @confirm="closeConfirm" @cancel="closeModalShow = false" |
|||
confirmColor="#00E8A2" cancelColor="#96959E"> |
|||
</u-modal> |
|||
|
|||
<!-- stop确认框 --> |
|||
<u-modal :show="stopModalShow" :confirmText="i18n.Confirm" :cancelText="i18n.Cancel" :showCancelButton="true" |
|||
:title="i18n.StopLimit" :content='i18n.WarmTipsText' @confirm="stopConfirm" @cancel="stopModalShow = false" |
|||
confirmColor="#00E8A2" cancelColor="#96959E"> |
|||
<view class="stopModel"> |
|||
<view class="title"> |
|||
<text class="left">{{ i18n.StyPrice }}</text> |
|||
<text class="right">{{ i18n.ExpectProfit }} {{ profit }}</text> |
|||
</view> |
|||
<view class="numberInput"> |
|||
<button class="btn sub" :class="{ disabled: stySubBtnDisabled || styValue <= 0 }" |
|||
:disabled="stySubBtnDisabled" @click="styValueChange('sub')"></button> |
|||
<input class="number" type="number" v-model="styValue" @input="stopModalChange" /> |
|||
<button class="btn add" @click="styValueChange('add')"></button> |
|||
</view> |
|||
<view class="title"> |
|||
<text class="left">{{ i18n.StsPrice }}</text> |
|||
<text class="right">{{ i18n.ExpectLoss }} {{ loss }}</text> |
|||
</view> |
|||
<view class="numberInput"> |
|||
<button class="btn sub" :class="{ disabled: stsSubBtnDisabled || stsValue <= 0 }" |
|||
:disabled="stsSubBtnDisabled" @click="stsValueChange('sub')"></button> |
|||
<input class="number" type="number" v-model="stsValue" @input="stopModalChange" /> |
|||
<button class="btn add" @click="stsValueChange('add')"></button> |
|||
</view> |
|||
</view> |
|||
</u-modal> |
|||
|
|||
|
|||
|
|||
<!-- 追加保证金 --> |
|||
<u-modal :show="stopModalShowZui" :confirmText="i18n.Confirm" :cancelText="i18n.Cancel" :showCancelButton="true" |
|||
:title="i18n.Margincall" :content='i18n.WarmTipsText' @confirm="stopConfirm" @cancel="stopModalShowZui = false" |
|||
confirmColor="#00E8A2" cancelColor="#96959E"> |
|||
<view class="stopModel"> |
|||
<view class="title"> |
|||
<text class="left">{{ i18n.AmountTrue }}</text> |
|||
<!-- <text class="right">{{ i18n.ExpectProfit }} {{ profit }}</text> --> |
|||
</view> |
|||
<view class="numberInput"> |
|||
<button class="btn sub" :class="{ disabled: stySubBtnDisabled || styValue <= 0 }" |
|||
:disabled="stySubBtnDisabled" @click="styValueChange('sub')"></button> |
|||
<input class="number" type="number" v-model="styValue" @input="stopModalChange" /> |
|||
<button class="btn add" @click="styValueChange('add')"></button> |
|||
</view> |
|||
</view> |
|||
</u-modal> |
|||
|
|||
|
|||
<u-empty :text="i18n.Dataisempty" mode="data" v-if="!list.length"></u-empty> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
|
|||
const COMPONENT_NAME = 'transaction' |
|||
let timer1 = null; |
|||
let timer2 = null; |
|||
export default { |
|||
|
|||
name: COMPONENT_NAME, |
|||
|
|||
data() { |
|||
return { |
|||
list: [], |
|||
latest:{}, |
|||
status: 'opened', |
|||
closeModalShow: false, |
|||
stopModalShow: false, |
|||
type: 1, |
|||
stopModalShowZui:false, |
|||
test: 0, |
|||
dealList: [{ |
|||
dealType: 'long' |
|||
}, |
|||
{ |
|||
dealType: 'long' |
|||
}, |
|||
], |
|||
styValue: 0, |
|||
stsValue: 0, |
|||
stySubBtnDisabled: false, |
|||
stsSubBtnDisabled: false, |
|||
// 撤销订单数据 |
|||
itemData: {}, |
|||
// 设置止盈数据 |
|||
stopLimitData: {}, |
|||
profit: 0, |
|||
loss: 0 |
|||
} |
|||
}, |
|||
computed: { |
|||
i18n() { |
|||
return this.$t("markets"); |
|||
}, |
|||
}, |
|||
watch: { |
|||
deep: true, |
|||
symbol: { |
|||
handler: function() { |
|||
this.getContractOrderList() |
|||
} |
|||
}, |
|||
|
|||
}, |
|||
mounted() { |
|||
this.initWebSocket(); |
|||
this.getContractOrderList() |
|||
|
|||
}, |
|||
//全局事件在组件实例创建完成定义 |
|||
created() { |
|||
uni.$on('upData', num => { |
|||
if (num) { |
|||
this.getContractOrderList() |
|||
} |
|||
}) |
|||
}, |
|||
onHide() { |
|||
clearTimeout(timer2); |
|||
clearInterval(timer2); |
|||
timer1 = null; |
|||
timer2 = null; |
|||
}, |
|||
methods: { |
|||
initWebSocket() { |
|||
|
|||
|
|||
this.websock = new this.$websocket(this.$constant.WSSURL) // xxx 表示接口地址URL |
|||
|
|||
|
|||
var that = this |
|||
this.websock.getWebSocketMsg(data => { |
|||
|
|||
if (data.channel === 'conn') { |
|||
that.websock.id = data.data |
|||
that.websock.subLatest(); |
|||
|
|||
// that.websock.subKHistory(that.type, that.symbol.symbol) |
|||
// that.websock.subKline(that.type, that.symbol.symbol) |
|||
|
|||
} else if (data.channel === 'market.latest') { |
|||
that.latest = data.data; |
|||
} |
|||
}); |
|||
}, |
|||
// 获取百分比位数 |
|||
getValue(e){ |
|||
let data = e*100 |
|||
data = parseFloat(data.toPrecision(10)) |
|||
data = String(data) |
|||
return data.substring(0, data.indexOf(".") + 3); |
|||
}, |
|||
// 获取位数 |
|||
getPrice(s) { |
|||
var i=s; |
|||
/* |
|||
js 数字精度问题 |
|||
*/ |
|||
i = parseFloat(i.toPrecision(10)) |
|||
i = String(i) |
|||
return i.substring(0, i.indexOf(".") + 5); |
|||
}, |
|||
|
|||
stopModalChange() { |
|||
if (this.stopLimitData.direction === 'buy') { |
|||
if (this.styValue) |
|||
this.profit = this.getItem((this.styValue - this.stopLimitData.openedPrice) * this.stopLimitData |
|||
.hand) |
|||
if (this.stsValue) |
|||
this.loss = this.getItem((this.stsValue - this.stopLimitData.openedPrice) * this.stopLimitData |
|||
.hand) |
|||
|
|||
} else { |
|||
if (this.styValue) |
|||
this.profit = this.getItem((this.stopLimitData.openedPrice - this.styValue) * this.stopLimitData |
|||
.hand) |
|||
if (this.stsValue) |
|||
this.loss = this.getItem((this.stopLimitData.openedPrice - this.stsValue) * this.stopLimitData |
|||
.hand) |
|||
} |
|||
}, |
|||
getItem(i) { |
|||
i = parseFloat(i.toPrecision(10)) |
|||
i = String(i) |
|||
return i.substring(0, i.indexOf(".") + 9); |
|||
}, |
|||
// 获取设置止盈数据 |
|||
getStopLimit(i) { |
|||
this.stopLimitData = i |
|||
this.stopModalShow = true |
|||
this.styValue = 0; |
|||
this.stsValue = 0; |
|||
this.profit = 0 |
|||
this.loss = 0 |
|||
}, |
|||
// 设置保证金 |
|||
Margincall(i){ |
|||
this.stopLimitData = i |
|||
this.stopModalShowZui=true |
|||
this.styValue = 0; |
|||
this.stsValue = 0; |
|||
this.profit = 0 |
|||
this.loss = 0 |
|||
}, |
|||
// 获取撤销订单 |
|||
closeItem(item, i) { |
|||
this.itemData = item |
|||
this.closeModalShow = true |
|||
}, |
|||
// 合约订单列表 |
|||
getContractOrderList() { |
|||
const orderList = this.$api.contractOrderList({ |
|||
"status": this.status, |
|||
}); |
|||
orderList.then(res => { |
|||
this.list = res.data |
|||
for (var i = 0; i < this.list.length; i++) { |
|||
if (this.list[i].addTime) { |
|||
this.list[i].timestr = this.$index.formatmmddhhmmss(this.list[ |
|||
i].addTime) |
|||
} |
|||
if (this.list[i].closedTime) { |
|||
this.list[i].timestr2 = this.$index.formatmmddhhmmss(this.list[ |
|||
i].closedTime) |
|||
} |
|||
|
|||
} |
|||
}); |
|||
}, |
|||
/** |
|||
* 类型改变 |
|||
* @param {*} type |
|||
*/ |
|||
onChangeType(type = 0) { |
|||
this.type = type |
|||
if (this.type == 0) { |
|||
this.status = 'undone' |
|||
} |
|||
if (this.type == 1) { |
|||
this.status = 'opened' |
|||
} |
|||
if (this.type == 2) { |
|||
this.status = 'closed' |
|||
} |
|||
if (this.type == 3) { |
|||
this.status = 'revoked' |
|||
} |
|||
this.getContractOrderList() |
|||
}, |
|||
/** |
|||
* close确认弹窗 |
|||
*/ |
|||
closeConfirm() { |
|||
// 类型是undo调用 订单撤销 |
|||
if (this.type == 0) { |
|||
const orderList = this.$api.contractCancel({ |
|||
"orderNo": this.itemData.orderNo, |
|||
}); |
|||
orderList.then(res => { |
|||
uni.$u.toast(this.$t("markets").Succeeded) |
|||
this.closeModalShow = false |
|||
this.getContractOrderList() |
|||
}); |
|||
} |
|||
// 类型是opened 调用 合约订单平仓 |
|||
if (this.type == 1) { |
|||
const orderList = this.$api.contractClosed({ |
|||
"orderNo": this.itemData.orderNo, |
|||
}); |
|||
orderList.then(res => { |
|||
uni.$u.toast(this.$t("markets").Succeeded) |
|||
this.closeModalShow = false |
|||
setTimeout(() => { |
|||
this.getContractOrderList() |
|||
}, 600) |
|||
}); |
|||
} |
|||
}, |
|||
/** |
|||
* stop确认弹窗 |
|||
*/ |
|||
stopConfirm() { |
|||
if(this.stopModalShow){ |
|||
if (this.styValue < 0 || this.stsValue < 0) { |
|||
uni.showToast({ |
|||
title: this.i18n.lessThan, |
|||
icon: 'none', |
|||
duration: 2000 //持续时间为 |
|||
}) |
|||
return; |
|||
} |
|||
const orderList = this.$api.setWinOrLossStopPrice({ |
|||
"orderNo": this.stopLimitData.orderNo, |
|||
"winStopPrice": this.styValue, |
|||
"lossStopPrice": this.stsValue, |
|||
}); |
|||
orderList.then(res => { |
|||
uni.$u.toast(this.$t("markets").Succeeded) |
|||
this.stopModalShow = false |
|||
setTimeout(() => { |
|||
this.getContractOrderList() |
|||
}, 800) |
|||
}); |
|||
} |
|||
|
|||
if(this.stopModalShowZui){ |
|||
if (this.styValue < 0) { |
|||
uni.showToast({ |
|||
title: this.i18n.lessThan, |
|||
icon: 'none', |
|||
duration: 2000 //持续时间为 |
|||
}) |
|||
return; |
|||
} |
|||
const orderList = this.$api.addBond({ |
|||
"orderNo": this.stopLimitData.orderNo, |
|||
"amount": this.styValue, |
|||
}); |
|||
orderList.then(res => { |
|||
uni.$u.toast(this.$t("markets").Succeeded) |
|||
this.stopModalShowZui = false |
|||
setTimeout(() => { |
|||
this.getContractOrderList() |
|||
}, 800) |
|||
}); |
|||
|
|||
} |
|||
|
|||
}, |
|||
/** |
|||
* styValue值变化 |
|||
*/ |
|||
styValueChange(type = 'sub') { |
|||
if (type === 'sub') { // 减操作 |
|||
this.styValue = parseInt(this.styValue) // 取整 |
|||
this.styValue -= 1; |
|||
if (this.styValue <= 0) { |
|||
this.stySubBtnDisabled = true; |
|||
this.styValue = 0 |
|||
} else { |
|||
this.stySubBtnDisabled = false; |
|||
} |
|||
} else { // 加操作 |
|||
this.styValue = parseInt(this.styValue) // 取整 |
|||
this.styValue += 1; |
|||
if (this.styValue <= 0) { |
|||
this.stySubBtnDisabled = true; |
|||
this.styValue = 0 |
|||
} else { |
|||
this.stySubBtnDisabled = false; |
|||
} |
|||
} |
|||
}, |
|||
/** |
|||
* stsValue值变化 |
|||
*/ |
|||
stsValueChange(type = 'sub') { |
|||
if (type === 'sub') { // 减操作 |
|||
this.stsValue = parseInt(this.stsValue) // 取整 |
|||
this.stsValue -= 1; |
|||
if (this.stsValue <= 0) { |
|||
this.stsSubBtnDisabled = true; |
|||
this.stsValue = 0 |
|||
} else { |
|||
this.stsSubBtnDisabled = false; |
|||
} |
|||
} else { // 加操作 |
|||
this.stsValue = parseInt(this.stsValue) // 取整 |
|||
this.stsValue += 1; |
|||
if (this.stsValue <= 0) { |
|||
this.stsSubBtnDisabled = true; |
|||
this.stsValue = 0 |
|||
} else { |
|||
this.stsSubBtnDisabled = false; |
|||
} |
|||
} |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped lang="scss"> |
|||
.righttype3{ |
|||
position: absolute; |
|||
right: 115rpx; |
|||
} |
|||
.closeBtn { |
|||
display: inline-block; |
|||
// width: 98rpx; |
|||
padding: 0 12rpx; |
|||
height: 48rpx; |
|||
border-radius: 8rpx; |
|||
line-height: 48rpx; |
|||
background-color: rgba($color: rgb(0, 232, 162), $alpha: 0.1); |
|||
font-size: 24rpx; |
|||
text-align: center; |
|||
color: rgb(0, 232, 162); |
|||
margin-top: 22rpx; |
|||
} |
|||
/deep/ .u-empty { |
|||
top: 500% !important; |
|||
} |
|||
|
|||
/deep/ .u-modal__content__text { |
|||
color: #96959E !important; |
|||
} |
|||
|
|||
.entrustOrderList { |
|||
position: relative; |
|||
|
|||
.tab { |
|||
display: flex; |
|||
background: #211F32; |
|||
margin-top: 120rpx; |
|||
|
|||
.item { |
|||
height: 64rpx; |
|||
line-height: 64rpx; |
|||
flex: 1; |
|||
font-size: 24rpx; |
|||
text-align: center; |
|||
|
|||
&.select { |
|||
background: #323045; |
|||
color: #00E8A2; |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
|
|||
.content { |
|||
padding: 32rpx; |
|||
|
|||
.card { |
|||
position: relative; |
|||
font-size: 24rpx; |
|||
color: #A1A0A8; |
|||
background: #211F32; |
|||
border-radius: 20rpx; |
|||
padding: 24rpx 32rpx; |
|||
margin-bottom: 30rpx; |
|||
|
|||
.header { |
|||
.buy { |
|||
color: #00E8A2; |
|||
margin-right: 28rpx; |
|||
} |
|||
|
|||
.sell { |
|||
color: #F4506A; |
|||
margin-right: 28rpx; |
|||
} |
|||
|
|||
.time { |
|||
margin-right: 16rpx; |
|||
} |
|||
|
|||
.closeTimeTitle { |
|||
margin-right: 16rpx; |
|||
} |
|||
|
|||
.closeBtn { |
|||
position: absolute; |
|||
right: 32rpx; |
|||
top: 20rpx; |
|||
display: inline-block; |
|||
width: 98rpx; |
|||
height: 48rpx; |
|||
border-radius: 8rpx; |
|||
line-height: 48rpx; |
|||
background-color: rgba($color: #F4506A, $alpha: 0.1); |
|||
font-size: 24rpx; |
|||
text-align: center; |
|||
color: #F4506A; |
|||
margin-top: 0; |
|||
} |
|||
} |
|||
|
|||
.infoBody { |
|||
.item { |
|||
display: flex; |
|||
|
|||
.title { |
|||
margin-top: 30rpx; |
|||
line-height: 32rpx; |
|||
} |
|||
|
|||
.value { |
|||
color: #FFFFFF; |
|||
} |
|||
|
|||
.left { |
|||
flex: 1; |
|||
text-align: left; |
|||
} |
|||
|
|||
.center { |
|||
// flex: 1; |
|||
text-align: center; |
|||
} |
|||
|
|||
.right { |
|||
flex: 1; |
|||
text-align: right; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
} |
|||
} |
|||
|
|||
/deep/.u-popup__content { |
|||
background: #323045; |
|||
|
|||
.u-modal__title { |
|||
color: #fff; |
|||
} |
|||
|
|||
.u-modal__content__text { |
|||
text-align: center; |
|||
} |
|||
} |
|||
|
|||
.stopModel { |
|||
width: 560rpx; |
|||
font-size: 24rpx; |
|||
|
|||
.title { |
|||
display: flex; |
|||
justify-content: space-between; |
|||
width: 560rpx; |
|||
margin: 24rpx 0; |
|||
|
|||
.left {} |
|||
|
|||
.right { |
|||
color: #A1A0A8; |
|||
} |
|||
} |
|||
|
|||
.numberInput { |
|||
display: flex; |
|||
height: 88rpx; |
|||
background: #211F32; |
|||
border-radius: 32rpx; |
|||
overflow: hidden; |
|||
|
|||
.btn { |
|||
width: 80rpx; |
|||
|
|||
background: #16141f; |
|||
padding: 0; |
|||
border-radius: 0; |
|||
|
|||
&.sub { |
|||
background-image: url(../../static/maskets/sub.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
background-position: 24rpx 28rpx; |
|||
} |
|||
|
|||
&.add { |
|||
background-image: url(../../static/maskets/add.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 32rpx; |
|||
background-position: 24rpx 28rpx; |
|||
} |
|||
|
|||
&.button-hover { |
|||
background: #211F32; |
|||
|
|||
&.sub::after { |
|||
background-image: url(../../static/maskets/sub.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 64rpx; |
|||
background-position: 46rpx 56rpx; |
|||
|
|||
} |
|||
|
|||
&.add::after { |
|||
background-image: url(../../static/maskets/add.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 64rpx; |
|||
background-position: 46rpx 56rpx; |
|||
|
|||
} |
|||
} |
|||
|
|||
&.disabled { |
|||
background: #211F32; |
|||
|
|||
&.sub::after { |
|||
background-image: url(../../static/maskets/sub.png); |
|||
background-repeat: no-repeat; |
|||
background-size: 64rpx; |
|||
background-position: 46rpx 56rpx; |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
.number { |
|||
flex: 1; |
|||
border-left: 2rpx solid #323045; |
|||
border-right: 2rpx solid #323045; |
|||
text-align: center; |
|||
height: 88rpx; |
|||
; |
|||
line-height: 88rpx; |
|||
font-size: 24rpx; |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
|
|||
} |
|||
</style> |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 2.4 KiB |