index.vue 32 KB

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