Browse Source

合并

master
j1ack 3 years ago
parent
commit
e1c9c35eb6
  1. 10
      App.vue
  2. 1105
      components/entrustOrderList/entrustOrderList.vue
  3. 15
      components/transaction/transaction.vue
  4. 21
      manifest.json
  5. 2
      pages/charity/details.vue
  6. 71
      pages/charity/index.vue
  7. 359
      pages/home/index.vue
  8. 61
      pages/login/forget.vue
  9. 8
      pages/login/register.vue
  10. 182
      pages/markets/index.vue
  11. 108
      pages/markets/kLine.vue
  12. 126
      pages/markets/trade.vue
  13. 7
      pages/me/aboutUs.vue
  14. 78
      pages/me/accountInfo.vue
  15. 39
      pages/me/changeLoginPassword.vue
  16. 34
      pages/me/changeWithdrawalPassword.vue
  17. 2
      pages/me/donateRecord.vue
  18. 261
      pages/me/index.vue
  19. 81
      pages/me/myTeam.vue
  20. 72
      pages/me/notification.vue
  21. 70
      pages/me/notificationDetails.vue
  22. 8
      pages/me/transfer.vue
  23. 17
      pages/me/walletHistory.vue
  24. 2
      pages/mine/mineRecord.vue
  25. 11
      pages/recharge/recharge.vue
  26. 15
      pages/recharge/rechargeRecord.vue
  27. 71
      pages/subscription/index.vue
  28. 2
      pages/withdrawal/addAddress.vue
  29. 58
      pages/withdrawal/addOrEditBankCard.vue
  30. 13
      pages/withdrawal/chooseAddress.vue
  31. 10
      pages/withdrawal/withdrawal.vue
  32. 10
      pages/withdrawal/withdrawalRecord.vue
  33. 23
      utils/index.js
  34. 4
      utils/language/en_US.js
  35. 5
      utils/language/vi_VN.js
  36. 9
      utils/language/zh_TW.js
  37. 2
      utils/qrCode/wxqrcode.js

10
App.vue

@ -30,10 +30,14 @@
}
console.log('ss' + JSON.stringify(uni.getSystemInfoSync()))
const response = await this.$api.appVersion(param)
// console.log(response)
if(!response.isUpgrade){
return;
}
plus.runtime.getProperty(plus.runtime.appid, (wgtinfo) => {
console.log('当前版本号' + wgtinfo.versionCode)
console.log((wgtinfo.versionCode < response.versionCode))
console.log(wgtinfo.versionCode, response.versionCode)
// console.log('' + wgtinfo.versionCode)
// console.log((wgtinfo.versionCode < response.versionCode))
// console.log(wgtinfo.versionCode, response.versionCode)
if (wgtinfo.versionCode < response.versionCode) {
console.log('更新了吗')
let that = this;

1105
components/entrustOrderList/entrustOrderList.vue

File diff suppressed because it is too large

15
components/transaction/transaction.vue

@ -56,12 +56,12 @@
</key-value-row>
<!-- 债券 Bond-->
<key-value-row class="text" :keyName="i18n.Bond"
:value="`${(priceTypeValue === 0?marketDetail.close/leverageValue:coinPrice/leverageValue).toFixed(4)}${symbol.baseSymbol}`"
:value="`${(priceTypeValue === 0?coinAmount*marketDetail.close/leverageValue:coinAmount*coinPrice/leverageValue).toFixed(4)}${symbol.baseSymbol}`"
lineHeight="30rpx" size="24rpx" rightColor="#A1A0A8">
</key-value-row>
<!-- 手续费 -->
<key-value-row class="text" :keyName="i18n.Fee"
:value="`${(priceTypeValue === 0?marketDetail.close/leverageValue*contractConfig.rate:coinPrice/leverageValue*contractConfig.rate).toFixed(4)}${symbol.baseSymbol}`"
:value="`${(priceTypeValue === 0?coinAmount*marketDetail.close/leverageValue*contractConfig.rate:coinAmount*coinPrice/leverageValue*contractConfig.rate).toFixed(4)}${symbol.baseSymbol}`"
lineHeight="30rpx" size="24rpx" rightColor="#A1A0A8">
</key-value-row>
@ -90,7 +90,7 @@
contractConfig: {
type: Object,
default: () => {
leverage: [10]
}
},
symbol: {
@ -112,6 +112,7 @@
}
},
},
data() {
return {
math:null,
@ -137,6 +138,14 @@
return this.$t("markets");
},
},
watch: {
contractConfig: {
deep: true,
handler: function (n,i) {
this.leverageValue = n.leverage[0];
}
}
},
mounted() {
this.leverageValue = this.contractConfig.leverage[0];
this.coinPrice = this.marketDetail.close

21
manifest.json

@ -46,26 +46,9 @@
/* ios */
"ios" : {},
/* SDK */
"sdkConfigs" : {
"ad" : {}
}
"sdkConfigs" : {}
},
"nativePlugins" : {
"HF-Step" : {
"__plugin_info__" : {
"name" : "原生计步器(Android和IOS) - [试用版,仅用于自定义调试基座]",
"description" : "计步器,原生计步器插件,安卓,IOS",
"platforms" : "Android,iOS",
"url" : "https://ext.dcloud.net.cn/plugin?id=6632",
"android_package_name" : "",
"ios_bundle_id" : "",
"isCloud" : true,
"bought" : 0,
"pid" : "6632",
"parameters" : {}
}
}
}
"nativePlugins" : {}
},
"h5" : {
"publicPath" : "/",

2
pages/charity/details.vue

@ -45,7 +45,7 @@
<!-- coin选择框 -->
<u-form-item class="input-item" prop="coinCode" ref="item1">
<u-input class="input" color="#fff" fontSize="32rpx"
border="none" :placeholder="i18n.PleaseChooseCoin" :disabled="true">
border="none" :placeholder="i18n.PleaseChooseCoin" v-model="coinInfo.coinCode" :disabled="true">
</u-input>
<view class="selectCoinBtn" @click="USDTPopupShow = true">{{coinInfo.coinCode}}
</view>

71
pages/charity/index.vue

@ -1,7 +1,16 @@
<template>
<view class="main">
<!-- 列表 -->
<view class="charityList">
<!-- #ifdef APP-PLUS -->
<view class="charityList">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="charityListH5">
<!-- #endif -->
<view class="item" v-for="(item, index) in userInfoObj" :key="index" @click="goto(item.id)">
<u--image class="img" :showLoading="true" :src="baseURL+item.img" width="318rpx"
height="230rpx"></u--image>
@ -160,6 +169,66 @@
}
}
.charityListH5{
// width: 318rpx;
margin: 40rpx 38rpx 0 40rpx;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
.item {
position: relative;
width: 318rpx;
height: 430rpx;
box-sizing: border-box;
background-color: #323045;
border-radius: 20rpx;
margin-bottom: 32rpx;
/deep/.img {
overflow: hidden;
border-radius: 20rpx;
}
.title {
height: 72rpx;
line-height: 35rpx;
font-size: 32rpx;
margin: 24rpx 20rpx 12rpx;
// ...
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box; //
word-wrap: break-word;
white-space: normal !important;
-webkit-line-clamp: 2; //
-webkit-box-orient: vertical;
}
.target {
height: 40rpx;
line-height: 40rpx;
color: $mainColor;
font-size: 26rpx;
margin-left: 20rpx;
}
.progressbar {
margin: 12rpx 20rpx 0;
/deep/.u-line-progress__text {
color: #000;
font-size: 16rpx;
transform: scale(0.66) // 12px 8/12 =0.666
}
}
}
}

359
pages/home/index.vue

