Browse Source

修改注册验证码改为滑动验证

master
liaoxinyu 2 years ago
parent
commit
70af09dce3
  1. BIN
      assets/img/nav-logo.png
  2. BIN
      components/tf-verify-img/img/tf-arrows.png
  3. BIN
      components/tf-verify-img/img/tf-close.png
  4. 270
      components/tf-verify-img/tf-verify-img.vue
  5. 8
      i18n/lang/de.json
  6. 12
      i18n/lang/en.json
  7. 8
      i18n/lang/fra.json
  8. 8
      i18n/lang/it.json
  9. 8
      i18n/lang/jp.json
  10. 8
      i18n/lang/kor.json
  11. 8
      i18n/lang/pt.json
  12. 8
      i18n/lang/spa.json
  13. 8
      i18n/lang/tr.json
  14. 12
      i18n/lang/zh-TW.json
  15. 61
      layout/vCode.vue
  16. 28
      main.html
  17. 5
      manifest.json
  18. 2
      pages.json
  19. 71
      pages/reg/index.vue
  20. BIN
      static/favicon.ico
  21. BIN
      static/verify/0.jpeg
  22. BIN
      static/verify/1.jpeg
  23. BIN
      static/verify/Pic0.jpg
  24. BIN
      static/verify/Pic1.jpg
  25. BIN
      static/verify/Pic2.jpg
  26. BIN
      static/verify/Pic3.jpg
  27. BIN
      static/verify/Pic4.jpg

BIN
assets/img/nav-logo.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 32 KiB

BIN
components/tf-verify-img/img/tf-arrows.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

BIN
components/tf-verify-img/img/tf-close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

270
components/tf-verify-img/tf-verify-img.vue

