Browse Source

合并

master
j1ack 3 years ago
parent
commit
0668a3ebd1
  1. 7
      App.vue
  2. 12
      components/tabBar/tabBar.vue
  3. 99
      pages/markets/trade.vue
  4. 150
      pages/me/myTeam.vue
  5. 131
      pages/subscription/index.vue
  6. BIN
      static/me/myTeambg.png

7
App.vue

@ -37,7 +37,12 @@ export default {
margin: 0;
}
/deep/ .u-empty{
position: absolute;
top: 150%;
left: 50%;
transform: translateX(-50%);
}
page {

12
components/tabBar/tabBar.vue

@ -192,18 +192,6 @@ export default {
display: flex;
z-index: 8;
box-sizing: border-box;
&::after {
display: block;
position: absolute;
content: '';
background: #fff;
width: 268rpx;
height: 10rpx;
border-radius: 10rpx;
top: 140rpx;
left: 242rpx;
}
}
.tabbar_item {

99
pages/markets/trade.vue

@ -7,10 +7,11 @@
</navigation>
<view class="content">
<view class="transactionSide">
<transaction></transaction>
<transaction :contractInfo="contractInfo"></transaction>
</view>
<view class="positionSide">
<positionList v-on:depthChange="depthChange" :marketDetail="marketDetail" :bboList="bboList"></positionList>
<positionList v-on:depthChange="depthChange" :marketDetail="marketDetail" :bboList="bboList">
</positionList>
</view>
</view>
<view class="orderList">
@ -52,13 +53,15 @@
name: "trade",
data() {
return {
/* 配置信息 */
contractInfo: {},
popupShow: false,
symbolList: [],
symbol: null,
marketDetail:null,
bboList:{},
tradeList:{},
webSocketChannel:{}
marketDetail: null,
bboList: {},
tradeList: {},
webSocketChannel: {}
};
},
computed: {
@ -69,8 +72,8 @@
onLoad() {
this.getSymbolGroup();
this.initWebSocket();
this.symbol=uni.getStorageSync('symbol');
if(this.symbol!=null){
this.symbol = uni.getStorageSync('symbol');
if (this.symbol != null) {
this.getMarketDetail()
this.getBboList();
this.getTradeList();
@ -82,7 +85,17 @@
console.log(11111, uni.getStorageSync('symbol'));
},
methods: {
getTradeList(){
//
contractConfig() {
this.$api.contractConfig({
pair: this.marketDetail.pair
}).then(res => {
this.contractInfo = res
this.contractInfo.leverageCon = [];
this.contractInfo.leverageCon = this.contractInfo.leverage.split(',')
})
},
getTradeList() {
const tradeList = this.$api.tradeList({
"symbol": this.symbol.symbol
});
@ -99,7 +112,7 @@
})
})
},
getBboList(){
getBboList() {
const bboList = this.$api.bboList({
"symbol": this.symbol.symbol
});
@ -116,13 +129,13 @@
})
})
},
getMarketDetail(){
getMarketDetail() {
const marketDetail = this.$api.marketDetail({
"symbol": this.symbol.symbol
});
marketDetail.then(res => {
this.marketDetail = res
this.contractConfig()
})
.catch(e => {
console.log(e)
@ -139,8 +152,8 @@
});
symbolGroup.then(res => {
this.symbolList = res.USDT
if(this.symbol==null){
this.symbol=this.symbolList[0]
if (this.symbol == null) {
this.symbol = this.symbolList[0]
}
})
@ -173,53 +186,53 @@
that.submarketDetail()
} else if (data.channel === 'market.pairsgroup') {
that.symbolList = data.data.USDT;
}else if (data.channel === that.webSocketChannel.bbo) {
} else if (data.channel === that.webSocketChannel.bbo) {
that.bboList = data.data;
}else if (data.channel === that.webSocketChannel.bbo) {
} else if (data.channel === that.webSocketChannel.bbo) {
that.bboList = data.data;
}else if(data.channel === that.webSocketChannel.trade){
that.tradeList=data.data;
}else if(data.channel === that.webSocketChannel.detail){
that.marketDetail=data.data;
} else if (data.channel === that.webSocketChannel.trade) {
that.tradeList = data.data;
} else if (data.channel === that.webSocketChannel.detail) {
that.marketDetail = data.data;
}
});
},
//
subpairsgroup(){
this.subWebSocket('pairsgroup',['market.pairsgroup'])
subpairsgroup() {
this.subWebSocket('pairsgroup', ['market.pairsgroup'])
},
//
unsubpairsgroup(){
this.unsubWebSocket('pairsgroup',['market.pairsgroup'])
unsubpairsgroup() {
this.unsubWebSocket('pairsgroup', ['market.pairsgroup'])
},
subbbo(){
this.webSocketChannel.bbo='market.'+this.symbol.symbol+".bbo";
this.subWebSocket('bbo',[this.webSocketChannel.bbo])
subbbo() {
this.webSocketChannel.bbo = 'market.' + this.symbol.symbol + ".bbo";
this.subWebSocket('bbo', [this.webSocketChannel.bbo])
},
unsubbbo(){
this.unsubWebSocket('bbo',[this.webSocketChannel.bbo])
unsubbbo() {
this.unsubWebSocket('bbo', [this.webSocketChannel.bbo])
},
subtrade(){
this.webSocketChannel.trade='market.'+this.symbol.symbol+".trade";
this.subWebSocket('trade',[this.webSocketChannel.trade])
subtrade() {
this.webSocketChannel.trade = 'market.' + this.symbol.symbol + ".trade";
this.subWebSocket('trade', [this.webSocketChannel.trade])
},
unsubtrade(){
this.unsubWebSocket('trade',[this.webSocketChannel.trade])
unsubtrade() {
this.unsubWebSocket('trade', [this.webSocketChannel.trade])
},
submarketDetail(){
this.webSocketChannel.detail='market.'+this.symbol.symbol+".detail";
this.subWebSocket('detail',[this.webSocketChannel.detail])
submarketDetail() {
this.webSocketChannel.detail = 'market.' + this.symbol.symbol + ".detail";
this.subWebSocket('detail', [this.webSocketChannel.detail])
},
unsubmarketDetail(){
this.unsubWebSocket('detail',[this.webSocketChannel.detail])
unsubmarketDetail() {
this.unsubWebSocket('detail', [this.webSocketChannel.detail])
},
subWebSocket(type,channel) {
subWebSocket(type, channel) {
const data = {
event: 'sub',
type: type,
@ -230,7 +243,7 @@
this.websock.webSocketSendMsg(data)
console.log("websocket发送", data);
},
unsubWebSocket(type,channel) {
unsubWebSocket(type, channel) {
const data = {
event: 'un_sub',
type: type,
@ -265,8 +278,8 @@
this.unsubbbo()
this.unsubtrade()
this.unsubmarketDetail()
this.symbol=item;
uni.setStorageSync('symbol',this.symbol);
this.symbol = item;
uni.setStorageSync('symbol', this.symbol);
this.getMarketDetail()
this.getBboList();
this.getTradeList();

150
pages/me/myTeam.vue

@ -3,23 +3,76 @@
<!-- nav -->
<navigation>{{ i18n.MyTeam }}</navigation>
<view class="body">
<view class="userItem" v-for="(item, index) in 4" :key="index">
<u-icon class="icon" :name="'../../static/me/Ellipse 85.png'" size="92rpx" width="92rpx"></u-icon>
<view>
<view class="email">krichjmadif0985@gmail.com</view>
<view class="date">2022/08/06</view>
<u-button class="button" color="#F2FE8D" throttleTime="500">{{ i18n.Fresh }}</u-button>
<view class="top flex">
<view class="item">
<view class="t1">
394
</view>
<view class="t2">
Number of clionts
</view>
</view>
<view class="item">
<view class="t1">
0
</view>
<view class="t2">
Earnlings yesterday
</view>
</view>
<view class="item">
<view class="t1">
9343492
</view>
<view class="t2">
Total income
</view>
</view>
</view>
<u-subsection :list="list" activeColor="#00E8A2" inactiveColor="#fff" :current="curNow"
@change="sectionChange" bgColor="#211F32"></u-subsection>
<view class="container">
<table class="table">
<thead class="thead">
<tr>
<td>User</td>
<td>Financial funds</td>
<td>Time</td>
</tr>
</thead>
<tbody class="tbody">
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
<tr>
<td>98374354705</td>
<td>349849</td>
<td>2021.10.14</td>
</tr>
</tbody>
</table>
</view>
</view>
</view>
</template>
<script>
export default {
export default {
name: "myTeam",
data() {
return {
list: ['My client', 'Income record'],
// keyName
// list: [{name: ''}, {name: ''}, {name: ''}],
curNow: 0,
};
},
computed: {
@ -27,22 +80,89 @@ export default {
return this.$t("me");
},
},
onLoad() {
},
onShow() { },
onLoad() {},
onShow() {},
methods: {
sectionChange(index) {
this.curNow = index;
}
},
}
}
</script>
<style lang="scss" scoped>
.main {
.table{
width: 100%;
text-align: center;
border-collapse: collapse;
.thead{
height: 84rpx;
line-height: 84rpx;
tr{
td{
color: #A1A0A8;
font-size: 24rpx;
}
}
}
.tbody{
tr{
height: 84rpx;
line-height: 84rpx;
border-top: 2rpx solid #323045 !important;
td{
color: #fff;
font-size: 24rpx;
}
}
}
}
.container {
padding: 0 32rpx;
}
/deep/ .u-subsection--button {
height: 80rpx;
}
/deep/ .u-subsection--button__bar {
background: #323045;
height: 80rpx;
}
.flex {
display: flex;
align-items: center;
justify-content: space-between;
}
.top {
padding: 68rpx 32rpx;
background: url('@/static/me/myTeambg.png') no-repeat;
background-size: cover;
.item {
text-align: center;
line-height: 60rpx;
}
.t2 {
font-size: 24rpx;
color: #A1A0A8;
}
.t1 {
color: #00E8A2;
font-size: 32rpx;
font-weight: bolder;
}
}
.main {
.body {
overflow: hidden;
margin-top: 200rpx;
padding: 0 32rpx;
.userItem {
position: relative;
@ -90,5 +210,5 @@ export default {
}
}
}
</style>

131
pages/subscription/index.vue

@ -2,19 +2,23 @@
<view class="main">
<!-- nav -->
<view class="nav-head">
<view class="navItem" @click="pageState = 'product'" :class="{ select: pageState === 'product' }">
<view class="navItem" @click="pageState = 'product',getInfo('product')"
:class="{ select: pageState === 'product' }">
{{ i18n.Product }}
</view>
<view class="navItem" @click="pageState = 'pending'" :class="{ select: pageState === 'pending' }">
<view class="navItem" @click="pageState = 'pending',getInfo('pending')"
:class="{ select: pageState === 'pending' }">
{{ i18n.Pending }}
</view>
<view class="navItem" @click="pageState = 'complete'" :class="{ select: pageState === 'complete' }">
<view class="navItem" @click="pageState = 'complete',getInfo('complete')"
:class="{ select: pageState === 'complete' }">
{{ i18n.Complete }}
</view>
</view>
<!-- Product 产品列表 -->
<view class="cardList">
<view class="card" v-for="(item, index) in info" :key="index" @click="gotoDetails(item,index)">
<view class="card" v-for="(item, index) in info" :key="index" @click="gotoDetails(item,index)"
v-if="pageState === 'product'">
<!-- 卡片条件渲染 -->
<!-- product -->
<card-header v-if="pageState === 'product'" :iconName="baseURL+'/coins/'+item.coinCode+'.png'"
@ -26,44 +30,50 @@
<key-value-row :keyName="i18n.STLTotalCirculation" :value="item.issueAmount"></key-value-row>
<key-value-row :keyName="i18n.PrivateSalePrice" :value="item.initalPrice+item.coinCode">
</key-value-row>
<key-value-row :keyName="i18n.ICOTime" :value="item.startDate"></key-value-row>
<key-value-row :keyName="i18n.ICOTime" :value="item.timestr"></key-value-row>
</view>
</view>
<view class="card" v-for="(item, index) in userInfoObj" :key="index" v-if="pageState === 'pending'">
<!-- pending -->
<card-header v-if="pageState === 'pending'" :iconName="'../../static/maskets/bye.png'"
:title="'973430980989323445'" :rightName="'Pending'" fontColor="#00E8A2">
<card-header v-if="pageState === 'pending'" :iconName="baseURL+'/coins/'+item.coinSymbol+'.png'"
:title="item.orderNo" :rightName="item.status" :fontColor="item.status=='undone'?'#A1A0A8':item.status=='cancel'?'#F4506A':'#00E8A2'">
</card-header>
<view class="dataBody" v-if="pageState === 'pending'">
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row>
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row>
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row>
<key-value-row :keyName="i18n.Price" :value="item.pendingPrice"></key-value-row>
<key-value-row :keyName="i18n.Quantity" :value="item.pendingAmount"></key-value-row>
<key-value-row :keyName="i18n.USDT" :value="parseInt(item.usdtPrice,16)"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
</view>
</view>
<view class="card" v-for="(item, index) in userInfoObj" :key="index" v-if="pageState === 'complete'">
<!-- complete -->
<card-header v-if="pageState === 'complete'" :iconName="'../../static/maskets/bye.png'"
:title="'973430980989323445'" :rightName="'complete'" fontColor="#00E8A2">
<card-header v-if="pageState === 'complete'" :iconName="baseURL+'/coins/'+item.coinSymbol+'.png'"
:title="item.orderNo" :rightName="item.status" :fontColor="item.status=='undone'?'#A1A0A8':item.status=='cancel'?'#F4506A':'#00E8A2'">
</card-header>
<view class="dataBody" v-if="pageState === 'complete'">
<key-value-row :keyName="i18n.Price" :value="'284145.61'"></key-value-row>
<key-value-row :keyName="i18n.Quantity" :value="'1000'"></key-value-row>
<key-value-row :keyName="i18n.ConfirmAmount" :value="'999'" :leftColor="'#F2FE8D'"
<key-value-row :keyName="i18n.Price" :value="item.pendingPrice"></key-value-row>
<key-value-row :keyName="i18n.Quantity" :value="item.pendingAmount"></key-value-row>
<key-value-row :keyName="i18n.ConfirmAmount" :value="item.tradeAmount" :leftColor="'#F2FE8D'"
:rightColor="'#F2FE8D'"></key-value-row>
<key-value-row :keyName="i18n.USDT" :value="'3166.61'"></key-value-row>
<key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="'2000'" :leftColor="'#F2FE8D'"
<key-value-row :keyName="i18n.USDT" :value="parseInt(item.usdtPrice,16)"></key-value-row>
<key-value-row :keyName="i18n.CheckTheNumberoOfUSDT" :value="item.realAmount" :leftColor="'#F2FE8D'"
:rightColor="'#F2FE8D'">
</key-value-row>
<key-value-row :keyName="i18n.Time" :value="'2022/08/06 14:51'"></key-value-row>
<key-value-row :keyName="i18n.Time" :value="item.addTimeStr"></key-value-row>
</view>
</view>
</view>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="info.length==0"></u-empty>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="info.length==0&&pageState=='product'"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="info.length" height="80" />
:nomore-text="nomoreText" v-if="info.length&&pageState=='product'" height="80" />
<!-- 申购记录的为空提示 -->
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0" v-show="pageState=='undone'||pageState=='complete'"></u-empty>
<u-loadmore :status="loadStatus2" :loading-text="loadingText2" :loadmore-text="loadmoreText2"
:nomore-text="nomoreText2" v-if="userInfoObj.length" height="80" />
<!-- tabBar -->
<tab-bar :selectActive="4"></tab-bar>
</view>
@ -94,12 +104,17 @@
form: {
pageNumber: 1,
pageSize: 20,
type: 'crypto',
status: '',
},
//
isLoadMore2: false, //
loadStatus2: 'loadmore',
loadingText2: this.$t("login").toload,
loadmoreText2: this.$t("login").pullup,
nomoreText2: this.$t("login").Nomore,
}
},
onLoad() {
},
onLoad() {},
onShow() {
this.baseURL = constant.BASE_URL
this.getGoods();
@ -111,11 +126,71 @@
}
},
methods: {
// product
getInfo(e) {
this.info=[];
this.userInfoObj=[]
if (e == 'product') {
this.getGoods()
}
if (e == 'pending') {
this.form.status = 'undone'
this.getList()
}
if (e == 'complete') {
this.form.status = 'complete'
this.getList()
}
},
//
getList() {
this.isLoadMore2 = true
api.subscriptionRecord(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
} else {
this.userInfoObj = res.content
for (var i = 0; i < this.userInfoObj.length; i++) {
if (this.userInfoObj[i].addTime) {
this.userInfoObj[i].timestr = this.$index.formatyymmddhhmmss(this.userInfoObj[
i].addTime)
}
}
}
if (this.userInfoObj.length >= Number(res.totalElements)) { //
this.isLoadMore2 = true
this.loadStatus2 = 'nomore'
} else {
this.isLoadMore2 = false
}
} else {
this.isLoadMore2 = true
this.loadStatus2 = 'nomore'
this.userInfoObj = []
}
this.$forceUpdate()
})
},
//
getGoods() {
api.subscriptionList().then(res => {
this.info = res;
this.isLoadMore = true
this.loadStatus = 'nomore'
for (var i = 0; i < this.info.length; i++) {
if (this.info[i].startDate) {
this.info[i].timestr = this.$index.formatyymmddhhmmss(this.info[
i].startDate)
}
}
})
},
gotoDetails(i, index) {

BIN
static/me/myTeambg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Loading…
Cancel
Save