@ -7,90 +7,100 @@
<!-- #ifdef H5 -->
<view class="nav-head-H5">
<!-- #endif -->
<u-button class="serviceButton" color="#323045" @click="getContact">{{ i18n.customerService }}</u-button>
<view class="languageBtn" @click.stop="languageShow = true">
{{ langTrue }}
</view>
<!-- popups弹窗 -->
<u-overlay :show="languageShow" @click="languageShow = false" :opacity="0">
<language-popups v-model="languageShow" :popData="languageData" @tapPopup="tapPopup">
</language-popups>
</u-overlay>
</view>
<!-- 轮播图 -->
<u-swiper class="swiper" :list="swiperList" previousMargin="48rpx" nextMargin="80rpx" circular :autoplay="true"
radius="32rpx" bgColor="rgba(0,0,0,0)" height="360rpx"></u-swiper>
<!-- 消息 -->
<view class="message">
<u-icon class="icon" name="../../static/home/ic_proclamation.png" size="60rpx" width="60rpx"></u-icon>
<!-- <view class="text">{{ i18n.homeMessage }}</view> -->
<u-notice-bar class="notice" :text="messageList" icon="" fontSize="24rpx" bgColor="#211F32" color="#fff"
direction="column" @click="go('/pages/me/notification')">
</u-notice-bar>
</view>
<!-- 三个按钮 -->
<view class="btnDiv">
<view class="item" @click="goto('recharge')">
<u--image class="img" :showLoading="true" src="../../static/home/img_recharge.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Recharge }}</view>
<u-button class="serviceButton" color="#323045" @click="getContact">{{ i18n.customerService }}
</u-button>
<view class="languageBtn" @click.stop="languageShow = true">
{{ langTrue }}
</view>
<!-- popups弹窗 -->
<u-overlay :show="languageShow" @click="languageShow = false" :opacity="0">
<language-popups v-model="languageShow" :popData="languageData" @tapPopup="tapPopup">
</language-popups>
</u-overlay>
</view>
<view class="item" @click="goto('mine')">
<u--image class="img" :showLoading="true" src="../../static/home/img_Mine.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Mine }}</view>
<!-- 轮播图 -->
<u-swiper class="swiper" :list="swiperList" previousMargin="48rpx" nextMargin="80rpx" circular
:autoplay="true" radius="32rpx" bgColor="rgba(0,0,0,0)" height="360rpx"></u-swiper>
<!-- 消息 -->
<view class="message" @click="go('/pages/me/notification')">
<u-icon class="icon" name="../../static/home/ic_proclamation.png" size="60rpx" width="60rpx"></u-icon>
<!-- <view class="text">{{ i18n.homeMessage }}</view> -->
<u-notice-bar class="notice" :text="messageList" icon="" fontSize="24rpx" bgColor="#211F32" color="#fff"
direction="column" >
</u-notice-bar>
</view>
<view class="item" @click="goto('subcription')">
<u--image class="img" :showLoading="true" src="../../static/home/img_Subcription.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Subcription }}</view>
<!-- 三个按钮 -->
<view class="btnDiv">
<view class="item" @click="goto('recharge')">
<u--image class="img" :showLoading="true" src="../../static/home/img_recharge.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Recharge }}</view>
</view>
<view class="item" @click="goto('mine')">
<u--image class="img" :showLoading="true" src="../../static/home/img_Mine.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Mine }}</view>
</view>
<view class="item" @click="goto('subcription')">
<u--image class="img" :showLoading="true" src="../../static/home/img_Subcription.png" width="144rpx"
height="144rpx"></u--image>
<view class="text">{{ i18n.Subcription }}</view>
</view>
</view>
</view>
<!-- 步数 -->
<view class="steps">
<view class="content">
<view class="title">{{ i18n.TodaySteps }}</view>
<view id="chart" :stepsNum="stepsNum" :stepTarget="stepTarget" :change:stepTarget="echarts.receive"
:change:stepsNum="echarts.receive" style="width: 280rpx;height:280rpx; font-size: 40rpx;"></view>
<!-- <canvas id="chart" ref="chart" style="width: 280rpx;height:280rpx; font-size: 40rpx;"></canvas> -->
<u-button class="button" color="#00E8A2">{{ i18n.ReceiveEarnings }}</u-button>
<!-- 步数 -->
<view class="steps">
<view class="content">
<view class="title">{{ i18n.TodaySteps }}</view>
<view id="chart" :stepsNum="stepsNum" :stepTarget="stepTarget" :change:stepTarget="echarts.receive"
:change:stepsNum="echarts.receive" style="width: 280rpx;height:280rpx; font-size: 40rpx;">
</view>
<!-- <canvas id="chart" ref="chart" style="width: 280rpx;height:280rpx; font-size: 40rpx;"></canvas> -->
<u-button class="button" color="#00E8A2" @click="closeModalShow=true">{{ i18n.ReceiveEarnings }}
</u-button>
</view>
</view>
</view>
<!-- 播放器 -->
<view class="videoList" v-for="(item, index) in videoList" :key="index" @click="playVideo(item.adText)">
<view class="videoImage" :style="`background-image: url(${baseURL+item.adImgPath});background-repeat: no-repeat;
<!-- 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>
<!-- 播放器 -->
<view class="videoList" v-for="(item, index) in videoList" :key="index" @click="playVideo(item.adText)">
<view class="videoImage" :style="`background-image: url(${baseURL+item.adImgPath});background-repeat: no-repeat;
background-size: cover;`">
<view class="VideoBg">
<view class="VideoLogo"></view>
<view class="VideoTitle">{{ item.adTitle }}</view>
<view class="VideoBg">
<view class="VideoLogo"></view>
<view class="VideoTitle">{{ item.adTitle }}</view>
</view>
</view>
</view>
</view>
<video class="video" v-show="videoShow" id="video" :enable-progress-gesture="false" autoplay="true"
:src="videoUrl" controls x5-video-player-type="h5-page" @fullscreenchange="ifStopVideo"></video>
<!-- 通知弹出层 -->
<u-popup class="popup" v-if="popupShow" round="32rpx" mode="center" @close="popupShow = false"
@open="popupShow = true" bgColor="#211F32" :customStyle="{
<video class="video" v-show="videoShow" id="video" :enable-progress-gesture="false" autoplay="true"
:src="videoUrl" controls x5-video-player-type="h5-page" @fullscreenchange="ifStopVideo"></video>
<!-- 通知弹出层 -->
<u-popup class="popup" v-if="popupShow" round="32rpx" mode="center" @close="popupShow = false"
@open="popupShow = true" bgColor="#211F32" :customStyle="{
margin: 'auto 102rpx auto 118rpx',
}">
<view class="content">
<scroll-view scroll-y="true" style="max-height: 288rpx;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<view class="" v-html="contentFirst"></view>
</scroll-view>
<u-button class="button" color="#00E8A2" @click="toRead" :throttleTime="500">OK</u-button>
</view>
</u-popup>
<view class="" @click="startStep">
<view class="content">
<scroll-view scroll-y="true" style="max-height: 288rpx;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<view class="" v-html="contentFirst"></view>
</scroll-view>
<u-button class="button" color="#00E8A2" @click="toRead" :throttleTime="500">OK</u-button>
</view>
</u-popup>
<!-- <view class="" @click="startStep">
开始记步
</view>
<view class="" @click="startStep">
步数{{stepCount}}
</view>
<!-- tabBar -->
<tab-bar :selectActive="1"></tab-bar>
</view>
</view> -->
<!-- tabBar -->
<tab-bar :selectActive="1"></tab-bar>
</view>
</template>
<script>
@ -103,7 +113,7 @@
// let videoPlayerObj = {};
let videoPlayer;
let myChart;
let StepCounter = uni.requireNativePlugin('HF-Step-module');
// let StepCounter = uni.requireNativePlugin('HF-Step-module');
export default {
name: 'home',
components: {
@ -111,8 +121,9 @@
},
data() {
return {
stepCount:'',
stepResult:'',
closeModalShow: false,
stepCount: '',
stepResult: '',
//
contentFirst: '',
//
@ -134,18 +145,23 @@
videoUrl: '',
videoList: [],
option: null,
stepsNum: 5000, //
stepsNum: 0, //
stepsNumString:'', //
stepTarget: 10000, //
myChart: null,
}
},
onLoad() {
this.stepsNum=uni.getStorageSync('coinTypeInfo').system_total_steps
this.stepsNum=parseInt(this.stepsNum)
this.stepsNumString=uni.getStorageSync('coinTypeInfo').system_total_steps
this.baseURL = constant.BASE_URL
this.getbanner();
this.noticeList();
this.getUserInfoBalance();
},
onShow() {
this.getSept()
// this.getSept()
//
// this.videoList.forEach((item, index) => {
// const VideoPlayer = uni.createVideoContext(`video-${index}`, this)
@ -171,13 +187,29 @@
}
},
methods: {
//
getUserInfoBalance() {
api.userAccount().then(res => {
})
},
//
closeConfirm() {
this.$api.updateSteps({
steps: this.stepsNumString
}).then(res => {
this.$api.receivStepsAward().then(res => {
uni.$u.toast(this.$t("markets").Succeeded)
this.closeModalShow=false
})
})
},
//
getSept() {
//
StepCounter.startStep((res) => {
console.log(123123)
console.log(res,'步数res');
this.stepCount=res.stepCount
console.log(res, '步数res');
this.stepCount = res.stepCount
//res.stepCount
}, (res) => {
console.log(res)
@ -185,12 +217,12 @@
if (callback == "stepStatus") {
let status = res.status;
if (1 == status) {
//gps
console.log('安卓gps定位服务未开')
//gps
console.log('安卓gps定位服务未开')
} else if (2 == status || 5 == status) {
//
//this.gotoSettings()
console.log('权限被禁止')
console.log('权限被禁止')
} else if (3 == status) {
//
//this.startStep()
@ -200,26 +232,26 @@
});
},
startStep(){
startStep() {
//
StepCounter.getRecordStep((res) => {
//res.result == true
//res.stepCount
console.log(res.result)
this.stepResult=res.result
this.stepResult = res.result
console.log(res.stepCount)
this.stepResult=res.stepCount
this.stepResult = res.stepCount
});
},
resStartStep(){
resStartStep() {
//
StepCounter.startRecordStep((res) => {
//res.result == true
//res.result == true
console.log(res.result)
});
},
//
getContact() {
api.customerService({}).then(res => {
@ -266,6 +298,7 @@
//
noticeList() {
api.noticeList({}).then(res => {
this.notice = res;
for (var i = 0; i < res.length; i++) {
@ -280,10 +313,12 @@
api.indexBanner({
'mark': 'APP_INDEX'
}).then(res => {
this.videoList = res
for (var i = 0; i < res.length; i++) {
this.swiperList.push(this.baseURL + res[i].adImgPath)
}
this.videoList = res
// banner
this.videoList = this.videoList.reverse();
})
},
//
@ -324,7 +359,7 @@
* @param {*} data
*/
playVideo(data) {
this.videoUrl = data.url;
this.videoUrl = data;
this.videoShow = true;
videoPlayer.requestFullScreen({
direction: 0
@ -564,75 +599,91 @@
</script>
<style lang="scss" scoped>
/deep/.u-popup__content {
background: #323045;
.u-modal__title {
color: #fff;
}
.u-modal__content__text {
text-align: center;
}
}
/deep/ .u-modal__content__text {
color: #96959E !important;
}
.main {
padding-bottom: 198rpx; // TabBar
.nav-head-H5{
position: fixed;
top: 0rpx;
height: 112rpx;
font-size: 36rpx;
color: #fff;
width: 100%;
background-color: #15141F;
z-index: 8;
border-bottom: 4rpx solid #323045;
.serviceButton {
display: inline-block;
width: 286rpx;
height: 70rpx;
line-height: 70rpx;
border-radius: 90rpx;
font-size: 28rpx;
color: #F2FE8D !important;
padding: 0;
margin: 20rpx 180rpx 0 48rpx;
vertical-align: top;
}
.languageBtn {
display: inline-block;
box-sizing: border-box;
width: 180rpx;
position: relative;
margin: 38rpx 48rpx 0 0;
font-size: 24rpx;
height: 36rpx;
line-height: 36rpx;
text-align: center;
padding-left: 12rpx;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/home/map.png);
background-repeat: no-repeat;
background-size: 36rpx;
width: 36rpx;
height: 36rpx;
.nav-head-H5 {
position: fixed;
top: 0rpx;
left: 0rpx;
}
&::after {
display: block;
position: absolute;
content: '';
background-image: url(../../static/home/pull-down.png);
background-repeat: no-repeat;
background-size: 24rpx;
width: 24rpx;
height: 24rpx;
top: 12rpx;
right: 0rpx;
height: 112rpx;
font-size: 36rpx;
color: #fff;
width: 100%;
background-color: #15141F;
z-index: 8;
border-bottom: 4rpx solid #323045;
.serviceButton {
display: inline-block;
width: 286rpx;
height: 70rpx;
line-height: 70rpx;
border-radius: 90rpx;
font-size: 28rpx;
color: #F2FE8D !important;
padding: 0;
margin: 20rpx 180rpx 0 48rpx;
vertical-align: top;
}
.languageBtn {
display: inline-block;
box-sizing: border-box;
width: 180rpx;
position: relative;
margin: 38rpx 48rpx 0 0;
font-size: 24rpx;
height: 36rpx;
line-height: 36rpx;
text-align: center;
padding-left: 12rpx;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/home/map.png);
background-repeat: no-repeat;
background-size: 36rpx;
width: 36rpx;
height: 36rpx;
top: 0rpx;
left: 0rpx;
}
&::after {
display: block;
position: absolute;
content: '';
background-image: url(../../static/home/pull-down.png);
background-repeat: no-repeat;
background-size: 24rpx;
width: 24rpx;
height: 24rpx;
top: 12rpx;
right: 0rpx;
}
}
}
}
}
.nav-head {
position: fixed;

61
pages/login/forget.vue

@ -1,7 +1,12 @@
<template>
<view class="main">
<navigation>{{ i18n.ForgotPassword }}</navigation>
<!-- #ifdef H5 -->
<view class="body">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="bodyApp">
<!-- #endif -->
<u--form class="form" :model="userInfo" :rules="rules" ref="uForm" errorType="toast">
<!-- 邮箱 -->
<u-form-item class="input-item" prop="email" ref="item1">
@ -275,6 +280,62 @@
}
.bodyApp{
margin-top: 204rpx !important;
padding: 0 64rpx;
overflow: hidden;
.form {
font-size: 32rpx;
margin-top: 48rpx;
.input-item {
height: 112rpx;
line-height: 112rpx;
background: #211F32;
margin-bottom: 48rpx;
border-radius: 32rpx;
.icon {
margin: 0 24rpx;
}
/deep/.u-form-item__body {
padding: 0;
}
.input {
height: 112rpx;
}
}
.vCode {
.getVCodeBtn {
// position: absolute;
width: 154rpx;
height: 56rpx;
right: 28rpx;
// top: 14px;
border-radius: 8px;
line-height: 56rpx;
font-size: 24rpx;
color: #00E8A2 !important;
padding: 0;
}
}
}
.button {
margin-top: 64rpx;
height: 112rpx;
line-height: 112rpx;
border-radius: 32rpx;
font-size: 32rpx;
color: #15141F !important;
}
}
}
</style>

8
pages/login/register.vue

@ -108,7 +108,7 @@
password: "",
email: '',
payPassword: '',
inviteCode: 'gyUafm',
inviteCode: '',
code: '',
lang: '',
},
@ -159,8 +159,10 @@
return this.$t("login");
},
},
onLoad() {
// console.log(this.$t('login.emailInputMessage'));
onLoad(res) {
if(res){
this.userInfo.inviteCode=res.inviteCode
}
},
watch: {
'userInfo.email': {

182
pages/markets/index.vue

@ -1,32 +1,37 @@
<template>
<view class="main">
<!-- nav -->
<!-- #ifdef APP-PLUS -->
<!-- #ifdef APP-PLUS -->
<view class="nav-head">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="nav-head-H5">
<!-- #endif -->
<view class="left">{{ i18n.TrandingPair }}</view>
<view class="middle">{{ i18n.LatestPrice }}</view>
<view class="right">{{ i18n.RiseAndfall }}</view>
</view>
<!-- 列表 -->
<view class="coinList">
<view class="coin" v-for="(item, index) in symbolList" :key="index" @click="goto(item)">
<view class="icon">
<u-icon :name="BASE_URL+item.coinSymbol+'.png'" size="40rpx" width="40rpx"></u-icon>
</view>
<view class="name">{{item.pair}}</view>
<view class="price">{{ item.price}}</view>
<view class="priceChange" :class="{ 'down': item.percent< 0 }">
{{item.percent>=0?'+'+item.percent:item.percent}}%
<view class="left">{{ i18n.TrandingPair }}</view>
<view class="middle">{{ i18n.LatestPrice }}</view>
<view class="right">{{ i18n.RiseAndfall }}</view>
</view>
<!-- 列表 -->
<!-- #ifdef APP-PLUS -->
<view class="coinList">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="coinListH5">
<!-- #endif -->
<view class="coin" v-for="(item, index) in symbolList" :key="index" @click="goto(item)">
<view class="icon">
<u-icon :name="BASE_URL+item.coinSymbol+'.png'" size="40rpx" width="40rpx"></u-icon>
</view>
<view class="name">{{item.pair}}</view>
<view class="price">{{ item.price}}</view>
<view class="priceChange" :class="{ 'down': item.percent< 0 }">
{{item.percent>=0?'+'+item.percent:item.percent}}%
</view>
</view>
</view>
<!-- tabBar -->
<tab-bar :selectActive="2"></tab-bar>
</view>
</view>
<!-- tabBar -->
<tab-bar :selectActive="2"></tab-bar>
</view>
</template>
<script>
@ -41,17 +46,17 @@
},
onLoad() {
this.BASE_URL = this.$constant.BASE_URL + '/coins/';
this.getSymbolGroup();
this.getSymbolGroup();
this.initWebSocket()
},
onShow() {
},
onHide() {
this.websock.closeSocket();
},
onHide() {
this.websock.closeSocket();
},
onUnload() {
this.websock.closeSocket();
onUnload() {
this.websock.closeSocket();
},
computed: {
i18n() {
@ -63,29 +68,29 @@
const symbolGroup = this.$api.symbolGroup({
"model": "contract"
});
symbolGroup.then(res => {
console.log(res)
symbolGroup.then(res => {
console.log(res)
this.symbolList = res.USDT
})
.catch(e => {
console.log('请求接口错误',e)
console.log('请求接口错误', e)
uni.showToast({
title: e,
icon: 'none',
duration: 2500
})
})
},
initWebSocket() {
this.websock = new this.$websocket(this.$constant.WSSURL)
var that = this
this.websock.getWebSocketMsg(data => {
this.websock.getWebSocketMsg(data => {
if (data.channel === 'conn') {
that.websock.setId(data.data);
that.websock.subPairsgroup();
@ -111,21 +116,23 @@
<style lang="scss" scoped>
.main {
padding-bottom: 198rpx; // TabBar
.nav-head-H5{
overflow: hidden;
position: fixed;
top: 0rpx;
height: 112rpx;
font-size: 24rpx;
color: #fff;
display: flex;
justify-content: space-around;
align-items: center;
width: 750rpx;
z-index: 8;
background-color: #15141F;
border-bottom: 4rpx solid #323045;
}
.nav-head-H5 {
overflow: hidden;
position: fixed;
top: 0rpx;
height: 112rpx;
font-size: 24rpx;
color: #fff;
display: flex;
justify-content: space-around;
align-items: center;
width: 750rpx;
z-index: 8;
background-color: #15141F;
border-bottom: 4rpx solid #323045;
}
.nav-head {
overflow: hidden;
position: fixed;
@ -225,8 +232,87 @@
}
}
.coinListH5 {
margin: 122rpx 32rpx 0;
overflow: hidden;
.coin {
overflow: hidden;
position: relative;
height: 64rpx;
padding: 12rpx 0;
.icon {
vertical-align: top;
overflow: hidden;
display: inline-block;
box-sizing: border-box;
width: 64rpx;
height: 64rpx;
background: #211F32;
border-radius: 20rpx;
padding: 12rpx;
}
.name {
display: inline-block;
width: 180rpx;
height: 100%;
line-height: 64rpx;
font-size: 28rpx;
margin-left: 16rpx;
}
.price {
display: inline-block;
width: 180rpx;
height: 100%;
line-height: 64rpx;
font-size: 28rpx;
color: #A1A0A8;
}
.priceChange {
position: absolute;
right: 0;
display: inline-block;
width: 164rpx;
height: 64rpx;
border-radius: 20rpx;
line-height: 64rpx;
background-color: $mainColor;
font-size: 24rpx;
text-align: right;
padding-right: 16rpx;
box-sizing: border-box;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/maskets/ic_arrow_up.png);
background-repeat: no-repeat;
background-size: contain;
width: 28rpx;
height: 28rpx;
top: 18rpx;
left: 16rpx;
}
&.down {
background-color: $assistRed;
&::before {
background-image: url(../../static/maskets/ic_arrow_down.png);
}
}
}
}
}
}
</style>

108
pages/markets/kLine.vue

@ -3,7 +3,15 @@
<!-- nav -->
<navigation>{{ symbol.pair }}</navigation>
<!-- 价格百分比 -->
<view class="header">
<!-- #ifdef APP-PLUS -->
<view class="header">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="headerH5">
<!-- #endif -->
<view class="top">
<!-- 实时价格 -->
<text class="price">{{parseFloat(marketDetail.close).toFixed(marketDetail.baseCoinScale)}}</text>
@ -182,23 +190,24 @@
},
formateDate(time) {
var date = new Date(parseInt(time * 1000));
var Y = date.getFullYear();
var M = '-' + (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
var D = '-' + date.getDate();
var h = ' ' + date.getHours();
var m = ':' + date.getMinutes();
var s = ':' + date.getSeconds();
var time;
if (this.type.indexOf('min') > -1) {
time = Y + M + D + h + m;
} else if (this.type === '1day' || this.type === '1week') {
time = Y + M + D;
} else {
time = Y + M;
}
return time;
// var date = new Date(parseInt(time * 1000));
// var Y = date.getFullYear();
// var M = '-' + (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1);
// var D = '-' + date.getDate();
// var h = ' ' + date.getHours();
// var m = ':' + date.getMinutes();
// var s = ':' + date.getSeconds();
// var time;
// if (this.type.indexOf('min') > -1) {
// time = Y + M + D + h + m;
// } else if (this.type === '1day' || this.type === '1week') {
// time = Y + M + D;
// } else {
// time = Y + M;
// }
// return time;
var time; time=this.$index.formatyymmddhhmmss(parseInt(time * 1000)) if (this.type === '1mon' ) { time = time.split(' ')[0]; time=time.substring(time.indexOf('/')+1,time.length) } else if (this.type === '1day' || this.type === '1week') { time = time.split(' ')[0]; } return time;
},
getBboList() {
const bboList = this.$api.bboList({
@ -714,6 +723,69 @@
}
}
.headerH5{
background: #000000;
margin-top: 122rpx;
padding: 0 32rpx;
.top {
height: 80rpx;
border-bottom: 2rpx solid #A1A0A8;
.price {
line-height: 80rpx;
font-size: 40rpx;
}
.percent {
vertical-align: text-top;
margin-left: 20rpx;
padding: 8rpx 20rpx;
border-radius: 8rpx;
font-size: 24rpx;
background-color: rgba($color: #F26666, $alpha: 0.2);
color: #F26666;
&.rise {
color: #00E8A2;
background-color: rgba($color: #00E8A2, $alpha: 0.2);
}
}
}
.bottom {
display: flex;
font-size: 24rpx;
.title {
margin-top: 24rpx;
line-height: 32rpx;
}
.value {
margin: 24rpx 0;
color: #A1A0A8;
}
.left {
flex: 1;
text-align: left;
}
.center {
flex: 1;
text-align: center;
}
.right {
flex: 1;
text-align: right;
}
}
}
.tab {
display: flex;

126
pages/markets/trade.vue

@ -5,48 +5,56 @@
<view class="leftMenuBtn" @click="popupShow = true">{{symbol.pair}}</view>
<view slot="right" class="right" @click="goto('kLine')"></view>
</navigation>
<!-- #ifdef APP-PLUS -->
<view class="content">
<view class="transactionSide">
<transaction v-on:onChangeType="onChangeType" :contractConfig="contractConfig" :symbol="symbol" :marketDetail="marketDetail"
:type="type" ></transaction>
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="contentH5">
<!-- #endif -->
<view class="transactionSide">
<transaction v-on:onChangeType="onChangeType" :contractConfig="contractConfig" :symbol="symbol"
:marketDetail="marketDetail" :type="type"></transaction>
</view>
<view class="positionSide">
<positionList v-on:depthChange="depthChange" :sum="sum" :marketDetail="marketDetail"
:bboList="bboList">
</positionList>
</view>
</view>
<view class="positionSide">
<positionList v-on:depthChange="depthChange" :sum="sum" :marketDetail="marketDetail" :bboList="bboList">
</positionList>
<view class="orderList">
<entrustOrderList :symbol="symbol" :marketDetail="marketDetail"></entrustOrderList>
</view>
</view>
<view class="orderList">
<entrustOrderList :symbol="symbol"></entrustOrderList>
</view>
<u-popup class="popup" :show="popupShow" mode="left" @close="popupShow = false" @open="popupShow = true"
bgColor="#15141F">
<view class="popupContent">
<!-- nav -->
<view class="head">
<text class="item">{{ i18n.TrandingPair }}</text>
<text class="center">{{ i18n.LatestPrice }}</text>
<text class="item">{{ i18n.RiseAndfall }}</text>
</view>
<!-- 列表 -->
<view class="coinList">
<scroll-view scroll-y="true" style="height: 86vh;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<view class="coin" v-for="(item, index) in symbolList" :key="index" @click="switchTo(item)">
<view class="name">{{item.pair}}</view>
<view class="price">{{ item.price}}</view>
<view class="priceChange" :class="{ 'down': item.percent< 0 }">
{{item.percent>=0?'+'+item.percent:item.percent}}%
<u-popup class="popup" :show="popupShow" mode="left" @close="popupShow = false" @open="popupShow = true"
bgColor="#15141F">
<view class="popupContent">
<!-- nav -->
<view class="head">
<text class="item">{{ i18n.TrandingPair }}</text>
<text class="center">{{ i18n.LatestPrice }}</text>
<text class="item">{{ i18n.RiseAndfall }}</text>
</view>
<!-- 列表 -->
<view class="coinList">
<scroll-view scroll-y="true" style="height: 86vh;" scroll-with-animation="true"
@touchmove.stop.prevent="">
<view class="coin" v-for="(item, index) in symbolList" :key="index" @click="switchTo(item)">
<view class="name">{{item.pair}}</view>
<view class="price">{{ item.price}}</view>
<view class="priceChange" :class="{ 'down': item.percent< 0 }">
{{item.percent>=0?'+'+item.percent:item.percent}}%
</view>
</view>
</view>
</scroll-view>
</scroll-view>
</view>
</view>
</view>
</u-popup>
<!-- tabBar -->
<tab-bar :selectActive="2" :isTarde="true"></tab-bar>
</view>
</u-popup>
<!-- tabBar -->
<tab-bar :selectActive="2" :isTarde="true"></tab-bar>
</view>
</template>
<script>
@ -57,7 +65,7 @@
popupShow: false,
symbolList: [],
contractConfig: {
leverage:[]
leverage: [10]
},
symbol: {},
marketDetail: {
@ -90,7 +98,7 @@
this.symbol = uni.getStorageSync('symbol');
if (this.symbol) {
this.getMarketDetail()
this.getBboList();
this.getBboList();
this.getContractConfig();
}
@ -102,7 +110,7 @@
},
methods: {
onChangeType(type) {
this.type = type
},
@ -133,15 +141,15 @@
this.tradeList = res
});
},
getContractConfig() {
const tradeList = this.$api.contractConfig({
"pair": this.symbol.symbol
});
tradeList.then(res => {
this.contractConfig = res
this.contractConfig.leverage=res.leverage.split(',')
});
},
getContractConfig() {
const tradeList = this.$api.contractConfig({
"pair": this.symbol.symbol
});
tradeList.then(res => {
this.contractConfig = res
this.contractConfig.leverage = res.leverage.split(',')
});
},
getBboList() {
const bboList = this.$api.bboList({
@ -231,7 +239,7 @@
*/
switchTo(item) {
this.popupShow = false;
this.getContractConfig();
this.getContractConfig();
this.websock.unSubBbo(this.symbol.symbol)
this.websock.unSubTrade(this.symbol.symbol)
this.symbol = item;
@ -296,6 +304,28 @@
}
}
.contentH5 {
margin-top: 122rpx;
padding-top: 20rpx;
padding-bottom: 40rpx;
margin-bottom: 32rpx;
background: #211F32;
display: flex;
.transactionSide {
width: 444rpx;
margin-left: 28rpx;
}
.positionSide {
width: 242rpx;
margin-left: 36rpx;
}
}
.orderList {}

7
pages/me/aboutUs.vue

@ -3,7 +3,12 @@
<!-- nav -->
<navigation :bgTransparent="true">{{ i18n.AboutUs }}</navigation>
<!-- 列表 -->
<view class="content">
<!-- #ifdef APP-PLUS -->
<view class="content">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="content" style="margin-top: 50rpx;">
<!-- #endif -->
<view class="card" v-for="(item, index) in aboutus" :key="index">
<view class="title">{{ item.title }}</view>
<view class="text" v-html="item.content"></view>

78
pages/me/accountInfo.vue

@ -2,7 +2,14 @@
<view class="main">
<!-- nav -->
<navigation>{{ i18n.AccountInfo }}</navigation>
<view class="body" @click="goto">
<!-- #ifdef APP-PLUS -->
<view class="bodyApp" @click="goto">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="body" @click="goto">
<!-- #endif -->
<!-- 修改登录密码按钮 -->
<u-button class="button" color="#211F32" throttleTime="500" id="ChangeLoginPassword">
<view class="content">{{ i18n.ChangeLoginPassword }}</view>
@ -141,6 +148,75 @@ export default {
}
.bodyApp{
overflow: hidden;
margin-top: 200rpx !important;
padding: 0 64rpx;
.button {
position: relative;
height: 112rpx;
margin-top: 32rpx;
border-radius: 32rpx;
.content {
width: 440rpx;
height: 112rpx;
line-height: 112rpx;
font-weight: 600;
font-size: 28rpx;
padding-left: 70rpx;
text-align: left;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/me/img_accountinfo01.png);
background-repeat: no-repeat;
background-size: 80rpx;
width: 80rpx;
height: 80rpx;
top: 16rpx;
left: 24rpx;
}
&::after {
display: block;
position: absolute;
content: '';
background-image: url(../../static/me/ic_arrow_g.png);
background-repeat: no-repeat;
background-size: 32rpx;
width: 32rpx;
height: 32rpx;
top: 40rpx;
right: 24rpx;
}
}
&:nth-child(2) .content::before {
background-image: url(../../static/me/img_accountinfo02.png);
}
&:nth-child(3) .content::before {
background-image: url(../../static/me/img_accountinfo03.png);
}
&:nth-child(4) .content::before {
background-image: url(../../static/me/img_accountinfo04.png);
}
}
}
}
</style>

39
pages/me/changeLoginPassword.vue

@ -2,7 +2,13 @@
<view class="main">
<!-- nav -->
<navigation>{{ i18n.ChangeLoginPassword }}</navigation>
<view class="body">
<!-- #ifdef APP-PLUS -->
<view class="bodyApp">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="body">
<!-- #endif -->
<u-input class="input" type="password" v-model="oldPassword" color="#A1A0A8" fontSize="28rpx" border="none"
:placeholder="i18n.PleaseEnterTheOldPassword">
</u-input>
@ -118,7 +124,7 @@ export default {
.button {
position: relative;
height: 112rpx;
margin-top: 680rpx;
// margin-top: 680rpx;
border-radius: 32rpx;
font-weight: 600;
color: #15141F !important;
@ -128,6 +134,35 @@ export default {
}
.bodyApp{
overflow: hidden;
margin-top: 200rpx !important;
padding: 0 64rpx;
.input {
height: 112rpx;
line-height: 112rpx;
background: #211F32;
margin: 32rpx 0;
border-radius: 32rpx;
padding-left: 32rpx !important;
}
.button {
position: relative;
height: 112rpx;
// margin-top: 680rpx;
border-radius: 32rpx;
font-weight: 600;
color: #15141F !important;
font-size: 32rpx !important;
}
}
}
</style>

34
pages/me/changeWithdrawalPassword.vue

@ -2,7 +2,12 @@
<view class="main">
<!-- nav -->
<navigation>{{ i18n.ModifyWithdrawalPassword }}</navigation>
<view class="body">
<!-- #ifdef APP-PLUS -->
<view class="bodyApp">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="body">
<!-- #endif -->
<u-input class="input" type="password" v-model="oldPassword" color="#A1A0A8" fontSize="28rpx" border="none"
:placeholder="i18n.PleaseEnterTheOldPassword">
</u-input>
@ -114,7 +119,6 @@
.button {
position: relative;
height: 112rpx;
margin-top: 680rpx;
border-radius: 32rpx;
font-weight: 600;
color: #15141F !important;
@ -124,6 +128,32 @@
}
.bodyApp{
overflow: hidden;
margin-top: 200rpx !important;
padding: 0 64rpx;
.input {
height: 112rpx;
line-height: 112rpx;
background: #211F32;
margin: 32rpx 0;
border-radius: 32rpx;
padding-left: 32rpx !important;
}
.button {
position: relative;
height: 112rpx;
border-radius: 32rpx;
font-weight: 600;
color: #15141F !important;
font-size: 32rpx !important;
}
}
}
</style>

2
pages/me/donateRecord.vue

@ -87,7 +87,7 @@
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()

261
pages/me/index.vue

@ -1,5 +1,12 @@
<template>
<view class="main">
<!-- #ifdef APP-PLUS -->
<view class="main">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="mainH5">
<!-- #endif -->
<view class="contentBody">
<!-- 用户头像和id -->
<view class="userInfo">
@ -32,18 +39,18 @@
<view class="balanceRow">
<!-- 可用余额 -->
<view class="item">
<view class="number">{{userInfoBalance.balance || 0 }} <text style="font-size: 24rpx;">{{coinTypeInfo.system_cropto_code}}</text> </view>
<view class="title">{{ i18n.Balance }}</view>
<view class="number">{{userInfoBalance.balance || 0 }} </view>
</view>
<!-- 质押余额 -->
<view class="item">
<view class="number">{{userInfoBalance.pledge || 0 }} <text style="font-size: 24rpx;">{{coinTypeInfo.system_cropto_code}}</text></view>
<view class="title">{{ i18n.Pledge }}</view>
<view class="number">{{userInfoBalance.pledge || 0 }}</view>
</view>
<!-- 合约余额 -->
<view class="item">
<view class="number">{{userInfoBalance.contract || 0 }} <text style="font-size: 24rpx;">{{coinTypeInfo.system_cropto_code}}</text></view>
<view class="title">{{ i18n.Contarct }}</view>
<view class="number">{{userInfoBalance.contract || 0 }} </view>
</view>
</view>
<!-- General -->
@ -322,23 +329,19 @@
background: #323045;
border-radius: 52rpx;
box-sizing: border-box;
padding: 20rpx 32rpx;
.item {
display: inline-block;
width: 218rpx;
height: 200rpx;
text-align: center;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
.number {
margin: 32rpx auto;
font-size: 48rpx;
display: flex;
align-items: center;
justify-content: center;
font-size: 44rpx;
}
&:last-child{
margin-bottom: 0rpx;
}
.title {
font-size: 28rpx;
@ -422,5 +425,229 @@
}
.mainH5{
padding-top: 0rpx;
padding-bottom: 198rpx; // TabBar
.contentBody {
box-sizing: border-box;
width: 100%;
background: #211F32;
border-radius: 64rpx 64rpx 0 0;
padding: 44rpx 48rpx;
overflow: hidden;
.userInfo {
height: 168rpx;
display: flex;
flex-wrap: wrap;
.headImg {
height: 160rpx;
width: 160rpx;
border-radius: 160rpx;
border: 4rpx solid #F6A609;
}
.idAndAccount {
margin-left: 40rpx;
flex: 1;
.id {
height: 56rpx;
// width: 400rpx;
font-weight: 600;
font-size: 40rpx;
margin: 16rpx 0;
}
.account {
position: relative;
// height: 56rpx;
line-height: 46rpx;
width: 390rpx;
overflow: hidden;
background: rgba(255, 188, 31, 0.1);
border-radius: 16rpx;
font-size: 24rpx;
color: #FFBC1F;
text-align: left;
padding: 4rpx 10rpx 8rpx 40rpx;
// ...
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box; //
word-wrap: break-word;
white-space: normal !important;
-webkit-line-clamp: 2; //
-webkit-box-orient: vertical;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/me/ranking.png);
background-repeat: no-repeat;
background-size: 32rpx;
width: 32rpx;
height: 32rpx;
top: 12rpx;
left: 10rpx;
}
}
}
}
.btnDiv {
margin: 32rpx 0;
.item {
display: inline-block;
width: 200rpx;
height: 190rpx;
text-align: center;
background: #323045;
border-radius: 52rpx;
box-sizing: border-box;
.img {
height: 64rpx;
width: 64rpx;
margin: 32rpx auto;
background-image: url(../../static/me/ic_u_recharge.png);
background-repeat: no-repeat;
background-size: 64rpx;
}
&:nth-child(2) {
margin: 0 26rpx;
.img {
background-image: url(../../static/me/ic_u_withdrawal.png);
}
}
&:nth-child(3) .img {
background-image: url(../../static/me/ic_u_transfer.png);
}
.title {
font-size: 26rpx;
}
}
}
.balanceRow {
margin: 32rpx 0;
background: #323045;
border-radius: 52rpx;
box-sizing: border-box;
padding: 20rpx 32rpx;
.item {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 30rpx;
.number {
font-size: 44rpx;
}
&:last-child{
margin-bottom: 0rpx;
}
.title {
font-size: 28rpx;
}
}
}
.GeneralPart {
.General {
font-size: 28rpx;
color: #A1A0A8;
}
.list {
font-size: #fff;
.item {
position: relative;
height: 116rpx;
font-size: 32rpx;
line-height: 116rpx;
border-bottom: 2rpx solid #323045;
&::after {
display: block;
position: absolute;
content: '';
background-image: url(../../static/me/arrow-right.png);
background-repeat: no-repeat;
background-size: 48rpx;
width: 48rpx;
height: 48rpx;
top: 32rpx;
right: 0rpx;
}
&:last-child {
border-bottom: none;
}
}
}
}
.logOutButton {
position: relative;
margin-top: 14rpx;
height: 112rpx;
line-height: 112rpx;
border-radius: 32rpx;
font-size: 36rpx;
color: #A1A0A8 !important;
.title {
padding-left: 80rpx;
&::before {
display: block;
position: absolute;
content: '';
background-image: url(../../static/me/ic_logout.png);
background-repeat: no-repeat;
background-size: 48rpx;
width: 48rpx;
height: 48rpx;
top: 30rpx;
left: 220rpx;
}
}
}
}
}
</style>

81
pages/me/myTeam.vue

@ -41,23 +41,17 @@
</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 v-for="item,index in userInfoObj" :key="index">
<td>{{item.email}}</td>
<td v-if="curNow==0">{{item.tranAmt}}{{coinTypeInfo.system_coin_code}}</td>
<td v-if="curNow==1">{{item.amount}}{{coinTypeInfo.system_coin_code}}</td>
<td>{{item.timestr}}</td>
</tr>
</tbody>
</table>
<u-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0"></u-empty>
<u-loadmore :status="loadStatus" :loading-text="loadingText" :loadmore-text="loadmoreText"
:nomore-text="nomoreText" v-if="userInfoObj.length" height="80" />
</view>
</view>
</view>
@ -93,6 +87,10 @@
i18n() {
return this.$t("me");
},
//
coinTypeInfo(){
return uni.getStorageSync('coinTypeInfo')
}
},
onReachBottom() {
if (!this.isLoadMore) {
@ -106,10 +104,60 @@
},
onShow() {},
methods: {
//
reset(){
this.form={
pageNumber: 1,
pageSize: 20,
}
this.isLoadMore=false //
this.loadStatus='loadmore'
this.loadingText=this.$t("login").toload
this.loadmoreText=this.$t("login").pullup
this.nomoreText=this.$t("login").Nomore
this.userInfoObj=[]
},
//
getList() {
this.isLoadMore = true
api.promotionRecords(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.isLoadMore = true
this.loadStatus = 'nomore'
} else {
this.isLoadMore = false
}
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
// this.userInfoObj = []
}
this.$forceUpdate()
})
},
//
getListRecord(){
this.isLoadMore = true
api.bonusRecords(this.form).then(res => {
if (res.content.length) {
if (this.form.pageNumber > 1) {
this.userInfoObj = this.userInfoObj.concat(res.content)
@ -152,6 +200,11 @@
},
sectionChange(index) {
this.curNow = index;
if(this.curNow==0){
this.getList()
}else{
this.getListRecord()
}
}
},
}

72
pages/me/notification.vue

@ -2,7 +2,12 @@
<view class="main">
<!-- nav -->
<navigation>{{ i18n.Notification }}</navigation>
<view class="body">
<!-- #ifdef H5 -->
<view class="bodyH5">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="body">
<!-- #endif -->
<view class="userItem" v-for="(item, index) in userInfoObj" :key="index" @click="gotoDetails(item.id)">
<u-icon class="icon" :name="'../../static/home/ic_proclamation.png'" size="60rpx" width="60rpx">
</u-icon>
@ -104,7 +109,7 @@
.body {
overflow: hidden;
margin-top: 200rpx;
margin-top: 200rpx !important;
padding: 0 24rpx;
.userItem {
@ -162,6 +167,69 @@
}
}
.bodyH5{
overflow: hidden;
margin-top: 100rpx !important;
padding: 0 24rpx;
.userItem {
position: relative;
background: #211F32;
border-radius: 32rpx;
display: flex;
margin-top: 32rpx;
height: 218rpx;
overflow: hidden;
box-sizing: border-box;
.icon {
height: 60rpx;
margin-left: 20rpx;
margin-right: 12rpx;
margin-top: 20rpx;
}
.content {
overflow: hidden;
margin-top: 20rpx;
height: 218rpx;
.title {
width: 574rpx;
height: 116rpx;
font-size: 28rpx;
padding-right: 36rpx;
// ...
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
display: -webkit-box; //
white-space: normal !important;
-webkit-line-clamp: 3; //
-webkit-box-orient: vertical;
}
.date {
width: 610rpx;
height: 64rpx;
line-height: 64rpx;
font-size: 28rpx;
color: #A1A0A8;
border-top: 1px solid #323045;
margin-top: 16rpx;
}
}
}
}
}
</style>

70
pages/me/notificationDetails.vue

@ -3,14 +3,26 @@
<!-- nav -->
<navigation>{{ i18n.NotificationDetails }}</navigation>
<view class="body">
<view class="userItem">
<view class="content">
<view class="title">{{detail.title}}</view>
<view class="article" v-html="detail.content"></view>
<view class="date">{{ i18n.Release }}: {{detail.timestr}}</view>
</view>
</view>
<!-- #ifdef H5 -->
<view class="userItemH5">
<view class="content">
<view class="title">{{detail.title}}</view>
<view class="article" v-html="detail.content"></view>
<view class="date">{{ i18n.Release }}: {{detail.timestr}}</view>
</view>
</view>
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="userItem">
<view class="content">
<view class="title">{{detail.title}}</view>
<view class="article" v-html="detail.content"></view>
<view class="date">{{ i18n.Release }}: {{detail.timestr}}</view>
</view>
</view>
<!-- #endif -->
</view>
</view>
</template>
@ -51,14 +63,52 @@
.body {
overflow: hidden;
margin-top: 200rpx;
padding: 0 24rpx;
.userItemH5{
position: relative;
background: #211F32;
border-radius: 32rpx;
margin-top: 20rpx;
overflow: hidden;
box-sizing: border-box;
.content {
overflow: hidden;
.title {
width: 640rpx;
font-size: 28rpx;
padding: 20rpx 32rpx;
}
.article {
border-top: 2rpx solid #323045;
padding: 20rpx 32rpx;
font-size: 28rpx;
color: #A1A0A8;
}
.date {
width: 610rpx;
height: 64rpx;
line-height: 64rpx;
font-size: 28rpx;
color: #A1A0A8;
border-top: 2rpx solid #323045;
margin-top: 16rpx;
padding: 0 32rpx;
}
}
}
.userItem {
position: relative;
background: #211F32;
border-radius: 32rpx;
margin-top: 20rpx;
margin-top: 130rpx;
overflow: hidden;
box-sizing: border-box;

8
pages/me/transfer.vue

@ -3,7 +3,13 @@
<!-- nav -->
<navigation>{{ i18n.Transfer }}</navigation>
<view class="body">
<view class="form">
<!-- #ifdef APP-PLUS -->
<view class="form">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="form" style="margin-top: 150rpx;">
<!-- #endif -->
<!-- coin选择框 -->
<view class="text">{{ i18n.SelectCurrency }}</view>
<view class="input-item">

17
pages/me/walletHistory.vue

@ -3,7 +3,13 @@
<!-- nav -->
<navigation>{{ i18n.WalletHistory }}</navigation>
<!-- headBtn -->
<view class="head">
<!-- #ifdef H5 -->
<view class="head" style="margin-top: 100rpx;">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="head">
<!-- #endif -->
<view class="headItem" @click="getType('exchange')" :class="{ select: form.ways === 'exchange' }">
{{ i18n.Balance }}
</view>
@ -95,6 +101,11 @@
},
methods: {
getType(type){
this.userInfoObj=[]
this.form={
pageNumber: 1,
pageSize: 20,
}
this.form.ways=type
this.getRecordList()
},
@ -117,7 +128,7 @@
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
@ -134,7 +145,7 @@
.main {
.head {
margin-top: 200rpx;
margin-top: 160rpx;
margin-left: 60rpx;
width: 632rpx;
display: flex;

2
pages/mine/mineRecord.vue

@ -100,7 +100,7 @@ export default {
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
})

11
pages/recharge/recharge.vue

@ -7,7 +7,14 @@
</view>
</navigation>
<!-- headBtn -->
<view class="head">
<!-- #ifdef H5 -->
<view class="head" style="margin-top: 120rpx;">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="head">
<!-- #endif -->
<view class="headItem" @click="pageState = 'crypto',getRechargeInfo()"
:class="{ select: pageState === 'crypto' }">
{{ i18n.CoinRecharge }}
@ -244,7 +251,7 @@
content: value,
success: (res) => {
uni.showToast({
title: "复制成功",
title: this.$t("login").copySuccess,
duration: 3000,
})
},

15
pages/recharge/rechargeRecord.vue

@ -3,7 +3,13 @@
<!-- nav -->
<navigation>{{ i18n.RechargeRecord }}</navigation>
<!-- headBtn -->
<view class="head">
<!-- #ifdef APP-PLUS -->
<view class="head">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="head" style="margin-top: 100rpx;">
<!-- #endif -->
<view class="headItem" @click="form.type = 'crypto',getList()"
:class="{ select: form.type === 'crypto' }">
{{ i18n.CoinRecharge }}
@ -127,6 +133,9 @@
console.log(e);
},
getList() {
this.form.pageNumber=1
this.form.pageSize=20
this.userInfoObj=[],
this.isLoadMore = true
api.rechargeList(this.form).then(res => {
if (res.content.length) {
@ -156,7 +165,7 @@
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
})
@ -170,7 +179,7 @@
.main {
.head {
margin-top: 200rpx;
margin-top: 160rpx;
margin-left: 60rpx;
width: 632rpx;
display: flex;

71
pages/subscription/index.vue

@ -1,7 +1,13 @@
<template>
<view class="main">
<!-- nav -->
<view class="nav-head">
<!-- #ifdef APP-PLUS -->
<view class="nav-head">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="nav-head-H5">
<!-- #endif -->
<view class="navItem" @click="pageState = 'product',getInfo('product')"
:class="{ select: pageState === 'product' }">
{{ i18n.Product }}
@ -15,8 +21,14 @@
{{ i18n.Complete }}
</view>
</view>
<!-- Product 产品列表 -->
<view class="cardList">
<!-- #ifdef APP-PLUS -->
<view class="cardList">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="cardListH5">
<!-- #endif -->
<view class="card" v-for="(item, index) in info" :key="index" @click="gotoDetails(item,index)"
v-if="pageState === 'product'">
<!-- 卡片条件渲染 -->
@ -70,7 +82,7 @@
: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-empty :text="i18n.Dataisempty" mode="data" v-if="userInfoObj.length==0" v-show="pageState=='pending'||pageState=='complete'"></u-empty>
<u-loadmore :status="loadStatus2" :loading-text="loadingText2" :loadmore-text="loadmoreText2"
:nomore-text="nomoreText2" v-if="userInfoObj.length" height="80" />
@ -173,7 +185,7 @@
} else {
this.isLoadMore2 = true
this.loadStatus2 = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
})
@ -251,6 +263,38 @@
}
.nav-head-H5{
overflow: hidden;
position: fixed;
top: 0rpx;
height: 80rpx;
font-size: 24rpx;
color: #fff;
display: flex;
justify-content: space-around;
align-items: center;
z-index: 8;
background-color: #15141F;
padding: 34rpx 48rpx 0;
.navItem {
width: 218rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
color: #0b7e60;
font-size: 28rpx;
border-bottom: 10rpx solid #0b7e60;
}
.select {
color: #00E8A2;
border-bottom: 10rpx solid #00E8A2;
}
}
.cardList {
margin-top: 212rpx;
@ -271,6 +315,23 @@
.cardListH5{
margin-top: 142rpx;
.card {
background: #211F32;
border-radius: 32rpx;
margin: 32rpx;
.dataBody {
box-sizing: border-box;
padding: 32rpx;
}
}
}
}

2
pages/withdrawal/addAddress.vue

@ -188,7 +188,7 @@ export default {
content: value,
success: (res) => {
uni.showToast({
title: "复制成功",
title: this.$t("login").copySuccess,
duration: 3000,
})
},

58
pages/withdrawal/addOrEditBankCard.vue

@ -2,7 +2,13 @@
<view class="main">
<!-- nav -->
<navigation>{{ pageState === 'addBank' ? i18n.AddBankInformation : i18n.EditBankInformation }}</navigation>
<view class="content">
<!-- #ifdef APP-PLUS -->
<view class="content">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="contentH5">
<!-- #endif -->
<u--form class="form" :model="bankInfo" :rules="rules" ref="uForm" errorType="toast">
<view class="inputBody">
<view class="title">{{ i18n.FirstName }}</view>
@ -206,6 +212,56 @@
}
}
.contentH5{
margin-top: 100rpx;
padding: 32rpx;
.inputBody {
overflow: hidden;
background: #211F32;
border-radius: 32rpx;
padding: 32rpx;
margin-bottom: 32rpx;
.title {
font-size: 32rpx;
color: #A1A0A8;
margin-bottom: 20rpx;
}
.input-item {
height: 112rpx;
background: #323045;
border-radius: 32rpx;
padding-left: 40rpx;
margin-bottom: 20rpx;
.input {
height: 112rpx;
}
}
}
.button {
position: fixed;
bottom: 40rpx;
width: 686rpx;
box-sizing: border-box;
height: 112rpx;
background: #00E8A2;
border-radius: 32rpx;
font-weight: 700;
font-size: 32rpx;
color: #15141F !important;
}
}
}
</style>

13
pages/withdrawal/chooseAddress.vue

@ -7,7 +7,14 @@
}}
</view>
</navigation>
<view class="content">
<!-- #ifdef APP-PLUS -->
<view class="content">
<!-- #endif -->
<!-- #ifdef H5 -->
<view class="content" style="margin-top: 100rpx;">
<!-- #endif -->
<view class="message-item">
{{ i18n.message4 }}
</view>
@ -136,7 +143,7 @@
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
})
@ -334,8 +341,6 @@
.buttonBg {
position: fixed;
bottom: 0rpx;
background-color: #15141F;
.button {
width: 670rpx;
box-sizing: border-box;

10
pages/withdrawal/withdrawal.vue

@ -8,7 +8,13 @@
</view>
</navigation>
<!-- headBtn -->
<view class="head">
<!-- #ifdef H5 -->
<view class="head" style="margin-top: 100rpx;">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="head">
<!-- #endif -->
<view class="headItem" @click="pageState = 'crypto',getWithConfig()"
:class="{ select: pageState === 'crypto' }">
{{ i18n.DigitalCurrency }}
@ -353,7 +359,7 @@
content: value,
success: (res) => {
uni.showToast({
title: "复制成功",
title: this.$t("login").copySuccess,
duration: 3000,
})
},

10
pages/withdrawal/withdrawalRecord.vue

@ -3,7 +3,13 @@
<!-- nav -->
<navigation>{{ i18n.WithdrawalRecord }}</navigation>
<!-- headBtn -->
<view class="head">
<!-- #ifdef H5 -->
<view class="head" style="margin-top: 100rpx;">
<!-- #endif -->
<!-- #ifdef APP-PLUS -->
<view class="head">
<!-- #endif -->
<view class="headItem" @click="form.type = 'crypto',getList()"
:class="{ select: form.type === 'crypto' }">
{{ i18n.DigitalCurrency }}
@ -163,7 +169,7 @@
} else {
this.isLoadMore = true
this.loadStatus = 'nomore'
this.userInfoObj = []
// this.userInfoObj = []
}
this.$forceUpdate()
})

23
utils/index.js

@ -50,7 +50,7 @@ var utils = {
var localTime = date.getTime()
var localOffset = date.getTimezoneOffset() * 60000 //获得当地时间偏移的毫秒数
var utc = localTime + localOffset; //utc即GMT时间
var offset = 8 //东8区
var offset = uni.getStorageSync('coinTypeInfo').system_timezone //时区拿接口的
var beijing = utc + (3600000 * offset);
date = new Date(beijing)
var Y = date.getFullYear()
@ -60,8 +60,27 @@ var utils = {
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
// return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
return Y + '/' + M + '/' + D + ' ' + h + ':' + m + ':' + s;
return D + '/' + M + '/' + Y + ' ' + h + ':' + m + ':' + s;
},
getformatyymmddhhmmss: function(time) {
var date = new Date(time)
var localTime = date.getTime()
var localOffset = date.getTimezoneOffset() * 60000 //获得当地时间偏移的毫秒数
var utc = localTime + localOffset; //utc即GMT时间
var offset = uni.getStorageSync('coinTypeInfo').system_timezone //时区拿接口的
var beijing = utc + (3600000 * offset);
date = new Date(beijing)
var Y = date.getFullYear()
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
var D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var h = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
// return Y + '-' + M + '-' + D + ' ' + h + ':' + m + ':' + s;
return D + '-' + M + ' ' + h + ':' + m + ':' + s;
},
formathhmm: function(time) {
var date = new Date(time)
var localTime = date.getTime();

4
utils/language/en_US.js

@ -85,6 +85,10 @@ export default {
Subcription: 'Subcription',
TodaySteps: "Today's steps",
ReceiveEarnings: "Receive yesterday's earnings",
WarmTips: 'Warm Tips',
WarmTipsText: 'Are you sure to receive?',
Cancel: 'Cancel',
Confirm: 'Confirm',
},

5
utils/language/vi_VN.js

@ -83,7 +83,10 @@ export default {
Subcription: 'Đăng ký',
TodaySteps: "Các bước hôm nay",
ReceiveEarnings: "Nhận thu nhập của ngày hôm qua",
WarmTips: 'Cáo nóng',
WarmTipsText: 'Anh có chắc nhận được không?',
Cancel: 'Thôi',
Confirm: 'Xác nhận',
},

9
utils/language/zh_TW.js

@ -21,7 +21,7 @@ export default {
Insufficient:'可用餘額不足',
pullup:'輕輕拉起',
toload:'嘗試加載',
Nomore:'不再',
Nomore:'沒有更多了',
// 公共字段
Login: '登錄',
SignUp: '報名',
@ -83,7 +83,10 @@ export default {
Subcription: '訂閱',
TodaySteps: "今天的步数",
ReceiveEarnings: "接收昨天的收益",
WarmTips: '溫馨提示',
WarmTipsText: '您確定要收到嗎?',
Cancel: '取消',
Confirm: '確認',
},
@ -355,7 +358,7 @@ export default {
Pledge: '保證(U)',
Contarct: '合約(U)',
General: '一般',
General: '通用',
InviteFriends: '邀請朋友',
AccountInfo: '帳戶信息',
MyTeam: '我的團隊',

2
utils/qrCode/wxqrcode.js

@ -1590,7 +1590,7 @@ var createImgTag = function(width, height, getPixel, alt) {
var createQrCodeImg = function(text, options) {
console.log(text, options)
options = options || {};
var typeNumber = options.typeNumber || 7;
var typeNumber = options.typeNumber || 10;
var errorCorrectLevel = options.errorCorrectLevel || 'M';
var size = options.size || 500;

Loading…
Cancel
Save