@ -0,0 +1,270 @@
<template>
<view class="tf-Box-Bg">
<view class="tf-Box">
<view class="tf-Box-title">
<text class="text">{{$t('homeNewText.dd3')}}</text>
<image class="tf-close" src="./img/tf-close.png" mode="aspectFit" @click.stop="close_"></image>
</view>
<canvas :style="{ width: canvasW + 'px', height: canvasH + 'px' }"
class="tf-Box-center" canvas-id="tf-verify-canvas" id="tf-verify-canvas"></canvas>
<movable-area class="tf-Box-BtnBox">
<view class="tf-Box-BtnBox-text">{{$t('homeNewText.dd4')}}</view>
<movable-view class="tf-Box-BtnNei" direction="all" :x="canvasX2" @change="changePath" @touchend="endTouch" @mouseup="endTouch">
<view class="tf-Box-BtnNei-leftBox" :style="{backgroundColor:verifyImgs[verifyIndex].color}"></view>
</movable-view>
</movable-area>
</view>
</view>
</template>
<script>
export default {
name:"tf-verify-img",
props:{
verifyImgs:{
type:Array,
default: function(){
return []
}
}
},
data() {
return {
verifyIndex:0,
canvasW:"",
canvasH:"",
canvasX2:0,//
canvasX:0,//X
ctx:false,
jgX:0,//X
dqImgPath:'',//
};
},
created() {
// this.canvasW = uni.upx2px(580);
this.canvasW = uni.upx2px(605);
this.canvasH = uni.upx2px(290);
console.log("created");
},
mounted() {
this.$nextTick(()=>{
this.init()
})
},
methods:{
// minNummaxNum
randomNum(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1,10);
break;
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
break;
default:
return 0;
break;
}
},
close_(){
this.$emit('close');
},
init(){
if(this.verifyImgs.length==0){
uni.showToast({
title: 'verifyImgs不能为空',
icon:"none"
});
return;
}
console.log("init");
this.canvasX2--;
this.canvasX = 0;
this.verifyIndex = this.randomNum(0,this.verifyImgs.length-1);
this.ctx = uni.createCanvasContext('tf-verify-canvas',this);
console.log(this.ctx);
this.jgX = this.randomNum(uni.upx2px(150),uni.upx2px(450));
this.dqImgPath = this.verifyImgs[this.verifyIndex].src;
this.huatu();
},
endTouch(){
if(Math.abs(this.canvasX-this.jgX)<=5){
this.$emit('succeed')
}else{
uni.showToast({
title: this.$t('homeNewText.dd2'),
icon:"error"
});
this.init();
}
},
huatu(){
let this_ = this;
let r = uni.upx2px(10);
let XX = this.canvasX;
let YY = uni.upx2px(100);
let cs = uni.upx2px(20);
// this_.ctx.drawImage(this_.dqImgPath,0,0,this_.canvasW,this_.canvasH);
// this_.ctx.drawImage(this_.dqImgPath,16,0,this_.canvasW,this_.canvasH);
this_.ctx.drawImage(this_.dqImgPath,9,0,this_.canvasW,this_.canvasH);
//
this_.ctx.beginPath();
this_.ctx.moveTo(-2*r+this_.jgX+cs+2*r, YY-2*r+2*r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+5.5*r, YY-2*r+2*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+5.5*r, YY-2*r+3*r, XX-2+this_.jgX*r+cs+6.5*r, YY-2*r+3*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+7.5*r, YY-2*r+3*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+8.5*r, YY-2*r+3*r, -2*r+this_.jgX+cs+8.5*r, YY-2*r+2*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+12*r, YY-2*r+2*r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+12*r, YY-2*r+11*r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+8.5*r, YY-2*r+11*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+8.5*r, YY-2*r+12*r, -2*r+this_.jgX+cs+7.5*r, YY-2*r+12*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+6.5*r, YY-2*r+12*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+5.5*r, YY-2*r+12*r, -2*r+this_.jgX+cs+5.5*r, YY-2*r+11*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+2*r, YY-2*r+11*r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+2*r, YY-2*r+8*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+3*r, YY-2*r+8*r, -2*r+this_.jgX+cs+3*r, YY-2*r+7*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+3*r, YY-2*r+6*r);
this_.ctx.arcTo(-2*r+this_.jgX+cs+3*r, YY-2*r+5*r, -2*r+this_.jgX+cs+2*r, YY-2*r+5*r, r);
this_.ctx.lineTo(-2*r+this_.jgX+cs+2*r, YY-2*r+2*r);
this_.ctx.shadowBlur=10;
this_.ctx.shadowColor="#ffffff";
this_.ctx.fillStyle = "rgba(0,0,0,0.5)";
this_.ctx.fill();
this_.ctx.restore();
//
this_.ctx.beginPath();
this_.ctx.save();
this_.ctx.moveTo(XX-2*r+cs+2*r, YY-2*r+2*r);
this_.ctx.lineTo(XX-2*r+cs+5.5*r, YY-2*r+2*r);
this_.ctx.arcTo(XX-2*r+cs+5.5*r, YY-2*r+3*r, XX-2*r+cs+6.5*r, YY-2*r+3*r, r);
this_.ctx.lineTo(XX-2*r+cs+7.5*r, YY-2*r+3*r);
this_.ctx.arcTo(XX-2*r+cs+8.5*r, YY-2*r+3*r, XX-2*r+cs+8.5*r, YY-2*r+2*r, r);
this_.ctx.lineTo(XX-2*r+cs+12*r, YY-2*r+2*r);
this_.ctx.lineTo(XX-2*r+cs+12*r, YY-2*r+11*r);
this_.ctx.lineTo(XX-2*r+cs+8.5*r, YY-2*r+11*r);
this_.ctx.arcTo(XX-2*r+cs+8.5*r, YY-2*r+12*r, XX-2*r+cs+7.5*r, YY-2*r+12*r, r);
this_.ctx.lineTo(XX-2*r+cs+6.5*r, YY-2*r+12*r);
this_.ctx.arcTo(XX-2*r+cs+5.5*r, YY-2*r+12*r, XX-2*r+cs+5.5*r, YY-2*r+11*r, r);
this_.ctx.lineTo(XX-2*r+cs+2*r, YY-2*r+11*r);
this_.ctx.lineTo(XX-2*r+cs+2*r, YY-2*r+8*r);
this_.ctx.arcTo(XX-2*r+cs+3*r, YY-2*r+8*r, XX-2*r+cs+3*r, YY-2*r+7*r, r);
this_.ctx.lineTo(XX-2*r+cs+3*r, YY-2*r+6*r);
this_.ctx.arcTo(XX-2*r+cs+3*r, YY-2*r+5*r, XX-2*r+cs+2*r, YY-2*r+5*r, r);
this_.ctx.lineTo(XX-2*r+cs+2*r, YY-2*r+2*r);
this_.ctx.shadowBlur=10;
this_.ctx.shadowColor="#ffffff";
this_.ctx.fill();
this_.ctx.clip();
// this_.ctx.drawImage(this_.dqImgPath,this_.canvasX-this_.jgX,0,this_.canvasW,this_.canvasH);
this_.ctx.drawImage(this_.dqImgPath,this_.canvasX-this_.jgX+16,0,this_.canvasW,this_.canvasH);
this_.ctx.restore();
//
this_.ctx.draw();
},
changePath(e){
// #ifdef APP-NVUE
this.canvasX = e.detail.x;
// #endif
// #ifndef APP-NVUE
this.canvasX = e.target.x;
// #endif
this.huatu();
}
}
}
</script>
<style lang="less">
.tf-Box-Bg{
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 100;
background-color: rgba(0,0,0,.3);
display: flex;
align-items: center;
justify-content: center;
color: #000;
.tf-Box{
width: 640upx;
height: 584upx;
background-color: #fff;
border-radius: 6upx;
box-shadow: 0 0 50upx 0upx rgba(0,0,0,.2);
.tf-Box-title{
height: 100upx;
line-height: 100upx;
// padding: 0 32upx;
padding: 0 16px;
border-bottom: 1px solid #E1E3E9;
flex-direction: row;
display: flex;
align-items: center;
justify-content: space-between;
.text{
font-size: 32upx;
flex: 1;
}
.tf-close{
width: 28upx;
height: 28upx;
}
}
.tf-Box-center{
margin-top: 30upx;
margin-bottom: 30upx;
align-self: center;
// padding: 0 32upx;
padding: 0 16px;
}
.tf-Box-BtnBox{
margin-top: 30upx;
margin-bottom: 30upx;
align-self: center;
width: 580upx;
height: 75upx;
line-height: 75upx;
text-align: center;
font-size: 28upx;
border-radius: 6upx;
border: 1px solid #E1E3E9;
background-color: #F7F8F9;
overflow: hidden;
position: relative;
margin: 30upx auto;
.tf-Box-BtnBox-text{
width: 100%;
height: 75upx;
position: absolute;
top: 0;
left: 0;
color: #424649;
text-align: center;
}
.tf-Box-BtnNei{
height: 75upx;
width: 75upx;
background-color: #fff;
box-shadow: 0 0 10upx 0upx rgba(0,0,0,.2);
background-image: url(img/tf-arrows.png);
background-size: 34upx;
background-position: center;
background-repeat: no-repeat;
.tf-Box-BtnNei-leftBox{
position: absolute;
top: 0;
left: -580upx;
width: 580upx;
height: 100%;
}
}
}
}
}
</style>

