xiaomei 11 kuukautta sitten
vanhempi
sitoutus
c80a2dbb1f

BIN
public/favicon.ico


+ 1 - 1
public/index.html

@@ -5,7 +5,7 @@
     <meta http-equiv="X-UA-Compatible" content="IE=edge" />
     <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
     <link rel="icon" href="<%= BASE_URL %>favicon.ico" />
-    <title>掘金路</title>
+    <title>RWACHA</title>
   </head>
   <style>
     html,

BIN
public/logo.png


+ 85 - 63
src/api/home.js

@@ -7,7 +7,7 @@ export default {
       url: '/announcement/list',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -18,7 +18,7 @@ export default {
       url: '/announcement/show',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -30,7 +30,7 @@ export default {
       method: "post",
       headers: {
         // Authorization: address,        
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -42,7 +42,7 @@ export default {
       method: "post",
       headers: {
         // Authorization: address,        
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -53,7 +53,7 @@ export default {
       method: "post",
       headers: {
         // Authorization: address,        
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -66,7 +66,7 @@ export default {
       method: "post",
       headers: {
         // Authorization: address
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -78,7 +78,7 @@ export default {
       method: "post",
       headers: {
         // Authorization: address,
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -89,7 +89,7 @@ export default {
       url: '/member/auth',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -100,7 +100,7 @@ export default {
       url: '/offline/withdrawList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -111,7 +111,7 @@ export default {
       url: '/ledger/powerList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -122,7 +122,7 @@ export default {
       url: '/ledger/usdtList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -133,7 +133,7 @@ export default {
       url: '/ledger/tokenList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -144,7 +144,7 @@ export default {
       url: '/team/all',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -155,7 +155,7 @@ export default {
       url: '/offline/withdrawCash',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -166,7 +166,7 @@ export default {
       url: '/offline/withdrawFee',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -177,7 +177,7 @@ export default {
       url: '/home/prepareRental',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -188,7 +188,7 @@ export default {
       url: '/ledger/actionGet',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -199,7 +199,7 @@ export default {
       url: '/team/profitList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -210,7 +210,7 @@ export default {
       url: '/offline/rechargeList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -221,7 +221,7 @@ export default {
       url: '/offline/withdrawFee',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -232,7 +232,7 @@ export default {
       url: '/servers/info',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -243,7 +243,7 @@ export default {
       url: '/servers/rental',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -254,7 +254,7 @@ export default {
       url: '/order/list',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -265,7 +265,7 @@ export default {
       url: '/servers/team',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -276,7 +276,7 @@ export default {
       url: '/user/etcInfo',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -287,7 +287,7 @@ export default {
       url: '/user/etcSubmit',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -298,7 +298,7 @@ export default {
       url: '/Transaction/reservation',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -309,7 +309,7 @@ export default {
       url: '/user/etcExchange',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -320,7 +320,7 @@ export default {
       url: '/Transaction/leak',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -331,7 +331,7 @@ export default {
       url: '/Transaction/tradition',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -342,7 +342,7 @@ export default {
       url: '/ledger/assets',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -353,7 +353,7 @@ export default {
       url: '/ledger/coinList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -364,7 +364,7 @@ export default {
       url: '/order/list',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -375,7 +375,7 @@ export default {
       url: '/order/createReservation',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -386,7 +386,7 @@ export default {
       url: '/order/createLeak',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -397,7 +397,7 @@ export default {
       url: '/order/createTradition',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -408,7 +408,7 @@ export default {
       url: '/ledger/transferEnergy',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -419,7 +419,7 @@ export default {
       url: '/ledger/coinAction',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -430,7 +430,7 @@ export default {
       url: '/order/orderAction',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -441,7 +441,7 @@ export default {
       url: '/order/updateOrder',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -452,7 +452,7 @@ export default {
       url: '/order/getOrder',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -463,7 +463,7 @@ export default {
       url: '/user/partitionApply',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -474,7 +474,7 @@ export default {
       url: '/order/handleOrder',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -485,7 +485,7 @@ export default {
       url: '/order/productsList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -496,7 +496,7 @@ export default {
       url: '/order/create',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -507,7 +507,7 @@ export default {
       url: '/user/smhExchange',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -518,7 +518,7 @@ export default {
       url: '/user/smhInfo',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -529,7 +529,7 @@ export default {
       url: '/user/smhSubmit',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -540,7 +540,7 @@ export default {
       url: '/user/aleoInfo',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -551,7 +551,7 @@ export default {
       url: '/user/aleoSubmit',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -562,7 +562,7 @@ export default {
       url: '/home/getPopularInfo',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -573,7 +573,7 @@ export default {
       url: '/home/getTransferInfo',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -584,7 +584,7 @@ export default {
       url: '/home/getProductAddres',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -595,7 +595,7 @@ export default {
       url: '/order/create',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -606,7 +606,7 @@ export default {
       url: '/order/transferOrder',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -617,7 +617,7 @@ export default {
       url: '/Product/getPopularList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -628,7 +628,7 @@ export default {
       url: '/Product/getTransferList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -639,7 +639,7 @@ export default {
       url: '/order/pickupOrder',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -650,7 +650,7 @@ export default {
       url: '/order/transfer',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -661,7 +661,7 @@ export default {
       url: '/user/getNftList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -672,7 +672,7 @@ export default {
       url: '/order/cancel',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -683,7 +683,7 @@ export default {
       url: '/user/getChaList',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })
@@ -694,7 +694,29 @@ export default {
       url: '/user/getUserBalanceLog',
       method: "post",
       headers: {
-        'Lang': localStorage.getItem('language') || 'en',
+        'Accept-Language': localStorage.getItem('language') || 'en',
+      },
+      data
+    })
+  },
+  //获取充值信息
+  getAddress(data) {
+    return request.request({
+      url: '/ledger/getAddress',
+      method: "post",
+      headers: {
+        'Accept-Language': localStorage.getItem('language') || 'en',
+      },
+      data
+    })
+  },
+  //修改个人信息
+  setUserInfo(data) {
+    return request.request({
+      url: '/user/setUserInfo',
+      method: "post",
+      headers: {
+        'Accept-Language': localStorage.getItem('language') || 'en',
       },
       data
     })

BIN
src/assets/logo.png


+ 51 - 27
src/language/en.json

@@ -6,9 +6,9 @@
   "lang5": "More Buy",
   "lang6": "Collection value:",
   "lang7": "Pieces",
-  "lang8": "Remaining",
-  "lang9": "d",
-  "lang10": "h",
+  "lang8": "Last",
+  "lang9": "D",
+  "lang10": "H",
   "lang11": "m",
   "lang12": "s",
   "lang13": "Transfer Zone",
@@ -117,11 +117,11 @@
   "lang116": "Description:",
   "lang117": "Confirm Withdrawal",
   "lang118": "Enter Transfer Address",
-  "lang119": "Enter Quantity",
-  "lang120": "Invitation Reward",
-  "lang121": "Switch to TEAC Reward",
+  "lang119": "Enter Amount",
+  "lang120": "Invite Reward",
+  "lang121": "Switch to TEAC Balance",
   "lang122": "Details",
-  "lang123": "Withdrawal Quantity",
+  "lang123": "Withdrawal Amount",
   "lang124": "Main Network Name",
   "lang125": "Transfer Address",
   "lang126": "Binance Chain",
@@ -129,31 +129,55 @@
   "lang128": "Passed",
   "lang129": "Rejected",
   "lang130": "Under Review",
-  "lang131": "Invitation Link",
-  "lang132": "Copy the link and send it to your friends, come and experience it together!",
-  "lang133": "Copy Link",
+  "lang131": "Invite Link",
+  "lang132": "Copy the link and send it to your friends to experience it together! ",
+  "lang133": "Copy link",
   "lang134": "Assets",
   "lang135": "Cancel",
-  "lang136": "Warm Tips",
-  "lang137": "Are you sure to buy",
+  "lang136": "Tips",
+  "lang137": "Are you sure to buy?",
   "lang138": "Recharge",
-  "lang139": "Check Logistics",
-  "lang140": "Switch to USDT Reward",
+  "lang139": "Check logistics",
+  "lang140": "Switch to USDT balance",
   "lang141": "Transferring",
-  "lang142": "Pickup",
-  "lang143": "Check Logistics",
-  "lang144": "Cancel Transfer",
+  "lang142": "Pick up",
+  "lang143": "Check logistics",
+  "lang144": "Cancel transfer",
   "lang145": "Cancelled",
   "lang146": "Completed",
-  "lang147": "Current Teabao Balance",
-  "lang148": "Recharge Quantity",
-  "lang149": "Confirm Recharge",
-  "lang150": "Cancel Successfully",
-  "lang151": "Are you sure to cancel the transfer",
-  "lang152": "Operation Successful",
+  "lang147": "Current tea treasure balance",
+  "lang148": "Recharge amount",
+  "lang149": "Confirm recharge",
+  "lang150": "Cancel successfully",
+  "lang151": "Are you sure to cancel the transfer?",
+  "lang152": "Operation successful",
   "lang153": "Please enter the transfer amount",
-  "lang154": "Order Placed",
-  "lang155": "Paid",
-  "lang156": "Shipment",
-  "lang157": "Fill in the delivery information"
+  "lang154": "Order placed",
+  "lang155": "Payment made",
+  "lang156": "Shipped",
+  "lang157": "Fill in delivery information",
+  "lang158": "Binding successful",
+  "lang159": "Your USDT balance is insufficient",
+  "lang160": "Please enter the recharge amount",
+  "lang161": "Balance",
+  "lang162": "1. After the withdrawal, it will be reviewed by the platform administrator. If there is no abnormality, the review will be completed within 48 hours and the withdrawal address will be transferred. You can check the order progress in the details in the upper right corner.",
+  "lang163": "2. At this stage, the main network defaults to and only supports the Binance chain withdrawal address. Please make sure that the address is accurate, otherwise the assets will not be recovered.",
+  "lang164": "3. Please make sure that the transfer address and amount are correct. Any losses caused by incorrect withdrawal address will be borne by the public account. ",
+  "lang165": "Please enter the amount",
+  "lang166": "Minimum withdrawal",
+  "lang167": "Insufficient balance",
+  "lang168": "Recharge record",
+  "lang169": "Please enter a nickname",
+  "lang170": "Please enter your real name",
+  "lang171": "Please enter a valid mobile phone number",
+  "lang172": "Change successfully",
+  "lang173": "Ended",
+  "lang174": "ChaBao",
+  "lang175": "Pending confirmation",
+  "lang176": "Success",
+  "lang177": "Failure",
+  "lang178": "pending",
+  "lang179": "rejected",
+  "lang180": "no abnormality in withdrawal",
+  "lang181": "re-apply for abnormal withdrawal"
 }

+ 25 - 25
src/language/zh.json

@@ -119,7 +119,7 @@
   "lang118": "输入转出地址",
   "lang119": "输入数量",
   "lang120": "邀请奖励",
-  "lang121": "切换为TEAC奖励",
+  "lang121": "切换为TEAC余额",
   "lang122": "明细",
   "lang123": "提现数量",
   "lang124": "主网名称",
@@ -138,7 +138,7 @@
   "lang137": "是否确定购买",
   "lang138": "充值",
   "lang139": "查看物流",
-  "lang140": "切换为USDT奖励",
+  "lang140": "切换为USDT余额",
   "lang141": "转让中",
   "lang142": "提货中",
   "lang143": "查看物流",
@@ -157,29 +157,29 @@
   "lang156": "已发货",
   "lang157": "填写收货信息",
   "lang158": "绑定成功",
-  "lang159": "",
-  "lang160": "",
-  "lang161": "",
-  "lang162": "",
-  "lang163": "",
-  "lang164": "",
-  "lang165": "",
-  "lang166": "",
-  "lang167": "",
-  "lang168": "",
-  "lang169": "",
-  "lang170": "",
-  "lang171": "",
-  "lang172": "",
-  "lang173": "",
-  "lang174": "",
-  "lang175": "",
-  "lang176": "",
-  "lang177": "",
-  "lang178": "",
-  "lang179": "",
-  "lang180": "",
-  "lang181": "",
+  "lang159": "您的USDT余额不足",
+  "lang160": "请输入充值数量",
+  "lang161": "余额",
+  "lang162": "1.提现后由平台管理员审核,如无异常将于48小时之内完成审核并转入提现地址,您可在右上角明细中查看订单进度。",
+  "lang163": "2.主网现阶段默认且仅支持Binance链提现地址,请务必保证地址准确无误,否则将造成资产无法找回。",
+  "lang164": "3.请确保转出地址和数额无误,如因提现地址填写错误造成的损失由公户自行承担。",
+  "lang165": "请输入金额",
+  "lang166": "最低提现",
+  "lang167": "余额不足",
+  "lang168": "充值记录",
+  "lang169": "请输入昵称",
+  "lang170": "请输入真实姓名",
+  "lang171": "请输入正确的手机号码",
+  "lang172": "修改成功",
+  "lang173": "已结束",
+  "lang174": "茶宝",
+  "lang175": "待确认",
+  "lang176": "成功",
+  "lang177": "失败",
+  "lang178": "待处理",
+  "lang179": "驳回",
+  "lang180": "提现无异常",
+  "lang181": "提现异常可重新发起申请",
   "lang182": "",
   "lang183": "",
   "lang184": "",

+ 9 - 0
src/router/index.js

@@ -31,6 +31,7 @@ import myTeaFriends from '../views/mine/myTeaFriends.vue';  //我的资产
 import setting from '../views/mine/setting.vue';  //设置
 import TransferDetail from '../views/mine/TransferDetail.vue'; //详情
 import recharge from '../views/mine/recharge.vue'; //充值
+import rechargeRecord from '../views/mine/rechargeRecord.vue'; //充值记录
 Vue.use(VueRouter);
 const routes = [
 
@@ -197,6 +198,14 @@ const routes = [
           requiresAuth: true
         }
       },
+      {
+        path: 'rechargeRecord',
+        name: 'rechargeRecord',
+        component: rechargeRecord,
+        meta: {
+          requiresAuth: true
+        }
+      },
     ],
   },
 ];

+ 2 - 1
src/store/index.js

@@ -258,8 +258,9 @@ export default new Vuex.Store({
           commit('SETNET', networkIDstring);
         });
         web3Provider.on('accountsChanged', function (accounts) {
-
+          let lang = localStorage.getItem('language');
           localStorage.clear()
+          localStorage.setItem('language', lang);
           //切换账号一定会走这  清空token 请求auth 拿到新的token  走事件总线 emit 触发首页加载个人信息的方法  跳转回首页
           commit('SETACCOUNTS', accounts[0]);
 

+ 4 - 2
src/utils/request.js

@@ -3,8 +3,8 @@ import { Toast } from "vant";
 import store from "../store";
 const service = axios.create({
     // baseURL: 'http://192.168.1.23/api/',
-    // baseURL: 'https://hexie-api.sys-email.com/api/', 
-    baseURL: 'https://test-h5.haocha13.cn/api/', // 正式环境
+    // baseURL: 'https://test-h5.haocha13.cn/api/', // 测试环境
+    baseURL: 'https://api.rwacha.com/api/', // 正式环境
 });
 
 // console.log(localStorage.getItem("token__" + localStorage.getItem("account")), '请求获取到的token');
@@ -23,7 +23,9 @@ service.interceptors.response.use(
         if (res.data.code === 200) {
             return res.data;
         } else if (res.data.code === 14999) {  //token失效,删除登录信息
+            let lang = localStorage.getItem('language');
             localStorage.clear()
+            localStorage.setItem('language', lang);
             //在这个地方做个 操作 去调用store里面的方法或复制过来
             store.dispatch('setWebProvider');
             Toast({ message: `${res.data.msg}` })

+ 33 - 15
src/views/index/index.vue

@@ -6,19 +6,20 @@
       <div class="pd">
         <div class="top">
           <img src="@/assets/images/index/cha.png" alt="" class="cha" />
-          <van-field v-model="key" :placeholder="$t('lang4')" class="input" right-icon="search" />
+          <van-field v-model="key" :placeholder="$t('lang4')" class="input" right-icon="search" @click="navigatorTo('transfer')" />
         </div>
-        <van-notice-bar class="notice" color="#000" background="#ffffff" :text="indexinfo.notice_list[0].zh_title">
+        <van-notice-bar class="notice" color="#000" background="#ffffff" :text="indexinfo.notice_list[0]?.title">
           <div slot="left-icon" class="notice-ico">{{ $t('lang3') }}</div>
         </van-notice-bar>
         <div class="banner">
           <van-swipe :autoplay="3000" class="my-swipe" ref="swipeRef">
-            <van-swipe-item class="swipe-item" v-for="(item, index) in indexinfo.banner_list" :key="index" @click="navigatorToPage('bulletinDetail', item.id)">
+            <van-swipe-item class="swipe-item" v-for="(item, index) in indexinfo.banner_list" :key="index">
               <van-image style="width: 100%; height: 100%" radius="10" :src="item.img_url" />
             </van-swipe-item>
           </van-swipe>
         </div>
       </div>
+      <!-- 热门抢购 -->
       <div class="pd goods_box">
         <div class="title">
           <div class="flex">
@@ -33,14 +34,16 @@
         <div class="goods_list" v-for="(item, index) in product_list" :key="index" @click="navigatorToPage('GoodsDetail', item.id)">
           <van-image class="goods_list_img" radius="10" :src="item.img_url" />
           <div class="right">
-            <span class="ellipsis">{{ item.zh_name }}</span>
+            <span class="ellipsis">{{ item.name }}</span>
             <div class="cen">
-              <span class="money">{{ item.price }}</span>
+              <span class="money"
+                >{{ item.price }}<span class="ssm">{{ $t('lang174') }}</span></span
+              >
               <div class="yel">
                 <van-count-down class="count" :time="item.end_time - item.start_time" :format="`${$t('lang8')} DD ${$t('lang9')} HH ${$t('lang10')} mm ${$t('lang11')} ss ${$t('lang12')}`" />
               </div>
             </div>
-            <span class="time_text">{{ $t('lang6') }} {{ item.cost_price }}USDT</span>
+            <span class="time_text">{{ $t('lang6') }} {{ item.cost_price }}{{ $t('lang174') }}</span>
             <div class="progress">
               <van-progress :percentage="(item.num / item.stock) * 100 || 0" class="pro" color="#29b286" :show-pivot="false" />
               <span>{{ item.num }}/{{ item.stock }}{{ $t('lang7') }}</span>
@@ -48,6 +51,7 @@
           </div>
         </div>
       </div>
+      <!-- 转让 -->
       <div class="pd goods_box">
         <div class="title">
           <div class="flex">
@@ -62,13 +66,15 @@
         <div class="goods_list jsb" v-for="(item, index) in transfer_list" :key="index">
           <van-image class="goods_list_img" radius="10" :src="item.img_url" />
           <div class="right" style="flex: 1">
-            <span class="ellipsis">{{ item.zh_name }}</span>
+            <span class="ellipsis">{{ item.name }}</span>
             <span class="time_text t2">{{ $t('lang15') }}{{ item.nickname }}</span>
-            <div class="green">{{ item.zh_title }}</div>
+            <div class="green">{{ item.title }}</div>
             <div class="flex jsb">
-              <div class="cen">
+              <div class="cen1">
                 <span class="mon_t">{{ $t('lang16') }}: </span>
-                <span class="money">{{ Math.floor(item.price * 100) / 100 }}</span>
+                <span class="money"
+                  >{{ Math.floor(item.price * 100) / 100 }}<span class="ssm">{{ $t('lang174') }}</span></span
+                >
               </div>
               <div class="buy" @click="navigatorToPage('TransferDetail', item.id)">
                 <van-button class="buy_btn" type="primary">{{ $t('lang17') }}</van-button>
@@ -77,6 +83,7 @@
           </div>
         </div>
       </div>
+      <!-- 茶矿 -->
       <div class="pd goods_box">
         <div class="title">
           <div class="flex">
@@ -89,7 +96,7 @@
           </div>
         </div>
         <div class="goods_list goods_list1 jsb">
-          <div class="item" v-for="(item, index) in mortgage_list" :key="index" @click="navigatorToPage('bulletinDetail', item.id)">
+          <div class="item" v-for="(item, index) in mortgage_list" :key="index">
             <van-image class="goods_list1_img" radius="10" :src="item.img_url" />
             <div class="right">
               <span>{{ item.title }}</span>
@@ -126,6 +133,9 @@ import { homeApi } from '@/api/index';
 import BottomNavigation from '@/components/BottomNavigation.vue';
 import { Notify } from 'vant';
 import { dateFormat } from '@/utils/formatTool.js';
+import { Locale } from 'vant';
+import enUS from 'vant/es/locale/lang/en-US';
+import zhCN from 'vant/lib/locale/lang/zh-CN';
 export default {
   data() {
     return {
@@ -142,7 +152,6 @@ export default {
       userinfo: {
         power: undefined,
         token: undefined,
-        usdt: undefined,
         team_poser: undefined,
       },
       bindShow: false,
@@ -156,11 +165,15 @@ export default {
     };
   },
   created() {
+    if (localStorage.getItem('language') == 'zh') {
+      Locale.use('zh-CN', zhCN);
+    } else {
+      Locale.use('en-US', enUS);
+    }
     this.inviteCode = this.$route.query.inviteCode;
     if (this.inviteCode) {
       localStorage.setItem('inviteCode', this.inviteCode);
     }
-
     // this.getUserInfo();
   },
   mounted() {
@@ -433,6 +446,12 @@ export default {
         text-decoration: line-through;
         // padding-top: 10px;
       }
+      .cen1 {
+        color: red;
+        // font-weight: 550;
+        // padding: 5px 0;
+        font-size: 12px;
+      }
       .cen {
         color: red;
         // font-weight: 550;
@@ -444,8 +463,7 @@ export default {
       .money {
         font-size: 15px;
       }
-      .money::after {
-        content: 'USDT';
+      .ssm {
         font-size: 10px;
         font-weight: normal;
       }

+ 3 - 3
src/views/mine/TransferDetail.vue

@@ -19,7 +19,7 @@
         <div class="left">
           <div class="price">
             <span>{{ product.price }}</span>
-            <span class="small">USDT</span>
+            <span class="small">{{ $t('lang174') }}</span>
             <!-- <span class="small">{{ product.cost_price }}USDT</span> -->
           </div>
           <div class="tags">
@@ -46,7 +46,7 @@
       </div>
       <div class="goods_info">
         <div class="flex jsb">
-          <span class="title">{{ product.zh_name }}</span>
+          <span class="title">{{ product.name }}</span>
           <!-- <span class="red">{{ $t('lang55') }}{{ product.stock }}{{ $t('lang7') }}</span> -->
         </div>
         <div class="tag">{{ $t('lang56') }}</div>
@@ -98,7 +98,7 @@
       <!-- <div class="box flex jsb">
         <div class="item">
           <span class="key">{{ $t('lang63') }}</span>
-          <span class="val ellipsis">{{ product.zh_name }}</span>
+          <span class="val ellipsis">{{ product.name }}</span>
         </div>
         <div class="item">
           <span class="key">净含量:</span>

+ 20 - 17
src/views/mine/assets.vue

@@ -11,7 +11,7 @@
       <div class="">
         <div class="total_box">
           <div>
-            <span class="text">{{ $t('lang80') }}(CNY)</span>
+            <span class="text">{{ $t('lang80') }}({{ $t('lang174') }})</span>
           </div>
           <div class="total">
             <span>{{ Math.floor(assets * 100) / 100 || 0 }}</span>
@@ -21,7 +21,7 @@
           </div>
         </div>
 
-        <div class="bare" v-if="total > 1">
+        <div class="bare" v-if="coinList.length <= 0">
           <span>{{ $t('lang82') }}</span>
         </div>
         <div v-else>
@@ -36,16 +36,16 @@
               <div class="box">
                 <div class="box_item">
                   <span class="key">{{ $t('lang83') }}</span>
-                  <span class="num">{{ Math.floor(item.amount * 100) / 100 || 0 }}</span>
+                  <span class="num">{{ item.amount || 0 }}</span>
                 </div>
                 <div class="box_item">
                   <span class="key">{{ $t('lang84') }}</span>
-                  <span class="num">{{ Math.floor(item.frozen_amount * 100) / 100 || 0 }}</span>
+                  <span class="num">{{ item.frozen_amount || 0 }}</span>
                 </div>
-                <div class="box_item">
+                <!-- <div class="box_item">
                   <span class="key">{{ $t('lang85') }}(CNY)</span>
-                  <span class="num">{{ Math.floor(item.convert_amount * 100) / 100 || 0 }}</span>
-                </div>
+                  <span class="num">{{ Math.floor(item.amount * Number(item.convert_rate) * 100) / 100 || 0 }}</span>
+                </div> -->
               </div>
             </div>
           </div>
@@ -53,16 +53,16 @@
       </div>
     </div>
     <div class="" v-show="navIndex == 1">
-      <div class="pd1 goods_box" @scroll="handleScroll">
+      <div class="pd1 goods_box" @scroll="handleScroll" v-if="nft_list.length > 0">
         <div class="goods_list jsb" v-for="(item, index) in nft_list" :key="index">
           <div class="tags" v-if="item.status == 2">{{ $t('lang141') }}</div>
           <div class="tags1" v-if="item.status == 3">{{ $t('lang142') }}</div>
           <van-image class="goods_list_img" radius="10" :src="item.img_url.split(',')[0]" />
           <div class="right" style="flex: 1">
-            <span>{{ item.zh_name }}</span>
-            <div class="green">{{ item.zh_title }}</div>
+            <span>{{ item.name }}</span>
+            <div class="green">{{ item.title }}</div>
             <div class="cen">
-              <span class="money">{{ item.price }}</span>
+              <span class="money">{{ item.price }}<span class="ssm">{{ $t('lang174') }}</span></span>
             </div>
             <div class="f-sa" v-if="item.status <= 1">
               <div class="buy" @click="pickup(item)">
@@ -88,6 +88,9 @@
           </div>
         </div>
       </div>
+      <div class="bare" v-if="nft_list.length <= 0">
+        <span>{{ $t('lang82') }}</span>
+      </div>
     </div>
     <van-popup v-model="transferPopop" round position="bottom">
       <!-- <van-cascader v-model="cascaderValue" title="请选择所在地区" :options="options" @close="cascaderShow = false" @finish="onFinish" /> -->
@@ -101,12 +104,12 @@
             <span> {{ $t('lang89') }} </span>
             <div class="d">
               <van-field v-model="price" :placeholder="$t('lang93')" class="input" />
-              <span class="s">USDT</span>
+              <span class="s">{{ $t('lang174') }}</span>
             </div>
           </div>
           <div class="f-r">
             <span> {{ $t('lang90') }} </span>
-            <span class="s">{{ Math.floor(price * Number(transfes_fee) * 100) / 100 }} USDT</span>
+            <span class="s">{{ Math.floor(price * Number(transfes_fee) * 100) / 100 }} {{ $t('lang174') }}</span>
           </div>
           <div class="f-r">
             <span> {{ $t('lang91') }} </span>
@@ -136,7 +139,6 @@ import { Dialog, Notify, Toast } from 'vant';
 export default {
   data() {
     return {
-      page: 0,
       loading: false,
       finished: false,
       total: 1,
@@ -217,6 +219,7 @@ export default {
     getNftList() {
       homeApi.getNftList({ page: this.page }).then(res => {
         if (res.code == 200) {
+          this.total = res.data.total;
           if (this.nft_list.length >= res.data.total) {
             this.page = -1; // 重置为 -1,表示没有更多数据
           } else {
@@ -406,6 +409,7 @@ export default {
     }
   }
   .pd {
+    min-height: 100vh;
     padding: 4px;
     margin-top: 4px;
     background-color: #fff;
@@ -486,7 +490,7 @@ export default {
     text-align: center;
     font-size: 14px;
     padding: 60px 14px;
-    color: #888;
+    color: #aaa;
   }
   .list {
     border-radius: 20px;
@@ -633,8 +637,7 @@ export default {
       .money {
         font-size: 15px;
       }
-      .money::after {
-        content: 'USDT';
+      .ssm {
         font-size: 10px;
         font-weight: normal;
       }

+ 1 - 0
src/views/mine/index.vue

@@ -226,6 +226,7 @@ export default {
       .avatar {
         width: 100%;
         height: 100%;
+        background-color: #fff;
       }
     }
     .copys {

+ 4 - 4
src/views/mine/myTeaFriends.vue

@@ -15,7 +15,7 @@
           </div>
         </div>
 
-        <div class="bare" v-if="total > 1">
+        <div class="bare" v-if="total <= 0">
           <span>{{ $t('lang60') }}</span>
         </div>
         <div v-else>
@@ -23,10 +23,10 @@
             <div v-for="(item, index) in list" :key="index" class="li">
               <div class="box">
                 <div class="box_item">
-                  <span class="mobile">{{ item.phone }}</span>
+                  <span class="mobile">{{ item.phone || item.nickname }}</span>
                   <span class="address"
                     >{{ $t('lang35') }} {{ item.address.slice(0, 6) + '****' + item.address.slice(item.address.length - 6, item.address.length)
-                    }}<img src="@/assets/images/trade/copy.png" alt="" class="copys" @click="copy" :data-clipboard-text="item.address"
+                    }}<img src="@/assets/images/trade/copy.png" alt="" class="copys" @click="copy(item.address)" :data-clipboard-text="item.address"
                   /></span>
                   <span class="key">{{ $t('lang96') }}{{ dateFormatFn(item.create_time) }}</span>
                 </div>
@@ -97,7 +97,7 @@ export default {
       homeApi.getChaList({ page: this.page }).then(res => {
         if (res.code == 200) {
           // this.list = res.data.data.data;
-          this.total = res.data.data.total;
+          this.total = res.data.total;
           if (this.list.length >= res.data.data.total) {
             this.page = -1; // 重置为 -1,表示没有更多数据
           } else {

+ 72 - 29
src/views/mine/recharge.vue

@@ -8,7 +8,7 @@
       <div class="">
         <div class="total_box">
           <div>
-            <span class="text">{{$t('lang147')}}(TEAC)</span>
+            <span class="text">{{ $t('lang147') }}</span>
           </div>
           <div class="total">
             <span>{{ Math.floor(assets * 100) / 100 || 0 }}</span>
@@ -17,13 +17,13 @@
             <!-- <img src="@/assets/images/chance.png" class="icon" />
             <span>{{ $t('lang121') }}</span> -->
           </div>
-          <div @click="navigation('withdrawRecord')" class="mx">{{ $t('lang122') }}</div>
+          <div @click="navigation('rechargeRecord')" class="mx">{{ $t('lang122') }}</div>
         </div>
 
         <div class="list">
           <div class="box">
             <div class="box_item">
-              <span class="left">{{$t('lang148')}}</span>
+              <span class="left">{{ $t('lang148') }}</span>
               <van-field v-model="amount" :placeholder="$t('lang119')" class="input" input-align="right" />
             </div>
             <div class="box_item">
@@ -41,10 +41,15 @@
         </div>
         <div class="tips">
           <div>{{ $t('lang116') }}</div>
-          <div>1.充值说明</div>
+          <div>{{ tip }}</div>
         </div>
       </div>
     </div>
+    <van-overlay :show="show">
+      <div class="wrapper" @click.stop>
+        <van-loading type="spinner" class="loading" />
+      </div>
+    </van-overlay>
   </div>
 </template>
 
@@ -55,16 +60,22 @@ import packApi from '@/methods/pack.js';
 import { getErc20Contract } from '@/utils/contractHelp';
 import usdt from '@/methods/usdt.js';
 import { formatAmount } from '@/utils/format.js';
+import { Dialog, Notify, Toast } from 'vant';
 export default {
   data() {
     return {
       assets: 0,
       amount: '',
       payToken: undefined, //支付币种
+      walletBalance: 0,
+      show: false,
+      pay_address: '',
+      tip: '',
     };
   },
   mounted() {
-    this.getPayToken(); //获取支付币种
+    this.getUserInfo();
+    this.getAddress();
   },
   methods: {
     //返回上一页
@@ -74,8 +85,24 @@ export default {
     navigation(name) {
       this.$router.push({ name });
     },
-    dateFormatFn(date) {
-      return dateFormat(new Date(date * 1000), 'yyyy-MM-dd hh:mm:ss');
+    getAddress() {
+      homeApi.getAddress().then(res => {
+        if (res.code == 200) {
+          console.log(res.data);
+          this.pay_address = res.data.value;
+          this.tip = res.data.name;
+        } else {
+        }
+      });
+    },
+    getUserInfo() {
+      homeApi.getUserInfo().then(res => {
+        if (res.code == 200) {
+          this.assets = res.data.balance;
+          this.account = res.data.address;
+          this.getPayToken(); //获取支付币种
+        }
+      });
     },
     getPayToken() {
       packApi.getPayToken(this.account).then(res => {
@@ -91,35 +118,42 @@ export default {
       this.walletBalance = (formatAmount(bal, 18) * 1).toFixed(2);
     },
     submit() {
+      if (!this.amount) {
+        return this.$toast(this.$t('lang160'));
+      }
+      if (this.walletBalance < this.amount) {
+        return this.$toast(this.$t('lang159'));
+      }
+      this.show = true;
       usdt
-        .transfer(this.account, obj.pay_address, this.amount, this.payToken)
+        .transfer(this.account, this.pay_address, this.amount, this.payToken)
         .then(res => {
           // 调回调接口
           let params = {
-            amount: obj.amount,
-            type: order_type,
-            order_no: obj.order_no,
+            amount: this.amount,
             tx_hash: res,
           };
-          //   homeApi
-          //     .updateOrder(params)
-          //     .then(res => {
-          //       this.isApprove = false;
-          //       if (res.code == 200) {
-          //         this.init();
-          //         Toast({ message: `${res.msg}` });
-          //       }
-          //     })
-          //     .catch(err => {
-          //       this.$toast(err.msg);
-          //       this.isApprove = false;
-          //       return;
-          //     });
+          homeApi
+            .updateOrder(params)
+            .then(res => {
+              if (res.code == 200) {
+                this.amount = '';
+                this.show = false;
+                Notify({ type: 'success', message: this.$t('lang152') });
+              } else {
+                this.show = false;
+                Toast({ message: `${res.msg}` });
+              }
+            })
+            .catch(err => {
+              this.show = false;
+              this.$toast(err.msg);
+              return;
+            });
         })
         .catch(err => {
-          console.log(' 5555');
+          this.show = false;
           this.$toast(err.message);
-          this.isApprove = false;
           return;
         });
     },
@@ -140,8 +174,8 @@ export default {
   letter-spacing: 1.5px;
   font-weight: 550;
   background: #fff;
-  padding: 14px 0;
-  z-index: 99;
+  padding: 15px 0;
+  // z-index: 99;
   .arrow_img {
     position: absolute;
     left: 20px;
@@ -323,4 +357,13 @@ export default {
     padding: 14px;
   }
 }
+.wrapper {
+  // display: flex;
+  // justify-content: center;
+  .loading {
+    position: absolute;
+    left: 46%;
+    top: 46%;
+  }
+}
 </style>

+ 331 - 0
src/views/mine/rechargeRecord.vue

@@ -0,0 +1,331 @@
+<template>
+  <div class="assets" @scroll="handleScroll">
+    <div class="head">
+      <img @click="back" src="@/assets/images/back.png" class="arrow_img" />
+      <span>{{ $t('lang168') }}</span>
+    </div>
+
+    <div class="pd">
+      <div class="">
+        <div class="bare" v-if="total <= 0">
+          <span>{{ $t('lang60') }}</span>
+        </div>
+        <div v-else class="container">
+          <div class="list">
+            <div v-for="(item, index) in list" :key="index" class="li">
+              <div class="box">
+                <div class="box_item">
+                  <div class="f-c">
+                    <span class="amount">{{ item.amount }}</span>
+
+                    <div>
+                      <span style="width: fit-content" :class="item.status == 400 ? 'tag fail' : 'tag'">{{ statusFn(item.status) }}</span>
+                      <!-- <span :class="item.status == 400 ? 'tag fail' : 'tag'">{{ statusFn(item.status) }}</span> -->
+                    </div>
+                  </div>
+                  <!-- <span class="key">{{ item.note }}</span> -->
+                  <div class="f-c">
+                    <span class="num">{{ item.create_time_text }}</span>
+                    <span class="num"> {{ $t('lang85') }}:{{ item.cha_bao }}{{ $t('lang174') }} </span>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import { homeApi } from '@/api/index';
+import { dateFormat } from '@/utils/formatTool.js';
+export default {
+  data() {
+    return {
+      page: 1,
+      total: 0,
+      assets: 0,
+      list: [],
+    };
+  },
+  mounted() {
+    this.rechargeList();
+  },
+  methods: {
+    //返回上一页
+    back() {
+      this.$router.back();
+    },
+    statusFn(status) {
+      let result = '';
+      switch (status) {
+        case 100:
+          result = this.$t('lang175');
+          break;
+        case 200:
+          result = this.$t('lang176');
+          break;
+        case 400:
+          result = this.$t('lang177');
+          break;
+        default:
+          break;
+      }
+      return result;
+    },
+    navigation(name, query) {
+      console.log(query);
+      if (query.coin_type == 'server') {
+        this.$router.push({ name: 'orders' });
+      } else if (query.coin_type == 'btc' || query.coin_type == 'filecoin' || query.coin_type == 'tao') {
+        return;
+      } else {
+        this.$router.push({ name, query });
+      }
+    },
+    changeNav(item, index) {
+      this.navIndex = index;
+    },
+    dateFormatFn(date) {
+      return dateFormat(new Date(date * 1000), 'yyyy-MM-dd hh:mm:ss');
+    },
+    handleScroll(event) {
+      const container = event.target;
+      const scrollTop = container.scrollTop; // 滚动距离
+      const scrollHeight = container.scrollHeight; // 内容总高度
+      const clientHeight = container.clientHeight; // 可视区域高度
+      // 判断是否滑动到底部
+      if (scrollTop + clientHeight >= scrollHeight - 10) {
+        console.log('Bottom');
+        if (this.page != -1) {
+          this.page++; // 页数加 1
+          this.rechargeList(); // 触发加载更多
+        }
+      }
+    },
+    rechargeList() {
+      homeApi.rechargeList({ page: this.page }).then(res => {
+        if (res.code == 200) {
+          this.total = res.data.total;
+          if (this.list.length >= res.data.total) {
+            this.page = -1; // 重置为 -1,表示没有更多数据
+          } else {
+            this.list = [...this.list, ...res.data.rows];
+            console.log(this.list.length);
+            if (this.list.length >= res.data.total) {
+              this.page = -1; // 重置为 -1,表示没有更多数据
+            }
+          }
+        } else {
+        }
+      });
+    },
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.head {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 100%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: rgba(#000, 0.8);
+  letter-spacing: 1.5px;
+  font-weight: 550;
+  background: #fff;
+  padding: 14px 0;
+  z-index: 99;
+  .arrow_img {
+    position: absolute;
+    left: 20px;
+    width: 10px;
+    height: 16px;
+    // transform: translate(0, -50%);
+  }
+}
+.f-sb {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.f-c {
+  display: flex;
+  justify-content: space-between;
+}
+.f-sa {
+  display: flex;
+  align-items: center;
+  justify-content: space-around;
+}
+.f-sb-n {
+  display: flex;
+  align-items: flex-end;
+  justify-content: space-between;
+}
+.f-col {
+  display: flex;
+  flex-direction: column;
+}
+.assets {
+  height: 100vh;
+  overflow: auto;
+  padding: 80px 0 0;
+  // background-color: #fafbfc;
+  .top {
+    color: #000;
+    padding-bottom: 16px;
+    margin: 0 6px;
+  }
+  .navbar {
+    position: relative;
+    border-radius: 14px;
+    color: #000;
+    height: 50px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    background-color: #fff;
+    span {
+      color: #aaaaaa;
+      width: 50%;
+      font-size: 14px;
+      text-align: center;
+      line-height: 50px;
+    }
+  }
+
+  .total_box {
+    position: relative;
+    display: flex;
+    align-items: center;
+    flex-direction: column;
+    justify-content: center;
+    width: 100%;
+    font-size: 12px;
+    color: #fff;
+    height: 180px;
+    padding: 30px 0 60px;
+    background: linear-gradient(to right, #1ab986, #25d7bb);
+    .f-sa {
+      width: 100%;
+    }
+    .total {
+      font-size: 28px;
+      text-align: center;
+      padding: 16px 0 6px;
+      color: rgba(#fff, 1);
+    }
+    .text {
+      font-size: 16px;
+      font-weight: bold;
+      color: rgba(#fff, 1);
+    }
+    .item {
+      color: rgba(#fff, 0.8);
+      width: 50%;
+      text-align: center;
+      display: flex;
+      flex-direction: column;
+    }
+    .buy {
+      position: absolute;
+      right: 14px;
+      top: 14px;
+
+      &_btn {
+        color: #29b286;
+        height: 30px;
+        line-height: 30px;
+        font-size: 14px;
+        background-color: #ffffff;
+        border: none;
+        padding: 0 16px;
+        white-space: nowrap;
+        border-radius: 30px;
+        display: flex;
+        align-items: center;
+      }
+    }
+  }
+
+  .bare {
+    text-align: center;
+    font-size: 14px;
+    padding: 60px 14px;
+    color: #888;
+  }
+
+  .container {
+    margin: -30px 14px 0;
+    border-radius: 14px;
+    background-color: #fff;
+    min-height: 700px;
+  }
+  .list {
+    border-radius: 20px;
+    padding: 14px 14px 0;
+    margin-top: 16px;
+    margin: 16px 6px;
+    .li {
+      font-size: 14px;
+      color: rgba(51, 51, 51, 1);
+      padding: 0 0 14px;
+
+      .box {
+        padding-top: 10px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        &_item {
+          width: 100%;
+          display: flex;
+          flex-direction: column;
+          border-bottom: 0.5px solid rgba(190, 190, 190, 0.15);
+          padding-bottom: 16px;
+          .key {
+            color: #aaa;
+            font-size: 12px;
+            margin-top: 12px;
+          }
+          .num {
+            font-size: 12px;
+            color: #aaa;
+          }
+          .amount {
+            color: #000;
+            font-size: 18px;
+            padding-bottom: 10px;
+          }
+          // .amount::before {
+          //   content: '+';
+          //   font-size: 16px;
+          // }
+          .amount::after {
+            content: 'USDT';
+            font-size: 10px;
+            color: #2c2c2c;
+          }
+          .tag {
+            color: #29b286;
+            font-size: 12px;
+            padding: 2px 10px;
+            border-radius: 10px;
+            margin-left: 6px;
+            background-color: rgba(#29b286, 0.3);
+          }
+          .fail {
+            color: #c42929;
+            background-color: rgba(#c42929, 0.3);
+          }
+        }
+      }
+    }
+  }
+}
+</style>

+ 27 - 4
src/views/mine/setting.vue

@@ -18,14 +18,14 @@
           <div class="li_left">
             <span>{{ $t('lang99') }}</span>
           </div>
-          <span style="color: #aaaaaa" v-if="userinfo.realname">{{ userinfo.realname }}</span>
+          <span style="color: #aaaaaa" v-if="userinfo.name">{{ userinfo.name }}</span>
           <span style="color: #aaaaaa" v-else>{{ $t('lang98') }}</span>
         </div>
         <div @click="showPopup(2)" class="li">
           <div class="li_left">
             <span>{{ $t('lang100') }}</span>
           </div>
-          <span style="color: #aaaaaa" v-if="userinfo.mobile">{{ userinfo.mobile }}</span>
+          <span style="color: #aaaaaa" v-if="userinfo.phone">{{ userinfo.phone }}</span>
           <span style="color: #aaaaaa" v-else>{{ $t('lang98') }}</span>
         </div>
         <div @click="switchovers('language')" class="li">
@@ -135,7 +135,31 @@ export default {
         this.getUserInfo();
       }
     },
-    editUserInfo() {},
+    editUserInfo() {
+      if (this.editType == 0 && !this.inputValue) {
+        return this.$toast(this.$t('lang169'));
+      } else if (this.editType == 1 && !this.inputValue) {
+        return this.$toast(this.$t('lang170'));
+      } else if ((this.editType == 2 && !this.inputValue) || (this.editType == 2 && this.inputValue.length < 11)) {
+        return this.$toast(this.$t('lang171'));
+      }
+      let params = {};
+      if (this.editType == 0) {
+        params.nickname = this.inputValue;
+      } else if (this.editType == 1) {
+        params.name = this.inputValue;
+      } else if (this.editType == 2) {
+        params.phone = this.inputValue;
+      }
+      homeApi.setUserInfo(params).then(res => {
+        if (res.code == 200) {
+          this.editShow = false;
+          this.inputValue = '';
+          this.getUserInfo();
+          Notify({ type: 'success', message: this.$t('lang172') });
+        }
+      });
+    },
     switchovers(router) {
       if (router == '') {
         // window.location.href = this.userinfo.seso_url;
@@ -162,7 +186,6 @@ export default {
         }
       });
     },
-
   },
   computed: {
     ...mapState(['account']),

+ 15 - 11
src/views/mine/share.vue

@@ -17,8 +17,8 @@
               <span>USDT</span>
             </div> -->
             <div class="item">
-              <span class="total">{{ Math.floor(assets * 100) / 100 || 0 }}</span>
-              <span>TEAC</span>
+              <span class="total">{{ Math.floor(totalReward * 100) / 100 || 0 }}</span>
+              <span>{{ $t('lang174') }}</span>
             </div>
           </div>
           <div class="buy" @click="navigation('withdraw')">
@@ -29,7 +29,7 @@
           </div>
         </div>
 
-        <div class="bare" v-if="total > 1">
+        <div class="bare" v-if="total <= 0">
           <span>{{ $t('lang60') }}</span>
         </div>
         <div v-else class="container">
@@ -48,9 +48,9 @@
                 <div class="box_item">
                   <div class="f-c">
                     <span class="num">{{ dateFormatFn(item.create_time) }}</span>
-                    <span class="amount">{{ item.action + item.amount }}</span>
+                    <span class="amount">{{ item.change_amount >= 0 ? '+' + item.change_amount : item.change_amount }}<span class="ssm">{{ $t('lang174') }}</span></span>
                   </div>
-                  <span class="key">张三嘻嘻嘻获得奖励</span>
+                  <span class="key">{{ statusList[item.action] }}</span>
                 </div>
               </div>
             </div>
@@ -67,7 +67,7 @@ import { dateFormat } from '@/utils/formatTool.js';
 export default {
   data() {
     return {
-      page: 0,
+      page: 1,
       loading: false,
       finished: false,
       total: 1,
@@ -86,6 +86,8 @@ export default {
         },
       ],
       nft_list: [],
+      statusList: [],
+      totalReward: 0,
     };
   },
   mounted() {
@@ -126,12 +128,14 @@ export default {
     getUserBalanceLog() {
       homeApi.getUserBalanceLog({ page: this.page }).then(res => {
         if (res.code == 200) {
-          if (this.list.length >= res.data.total) {
+          this.statusList = res.data.statusList;
+          this.totalReward = res.data.total;
+          if (this.list.length >= res.data.data.total) {
             this.page = -1; // 重置为 -1,表示没有更多数据
           } else {
-            this.list = [...this.list, ...res.data.data];
+            this.list = [...this.list, ...res.data.data.data];
             console.log(this.list.length);
-            if (this.list.length >= res.data.total) {
+            if (this.list.length >= res.data.data.total) {
               this.page = -1; // 重置为 -1,表示没有更多数据
             }
           }
@@ -289,6 +293,7 @@ export default {
   }
 
   .container {
+    position: relative;
     margin: -30px 14px 0;
     border-radius: 14px;
     background-color: #fff;
@@ -326,8 +331,7 @@ export default {
             font-size: 18px;
           }
 
-          .amount::after {
-            content: 'TEAC';
+          .ssm {
             font-size: 10px;
           }
         }

+ 8 - 17
src/views/mine/transfer.vue

@@ -21,13 +21,13 @@
         <div class="goods_list jsb" v-for="(item, index) in list" :key="index">
           <van-image class="goods_list_img" radius="10" :src="item.img_url" />
           <div class="right" style="flex: 1">
-            <span class="ellipsis">{{ item.zh_name }}</span>
+            <span class="ellipsis">{{ item.name }}</span>
             <span class="time_text t2">{{ $t('lang15') }}{{ item.nickname }}</span>
-            <div class="green">{{ item.zh_title }}</div>
+            <div class="green">{{ item.title }}</div>
             <div class="flex jsb">
               <div class="cen">
                 <span class="mon_t">{{ $t('lang16') }}: </span>
-                <span class="money">{{ Math.floor(item.price * 100) / 100 }}</span>
+                <span class="money">{{ Math.floor(item.price * 100) / 100 }}<span class="ssm">{{ $t('lang174') }}</span></span>
               </div>
               <div class="buy" @click="navigatorToPage('TransferDetail', item.id)">
                 <van-button class="buy_btn" type="primary">{{ $t('lang17') }}</van-button>
@@ -57,17 +57,9 @@ export default {
       indexinfo: {
         system_name: '',
         system_logo: '',
-        reservation_start: undefined, // 预约开始
-        reservation_end: undefined, // 预约结束
-        mate_start: undefined, // 匹配开始
-        mate_end: undefined, // 匹配结束
-        payment_start: undefined,
-        payment_end: undefined,
-        leak_start: undefined,
-        leak_end: undefined,
-        ad_video: '',
-        project_info: undefined,
-        project_img: '',
+
+
+        
         banner_list: [],
         notice_list: [],
       },
@@ -162,7 +154,7 @@ export default {
           this.showLoading = false;
           this.indexinfo = res.data;
           this.indexinfo.type_list = res.data.type_list.map(item => {
-            return { text: item.zh_title, value: item.id };
+            return { text: item.title, value: item.id };
           });
           this.indexinfo.type_list.unshift({ text: this.$t('lang34'), value: 0 });
         } else {
@@ -343,8 +335,7 @@ export default {
       .money {
         font-size: 15px;
       }
-      .money::after {
-        content: 'USDT';
+      .ssm {
         font-size: 10px;
         font-weight: normal;
       }

+ 110 - 22
src/views/mine/withdraw.vue

@@ -8,19 +8,15 @@
       <div class="">
         <div class="total_box">
           <div>
-            <span v-if="type == 1" class="text">{{ $t('lang120') }}(USDT)</span>
-            <span v-if="type == 2" class="text">{{ $t('lang120') }}(TEAC)</span>
+            <!-- <span v-if="type == 1" class="text">{{ $t('lang161') }}(USDT)</span> -->
+            <span class="text">{{ $t('lang161') }}({{ $t('lang174') }})</span>
           </div>
           <div class="total">
             <span>{{ Math.floor(assets * 100) / 100 || 0 }}</span>
           </div>
-          <div class="bo" v-if="type == 1" @click="type = 2">
-            <img src="@/assets/images/chance.png" class="icon" />
-            <span>{{ $t('lang121') }}</span>
-          </div>
-          <div class="bo" v-if="type == 2" @click="type = 1">
-            <img src="@/assets/images/chance.png" class="icon" />
-            <span>{{ $t('lang140') }}</span>
+          <div class="bo">
+            <!-- <img src="@/assets/images/chance.png" class="icon" />
+            <span>{{ $t('lang140') }}</span> -->
           </div>
           <div @click="navigation('withdrawRecord')" class="mx">{{ $t('lang122') }}</div>
         </div>
@@ -29,7 +25,7 @@
           <div class="box">
             <div class="box_item">
               <span class="left">{{ $t('lang123') }}</span>
-              <van-field v-model="value" :placeholder="$t('lang119')" class="input" input-align="right" />
+              <van-field v-model="amount" :placeholder="$t('lang119')" class="input" input-align="right" />
             </div>
             <div class="box_item">
               <span class="left">{{ $t('lang124') }}</span>
@@ -37,41 +33,52 @@
             </div>
             <div class="box_item">
               <span class="left">{{ $t('lang125') }}</span>
-              <van-field v-model="value" :placeholder="$t('lang118')" class="input" input-align="right" />
+              <van-field v-model="out_address" type="textarea" style="height: 46px" :placeholder="$t('lang118')" class="input" input-align="right" />
             </div>
           </div>
         </div>
-        <div class="buy" @click="navigatorToPage('GoodsDetail', item.id)">
+        <div class="buy" @click="withdrawCash">
           <van-button class="buy_btn" type="primary">{{ $t('lang117') }}</van-button>
         </div>
         <div class="tips">
           <div>{{ $t('lang116') }}</div>
-          <div>1.提现说明</div>
+          <div>
+            {{ $t('lang162') }}<br />
+            {{ $t('lang163') }}<br />
+            {{ $t('lang164') }}
+          </div>
         </div>
       </div>
     </div>
+    <van-overlay :show="show">
+      <div class="wrapper" @click.stop>
+        <van-loading type="spinner" class="loading" />
+      </div>
+    </van-overlay>
   </div>
 </template>
 
 <script>
 import { homeApi } from '@/api/index';
 import { dateFormat } from '@/utils/formatTool.js';
-import Clipboard from 'clipboard';
+import Web3 from 'web3';
+import { Notify } from 'vant';
 export default {
   data() {
     return {
       page: 0,
-      loading: false,
-      finished: false,
       total: 1,
-      nickname: '',
       assets: 0,
-      value: '',
-      type: 1, // 1udst奖励 2teac奖励
+      amount: '',
+      // type: 1, // 1udst奖励 2teac奖励
+      out_address: '',
+      dataInfo: {},
+      show: false,
     };
   },
   mounted() {
-    this.nickname = JSON.parse(localStorage.getItem('userinfo')).nickname;
+    this.withdrawInfo();
+    this.getUserInfo();
   },
   methods: {
     //返回上一页
@@ -87,6 +94,77 @@ export default {
     dateFormatFn(date) {
       return dateFormat(new Date(date * 1000), 'yyyy-MM-dd hh:mm:ss');
     },
+    withdrawInfo() {
+      homeApi.withdrawInfo().then(res => {
+        if (res.code == 200) {
+          this.dataInfo = res.data;
+        } else {
+        }
+      });
+    },
+    getUserInfo() {
+      homeApi.getUserInfo().then(res => {
+        if (res.code == 200) {
+          this.assets = res.data.balance;
+        } else {
+        }
+      });
+    },
+    withdrawCash() {
+      if (!this.amount) {
+        this.$toast(this.$t('lang165'));
+        return;
+      }
+      if (!this.out_address) {
+        this.$toast(this.$t('lang118'));
+        return;
+      }
+      // if (this.type == 1) {
+      //   if (this.amount > this.dataInfo.usdt * 1) {
+      //     this.$toast(this.$t('lang167'));
+      //     return;
+      //   }
+      // } else {
+      if (this.amount > this.assets * 1) {
+        this.$toast(this.$t('lang167'));
+        return;
+      }
+      // }
+      if (this.amount < this.dataInfo.withdraw_min_amount * 1) {
+        this.$toast(`${this.$t('lang166')} ${this.dataInfo.withdraw_min_amount}`);
+        return;
+      }
+      this.show = true;
+      let web3 = new Web3(window.web3.currentProvider);
+      web3.eth.personal
+        .sign(web3.utils.fromUtf8('withdraw'), this.out_address, (err, res) => {
+          let params = {
+            amount: this.amount,
+            sign: res,
+            to_address: this.out_address,
+          };
+          homeApi
+            .withdrawCash(params)
+            .then(res => {
+              this.show = false;
+              if (res.code == 200) {
+                this.amount = '';
+                this.out_address = '';
+                this.getUserInfo();
+                Notify({ type: 'success', message: res.msg });
+              } else {
+                Notify({ message: res.msg });
+              }
+            })
+            .catch(err => {
+              this.show = false;
+            });
+        })
+        .catch(err => {
+          this.$toast(err);
+          this.show = false;
+        });
+    },
   },
 };
 </script>
@@ -104,8 +182,8 @@ export default {
   letter-spacing: 1.5px;
   font-weight: 550;
   background: #fff;
-  padding: 14px 0;
-  z-index: 99;
+  padding: 15px 0;
+  // z-index: 99;
   .arrow_img {
     position: absolute;
     left: 20px;
@@ -237,6 +315,7 @@ export default {
       padding: 18px 0 18px;
       .box_item:last-child {
         border-bottom: none;
+        align-items: flex-start;
       }
       &_item {
         display: flex;
@@ -287,4 +366,13 @@ export default {
     padding: 14px;
   }
 }
+.wrapper {
+  // display: flex;
+  // justify-content: center;
+  .loading {
+    position: absolute;
+    left: 46%;
+    top: 46%;
+  }
+}
 </style>

+ 100 - 33
src/views/mine/withdrawRecord.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="assets">
+  <div class="assets" @scroll="handleScroll">
     <div class="head">
       <img @click="back" src="@/assets/images/back.png" class="arrow_img" />
       <span>{{ $t('lang127') }}</span>
@@ -7,22 +7,27 @@
 
     <div class="pd">
       <div class="">
-        <div class="bare" v-if="total > 1">
+        <div class="bare" v-if="total <= 0">
           <span>{{ $t('lang60') }}</span>
         </div>
         <div v-else class="container">
           <div class="list">
-            <div v-for="(item, index) in coinList" :key="index" class="li">
+            <div v-for="(item, index) in list" :key="index" class="li">
               <div class="box">
                 <div class="box_item">
                   <div class="f-c">
                     <div>
-                      <span class="num">2021.05.20 11:45:56</span>
-                      <span class="tag">{{ $t('lang128') }}</span>
+                      <span class="num">{{ dateFormatFn(item.create_time) }}</span>
+                      <span :class="item.status == 300 ? 'tag danger' : item.status == 400 ? 'tag fail' : 'tag'">{{ statusFn(item.status) }}</span>
                     </div>
-                    <span class="amount">56256.5</span>
+                    <span class="amount">{{ Math.floor(item.amount * 100) / 100 || 0 }}</span>
                   </div>
-                  <span class="key">张三嘻嘻嘻获得奖励</span>
+                  <span class="key" v-if="item.status == 200" style="display: flex; align-items: center">
+                    hash:<span class="color">{{ item.tx_hash }}</span
+                    ><img src="@/assets/images/trade/copy.png" alt="" class="copys" @click="copy" :data-clipboard-text="item.tx_hash" />
+                  </span>
+                  <span class="key" v-else-if="item.status == 0 || item.status == 100">{{ $t('lang180') }}</span>
+                  <span class="key" v-else>{{ $t('lang181') }}</span>
                 </div>
               </div>
             </div>
@@ -36,30 +41,47 @@
 <script>
 import { homeApi } from '@/api/index';
 import { dateFormat } from '@/utils/formatTool.js';
+import Clipboard from 'clipboard';
 export default {
   data() {
     return {
-      page: 0,
-      loading: false,
-      finished: false,
-      total: 1,
-      nickname: '',
+      page: 1,
+      total: 0,
       assets: 0,
-      coinList: [],
-      showPopover: false,
-      nft_list: [],
+      list: [],
     };
   },
   mounted() {
-    this.nickname = JSON.parse(localStorage.getItem('userinfo')).nickname;
-    this.actionGet();
-    this.getIndexGoodsInfo();
+    this.withdrawList();
   },
   methods: {
     //返回上一页
     back() {
       this.$router.back();
     },
+    statusFn(status) {
+      let result = '';
+      switch (status) {
+        case 0:
+          result = this.$t('lang178');
+          break;
+        case 100:
+          result = this.$t('lang175');
+          break;
+        case 200:
+          result = this.$t('lang176');
+          break;
+        case 300:
+          result = this.$t('lang179');
+          break;
+        case 400:
+          result = this.$t('lang177');
+          break;
+        default:
+          break;
+      }
+      return result;
+    },
     navigation(name, query) {
       console.log(query);
       if (query.coin_type == 'server') {
@@ -76,19 +98,47 @@ export default {
     dateFormatFn(date) {
       return dateFormat(new Date(date * 1000), 'yyyy-MM-dd hh:mm:ss');
     },
-    getIndexGoodsInfo() {
-      homeApi.getIndexGoodsInfo().then(res => {
-        if (res.code == 200) {
-          this.nft_list = res.data.transfer_list;
-        } else {
+    handleScroll(event) {
+      const container = event.target;
+      const scrollTop = container.scrollTop; // 滚动距离
+      const scrollHeight = container.scrollHeight; // 内容总高度
+      const clientHeight = container.clientHeight; // 可视区域高度
+      // 判断是否滑动到底部
+      if (scrollTop + clientHeight >= scrollHeight - 10) {
+        console.log('Bottom');
+        if (this.page != -1) {
+          this.page++; // 页数加 1
+          this.withdrawList(); // 触发加载更多
         }
-      });
+      }
+    },
+    copy(hash) {
+      if (hash) {
+        var clipboard = new Clipboard('.copys');
+        clipboard.on('success', e => {
+          this.$toast(this.$t('lang45'));
+          clipboard.destroy(); // 释放内存
+        });
+        clipboard.on('error', e => {
+          this.$toast(this.$t('lang46'));
+          clipboard.destroy(); // 释放内存
+        });
+      }
     },
-    actionGet() {
-      homeApi.assets().then(res => {
+    withdrawList() {
+      homeApi.withdrawList().then(res => {
         if (res.code == 200) {
-          this.assets = res.data.assets;
-          this.coinList = res.data.coin_list;
+          this.total = res.data.total;
+          if (this.list.length >= res.data.total) {
+            this.page = -1; // 重置为 -1,表示没有更多数据
+          } else {
+            this.list = [...this.list, ...res.data.rows];
+            console.log(this.list.length);
+            if (this.list.length >= res.data.total) {
+              this.page = -1; // 重置为 -1,表示没有更多数据
+            }
+          }
+        } else {
         }
       });
     },
@@ -143,7 +193,8 @@ export default {
   flex-direction: column;
 }
 .assets {
-  min-height: 100vh;
+  height: 100vh;
+  overflow: auto;
   padding: 80px 0 0;
   // background-color: #fafbfc;
   .top {
@@ -238,13 +289,13 @@ export default {
   }
   .list {
     border-radius: 20px;
-    padding: 0 8px;
+    padding: 14px 14px 0;
     margin-top: 16px;
     margin: 16px 6px;
     .li {
       font-size: 14px;
       color: rgba(51, 51, 51, 1);
-      padding: 14px 0;
+      padding: 0 0 14px;
 
       .box {
         padding-top: 10px;
@@ -272,11 +323,11 @@ export default {
             font-size: 18px;
           }
           .amount::before {
-            content: '+';
+            content: '-';
             font-size: 16px;
           }
           .amount::after {
-            content: 'USDT';
+            content: 'ChaBao';
             font-size: 10px;
             color: #2c2c2c;
           }
@@ -288,6 +339,22 @@ export default {
             margin-left: 6px;
             background-color: rgba(#29b286, 0.3);
           }
+          .fail {
+            color: #f13d3d;
+            background-color: rgba(#f13d3d, 0.3);
+          }
+          .danger {
+            color: #fc894d;
+            background-color: rgba(#fc894d, 0.3);
+          }
+          .color {
+            color: #29b286;
+          }
+        }
+        .copys {
+          width: 16px;
+          height: 16px;
+          margin-left: 4px;
         }
       }
     }

+ 25 - 13
src/views/trade/detail.vue

@@ -19,15 +19,15 @@
         <div class="left">
           <div class="price">
             <span>{{ product.info.price }}</span>
-            <span class="small">USDT</span>
-            <span class="small">{{ product.info.cost_price }}USDT</span>
+            <span class="small">{{ $t('lang174') }}</span>
+            <span class="small">{{ product.info.cost_price }}{{ $t('lang174') }}</span>
           </div>
           <div class="tags">
             <van-tag class="tag" type="info">{{ $t('lang53') }}</van-tag>
             <span>{{ product.info.num }}{{ $t('lang52') }}</span>
           </div>
         </div>
-        <div class="countdown">
+        <div class="countdown" v-if="product.info.end_time - product.info.start_time < 0">
           <div class="flex">
             <img src="@/assets/images/trade/clock.png" alt="" class="clock" />
             <span>{{ $t('lang54') }}</span>
@@ -43,26 +43,31 @@
             </template>
           </van-count-down>
         </div>
+        <div class="countdown end" v-else>{{ $t('lang173') }}</div>
       </div>
       <div class="goods_info">
         <div class="flex jsb">
-          <span class="title">{{ product.info.zh_name }}</span>
+          <span class="title">{{ product.info.name }}</span>
           <span class="red">{{ $t('lang55') }}{{ product.info.stock }}{{ $t('lang7') }}</span>
         </div>
         <div class="tag">{{ $t('lang56') }}</div>
       </div>
     </div>
+    <!-- 期数 -->
     <div class="issue">
-      <div v-for="(item, index) in product.times" :key="index" :class="[item.status == 2 ? 'item current' : 'item']">
+      <div v-for="(item, index) in product.times" :key="index" :class="[item.status == 1 ? 'item current' : 'item']">
         <div class="flex jsb">
           <span>{{ item.title }}</span>
-          <span> {{ item.start_time_text.split(' ')[0] }}-{{ item.end_time_text.split(' ')[0] }} </span>
-          <span class="red">{{ item.price }}</span>
+          <span> {{ item.start_time_text.split(' ')[0] }}~{{ item.end_time_text.split(' ')[0] }} </span>
+          <span class="red">
+            {{ item.price }}<span class="ssm">{{ $t('lang174') }}</span>
+          </span>
           <span class="tag">{{ statusFn(item.status) }}</span>
         </div>
         <van-icon name="ellipsis" size="15" color="#aaaaaa" class="ellipsis-icon" />
       </div>
     </div>
+    <!-- tag -->
     <div class="zp flex jsb">
       <div class="flex">
         <img src="@/assets/images/trade/safe.png" alt="" class="safe" />
@@ -92,7 +97,7 @@
           </div>
         </div>
         <div class="more" v-if="product.order.length == 0">{{ $t('lang60') }}</div>
-        <div class="more" v-else>{{ $t('lang61') }}</div>
+        <!-- <div class="more" v-else>{{ $t('lang61') }}</div> -->
       </div>
     </div>
 
@@ -102,7 +107,7 @@
       <!-- <div class="box flex jsb">
         <div class="item">
           <span class="key">{{ $t('lang63') }}</span>
-          <span class="val ellipsis">{{ product.info.zh_name }}</span>
+          <span class="val ellipsis">{{ product.info.name }}</span>
         </div>
         <div class="item">
           <span class="key">净含量:</span>
@@ -299,7 +304,6 @@ export default {
       this.areaId = e;
     },
     submit() {
-      this.loading = true;
       //   Dialog.confirm({
       //     title: '标题',
       //     message: '弹窗内容',
@@ -310,9 +314,12 @@ export default {
       //     .catch(() => {
       //       // on cancel
       //     });
+      console.log(this.areaId);
+
       if (!this.areaId) {
-        Notify({ type: 'warning', message: this.$t('lang69') });
+        return Notify({ type: 'warning', message: this.$t('lang69') });
       }
+      this.loading = true;
       homeApi.create({ order_id: this.product.info.id, product_id: this.product.info.product_id, area_id: this.areaId }).then(res => {
         if (res.code == 200) {
           this.loading = false;
@@ -383,8 +390,13 @@ export default {
         }
       }
     }
-
+    .end {
+      text-align: center;
+      line-height: 40px;
+    }
     .countdown {
+      min-width: 100px;
+      height: 40px;
       font-size: 13px;
       border-left: 1px solid #f1f1f1;
       padding-left: 10px;
@@ -445,7 +457,7 @@ export default {
       margin-left: 0.8em;
     }
   }
-  .red::after {
+  .ssm {
     content: 'USDT';
     font-size: 8px;
   }

+ 35 - 31
src/views/trade/index.vue

@@ -26,30 +26,37 @@
             <van-icon name="arrow-down" color="#999" size="14px" />
           </div>
         </div>
-        <div class="goods_list" v-for="(item1, index1) in item.product" :key="index1" @click="navigatorToPage('GoodsDetail', item1.id)">
-          <van-image class="goods_list_img" radius="10" :src="item1.img_url" />
-          <div class="right">
-            <span class="ellipsis">{{ item1.zh_name }}</span>
-            <div class="cen">
-              <span class="money">{{ item1.price }}</span>
-              <div class="yel">
-                <van-count-down class="count" :time="item1.end_time - item1.start_time" :format="`${$t('lang8')} DD ${$t('lang9')} HH ${$t('lang10')} mm ${$t('lang11')} ss ${$t('lang12')}`" />
-              </div>
-            </div>
-            <div class="flex jsb flex_end">
-              <div>
-                <span class="time_text">{{ $t('lang6') }} {{ item1.cost_price }}USDT</span>
-                <div class="progress">
-                  <van-progress :percentage="(item1.num / item1.stock) * 100 || 0" class="pro" color="#29b286" track-color="#9DDAC6" stroke-width="10" :show-pivot="false"> </van-progress>
-                  <span class="p_text">{{ $t('lang26') }}{{ (Math.floor((item1.num / item1.stock) * 100) * 100) / 100 || 0 }}%</span>
+        <div v-if="item.product.length > 0">
+          <div class="goods_list" v-for="(item1, index1) in item.product" :key="index1" @click="navigatorToPage('GoodsDetail', item1.id)">
+            <van-image class="goods_list_img" radius="10" :src="item1.img_url" />
+            <div class="right">
+              <span class="ellipsis">{{ item1.name }}</span>
+              <div class="cen">
+                <span class="money"
+                  >{{ item1.price }}<span class="ssm">{{ $t('lang174') }}</span></span
+                >
+                <div class="yel">
+                  <van-count-down class="count" :time="item1.end_time - item1.start_time" :format="`${$t('lang8')} DD ${$t('lang9')} HH ${$t('lang10')} mm ${$t('lang11')} ss ${$t('lang12')}`" />
                 </div>
               </div>
-              <div class="buy">
-                <van-button class="buy_btn" type="primary">{{ $t('lang27') }}</van-button>
+              <div class="flex jsb flex_end">
+                <div>
+                  <span class="time_text">{{ $t('lang6') }} {{ item1.cost_price }}{{ $t('lang174') }}</span>
+                  <div class="progress">
+                    <van-progress :percentage="(item1.num / item1.stock) * 100 || 0" class="pro" color="#29b286" track-color="#9DDAC6" stroke-width="10" :show-pivot="false"> </van-progress>
+                    <span class="p_text">{{ $t('lang26') }}{{ (Math.floor((item1.num / item1.stock) * 100) * 100) / 100 || 0 }}%</span>
+                  </div>
+                </div>
+                <div class="buy">
+                  <van-button class="buy_btn" type="primary">{{ $t('lang27') }}</van-button>
+                </div>
               </div>
             </div>
           </div>
         </div>
+        <div class="nomore" v-else>
+          <span>{{ $t('lang60') }}</span>
+        </div>
       </div>
       <!-- <div class="pd goods_box">
         <div class="title">
@@ -150,17 +157,6 @@ export default {
       indexinfo: {
         system_name: '',
         system_logo: '',
-        reservation_start: undefined, // 预约开始
-        reservation_end: undefined, // 预约结束
-        mate_start: undefined, // 匹配开始
-        mate_end: undefined, // 匹配结束
-        payment_start: undefined,
-        payment_end: undefined,
-        leak_start: undefined,
-        leak_end: undefined,
-        ad_video: '',
-        project_info: undefined,
-        project_img: '',
         banner_list: [],
         notice_list: [],
       },
@@ -398,6 +394,9 @@ export default {
     display: flex;
     justify-content: space-between;
     align-items: center;
+    .flex{
+      max-width: 80%;
+    }
     .all {
       font-size: 12px;
       font-weight: normal;
@@ -454,8 +453,7 @@ export default {
       .money {
         font-size: 15px;
       }
-      .money::after {
-        content: 'USDT';
+      .ssm {
         font-size: 10px;
         font-weight: normal;
       }
@@ -572,6 +570,12 @@ export default {
 ::v-deep .van-cascader__option {
   color: #000;
 }
+.nomore {
+  color: #aaa;
+  text-align: center;
+  font-size: 12px;
+  padding: 20px 0;
+}
 .ellipsis {
   overflow: hidden; /* 确保超出容器的文本被裁剪 */
   white-space: nowrap; /* 确保文本在一行内显示 */