Commit 59917b0d authored by 赵茹林's avatar 赵茹林

格式化

parent c8a450eb
<template> <template>
<div> <div>
<el-dialog :title="userObj.title" :visible.sync="userObj.show" :modal="false" :fullscreen="true"> <el-dialog :title="userObj.title" :visible.sync="userObj.show" :modal="false" :fullscreen="true">
<div> <div>
<el-form label-width="120px" inline> <el-form label-width="120px" inline>
...@@ -57,7 +57,7 @@ ...@@ -57,7 +57,7 @@
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.classTakeUnlimited&&userObj.type==1">+添加用户</el-button> <el-button type="success" @click="onAddUser(false)" v-if="$store.state.classTakeUnlimited&&userObj.type==1">+添加用户</el-button>
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.classManageUnlimited&&userObj.type==2">+添加用户</el-button> <el-button type="success" @click="onAddUser(false)" v-if="$store.state.classManageUnlimited&&userObj.type==2">+添加用户</el-button>
<el-button type="primary" @click="exportTable(userTable)" v-if="$store.state.export">导出</el-button> <el-button type="primary" @click="exportTable(userTable)" v-if="$store.state.export">导出</el-button>
<el-button type="success" @click="onRank()" >看课排行</el-button> <el-button type="success" @click="onRank()">看课排行</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table <el-table
...@@ -133,26 +133,22 @@ ...@@ -133,26 +133,22 @@
<br> Tel:{{scope.row.mobile}} <br> Tel:{{scope.row.mobile}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="看课权限" v-if="!userObj.classPage">
label="看课权限" v-if="!userObj.classPage">
<template slot-scope="scope"> <template slot-scope="scope">
<el-select v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)"> <el-select v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)">
<el-option label="否" :value="0"> <el-option label="否" :value="0"></el-option>
</el-option> <el-option label="是" :value="1"></el-option>
<el-option label="是" :value="1">
</el-option>
</el-select> </el-select>
</template> </template>
<!-- classPage --> <!-- classPage -->
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="看课权限" v-if="userObj.classPage">
label="看课权限" v-if="userObj.classPage">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.is_view_course==1?'是':'否'}} {{scope.row.is_view_course==1?'是':'否'}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="时间" sortable min-width="200" prop="last_login_at" > label="时间" sortable min-width="200" prop="last_login_at">
<template slot-scope="scope"> <template slot-scope="scope">
最后登录:{{ scope.row.last_login_at }} 最后登录:{{ scope.row.last_login_at }}
<br> <br>
...@@ -237,7 +233,7 @@ ...@@ -237,7 +233,7 @@
<el-button type="primary" size="mini" plain @click="showSourceByDate(scope.row)">看课情况</el-button> <el-button type="primary" size="mini" plain @click="showSourceByDate(scope.row)">看课情况</el-button>
<el-button type="danger" size="mini" plain @click="onDel(scope.row)" v-if="$store.state.deletePermission && !$store.state.readonly">删除</el-button> <el-button type="danger" size="mini" plain @click="onDel(scope.row)" v-if="$store.state.deletePermission && !$store.state.readonly">删除</el-button>
</div> </div>
<el-button slot="reference" size="mini" type="text" >操作</el-button> <el-button slot="reference" size="mini" type="text">操作</el-button>
</el-popover> </el-popover>
</template> </template>
</el-table-column> </el-table-column>
...@@ -523,12 +519,34 @@ ...@@ -523,12 +519,34 @@
<!--<page-desc :nowPage="descDialog.nowPage" :total="descDialog.total" :limit="descDialog.limit" @pageChange="onDescDialogPageChange" @sizeChange="onDescDialogSizeChange"/>--> <!--<page-desc :nowPage="descDialog.nowPage" :total="descDialog.total" :limit="descDialog.limit" @pageChange="onDescDialogPageChange" @sizeChange="onDescDialogSizeChange"/>-->
<!--</el-dialog>--> <!--</el-dialog>-->
</el-dialog> </el-dialog>
<sourceByDateDialog :dialogObj = sourceByDateDialogJson ref="sourceByDateDialogDom"></sourceByDateDialog> <sourceByDateDialog :dialogObj=sourceByDateDialogJson ref="sourceByDateDialogDom"></sourceByDateDialog>
</div> </div>
</template> </template>
<script> <script>
import {getLookRankApi,addClassUesrApi,editUserViewCourseApi,editUserWeightApi,changeAddTeacherApi,getClassUserApi,changeUserApi,delClassUserApi,getUserListApi,addPeriodsClassUserDescApi,getClassStatisticsApi,userLookApi,getPeriodsApi,changeClassApi,getClassListApi,addUserTeacherApi,getUserDescListApi,updateUserPrivilegeApi,teacherBindUserApi,getJoinNumApi,exportExcelApi} from "../../service/api"; import {
getLookRankApi,
addClassUesrApi,
editUserViewCourseApi,
editUserWeightApi,
changeAddTeacherApi,
getClassUserApi,
changeUserApi,
delClassUserApi,
getUserListApi,
addPeriodsClassUserDescApi,
getClassStatisticsApi,
userLookApi,
getPeriodsApi,
changeClassApi,
getClassListApi,
addUserTeacherApi,
getUserDescListApi,
updateUserPrivilegeApi,
teacherBindUserApi,
getJoinNumApi,
exportExcelApi
} from "../../service/api";
import page from '../framework/page' import page from '../framework/page'
import page2 from '../framework/page' import page2 from '../framework/page'
import pageDesc from '../framework/page' import pageDesc from '../framework/page'
...@@ -536,75 +554,76 @@ ...@@ -536,75 +554,76 @@
import teacherDesc from '../framework/teacherDesc' import teacherDesc from '../framework/teacherDesc'
import userWeight from '../framework/userWeight' import userWeight from '../framework/userWeight'
import sourceByDateDialog from '../teacherDetail/sourceByDateDialog' import sourceByDateDialog from '../teacherDetail/sourceByDateDialog'
import { tipArr } from "../../util/tipArr"; import {tipArr} from "../../util/tipArr";
export default { export default {
name: "userList", name: "userList",
props:[ props: [
'userObj' 'userObj'
], ],
data(){ data() {
let nowDate = this.formatTime(new Date()); let nowDate = this.formatTime(new Date());
return { return {
nowDate:nowDate, nowDate: nowDate,
rank:{ rank: {
show:false, show: false,
list:[] list: []
}, },
rankParams:{ rankParams: {
type:'time', type: 'time',
start_date:'', start_date: '',
end_date:'', end_date: '',
limit:10 limit: 10
}, },
sourceByDateDialogJson:{}, sourceByDateDialogJson: {},
userTable:[], userTable: [],
addId:'', addId: '',
loadingFlag:false, loadingFlag: false,
statistics:{ statistics: {
arrive_course_rate:0, arrive_course_rate: 0,
clock_rate:0, clock_rate: 0,
over_clock_rate:0, over_clock_rate: 0,
over_course_rate:0, over_course_rate: 0,
over_work_rate:0, over_work_rate: 0,
transform_rate:0, transform_rate: 0,
watch_course_rate:0, watch_course_rate: 0,
work_rate:0, work_rate: 0,
teacher_add_user_num:0, teacher_add_user_num: 0,
user_add_teacher_num:0 user_add_teacher_num: 0
}, },
lookDetail:{ lookDetail: {
show:false, show: false,
loading:false, loading: false,
list:[], list: [],
nowPage: 1, nowPage: 1,
limit: 5, limit: 5,
total:0 total: 0
}, },
classUserLimit:20, classUserLimit: 20,
classUserTotal:0, classUserTotal: 0,
classUserNowPage:1, classUserNowPage: 1,
changeClassObj:{ changeClassObj: {
show:false, show: false,
new_periods_id:'', new_periods_id: '',
new_class_id:'', new_class_id: '',
periods_user_class_id:'', periods_user_class_id: '',
periods_list:[], periods_list: [],
selectedGoods:[] selectedGoods: []
}, },
selectUserList:[], selectUserList: [],
addShow:false, addShow: false,
userList: [], userList: [],
nowPage: 1, nowPage: 1,
limit: 1000, limit: 1000,
total:0, total: 0,
timeLang:[], timeLang: [],
timerank:[], timerank: [],
searchFrom: { searchFrom: {
user_id:'', user_id: '',
is_add_teacher: '', is_add_teacher: '',
is_view_course: '', is_view_course: '',
start_at:'', start_at: '',
end_at:'' end_at: ''
}, },
multipleSelection: [], multipleSelection: [],
descDialog: { descDialog: {
...@@ -612,7 +631,7 @@ ...@@ -612,7 +631,7 @@
descList: [], descList: [],
nowPage: 1, nowPage: 1,
limit: 10, limit: 10,
total:0, total: 0,
userInfo: null userInfo: null
}, },
privilegeDialog: { privilegeDialog: {
...@@ -651,7 +670,7 @@ ...@@ -651,7 +670,7 @@
isBindUser: false isBindUser: false
} }
}, },
components:{ components: {
page, page,
page2, page2,
teacherDesc, teacherDesc,
...@@ -659,47 +678,47 @@ ...@@ -659,47 +678,47 @@
pageDesc, pageDesc,
sourceByDateDialog sourceByDateDialog
}, },
filters:{ filters: {
isOrNot(value){ isOrNot(value) {
return ISORNOT[value] return ISORNOT[value]
}, },
percent(val){ percent(val) {
return (val * 100).toFixed(2)+'%' return (val * 100).toFixed(2) + '%'
}, },
isteacher(val){ isteacher(val) {
// console.log(val) // console.log(val)
// debugger // debugger
if(val==1){ if (val == 1) {
return '老师主动添加' return '老师主动添加'
}else if(val==2){ } else if (val == 2) {
return '用户主动添加' return '用户主动添加'
}else if(val==3){ } else if (val == 3) {
return '待通过' return '待通过'
}else if(val==4){ } else if (val == 4) {
return '手机号不是微信号' return '手机号不是微信号'
}else if(val==5){ } else if (val == 5) {
return '用户已拒绝' return '用户已拒绝'
}else if(val==0){ } else if (val == 0) {
return '暂未处理' return '暂未处理'
} }
}, },
userWeightf(val){ userWeightf(val) {
console.log(val) console.log(val)
if(val==1){ if (val == 1) {
return '1' return '1'
}else if(val==2){ } else if (val == 2) {
return '2' return '2'
}else if(val==3){ } else if (val == 3) {
return '3' return '3'
}else if(val==100){ } else if (val == 100) {
return '无法成为意向' return '无法成为意向'
}else{ } else {
return '默认' return '默认'
} }
} }
}, },
methods:{ methods: {
rendertip(h, { column }) { rendertip(h, {column}) {
// common.tipFilter(h,column,tipArr2) // common.tipFilter(h,column,tipArr2)
return h("span", [ return h("span", [
h("span", column.label), h("span", column.label),
...@@ -721,116 +740,118 @@ ...@@ -721,116 +740,118 @@
) )
]); ]);
}, },
onRank(){ onRank() {
console.log(this.timerank) console.log(this.timerank)
let json = {} let json = {}
if(this.timerank && this.timerank.length > 1){ if (this.timerank && this.timerank.length > 1) {
json.start_at = this.timerank[0]; json.start_at = this.timerank[0];
json.end_at = this.timerank[1]; json.end_at = this.timerank[1];
} }
if(this.rankParams.type){ if (this.rankParams.type) {
json.type = this.rankParams.type json.type = this.rankParams.type
} }
if(this.rankParams.start_date){ if (this.rankParams.start_date) {
json.start_date = this.rankParams.start_date json.start_date = this.rankParams.start_date
} }
if(this.rankParams.end_date){ if (this.rankParams.end_date) {
json.end_date = this.rankParams.end_date json.end_date = this.rankParams.end_date
} }
if(this.rankParams.limit){ if (this.rankParams.limit) {
json.limit = this.rankParams.limit json.limit = this.rankParams.limit
} }
getLookRankApi(this.userObj.classId,json).then(res =>{ getLookRankApi(this.userObj.classId, json).then(res => {
this.rank.show = true this.rank.show = true
this.rank.list = res this.rank.list = res
// console.log(res) // console.log(res)
}) })
}, },
showSourceByDate(row){ showSourceByDate(row) {
this.sourceByDateDialogJson = { this.sourceByDateDialogJson = {
"periods_id":row.periods_id, "periods_id": row.periods_id,
"user_id":row.user_id, "user_id": row.user_id,
json:{ json: {
limit: 10, limit: 10,
page:0 page: 0
} }
} }
this.$refs.sourceByDateDialogDom.dialogShow = true this.$refs.sourceByDateDialogDom.dialogShow = true
// //
}, },
changeView(data){ changeView(data) {
editUserViewCourseApi(data.id,data.is_view_course).then(()=>{ editUserViewCourseApi(data.id, data.is_view_course).then(() => {
this.$message({ this.$message({
type:'success', type: 'success',
message:'数据更改成功' message: '数据更改成功'
}); });
this.searchList() this.searchList()
}) })
}, },
changeWeight(data){ changeWeight(data) {
editUserWeightApi(data.id,data.weight).then(()=>{ editUserWeightApi(data.id, data.weight).then(() => {
this.$message({ this.$message({
type:'success', type: 'success',
message:'数据更改成功' message: '数据更改成功'
}); });
this.searchList() this.searchList()
}) })
}, },
changeAddTeacher(data){ changeAddTeacher(data) {
changeAddTeacherApi(data.id,data.is_add_teacher).then(()=>{ changeAddTeacherApi(data.id, data.is_add_teacher).then(() => {
this.$message({ this.$message({
type:'success', type: 'success',
message:'数据更改成功' message: '数据更改成功'
}); });
this.searchList() this.searchList()
}) })
}, },
handleItemChange(value){ handleItemChange(value) {
console.log(this.userObj) console.log(this.userObj)
// debugger // debugger
getClassListApi(value[0],{limit:999,type:this.userObj.type}).then(res=>{ getClassListApi(value[0], {limit: 999, type: this.userObj.type}).then(res => {
res.list.forEach(i=>{ res.list.forEach(i => {
i.title = i.class_name i.title = i.class_name
}); });
this.changeClassObj.periods_list.find(i=>{return i.id === value[0]}).children = res.list this.changeClassObj.periods_list.find(i => {
return i.id === value[0]
}).children = res.list
}) })
// debugger // debugger
}, },
changeClassSub(){ changeClassSub() {
this.changeClassObj.periods_user_class_id=[] this.changeClassObj.periods_user_class_id = []
this.selectUserList.forEach(i=>{ this.selectUserList.forEach(i => {
this.changeClassObj.periods_user_class_id.push(i.id) this.changeClassObj.periods_user_class_id.push(i.id)
}); });
let json = { let json = {
new_periods_id:this.changeClassObj.new_periods_id, new_periods_id: this.changeClassObj.new_periods_id,
new_class_id:this.changeClassObj.new_class_id, new_class_id: this.changeClassObj.new_class_id,
periods_user_class_id:this.changeClassObj.periods_user_class_id.toString() periods_user_class_id: this.changeClassObj.periods_user_class_id.toString()
}; };
changeClassApi(json).then(res=>{ changeClassApi(json).then(res => {
this.$message({ this.$message({
type:'success', type: 'success',
message:res message: res
}); });
this.userObj.show = false; this.userObj.show = false;
this.$emit('reflash') this.$emit('reflash')
}) })
}, },
changePeriods(data){ changePeriods(data) {
if(data.length>1){ if (data.length > 1) {
this.changeClassObj.new_periods_id = data[0]; this.changeClassObj.new_periods_id = data[0];
this.changeClassObj.new_class_id = data[1]; this.changeClassObj.new_class_id = data[1];
} }
}, },
changeClass(){ changeClass() {
if(this.selectUserList.length < 1){ if (this.selectUserList.length < 1) {
this.$message({ this.$message({
type:'error', type: 'error',
message:'请先选择用户' message: '请先选择用户'
}) })
}else{ } else {
let goods_id=this.selectUserList[0].goods_id; let goods_id = this.selectUserList[0].goods_id;
getPeriodsApi({goods_id:goods_id,limit:999}).then(res=>{ getPeriodsApi({goods_id: goods_id, limit: 999}).then(res => {
res.list.forEach(i=>{ res.list.forEach(i => {
i.children = [] i.children = []
}); });
this.changeClassObj.periods_list = res.list; this.changeClassObj.periods_list = res.list;
...@@ -838,24 +859,33 @@ ...@@ -838,24 +859,33 @@
}); });
} }
}, },
defaultClass(){ defaultClass() {
this.changeClassObj.selectedGoods = [parseInt(this.userObj.periods_id),parseInt(this.userObj.classId)]; this.changeClassObj.selectedGoods = [parseInt(this.userObj.periods_id), parseInt(this.userObj.classId)];
getClassListApi(this.changeClassObj.selectedGoods[0],{limit:999,type:this.userObj.type},this.userObj.type).then(res=>{ getClassListApi(this.changeClassObj.selectedGoods[0], {
res.list.forEach(i=>{ limit: 999,
type: this.userObj.type
}, this.userObj.type).then(res => {
res.list.forEach(i => {
i.title = i.class_name; i.title = i.class_name;
}); });
this.changeClassObj.periods_list.find(i=>{return i.id === this.changeClassObj.selectedGoods[0]}).children = res.list this.changeClassObj.periods_list.find(i => {
let nowGoods = this.changeClassObj.periods_list.find(i=>{return i.id === this.changeClassObj.selectedGoods[0]}); return i.id === this.changeClassObj.selectedGoods[0]
this.periods = nowGoods.children.find(i=>{return i.id === this.changeClassObj.selectedGoods[1]}); }).children = res.list
this.changeClassObj.new_class_id=this.userObj.classId; let nowGoods = this.changeClassObj.periods_list.find(i => {
this.changeClassObj.new_periods_id=this.userObj.periods_id; return i.id === this.changeClassObj.selectedGoods[0]
});
this.periods = nowGoods.children.find(i => {
return i.id === this.changeClassObj.selectedGoods[1]
});
this.changeClassObj.new_class_id = this.userObj.classId;
this.changeClassObj.new_periods_id = this.userObj.periods_id;
}) })
}, },
handleSelectionChange123(a){ handleSelectionChange123(a) {
this.selectUserList = a this.selectUserList = a
}, },
userLook(data){ userLook(data) {
this.lookDetail.show = true; this.lookDetail.show = true;
this.lookDetail.loading = true; this.lookDetail.loading = true;
let json = { let json = {
...@@ -863,17 +893,17 @@ ...@@ -863,17 +893,17 @@
page: this.lookDetail.nowPage page: this.lookDetail.nowPage
} }
this.lookDetail.data = { this.lookDetail.data = {
periods_id:data.periods_id, periods_id: data.periods_id,
user_id: data.user_id user_id: data.user_id
} }
userLookApi(data.periods_id,data.user_id, json).then(res=>{ userLookApi(data.periods_id, data.user_id, json).then(res => {
this.lookDetail.list = res.list; this.lookDetail.list = res.list;
this.lookDetail.loading = false; this.lookDetail.loading = false;
this.lookDetail.total = res.total; this.lookDetail.total = res.total;
}) })
}, },
getUserLook(){ getUserLook() {
if(!this.lookDetail.data) return; if (!this.lookDetail.data) return;
this.lookDetail.show = true; this.lookDetail.show = true;
this.lookDetail.loading = true; this.lookDetail.loading = true;
let json = { let json = {
...@@ -881,26 +911,26 @@ ...@@ -881,26 +911,26 @@
page: this.lookDetail.nowPage page: this.lookDetail.nowPage
} }
let data = this.lookDetail.data; let data = this.lookDetail.data;
userLookApi(data.periods_id,data.user_id, json).then(res=>{ userLookApi(data.periods_id, data.user_id, json).then(res => {
this.lookDetail.list = res.list; this.lookDetail.list = res.list;
this.lookDetail.loading = false; this.lookDetail.loading = false;
this.lookDetail.total = res.total; this.lookDetail.total = res.total;
}) })
}, },
onLookDetailPageChange(val){ onLookDetailPageChange(val) {
this.lookDetail.nowPage = val this.lookDetail.nowPage = val
this.getUserLook(); this.getUserLook();
}, },
onLookDetailSizeChange(val){ onLookDetailSizeChange(val) {
this.lookDetail.limit = val this.lookDetail.limit = val
this.lookDetail.nowPage = 1; this.lookDetail.nowPage = 1;
this.getUserLook(); this.getUserLook();
}, },
searchList2(){ searchList2() {
this.classUserNowPage = 1 this.classUserNowPage = 1
this.searchList() this.searchList()
}, },
searchList(value){ searchList(value) {
console.log(value) console.log(value)
if (value) { if (value) {
this.classUserLimit = value; this.classUserLimit = value;
...@@ -908,26 +938,26 @@ ...@@ -908,26 +938,26 @@
} }
this.loadingFlag = true; this.loadingFlag = true;
let json = { let json = {
page:this.classUserNowPage, page: this.classUserNowPage,
limit:this.classUserLimit limit: this.classUserLimit
}; };
let json2 = {}; let json2 = {};
if(this.timeLang && this.timeLang.length > 1){ if (this.timeLang && this.timeLang.length > 1) {
json.start_at = this.timeLang[0]; json.start_at = this.timeLang[0];
json.end_at = this.timeLang[1]; json.end_at = this.timeLang[1];
json2.start_at = this.timeLang[0]; json2.start_at = this.timeLang[0];
json2.end_at = this.timeLang[1]; json2.end_at = this.timeLang[1];
} }
if(this.searchFrom.user_id){ if (this.searchFrom.user_id) {
json.user_id = this.searchFrom.user_id json.user_id = this.searchFrom.user_id
} }
if(this.searchFrom.is_add_teacher || this.searchFrom.is_add_teacher === 0){ if (this.searchFrom.is_add_teacher || this.searchFrom.is_add_teacher === 0) {
json.is_add_teacher = this.searchFrom.is_add_teacher json.is_add_teacher = this.searchFrom.is_add_teacher
} }
if(this.searchFrom.is_view_course){ if (this.searchFrom.is_view_course) {
json.is_view_course = this.searchFrom.is_view_course json.is_view_course = this.searchFrom.is_view_course
} }
getClassStatisticsApi(this.userObj.periods_id,this.userObj.classId,json2).then(res=>{ getClassStatisticsApi(this.userObj.periods_id, this.userObj.classId, json2).then(res => {
this.statistics.arrive_course_rate = res.arrive_course_rate; this.statistics.arrive_course_rate = res.arrive_course_rate;
this.statistics.clock_rate = res.clock_rate; this.statistics.clock_rate = res.clock_rate;
...@@ -938,7 +968,7 @@ ...@@ -938,7 +968,7 @@
this.statistics.watch_course_rate = res.watch_course_rate; this.statistics.watch_course_rate = res.watch_course_rate;
this.statistics.work_rate = res.work_rate; this.statistics.work_rate = res.work_rate;
}); });
getClassListApi(this.userObj.periods_id,{page:1,limit:100}).then(res =>{ getClassListApi(this.userObj.periods_id, {page: 1, limit: 100}).then(res => {
// console.log(res) // console.log(res)
this.userObj.watch_num = res.periods.watch_num this.userObj.watch_num = res.periods.watch_num
...@@ -946,71 +976,71 @@ ...@@ -946,71 +976,71 @@
console.log(this.userObj) console.log(this.userObj)
// debugger // debugger
}) })
getJoinNumApi(this.userObj.classId).then(res=>{ getJoinNumApi(this.userObj.classId).then(res => {
let _list = res || []; let _list = res || [];
_list.forEach((_data)=>{ _list.forEach((_data) => {
if(_data.is_add_teacher === 1){ if (_data.is_add_teacher === 1) {
this.statistics.teacher_add_user_num = _data.num this.statistics.teacher_add_user_num = _data.num
} else if (_data.is_add_teacher === 2) { } else if (_data.is_add_teacher === 2) {
this.statistics.user_add_teacher_num = _data.num this.statistics.user_add_teacher_num = _data.num
} }
}) })
}); });
getClassUserApi(this.userObj.classId,json).then(res=>{ getClassUserApi(this.userObj.classId, json).then(res => {
this.classUserTotal=res.total; this.classUserTotal = res.total;
this.userTable = res.list; this.userTable = res.list;
this.loadingFlag = false; this.loadingFlag = false;
}); });
this.changeClassObj={ this.changeClassObj = {
show:false, show: false,
new_periods_id:'', new_periods_id: '',
new_class_id:'', new_class_id: '',
periods_user_class_id:'', periods_user_class_id: '',
periods_list:[], periods_list: [],
selectedGoods:[] selectedGoods: []
} }
}, },
initPage(){ initPage() {
console.log(this.userObj) console.log(this.userObj)
this.timerank[0]=this.nowDate this.timerank[0] = this.nowDate
this.timerank[1]=this.nowDate this.timerank[1] = this.nowDate
// this.timeLang[0]='2019-04-17' // this.timeLang[0]='2019-04-17'
console.log(this.timerank) console.log(this.timerank)
// debugger // debugger
this.searchFrom = { this.searchFrom = {
user_id:'', user_id: '',
is_add_teacher: '', is_add_teacher: '',
is_view_course: '', is_view_course: '',
start_at:'', start_at: '',
end_at:'', end_at: '',
}; };
this.statistics={ this.statistics = {
arrive_course_rate:0, arrive_course_rate: 0,
clock_rate:0, clock_rate: 0,
over_clock_rate:0, over_clock_rate: 0,
over_course_rate:0, over_course_rate: 0,
over_work_rate:0, over_work_rate: 0,
transform_rate:0, transform_rate: 0,
watch_course_rate:0, watch_course_rate: 0,
work_rate:0, work_rate: 0,
teacher_add_user_num:0, teacher_add_user_num: 0,
user_add_teacher_num:0 user_add_teacher_num: 0
}; };
this.classUserLimit=20; this.classUserLimit = 20;
this.classUserTotal=0; this.classUserTotal = 0;
this.classUserNowPage=1; this.classUserNowPage = 1;
this.searchList() this.searchList()
}, },
changeUser(data){ changeUser(data) {
this.$confirm('此操作将修改成员看课权限?', '提示', { this.$confirm('此操作将修改成员看课权限?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
changeUserApi(data.id,{is_view_course:data.is_view_course === 0 ? 1 : 0}).then(res=>{ changeUserApi(data.id, {is_view_course: data.is_view_course === 0 ? 1 : 0}).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '修改成功!' message: '修改成功!'
...@@ -1019,13 +1049,13 @@ ...@@ -1019,13 +1049,13 @@
}); });
}); });
}, },
addTeacher(data){ addTeacher(data) {
this.$confirm('此操作将修改是否添加老师权限?', '提示', { this.$confirm('此操作将修改是否添加老师权限?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
addUserTeacherApi(data.id,{is_add_teacher:data.is_add_teacher === 0 ? 1 : 0}).then(res=>{ addUserTeacherApi(data.id, {is_add_teacher: data.is_add_teacher === 0 ? 1 : 0}).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '修改成功!' message: '修改成功!'
...@@ -1034,13 +1064,13 @@ ...@@ -1034,13 +1064,13 @@
}); });
}); });
}, },
onDel(data){ onDel(data) {
this.$confirm('此操作将删除该成员?', '提示', { this.$confirm('此操作将删除该成员?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
delClassUserApi(data.id).then(res=>{ delClassUserApi(data.id).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '删除成功!' message: '删除成功!'
...@@ -1049,17 +1079,17 @@ ...@@ -1049,17 +1079,17 @@
}); });
}); });
}, },
onAdd(){ onAdd() {
let json = { let json = {
is_buy: 0 is_buy: 0
} }
if(this.multipleSelection.length === 0) { if (this.multipleSelection.length === 0) {
this.$message({ this.$message({
type: 'error', type: 'error',
message: '请选择用户!' message: '请选择用户!'
}); });
return return
} else if (this.multipleSelection.length !== 1){ } else if (this.multipleSelection.length !== 1) {
this.$message({ this.$message({
type: 'error', type: 'error',
message: '只能选择一个用户!' message: '只能选择一个用户!'
...@@ -1071,7 +1101,7 @@ ...@@ -1071,7 +1101,7 @@
return return
} }
if (!this.isBindUser) { if (!this.isBindUser) {
addClassUesrApi(this.userObj.classId,this.addId,json).then(res=>{ addClassUesrApi(this.userObj.classId, this.addId, json).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '添加成功!' message: '添加成功!'
...@@ -1080,7 +1110,7 @@ ...@@ -1080,7 +1110,7 @@
this.searchList() this.searchList()
}) })
} else { } else {
teacherBindUserApi(this.userObj.teacherId, {user_id: this.addId}).then(res=>{ teacherBindUserApi(this.userObj.teacherId, {user_id: this.addId}).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '绑定成功!' message: '绑定成功!'
...@@ -1090,12 +1120,12 @@ ...@@ -1090,12 +1120,12 @@
} }
}, },
onAddUser(flag){ onAddUser(flag) {
this.isBindUser = flag; this.isBindUser = flag;
this.addShow = true; this.addShow = true;
this.getUser(); this.getUser();
}, },
getUser(){ getUser() {
let json = { let json = {
page: this.nowPage, page: this.nowPage,
limit: 5 limit: 5
...@@ -1109,16 +1139,16 @@ ...@@ -1109,16 +1139,16 @@
if (this.searchFrom.mobile) { if (this.searchFrom.mobile) {
json.mobile = this.searchFrom.mobile json.mobile = this.searchFrom.mobile
} }
getUserListApi(json).then(res=>{ getUserListApi(json).then(res => {
this.userList = res.list; this.userList = res.list;
this.total = res.total; this.total = res.total;
}) })
}, },
onPageChange(val){ onPageChange(val) {
this.nowPage = val this.nowPage = val
this.getUser() this.getUser()
}, },
onSizeChange(val){ onSizeChange(val) {
this.limit = val this.limit = val
this.nowPage = 1; this.nowPage = 1;
this.getUser() this.getUser()
...@@ -1131,8 +1161,8 @@ ...@@ -1131,8 +1161,8 @@
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
inputValue: '' inputValue: ''
}).then(({ value }) => { }).then(({value}) => {
addPeriodsClassUserDescApi(id,{desc: value}).then(res=>{ addPeriodsClassUserDescApi(id, {desc: value}).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '编辑沟通情况成功' message: '编辑沟通情况成功'
...@@ -1142,7 +1172,7 @@ ...@@ -1142,7 +1172,7 @@
}); });
}) })
}, },
onGetUserDescList(val){ onGetUserDescList(val) {
this.descDialog.show = true; this.descDialog.show = true;
this.descDialog.userInfo = { this.descDialog.userInfo = {
user_id: val.user_id, user_id: val.user_id,
...@@ -1152,26 +1182,26 @@ ...@@ -1152,26 +1182,26 @@
this.descDialog.id = val.id; this.descDialog.id = val.id;
this.getUserDescList(); this.getUserDescList();
}, },
getUserDescList(){ getUserDescList() {
let json = { let json = {
page: this.descDialog.nowPage, page: this.descDialog.nowPage,
limit: this.descDialog.limit limit: this.descDialog.limit
}; };
getUserDescListApi(this.descDialog.id,json).then(res=>{ getUserDescListApi(this.descDialog.id, json).then(res => {
this.descDialog.descList = res.list; this.descDialog.descList = res.list;
this.descDialog.total = res.total; this.descDialog.total = res.total;
}) })
}, },
onDescDialogPageChange(val){ onDescDialogPageChange(val) {
this.descDialog.nowPage = val this.descDialog.nowPage = val
this.getUserDescList() this.getUserDescList()
}, },
onDescDialogSizeChange(val){ onDescDialogSizeChange(val) {
this.descDialog.limit = val this.descDialog.limit = val
this.descDialog.nowPage = 1; this.descDialog.nowPage = 1;
this.getUserDescList() this.getUserDescList()
}, },
editPrivilege(val){ editPrivilege(val) {
this.privilegeDialog = { this.privilegeDialog = {
id: val.id, id: val.id,
isAllowView: val.is_view_course === 1, isAllowView: val.is_view_course === 1,
...@@ -1180,7 +1210,7 @@ ...@@ -1180,7 +1210,7 @@
show: true show: true
} }
}, },
changePrivilegeSub(){ changePrivilegeSub() {
this.$confirm('此操作将修改用户权限?', '提示', { this.$confirm('此操作将修改用户权限?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
...@@ -1191,7 +1221,7 @@ ...@@ -1191,7 +1221,7 @@
is_add_teacher: this.privilegeDialog.is_add_teacher, is_add_teacher: this.privilegeDialog.is_add_teacher,
weight: this.privilegeDialog.weight weight: this.privilegeDialog.weight
} }
updateUserPrivilegeApi(this.privilegeDialog.id,_json).then(res=>{ updateUserPrivilegeApi(this.privilegeDialog.id, _json).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '修改成功!' message: '修改成功!'
...@@ -1201,8 +1231,8 @@ ...@@ -1201,8 +1231,8 @@
}); });
}); });
}, },
exportTable(data){ exportTable(data) {
if(data.length>0){ if (data.length > 0) {
let json = {}; let json = {};
if (this.searchFrom.user_id) { if (this.searchFrom.user_id) {
json.user_id = this.searchFrom.user_id json.user_id = this.searchFrom.user_id
...@@ -1213,35 +1243,35 @@ ...@@ -1213,35 +1243,35 @@
if (this.searchFrom.is_view_course) { if (this.searchFrom.is_view_course) {
json.is_view_course = this.searchFrom.is_view_course json.is_view_course = this.searchFrom.is_view_course
} }
if(this.timeLang && this.timeLang.length > 0){ if (this.timeLang && this.timeLang.length > 0) {
json.pay_start_at =this.timeLang[0]; json.pay_start_at = this.timeLang[0];
json.pay_end_at =this.timeLang[1] json.pay_end_at = this.timeLang[1]
} }
exportExcelApi(`api/admin/class/user/export/${this.userObj.classId}`,json,'用户列表'); exportExcelApi(`api/admin/class/user/export/${this.userObj.classId}`, json, '用户列表');
} }
}, },
formatTime(date){ formatTime(date) {
let year = date.getFullYear(); let year = date.getFullYear();
let Month = date.getMonth()+1; let Month = date.getMonth() + 1;
if(Month < 10){ if (Month < 10) {
Month = `0${Month}` Month = `0${Month}`
} }
let Day = date.getDate(); let Day = date.getDate();
if(Day<10)Day = `0${Day}`; if (Day < 10) Day = `0${Day}`;
return `${year}-${Month}-${Day}`; return `${year}-${Month}-${Day}`;
}, },
}, },
watch:{ watch: {
'userObj.show'(value){ 'userObj.show'(value) {
if(value){ if (value) {
this.initPage() this.initPage()
} }
}, },
'classUserNowPage'(value){ 'classUserNowPage'(value) {
this.searchList() this.searchList()
}, },
"changeClassObj.show"(val){ "changeClassObj.show"(val) {
if(val){ if (val) {
this.defaultClass() this.defaultClass()
} }
} }
...@@ -1249,21 +1279,25 @@ ...@@ -1249,21 +1279,25 @@
} }
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import "../../util/public"; @import "../../util/public";
.avatar { .avatar {
width: 50px; width: 50px;
margin-right: 5px; margin-right: 5px;
border-radius: 50%; border-radius: 50%;
height: 50px; height: 50px;
} }
.user{
.user {
/*height: 100%;*/ /*height: 100%;*/
overflow: auto; overflow: auto;
padding: 20px 0; padding: 20px 0;
.btn-content{
.btn-content {
text-align: center; text-align: center;
} }
} }
.flexRow { .flexRow {
display: flex; display: flex;
flex-flow: row; flex-flow: row;
...@@ -1273,7 +1307,7 @@ ...@@ -1273,7 +1307,7 @@
</style> </style>
<style> <style>
.f-c > div{ .f-c > div {
display: flex; display: flex;
flex-flow: row nowrap; flex-flow: row nowrap;
justify-content: flex-start; justify-content: flex-start;
......
...@@ -13,8 +13,14 @@ ...@@ -13,8 +13,14 @@
<el-table-column prop="created_at" label="创建时间" sortable></el-table-column> <el-table-column prop="created_at" label="创建时间" sortable></el-table-column>
<el-table-column v-if="!$store.state.readonly" label="操作"> <el-table-column v-if="!$store.state.readonly" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" plain type="primary" v-if="!$store.state.readonly" @click="edit(scope.row)">编辑</el-button> <el-button
<el-button size="mini" type="danger" plain @click="del(scope.row)" v-if="$store.state.deletePermission && !$store.state.readonly">删除</el-button> size="mini" plain type="primary" @click="edit(scope.row)"
v-if="!$store.state.readonly">编辑
</el-button>
<el-button
size="mini" type="danger" plain @click="del(scope.row)"
v-if="$store.state.deletePermission && !$store.state.readonly">删除
</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -39,19 +45,43 @@ ...@@ -39,19 +45,43 @@
<span class="custom-tree-node" slot-scope="{ node, data }"> <span class="custom-tree-node" slot-scope="{ node, data }">
<span>{{ node.label }}</span> <span>{{ node.label }}</span>
<span v-if="data.pid !== 0"> <span v-if="data.pid !== 0">
<el-checkbox v-model="data.refund" v-if="data.cover ==='5-1'|| data.cover=== '5-10'|| data.cover=== '5-9'">退款</el-checkbox> <el-checkbox
<el-checkbox v-model="data.refund" v-if="data.cover ==='10-1' ">类别管理</el-checkbox> v-model="data.refund"
<el-checkbox v-model="data.promoter" v-if="data.cover ==='5-1' ">编辑推广人</el-checkbox> v-if="data.cover ==='5-1'|| data.cover=== '5-10'|| data.cover=== '5-9'">退款</el-checkbox>
<el-checkbox v-model="data.refund" v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加观摩班用户</el-checkbox> <el-checkbox
<el-checkbox v-model="data.classManage" v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加带班班用户</el-checkbox> v-model="data.refund"
<el-checkbox v-model="data.classManageUnlimited" v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加观摩班(无限制)</el-checkbox> v-if="data.cover ==='10-1' ">类别管理</el-checkbox>
<el-checkbox v-model="data.classTakeUnlimited" v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加带班班(无限制)</el-checkbox> <el-checkbox
<el-checkbox v-model="data.distribution" v-if="data.cover ==='5-9'||data.cover ==='7-9'" @change="distribution">批量分配</el-checkbox> v-model="data.promoter"
<el-checkbox v-model="data.exportFinish" v-if="data.cover === '2-3'">导出完课用户</el-checkbox> v-if="data.cover ==='5-1' ">编辑推广人</el-checkbox>
<el-checkbox v-model="data.import" v-if="data.cover ==='6-3'||data.cover ==='5-3'||data.cover ==='5-9'||data.cover ==='6-4'">导入</el-checkbox> <el-checkbox
<el-checkbox v-model="data.export" v-if="exportMenuList.indexOf(data.cover) >-1">导出</el-checkbox> v-model="data.refund"
<el-checkbox v-model="data.readonly">只读</el-checkbox> v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加观摩班用户</el-checkbox>
<el-checkbox v-model="data.delete">删除</el-checkbox> <el-checkbox
v-model="data.classManage"
v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加带班班用户</el-checkbox>
<el-checkbox
v-model="data.classManageUnlimited"
v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加观摩班(无限制)</el-checkbox>
<el-checkbox
v-model="data.classTakeUnlimited"
v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' ">添加带班班(无限制)</el-checkbox>
<el-checkbox
v-model="data.distribution"
v-if="data.cover ==='5-9'||data.cover ==='7-9'" @change="distribution">批量分配</el-checkbox>
<el-checkbox
v-model="data.exportFinish"
v-if="data.cover === '2-3'">导出完课用户</el-checkbox>
<el-checkbox
v-model="data.import"
v-if="data.cover ==='6-3'||data.cover ==='5-3'||data.cover ==='5-9'||data.cover ==='6-4'">导入</el-checkbox>
<el-checkbox
v-model="data.export"
v-if="exportMenuList.indexOf(data.cover) >-1">导出</el-checkbox>
<el-checkbox
v-model="data.readonly">只读</el-checkbox>
<el-checkbox
v-model="data.delete">删除</el-checkbox>
</span> </span>
</span> </span>
</el-tree> </el-tree>
...@@ -128,7 +158,7 @@ ...@@ -128,7 +158,7 @@
j.delete = false; j.delete = false;
if (this.exportMenuList.indexOf(j.cover) > -1) j.export = false; if (this.exportMenuList.indexOf(j.cover) > -1) j.export = false;
if (j.cover === "5-9" || j.cover === "7-9") j.distribution = false; if (j.cover === "5-9" || j.cover === "7-9") j.distribution = false;
if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9"|| j.cover === "6-4") j.import = false; if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9" || j.cover === "6-4") j.import = false;
if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理" if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理"
|| j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") j.refund = false; || j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") j.refund = false;
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") { if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") {
...@@ -179,7 +209,7 @@ ...@@ -179,7 +209,7 @@
j.delete = false; j.delete = false;
if (this.exportMenuList.indexOf(j.cover) > -1) j.export = false; if (this.exportMenuList.indexOf(j.cover) > -1) j.export = false;
if (j.cover === "5-9" || j.cover === "7-9") j.distribution = false; if (j.cover === "5-9" || j.cover === "7-9") j.distribution = false;
if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9"|| j.cover === "6-4") j.import = false; if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9" || j.cover === "6-4") j.import = false;
if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理" if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理"
|| j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") j.refund = false; || j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") j.refund = false;
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") { if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2' || j.cover === "3-6" || j.cover === "3-7") {
...@@ -219,7 +249,7 @@ ...@@ -219,7 +249,7 @@
x.classManageUnlimited = !!i.classManageUnlimited; x.classManageUnlimited = !!i.classManageUnlimited;
x.classTakeUnlimited = !!i.classTakeUnlimited; x.classTakeUnlimited = !!i.classTakeUnlimited;
} }
if (i.cover === "6-3" || i.cover === "5-3" || i.cover === "5-9"|| i.cover === "6-4") { if (i.cover === "6-3" || i.cover === "5-3" || i.cover === "5-9" || i.cover === "6-4") {
x.import = !!i.import; x.import = !!i.import;
} }
if (i.cover === "5-9" || i.cover === "7-9") { if (i.cover === "5-9" || i.cover === "7-9") {
......
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