8
i18n/lang/de.json

@ -742,7 +742,7 @@
"a9": "mehrere", "a9": "mehrere",
"b0": "Bist du sicher, dass du dich einloggen willst?", "b0": "Bist du sicher, dass du dich einloggen willst?",
"b1": "Anmelden oder registrieren", "b1": "Anmelden oder registrieren",
"b2": "Hallo, willkommen bei AMATAK", "b2": "Hallo, willkommen bei KOOScoin",
"b3": "Betrag", "b3": "Betrag",
"b4": "Index der Spots", "b4": "Index der Spots",
"b5": "Index der Verträge", "b5": "Index der Verträge",
@ -864,6 +864,10 @@
"dd5": "Derivate", "dd5": "Derivate",
"dd6": "Sie können Verträge auf über 100 Kryptowährungen mit bis zu 150-facher Hebelwirkung handeln und hohe Gewinne erzielen", "dd6": "Sie können Verträge auf über 100 Kryptowährungen mit bis zu 150-facher Hebelwirkung handeln und hohe Gewinne erzielen",
"dd7": "Hilfezentrum", "dd7": "Hilfezentrum",
"ee6": "Grafische Überprüfung" "ee6": "Grafische Überprüfung",
"dd1": "Verifizierung erfolgreich",
"dd2": "Verifizierung fehlgeschlagen",
"dd3": "Bitte führen Sie die Sicherheitsüberprüfung durch",
"dd4": "Schieben Sie den Schieberegler, um das Rätsel zu lösen"
} }
} }

12
i18n/lang/en.json

@ -9,7 +9,7 @@
"using": "payments using", "using": "payments using",
"crypto": "crypto", "crypto": "crypto",
"Why": "Why do you choose to buy", "Why": "Why do you choose to buy",
"digital": "digital currency in CLSCoin", "digital": "digital currency in KOOScoin",
"believe": "We believe Cryptolly is here to stay — and that a future worth building is one which opens its doors and invites everyone in ", "believe": "We believe Cryptolly is here to stay — and that a future worth building is one which opens its doors and invites everyone in ",
"help": "We help you make sense of the coins, the terms, the dense charts and market changes", "help": "We help you make sense of the coins, the terms, the dense charts and market changes",
"Clarity": "Clarity", "Clarity": "Clarity",
@ -18,7 +18,7 @@
"convenient": "convenient", "convenient": "convenient",
"key": "One key transaction, more convenient operation", "key": "One key transaction, more convenient operation",
"technology": "Our technology", "technology": "Our technology",
"CLSCoin": "CLSCoin adopts advanced technologies such as GSLB, distributed server cluster ,distributed storage, high speed memory trading engine with multiple machines, cold wallet, hot wallet with private key offline,etc.,to provide our customers with secure,stable and reliable digital asset trading services through multiple terminals such as web,mobile and desktop terminals ", "CLSCoin": "KOOScoin adopts advanced technologies such as GSLB, distributed server cluster ,distributed storage, high speed memory trading engine with multiple machines, cold wallet, hot wallet with private key offline,etc.,to provide our customers with secure,stable and reliable digital asset trading services through multiple terminals such as web,mobile and desktop terminals ",
"guide": "Beginner's guide", "guide": "Beginner's guide",
"Wear": "Wear an account", "Wear": "Wear an account",
"Get": "Register a trading account", "Get": "Register a trading account",
@ -794,7 +794,7 @@
"a9": "multiple", "a9": "multiple",
"b0": "Are you sure you want to log out?", "b0": "Are you sure you want to log out?",
"b1": "Sign in or register", "b1": "Sign in or register",
"b2": "Hi, welcome to CLSCoin", "b2": "Hi, welcome to KOOScoin",
"b3": "amount", "b3": "amount",
"b4": "spot index ", "b4": "spot index ",
"b5": "Contract index", "b5": "Contract index",
@ -919,6 +919,10 @@
"dd5": "Derivatives", "dd5": "Derivatives",
"dd6": "You can trade contracts on 100+ cryptocurrencies with up to 150x leverage and earn high profits", "dd6": "You can trade contracts on 100+ cryptocurrencies with up to 150x leverage and earn high profits",
"dd7": "Help Center", "dd7": "Help Center",
"ee6": "Graphical verification" "ee6": "Graphical verification",
"dd1": "Verification successful",
"dd2": "verification failed",
"dd3": "Please complete the security verification",
"dd4": "Slide the slider to complete the puzzle"
} }
} }

8
i18n/lang/fra.json

@ -742,7 +742,7 @@
"a9": "Multiple", "a9": "Multiple",
"b0": "Tu es sûr de vouloir quitter la connexion?", "b0": "Tu es sûr de vouloir quitter la connexion?",
"b1": "Connexion ou inscription", "b1": "Connexion ou inscription",
"b2": "Hi, bienvenue à AMATAK", "b2": "Hi, bienvenue à KOOScoin",
"b3": "Quantité", "b3": "Quantité",
"b4": "Indice au comptant", "b4": "Indice au comptant",
"b5": "Indices contractuels", "b5": "Indices contractuels",
@ -864,6 +864,10 @@
"dd5": "Dérivés", "dd5": "Dérivés",
"dd6": "Vous pouvez négocier des contrats sur plus de 100 crypto-monnaies avec un effet de levier jusqu'à 150x et réaliser des bénéfices élevés", "dd6": "Vous pouvez négocier des contrats sur plus de 100 crypto-monnaies avec un effet de levier jusqu'à 150x et réaliser des bénéfices élevés",
"dd7": "Centre d'aide", "dd7": "Centre d'aide",
"ee6": "Vérification graphique" "ee6": "Vérification graphique",
"dd1": "Vérification réussie",
"dd2": "échec de la vérification",
"dd3": "Veuillez compléter la vérification de sécurité",
"dd4": "Faites glisser le curseur pour terminer le puzzle"
} }
} }

8
i18n/lang/it.json

@ -740,7 +740,7 @@
"a9": "multiplo", "a9": "multiplo",
"b0": "Sei sicuro di voler uscire di casa?", "b0": "Sei sicuro di voler uscire di casa?",
"b1": "Firma o registro", "b1": "Firma o registro",
"b2": "Ciao, benvenuto a AMATAK", "b2": "Ciao, benvenuto a KOOScoin",
"b3": "importo", "b3": "importo",
"b4": "indice dei punti", "b4": "indice dei punti",
"b5": "Indice dei contratti", "b5": "Indice dei contratti",
@ -864,6 +864,10 @@
"dd5": "Derivati", "dd5": "Derivati",
"dd6": "Puoi scambiare contratti su oltre 100 criptovalute con una leva fino a 150x e ottenere profitti elevati", "dd6": "Puoi scambiare contratti su oltre 100 criptovalute con una leva fino a 150x e ottenere profitti elevati",
"dd7": "Centro assistenza", "dd7": "Centro assistenza",
"ee6": "Verifica grafica" "ee6": "Verifica grafica",
"dd1": "Verifica riuscita",
"dd2": "verifica fallita",
"dd3": "Completa la verifica di sicurezza",
"dd4": "Fai scorrere il cursore per completare il puzzle"
} }
} }

8
i18n/lang/jp.json

