active1JYB.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. var content = {
  2. 'cn': {
  3. headers1: '登录',
  4. headers2: 'CWG Markets',
  5. headers3: 'CWG精英杯<br>实盘交易大赛',
  6. table1: '交易排名',
  7. table2: '最近更新:',
  8. table3: '排名',
  9. table4: '姓名',
  10. table5: '交易账号',
  11. table6: '盈利百分比',
  12. table7: '暂无数据',
  13. footer1: '© 2023 CWG MARKETS',
  14. footer2: '隐私政策',
  15. footer3: '条款和条件',
  16. },
  17. 'zhHant': {
  18. headers1: '登入',
  19. headers2: 'CWG 市場',
  20. headers3: 'CWG精英盃<br>實盤交易大賽',
  21. table1: '交易排名',
  22. table2: '最近更新:',
  23. table3: '排名',
  24. table4: '姓名',
  25. table5: '交易帳號',
  26. table6: '獲利百分比',
  27. table7: '暫無資料',
  28. footer1: '© 2023 CWG MARKETS',
  29. footer2: '隱私權政策',
  30. footer3: '條款與條件',
  31. },
  32. 'vn': {
  33. headers1: 'Đăng nhập',
  34. headers2: 'CWG Markets',
  35. headers3: 'Giải đấu giao dịch thực tế CWG Elite Cup<br>',
  36. table1: 'Xếp hạng giao dịch',
  37. table2: 'Cập nhật gần đây:',
  38. table3: 'Xếp hạng',
  39. table4: 'Tên',
  40. table5: 'Tài khoản giao dịch',
  41. table6: 'Tỷ lệ lợi nhuận',
  42. table7: 'Chưa có dữ liệu',
  43. footer1: '© 2023 CWG MARKETS',
  44. footer2: 'Chính sách bảo mật',
  45. footer3: 'Điều khoản và điều kiện',
  46. }
  47. }
  48. let vm = new Vue({
  49. el: "#active1",
  50. data: {
  51. //多语言
  52. langList: {
  53. cn: "中文简体",
  54. zhHant: "中文繁體",
  55. vn: "Tiếng Việt",
  56. },
  57. language: "cn",
  58. lang: {},
  59. flag: false,
  60. loading: false,
  61. mock_options: {
  62. time:'',
  63. list:[]
  64. },
  65. // img_logo: logo,
  66. timer: 59,
  67. interval: null,
  68. getCodeString: "",
  69. notCountry:[
  70. 'AF','AI','AG','BS','BY',
  71. 'BZ','BA','BI','CF','CD','CU',
  72. 'ET','FJ','PS','GN','GW','HT',
  73. 'IR','IQ','LB','LY','ML','MM',
  74. 'NI','KP','PW','RU','SO','SS',
  75. 'SD','SY','UA','US','VE','YE','ZW','MY'
  76. ],
  77. // 表单参数
  78. params: {
  79. agentId: null,
  80. comPoint: null,
  81. sourceCode:null,
  82. subId: "",
  83. email: "",
  84. password: "",
  85. country: "",
  86. emailCode: "",
  87. phone: "",
  88. w: "",
  89. agree: false,
  90. linkValue: null,
  91. },
  92. clientWidth:'',
  93. pagerInfo: {row: 10, current: 1, pageTotal: 0, rowTotal: 0},//分页
  94. pictLoading:false,
  95. // 验证规则
  96. rules: {
  97. country: [
  98. {
  99. validator: (rule, value, callback) => {
  100. if (value != "" && value != null) {
  101. callback();
  102. } else {
  103. callback(new Error(content[sessionStorage.getItem('lang')].country));
  104. }
  105. },
  106. trigger: "blur",
  107. },
  108. ],
  109. email: [
  110. {
  111. validator: (rule, value, callback) => {
  112. if (/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(value)) {
  113. callback();
  114. } else {
  115. callback(new Error(content[sessionStorage.getItem('lang')].email));
  116. }
  117. },
  118. trigger: "blur",
  119. },
  120. ],
  121. emailCode: [
  122. {
  123. validator: (rule, value, callback) => {
  124. if (
  125. value != "" &&
  126. value != null
  127. ) {
  128. callback();
  129. } else {
  130. callback(new Error(content[sessionStorage.getItem('lang')].codeInput));
  131. }
  132. },
  133. trigger: "blur",
  134. },
  135. ],
  136. password: [
  137. {
  138. validator: (rule, value, callback) => {
  139. if (/^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/.test(value)) {
  140. callback();
  141. } else {
  142. callback(new Error(content[sessionStorage.getItem('lang')].password));
  143. }
  144. },
  145. trigger: "blur",
  146. },
  147. ],
  148. agree: [
  149. {
  150. validator: (rule, value, callback) => {
  151. if (value) {
  152. callback();
  153. } else {
  154. callback(new Error(content[sessionStorage.getItem('lang')].agree));
  155. }
  156. },
  157. trigger: "change",
  158. },
  159. ],
  160. phone: [
  161. {
  162. validator: (rule, value, callback) => {
  163. if (/^[0-9]\d*$/.test(value)) {
  164. callback();
  165. } else {
  166. callback(new Error(content[sessionStorage.getItem('lang')].phone));
  167. }
  168. },
  169. trigger: "blur",
  170. },
  171. ],
  172. },
  173. notRegisterMsg:"",
  174. notRegisterMsgOpen:false,
  175. imgUrl: '',
  176. ho: '',
  177. isPc:null,
  178. centerDialogVisible:false,
  179. },
  180. computed: {
  181. rule1: function () {
  182. if (!this.params.password) {
  183. return false;
  184. }
  185. return /^.{8,16}$/.test(this.params.password);
  186. },
  187. rule2: function () {
  188. return /^(?=.*?[a-z])(?=.*?[A-Z]).*$/.test(this.params.password);
  189. },
  190. rule3: function () {
  191. return /^(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?!.*([~!@&%$^\\(\\)#_]).*\\1.*\\1)[A-Za-z0-9~!@&%$^\\(\\)#_]{8,16}$/.test(
  192. this.params.password
  193. );
  194. },
  195. },
  196. methods: {
  197. // 语言切换函数
  198. chooseLang(key) {
  199. this.lang = content[key];
  200. this.language = key;
  201. sessionStorage.setItem("lang", this.language);
  202. location.reload();
  203. this.initTimer();
  204. },
  205. //分页返回数据
  206. handleSizeChange (val) {
  207. this.pagerInfo.row = val;
  208. this.searchFunc();
  209. },
  210. handleCurrentChange (val) {
  211. this.pagerInfo.current = val;
  212. this.searchFunc();
  213. },
  214. //获取列表数据
  215. async searchFunc () {
  216. this.pictLoading = true;
  217. axios.post(this.imgUrl + '/custom/activity/hundred/elite/agent/vip/ranking', {
  218. page: {
  219. current: this.pagerInfo.current,
  220. row: this.pagerInfo.row
  221. }
  222. //参数
  223. }).then(res => {//请求成功后的处理函数
  224. if (res.data.code == 200) {
  225. if (res.data.data && res.data.data.length) {
  226. this.mock_options.list = res.data.data;
  227. this.mock_options.time = res.data.data[0].addTime.split(' ')[0];
  228. }
  229. if (res.data.page != null) {
  230. this.pagerInfo.rowTotal = res.data.page.rowTotal;
  231. this.pagerInfo.pageTotal = res.data.page.pageTotal;
  232. } else {
  233. this.pagerInfo.rowTotal = 0;
  234. }
  235. this.pictLoading = false;
  236. } else {
  237. this.$message.error(res.data.msg);
  238. this.pictLoading = false;
  239. }
  240. }).catch(err => {//请求失败后的处理函数
  241. this.pictLoading = false;
  242. })
  243. },
  244. //获取国家列表
  245. async getCountry() {
  246. axios.post(this.imgUrl + '/country/get', {
  247. ...this.params
  248. //参数
  249. }).then(res => {//请求成功后的处理函数
  250. if (res.data.code == 200) {
  251. this.mock_options = res.data.data;
  252. } else {
  253. this.$message.error(res.data.msg);
  254. }
  255. }).catch(err => {//请求失败后的处理函数
  256. })
  257. },
  258. //获取当前国家编码
  259. async getCountryMsg() {
  260. axios.get(this.imgUrl + '/country/get', {
  261. //参数
  262. }).then(res => {//请求成功后的处理函数
  263. if (res.data.code == 200) {
  264. this.notRegisterMsg = res.data.msg
  265. if ((res.data.msg == "GB"||res.data.msg == "IE")&&res.data.data.indexOf('//195.224.141.218') == -1) {
  266. window.location.href = 'https://www.cwgmarkets.co.uk';
  267. } else {
  268. document.getElementById("pre").style.display = 'none'
  269. }
  270. } else {
  271. document.getElementById("pre").style.display = 'none'
  272. this.$message.error(res.data.msg);
  273. }
  274. }).catch(err => {//请求失败后的处理函数
  275. })
  276. },
  277. //获取当前国家编码
  278. async getCountryCode() {
  279. axios.post(this.imgUrl + '/country/getCodeByIp', {
  280. //参数
  281. }).then(res => {//请求成功后的处理函数
  282. if (res.data.code == 200) {
  283. if (this.notCountry.indexOf(res.data.msg)==-1) {
  284. this.params.country = res.data.msg;
  285. }
  286. if (!sessionStorage.getItem("timer")) {
  287. let lang = sessionStorage.getItem("lang")
  288. ? sessionStorage.getItem("lang")
  289. : this.params.country == "CN"
  290. ? "cn"
  291. : "en";
  292. sessionStorage.clear();
  293. sessionStorage.setItem("lang", lang);
  294. } else {
  295. let timer = sessionStorage.getItem("timer");
  296. let lang = sessionStorage.getItem("lang")
  297. ? sessionStorage.getItem("lang")
  298. : this.params.country == "CN"
  299. ? "cn"
  300. : "en";
  301. sessionStorage.clear();
  302. sessionStorage.setItem("lang", lang);
  303. sessionStorage.setItem("timer", timer);
  304. }
  305. this.language = sessionStorage.getItem("lang");
  306. this.lang = content[this.language];
  307. this.initTimer();
  308. } else {
  309. this.$message.error(res.data.msg);
  310. }
  311. }).catch(err => {//请求失败后的处理函数
  312. })
  313. },
  314. // 注册
  315. register: async function () {
  316. if (this.notRegisterMsg == 'MY') {
  317. this.notRegisterMsgOpen = true;
  318. return
  319. }
  320. this.$refs["params"].validate(async (valid) => {
  321. if (valid) {
  322. if (this.flag) {
  323. return;
  324. } else {
  325. this.flag = true;
  326. }
  327. axios.post(this.imgUrl + '/custom/register', {
  328. ...this.params
  329. //参数
  330. }).then(res => {//请求成功后的处理函数
  331. if (res.data.code == 200) {
  332. this.loading = true;
  333. this.$message({
  334. message: this.lang.registerSuc,
  335. type: 'success'
  336. });
  337. this.login();
  338. this.flag = false;
  339. } else {
  340. this.$message.error(res.data.msg);
  341. this.flag = false;
  342. }
  343. }).catch(err => {//请求失败后的处理函数
  344. })
  345. } else {
  346. return false;
  347. }
  348. });
  349. },
  350. // 登陆
  351. login: async function () {
  352. axios.post(this.imgUrl + '/custom/login', {
  353. loginName: this.params.email,
  354. password: this.params.password,
  355. //参数
  356. }).then(res => {//请求成功后的处理函数
  357. if (res.data.code == 200) {
  358. sessionStorage.setItem("access_token", res.data.data);
  359. axios.defaults.headers.common["Access-Token"] = res.data.data;
  360. this.getLoginInfo();
  361. } else {
  362. this.$message.error(res.data.msg);
  363. }
  364. }).catch(err => {//请求失败后的处理函数
  365. })
  366. },
  367. //获取登录信息
  368. async getLoginInfo() {
  369. axios.post(this.imgUrl + '/custom/info', {
  370. //参数
  371. }).then(res => {//请求成功后的处理函数
  372. if (res.data.code == 200) {
  373. this.loading = true;
  374. // this.$store.commit("InitInfo", res.data.data);
  375. this.$message({
  376. message: this.lang.LoginSuccess,
  377. type: 'success'
  378. });
  379. setTimeout(() => {
  380. this.loading = false;
  381. Session.Set("user", JSON.stringify(res.data.data), true)
  382. window.location.href = this.imgUrl + '/#/customer/index';
  383. }, 1000);
  384. } else {
  385. this.$message.error(this.lang.SystemError);
  386. }
  387. }).catch(err => {//请求失败后的处理函数
  388. })
  389. },
  390. // 获取验证码
  391. getCode: async function (val) {
  392. if (val) {
  393. if (!this.params.country) {
  394. this.$message.error(content[sessionStorage.getItem("lang")].country);
  395. return;
  396. }
  397. if (!this.params.email) {
  398. this.$message.error(content[sessionStorage.getItem("lang")].emailempty);
  399. return;
  400. }
  401. if (!/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(this.params.email)) {
  402. this.$message.error(content[sessionStorage.getItem("lang")].email);
  403. return;
  404. }
  405. }
  406. this.getCodeString =
  407. content[sessionStorage.getItem("lang")].waitCode1 +
  408. this.timer +
  409. content[sessionStorage.getItem("lang")].waitCode2;
  410. let that = this;
  411. if (!this.interval) {
  412. this.getCode1(val);
  413. this.interval = setInterval(() => {
  414. that.timer--;
  415. sessionStorage.setItem("timer", that.timer);
  416. that.getCodeString =
  417. content[sessionStorage.getItem("lang")].waitCode1 +
  418. that.timer +
  419. content[sessionStorage.getItem("lang")].waitCode2;
  420. if (that.timer == 0) {
  421. this.getCodeString = content[sessionStorage.getItem("lang")].code;
  422. clearInterval(that.interval);
  423. that.interval = null;
  424. that.timer = 59;
  425. sessionStorage.setItem("timer", that.timer);
  426. }
  427. }, 1000);
  428. }
  429. },
  430. //验证码
  431. async getCode1(val) {
  432. if (val) {
  433. axios.post(this.imgUrl + '/custom/register/send/code', {
  434. ...this.params
  435. //参数
  436. }).then(res => {//请求成功后的处理函数
  437. if (res.data.code == 200) {
  438. this.$message({
  439. message: this.lang.CodeSuccess,
  440. type: 'success'
  441. });
  442. } else {
  443. this.$message.error(res.data.msg);
  444. }
  445. }).catch(err => {//请求失败后的处理函数
  446. })
  447. }
  448. },
  449. // 初始化定时器
  450. initTimer: function () {
  451. let t = sessionStorage.getItem("timer") || this.timer;
  452. if (t == 59) {
  453. this.getCodeString = content[sessionStorage.getItem("lang")].code;
  454. } else {
  455. this.timer = sessionStorage.getItem("timer");
  456. this.getCode(0);
  457. }
  458. },
  459. getQueryStringRegExp(name){
  460. var reg = new RegExp("(^|\\?|&)"+ name +"=([^&]*)(\\s|&|$)", "i");
  461. if (reg.test(location.href)) return unescape(RegExp.$2.replace(/\+/g, " ")); return "";
  462. },
  463. getCodeQuery(){
  464. this.params.sourceCode = this.getQueryStringRegExp('ex')
  465. this.params.w = this.getQueryStringRegExp('w')
  466. this.params.subId = this.getQueryStringRegExp('SUBID')
  467. this.params.agentId = Number(this.getQueryStringRegExp('mmdi')) || null;
  468. this.params.linkValue = this.getQueryStringRegExp('mmF')
  469. switch (this.getQueryStringRegExp('mmF')) {
  470. case "F0":
  471. this.params.comPoint = 0;
  472. break;
  473. case "F1":
  474. this.params.comPoint = 10;
  475. break;
  476. case "F2":
  477. this.params.comPoint = 20;
  478. break;
  479. case "F3":
  480. this.params.comPoint = 30;
  481. break;
  482. }
  483. switch (this.getQueryStringRegExp('mmB')) {
  484. case "B0":
  485. this.params.ibInvalid = 0;
  486. break;
  487. case "B1":
  488. this.params.ibInvalid = 1;
  489. break;
  490. }
  491. },
  492. //判断pc、移动
  493. IsPC() {
  494. var userAgentInfo = navigator.userAgent;
  495. var Agents = ['Android', 'iPhone',
  496. 'SymbianOS', 'Windows Phone',
  497. 'iPad', 'iPod'
  498. ];
  499. var flag = true;
  500. for (var i = 0; i < Agents.length; i++) {
  501. if (userAgentInfo.indexOf(Agents[i]) != -1) {
  502. flag = false;
  503. break;
  504. }
  505. }
  506. return flag;
  507. },
  508. openMP4(){
  509. this.centerDialogVisible = true;
  510. },
  511. },
  512. watch:{
  513. 'centerDialogVisible'(val){
  514. if (!val) {
  515. document.getElementById("videoplayer").pause();
  516. }
  517. }
  518. },
  519. mounted() {
  520. // console.log(document.body.clientWidth);
  521. // this.clientWidth = document.body.clientWidth;
  522. // if (window.location.search.indexOf('&ex=') != '-1') {
  523. // this.params.sourceCode = window.location.search.split('&ex=')[1] || null;
  524. // } else if (window.location.search.indexOf('?ex=') != '-1') {
  525. // this.params.sourceCode = window.location.search.split('?ex=')[1] || null;
  526. // }
  527. // this.getCodeQuery();
  528. this.ho = window.location.host.split('.')[1];
  529. this.imgUrl = window.location.origin;
  530. // this.imgUrl = 'http://193.134.208.230:8000';
  531. this.getCountryMsg()
  532. if (sessionStorage.getItem("lang")) {
  533. this.language = sessionStorage.getItem("lang"),
  534. this.lang = content[sessionStorage.getItem("lang")];
  535. } else {
  536. var jsSrc =(navigator.language || navigator.browserLanguage).toLowerCase();
  537. if(jsSrc.indexOf('zh-C') >= 0){
  538. this.language = 'cn'
  539. this.lang = content['cn'];
  540. }else if(jsSrc.indexOf('zh-') >= 0){
  541. this.language = 'zhHant'
  542. this.lang = content['zhHant'];
  543. }else if(jsSrc.indexOf('vi') >= 0){
  544. this.language = 'vn'
  545. this.lang = content['vn'];
  546. }else{
  547. this.language = 'cn'
  548. this.lang = content['cn'];
  549. }
  550. sessionStorage.setItem("lang", this.language);
  551. }
  552. this.searchFunc();//获取列表数据
  553. //获取国家
  554. // this.getCountryCode();
  555. // this.getCountry();
  556. // this.initTimer();
  557. //是否pc
  558. // if (this.IsPC()) {
  559. // this.isPc = true;
  560. // } else {
  561. // this.isPc = false;
  562. // }
  563. },
  564. destroyed() {
  565. clearInterval(this.interval);
  566. },
  567. });