index.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765
  1. <template>
  2. <div class="client-index-page">
  3. <!-- 首页banner栏 -->
  4. <div class="client-index-banner"></div>
  5. <!-- 发展历程 -->
  6. <div class="client-company-history">
  7. <div class="client-container">
  8. <ul>
  9. <li><div><p>2007<span>年</span></p><h4>公司创立于2007年</h4></div></li>
  10. <li><div><p>3000<span>+</span></p><h4>已与3000多家企业建立了合作关系</h4></div></li>
  11. <li><div><p>124,799<span>+</span></p><h4>平台用户已达到124799</h4></div></li>
  12. <li><div><p>30,000<span>+</span></p><h4>课件开发超30000课时</h4></div></li>
  13. </ul>
  14. </div>
  15. </div>
  16. <!-- 产品和服务 -->
  17. <div class="client-products-services">
  18. <div class="client-container">
  19. <h4 class="client-title">产品和服务</h4>
  20. <div class="products-services-box">
  21. <img :src="productsImg1" alt="考试系统" />
  22. <div class="products-services-content">
  23. <h5>考试系统</h5>
  24. <i></i>
  25. <p>麦塔考试平台满足不同行业考试考核需求:教育机构出题判卷、课后练习布置;企事业单位企业文化、业务水平提升</p>
  26. <div><a class="client-default-Btn" href="https://cdnks.mtavip.com/a/register?flug=1" target="_blank">免费试用</a><span class="client-default-Btn" @click="goExamPage">了解详情</span></div>
  27. </div>
  28. </div>
  29. <div class="products-services-box products-contrary-box">
  30. <img :src="productsImg2" alt="培训系统" />
  31. <div class="products-services-content">
  32. <h5>培训系统</h5>
  33. <i></i>
  34. <p>麦塔培训平台满足企业全流程培训场景,支持移动web端、PC端、APP端答题和学习,多种学习模式保障学习效果,结果及时反馈</p>
  35. <div><a class="client-default-Btn" href="https://cdnks.mtavip.com/a/register?flug=2" target="_blank">免费试用</a><span class="client-default-Btn" @click="goPeixunPage">了解详情</span></div>
  36. </div>
  37. </div>
  38. <div class="products-services-box">
  39. <img :src="productsImg3" alt="课件制作" />
  40. <div class="products-services-content">
  41. <h5>课件制作</h5>
  42. <i></i>
  43. <p>麦塔能够快速搭建企业单位、教育机构学习资源库,满足学习平台需求,针对目标对象的学习习惯和学习方式个性化开发课程</p>
  44. <div><div class="client-default-Btn" @click="applyFun">申请方案</div><span class="client-default-Btn" @click="goKechengPage">了解详情</span></div>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. <!-- 行业学习需求 -->
  50. <div class="client-demand-box">
  51. <div class="client-container">
  52. <h4 class="client-title">满足不同行业学习需求</h4>
  53. <el-tabs v-model="activeName" type="card" class="demand-box-tab">
  54. <el-tab-pane label="考试系统" name="first">
  55. <ul class="demand-tab-list demand-kaoshi-list">
  56. <li v-for="item in kaoshiLiArray">
  57. <div class="demand-content-box">{{item.demandNumber}}</div>
  58. <div class="demand-img-box"><i></i><h4>{{item.demandTitle}}</h4></div>
  59. <div class="demand-mask-box">
  60. <h4>{{item.demandTitle}}<a :href="`${baseUrl}/industrydetails/${item.demandHref}`"><span>了解详情</span><i></i></a></h4>
  61. <p>{{item.demandText}}</p>
  62. <div class="demand-icon-box">
  63. <a v-for="item2 in item.demandLinkBox" :href="item2.href"><img :src="item2.img" alt="客户案例"></a>
  64. </div>
  65. </div>
  66. </li>
  67. </ul>
  68. <a class="free-trial-default-btn" href="https://cdnks.mtavip.com/a/register?flug=1" target="_blank">免费试用</a>
  69. </el-tab-pane>
  70. <el-tab-pane label="培训系统" name="second">
  71. <ul class="demand-tab-list demand-peixun-list">
  72. <li v-for="item in peixunLiArray">
  73. <div class="demand-content-box">{{item.demandNumber}}</div>
  74. <div class="demand-img-box"><i></i><h4>{{item.demandTitle}}</h4></div>
  75. <div class="demand-mask-box">
  76. <h4>{{item.demandTitle}}<a :href="`${baseUrl}/industrydetails/${item.demandHref}`"><span>了解详情</span><i></i></a></h4>
  77. <p>{{item.demandText}}</p>
  78. <div class="demand-icon-box">
  79. <a v-for="item2 in item.demandLinkBox" :href="item2.href"><img :src="item2.img" alt="客户案例"></a>
  80. </div>
  81. </div>
  82. </li>
  83. </ul>
  84. <a class="free-trial-default-btn" href="https://cdnks.mtavip.com/a/register?flug=2" target="_blank">免费试用</a>
  85. </el-tab-pane>
  86. </el-tabs>
  87. </div>
  88. </div>
  89. <!-- 为什么选择我们 -->
  90. <div class="client-chose-box">
  91. <div class="client-container">
  92. <h4 class="client-title">为什么选择我们</h4>
  93. <ul class="chose-img-box">
  94. <li>
  95. <div>
  96. <span><img :src="choseImg1" alt="专业的顾问服务" /></span>
  97. <h5>专业的顾问服务</h5>
  98. </div>
  99. </li>
  100. <li>
  101. <div>
  102. <span><img :src="choseImg2" alt="完善的培训体系" /></span>
  103. <h5>完善的培训体系</h5>
  104. </div>
  105. </li>
  106. <li>
  107. <div>
  108. <span><img :src="choseImg3" alt="可靠的开发技术" style="margin-top: 65px;"/></span>
  109. <h5>可靠的开发技术</h5>
  110. </div>
  111. </li>
  112. <li>
  113. <div>
  114. <span><img :src="choseImg4" alt="成熟的运营能力" /></span>
  115. <h5>成熟的运营能力</h5>
  116. </div>
  117. </li>
  118. </ul>
  119. <a class="free-trial-default-btn" href="https://cdnks.mtavip.com/a/register?flug=2" target="_blank">免费试用</a>
  120. </div>
  121. </div>
  122. <!-- 新闻资讯 -->
  123. <div class="client-news-information">
  124. <h4 class="client-title">新闻资讯</h4>
  125. <div class="client-container">
  126. <div class="industry-information-box">
  127. <div class="industry-information-left">
  128. <img :src="topCarousels[0].pic" alt="新闻资讯" />
  129. <h4>{{ topCarousels[0].title }}<i></i></h4>
  130. <div><b>{{ topCarousels[0].yyyy }}</b><span>{{ topCarousels[0].mmdd }}</span></div>
  131. <p>{{ topCarousels[0].intro }}</p>
  132. </div>
  133. <div class="industry-information-right">
  134. <ul>
  135. <li v-for="(item, index) in topCarousels" v-if="index >= 1">
  136. <h4 @click="checkInfo(item)"><span>{{ item.yyyy }}</span>{{ item.title }}</h4>
  137. <p><span>{{ item.mmdd}}</span>{{ item.intro }}</p>
  138. </li>
  139. </ul>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. <!-- 超过10万家客户的信任之选 -->
  145. <div class="client-customer-box">
  146. <div class="client-container">
  147. <h4 class="client-title">超过10万家客户的信任之选</h4>
  148. <ul class="customer-img-box">
  149. <li><img :src="customerImg1" alt="中国人民银行" /></li>
  150. <li><img :src="customerImg2" alt="汇丰" /></li>
  151. <li><img :src="customerImg3" alt="中国银行" /></li>
  152. <li><img :src="customerImg4" alt="中信银行" /></li>
  153. <li><img :src="customerImg5" alt="中国民生银行" /></li>
  154. <li><img :src="customerImg6" alt="astellas" /></li>
  155. <li><img :src="customerImg7" alt="今日头条" /></li>
  156. <li><img :src="customerImg8" alt="华图教育" /></li>
  157. <li><img :src="customerImg9" alt="步步高" /></li>
  158. <li><img :src="customerImg10" alt="小天才" /></li>
  159. <li><img :src="customerImg11" alt="华发股份" /></li>
  160. <li><img :src="customerImg12" alt="上海航空" /></li>
  161. <li><img :src="customerImg13" alt="中国国际航空公司" /></li>
  162. <li><img :src="customerImg14" alt="中国东方航空" /></li>
  163. <li><img :src="customerImg15" alt="深圳航空" /></li>
  164. <li><img :src="customerImg16" alt="中建八局" /></li>
  165. <li><img :src="customerImg17" alt="SANOFI" /></li>
  166. <li><img :src="customerImg18" alt="大连海事大学" /></li>
  167. <li><img :src="customerImg19" alt="南京银行" /></li>
  168. <li><img :src="customerImg20" alt="中国人民银行" /></li>
  169. </ul>
  170. </div>
  171. </div>
  172. <!-- 我们始终专注教育系统研发更懂用户需求 -->
  173. <div class="client-cert-box">
  174. <div class="client-container">
  175. <h4 class="client-title">我们始终专注教育系统研发更懂用户需求</h4>
  176. <div class="cert-img-box">
  177. <span><img :src="certImg3" alt="栋科课程管理系统" /></span>
  178. <span><img :src="certImg4" alt="栋科用户管理系统" /></span>
  179. <span><img :src="certImg7" alt="麦塔培训系统" /></span>
  180. <span><img :src="certImg6" alt="麦塔考试系统" /></span>
  181. <span><img :src="certImg8" alt="知识产权管理体系认证证书" /></span>
  182. </div>
  183. <a class="client-default-Btn" :href="`${baseUrl}/introduction`">了解更多</a>
  184. </div>
  185. </div>
  186. <el-dialog
  187. :close-on-click-modal="false"
  188. :visible.sync="telDl"
  189. @close="delDlClose"
  190. class="application-scheme-dialog"
  191. center>
  192. <i></i>
  193. <p>免费获得课程开发解决方案</p>
  194. <el-form :model="telChangeDate" status-icon :rules="telRules" ref="ruleTelForm" class="application-scheme-form">
  195. <el-form-item prop="tel">
  196. <el-input v-model="telChangeDate.tel" placeholder="请输入手机号" class="dialog-input-tel"></el-input>
  197. </el-form-item>
  198. <div id="your-dom-id" class="nc-container"></div>
  199. <el-form-item prop="verification">
  200. <div class="verification">
  201. <el-input v-model="telChangeDate.verification" placeholder="请输入验证码" class="dialog-input-code"></el-input>
  202. <el-button @click="checkVerification" :disabled="btnTextDisabled" class="dialog-code-btn">{{btnText}}</el-button>
  203. </div>
  204. </el-form-item>
  205. </el-form>
  206. <div class="application-scheme-btn" @click="dialogSave">申请方案</div>
  207. <span>免费热线:400-052-2130</span><a>在线客服</a>
  208. </el-dialog>
  209. </div>
  210. </template>
  211. <script>
  212. import { mapGetters } from 'vuex';
  213. export default {
  214. name: 'index',
  215. layout: 'templateA',
  216. watchQuery: true,
  217. async fetch({ $axios, store, query }) {
  218. try {
  219. const { data } = await $axios.post('/home/links/list');
  220. store.commit('SetFooterYouQingLianJie', data.data.data);
  221. } catch (e) {
  222. }
  223. },
  224. async asyncData({ $axios, store }) {
  225. // 设置选中菜单
  226. store.commit('setActiveNav', '/');
  227. let [res1, res2] = await Promise.all([
  228. await $axios.$post(`/home/news/carousel`, { 'newsClassifyId': 1 }).then(res => {
  229. return res;
  230. }),
  231. ]);
  232. return {
  233. topCarousels: res1.data.data||[],
  234. };
  235. },
  236. data() {
  237. return {
  238. topCarousels2: [],
  239. // 产品和服务
  240. productsImg1: require(`~/static/images/client/index/index-products-kaoshi.png`),
  241. productsImg2: require(`~/static/images/client/index/index-products-peixun.png`),
  242. productsImg3: require(`~/static/images/client/index/index-products-kejian.png`),
  243. // 为什么选择我们
  244. choseImg1: require(`~/static/images/client/index/index-chose-service-icon.png`),
  245. choseImg2: require(`~/static/images/client/index/index-chose-system-icon.png`),
  246. choseImg3: require(`~/static/images/client/index/index-chose-tech-icon.png`),
  247. choseImg4: require(`~/static/images/client/index/index-chose-operate-icon.png`),
  248. // 客户logo
  249. customerImg1: require(`~/static/images/client/index/index-customer-img1.png`),
  250. customerImg2: require(`~/static/images/client/index/index-customer-img2.png`),
  251. customerImg3: require(`~/static/images/client/index/index-customer-img3.png`),
  252. customerImg4: require(`~/static/images/client/index/index-customer-img4.png`),
  253. customerImg5: require(`~/static/images/client/index/index-customer-img5.png`),
  254. customerImg6: require(`~/static/images/client/index/index-customer-img6.png`),
  255. customerImg7: require(`~/static/images/client/index/index-customer-img7.png`),
  256. customerImg8: require(`~/static/images/client/index/index-customer-img8.png`),
  257. customerImg9: require(`~/static/images/client/index/index-customer-img9.png`),
  258. customerImg10: require(`~/static/images/client/index/index-customer-img10.png`),
  259. customerImg11: require(`~/static/images/client/index/index-customer-img11.png`),
  260. customerImg12: require(`~/static/images/client/index/index-customer-img12.png`),
  261. customerImg13: require(`~/static/images/client/index/index-customer-img13.png`),
  262. customerImg14: require(`~/static/images/client/index/index-customer-img14.png`),
  263. customerImg15: require(`~/static/images/client/index/index-customer-img15.png`),
  264. customerImg16: require(`~/static/images/client/index/index-customer-img16.png`),
  265. customerImg17: require(`~/static/images/client/index/index-customer-img17.png`),
  266. customerImg18: require(`~/static/images/client/index/index-customer-img18.png`),
  267. customerImg19: require(`~/static/images/client/index/index-customer-img19.png`),
  268. customerImg20: require(`~/static/images/client/index/index-customer-img20.png`),
  269. // 证书图片
  270. certImg3: require(`~/static/images/client/index/index-cert-img3.jpg`),
  271. certImg4: require(`~/static/images/client/index/index-cert-img4.jpg`),
  272. certImg6: require(`~/static/images/client/index/index-cert-img6.jpg`),
  273. certImg7: require(`~/static/images/client/index/index-cert-img7.jpg`),
  274. certImg8: require(`~/static/images/client/index/index-cert-img8.jpg`),
  275. activeIndex: '首页',
  276. activeName: 'first',// tab页签
  277. kaoshiLiArray: [
  278. {
  279. demandNumber:'01',
  280. demandTitle:'政府机构',
  281. demandHref: 'government',
  282. demandText: '无论是国企还是私企,每年都要举行年度考核、党建考核等各种不同形式的考试。而传统考试方式,从出题、组卷、印刷,到安排场地、试卷分发等,成本较高,不能完全适应现代企业管理模式。',
  283. demandLinkBox: [
  284. {
  285. img: require(`~/static/images/client/index/index-demand-icon1-1.png`),
  286. href: '#',
  287. },
  288. {
  289. img: require(`~/static/images/client/index/index-demand-icon1-2.png`),
  290. href: '#',
  291. },
  292. ],
  293. },
  294. {
  295. demandNumber:'02',
  296. demandTitle:'信息产业',
  297. demandHref: 'information',
  298. demandText: '近年来我国互联网继续保持增长态势,网络产业已经从过去的吸引眼球上逐渐转向以“盈利”为中心。如网络游戏、网上交易、网络广告、网络教育、网络短信等,新兴应用层出不穷,将推动产业融合发展和转型升级。',
  299. demandLinkBox: [
  300. {
  301. img: require(`~/static/images/client/index/index-demand-icon2-1.png`),
  302. href: '#',
  303. },
  304. {
  305. img: require(`~/static/images/client/index/index-demand-icon2-2.png`),
  306. href: '#',
  307. },
  308. ],
  309. },
  310. {
  311. demandNumber:'03',
  312. demandTitle:'能源化工',
  313. demandHref: 'energy',
  314. demandText: '信息化在社会的各行各业迅速发展,在石油、石化和煤炭等大型国有企业中要以信息化带动工业化、自动化,应用信息技术改造提升能源企业,加快企业信息化进程,提高信息技术应用水平。',
  315. demandLinkBox: [
  316. {
  317. img: require(`~/static/images/client/index/index-demand-icon3-1.png`),
  318. href: '#',
  319. },
  320. {
  321. img: require(`~/static/images/client/index/index-demand-icon3-2.png`),
  322. href: '#',
  323. },
  324. {
  325. img: require(`~/static/images/client/index/index-demand-icon3-3.png`),
  326. href: '#',
  327. },
  328. {
  329. img: require(`~/static/images/client/index/index-demand-icon3-4.png`),
  330. href: '#',
  331. },
  332. ],
  333. },
  334. {
  335. demandNumber:'04',
  336. demandTitle:'金融保险',
  337. demandHref: 'finance',
  338. demandText: '金融无处不在并已形成一个庞大体系,金融学涉及的范畴、分支和内容非常广,对员工的知识储备要求较高,相对的考核难度也较大。所以金融保险业更需要考核数据来作为依据,帮助提升业务能力。',
  339. demandLinkBox: [
  340. {
  341. img: require(`~/static/images/client/index/index-demand-icon4-1.png`),
  342. href: '#',
  343. },
  344. {
  345. img: require(`~/static/images/client/index/index-demand-icon4-2.png`),
  346. href: '#',
  347. },
  348. ],
  349. },
  350. {
  351. demandNumber:'05',
  352. demandTitle:'交通运输',
  353. demandHref: 'traffic',
  354. demandText: '由于交通行业以技术先行,企业越来越需要具有扎实的汽车运用技术、交通运输系统规划与管理、物流系统工程等方面专业知识,并能独立从事汽车运用与管理的复合型高级工程技术人才,人才的培养格外重要。',
  355. demandLinkBox: [
  356. {
  357. img: require(`~/static/images/client/index/index-demand-icon5-1.png`),
  358. href: '#',
  359. },
  360. {
  361. img: require(`~/static/images/client/index/index-demand-icon5-2.png`),
  362. href: '#',
  363. },
  364. {
  365. img: require(`~/static/images/client/index/index-demand-icon5-3.png`),
  366. href: '#',
  367. },
  368. ],
  369. },
  370. {
  371. demandNumber:'06',
  372. demandTitle:'教育培训',
  373. demandHref: 'education',
  374. demandText: '教培行业存在的教师教学水平参差不齐,教学质量难以提升等问题,麦塔不仅是考试出题软件,还是在线教学考试系统,非常适合培训机构前期营销获客以及后期模拟考试的场景。',
  375. demandLinkBox: [
  376. {
  377. img: require(`~/static/images/client/index/index-demand-icon6-1.png`),
  378. href: '#',
  379. },
  380. {
  381. img: require(`~/static/images/client/index/index-demand-icon6-2.png`),
  382. href: '#',
  383. },
  384. {
  385. img: require(`~/static/images/client/index/index-demand-icon6-3.png`),
  386. href: '#',
  387. },
  388. ],
  389. },
  390. ],
  391. peixunLiArray: [
  392. {
  393. demandNumber:'01',
  394. demandTitle:'食品餐饮',
  395. demandHref: 'restaurant',
  396. demandText: '随着社会经济的不断发展,餐饮文化的传播将越来越国际化和市场化。如何应对蓬勃发展的餐饮形势,不仅只是餐饮企业所面对的问题,同时也是烹饪教育应该思考的问题。',
  397. demandLinkBox: [
  398. {
  399. img: require(`~/static/images/client/index/index-demand-icon7-1.png`),
  400. href: '#',
  401. },
  402. {
  403. img: require(`~/static/images/client/index/index-demand-icon7-2.png`),
  404. href: '#',
  405. },
  406. ],
  407. },
  408. {
  409. demandNumber:'02',
  410. demandTitle:'教育培训',
  411. demandHref: 'education',
  412. demandText: '教培行业存在的教师教学水平参差不齐,教学质量难以提升等问题,麦塔不仅是考试出题软件,还是在线教学考试系统,非常适合培训机构前期营销获客以及后期模拟考试的场景。',
  413. demandLinkBox: [
  414. {
  415. img: require(`~/static/images/client/index/index-demand-icon8-1.png`),
  416. href: '#',
  417. },
  418. {
  419. img: require(`~/static/images/client/index/index-demand-icon8-2.png`),
  420. href: '#',
  421. },
  422. ],
  423. },
  424. {
  425. demandNumber:'03',
  426. demandTitle:'医疗行业',
  427. demandHref: 'medical',
  428. demandText: '医学类考试种类繁多,全国各级医学教育机构,如医学院,卫校,护校的本科,研究生,大中专教育培训考试等,一些医学高等院校的附属医院同时还有本科,研究生在校生的教学考试工作等。',
  429. demandLinkBox: [
  430. {
  431. img: require(`~/static/images/client/index/index-demand-icon9-1.png`),
  432. href: '#',
  433. },
  434. {
  435. img: require(`~/static/images/client/index/index-demand-icon9-2.png`),
  436. href: '#',
  437. },
  438. ],
  439. },
  440. {
  441. demandNumber:'04',
  442. demandTitle:'政府机构',
  443. demandHref: 'government',
  444. demandText: '无论是国企还是私企,每年都要举行年度考核、党建考核等各种不同形式的考试。而传统考试方式,从出题、组卷、印刷,到安排场地、试卷分发等,成本较高,不能完全适应现代企业管理模式。',
  445. demandLinkBox: [
  446. {
  447. img: require(`~/static/images/client/index/index-demand-icon10-1.png`),
  448. href: '#',
  449. },
  450. {
  451. img: require(`~/static/images/client/index/index-demand-icon10-2.png`),
  452. href: '#',
  453. },
  454. ],
  455. },
  456. {
  457. demandNumber:'05',
  458. demandTitle:'能源化工',
  459. demandHref: 'energy',
  460. demandText: '信息化在社会的各行各业迅速发展,在石油、石化和煤炭等大型国有企业中要以信息化带动工业化、自动化,应用信息技术改造提升能源企业,加快企业信息化进程,提高信息技术应用水平。',
  461. demandLinkBox: [
  462. {
  463. img: require(`~/static/images/client/index/index-demand-icon11-1.png`),
  464. href: '#',
  465. },
  466. {
  467. img: require(`~/static/images/client/index/index-demand-icon11-2.png`),
  468. href: '#',
  469. },
  470. {
  471. img: require(`~/static/images/client/index/index-demand-icon11-3.png`),
  472. href: '#',
  473. },
  474. ],
  475. },
  476. ],
  477. btnTextDisabled: false,
  478. telDl: false,
  479. btnText: '获取验证码',
  480. countdown: 60, // 60秒倒计时
  481. sliderData: {},
  482. appKey: 'FFFF0N00000000007EC0',
  483. telChangeDate: {},
  484. telRules: {
  485. tel: [
  486. { trigger: 'blur', required: true, message: '请输入手机号' },
  487. ],
  488. verification: [
  489. { trigger: 'blur', required: true, message: '请输入验证码' },
  490. ],
  491. },
  492. };
  493. },
  494. head(){
  495. return {
  496. title: '在线考试系统_在线培训系统_在线答题系统_大连栋科软件工程有限公司',
  497. meta: [
  498. {
  499. name: 'description',
  500. content: '麦塔在线考试系统和在线培训系统是由大连栋科软件工程有限公司历经多年独立研发,有完全自主知识产权的在线考试系统、在线培训系统。麦塔在线答题系统、在线学习系统全面支持移动端,栋科10年教育软件开发经验,10大功能模块,365天实时跟踪服务。麦塔无纸化考试系统节省30%的考试成本,跨平台支持手机端考试、练习!'
  501. },
  502. {
  503. name: 'mobile-agent',
  504. content: 'format=html5;url=https://m.mtavip.com'
  505. },
  506. {
  507. 'http-equiv': 'Cache-Control',
  508. content: 'no-transform'
  509. },
  510. ],
  511. link:[
  512. {
  513. rel:'alternate',
  514. media:'only screen and(max-width: 640px)',
  515. href:'https://m.mtavip.com'
  516. }
  517. ]
  518. }
  519. },
  520. methods: {
  521. applyFun() {
  522. this.telDl = true;
  523. this.sliderFun();
  524. },
  525. dialogSave(){
  526. this.$refs.ruleTelForm.validate((valid) => {
  527. if (valid) {
  528. // 请求后台
  529. const options = {
  530. phone: this.telChangeDate.tel,
  531. code: this.telChangeDate.verification,
  532. };
  533. this.$axios.$post('/develop/add',options).then(res=>{
  534. if (res.code === 0 && res.data) {
  535. this.telDl = false;
  536. this.$message.success('申请成功');
  537. } else {
  538. this.$message.error('申请失败');
  539. }
  540. });
  541. }
  542. });
  543. },
  544. delDlClose(){
  545. this.telDl =false
  546. this.$refs.ruleTelForm.resetFields();
  547. __nc.reset();
  548. },
  549. /**
  550. * 串联加载指定的脚本
  551. * 串联加载[异步]逐个加载,每个加载完成后加载下一个
  552. * 全部加载完成后执行回调
  553. * @param array|string 指定的脚本们
  554. * @param function 成功后回调的函数
  555. * @return array 所有生成的脚本元素对象数组
  556. * 异步加载js后运行回调函数callback / scripts 为数组或字符串
  557. */
  558. seriesLoadScripts(scripts, callback) {
  559. if (typeof (scripts) != 'object') {
  560. var scripts = [scripts];
  561. }
  562. var HEAD = document.getElementsByTagName('head').item(0) || document.documentElement;
  563. var s = new Array(), last = scripts.length - 1, recursiveLoad = function (i) { //递归
  564. s[i] = document.createElement('script');
  565. s[i].setAttribute('type', 'text/javascript');
  566. s[i].onload = s[i].onreadystatechange = function () { //Attach handlers for all browsers
  567. if (!/*@cc_on!@*/0 || this.readyState == 'loaded' || this.readyState == 'complete') {
  568. this.onload = this.onreadystatechange = null;
  569. this.parentNode.removeChild(this);
  570. if (i != last) {
  571. recursiveLoad(i + 1);
  572. } else if (typeof (callback) == 'function') {
  573. callback();
  574. }
  575. }
  576. };
  577. s[i].setAttribute('src', scripts[i]);
  578. HEAD.appendChild(s[i]);
  579. };
  580. recursiveLoad(0);
  581. },
  582. // 滑块
  583. sliderFun() {
  584. const nc_token = [this.appKey, (new Date()).getTime(), Math.random()].join(':');
  585. console.log(nc_token);
  586. const NC_Opt = {
  587. //声明滑动验证需要渲染的目标元素ID。
  588. renderTo: '#your-dom-id',
  589. //应用类型标识。它和使用场景标识(scene字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的appkey字段值,请务必正确填写。
  590. appkey: this.appKey,
  591. //使用场景标识。它和应用类型标识(appkey字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的scene值,请务必正确填写。
  592. scene: 'nc_message',
  593. //滑动验证码的主键,请勿将该字段定义为固定值。确保每个用户每次打开页面时,其token值都是不同的。系统默认的格式为:”您的appkey”+”时间戳”+”随机数”。
  594. token: nc_token,
  595. //滑动条的宽度。
  596. customWidth: 300,
  597. //业务键字段,可为空。为便于线上问题的排查,建议您按照线上问题定位文档中推荐的方法配置该字段值。
  598. trans: { 'key1': 'code0' },
  599. //通过Dom的ID属性自动填写trans业务键,可为空。建议您按照线上问题定位文档中推荐的方法配置该字段值。
  600. elementID: ['usernameID'],
  601. //是否自定义配置底层采集组件。如无特殊场景,请使用默认值(0),即不自定义配置底层采集组件。
  602. is_Opt: 0,
  603. //语言。PC端Web页面场景默认支持18国语言,详细配置方法请参见自定义文案与多语言文档。
  604. language: 'cn',
  605. //是否启用。一般情况,保持默认值(true)即可。
  606. isEnabled: true,
  607. //内部网络请求的超时时间。一般情况建议保持默认值(3000ms)。
  608. timeout: 3000,
  609. //允许服务器超时重复次数,默认5次。超过重复次数后将触发报错。
  610. times: 5,
  611. //用于自定义滑动验证各项请求的接口地址。一般情况,请勿配置该参数。
  612. apimap: {
  613. // 'analyze': '//a.com/nocaptcha/analyze.jsonp',
  614. // 'get_captcha': '//b.com/get_captcha/ver3',
  615. // 'get_captcha': '//pin3.aliyun.com/get_captcha/ver3'
  616. // 'get_img': '//c.com/get_img',
  617. // 'checkcode': '//d.com/captcha/checkcode.jsonp',
  618. // 'umid_Url': '//e.com/security/umscript/3.2.1/um.js',
  619. // 'uab_Url': '//aeu.alicdn.com/js/uac/909.js',
  620. // 'umid_serUrl': 'https://g.com/service/um.json'
  621. },
  622. //前端滑动验证通过时会触发该回调参数。您可以在该回调参数中将请求标识(token)、会话ID(sessionid)、签名串(sig)字段记录下来,随业务请求一同发送至您的服务端调用验签。
  623. callback: (data) => {
  624. this.sliderData = Object.assign({}, data, {
  625. appkey: NC_Opt.appkey,
  626. scene: NC_Opt.scene,
  627. });
  628. console.log( this.sliderData);
  629. },
  630. };
  631. let date11 = () => {
  632. let _date = new Date();
  633. let year = _date.getFullYear().toString();
  634. let month = _date.getMonth().toString();
  635. let day = _date.getDate().toString();
  636. let a = _date.getHours().toString();
  637. let b = _date.getMinutes().toString();
  638. let c = _date.getSeconds().toString();
  639. return year + month + day + a + b + c;
  640. };
  641. let c = date11();
  642. const scripts = [
  643. `https://g.alicdn.com/sd/ncpc/nc.js?t=${c}`,
  644. ];
  645. this.seriesLoadScripts(scripts, function () {
  646. var nc = new noCaptcha(NC_Opt);
  647. nc.upLang('cn', {
  648. _startTEXT: '请按住滑块,拖动到最右边',
  649. _yesTEXT: '验证通过',
  650. _error300: '哎呀,出错了,点击<a href="javascript:__nc.reset()">刷新</a>再来一次',
  651. _errorNetwork: '网络不给力,请<a href="javascript:__nc.reset()">点击刷新</a>',
  652. });
  653. });
  654. },
  655. // 倒计时60秒
  656. setTime() {
  657. if (this.countdown === 0) {
  658. this.btnTextDisabled = false;
  659. this.btnText = '免费获取验证码';
  660. this.countdown = 60;
  661. } else {
  662. this.btnTextDisabled = true;
  663. this.btnText = '重新发送(' + this.countdown + 's)';
  664. this.countdown--;
  665. setTimeout(() => {
  666. this.setTime();
  667. }, 1000);
  668. }
  669. },
  670. // 验证码
  671. checkVerification() {
  672. if (this.sliderData.appkey === undefined) {
  673. return;
  674. }
  675. this.$axios.$post(`/develop/exists`,{ phone: this.telChangeDate.tel}).then(res=>{
  676. if (res.code === 0 && res.data) {
  677. let req = {
  678. 'appkey': this.sliderData.appkey,
  679. 'phone': this.telChangeDate.tel,
  680. 'scene': this.sliderData.scene,
  681. 'sessionid': this.sliderData.csessionid,
  682. 'sig': this.sliderData.sig,
  683. 'token': this.sliderData.token,
  684. 'type': 0,
  685. }
  686. this.$axios.$post('/sendCode',req).then(res=>{
  687. if (res.code === 0 && res.data) {
  688. this.setTime();
  689. }
  690. })
  691. } else {
  692. this.$message.error('手机号已存在');
  693. return false;
  694. }
  695. })
  696. },
  697. goExamPage(){
  698. this.$router.push({ name: 'examsystem' });
  699. },
  700. goPeixunPage(){
  701. this.$router.push({ name: 'trainsystem' });
  702. },
  703. goKechengPage(){
  704. this.$router.push({ name: 'courseware' });
  705. },
  706. checkInfo(data) {
  707. const opt = {
  708. id: data.code,
  709. };
  710. this.$router.push({ name: 'news-id', params: opt });
  711. },
  712. },
  713. computed: {
  714. baseUrl() {
  715. return this.getBaseUrl;
  716. },
  717. ...mapGetters(['getBaseUrl']),
  718. },
  719. };
  720. </script>
  721. <style></style>