@ -740,7 +740,7 @@
"a9": "倍数", "a9": "倍数",
"b0": "本当にログアウトしますか?", "b0": "本当にログアウトしますか?",
"b1": "ログインまたは登録", "b1": "ログインまたは登録",
"b2": "Hi、AMATAKをご利用ください。", "b2": "Hi、KOOScoinをご利用ください。",
"b3": "量を測る", "b3": "量を測る",
"b4": "現物指数", "b4": "現物指数",
"b5": "契約指数", "b5": "契約指数",
@ -864,6 +864,10 @@
"dd5": "デリバティブ", "dd5": "デリバティブ",
"dd6": "最大 150 倍のレバレッジで 100 以上の暗号通貨の契約を取引し、高い利益を得ることができます", "dd6": "最大 150 倍のレバレッジで 100 以上の暗号通貨の契約を取引し、高い利益を得ることができます",
"dd7": "ヘルプセンター", "dd7": "ヘルプセンター",
"ee6": "グラフィカルな検証" "ee6": "グラフィカルな検証",
"dd1": "検証成功",
"dd2": "検証に失敗しました",
"dd3": "セキュリティ検証を完了してください",
"dd4": "スライダーをスライドさせてパズルを完成させます"
} }
} }

8
i18n/lang/kor.json

@ -740,7 +740,7 @@
"a9":"배수", "a9":"배수",
"b0":"로그 인 을 종료 하 시 겠 습 니까?", "b0":"로그 인 을 종료 하 시 겠 습 니까?",
"b1":"등록", "b1":"등록",
"b2":"안녕하세요,AMATAK 사용 을 환영 합 니 다.", "b2":"안녕하세요,KOOScoin 사용 을 환영 합 니 다.",
"b3":"재다.", "b3":"재다.",
"b4":"현물 지수", "b4":"현물 지수",
"b5":"계약 지수", "b5":"계약 지수",
@ -864,6 +864,10 @@
"dd5": "파생상품", "dd5": "파생상품",
"dd6": "최대 150배의 레버리지로 100개 이상의 암호화폐 계약을 거래하고 높은 수익을 올릴 수 있습니다", "dd6": "최대 150배의 레버리지로 100개 이상의 암호화폐 계약을 거래하고 높은 수익을 올릴 수 있습니다",
"dd7": "지원 센터", "dd7": "지원 센터",
"ee6": "그래픽 검증" "ee6": "그래픽 검증",
"dd1": "확인 성공",
"dd2": "확인 실패",
"dd3": "보안인증을 완료해주세요",
"dd4": "슬라이더를 밀어서 퍼즐을 완성하세요"
} }
} }

8
i18n/lang/pt.json

@ -740,7 +740,7 @@
"a9":"Múltiplos", "a9":"Múltiplos",
"b0":"Tem certeza que quer fazer logon?", "b0":"Tem certeza que quer fazer logon?",
"b1":"Assinar ou registar", "b1":"Assinar ou registar",
"b2":"Olá, bem-vindo Ao Bingvet.", "b2":"Olá, bem-vindo Ao KOOScoin.",
"b3":"Montante", "b3":"Montante",
"b4":"índice de Pontos", "b4":"índice de Pontos",
"b5":"Índice de contratos", "b5":"Índice de contratos",
@ -862,6 +862,10 @@
"dd5": "Derivados", "dd5": "Derivados",
"dd6": "Você pode negociar contratos em mais de 100 criptomoedas com alavancagem de até 150x e obter lucros elevados", "dd6": "Você pode negociar contratos em mais de 100 criptomoedas com alavancagem de até 150x e obter lucros elevados",
"dd7": "Centro de ajuda", "dd7": "Centro de ajuda",
"ee6": "Verificação gráfica" "ee6": "Verificação gráfica",
"dd1": "Verificação bem-sucedida",
"dd2": "falha na verificação",
"dd3": "Por favor, complete a verificação de segurança",
"dd4": "Deslize o controle deslizante para completar o quebra-cabeça"
} }
} }

8
i18n/lang/spa.json

@ -740,7 +740,7 @@
"a9":"Múltiplo", "a9":"Múltiplo",
"b0":"¿Estás seguro de que quieres desconectarte?", "b0":"¿Estás seguro de que quieres desconectarte?",
"b1":"Iniciar sesión o registrarse", "b1":"Iniciar sesión o registrarse",
"b2":"Hola, bienvenido a AMATAK.", "b2":"Hola, bienvenido a KOOScoin.",
"b3":"Cantidad", "b3":"Cantidad",
"b4":"Índice al contado", "b4":"Índice al contado",
"b5":"Índice de contratos", "b5":"Índice de contratos",
@ -864,6 +864,10 @@
"dd5": "Derivados", "dd5": "Derivados",
"dd6": "Puede negociar contratos en más de 100 criptomonedas con un apalancamiento de hasta 150x y obtener grandes ganancias", "dd6": "Puede negociar contratos en más de 100 criptomonedas con un apalancamiento de hasta 150x y obtener grandes ganancias",
"dd7": "Centro de ayuda", "dd7": "Centro de ayuda",
"ee6": "Verificación gráfica" "ee6": "Verificación gráfica",
"dd1": "Verificación exitosa",
"dd2": "Fallo en la verificación",
"dd3": "Por favor completa la verificación de seguridad.",
"dd4": "Desliza el control deslizante para completar el rompecabezas."
} }
} }

