Commit 81e86910 authored by wangwei's avatar wangwei

添加统计 数据

parent 78603ee4
......@@ -12,12 +12,13 @@ module.exports = {
//本地代理设置
proxyTable: {
'/api': {
// target: 'http://local.base-api.sing.com', // 接口的域名
target: 'https://wechat-test.changchangenglish.com/',
target: 'http://local.base-api.sing.com', // 接口的域名
// target: 'https://wechat-test.changchangenglish.com/',
changeOrigin: true, // 如果接口跨域,需要进行这个参数配置
}
},
// Various Dev Server settings
host: 'localhost', // can be overwritten by process.env.HOST
port: 8080, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
......
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css><title>唱唱启蒙-后台</title><link href=/static/css/app.47522eb6a68d6d41ad23b5eb163afbdd.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.84e65f3555625c577825.js></script><script type=text/javascript src=/static/js/vendor.0c2b29c34e40a6409c08.js></script><script type=text/javascript src=/static/js/app.77d99e6a9a30cd77c2ae.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css><title>唱唱启蒙-后台</title><link href=/static/css/app.47522eb6a68d6d41ad23b5eb163afbdd.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.74b774438d51591b53d2.js></script><script type=text/javascript src=/static/js/vendor.0c2b29c34e40a6409c08.js></script><script type=text/javascript src=/static/js/app.77d99e6a9a30cd77c2ae.js></script></body></html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(n,a,f){for(var o,d,b,i=0,u=[];i<n.length;i++)d=n[i],r[d]&&u.push(r[d][0]),r[d]=0;for(o in a)Object.prototype.hasOwnProperty.call(a,o)&&(e[o]=a[o]);for(c&&c(n,a,f);u.length;)u.shift()();if(f)for(i=0;i<f.length;i++)b=t(t.s=f[i]);return b};var n={},r={32:0};function t(c){if(n[c])return n[c].exports;var r=n[c]={i:c,l:!1,exports:{}};return e[c].call(r.exports,r,r.exports,t),r.l=!0,r.exports}t.e=function(e){var c=r[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var n=new Promise(function(n,t){c=r[e]=[n,t]});c[2]=n;var a=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,t.nc&&f.setAttribute("nonce",t.nc),f.src=t.p+"static/js/"+e+"."+{0:"0c7e9fde5c479c94f6b6",1:"7b924ae5be5e3368e3fb",2:"3007965a13ced06ee6b3",3:"a2dccb8fd3d179552bb9",4:"ca9711fc473f2d5d51fd",5:"e5af486172f72f67f21b",6:"64a1849b88d9587a84f3",7:"73035aa120b4d121032b",8:"a4c656e120a4d1334dcf",9:"d1a299e8ca60632b306e",10:"07d34d4b19edfbb9e874",11:"ef4f6b8448e8101d42cf",12:"66f76f628982d43def2b",13:"8f8fc409d4381a56e956",14:"ac73135d35df07b2e199",15:"466c0ceb571644e093c1",16:"a517c9ff87e7ab38fb11",17:"a5dd661bc79dfa043095",18:"4479aab12a86c8f34555",19:"edf27d751742b491cb26",20:"5b6fb4659f7801a6c082",21:"a521377f1de94c221668",22:"f691b50344e6a8f6cbe4",23:"2eaaa42063637b7edb84",24:"246d329ab2590ff57958",25:"41d9edf49b76c8c85349",26:"6c16e2521e50cdacc16e",27:"81008757847d1d0c4c97",28:"ed44218ea0bf0eb5524f",29:"6c8310dab67c02d33bcf"}[e]+".js";var o=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(o);var c=r[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return f.onerror=f.onload=d,a.appendChild(f),n},t.m=e,t.c=n,t.d=function(e,c,n){t.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(c,"a",c),c},t.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},t.p="/",t.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var c=window.webpackJsonp;window.webpackJsonp=function(n,t,f){for(var o,d,b,i=0,u=[];i<n.length;i++)d=n[i],r[d]&&u.push(r[d][0]),r[d]=0;for(o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);for(c&&c(n,t,f);u.length;)u.shift()();if(f)for(i=0;i<f.length;i++)b=a(a.s=f[i]);return b};var n={},r={32:0};function a(c){if(n[c])return n[c].exports;var r=n[c]={i:c,l:!1,exports:{}};return e[c].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.e=function(e){var c=r[e];if(0===c)return new Promise(function(e){e()});if(c)return c[2];var n=new Promise(function(n,a){c=r[e]=[n,a]});c[2]=n;var t=document.getElementsByTagName("head")[0],f=document.createElement("script");f.type="text/javascript",f.charset="utf-8",f.async=!0,f.timeout=12e4,a.nc&&f.setAttribute("nonce",a.nc),f.src=a.p+"static/js/"+e+"."+{0:"a3344d97a9f840c94978",1:"9e551c74d2b80631c7b7",2:"3007965a13ced06ee6b3",3:"a2dccb8fd3d179552bb9",4:"ca9711fc473f2d5d51fd",5:"84ebb69a309861a7221d",6:"64a1849b88d9587a84f3",7:"73035aa120b4d121032b",8:"a4c656e120a4d1334dcf",9:"d1a299e8ca60632b306e",10:"07d34d4b19edfbb9e874",11:"ef4f6b8448e8101d42cf",12:"66f76f628982d43def2b",13:"8f8fc409d4381a56e956",14:"ac73135d35df07b2e199",15:"466c0ceb571644e093c1",16:"a517c9ff87e7ab38fb11",17:"a5dd661bc79dfa043095",18:"4479aab12a86c8f34555",19:"edf27d751742b491cb26",20:"5b6fb4659f7801a6c082",21:"a521377f1de94c221668",22:"f691b50344e6a8f6cbe4",23:"2eaaa42063637b7edb84",24:"246d329ab2590ff57958",25:"41d9edf49b76c8c85349",26:"6c16e2521e50cdacc16e",27:"81008757847d1d0c4c97",28:"ed44218ea0bf0eb5524f",29:"6c8310dab67c02d33bcf"}[e]+".js";var o=setTimeout(d,12e4);function d(){f.onerror=f.onload=null,clearTimeout(o);var c=r[e];0!==c&&(c&&c[1](new Error("Loading chunk "+e+" failed.")),r[e]=void 0)}return f.onerror=f.onload=d,t.appendChild(f),n},a.m=e,a.c=n,a.d=function(e,c,n){a.o(e,c)||Object.defineProperty(e,c,{configurable:!1,enumerable:!0,get:n})},a.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(c,"a",c),c},a.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)},a.p="/",a.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css><title>唱唱启蒙-后台</title><link href=/static/css/app.1b57dd025fd6e0732698c8e866201e94.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.ff286a7cb59d8dfbeb5d.js></script><script type=text/javascript src=/static/js/vendor.9122c146b78876133e6f.js></script><script type=text/javascript src=/static/js/app.1abfadcad61f4ff9e3a1.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=referrer content=never><link rel=stylesheet href=https://at.alicdn.com/t/font_746649_7dsnjecwkpg.css><title>唱唱启蒙-后台</title><link href=/static/css/app.5774c156979341caca690fb80af8e847.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.018136b159e676ce6e07.js></script><script type=text/javascript src=/static/js/vendor.9122c146b78876133e6f.js></script><script type=text/javascript src=/static/js/app.5f26a51058f25f1e6a70.js></script></body></html>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
webpackJsonp([16],{"+gW/":function(e,t){},"0jBQ":function(e,t){},hFUZ:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a("CCn6"),l=a("+TkF"),s={name:"index",components:{page:a("kmJW").a},data:function(){return{list:[],id:"",detail:{},total:0,limit:10,nowPage:1}},methods:{changeRow:function(e,t){t.indexOf(e)>-1&&Object(r._6)(e.periods_id,e.id).then(function(t){e.arrive_course_rate=t.arrive_course_rate,e.watch_course_rate=t.watch_course_rate,e.over_course_rate=t.over_course_rate,e.work_rate=t.work_rate,e.over_work_rate=t.over_work_rate,e.clock_rate=t.clock_rate,e.over_clock_rate=t.over_clock_rate,e.transform_rate=t.transform_rate})},onPageChange:function(e){this.nowPage=e,this.getTeacherDetail()},getTeacherDetail:function(){var e=this,t=this.id,a={limit:this.limit,page:this.nowPage};Object(r._28)(t,a).then(function(t){t.class_list&&(t.class_list.list.forEach(function(e){e.arrive_course_rate=0,e.watch_course_rate=0,e.over_course_rate=0,e.work_rate=0,e.over_work_rate=0,e.clock_rate=0,e.over_clock_rate=0,e.transform_rate=0}),e.list=t.class_list.list||[],e.total=t.class_list.total),e.detail=t})}},filters:{teacherType:function(e){return l.l[e]},percent:function(e){return(100*e).toFixed(2)+"%"}},mounted:function(){this.id=this.$route.params.id,this.getTeacherDetail()}},_={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"teacher"},[a("div",{staticClass:"header"},[a("el-row",[a("el-col",{attrs:{span:6}},[a("label",[e._v("老师:")]),e._v(e._s(e._f("teacherType")(e.detail.type))+" "+e._s(e.detail.name)+"\n ")]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("微信号:")]),e._v(" "+e._s(e.detail.alias)+"\n ")]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("二维码:")]),e._v(" "),a("a",{attrs:{href:e.detail.qr}},[a("img",{staticClass:"avatar",attrs:{src:e.detail.qr}})])]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("老师状态:")]),e._v(e._s(0===e.detail.status?"正常":"禁用")+"\n ")])],1),e._v(" "),e.detail.user_info?a("el-row",[a("el-col",{attrs:{span:6}},[a("label",[e._v("绑定用户:")]),e._v(" "),a("a",{attrs:{href:e.detail.user_info.avatar,target:"_blank"}},[a("img",{staticClass:"avatar",attrs:{src:e.detail.user_info.avatar}})]),e._v("\n "+e._s(e.detail.user_info.nickname)+"(ID:"+e._s(e.detail.user_info.user_id)+")\n ")])],1):e._e()],1),e._v(" "),a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.list},on:{"expand-change":e.changeRow}},[a("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[a("el-form-item",{attrs:{label:"到课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.arrive_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"看课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.watch_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"完课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"作业率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.work_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"全勤作业率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_work_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"打卡率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.clock_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"全勤打卡率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_clock_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"转化率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.transform_rate)))])])],1)]}}])}),e._v(" "),a("el-table-column",{attrs:{prop:"id",label:"班级ID"}}),e._v(" "),a("el-table-column",{attrs:{prop:"periods_title",label:"期数名称"}}),e._v(" "),a("el-table-column",{attrs:{prop:"join_num",label:"参加人数"}}),e._v(" "),a("el-table-column",{attrs:{prop:"max_join_num",label:"最大班级人数"}}),e._v(" "),a("el-table-column",{attrs:{prop:"start_at",label:"开始时间"}}),e._v(" "),a("el-table-column",{attrs:{prop:"created_at",label:"创建时间"}})],1),e._v(" "),a("page",{attrs:{total:e.total,limit:e.limit},on:{pageChange:e.onPageChange}})],1)},staticRenderFns:[]};var o=a("VU/8")(s,_,!1,function(e){a("+gW/"),a("0jBQ")},"data-v-ab1baa00",null);t.default=o.exports}});
\ No newline at end of file
webpackJsonp([17],{N4l9:function(e,t){},hFUZ:function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=a("CCn6"),l=a("+TkF"),s={name:"index",components:{page:a("kmJW").a},data:function(){return{list:[],id:"",detail:{},total:0,limit:10,nowPage:1}},methods:{changeRow:function(e,t){t.indexOf(e)>-1&&Object(r._6)(e.periods_id,e.id).then(function(t){e.arrive_course_rate=t.arrive_course_rate,e.watch_course_rate=t.watch_course_rate,e.over_course_rate=t.over_course_rate,e.work_rate=t.work_rate,e.over_work_rate=t.over_work_rate,e.clock_rate=t.clock_rate,e.over_clock_rate=t.over_clock_rate,e.transform_rate=t.transform_rate})},onPageChange:function(e){this.nowPage=e,this.getTeacherDetail()},getTeacherDetail:function(){var e=this,t=this.id,a={limit:this.limit,page:this.nowPage};Object(r._28)(t,a).then(function(t){t.class_list&&(t.class_list.list.forEach(function(e){e.arrive_course_rate=0,e.watch_course_rate=0,e.over_course_rate=0,e.work_rate=0,e.over_work_rate=0,e.clock_rate=0,e.over_clock_rate=0,e.transform_rate=0}),e.list=t.class_list.list||[],e.total=t.class_list.total),e.detail=t})}},filters:{teacherType:function(e){return l.l[e]},percent:function(e){return(100*e).toFixed(2)+"%"}},mounted:function(){this.id=this.$route.params.id,this.getTeacherDetail()}},_={render:function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"teacher"},[a("div",{staticClass:"header"},[a("el-row",[a("el-col",{attrs:{span:6}},[a("label",[e._v("老师:")]),e._v(e._s(e._f("teacherType")(e.detail.type))+" "+e._s(e.detail.name)+"\n ")]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("微信号:")]),e._v(" "+e._s(e.detail.alias)+"\n ")]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("二维码:")]),e._v(" "),a("a",{attrs:{href:e.detail.qr}},[a("img",{staticClass:"avatar",attrs:{src:e.detail.qr}})])]),e._v(" "),a("el-col",{attrs:{span:6}},[a("label",[e._v("老师状态:")]),e._v(e._s(0===e.detail.status?"正常":"禁用")+"\n ")])],1),e._v(" "),e.detail.user_info?a("el-row",[a("el-col",{attrs:{span:6}},[a("label",[e._v("绑定用户:")]),e._v(" "),a("a",{attrs:{href:e.detail.user_info.avatar,target:"_blank"}},[a("img",{staticClass:"avatar",attrs:{src:e.detail.user_info.avatar}})]),e._v("\n "+e._s(e.detail.user_info.nickname)+"(ID:"+e._s(e.detail.user_info.user_id)+")\n ")])],1):e._e()],1),e._v(" "),a("el-table",{staticStyle:{width:"100%"},attrs:{data:e.list},on:{"expand-change":e.changeRow}},[a("el-table-column",{attrs:{type:"expand"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("el-form",{staticClass:"demo-table-expand",attrs:{"label-position":"left",inline:""}},[a("el-form-item",{attrs:{label:"到课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.arrive_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"看课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.watch_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"完课率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_course_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"作业率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.work_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"全勤作业率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_work_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"打卡率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.clock_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"全勤打卡率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.over_clock_rate)))])]),e._v(" "),a("el-form-item",{attrs:{label:"转化率"}},[a("span",[e._v(e._s(e._f("percent")(t.row.transform_rate)))])])],1)]}}])}),e._v(" "),a("el-table-column",{attrs:{prop:"id",label:"班级ID"}}),e._v(" "),a("el-table-column",{attrs:{prop:"periods_title",label:"期数名称"}}),e._v(" "),a("el-table-column",{attrs:{prop:"join_num",label:"参加人数"}}),e._v(" "),a("el-table-column",{attrs:{prop:"max_join_num",label:"最大班级人数"}}),e._v(" "),a("el-table-column",{attrs:{prop:"start_at",label:"开始时间"}}),e._v(" "),a("el-table-column",{attrs:{prop:"created_at",label:"创建时间"}})],1),e._v(" "),a("page",{attrs:{total:e.total,limit:e.limit},on:{pageChange:e.onPageChange}})],1)},staticRenderFns:[]};var o=a("VU/8")(s,_,!1,function(e){a("zstq"),a("N4l9")},"data-v-8b3e3010",null);t.default=o.exports},zstq:function(e,t){}});
\ No newline at end of file
webpackJsonp([16],{"0HId":function(e,s,t){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r=t("CCn6"),n=t("NC6I"),o=t.n(n),i=t("Nr3E"),a=t.n(i),l={data:function(){return{bgUrl:a.a,login:{username:"",password:""},loginRules:{username:[{required:!0,message:"请输入您的用户名",trigger:"blur"}],password:[{required:!0,message:"请输入您的密码",trigger:"blur"}]}}},mounted:function(){var e=this;document.onkeydown=function(s){var t=s||window.event;if(13===(t.keyCode||t.which||t.charCode)&&"login"===e.$route.name)return e.submitForm(),!1;return!0}},methods:{submitForm:function(){var e=this;this.$refs.loginForm.validate(function(s){if(s){var t={username:e.login.username,password:o()(e.login.password)};Object(r._33)(t).then(function(s){e.$store.dispatch("setToken",s.token),e.$store.dispatch("setUserName",s.desc),e.$store.dispatch("setPermission",JSON.parse(s.roles.menu_ids)),window.location.href="/"})}})}}},u={render:function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("div",{staticClass:"login"},[t("div",{staticClass:"wrap-main"},[t("h1",{staticClass:"title"},[e._v("唱唱启蒙——后台管理系统")]),e._v(" "),t("el-form",{ref:"loginForm",attrs:{model:e.login,rules:e.loginRules}},[t("el-form-item",{attrs:{prop:"username"}},[t("el-input",{attrs:{placeholder:"用户名"},model:{value:e.login.username,callback:function(s){e.$set(e.login,"username",s)},expression:"login.username"}})],1),e._v(" "),t("el-form-item",{attrs:{prop:"password"}},[t("el-input",{attrs:{type:"password",placeholder:"密码"},model:{value:e.login.password,callback:function(s){e.$set(e.login,"password",s)},expression:"login.password"}})],1),e._v(" "),t("el-form-item",[t("el-button",{staticClass:"btn",attrs:{size:"medium",type:"primary"},on:{click:e.submitForm}},[e._v("登陆")])],1)],1)],1)])},staticRenderFns:[]};var d=t("VU/8")(l,u,!1,function(e){t("PZlQ")},"data-v-a758ff78",null);s.default=d.exports},Nr3E:function(e,s,t){e.exports=t.p+"static/img/skyBackground.d3b1524.png"},PZlQ:function(e,s){}});
\ No newline at end of file
webpackJsonp([17],{"0HId":function(e,s,t){"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r=t("CCn6"),n=t("NC6I"),o=t.n(n),i=t("Nr3E"),a=t.n(i),l={data:function(){return{bgUrl:a.a,login:{username:"",password:""},loginRules:{username:[{required:!0,message:"请输入您的用户名",trigger:"blur"}],password:[{required:!0,message:"请输入您的密码",trigger:"blur"}]}}},mounted:function(){var e=this;document.onkeydown=function(s){var t=s||window.event;if(13===(t.keyCode||t.which||t.charCode)&&"login"===e.$route.name)return e.submitForm(),!1;return!0}},methods:{submitForm:function(){var e=this;this.$refs.loginForm.validate(function(s){if(s){var t={username:e.login.username,password:o()(e.login.password)};Object(r._33)(t).then(function(s){e.$store.dispatch("setToken",s.token),e.$store.dispatch("setUserName",s.desc),e.$store.dispatch("setPermission",JSON.parse(s.roles.menu_ids)),window.location.href="/"})}})}}},u={render:function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("div",{staticClass:"login"},[t("div",{staticClass:"wrap-main"},[t("h1",{staticClass:"title"},[e._v("唱唱启蒙——后台管理系统")]),e._v(" "),t("el-form",{ref:"loginForm",attrs:{model:e.login,rules:e.loginRules}},[t("el-form-item",{attrs:{prop:"username"}},[t("el-input",{attrs:{placeholder:"用户名"},model:{value:e.login.username,callback:function(s){e.$set(e.login,"username",s)},expression:"login.username"}})],1),e._v(" "),t("el-form-item",{attrs:{prop:"password"}},[t("el-input",{attrs:{type:"password",placeholder:"密码"},model:{value:e.login.password,callback:function(s){e.$set(e.login,"password",s)},expression:"login.password"}})],1),e._v(" "),t("el-form-item",[t("el-button",{staticClass:"btn",attrs:{size:"medium",type:"primary"},on:{click:e.submitForm}},[e._v("登陆")])],1)],1)],1)])},staticRenderFns:[]};var d=t("VU/8")(l,u,!1,function(e){t("PZlQ")},"data-v-a758ff78",null);s.default=d.exports},Nr3E:function(e,s,t){e.exports=t.p+"static/img/skyBackground.d3b1524.png"},PZlQ:function(e,s){}});
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(c,t,o){for(var d,f,b,i=0,u=[];i<c.length;i++)f=c[i],n[f]&&u.push(n[f][0]),n[f]=0;for(d in t)Object.prototype.hasOwnProperty.call(t,d)&&(e[d]=t[d]);for(a&&a(c,t,o);u.length;)u.shift()();if(o)for(i=0;i<o.length;i++)b=r(r.s=o[i]);return b};var c={},n={32:0};function r(a){if(c[a])return c[a].exports;var n=c[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var a=n[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var c=new Promise(function(c,r){a=n[e]=[c,r]});a[2]=c;var t=document.getElementsByTagName("head")[0],o=document.createElement("script");o.type="text/javascript",o.charset="utf-8",o.async=!0,o.timeout=12e4,r.nc&&o.setAttribute("nonce",r.nc),o.src=r.p+"static/js/"+e+"."+{0:"a36c9b1a3f28728a8741",1:"08ac98a01ff2b05b89ed",2:"19d5b1da5185622dd2c0",3:"58df26638cb030357eb5",4:"800f4b130112fc5655d3",5:"dfe6aa366b94bb5a90c4",6:"2b7134d1e3d9293544ef",7:"5e9c92cc7d295a6f23e9",8:"42405dddadce81b9b4c8",9:"6e66afb4ac8fcca631a9",10:"b122cf14401ac0376d70",11:"8b4c0bc73a07088d8a5c",12:"895290aeb2c67a4ca140",13:"fed8eae7745b116a48fe",14:"94b33dd13a68392a4d7c",15:"a61d9c426b2eab3371bf",16:"f5f661d3017d06879a27",17:"3e31552e7896cfc7afa0",18:"49dd226991858d830f9f",19:"48c6fb5f853a0bb22307",20:"fd33e0d1ce9bbc921380",21:"5f11dec2cc01ce8a8181",22:"933c3102eee9f616ab56",23:"adcd34a6682eba15998d",24:"f3cd0d49fa37e9ad3a2a",25:"dd69d575bc919fe4bb6c",26:"3baa042e42ad56117099",27:"0897f5eeda601f547680",28:"e469d5671f79a4684dc7",29:"377cab3b3b3903a87f63"}[e]+".js";var d=setTimeout(f,12e4);function f(){o.onerror=o.onload=null,clearTimeout(d);var a=n[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return o.onerror=o.onload=f,t.appendChild(o),c},r.m=e,r.c=c,r.d=function(e,a,c){r.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:c})},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="/",r.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
!function(e){var a=window.webpackJsonp;window.webpackJsonp=function(c,t,d){for(var o,f,b,i=0,u=[];i<c.length;i++)f=c[i],n[f]&&u.push(n[f][0]),n[f]=0;for(o in t)Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);for(a&&a(c,t,d);u.length;)u.shift()();if(d)for(i=0;i<d.length;i++)b=r(r.s=d[i]);return b};var c={},n={32:0};function r(a){if(c[a])return c[a].exports;var n=c[a]={i:a,l:!1,exports:{}};return e[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}r.e=function(e){var a=n[e];if(0===a)return new Promise(function(e){e()});if(a)return a[2];var c=new Promise(function(c,r){a=n[e]=[c,r]});a[2]=c;var t=document.getElementsByTagName("head")[0],d=document.createElement("script");d.type="text/javascript",d.charset="utf-8",d.async=!0,d.timeout=12e4,r.nc&&d.setAttribute("nonce",r.nc),d.src=r.p+"static/js/"+e+"."+{0:"ff6002a6936e8b489d19",1:"f03b64bc8567ebf6a0f6",2:"19d5b1da5185622dd2c0",3:"58df26638cb030357eb5",4:"800f4b130112fc5655d3",5:"dfe6aa366b94bb5a90c4",6:"a5be9c371bd4ac356681",7:"5e9c92cc7d295a6f23e9",8:"42405dddadce81b9b4c8",9:"2202cb79f727665b592f",10:"b122cf14401ac0376d70",11:"8de437a8ae292313bf85",12:"895290aeb2c67a4ca140",13:"fed8eae7745b116a48fe",14:"94b33dd13a68392a4d7c",15:"a61d9c426b2eab3371bf",16:"c3a4c421378ff299bd19",17:"6a0d98e35d2e22431ef2",18:"49dd226991858d830f9f",19:"48c6fb5f853a0bb22307",20:"fd33e0d1ce9bbc921380",21:"5f11dec2cc01ce8a8181",22:"75726e8c774377b49ed0",23:"adcd34a6682eba15998d",24:"f3cd0d49fa37e9ad3a2a",25:"dd69d575bc919fe4bb6c",26:"3baa042e42ad56117099",27:"0897f5eeda601f547680",28:"e469d5671f79a4684dc7",29:"377cab3b3b3903a87f63"}[e]+".js";var o=setTimeout(f,12e4);function f(){d.onerror=d.onload=null,clearTimeout(o);var a=n[e];0!==a&&(a&&a[1](new Error("Loading chunk "+e+" failed.")),n[e]=void 0)}return d.onerror=d.onload=f,t.appendChild(d),c},r.m=e,r.c=c,r.d=function(e,a,c){r.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:c})},r.n=function(e){var a=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(a,"a",a),a},r.o=function(e,a){return Object.prototype.hasOwnProperty.call(e,a)},r.p="/",r.oe=function(e){throw console.error(e),e}}([]);
\ No newline at end of file
......@@ -30,6 +30,48 @@
prop="desc"
label="备注">
</el-table-column>
<el-table-column
label="最后登录时间">
<template slot-scope="scope">
{{ scope.row.last_login_at }}
</template>
</el-table-column>
<el-table-column
label="看课率">
<template slot-scope="scope">
{{ scope.row.watch_course_rate }}
</template>
</el-table-column>
<el-table-column
label="课包查看次数">
<template slot-scope="scope">
{{ scope.row.watch_course_num }}
</template>
</el-table-column>
<el-table-column
label="学习时长(秒)">
<template slot-scope="scope">
{{ scope.row.watch_course_time }}
</template>
</el-table-column>
<el-table-column
label="作业率">
<template slot-scope="scope">
{{ scope.row.work_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="打卡率">
<template slot-scope="scope">
{{ scope.row.clock_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="续费情况">
<template slot-scope="scope">
{{ scope.row.is_continue_buy | isOrNot}}
</template>
</el-table-column>
<el-table-column label="操作" v-if="!$store.state.readonly" width="300">
<template slot-scope="scope">
<el-button type="warning" size="mini" @click="editComment(scope.row.id, scope.row.desc)" v-if="!$store.state.readonly">编辑备注</el-button>
......@@ -134,6 +176,9 @@
filters:{
isOrNot(value){
return ISORNOT[value]
},
percent(val){
return (val * 100).toFixed(2)+'%'
}
},
methods:{
......
<template>
<div>
<el-container>
<el-aside width="300px">
<el-aside width="380px">
<el-menu
:default-active="index" v-loading="menuLoading">
<div style="padding: 5px">
......
......@@ -523,4 +523,9 @@ export const getPeriodsStatisticsApi = function (id) {
const getClassStatisticsUrl = `/api/admin/periods/class/statistics/`;
export const getClassStatisticsApi = function (periods_id, class_id) {
return Vue.prototype.$fetch(`${getClassStatisticsUrl}${periods_id}/${class_id}`)
}
};
// 用户看课情况
const userLookUrl = `/api/admin/user/static/list/`;
export const userLookApi = function (periods_id,user_id) {
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment