Commit ffd95ef2 authored by 赵茹林's avatar 赵茹林

班级列表、教师列表、用户列表 新增 “看课权限”是否可编辑的权限控制

用户详情 - 期数列表 隐藏 编辑按钮
parent 59917b0d
......@@ -44,6 +44,7 @@
j.router.meta.refund = !!find.refund;
j.router.meta.distribution = !!find.distribution;
j.router.meta.classManage = !!find.classManage;
j.router.meta.editWatch = !!find.editWatch;
j.router.meta.classManageUnlimited = !!find.classManageUnlimited;
j.router.meta.classTakeUnlimited = !!find.classTakeUnlimited;
j.router.meta.exportFinish = !!find.exportFinish;
......@@ -327,11 +328,14 @@
}
.tabs-refresh {
margin-top: 10px;
&.el-tabs--card > .el-tabs__header {
margin-bottom: 10px;
padding-left: 10px;
/*margin-top: 10px;*/
margin-left: 10px;
/*padding-left: 10px;*/
/* background-color: #fff; */
padding-top: 10px;
/*padding-top: 10px;*/
padding-bottom: 1px;
}
......
......@@ -11,42 +11,26 @@
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="searchList2()">
</el-date-picker>
@change="searchList2()"></el-date-picker>
</el-form-item>
<el-form-item label="用户ID">
<el-input v-model="searchFrom.user_id"/>
</el-form-item>
<el-form-item label="是否添加老师">
<el-select v-model="searchFrom.is_add_teacher" placeholder="请选择" @change="searchList2()" clearable>
<el-option label="老师主动添加" :value="1">
</el-option>
<el-option label="用户主动添加" :value="2">
</el-option>
<el-option label="待通过" :value="3">
</el-option>
<el-option label="手机号不是微信号" :value="4">
</el-option>
<el-option label="用户已拒绝" :value="5">
</el-option>
<el-option label="暂未处理" :value="0">
</el-option>
<el-option label="老师主动添加" :value="1"></el-option>
<el-option label="用户主动添加" :value="2"></el-option>
<el-option label="待通过" :value="3"></el-option>
<el-option label="手机号不是微信号" :value="4"></el-option>
<el-option label="用户已拒绝" :value="5"></el-option>
<el-option label="暂未处理" :value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否可看课">
<el-select v-model="searchFrom.is_view_course" placeholder="请选择" @change="searchList2()">
<el-option
label="全部"
value="">
</el-option>
<el-option
label="是"
value="1">
</el-option>
<el-option
label="否"
value="0">
</el-option>
<el-option label="全部" value=""></el-option>
<el-option label="是" value="1"></el-option>
<el-option label="否" value="0"></el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -60,11 +44,7 @@
<el-button type="success" @click="onRank()">看课排行</el-button>
</el-form-item>
</el-form>
<el-table
:data="[statistics]"
border
size="mini"
style="width: 100%;margin: 20px 0">
<el-table :data="[statistics]" border size="mini" style="width: 100%;margin: 20px 0">
<el-table-column
label="到课率" :render-header="rendertip">
<template slot-scope="scope2">
......@@ -101,28 +81,14 @@
<span>{{ scope2.row.transform_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="老师主动添加用户数"
prop="teacher_add_user_num">
</el-table-column>
<el-table-column
label="用户主动添加老师数"
prop="user_add_teacher_num">
</el-table-column>
<el-table-column label="老师主动添加用户数" prop="teacher_add_user_num"></el-table-column>
<el-table-column label="用户主动添加老师数" prop="user_add_teacher_num"></el-table-column>
</el-table>
<el-table
:data="userTable"
v-loading="loadingFlag"
size="mini"
@selection-change="handleSelectionChange123"
style="width: 100%" fixed>
<el-table-column
type="selection"
width="30">
</el-table-column>
<el-table-column
width="120"
label="沟通情况">
:data="userTable" v-loading="loadingFlag" size="mini"
@selection-change="handleSelectionChange123" style="width: 100%" fixed>
<el-table-column type="selection" width="30"></el-table-column>
<el-table-column width="120" label="沟通情况">
<template slot-scope="scope">
<teacher-desc :row="scope.row" :typeFlag="true" :descType="2" @onSuccess="searchList()"></teacher-desc>
</template>
......@@ -133,20 +99,33 @@
<br> Tel:{{scope.row.mobile}}
</template>
</el-table-column>
<el-table-column label="看课权限" v-if="!userObj.classPage">
<el-table-column label="看课权限">
<template slot-scope="scope">
<el-select
v-if="$store.state.editWatch && !$store.state.readonly"
v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)">
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
<template v-else>{{scope.row.is_view_course==1?'是':'否'}}</template>
</template>
</el-table-column>
<!--<el-table-column label="看课权限" v-if="!userObj.classPage">
<template slot-scope="scope">
<el-select v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)">
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
</template>
<!-- classPage -->
&lt;!&ndash; classPage &ndash;&gt;
</el-table-column>
<el-table-column label="看课权限" v-if="userObj.classPage">
<template slot-scope="scope">
{{scope.row.is_view_course==1?'是':'否'}}
</template>
</el-table-column>
</el-table-column>-->
<el-table-column
label="时间" sortable min-width="200" prop="last_login_at">
<template slot-scope="scope">
......@@ -189,46 +168,35 @@
label="是否添加老师" min-width="155" sortable prop="is_add_teacher" v-if="!userObj.classPage">
<template slot-scope="scope">
<el-select v-model="scope.row.is_add_teacher" size="mini" @change="changeAddTeacher(scope.row)">
<el-option label="老师主动添加" :value="1">
</el-option>
<el-option label="用户主动添加" :value="2">
</el-option>
<el-option label="待通过" :value="3">
</el-option>
<el-option label="手机号不是微信号" :value="4">
</el-option>
<el-option label="用户已拒绝" :value="5">
</el-option>
<el-option label="暂未处理" :value="0">
</el-option>
<el-option label="老师主动添加" :value="1"></el-option>
<el-option label="用户主动添加" :value="2"></el-option>
<el-option label="待通过" :value="3"></el-option>
<el-option label="手机号不是微信号" :value="4"></el-option>
<el-option label="用户已拒绝" :value="5"></el-option>
<el-option label="暂未处理" :value="0"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column
label="是否添加老师" min-width="155" sortable prop="is_add_teacher" v-if="userObj.classPage">
<el-table-column label="是否添加老师" min-width="155" sortable prop="is_add_teacher" v-if="userObj.classPage">
<template slot-scope="scope">
{{ scope.row.is_add_teacher | isteacher}}
</template>
</el-table-column>
<el-table-column
label="意向等级" sortable min-width="95" prop="weight" v-if="userObj.classPage">
<el-table-column label="意向等级" sortable min-width="95" prop="weight" v-if="userObj.classPage">
<template slot-scope="scope">
{{scope.row.weight | userWeightf}}
<!-- <user-weight :row="scope.row" @onSuccess="searchList"></user-weight> -->
</template>
</el-table-column>
<el-table-column
label="意向等级" sortable min-width="95" prop="weight" v-if="!userObj.classPage">
<el-table-column label="意向等级" sortable min-width="95" prop="weight" v-if="!userObj.classPage">
<template slot-scope="scope">
<user-weight :row="scope.row" @onSuccess="searchList"></user-weight>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right">
<template slot-scope="scope">
<el-popover
placement="top"
width="200">
<el-popover placement="top" width="200">
<div style="text-align: center">
<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>
......@@ -279,26 +247,14 @@
</el-col>
</el-row>
</el-form>
<el-table
:data="userList"
ref="multipleTable"
@selection-change="handleSelectionChange"
style="width: 100%">
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
className="f-c"
label="用户">
<el-table :data="userList" ref="multipleTable" @selection-change="handleSelectionChange" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column className="f-c" label="用户">
<template slot-scope="scope">
<img style="margin-right:5px;width: 50px;height: 50px;border-radius: 50px" :src="scope.row.avatar">{{scope.row.nickname}}(ID:{{scope.row.user_id}})
</template>
</el-table-column>
<el-table-column
prop="mobile"
label="手机号">
</el-table-column>
<el-table-column prop="mobile" label="手机号"></el-table-column>
</el-table>
<page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/>
<span slot="footer" class="dialog-footer">
......@@ -307,16 +263,9 @@
</span>
</el-dialog>
<el-dialog :modal="false" :visible.sync="lookDetail.show">
<el-table
v-loading="lookDetail.loading"
:data="lookDetail.list"
style="width: 100%">
<el-table-column
prop="start_at"
label="日期">
</el-table-column>
<el-table-column
label="爸妈看一看">
<el-table v-loading="lookDetail.loading" :data="lookDetail.list" style="width: 100%">
<el-table-column prop="start_at" label="日期"></el-table-column>
<el-table-column label="爸妈看一看">
<template slot-scope="scope">
<span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 1})">
{{scope.row.watch_list.find(i=>{return i.page_id === 1}).stay_time}}
......@@ -326,8 +275,7 @@
</span>
</template>
</el-table-column>
<el-table-column
label="宝贝玩一玩">
<el-table-column label="宝贝玩一玩">
<template slot-scope="scope">
<span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 2})">
{{scope.row.watch_list.find(i=>{return i.page_id === 2}).stay_time}}
......@@ -337,8 +285,7 @@
</span>
</template>
</el-table-column>
<el-table-column
label="爸妈秀宝贝">
<el-table-column label="爸妈秀宝贝">
<template slot-scope="scope">
<span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 3})">
<div v-html="scope.row.watch_list.find(i=>{return i.page_id === 3}).learn_report"></div>
......@@ -348,8 +295,7 @@
</span>
</template>
</el-table-column>
<el-table-column
label="多元趣味课">
<el-table-column label="多元趣味课">
<template slot-scope="scope">
<span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 5})">
{{scope.row.watch_list.find(i=>{return i.page_id === 5}).stay_time}}
......@@ -359,8 +305,7 @@
</span>
</template>
</el-table-column>
<el-table-column
label="分享">
<el-table-column label="分享">
<template slot-scope="scope">
<span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 4})">
已分享
......@@ -381,15 +326,13 @@
:props="{value:'id',label:'title'}"
@active-item-change="handleItemChange"
@change="changePeriods"
v-model="changeClassObj.selectedGoods"
>
</el-cascader>
v-model="changeClassObj.selectedGoods"></el-cascader>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="changeClassObj.show = false"> </el-button>
<el-button type="primary" @click="changeClassSub()"> </el-button>
</span>
<div slot="footer" class="dialog-footer">
<el-button @click="changeClassObj.show = false"> </el-button>
<el-button type="primary" @click="changeClassSub()"> </el-button>
</div>
</el-dialog>
<el-dialog :modal="false" width="1100px" :visible.sync="rank.show" title="看课排行">
<el-form label-width="100px" inline>
......@@ -401,63 +344,34 @@
value-format="yyyy-MM-dd"
start-placeholder="开始日期"
end-placeholder="结束日期"
@change="onRank()">
</el-date-picker>
@change="onRank()"></el-date-picker>
</el-form-item>
<el-form-item label="排名人数">
<el-input style="width:100px;" v-model="rankParams.limit"/>
</el-form-item>
<el-form-item label="排名类型">
<el-select style="width:100px;" v-model="rankParams.type" placeholder="请选择" @change="onRank()">
<el-option
label="按天数"
value="day">
</el-option>
<el-option
label="按时长"
value="time">
</el-option>
<el-option label="按天数" value="day"></el-option>
<el-option label="按时长" value="time"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onRank()">搜索</el-button>
</el-form-item>
</el-form>
<el-table border
size="mini"
style="display: block;margin: 20px auto;background: transparent"
:data="rank.list">
<el-table-column
label="排名"
type="index"
>
</el-table-column>
<el-table-column
className="f-c"
label="用户">
<el-table :data="rank.list" border size="mini" style="display: block;margin: 20px auto;background: transparent">
<el-table-column label="排名" type="index"></el-table-column>
<el-table-column className="f-c" label="用户">
<template slot-scope="scope">
<img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}(ID:{{scope.row.user_id}})
</template>
</el-table-column>
<el-table-column
label="总天数"
prop="total_day">
</el-table-column>
<el-table-column
label="总时长(分)"
prop="total_time">
<template slot-scope="scope">
{{scope.row.total_time/60}}
</template>
</el-table-column>
<el-table-column
label="手机号"
prop="mobile">
</el-table-column>
<el-table-column
label="最后登录时间"
prop="last_login_at">
<el-table-column label="总天数" prop="total_day"></el-table-column>
<el-table-column label="总时长(分)" prop="total_time">
<template slot-scope="scope"> {{scope.row.total_time/60}}</template>
</el-table-column>
<el-table-column label="手机号" prop="mobile"></el-table-column>
<el-table-column label="最后登录时间" prop="last_login_at"></el-table-column>
</el-table>
</el-dialog>
<el-dialog :modal="false" :visible.sync="privilegeDialog.show" title="编辑权限">
......@@ -641,42 +555,30 @@
weight: 0,
id: ''
},
isAddTeacherList: [
{
label: '暂未处理',
value: 0
},
{
label: '老师主动添加用户',
value: 1
},
{
label: '用户主动添加老师',
value: 2
},
{
label: '待通过',
value: 3
},
{
label: '手机号不是微信号',
value: 4
},
{
label: '用户已拒绝',
value: 5
}
],
isAddTeacherList: [{
label: '暂未处理',
value: 0
}, {
label: '老师主动添加用户',
value: 1
}, {
label: '用户主动添加老师',
value: 2
}, {
label: '待通过',
value: 3
}, {
label: '手机号不是微信号',
value: 4
}, {
label: '用户已拒绝',
value: 5
}],
isBindUser: false
}
},
components: {
page,
page2,
teacherDesc,
userWeight,
pageDesc,
sourceByDateDialog
page, page2, teacherDesc, userWeight, pageDesc, sourceByDateDialog
},
filters: {
isOrNot(value) {
......@@ -958,7 +860,6 @@
json.is_view_course = this.searchFrom.is_view_course
}
getClassStatisticsApi(this.userObj.periods_id, this.userObj.classId, json2).then(res => {
this.statistics.arrive_course_rate = res.arrive_course_rate;
this.statistics.clock_rate = res.clock_rate;
this.statistics.over_clock_rate = res.over_clock_rate;
......@@ -969,12 +870,10 @@
this.statistics.work_rate = res.work_rate;
});
getClassListApi(this.userObj.periods_id, {page: 1, limit: 100}).then(res => {
// console.log(res)
this.userObj.watch_num = res.periods.watch_num
console.log(this.$store.state.orderRefund)
console.log(this.userObj)
// debugger
})
getJoinNumApi(this.userObj.classId).then(res => {
let _list = res || [];
......
......@@ -54,27 +54,31 @@
<el-checkbox
v-model="data.promoter"
v-if="data.cover ==='5-1' ">编辑推广人</el-checkbox>
<!--class user teacher-->
<el-checkbox
v-model="data.editWatch"
v-if="data.cover ==='2-3' || data.cover=== '3-1' || data.cover=== '3-2'">修改看课权限</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>
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.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-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>
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>
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>
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>
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>
......@@ -166,6 +170,9 @@
j.classManage = false;
j.classTakeUnlimited = false;
}
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') {
j.editWatch = false;
}
if (j.cover === "2-3") j.exportFinish = false;
if (j.cover === "5-1") j.promoter = false;
})
......@@ -217,6 +224,9 @@
j.classManage = false;
j.classTakeUnlimited = false;
}
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') {
j.editWatch = false;
}
if (j.cover === "2-3") j.exportFinish = false;
if (j.cover === "5-1") j.promoter = false;
})
......@@ -249,6 +259,9 @@
x.classManageUnlimited = !!i.classManageUnlimited;
x.classTakeUnlimited = !!i.classTakeUnlimited;
}
if (i.cover === "2-3" || i.cover === "3-1" || i.cover === '3-2') {
x.editWatch = !!i.editWatch;
}
if (i.cover === "6-3" || i.cover === "5-3" || i.cover === "5-9" || i.cover === "6-4") {
x.import = !!i.import;
}
......@@ -319,6 +332,9 @@
if (i.classManageUnlimited === false || i.classManageUnlimited === true) {
json.classManageUnlimited = i.classManageUnlimited
}
if (i.editWatch === false || i.editWatch === true) {
json.editWatch = i.editWatch
}
if (i.classTakeUnlimited === false || i.classTakeUnlimited === true) {
json.classTakeUnlimited = i.classTakeUnlimited
}
......
......@@ -2,7 +2,7 @@
<div class="admin-refresh">
<el-date-picker
style="margin: 10px 0 0 10px; width: 185px;" :clearable="false"
style="display: block; margin: 10px 0 10px 10px; width: 185px;" :clearable="false"
v-model="search.start_at" value-format="yyyy-MM-dd"
align="right" type="date" placeholder="选择日期"
:picker-options="pickerOptions" @change="getData">
......
......@@ -2,7 +2,7 @@
<div class="admin-refresh">
<el-date-picker
style="margin: 10px 0 0 10px; width: 185px;" :clearable="false" @change="getData"
style="display: block; margin: 10px 0 10px 10px; width: 185px;" :clearable="false" @change="getData"
v-model="search.start_at" value-format="yyyy-MM-dd"
align="right" type="date" placeholder="选择日期"
:picker-options="pickerOptions">
......
......@@ -135,7 +135,7 @@
<el-table-column label="操作" width="340px">
<template slot-scope="scope">
<el-button @click="showUser(scope.row)" size="mini" type="primary"> 班级成员</el-button>
<el-button size="mini" type="warning" v-if="!$store.state.readonly" @click="editPrivilege(scope.row)">编辑</el-button>
<!--<el-button size="mini" type="warning" v-if="!$store.state.readonly" @click="editPrivilege(scope.row)">编辑</el-button>-->
<el-button size="mini" type="primary" @click="onGetUserDescList(scope.row)">备注</el-button>
<el-button size="mini" type="primary" @click="showSourceByDate(scope.row)">看课情况</el-button>
</template>
......
......@@ -98,6 +98,7 @@ router.beforeEach((to,from,next)=> {
store.state.classManage=to.meta.classManage;
store.state.import=to.meta.import;
store.dispatch('promoter',to.meta.promoter)
store.dispatch('editWatch',to.meta.editWatch)
store.dispatch('classManageUnlimited',to.meta.classManageUnlimited)
store.dispatch('classTakeUnlimited',to.meta.classTakeUnlimited)
store.dispatch('exportFinish',to.meta.exportFinish)
......
......@@ -29,6 +29,9 @@ export default{
classManage({commit},data){
commit('classManage',data)
},
editWatch({commit},data){
commit('editWatch',data)
},
classManageUnlimited({commit},data){
commit('classManageUnlimited',data)
},
......
......@@ -15,6 +15,7 @@ export default new vuex.Store({
deletePermission:false,
distribution:false,
classManage:false,
editWatch:false,
classManageUnlimited:false,
classTakeUnlimited:false,
exportFinish:false,
......
......@@ -30,6 +30,9 @@ const mutations={
classManage(state,data){
state.classManage=data;
},
editWatch(state,data){
state.editWatch=data;
},
classManageUnlimited(state,data){
state.classManageUnlimited=data;
},
......
......@@ -254,7 +254,8 @@ export default [
name: 'user',
component: e => require(['@/components/user'], e),
}
}, {
},
/*{
value: '用户详情',
routerName: 'userDetail',
path: '/userDetail',
......@@ -265,7 +266,8 @@ export default [
name: 'userDetail',
component: e => require(['@/components/userDetail/index'], e),
}
}, {
},*/
{
value: '老系统用户列表',
routerName: 'oldUser',
path: '/oldUser',
......
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