8
i18n/lang/tr.json

@ -738,7 +738,7 @@
"a9": "çoklu", "a9": "çoklu",
"b0": "Oturumu kapatmak istediğinizden emin misiniz?", "b0": "Oturumu kapatmak istediğinizden emin misiniz?",
"b1": "Giriş yap veya kayıt ol", "b1": "Giriş yap veya kayıt ol",
"b2": "Merhaba, AMATAK'e hoş geldiniz", "b2": "Merhaba, KOOScoin'e hoş geldiniz",
"b3": "miktar", "b3": "miktar",
"b4": "nokta indeksi", "b4": "nokta indeksi",
"b5": "Sözleşme endeksi", "b5": "Sözleşme endeksi",
@ -862,6 +862,10 @@
"dd5": "Türevler", "dd5": "Türevler",
"dd6": "100'den fazla kripto para birimindeki sözleşmelerle 150 katına kadar kaldıraçla işlem yapabilir ve yüksek kar elde edebilirsiniz", "dd6": "100'den fazla kripto para birimindeki sözleşmelerle 150 katına kadar kaldıraçla işlem yapabilir ve yüksek kar elde edebilirsiniz",
"dd7": "Yardım Merkezi", "dd7": "Yardım Merkezi",
"ee6": "Grafiksel doğrulama" "ee6": "Grafiksel doğrulama",
"dd1": "Doğrulama başarılı",
"dd2": "doğrulama başarısız oldu",
"dd3": "Lütfen güvenlik doğrulamasını tamamlayın",
"dd4": "Bulmacayı tamamlamak için kaydırıcıyı kaydırın"
} }
} }

12
i18n/lang/zh-TW.json

@ -8,7 +8,7 @@
"using": "支付使用", "using": "支付使用",
"crypto": "加密", "crypto": "加密",
"Why": "你為什麼選擇購買", "Why": "你為什麼選擇購買",
"digital": "CLSCoin的數字貨幣", "digital": "KOOScoin的數字貨幣",
"believe": "我們相信加密貨幣將一直存在--是一个值得建立的未來同時是一個敞開著并邀請每個人都加入的大門", "believe": "我們相信加密貨幣將一直存在--是一个值得建立的未來同時是一個敞開著并邀請每個人都加入的大門",
"help": "我們幫助你理解貨幣、條款、密集的圖表和市場變化", "help": "我們幫助你理解貨幣、條款、密集的圖表和市場變化",
"Clarity": "清晰度", "Clarity": "清晰度",
@ -17,7 +17,7 @@
"convenient": "方便", "convenient": "方便",
"key": "一鍵交易,操作更方便", "key": "一鍵交易,操作更方便",
"technology": "我們的技術", "technology": "我們的技術",
"CLSCoin": "CLSCoin採用GSLB、分佈式存儲、多機高速內存交易引擎、冷錢包、離線私鑰熱錢包等先進技術,通過網絡、移動和台式終端等多個終端為客戶提供安全、穩定和可靠的數字資產交易服務", "CLSCoin": "KOOScoin採用GSLB、分佈式存儲、多機高速內存交易引擎、冷錢包、離線私鑰熱錢包等先進技術,通過網絡、移動和台式終端等多個終端為客戶提供安全、穩定和可靠的數字資產交易服務",
"guide": "初學者指南", "guide": "初學者指南",
"Wear": "記下來", "Wear": "記下來",
"Get": "注册交易帳戶", "Get": "注册交易帳戶",
@ -792,7 +792,7 @@
"a9": "倍數", "a9": "倍數",
"b0": "確定要登出嗎?", "b0": "確定要登出嗎?",
"b1": "登入或注册", "b1": "登入或注册",
"b2": "Hi,歡迎使用CLSCoin", "b2": "Hi,歡迎使用KOOScoin",
"b3": "量", "b3": "量",
"b4": "現貨指數", "b4": "現貨指數",
"b5": "合約指數", "b5": "合約指數",
@ -916,6 +916,10 @@
"dd5": "衍生性商品", "dd5": "衍生性商品",
"dd6": "您可以高達150倍的槓桿率交易100+加密貨幣的合約,賺取高額收益", "dd6": "您可以高達150倍的槓桿率交易100+加密貨幣的合約,賺取高額收益",
"dd7": "幫助中心", "dd7": "幫助中心",
"ee6": "圖形驗證" "ee6": "圖形驗證",
"dd1": "驗證成功",
"dd2": "驗證失敗",
"dd3": "請完成安全驗證",
"dd4": "滑動滑桿完成拼圖"
} }
} }

