custom.vue 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053
  1. <template>
  2. <div class="client-course-page course-custom">
  3. <!-- 课程开发页 banner栏 -->
  4. <div :style="{backgroundImage: `url(${defaultImg})`}" class="client-course-banner"></div>
  5. <div class="top-btns-content client-container">
  6. <h4>课程定制类型</h4>
  7. <div class="btn-group">
  8. <div class="dingzhi-card" :class="{active: active==='dhl'}" @click="changeCardActive('dhl')">
  9. <i></i>
  10. <p>动画类课程</p>
  11. <span class="jiao"></span>
  12. </div>
  13. <div class="dingzhi-card" :class="{active: active==='spl'}" @click="changeCardActive('spl')">
  14. <i></i>
  15. <p>视频类课程</p>
  16. <span class="jiao"></span>
  17. </div>
  18. <div class="dingzhi-card" :class="{active: active==='h5l'}" @click="changeCardActive('h5l')">
  19. <i></i>
  20. <p>H5类课程</p>
  21. <span class="jiao"></span>
  22. </div>
  23. <div class="dingzhi-card" :class="{active: active==='ppt'}" @click="changeCardActive('ppt')">
  24. <i></i>
  25. <p>PPT定制及美化</p>
  26. <span class="jiao"></span>
  27. </div>
  28. </div>
  29. </div>
  30. <div class="course-content client-container" v-if="active === 'dhl'">
  31. <h4>动画类课程</h4>
  32. <p>动画类课程不受限于人员和场地,比较方便、生动形象地呈现知识内容。主要包含有:图文课程、情景动画课程、交互式课程、三分屏课程、SCORM框架式课程。适用各种行业:</p>
  33. <div class="video-container">
  34. <div class="video-box">
  35. <span><img :src="courseVideoImg1" alt="教育培训业"><i @click="playVideo(0)"></i></span>
  36. <p>教育培训业</p>
  37. </div>
  38. <div class="video-box">
  39. <span><img :src="courseVideoImg2" alt="金融保险业"><i @click="playVideo(1)"></i></span>
  40. <p>金融保险业</p>
  41. </div>
  42. <div class="video-box">
  43. <span><img :src="courseVideoImg3" alt="食品餐饮业"><i @click="playVideo(2)"></i></span>
  44. <p>食品餐饮业</p>
  45. </div>
  46. <div class="video-box">
  47. <span><img :src="courseVideoImg4" alt="生产制造业"><i @click="playVideo(3)"></i></span>
  48. <p>生产制造业</p>
  49. </div>
  50. <div class="video-box">
  51. <span><img :src="courseVideoImg5" alt="信息通讯业"><i @click="playVideo(4)"></i></span>
  52. <p>信息通讯业</p>
  53. </div>
  54. <div class="video-box">
  55. <span><img :src="courseVideoImg6" alt="汽车销售业"><i @click="playVideo(5)"></i></span>
  56. <p>汽车销售业</p>
  57. </div>
  58. </div>
  59. <el-button class="zixun-online" type="primary" @click="gozixun">在线咨询</el-button>
  60. </div>
  61. <div class="course-content client-container" v-if="active === 'spl'">
  62. <h4>视频类课程</h4>
  63. <p>视频类课程可以直观形象地呈现知识内容。主要包含有:企业宣传片、实验操作课程、课堂实录课程、会议访谈等等。动画类课程也可以导出成MP4视频格式文件呈现。适用各种行业:</p>
  64. <div class="video-container">
  65. <div class="video-box">
  66. <span><img :src="courseVideoImg7" alt="能源化工业"><i @click="playVideo(6)"></i></span>
  67. <p>能源化工业</p>
  68. </div>
  69. <div class="video-box">
  70. <span><img :src="courseVideoImg8" alt="金融保险业"><i @click="playVideo(7)"></i></span>
  71. <p>金融保险业</p>
  72. </div>
  73. <div class="video-box">
  74. <span><img :src="courseVideoImg9" alt="教育培训业"><i @click="playVideo(8)"></i></span>
  75. <p>教育培训业</p>
  76. </div>
  77. <div class="video-box">
  78. <span><img :src="courseVideoImg10" alt="管理培训业"><i @click="playVideo(9)"></i></span>
  79. <p>管理培训业</p>
  80. </div>
  81. <div class="video-box">
  82. <span><img :src="courseVideoImg11" alt="食品餐饮业"><i @click="playVideo(10)"></i></span>
  83. <p>食品餐饮业</p>
  84. </div>
  85. <div class="video-box">
  86. <span><img :src="courseVideoImg12" alt="服务零售业"><i @click="playVideo(11)"></i></span>
  87. <p>服务零售业</p>
  88. </div>
  89. </div>
  90. <el-button class="zixun-online" type="primary" @click="gozixun">在线咨询</el-button>
  91. </div>
  92. <div class="course-content client-container" v-if="active === 'h5l'">
  93. <h4>H5类课程</h4>
  94. <p>通用HTML5技术、将图文、互动测试、动画视频、游戏等多种形式结合在一起,课程交互性强、学员参与程度高。主要包含有:图文H5、游戏H5等。</p>
  95. <div class="video-container">
  96. <div class="video-box">
  97. <span><img :src="courseVideoImg13" alt="现代制造业"><i @click="playVideo(12)"></i></span>
  98. <p>现代制造业</p>
  99. </div>
  100. <div class="video-box">
  101. <span><img :src="courseVideoImg14" alt="教育培训业"><i @click="playVideo(13)"></i></span>
  102. <p>教育培训业</p>
  103. </div>
  104. <div class="video-box">
  105. <span><img :src="courseVideoImg15" alt="物流业"><i @click="playVideo(14)"></i></span>
  106. <p>物流业</p>
  107. </div>
  108. </div>
  109. <el-button class="zixun-online" type="primary" @click="gozixun">在线咨询</el-button>
  110. </div>
  111. <div class="course-content client-container" v-if="active === 'ppt'">
  112. <h4>PPT定制及美化</h4>
  113. <p>现在PPT正成为人们工作生活的重要组成部分,在工作汇报、企业宣传、产品推介、婚礼庆典、项目竞标、管理咨询等领域发挥重大的作用。麦塔曾多次为客户在各种大赛中取得前三甲的优异成绩。</p>
  114. <div class="video-container">
  115. <div class="video-box">
  116. <span><img :src="courseVideoImg16" alt="金融保险业"><i @click="playVideo(15)"></i></span>
  117. <p>金融保险业</p>
  118. </div>
  119. <div class="video-box">
  120. <span><img :src="courseVideoImg17" alt="教育培训业"><i @click="playVideo(16)"></i></span>
  121. <p>教育培训业</p>
  122. </div>
  123. <div class="video-box">
  124. <span><img :src="courseVideoImg18" alt="生产制造业"><i @click="playVideo(17)"></i></span>
  125. <p>生产制造业</p>
  126. </div>
  127. </div>
  128. <el-button class="zixun-online" type="primary" @click="gozixun">在线咨询</el-button>
  129. </div>
  130. <div class="course-content-wrap">
  131. <div class="course-form-bg"></div>
  132. <div class="form-wrap">
  133. <h4>课程定制在线报价</h4>
  134. <p>栋科客服人员会在30分钟内与你取得联系</p>
  135. <div class="baojia-form">
  136. <p class="form-f1"><i></i>已有 {{ custom_sum }} 位客户成功报价</p>
  137. <div class="form-f2">
  138. <el-input v-model="custom_phone" placeholder="请输入手机号" class="dialog-input-tel height-63 form-input"></el-input>
  139. </div>
  140. <div class="form-f3">
  141. <div id="your-dom-id" class="nc-container"></div>
  142. </div>
  143. <div class="form-row-col form-f4">
  144. <el-input v-model="custom_code" placeholder="请输入验证码" class="dialog-input-code height-63 form-input"></el-input>
  145. <el-button @click="checkVerification" :disabled="btnTextDisabled" class="custom-code-btn" >{{btnText}}</el-button>
  146. </div>
  147. <div class="form-f5">
  148. <el-input v-model="custom_name" placeholder="请输入您的称呼(必填)" class="dialog-input-tel height-63 form-input"></el-input>
  149. </div>
  150. <el-button class="form-f6" type="primary" @click="handleYuyue">预约咨询顾客</el-button>
  151. <p class="form-f7">
  152. <span class="icon-w1"><i></i>李**</span><span>125****55545</span><span>30分钟前</span>
  153. </p>
  154. </div>
  155. </div>
  156. </div>
  157. <!-- 视频播放弹窗 -->
  158. <el-dialog
  159. :title="title"
  160. :visible.sync="videoDialogFlag"
  161. @close="closeVideoDialog"
  162. class="course-video-dialog"
  163. center>
  164. <video controls :src="source" class="course-video-box"></video>
  165. </el-dialog>
  166. </div>
  167. </template>
  168. <script>
  169. export default {
  170. name: 'custom',
  171. layout: 'templateB',
  172. async asyncData({ $axios, store }) {
  173. // 设置选中菜单
  174. store.commit('setActiveNav', '/courseware');
  175. let [res1, res2] = await Promise.all([
  176. await $axios.$post(`/home/news/carousel`,{'newsClassifyId':0,'keyword':'课程'}).then(res=>{
  177. return res
  178. }),
  179. await $axios.$post(`/develop/sum`,{}).then(res=>{
  180. return res
  181. }),
  182. ])
  183. return {
  184. topCarousels : res1.data.data ||[],
  185. custom_sum: res2.data || 0,
  186. }
  187. },
  188. data() {
  189. return {
  190. videoDialogFlag:false,
  191. source:'',
  192. footerText:'',
  193. title:'',
  194. custom_phone: '',
  195. custom_code: '',
  196. custom_name: '',
  197. bannerList: [],
  198. defaultImg: require(`~/static/images/client/course/course-banner-background-dingzhi.jpg`),
  199. active: 'dhl',
  200. // 动画类
  201. courseVideoImg1: require(`~/static/images/client/course/course-video-img1.png`),
  202. courseVideoImg2: require(`~/static/images/client/course/course-video-img1.png`),
  203. courseVideoImg3: require(`~/static/images/client/course/course-video-img1.png`),
  204. courseVideoImg4: require(`~/static/images/client/course/course-video-img1.png`),
  205. courseVideoImg5: require(`~/static/images/client/course/course-video-img1.png`),
  206. courseVideoImg6: require(`~/static/images/client/course/course-video-img1.png`),
  207. // 视频类
  208. courseVideoImg7: require(`~/static/images/client/course/course-video-img1.png`),
  209. courseVideoImg8: require(`~/static/images/client/course/course-video-img1.png`),
  210. courseVideoImg9: require(`~/static/images/client/course/course-video-img1.png`),
  211. courseVideoImg10: require(`~/static/images/client/course/course-video-img1.png`),
  212. courseVideoImg11: require(`~/static/images/client/course/course-video-img1.png`),
  213. courseVideoImg12: require(`~/static/images/client/course/course-video-img1.png`),
  214. // H5类
  215. courseVideoImg13: require(`~/static/images/client/course/course-video-img1.png`),
  216. courseVideoImg14: require(`~/static/images/client/course/course-video-img1.png`),
  217. courseVideoImg15: require(`~/static/images/client/course/course-video-img1.png`),
  218. // PPT类
  219. courseVideoImg16: require(`~/static/images/client/course/course-video-img1.png`),
  220. courseVideoImg17: require(`~/static/images/client/course/course-video-img1.png`),
  221. courseVideoImg18: require(`~/static/images/client/course/course-video-img1.png`),
  222. videoArray:[
  223. {
  224. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  225. title:'教育培训业',
  226. },
  227. {
  228. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  229. title:'金融保险业',
  230. },
  231. {
  232. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  233. title:'食品餐饮业',
  234. },
  235. {
  236. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  237. title:'生产制造业',
  238. },
  239. {
  240. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  241. title:'信息通讯业',
  242. },
  243. {
  244. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  245. title:'汽车销售业',
  246. },
  247. {
  248. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  249. title:'汽车销售业',
  250. },
  251. {
  252. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  253. title:'汽车销售业',
  254. },
  255. {
  256. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  257. title:'汽车销售业',
  258. },
  259. {
  260. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  261. title:'汽车销售业',
  262. },
  263. {
  264. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  265. title:'汽车销售业',
  266. },
  267. {
  268. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  269. title:'汽车销售业',
  270. },
  271. {
  272. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  273. title:'汽车销售业',
  274. },
  275. {
  276. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  277. title:'汽车销售业',
  278. },
  279. {
  280. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  281. title:'汽车销售业',
  282. },
  283. {
  284. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  285. title:'汽车销售业',
  286. },
  287. {
  288. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  289. title:'汽车销售业',
  290. },
  291. {
  292. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  293. title:'汽车销售业',
  294. },
  295. {
  296. url:'https://spdb.mtavip.com/customerTrans/87321d8a03805711940e85451d6bcb0a/3d714c3c-174708975d8-0006-732a-c93-687b7.mp4',
  297. title:'汽车销售业',
  298. },
  299. ],
  300. btnTextDisabled: false,
  301. btnText: '获取验证码',
  302. countdown: 60, // 60秒倒计时
  303. sliderData: {},
  304. appKey: 'FFFF0N00000000007EC0',
  305. };
  306. },
  307. head(){
  308. return {
  309. SystemWidthFlag:false,// 判断是否是手机端,默认为false,默认为PC端
  310. title: '多媒体课件制作_视频课件制作_flash课件制作_【栋科课程开发团队】',
  311. meta: [
  312. {
  313. name: 'keywords',
  314. content: '课件制作,课件制作公司,课件设计,ppt课件制作'
  315. },
  316. {
  317. name:'description',
  318. content:'栋科软件拥有国内专业、成熟的设计团队,丰富的电子课程制作经验,业务方向包括教学设计体验、图文内容演示、情景动漫、AR/VR演示等,在院校教育、零售连锁行业、汽车行业、金融等12大行业课程开发经验超过10年,规范可靠的研发流程、完善的质量评估和卓越的项目管理体系,能高效稳定地保障支付。'
  319. }
  320. ],
  321. }
  322. },
  323. methods: {
  324. gozixun() {
  325. window.href = "https://p.qiao.baidu.com/cps/chat?siteId=17930048&userId=40179606&siteToken=e767a987c8404575246ab0084fb2c9bd";
  326. },
  327. closeVideoDialog() {
  328. this.videoDialogFlag = false;
  329. this.source = '';
  330. this.footerText = '';
  331. this.title = '';
  332. },
  333. /**
  334. * 串联加载指定的脚本
  335. * 串联加载[异步]逐个加载,每个加载完成后加载下一个
  336. * 全部加载完成后执行回调
  337. * @param array|string 指定的脚本们
  338. * @param function 成功后回调的函数
  339. * @return array 所有生成的脚本元素对象数组
  340. * 异步加载js后运行回调函数callback / scripts 为数组或字符串
  341. */
  342. seriesLoadScripts(scripts, callback) {
  343. if (typeof (scripts) != 'object') {
  344. var scripts = [scripts];
  345. }
  346. var HEAD = document.getElementsByTagName('head').item(0) || document.documentElement;
  347. var s = new Array(), last = scripts.length - 1, recursiveLoad = function (i) { //递归
  348. s[i] = document.createElement('script');
  349. s[i].setAttribute('type', 'text/javascript');
  350. s[i].onload = s[i].onreadystatechange = function () { //Attach handlers for all browsers
  351. if (!/*@cc_on!@*/0 || this.readyState == 'loaded' || this.readyState == 'complete') {
  352. this.onload = this.onreadystatechange = null;
  353. this.parentNode.removeChild(this);
  354. if (i != last) {
  355. recursiveLoad(i + 1);
  356. } else if (typeof (callback) == 'function') {
  357. callback();
  358. }
  359. }
  360. };
  361. s[i].setAttribute('src', scripts[i]);
  362. HEAD.appendChild(s[i]);
  363. };
  364. recursiveLoad(0);
  365. },
  366. // 滑块
  367. sliderFun() {
  368. const nc_token = [this.appKey, (new Date()).getTime(), Math.random()].join(':');
  369. console.log(nc_token);
  370. const NC_Opt = {
  371. //声明滑动验证需要渲染的目标元素ID。
  372. renderTo: '#your-dom-id',
  373. //应用类型标识。它和使用场景标识(scene字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的appkey字段值,请务必正确填写。
  374. appkey: this.appKey,
  375. //使用场景标识。它和应用类型标识(appkey字段)一起决定了滑动验证的业务场景与后端对应使用的策略模型。您可以在人机验证控制台的配置管理页签找到对应的scene值,请务必正确填写。
  376. scene: 'nc_message',
  377. //滑动验证码的主键,请勿将该字段定义为固定值。确保每个用户每次打开页面时,其token值都是不同的。系统默认的格式为:”您的appkey”+”时间戳”+”随机数”。
  378. token: nc_token,
  379. //滑动条的宽度。
  380. customWidth: 300,
  381. //业务键字段,可为空。为便于线上问题的排查,建议您按照线上问题定位文档中推荐的方法配置该字段值。
  382. trans: { 'key1': 'code0' },
  383. //通过Dom的ID属性自动填写trans业务键,可为空。建议您按照线上问题定位文档中推荐的方法配置该字段值。
  384. elementID: ['usernameID'],
  385. //是否自定义配置底层采集组件。如无特殊场景,请使用默认值(0),即不自定义配置底层采集组件。
  386. is_Opt: 0,
  387. //语言。PC端Web页面场景默认支持18国语言,详细配置方法请参见自定义文案与多语言文档。
  388. language: 'cn',
  389. //是否启用。一般情况,保持默认值(true)即可。
  390. isEnabled: true,
  391. //内部网络请求的超时时间。一般情况建议保持默认值(3000ms)。
  392. timeout: 3000,
  393. //允许服务器超时重复次数,默认5次。超过重复次数后将触发报错。
  394. times: 5,
  395. //用于自定义滑动验证各项请求的接口地址。一般情况,请勿配置该参数。
  396. apimap: {
  397. // 'analyze': '//a.com/nocaptcha/analyze.jsonp',
  398. // 'get_captcha': '//b.com/get_captcha/ver3',
  399. // 'get_captcha': '//pin3.aliyun.com/get_captcha/ver3'
  400. // 'get_img': '//c.com/get_img',
  401. // 'checkcode': '//d.com/captcha/checkcode.jsonp',
  402. // 'umid_Url': '//e.com/security/umscript/3.2.1/um.js',
  403. // 'uab_Url': '//aeu.alicdn.com/js/uac/909.js',
  404. // 'umid_serUrl': 'https://g.com/service/um.json'
  405. },
  406. //前端滑动验证通过时会触发该回调参数。您可以在该回调参数中将请求标识(token)、会话ID(sessionid)、签名串(sig)字段记录下来,随业务请求一同发送至您的服务端调用验签。
  407. callback: (data) => {
  408. this.sliderData = Object.assign({}, data, {
  409. appkey: NC_Opt.appkey,
  410. scene: NC_Opt.scene,
  411. });
  412. console.log( this.sliderData);
  413. },
  414. };
  415. let date11 = () => {
  416. let _date = new Date();
  417. let year = _date.getFullYear().toString();
  418. let month = _date.getMonth().toString();
  419. let day = _date.getDate().toString();
  420. let a = _date.getHours().toString();
  421. let b = _date.getMinutes().toString();
  422. let c = _date.getSeconds().toString();
  423. return year + month + day + a + b + c;
  424. };
  425. let c = date11();
  426. const scripts = [
  427. `https://g.alicdn.com/sd/ncpc/nc.js?t=${c}`,
  428. ];
  429. this.seriesLoadScripts(scripts, function () {
  430. var nc = new noCaptcha(NC_Opt);
  431. nc.upLang('cn', {
  432. _startTEXT: '请按住滑块,拖动到最右边',
  433. _yesTEXT: '验证通过',
  434. _error300: '哎呀,出错了,点击<a href="javascript:__nc.reset()">刷新</a>再来一次',
  435. _errorNetwork: '网络不给力,请<a href="javascript:__nc.reset()">点击刷新</a>',
  436. });
  437. });
  438. },
  439. // 验证码
  440. checkVerification() {
  441. if (this.sliderData.appkey === undefined) {
  442. this.$message.error('请先通过滑块校验');
  443. return;
  444. }
  445. this.$axios.$post(`/develop/exists`,{ phone: this.custom_phone}).then(res=>{
  446. if (res.code === 0 && res.data) {
  447. let req = {
  448. 'appkey': this.sliderData.appkey,
  449. 'phone': this.custom_phone,
  450. 'scene': this.sliderData.scene,
  451. 'sessionid': this.sliderData.csessionid,
  452. 'sig': this.sliderData.sig,
  453. 'token': this.sliderData.token,
  454. 'type': 0,
  455. }
  456. this.$axios.$post('/sendCode',req).then(res=>{
  457. if (res.code === 0 && res.data) {
  458. this.setTime();
  459. }else {
  460. this.$message.error(res.msg||'手机号已存在');
  461. }
  462. })
  463. } else {
  464. this.$message.error(res.msg||'手机号已存在');
  465. return false;
  466. }
  467. })
  468. },
  469. // 倒计时60秒
  470. setTime() {
  471. if (this.countdown === 0) {
  472. this.btnTextDisabled = false;
  473. this.btnText = '获取验证码';
  474. this.countdown = 60;
  475. }else if(this.countdown === -1){
  476. this.btnTextDisabled = false;
  477. this.btnText = '获取验证码';
  478. this.countdown = 60;
  479. } else {
  480. this.btnTextDisabled = true;
  481. this.btnText = '重新发送(' + this.countdown + 's)';
  482. this.countdown--;
  483. setTimeout(() => {
  484. this.setTime();
  485. }, 1000);
  486. }
  487. },
  488. handleYuyue() {
  489. const tag = {
  490. 'dhl':1,
  491. 'spl':2,
  492. 'h5l':3,
  493. 'ppt':4,
  494. }
  495. const opt = {
  496. type: tag[this.active],
  497. phone: this.custom_phone,
  498. code: this.custom_code,
  499. chenghu: this.custom_name
  500. }
  501. if (!this.custom_phone) {
  502. this.$message.error("请填写手机号");
  503. return;
  504. }
  505. if (!this.custom_code) {
  506. this.$message.error("验证码不能为空");
  507. return;
  508. }
  509. if (!this.custom_name) {
  510. this.$message.error("请输入您的称呼");
  511. return;
  512. }
  513. this.confirmTl(opt)
  514. },
  515. playVideo(index) {
  516. this.videoDialogFlag = true
  517. this.source = this.videoArray[index].url
  518. this.title = this.videoArray[index].title
  519. },
  520. changeCardActive(code) {
  521. this.active = code;
  522. },
  523. // 判断是否为移动端
  524. getSystemWidth(){
  525. var browserWidth=document.documentElement.clientWidth;
  526. if(browserWidth <= 768){
  527. this.SystemWidthFlag = true;
  528. }else{
  529. this.SystemWidthFlag = false;
  530. }
  531. },
  532. confirmTl(options){
  533. // 请求后台
  534. this.$axios.$post('/develop/add',options).then(res=>{
  535. if (res.code === 0 && res.data) {
  536. this.$message.success('申请成功');
  537. } else {
  538. this.$message.error('申请失败');
  539. }
  540. });
  541. },
  542. clickBanner() {}
  543. },
  544. mounted() {
  545. this.getSystemWidth();
  546. this.sliderFun();
  547. },
  548. beforeDestroy() {
  549. },
  550. };
  551. </script>
  552. <style lang="scss" scoped>
  553. .course-custom {
  554. .top-btns-content {
  555. margin: 175px auto 104px;
  556. @media (max-width: 768px){
  557. margin: 30px auto 0px;
  558. }
  559. h4 {
  560. height: 34px;
  561. font-size: 36px;
  562. font-weight: 400;
  563. text-align: center;
  564. @media (max-width: 768px){
  565. font-size: 24px;
  566. }
  567. }
  568. .btn-group {
  569. margin-top: 104px;
  570. display: flex;
  571. flex-direction: row;
  572. justify-content: space-between;
  573. @media (max-width: 768px) {
  574. flex-wrap: wrap;
  575. margin: 50px;
  576. }
  577. .dingzhi-card {
  578. width: 231px;
  579. height: 270px;
  580. border: 1px solid #126bff;
  581. border-radius: 10px;
  582. background: #fff;
  583. text-align: center;
  584. position: relative;
  585. @media (max-width: 768px) {
  586. width: 116px;
  587. margin-bottom: 40px;
  588. height: 135px;
  589. >p {
  590. font-size: 12px;
  591. font-weight: 400;
  592. text-align: center;
  593. color: #333333;
  594. }
  595. }
  596. &.active {
  597. background: linear-gradient(0deg,#c5deff 0%, #ffffff 99%);
  598. }
  599. > i {
  600. margin: 69px auto 0;
  601. display: block;
  602. height: 118px;
  603. width: 87px;
  604. background-repeat: no-repeat;
  605. @media (max-width: 768px) {
  606. margin: 30px auto 0;
  607. height: 80px;
  608. width: 60px;
  609. }
  610. }
  611. &:nth-child(1) {
  612. i {
  613. background-image: url("~static/images/client/course/btns/dingzhi-bt1.png");
  614. background-size: contain;
  615. }
  616. }
  617. &:nth-child(2) {
  618. i {
  619. background-image: url("~static/images/client/course/btns/dingzhi-bt2.png");
  620. background-size: contain;
  621. }
  622. }
  623. &:nth-child(3) {
  624. i {
  625. background-image: url("~static/images/client/course/btns/dingzhi-bt3.png");
  626. background-size: contain;
  627. }
  628. }
  629. &:nth-child(4) {
  630. i {
  631. background-image: url("~static/images/client/course/btns/dingzhi-bt4.png");
  632. background-size: contain;
  633. }
  634. }
  635. &.active .jiao {
  636. position: absolute;
  637. bottom: -10px;
  638. left: 50%;
  639. transform: translateX(-50%);
  640. width: 0;
  641. height: 0;
  642. border-top: 10px solid #126bff;
  643. border-right: 10px solid transparent;
  644. border-left: 10px solid transparent;
  645. }
  646. }
  647. }
  648. }
  649. .course-content{
  650. margin: 0 auto;
  651. text-align: center;
  652. >h4 {
  653. text-align: center;
  654. height: 34px;
  655. font-size: 36px;
  656. font-weight: 400;
  657. margin-top: 146px;
  658. margin-bottom: 57px;
  659. @media (max-width: 768px){
  660. height: 19px;
  661. font-size: 24px;
  662. margin-top: 5px;
  663. margin-bottom: 60px;
  664. }
  665. }
  666. >p {
  667. margin: 0 20px 100px;
  668. height: 50px;
  669. font-size: 18px;
  670. font-weight: 400;
  671. text-align: center;
  672. color: #333333;
  673. }
  674. .video-container {
  675. display: flex;
  676. flex-wrap: wrap;
  677. justify-content: space-between;
  678. margin-bottom: 70px;
  679. .video-box {
  680. width: 30%;
  681. margin-bottom: 79px;
  682. text-align: center;
  683. @media (max-width: 768px){
  684. width: 100%;
  685. margin-bottom: 39px;
  686. }
  687. >span {
  688. position: relative;
  689. display: inline-block;
  690. }
  691. p {
  692. margin-top: 28px;
  693. height: 23px;
  694. font-size: 24px;
  695. font-weight: 400;
  696. color: #333333;
  697. @media (max-width: 768px){
  698. font-size: 16px;
  699. }
  700. }
  701. i:hover{background-image: url("~static/images/client/course/course-video-icon-a.svg");background-size: cover;background-position: bottom;}
  702. i{width: 48px;height: 48px;cursor: pointer;background-image: url("~static/images/client/course/course-video-icon.svg");display: inline-block;position: absolute;
  703. left: 50%;margin-left: -24px;z-index: 5;top: 50%;margin-top: -24px;background-size: cover;background-position: bottom;transition: all 0.5s;}
  704. img{transition: all 0.5s;}
  705. span:hover{img{transform: scale(1.1);}}
  706. }
  707. }
  708. .zixun-online {
  709. margin: 0 auto 128px;
  710. text-align: center;
  711. color: #ffffff;
  712. width: 180px;
  713. padding: 12px 38px;
  714. font-size: 24px;
  715. line-height: 48px;
  716. font-weight: 400;
  717. @media (max-width: 768px) {
  718. margin: 0 auto 60px;
  719. line-height: 20px;
  720. font-size: 16px;
  721. }
  722. }
  723. }
  724. .course-content-wrap {
  725. position: relative;
  726. height: 800px;
  727. width: 100%;
  728. margin-bottom: 256px;
  729. @media (max-width: 768px) {
  730. margin-bottom: -100px;
  731. }
  732. .course-form-bg {
  733. height: 655px;
  734. background-image: url("~static/images/client/course/btns/course-bg-b1.png");
  735. @media (max-width: 768px) {
  736. height: 455px;
  737. }
  738. }
  739. .form-wrap {
  740. width: 540px;
  741. height: 800px;
  742. position: absolute;
  743. top: 0;
  744. left: 50%;
  745. transform: translateX(-50%);
  746. @media (max-width: 768px) {
  747. width: 80%;
  748. height: 600px;
  749. }
  750. >h4 {
  751. height: 59px;
  752. font-size: 61px;
  753. font-weight: 700;
  754. color: #fefefe;
  755. letter-spacing: 1.53px;
  756. text-align: center;
  757. margin-top: 73px;
  758. margin-bottom: 23px;
  759. @media (max-width: 768px) {
  760. font-size: 20px;
  761. margin-bottom: 10px;
  762. margin-top: 30px;
  763. }
  764. }
  765. >p {
  766. height: 26px;
  767. font-size: 27px;
  768. font-weight: 400;
  769. text-align: center;
  770. color: #ffffff;
  771. margin-bottom: 41px;
  772. @media (max-width: 768px) {
  773. font-size: 16px;
  774. }
  775. }
  776. .baojia-form {
  777. background: #fff;
  778. border-radius: 8px;
  779. padding: 50px 42px 80px;
  780. box-shadow: 0 3px 5px 2px #ccc;
  781. @media (max-width: 768px) {
  782. padding: 25px 22px 40px;
  783. }
  784. }
  785. }
  786. .form-row-col {
  787. display: flex;
  788. justify-content: space-between;
  789. .dialog-input-code {
  790. flex:1;
  791. }
  792. .custom-code-btn {
  793. width: 164px;
  794. height:63px;
  795. margin-left: 17px;
  796. @media (max-width: 768px) {
  797. height: 32px;
  798. width: auto;
  799. }
  800. }
  801. }
  802. .height-63 {
  803. ::v-deep.el-input__inner {
  804. height: 63px;
  805. @media (max-width: 768px) {
  806. height: 40px;
  807. }
  808. }
  809. }
  810. .form-f1 {
  811. background-color: #ffebeb;
  812. margin-bottom: 20px;
  813. height: 17px;
  814. font-size: 16px;
  815. font-weight: 400;
  816. color: #FF0000;
  817. padding: 11px;
  818. @media (max-width: 768px) {
  819. font-size: 12px;
  820. margin-bottom: 10px;
  821. }
  822. > i {
  823. width: 15px;
  824. height: 15px;
  825. display: inline-block;
  826. background-image: url("~static/images/client/course/btns/course-icon-fire.png");
  827. background-size: contain;
  828. background-repeat: no-repeat;
  829. margin: 0 11px 0 11px;
  830. }
  831. }
  832. .form-f2 {
  833. margin-bottom: 20px;
  834. font-size: 18px;
  835. font-weight: 400;
  836. @media (max-width: 768px) {
  837. margin-bottom: 16px;
  838. font-size: 12px;
  839. }
  840. }
  841. .form-f3 {
  842. margin-bottom: 20px;
  843. font-size: 18px;
  844. font-weight: 400;
  845. @media (max-width: 768px) {
  846. margin-bottom: 16px;
  847. font-size: 12px;
  848. }
  849. div.nc-container ::v-deep #nc_1_wrapper {
  850. width: 100%;
  851. }
  852. }
  853. .form-f4 {
  854. margin-bottom: 20px;
  855. font-size: 18px;
  856. font-weight: 400;
  857. @media (max-width: 768px) {
  858. margin-bottom: 16px;
  859. font-size: 12px;
  860. }
  861. .custom-code-btn {
  862. font-size: 18px;
  863. font-weight: 400;
  864. @media (max-width: 768px) {
  865. font-size: 12px;
  866. height: 40px;
  867. }
  868. }
  869. }
  870. .form-f5 {
  871. margin-bottom: 40px;
  872. font-size: 18px;
  873. font-weight: 400;
  874. @media (max-width: 768px) {
  875. font-size: 12px;
  876. }
  877. }
  878. .form-f6 {
  879. width: 100%;
  880. margin-bottom: 40px;
  881. height: 63px;
  882. font-size: 24px;
  883. font-weight: 400;
  884. @media (max-width: 768px) {
  885. margin-bottom: 20px;
  886. font-size: 12px;
  887. height: 40px;
  888. }
  889. }
  890. .form-wrap .form-f7 {
  891. position: absolute;
  892. bottom: -40px;
  893. left: 0;
  894. width: 446px;
  895. padding: 20px 47px;
  896. background-color: #ffebeb;
  897. height: 15px;
  898. font-size: 16px;
  899. font-weight: 400;
  900. text-align: left;
  901. color: #ff0000;
  902. display: flex;
  903. justify-content: space-between;
  904. border-bottom-left-radius: 8px;
  905. border-bottom-right-radius: 8px;
  906. @media (max-width: 768px) {
  907. bottom: 15px;
  908. padding: 10px 23px;
  909. width: 85%;
  910. font-size: 12px;
  911. }
  912. .icon-w1 {
  913. display: flex;
  914. align-items: center;
  915. i {
  916. width: 15px;
  917. height: 15px;
  918. display: inline-block;
  919. background-image: url("~static/images/client/course/btns/course-icon-laba.png");
  920. background-size: contain;
  921. background-repeat: no-repeat;
  922. margin: 0 5px 0 5px;
  923. }
  924. }
  925. }
  926. .form-input {
  927. ::v-deep.el-input__inner {
  928. font-size: 18px;
  929. font-weight: 400;
  930. color: #999999;
  931. line-height: 53px;
  932. @media (max-width: 768px) {
  933. font-size: 12px;
  934. line-height: 30px;
  935. }
  936. }
  937. }
  938. }
  939. }
  940. </style>