download.vue 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243
  1. <template>
  2. <cwg-page-wrapper class="create-page" :isHeaderFixed="true">
  3. <view class="container">
  4. <view
  5. class="app-page-head card-header d-flex gap-3 flex-wrap align-items-center justify-content-between border-0">
  6. <view class="app-page-head mb-0">
  7. <h1 class="app-page-title" v-t="'Downloadpage.item1'"></h1>
  8. </view>
  9. </view>
  10. <view class="col-lg-12">
  11. <view class="clearfix">
  12. <view class="card">
  13. <view class="card-header">
  14. <view class="nav nav-pills nav-fill card-header-pills">
  15. <view class="nav-item">
  16. <view class="nav-link cursor-pointer" :class="{ 'active': activeName == 'MT4' }"
  17. @click="activeName = 'MT4'">MetaTrader 4</view>
  18. </view>
  19. <view class="nav-item">
  20. <view class="nav-link cursor-pointer" :class="{ 'active': activeName == 'MT5' }"
  21. @click="activeName = 'MT5'">MetaTrader 5</view>
  22. </view>
  23. <!-- <view class="nav-item">
  24. <view class="nav-link cursor-pointer" :class="{ 'active': activeName == 'App' }"
  25. @click="activeName = 'App'" v-t="'vu.Downloadpage.item41'"></view>
  26. </view> -->
  27. </view>
  28. </view>
  29. <view class="card-body">
  30. <view class="tab-content">
  31. <view v-if="activeName == 'MT4'">
  32. <view class="row">
  33. <view class="col-12">
  34. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item2'" />
  35. <p class="mb-5 lh-sm" v-t="'Downloadpage.item3'" />
  36. </view>
  37. <view class="col-lg-4 mb-5">
  38. <cwg-link type="download"
  39. :url="config.Host80 + '/mt/cwgmarketssvgltd4setup.exe'"
  40. downloadName="cwgmarketssvgltd4setup.exe"
  41. title="Downloadpage.item4">
  42. <view class="card card-action action-elevate action-border-primary">
  43. <view class="row g-0">
  44. <view class="col-md-4">
  45. <view
  46. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  47. <image src="/static/images/vu/windows.png" alt=""
  48. mode="widthFix" class="img-fluid rounded" />
  49. </view>
  50. </view>
  51. <view class="col-md-8 py-3 d-flex flex-column">
  52. <view class="card-body px-3 py-2">
  53. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  54. <h4>
  55. <view class="text-dark" v-t="'Downloadpage.item4'" />
  56. </h4>
  57. <p v-t="'Downloadpage.item5'" />
  58. </view>
  59. </view>
  60. </view>
  61. </view>
  62. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  63. <!-- class="fi fi-rr-download"></i> {{-->
  64. <!-- t('Downloadpage.item6-1') }}</view>-->
  65. </cwg-link>
  66. </view>
  67. <view class="col-lg-4 mb-5">
  68. <cwg-link type="download" class="download-card"
  69. :url="config.Host80 + '/mt/mt4.zip'"
  70. downloadName="mt4.zip"
  71. title="Downloadpage.item4-1">
  72. <!-- <view class="btn btn-danger waves-effect waves-light">-->
  73. <!-- <i class="fi fi-rr-download"></i> {{-->
  74. <!-- t('Downloadpage.item6-1') }}-->
  75. <!-- </view>-->
  76. <view class="card card-action action-elevate action-border-primary">
  77. <view class="row g-0">
  78. <view class="col-md-4">
  79. <view
  80. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  81. <image src="/static/images/vu/windows.png" alt=""
  82. mode="widthFix" class="img-fluid rounded" />
  83. </view>
  84. </view>
  85. <view class="col-md-8 py-3 d-flex flex-column">
  86. <view class="card-body px-3 py-2">
  87. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  88. <h4>
  89. <view class="text-dark" v-t="'Downloadpage.item4-1'" />
  90. </h4>
  91. <p v-t="'Downloadpage.item5'" />
  92. </view>
  93. </view>
  94. </view>
  95. </view>
  96. </cwg-link>
  97. </view>
  98. <view class="col-lg-4 mb-5">
  99. <cwg-link type="download" class="download-card"
  100. :url="config.Host80 + '/mt/MetaTrader4.pkg'"
  101. downloadName="MetaTrader4.pkg"
  102. title="Downloadpage.item6">
  103. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  104. <!-- class="fi fi-rr-download"></i> {{-->
  105. <!-- t('Downloadpage.item6-1') }}</view>-->
  106. <view class="card card-action action-elevate action-border-primary">
  107. <view class="row g-0">
  108. <view class="col-md-4">
  109. <view
  110. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  111. <image src="/static/images/vu/ios.png" alt=""
  112. mode="widthFix" class="img-fluid rounded" />
  113. </view>
  114. </view>
  115. <view class="col-md-8 py-3 d-flex flex-column">
  116. <view class="card-body px-3 py-2">
  117. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  118. <h4>
  119. <view class="text-dark" v-t="'Downloadpage.item6'" />
  120. </h4>
  121. <p v-t="'Downloadpage.item5'" />
  122. </view>
  123. </view>
  124. </view>
  125. </view>
  126. </cwg-link>
  127. </view>
  128. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item38'" />
  129. <view class="col-lg-4 mb-5">
  130. <cwg-link type="html" target="_blank"
  131. :url="'https://www.' + config.host + '.com/' + locale + '/vu-mt4-web-trading/web'"
  132. title="Downloadpage.item38">
  133. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  134. <!-- class="fi fi-rr-download"></i> 开始交易</view>-->
  135. <view class="card card-action action-elevate action-border-primary">
  136. <view class="row g-0">
  137. <view class="col-md-4">
  138. <view
  139. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  140. <image src="/static/images/vu/icon-windows-ios.png" alt=""
  141. mode="widthFix" class="img-fluid rounded" />
  142. </view>
  143. </view>
  144. <view class="col-md-8 py-3 d-flex flex-column">
  145. <view class="card-body px-3 py-2">
  146. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  147. <h4>
  148. <view class="text-dark" v-t="'Downloadpage.item40'" />
  149. </h4>
  150. <p>PC and macOS</p>
  151. </view>
  152. </view>
  153. </view>
  154. </view>
  155. </cwg-link>
  156. </view>
  157. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item7'" />
  158. <view class="col-lg-6 mb-5">
  159. <cwg-link type="download" class="download-card" :url="mt41"
  160. downloadName="MetaTrader4.abb"
  161. title="Downloadpage.item9">
  162. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  163. <!-- class="fi fi-rr-download"></i> {{-->
  164. <!-- t('Downloadpage.item6-1') }}</view>-->
  165. <view class="card card-action action-elevate action-border-primary">
  166. <view class="row g-0">
  167. <view class="col-md-6">
  168. <view class="card-header border-0 download-qr-header position-relative">
  169. <QrCode :text="mt42" :width="qrSize" :height="qrSize" />
  170. <!-- <image src="/static/images/vu/android.png" alt=""
  171. mode="widthFix" class="img-fluid" /> -->
  172. </view>
  173. </view>
  174. <view class="col-md-6 py-3 d-flex flex-column">
  175. <view class="card-body px-3 py-2">
  176. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  177. <h4>
  178. <view class="text-dark">Google Play (Android)</view>
  179. </h4>
  180. <p>CWG MT4</p>
  181. </view>
  182. </view>
  183. </view>
  184. </view>
  185. </cwg-link>
  186. </view>
  187. <view class="col-lg-6 mb-5">
  188. <cwg-link type="download" class="download-card" :url="mt42"
  189. downloadName="MetaTrader4.apk"
  190. title="Downloadpage.item9">
  191. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  192. <!-- class="fi fi-rr-download"></i> {{-->
  193. <!-- t('Downloadpage.item6-1') }}</view>-->
  194. <view class="card card-action action-elevate action-border-primary">
  195. <view class="row g-0">
  196. <view class="col-md-6">
  197. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  198. <QrCode :text="mt42" :width="qrSize" :height="qrSize" />
  199. <!-- <image src="/static/images/vu/metatrade.png" alt=""
  200. mode="widthFix" class="img-fluid" /> -->
  201. </view>
  202. </view>
  203. <view class="col-md-6 py-3 d-flex flex-column">
  204. <view class="card-body px-3 py-2">
  205. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  206. <h4>
  207. <view class="text-dark">MetaTrader .Apk</view>
  208. </h4>
  209. <p>CWG MT4</p>
  210. </view>
  211. </view>
  212. </view>
  213. </view>
  214. </cwg-link>
  215. </view>
  216. <view class="col-lg-6 mb-5">
  217. <cwg-link type="download" class="download-card" :url="mt43"
  218. downloadName="MetaTrader4.app"
  219. title="Downloadpage.item10">
  220. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  221. <!-- class="fi fi-rr-download"></i> {{-->
  222. <!-- t('Downloadpage.item6-1') }}</view>-->
  223. <view class="card card-action action-elevate action-border-primary">
  224. <view class="row g-0">
  225. <view class="col-md-6">
  226. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  227. <QrCode :text="mt43" :width="qrSize" :height="qrSize" />
  228. <!-- <image src="/static/images/vu/ios-1.png" alt=""
  229. mode="widthFix" class="img-fluid" /> -->
  230. </view>
  231. </view>
  232. <view class="col-md-6 py-3 d-flex flex-column">
  233. <view class="card-body px-3 py-2">
  234. <view class="badge badge-sm bg-danger mb-1">MT-4</view>
  235. <h4>
  236. <view class="text-dark">App Store (IOS)</view>
  237. </h4>
  238. <p>CWG MT4</p>
  239. </view>
  240. </view>
  241. </view>
  242. </view>
  243. </cwg-link>
  244. </view>
  245. </view>
  246. </view>
  247. <view v-if="activeName == 'MT5'">
  248. <view class="row">
  249. <view class="col-12">
  250. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item11'" />
  251. <p class="mb-5 lh-sm" v-t="'Downloadpage.item3'" />
  252. </view>
  253. <view class="col-lg-4 mb-5">
  254. <cwg-link type="download" class="download-card"
  255. :url="config.Host80 + '/mt/cwgmarketssvg5setup.exe'"
  256. downloadName="cwgmarketssvg5setup.exe"
  257. title="Downloadpage.item4">
  258. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  259. <!-- class="fi fi-rr-download"></i> {{-->
  260. <!-- t('Downloadpage.item6-1') }}</view>-->
  261. <view class="card card-action action-elevate action-border-primary">
  262. <view class="row g-0">
  263. <view class="col-md-4">
  264. <view
  265. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  266. <image src="/static/images/vu/windows.png" alt=""
  267. mode="widthFix" class="img-fluid rounded" />
  268. </view>
  269. </view>
  270. <view class="col-md-8 py-3 d-flex flex-column">
  271. <view class="card-body px-3 py-2">
  272. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  273. <h4>
  274. <view class="text-dark" v-t="'Downloadpage.item4'" />
  275. </h4>
  276. <p v-t="'Downloadpage.item5'" />
  277. </view>
  278. </view>
  279. </view>
  280. </view>
  281. </cwg-link>
  282. </view>
  283. <view class="col-lg-4 mb-5">
  284. <cwg-link type="download" class="download-card"
  285. :url="config.Host80 + '/mt/mt5.zip'"
  286. downloadName="mt5.zip"
  287. title="Downloadpage.item4-1">
  288. <!-- <view class="btn btn-danger waves-effect waves-light">-->
  289. <!-- <i class="fi fi-rr-download"></i> {{-->
  290. <!-- t('Downloadpage.item6-1') }}-->
  291. <!-- </view>-->
  292. <view class="card card-action action-elevate action-border-primary">
  293. <view class="row g-0">
  294. <view class="col-md-4">
  295. <view
  296. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  297. <image src="/static/images/vu/windows.png" alt=""
  298. mode="widthFix" class="img-fluid rounded" />
  299. </view>
  300. </view>
  301. <view class="col-md-8 py-3 d-flex flex-column">
  302. <view class="card-body px-3 py-2">
  303. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  304. <h4>
  305. <view class="text-dark" v-t="'Downloadpage.item4-1'" />
  306. </h4>
  307. <p v-t="'Downloadpage.item5'" />
  308. </view>
  309. </view>
  310. </view>
  311. </view>
  312. </cwg-link>
  313. </view>
  314. <view class="col-lg-4 mb-5">
  315. <cwg-link type="download" class="download-card"
  316. :url="config.Host80 + '/mt/MetaTrader5.pkg'"
  317. downloadName="MetaTrader5.pkg"
  318. title="Downloadpage.item6">
  319. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  320. <!-- class="fi fi-rr-download"></i> {{-->
  321. <!-- t('Downloadpage.item6-1') }}</view>-->
  322. <view class="card card-action action-elevate action-border-primary">
  323. <view class="row g-0">
  324. <view class="col-md-4">
  325. <view
  326. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  327. <image src="/static/images/vu/ios.png" alt=""
  328. mode="widthFix" class="img-fluid rounded" />
  329. </view>
  330. </view>
  331. <view class="col-md-8 py-3 d-flex flex-column">
  332. <view class="card-body px-3 py-2">
  333. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  334. <h4>
  335. <view class="text-dark" v-t="'Downloadpage.item6'" />
  336. </h4>
  337. <p v-t="'Downloadpage.item5'" />
  338. </view>
  339. </view>
  340. </view>
  341. </view>
  342. </cwg-link>
  343. </view>
  344. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item39'" />
  345. <view class="col-lg-4 mb-5">
  346. <cwg-link type="html"
  347. class="download-card download-card-web" target="_blank"
  348. :url="'https://www.' + config.host + '.com/' + locale + '/mt5/web'"
  349. title="Downloadpage.item39">
  350. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  351. <!-- class="fi fi-rr-download"></i> 开始交易</view>-->
  352. <view class="card card-action action-elevate action-border-primary">
  353. <view class="row g-0">
  354. <view class="col-md-4">
  355. <view
  356. class="card-header border-0 p-0 m-2 position-relative overflow-hidden">
  357. <image src="/static/images/vu/icon-windows-ios.png" alt=""
  358. mode="widthFix" class="img-fluid rounded" />
  359. </view>
  360. </view>
  361. <view class="col-md-8 py-3 d-flex flex-column">
  362. <view class="card-body px-3 py-2">
  363. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  364. <h4>
  365. <view class="text-dark" v-t="'Downloadpage.item40'" />
  366. </h4>
  367. <p>PC and macOS</p>
  368. </view>
  369. </view>
  370. </view>
  371. </view>
  372. </cwg-link>
  373. </view>
  374. <h3 class="mb-3 fw-bold" v-t="'Downloadpage.item13'" />
  375. <view class="col-lg-6 mb-5">
  376. <cwg-link type="download" class="download-card" :url="mt51"
  377. downloadName="MetaTrader5.abb"
  378. title="Downloadpage.item14">
  379. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  380. <!-- class="fi fi-rr-download"></i> {{-->
  381. <!-- t('Downloadpage.item6-1') }}</view>-->
  382. <view class="card card-action action-elevate action-border-primary">
  383. <view class="row g-0">
  384. <view class="col-md-6">
  385. <view class="card-header border-0 download-qr-header position-relative">
  386. <QrCode :text="mt52" :width="qrSize" :height="qrSize" />
  387. <!-- <image src="/static/images/vu/android.png" alt=""
  388. mode="widthFix" class="img-fluid" /> -->
  389. </view>
  390. </view>
  391. <view class="col-md-6 py-3 d-flex flex-column">
  392. <view class="card-body px-3 py-2">
  393. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  394. <h4>
  395. <view class="text-dark">Google Play (Android)</view>
  396. </h4>
  397. <p>CWG MT5</p>
  398. </view>
  399. </view>
  400. </view>
  401. </view>
  402. </cwg-link>
  403. </view>
  404. <view class="col-lg-6 mb-5">
  405. <cwg-link type="download" class="download-card" :url="mt52"
  406. downloadName="MetaTrader5.apk"
  407. title="Downloadpage.item14">
  408. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  409. <!-- class="fi fi-rr-download"></i> {{-->
  410. <!-- t('Downloadpage.item6-1') }}</view>-->
  411. <view class="card card-action action-elevate action-border-primary">
  412. <view class="row g-0">
  413. <view class="col-md-6">
  414. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  415. <QrCode :text="mt52" :width="qrSize" :height="qrSize" />
  416. <!-- <image src="/static/images/vu/metatrade.png" alt=""
  417. mode="widthFix" class="img-fluid" /> -->
  418. </view>
  419. </view>
  420. <view class="col-md-6 py-3 d-flex flex-column">
  421. <view class="card-body px-3 py-2">
  422. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  423. <h4>
  424. <view class="text-dark">MetaTrader .Apk</view>
  425. </h4>
  426. <p>CWG MT5</p>
  427. </view>
  428. </view>
  429. </view>
  430. </view>
  431. </cwg-link>
  432. </view>
  433. <view class="col-lg-6 mb-5">
  434. <cwg-link type="download" class="download-card" :url="mt53"
  435. downloadName="MetaTrader5.app"
  436. title="Downloadpage.item15">
  437. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  438. <!-- class="fi fi-rr-download"></i> {{-->
  439. <!-- t('Downloadpage.item6-1') }}</view>-->
  440. <view class="card card-action action-elevate action-border-primary">
  441. <view class="row g-0">
  442. <view class="col-md-6">
  443. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  444. <QrCode :text="mt53" :width="qrSize" :height="qrSize" />
  445. <!-- <image src="/static/images/vu/ios-1.png" alt=""
  446. mode="widthFix" class="img-fluid" /> -->
  447. </view>
  448. </view>
  449. <view class="col-md-6 py-3 d-flex flex-column">
  450. <view class="card-body px-3 py-2">
  451. <view class="badge badge-sm bg-danger mb-1">MT-5</view>
  452. <h4>
  453. <view class="text-dark">App Store (IOS)</view>
  454. </h4>
  455. <p>CWG MT5</p>
  456. </view>
  457. </view>
  458. </view>
  459. </view>
  460. </cwg-link>
  461. </view>
  462. </view>
  463. </view>
  464. <view v-if="activeName == 'App'">
  465. <view class="row">
  466. <view class="col-12">
  467. <h3 class="mb-3 fw-bold" v-t="'vu.Downloadpage.item42'" />
  468. <p class="mb-5 lh-sm" v-t="'vu.Downloadpage.item43'" />
  469. </view>
  470. <view class="col-lg-6 mb-5">
  471. <cwg-link type="download" class="download-card" :url="app1"
  472. downloadName="CWG Center.abb"
  473. title="CWG Center">
  474. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  475. <!-- class="fi fi-rr-download"></i> {{-->
  476. <!-- t('Downloadpage.item6-1') }}</view>-->
  477. <view class="card card-action action-elevate action-border-primary">
  478. <view class="row g-0">
  479. <view class="col-md-6">
  480. <view class="card-header border-0 download-qr-header position-relative">
  481. <QrCode :text="app1" :width="qrSize" :height="qrSize" />
  482. <!-- <image src="/static/images/vu/android.png" alt=""
  483. mode="widthFix" class="img-fluid" /> -->
  484. </view>
  485. </view>
  486. <view class="col-md-6 py-3 d-flex flex-column">
  487. <view class="card-body px-3 py-2">
  488. <view class="badge badge-sm bg-danger mb-1">Android</view>
  489. <h4>
  490. <view class="text-dark">Google Play (Android)</view>
  491. </h4>
  492. <p>CWG Center</p>
  493. </view>
  494. </view>
  495. </view>
  496. </view>
  497. </cwg-link>
  498. </view>
  499. <view class="col-lg-6 mb-5">
  500. <cwg-link type="download" class="download-card" :url="app2"
  501. downloadName="CWG Center.apk"
  502. title="CWG Center">
  503. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  504. <!-- class="fi fi-rr-download"></i> {{-->
  505. <!-- t('Downloadpage.item6-1') }}</view>-->
  506. <view class="card card-action action-elevate action-border-primary">
  507. <view class="row g-0">
  508. <view class="col-md-6">
  509. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  510. <QrCode :text="app2" :width="qrSize" :height="qrSize" />
  511. <!-- <image src="/static/images/vu/metatrade.png" alt=""
  512. mode="widthFix" class="img-fluid" /> -->
  513. </view>
  514. </view>
  515. <view class="col-md-6 py-3 d-flex flex-column">
  516. <view class="card-body px-3 py-2">
  517. <view class="badge badge-sm bg-danger mb-1">Apk</view>
  518. <h4>
  519. <view class="text-dark">CWG Center.Apk</view>
  520. </h4>
  521. <p>CWG Center</p>
  522. </view>
  523. </view>
  524. </view>
  525. </view>
  526. </cwg-link>
  527. </view>
  528. <view class="col-lg-6 mb-5">
  529. <cwg-link type="download" class="download-card" :url="app3"
  530. downloadName="CWG Center.app"
  531. title="CWG Center">
  532. <!-- <view class="btn btn-danger waves-effect waves-light"><i-->
  533. <!-- class="fi fi-rr-download"></i> {{-->
  534. <!-- t('Downloadpage.item6-1') }}</view>-->
  535. <view class="card card-action action-elevate action-border-primary">
  536. <view class="row g-0">
  537. <view class="col-md-6">
  538. <view class="card-header border-0 download-qr-header position-relative overflow-hidden">
  539. <QrCode :text="app3" :width="qrSize" :height="qrSize" />
  540. <!-- <image src="/static/images/vu/ios-1.png" alt=""
  541. mode="widthFix" class="img-fluid" /> -->
  542. </view>
  543. </view>
  544. <view class="col-md-6 py-3 d-flex flex-column">
  545. <view class="card-body px-3 py-2">
  546. <view class="badge badge-sm bg-danger mb-1">IOS</view>
  547. <h4>
  548. <view class="text-dark">App Store (IOS)</view>
  549. </h4>
  550. <p>CWG Center</p>
  551. </view>
  552. </view>
  553. </view>
  554. </view>
  555. </cwg-link>
  556. </view>
  557. </view>
  558. </view>
  559. </view>
  560. </view>
  561. </view>
  562. </view>
  563. </view>
  564. </view>
  565. </cwg-page-wrapper>
  566. </template>
  567. <script setup lang="ts">
  568. import { ref, computed, onMounted, nextTick } from 'vue'
  569. import QrCode from "@/components/QRCode.vue"
  570. import { useI18n } from 'vue-i18n'
  571. import config from '@/config';
  572. const { t, locale } = useI18n()
  573. const activeName = ref('MT4')
  574. const logoImageRef = ref('') // 保持变量名 logoImage
  575. const mt41 = ref('https://www.metatrader4.com/en/download#download-block-android?server=CWGMarketsSVGLtd-Demo,CWGMarketsSVGLtd-Live')
  576. const mt42 = ref(`${config.Host80}/metatrader/metatrader4.apk`) // 稍后动态计算
  577. const mt43 = ref('https://apps.apple.com/us/app/metatrader-4/id496212596?server=CWGMarketsSVGLtd-Demo,CWGMarketsSVGLtd-Live')
  578. const mt51 = ref('https://download.metatrader.com/cdn/mobile/mt5/android?server=CWGMarketsSVG-Demo,CWGMarketsSVG-Live')
  579. const mt52 = ref(`${config.Host80}/mt/metatrader5.apk`)
  580. const mt53 = ref('https://download.metatrader.com/cdn/mobile/mt5/ios?server=CWGMarketsSVG-Demo,CWGMarketsSVG-Live')
  581. const app1 = ref(`${config.Host80}/app/cwg-center.abb`)
  582. const app2 = ref(`${config.Host80}/app/cwg-center.apk`)
  583. const app3 = ref(`${config.Host80}/app/cwg-center.app`)
  584. const qrSize = 160
  585. const tabsConfig = computed(() => [
  586. { text: 'MT4', value: 'MT4' },
  587. { text: 'MT5', value: 'MT5' },
  588. ])
  589. // ---------- 计算属性 ----------
  590. const isZh = computed(() => ['cn', 'zh', 'zhHant'].includes(locale.value))
  591. const showQrcode = ref(false)
  592. onMounted(async () => {
  593. await nextTick()
  594. setTimeout(() => {
  595. showQrcode.value = true
  596. }, 200)
  597. })
  598. </script>
  599. <style lang="scss" scoped>
  600. @import "@/uni.scss";
  601. :deep(.nav-pills .nav-link.active) {
  602. color: #333;
  603. background-color: #FFF5F5;
  604. border: 1px solid #EE1C25;
  605. }
  606. .download-qr-header {
  607. padding: 12px 0;
  608. margin: 0;
  609. display: flex;
  610. align-items: center;
  611. justify-content: center;
  612. }
  613. /* 让 card 本身等高,但内部元素自适应 */
  614. .row {
  615. display: flex;
  616. flex-wrap: wrap;
  617. align-items: stretch;
  618. }
  619. .row > [class*="col-lg-4"] {
  620. display: flex;
  621. flex-direction: column;
  622. }
  623. .card {
  624. flex: 1;
  625. display: flex;
  626. flex-direction: column;
  627. height: 100%;
  628. }
  629. /* 关键修改:让 card-body 不强制占满,只保持默认 */
  630. .card-body {
  631. /* 移除 flex: 1,改为默认值 */
  632. flex: 0 0 auto;
  633. display: block;
  634. }
  635. /* 只有需要弹性填充的特定容器才使用 flex */
  636. .flex-column.d-flex {
  637. flex: 1;
  638. display: flex;
  639. flex-direction: column;
  640. }
  641. /* 按钮底部对齐只在需要的地方使用 */
  642. .card-body .btn {
  643. margin-top: auto;
  644. }
  645. @media screen and (max-width: 768px) {
  646. .img-fluid {
  647. max-width: px2rpx(120);
  648. }
  649. :deep(.qr-container) {
  650. justify-content: flex-start;
  651. }
  652. }
  653. #custom_Downloadpage {
  654. width: 100%;
  655. height: 100%;
  656. .main-content {
  657. width: 100%;
  658. height: calc(100% - px2rpx(50));
  659. padding: px2rpx(10);
  660. box-sizing: border-box;
  661. overflow-y: auto;
  662. }
  663. .download-section {
  664. background: transparent;
  665. border: 1px solid var(--bs-border-color);
  666. border-radius: px2rpx(12);
  667. padding: px2rpx(24) px2rpx(20);
  668. margin-bottom: px2rpx(16);
  669. box-shadow: 0 px2rpx(2) px2rpx(12) rgba(0, 0, 0, 0.06);
  670. .section-header {
  671. text-align: center;
  672. margin-bottom: px2rpx(24);
  673. }
  674. .section-title {
  675. font-size: px2rpx(20);
  676. font-weight: 600;
  677. color: var(--bs-heading-color);
  678. margin-bottom: px2rpx(8);
  679. }
  680. .section-subtitle {
  681. font-size: px2rpx(14);
  682. color: var(--bs-heading-color);
  683. line-height: 1.5;
  684. }
  685. }
  686. .download-cards {
  687. display: flex;
  688. justify-content: center;
  689. flex-wrap: wrap;
  690. gap: px2rpx(16);
  691. }
  692. .download-card {
  693. display: flex;
  694. flex-direction: column;
  695. align-items: center;
  696. padding: px2rpx(24) px2rpx(20);
  697. background: linear-gradient(135deg, #4990EF 0%, #3A7BE0 100%);
  698. color: #fff;
  699. border-radius: px2rpx(12);
  700. min-width: px2rpx(160);
  701. max-width: px2rpx(200);
  702. text-decoration: none;
  703. transition: all 0.3s ease;
  704. position: relative;
  705. overflow: hidden;
  706. &::before {
  707. content: '';
  708. position: absolute;
  709. top: 0;
  710. left: 0;
  711. right: 0;
  712. bottom: 0;
  713. background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%);
  714. }
  715. &:hover {
  716. transform: translateY(px2rpx(-4));
  717. box-shadow: 0 px2rpx(8) px2rpx(24) rgba(73, 144, 239, 0.35);
  718. }
  719. &:active {
  720. transform: translateY(px2rpx(-2));
  721. }
  722. .card-icon {
  723. width: px2rpx(48);
  724. height: px2rpx(48);
  725. margin-bottom: px2rpx(16);
  726. position: relative;
  727. z-index: 1;
  728. }
  729. .card-info {
  730. text-align: center;
  731. position: relative;
  732. z-index: 1;
  733. .card-title {
  734. font-size: px2rpx(15);
  735. font-weight: 500;
  736. margin-bottom: px2rpx(4);
  737. color: #fff;
  738. }
  739. .card-desc {
  740. font-size: px2rpx(12);
  741. opacity: 0.85;
  742. }
  743. }
  744. .download-badge {
  745. margin-top: px2rpx(12);
  746. padding: px2rpx(4) px2rpx(12);
  747. background: rgba(255, 255, 255, 0.2);
  748. border-radius: px2rpx(20);
  749. font-size: px2rpx(11);
  750. font-weight: 500;
  751. position: relative;
  752. z-index: 1;
  753. }
  754. .download-badge-apple {
  755. background: rgba(0, 0, 0, 0.25);
  756. }
  757. }
  758. .download-card-web {
  759. flex-direction: row;
  760. justify-content: space-between;
  761. padding: px2rpx(20) px2rpx(24);
  762. min-width: px2rpx(280);
  763. max-width: 100%;
  764. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  765. .card-info {
  766. text-align: left;
  767. }
  768. .icon-arrow {
  769. font-size: px2rpx(20);
  770. opacity: 0.9;
  771. }
  772. &:hover {
  773. .icon-arrow {
  774. transform: translateX(px2rpx(4));
  775. transition: transform 0.3s ease;
  776. }
  777. }
  778. }
  779. .mobile-section {
  780. .mobile-cards {
  781. display: flex;
  782. flex-direction: column;
  783. gap: px2rpx(20);
  784. }
  785. .mobile-card {
  786. background: transparent;
  787. border-radius: px2rpx(12);
  788. padding: px2rpx(20);
  789. border: px2rpx(1) solid var(--bs-border-color);
  790. }
  791. .mobile-card-header {
  792. display: flex;
  793. align-items: center;
  794. margin-bottom: px2rpx(20);
  795. .card-icon {
  796. width: px2rpx(40);
  797. height: px2rpx(40);
  798. margin-right: px2rpx(16);
  799. background-color: #fff;
  800. overflow: hidden;
  801. border-radius: px2rpx(10);
  802. }
  803. .card-info {
  804. text-align: left;
  805. .card-title {
  806. font-size: px2rpx(16);
  807. font-weight: 600;
  808. color: var(--bs-heading-color);
  809. margin-bottom: px2rpx(4);
  810. }
  811. .card-desc {
  812. font-size: px2rpx(13);
  813. color: var(--bs-heading-color);
  814. }
  815. }
  816. }
  817. .qr-codes {
  818. display: flex;
  819. justify-content: space-around;
  820. flex-wrap: wrap;
  821. gap: px2rpx(16);
  822. &.qr-codes-single {
  823. justify-content: center;
  824. }
  825. }
  826. .qr-item {
  827. text-align: center;
  828. .qr-label {
  829. font-weight: 600;
  830. font-size: px2rpx(13);
  831. color: var(--bs-heading-color);
  832. margin-bottom: px2rpx(10);
  833. line-height: 2;
  834. }
  835. }
  836. }
  837. .instruments-banner {
  838. width: 100%;
  839. padding: px2rpx(40) px2rpx(20);
  840. background-image: url('/static/images/tc_bg.png');
  841. background-size: cover;
  842. background-repeat: no-repeat;
  843. background-position: center;
  844. color: var(--bs-emphasis-color);
  845. text-align: center;
  846. border-radius: px2rpx(12);
  847. margin-bottom: px2rpx(16);
  848. box-sizing: border-box;
  849. .banner-content {
  850. margin-bottom: px2rpx(24);
  851. }
  852. .banner-title {
  853. font-size: px2rpx(22);
  854. font-weight: 600;
  855. margin-bottom: px2rpx(8);
  856. }
  857. .banner-subtitle {
  858. font-size: px2rpx(14);
  859. opacity: 0.9;
  860. }
  861. .banner-buttons {
  862. display: flex;
  863. justify-content: center;
  864. flex-wrap: wrap;
  865. gap: px2rpx(12);
  866. }
  867. .banner-btn {
  868. display: inline-flex;
  869. flex-direction: column;
  870. align-items: center;
  871. padding: px2rpx(14) px2rpx(25);
  872. background-color: #EB3F57;
  873. color: var(--bs-emphasis-color);
  874. font-size: px2rpx(14);
  875. text-decoration: none;
  876. border-radius: px2rpx(8);
  877. transition: all 0.3s ease;
  878. min-width: px2rpx(200);
  879. &:hover {
  880. background-color: #d6364d;
  881. transform: translateY(px2rpx(-2));
  882. box-shadow: 0 px2rpx(4) px2rpx(12) rgba(235, 63, 87, 0.4);
  883. }
  884. .btn-tag {
  885. font-size: px2rpx(12);
  886. opacity: 0.85;
  887. margin-top: px2rpx(4);
  888. }
  889. }
  890. }
  891. .features-grid {
  892. background: transparent;
  893. border: 1px solid var(--bs-border-color);
  894. border-radius: px2rpx(12);
  895. padding: px2rpx(24) px2rpx(20);
  896. margin-bottom: px2rpx(16);
  897. box-shadow: 0 px2rpx(2) px2rpx(12) rgba(0, 0, 0, 0.06);
  898. .feature-item {
  899. display: flex;
  900. align-items: center;
  901. padding: px2rpx(20) 0;
  902. border-bottom: px2rpx(1) solid #f0f0f0;
  903. &:last-child {
  904. border-bottom: none;
  905. }
  906. }
  907. .feature-icon {
  908. width: px2rpx(64);
  909. height: px2rpx(64);
  910. display: flex;
  911. align-items: center;
  912. justify-content: center;
  913. background: linear-gradient(135deg, #fef0f0 0%, #ffe8e8 100%);
  914. border-radius: px2rpx(12);
  915. margin-right: px2rpx(16);
  916. flex-shrink: 0;
  917. i {
  918. font-size: px2rpx(32);
  919. color: #EB3F57;
  920. }
  921. }
  922. .feature-content {
  923. flex: 1;
  924. }
  925. .feature-title {
  926. font-size: px2rpx(16);
  927. font-weight: 600;
  928. color: var(--bs-heading-color);
  929. margin-bottom: px2rpx(6);
  930. }
  931. .feature-desc {
  932. font-size: px2rpx(14);
  933. color: var(--bs-heading-color);
  934. line-height: 1.6;
  935. }
  936. }
  937. .info-section {
  938. background: transparent;
  939. border: 1px solid var(--bs-border-color);
  940. border-radius: px2rpx(12);
  941. padding: px2rpx(24) px2rpx(20);
  942. margin-bottom: px2rpx(16);
  943. box-shadow: 0 px2rpx(2) px2rpx(12) rgba(0, 0, 0, 0.06);
  944. .info-block {
  945. .info-title {
  946. font-size: px2rpx(20);
  947. font-weight: 600;
  948. text-align: center;
  949. margin-bottom: px2rpx(20);
  950. span {
  951. border-bottom: px2rpx(3) solid #EB3F57;
  952. padding: 0 px2rpx(8) px2rpx(8);
  953. }
  954. }
  955. .info-subtitle {
  956. font-size: px2rpx(14);
  957. color: var(--bs-heading-color);
  958. text-align: center;
  959. margin-bottom: px2rpx(24);
  960. }
  961. }
  962. .info-content {
  963. .info-item {
  964. padding: px2rpx(20) 0;
  965. border-bottom: px2rpx(1) dashed #e0e0e0;
  966. &:last-child {
  967. border-bottom: none;
  968. }
  969. &.info-item-border {
  970. border-top: px2rpx(1) dashed #e0e0e0;
  971. }
  972. }
  973. .info-label {
  974. font-size: px2rpx(15);
  975. font-weight: 600;
  976. color: var(--bs-heading-color);
  977. margin-bottom: px2rpx(8);
  978. }
  979. .info-text {
  980. font-size: px2rpx(14);
  981. color: var(--bs-heading-color);
  982. line-height: 1.6;
  983. }
  984. .info-image {
  985. display: flex;
  986. justify-content: center;
  987. padding-top: px2rpx(24);
  988. image {
  989. max-width: 100%;
  990. border-radius: px2rpx(8);
  991. }
  992. }
  993. }
  994. }
  995. @media (max-width: 768px) {
  996. .download-section {
  997. padding: px2rpx(16) px2rpx(12);
  998. border-radius: px2rpx(8);
  999. .section-title {
  1000. font-size: px2rpx(18);
  1001. }
  1002. }
  1003. .download-cards {
  1004. gap: px2rpx(12);
  1005. }
  1006. .download-card {
  1007. min-width: px2rpx(140);
  1008. padding: px2rpx(16) px2rpx(12);
  1009. .card-icon {
  1010. width: px2rpx(40);
  1011. height: px2rpx(40);
  1012. }
  1013. .card-info {
  1014. .card-title {
  1015. font-size: px2rpx(13);
  1016. }
  1017. .card-desc {
  1018. font-size: px2rpx(11);
  1019. }
  1020. }
  1021. }
  1022. .download-card-web {
  1023. width: 100%;
  1024. }
  1025. .mobile-section {
  1026. .mobile-card {
  1027. padding: px2rpx(16);
  1028. }
  1029. .qr-codes {
  1030. gap: px2rpx(12);
  1031. }
  1032. }
  1033. .instruments-banner {
  1034. padding: px2rpx(24) px2rpx(16);
  1035. border-radius: px2rpx(8);
  1036. .banner-title {
  1037. font-size: px2rpx(18);
  1038. }
  1039. .banner-btn {
  1040. min-width: px2rpx(160);
  1041. padding: px2rpx(12) px2rpx(20);
  1042. }
  1043. }
  1044. .features-grid {
  1045. padding: px2rpx(16) px2rpx(12);
  1046. border-radius: px2rpx(8);
  1047. .feature-item {
  1048. flex-direction: column;
  1049. text-align: center;
  1050. padding: px2rpx(16) 0;
  1051. }
  1052. .feature-icon {
  1053. margin-right: 0;
  1054. margin-bottom: px2rpx(12);
  1055. }
  1056. }
  1057. .info-section {
  1058. padding: px2rpx(16) px2rpx(12);
  1059. border-radius: px2rpx(8);
  1060. .info-block {
  1061. .info-title {
  1062. font-size: px2rpx(18);
  1063. }
  1064. }
  1065. }
  1066. }
  1067. :deep(.el-tabs) {
  1068. .el-tabs__header {
  1069. margin-bottom: px2rpx(20);
  1070. }
  1071. .el-tabs__nav-wrap::after {
  1072. height: px2rpx(1);
  1073. }
  1074. .el-tabs__item {
  1075. font-size: px2rpx(15);
  1076. color: var(--bs-heading-color);
  1077. padding: 0 px2rpx(20);
  1078. height: px2rpx(44);
  1079. line-height: px2rpx(44);
  1080. &.is-active {
  1081. color: #4990EF;
  1082. font-weight: 600;
  1083. }
  1084. }
  1085. .el-tabs__active-bar {
  1086. height: px2rpx(3);
  1087. border-radius: px2rpx(3);
  1088. }
  1089. }
  1090. :deep(uni-image),
  1091. :deep(img) {
  1092. width: px2rpx(30);
  1093. height: px2rpx(30);
  1094. object-fit: cover;
  1095. border-radius: px2rpx(6);
  1096. }
  1097. }
  1098. .mt {
  1099. width: px2rpx(200) !important;
  1100. height: px2rpx(200) !important;
  1101. }
  1102. :deep(.pdf-link){
  1103. width: 100%;
  1104. }
  1105. </style>