61
layout/vCode.vue

@ -45,6 +45,25 @@ export default {
type: String, type: String,
require: false, require: false,
}, },
sendAAA: {
type: Boolean
}
},
watch: {
sendAAA(n,o){
if(n){
console.log(n, '-------');
// setTimeout(()=>{
// this.inSend = false;
// this.load = true;
// this.countDown();
// this.$toast(this.$t('common.sendSuccess'));
// this.$emit('changeSendAAA', false)
// }, 500)
// return;
this.send();
}
}
}, },
components:{ components:{
vButton vButton
@ -74,32 +93,54 @@ export default {
return return
} }
if (this.load) return; if (this.load) return;
this.inSend = true; // this.inSend = true;
//this.url //this.url
// serve.post(this.url, this.data)
// .then((res) => {
// if(res.code=='4001'){
// this.inSend = false
// this.$toast(res.message);
// //
// if(this.url=='/register/sendEmailCode'){
// //
// //
// this.$emit('reGetGraphChe')
// }
// }else{
// this.inSend = false;
// this.load = true;
// this.countDown();
// this.$toast(this.$t('common.sendSuccess'));
// }
// })
// .catch(() => {
// this.inSend = false;
// });
if(this.url==="/register/sendEmailCode" && !this.sendAAA){
this.$emit('changeSLider', true);
}else{
this.inSend = true;
serve.post(this.url, this.data) serve.post(this.url, this.data)
// Member.sendEmailCode(this.data)
.then((res) => { .then((res) => {
// ss
if(res.code=='4001'){ if(res.code=='4001'){
this.inSend = false this.inSend = false
this.$toast(res.message); this.$toast(res.message);
//
if(this.url=='/register/sendEmailCode'){
//
//
this.$emit('reGetGraphChe')
}
}else{ }else{
this.inSend = false; this.inSend = false;
this.load = true; this.load = true;
this.countDown(); this.countDown();
this.$toast(this.$t('common.sendSuccess')); this.$toast(this.$t('common.sendSuccess'));
this.$emit('changeSendAAA', false)
} }
}) })
.catch(() => { .catch(() => {
this.inSend = false; this.inSend = false;
}); });
}
}, },
countDown() { countDown() {
clearInterval(this.Interval); clearInterval(this.Interval);

28
main.html

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link rel="icon" href="/static/favicon.ico">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<!-- Open Graph data -->
<!-- <meta property="og:title" content="Title Here" /> -->
<!-- <meta property="og:url" content="http://www.example.com/" /> -->
<!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
<!-- <meta property="og:description" content="Description Here" /> -->
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

5
manifest.json

@ -1,5 +1,5 @@
{ {
"name" : "CLSCoin", "name" : "KOOScoin",
"appid" : "__UNI__96B2074", "appid" : "__UNI__96B2074",
"description" : "", "description" : "",
"versionName" : "1.0.0", "versionName" : "1.0.0",
@ -113,6 +113,7 @@
"base" : "./" "base" : "./"
}, },
"domain" : "https://app.clscoin.com", "domain" : "https://app.clscoin.com",
"title" : "CLSCoin" "title" : "KOOScoin",
"template" : "main.html"
} }
} }

2
pages.json

@ -222,7 +222,7 @@
"titleNView": false "titleNView": false
}, },
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
"navigationBarTitleText": "CLSCoin", "navigationBarTitleText": "KOOScoin",
"navigationBarBackgroundColor": "#007AFF", "navigationBarBackgroundColor": "#007AFF",
"backgroundColor": "#FFFFFF" "backgroundColor": "#FFFFFF"
}, },

71
pages/reg/index.vue

@ -71,7 +71,7 @@
</template> </template>
</view> </view>
<!--图形验证码--> <!--图形验证码-->
<view class="form-item border-b m-b-md p-b-xs"> <view class="form-item border-b m-b-md p-b-xs" v-if="0">
<view class="label m-b-xs">{{$t('homeNewText.ee6')}}</view> <view class="label m-b-xs">{{$t('homeNewText.ee6')}}</view>
<v-input class="color-light" v-model="form.gr_code" :placeholder="$t('homeNewText.ee6')"> <v-input class="color-light" v-model="form.gr_code" :placeholder="$t('homeNewText.ee6')">
<template #right> <template #right>
@ -86,27 +86,12 @@
<v-input class="color-light" v-model="form.code" :placeholder="$t('reg.a7')"> <v-input class="color-light" v-model="form.code" :placeholder="$t('reg.a7')">
<template #right> <template #right>
<!-- 手机 --> <!-- 手机 -->
<v-code <v-code v-show="form.type==1" url="/register/sendSmsCode" :data="{phone:form.account,country_code:country_code || 86,type:1}"></v-code>
v-show="form.type==1"
url="/register/sendSmsCode"
:data="{
phone:form.account,
country_code:country_code || 86,
type:1
}"
></v-code>
<!-- 邮箱 --> <!-- 邮箱 -->
<v-code <!-- <v-code url="/register/sendEmailCode" :data="{email:form.account,type:1,gc_code: form.gr_code,gc_key: gc_key}"
url="/register/sendEmailCode" v-show="form.type==2" @reGetGraphChe="reGetGraphChe"></v-code> -->
:data="{ <v-code url="/register/sendEmailCode" :data="{email:form.account,type:1,gc_key: gc_key}"
email:form.account, v-show="form.type==2" @changeSLider="changeSLider" :sendAAA="sendAAA" @changeSendAAA="sendAAA = false"></v-code>
type:1,
gc_code: form.gr_code,
gc_key: gc_key
}"
v-show="form.type==2"
@reGetGraphChe="reGetGraphChe"
></v-code>
</template> </template>
</v-input> </v-input>
</view> </view>
@ -146,11 +131,12 @@
<v-link class="color-sell" v-if="agreement.clause" :to="{path:'/pages/notice/detail',query:{id:agreement.clause.id}}">{{agreement.clause.title}}</v-link> <v-link class="color-sell" v-if="agreement.clause" :to="{path:'/pages/notice/detail',query:{id:agreement.clause.id}}">{{agreement.clause.title}}</v-link>
</view> </view>
</view> </view>
<tf-verify-img @succeed="chenggong" @close="showVerify = false" v-if="showVerify" :verifyImgs="imgs"></tf-verify-img>
<v-button type="blue" block class="w-max m-b-md rounded-md" @click="register">{{$t('reg.b9')}}</v-button> <v-button type="blue" block class="w-max m-b-md rounded-md" @click="register">{{$t('reg.b9')}}</v-button>
</view> </view>
</view> </view>
<view class="m-x-lg p-x-lg"> <view class="m-x-lg p-x-lg">
<view class="p-y-md border-t fn-center"> <view class="p-y-md border-t fn-center d-flex" style="justify-content: center;">
{{$t('reg.b9')}} {{$t('reg.b9')}}
<v-link class="color-sell" to="/pages/login/index">{{$t('reg.c1')}}</v-link> <v-link class="color-sell" to="/pages/login/index">{{$t('reg.c1')}}</v-link>
</view> </view>
@ -161,6 +147,8 @@
<script> <script>
import Member from "@/api/member"; import Member from "@/api/member";
import app from "app.js"; import app from "app.js";
import tfVerifyImg from '@/components/tf-verify-img/tf-verify-img.vue';
export default { export default {
data() { data() {
return { return {
@ -182,13 +170,37 @@ export default {
agreement: {}, agreement: {},
country_code:'', country_code:'',
showInvite_code: true, showInvite_code: true,
showVerify:false,
imgs:[{
src:'/static/verify/0.jpeg',
color:'#38a7b7'
},{
src:'/static/verify/1.jpeg',
color:'#485967'
},{
src:'/static/verify/Pic0.jpg',
color:'#2f4b35'
},{
src:'/static/verify/Pic1.jpg',
color:'#4c4727'
},{
src:'/static/verify/Pic2.jpg',
color:'#251731'
},{
src:'/static/verify/Pic3.jpg',
color:'#969897'
},{
src:'/static/verify/Pic4.jpg',
color:'#c59a70'
}],
sendAAA: false,
hideImg: false hideImg: false
}; };
}, },
computed: { computed: {
}, },
components:{}, components:{tfVerifyImg},
methods: { methods: {
register() { register() {
if (!this.form.account) { if (!this.form.account) {
@ -306,6 +318,19 @@ export default {
this.agreement = res.data; this.agreement = res.data;
}); });
}, },
//
changeSLider(){
this.showVerify = true;
},
open(){
console.log("open");
this.showVerify = true;
},
chenggong(){
uni.showToast({title: this.$t('homeNewText.dd1')});
this.showVerify = false;
this.sendAAA = true;
}
}, },
mounted() { mounted() {
this.gett_gc_code(); this.gett_gc_code();

BIN
static/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
static/verify/0.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

BIN
static/verify/1.jpeg

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

BIN
static/verify/Pic0.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
static/verify/Pic1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
static/verify/Pic2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

BIN
static/verify/Pic3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
static/verify/Pic4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Loading…
Cancel
Save