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>
<el-form-item label="课程开课时间"> <el-form-item label="课程开课时间">
<el-date-picker <el-date-picker
type="daterange" type="daterange"
v-model="timeLang" v-model="timeLang"
range-separator="至" range-separator="至"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@change="searchList2()"> @change="searchList2()">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="用户ID"> <el-form-item label="用户ID">
<el-input v-model="searchFrom.user_id"/> <el-input v-model="searchFrom.user_id"/>
</el-form-item> </el-form-item>
<el-form-item label="是否添加老师"> <el-form-item label="是否添加老师">
<el-select v-model="searchFrom.is_add_teacher" placeholder="请选择" @change="searchList2()" clearable> <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-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-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchList2(classUserLimit)">搜索</el-button>
<el-button type="success" @click="changeClass" v-if="!$store.state.readonly">切换班级</el-button>
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.orderRefund&&userObj.type==2&&userObj.watch_num<60&&!$store.state.classManageUnlimited">+添加用户</el-button>
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.classManage&&userObj.type==1&&userObj.watch_num<60&&!$store.state.classTakeUnlimited">+添加用户</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="primary" @click="exportTable(userTable)" v-if="$store.state.export">导出</el-button>
<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-column
label="到课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.arrive_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="看课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.watch_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="完课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.over_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="打卡率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.clock_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="全勤打卡率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.over_clock_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="转化率" :render-header="rendertip">
<template slot-scope="scope2">
<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>
<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="沟通情况">
<template slot-scope="scope">
<teacher-desc :row="scope.row" :typeFlag="true" :descType="2" @onSuccess="searchList()"></teacher-desc>
</template>
</el-table-column>
<el-table-column label="用户" className="f-c" min-width="180" sortable prop="user_id">
<template slot-scope="scope">
<img :src="scope.row.avatar" style="width: 40px;min-width:40px;height: 40px;border-radius: 50px"> {{scope.row.nickname}}(ID:{{scope.row.user_id}})
<br> Tel:{{scope.row.mobile}}
</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 -->
</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
label="时间" sortable min-width="200" prop="last_login_at" >
<template slot-scope="scope">
最后登录:{{ scope.row.last_login_at }}
<br>
进班时间:{{ scope.row.created_at }}
</template>
</el-table-column>
<el-table-column
label="看课率" sortable prop="watch_course_rate">
<template slot-scope="scope">
{{ scope.row.watch_course_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="看课次数" sortable prop="watch_course_num" min-width="95">
<template slot-scope="scope">
{{ scope.row.watch_course_num }}
</template>
</el-table-column>
<el-table-column
label="学习时长(分)" sortable min-width="120" prop="watch_course_time">
<template slot-scope="scope">
{{ Math.round(scope.row.watch_course_time / 60 * 100) / 100}}
</template>
</el-table-column>
<el-table-column
label="打卡率" sortable prop="clock_rate" min-width="80">
<template slot-scope="scope">
{{ scope.row.clock_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="续费情况" sortable prop="is_continue_buy">
<template slot-scope="scope">
{{ scope.row.is_continue_buy | isOrNot}}
</template>
</el-table-column>
<el-table-column
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 label="老师主动添加" :value="1">
</el-option> </el-option>
<el-option label="用户主动添加" :value="2"> <el-option label="用户主动添加" :value="2">
...@@ -206,329 +32,521 @@ ...@@ -206,329 +32,521 @@
<el-option label="暂未处理" :value="0"> <el-option label="暂未处理" :value="0">
</el-option> </el-option>
</el-select> </el-select>
</template> </el-form-item>
</el-table-column> <el-form-item label="是否可看课">
<el-table-column <el-select v-model="searchFrom.is_view_course" placeholder="请选择" @change="searchList2()">
label="是否添加老师" min-width="155" sortable prop="is_add_teacher" v-if="userObj.classPage"> <el-option
<template slot-scope="scope"> label="全部"
{{ scope.row.is_add_teacher | isteacher}} value="">
</template> </el-option>
</el-table-column> <el-option
label="是"
<el-table-column value="1">
label="意向等级" sortable min-width="95" prop="weight" v-if="userObj.classPage"> </el-option>
<el-option
label="否"
value="0">
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="searchList2(classUserLimit)">搜索</el-button>
<el-button type="success" @click="changeClass" v-if="!$store.state.readonly">切换班级</el-button>
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.orderRefund&&userObj.type==2&&userObj.watch_num<60&&!$store.state.classManageUnlimited">+添加用户</el-button>
<el-button type="success" @click="onAddUser(false)" v-if="$store.state.classManage&&userObj.type==1&&userObj.watch_num<60&&!$store.state.classTakeUnlimited">+添加用户</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="primary" @click="exportTable(userTable)" v-if="$store.state.export">导出</el-button>
<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-column
label="到课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.arrive_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="看课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.watch_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="完课率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.over_course_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="打卡率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.clock_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="全勤打卡率" :render-header="rendertip">
<template slot-scope="scope2">
<span>{{ scope2.row.over_clock_rate | percent}}</span>
</template>
</el-table-column>
<el-table-column
label="转化率" :render-header="rendertip">
<template slot-scope="scope2">
<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>
<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="沟通情况">
<template slot-scope="scope">
<teacher-desc :row="scope.row" :typeFlag="true" :descType="2" @onSuccess="searchList()"></teacher-desc>
</template>
</el-table-column>
<el-table-column label="用户" className="f-c" min-width="180" sortable prop="user_id">
<template slot-scope="scope">
<img :src="scope.row.avatar" style="width: 40px;min-width:40px;height: 40px;border-radius: 50px"> {{scope.row.nickname}}(ID:{{scope.row.user_id}})
<br> Tel:{{scope.row.mobile}}
</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 -->
</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
label="时间" sortable min-width="200" prop="last_login_at">
<template slot-scope="scope">
最后登录:{{ scope.row.last_login_at }}
<br>
进班时间:{{ scope.row.created_at }}
</template>
</el-table-column>
<el-table-column
label="看课率" sortable prop="watch_course_rate">
<template slot-scope="scope">
{{ scope.row.watch_course_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="看课次数" sortable prop="watch_course_num" min-width="95">
<template slot-scope="scope">
{{ scope.row.watch_course_num }}
</template>
</el-table-column>
<el-table-column
label="学习时长(分)" sortable min-width="120" prop="watch_course_time">
<template slot-scope="scope">
{{ Math.round(scope.row.watch_course_time / 60 * 100) / 100}}
</template>
</el-table-column>
<el-table-column
label="打卡率" sortable prop="clock_rate" min-width="80">
<template slot-scope="scope">
{{ scope.row.clock_rate | percent}}
</template>
</el-table-column>
<el-table-column
label="续费情况" sortable prop="is_continue_buy">
<template slot-scope="scope">
{{ scope.row.is_continue_buy | isOrNot}}
</template>
</el-table-column>
<el-table-column
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-select>
</template>
</el-table-column>
<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">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.weight | userWeightf}} {{scope.row.weight | userWeightf}}
<!-- <user-weight :row="scope.row" @onSuccess="searchList"></user-weight> --> <!-- <user-weight :row="scope.row" @onSuccess="searchList"></user-weight> -->
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="意向等级" sortable min-width="95" prop="weight" v-if="!userObj.classPage"> label="意向等级" sortable min-width="95" prop="weight" v-if="!userObj.classPage">
<template slot-scope="scope"> <template slot-scope="scope">
<user-weight :row="scope.row" @onSuccess="searchList"></user-weight> <user-weight :row="scope.row" @onSuccess="searchList"></user-weight>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作" fixed="right"> <el-table-column label="操作" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-popover <el-popover
placement="top" placement="top"
width="200"> width="200">
<div style="text-align: center"> <div style="text-align: center">
<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>
</el-table> </el-table>
<div style="text-align: center"> <div style="text-align: center">
<el-pagination <el-pagination
@size-change="searchList" @size-change="searchList"
:page-sizes="[20,50,100,200,500,1000]" :page-sizes="[20,50,100,200,500,1000]"
:page-size="classUserLimit" :page-size="classUserLimit"
:current-page.sync="classUserNowPage" :current-page.sync="classUserNowPage"
layout="total , sizes, prev, pager, next, jumper" layout="total , sizes, prev, pager, next, jumper"
:total="classUserTotal"> :total="classUserTotal">
</el-pagination> </el-pagination>
</div>
</div> </div>
</div> <el-dialog :modal="false" :visible.sync="addShow">
<el-dialog :modal="false" :visible.sync="addShow"> <el-form label-width="90px">
<el-form label-width="90px"> <!--<el-form-item label="用户id">-->
<!--<el-form-item label="用户id">-->
<!--<el-input v-model="addId"></el-input>--> <!--<el-input v-model="addId"></el-input>-->
<!--</el-form-item>--> <!--</el-form-item>-->
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="ID"> <el-form-item label="ID">
<el-input v-model="searchFrom.userId"></el-input> <el-input v-model="searchFrom.userId"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="昵称"> <el-form-item label="昵称">
<el-input v-model="searchFrom.nickName"></el-input> <el-input v-model="searchFrom.nickName"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="电话"> <el-form-item label="电话">
<el-input v-model="searchFrom.mobile"></el-input> <el-input v-model="searchFrom.mobile"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="8" :offset="16"> <el-col :span="8" :offset="16">
<el-form-item> <el-form-item>
<el-button style="float: right" type="primary" plain @click="getUser">搜索</el-button> <el-button style="float: right" type="primary" plain @click="getUser">搜索</el-button>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<el-table <el-table
:data="userList" :data="userList"
ref="multipleTable" ref="multipleTable"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
type="selection" type="selection"
width="55"> width="55">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
className="f-c" className="f-c"
label="用户"> label="用户">
<template slot-scope="scope"> <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}}) <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> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="mobile" prop="mobile"
label="手机号"> label="手机号">
</el-table-column> </el-table-column>
</el-table> </el-table>
<page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/> <page :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="addShow = false">取 消</el-button> <el-button @click="addShow = false">取 消</el-button>
<el-button type="primary" @click="onAdd">确 定</el-button> <el-button type="primary" @click="onAdd">确 定</el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog :modal="false" :visible.sync="lookDetail.show"> <el-dialog :modal="false" :visible.sync="lookDetail.show">
<el-table <el-table
v-loading="lookDetail.loading" v-loading="lookDetail.loading"
:data="lookDetail.list" :data="lookDetail.list"
style="width: 100%"> style="width: 100%">
<el-table-column <el-table-column
prop="start_at" prop="start_at"
label="日期"> label="日期">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="爸妈看一看"> label="爸妈看一看">
<template slot-scope="scope"> <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})"> <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}} {{scope.row.watch_list.find(i=>{return i.page_id === 1}).stay_time}}
</span> </span>
<span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 1})"> <span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 1})">
暂未上课 暂未上课
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="宝贝玩一玩"> label="宝贝玩一玩">
<template slot-scope="scope"> <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})"> <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}} {{scope.row.watch_list.find(i=>{return i.page_id === 2}).stay_time}}
</span> </span>
<span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 2})"> <span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 2})">
暂未上课 暂未上课
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="爸妈秀宝贝"> label="爸妈秀宝贝">
<template slot-scope="scope"> <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})"> <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> <div v-html="scope.row.watch_list.find(i=>{return i.page_id === 3}).learn_report"></div>
</span> </span>
<span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 3})"> <span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 3})">
暂未秀宝贝 暂未秀宝贝
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="多元趣味课"> label="多元趣味课">
<template slot-scope="scope"> <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})"> <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}} {{scope.row.watch_list.find(i=>{return i.page_id === 5}).stay_time}}
</span> </span>
<span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 5})"> <span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 5})">
暂未上课 暂未上课
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="分享"> label="分享">
<template slot-scope="scope"> <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})"> <span v-if="scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 4})">
已分享 已分享
</span> </span>
<span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 4})"> <span v-if="!scope.row.watch_list.find(i=>{return i.page_id === 4})">
暂未分享 暂未分享
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<page2 :nowPage="lookDetail.nowPage" :total="lookDetail.total" :limit="lookDetail.limit" @pageChange="onLookDetailPageChange" @sizeChange="onLookDetailSizeChange"/> <page2 :nowPage="lookDetail.nowPage" :total="lookDetail.total" :limit="lookDetail.limit" @pageChange="onLookDetailPageChange" @sizeChange="onLookDetailSizeChange"/>
</el-dialog> </el-dialog>
<el-dialog :modal="false" :visible.sync="changeClassObj.show" title="切换班级"> <el-dialog :modal="false" :visible.sync="changeClassObj.show" title="切换班级">
<el-form> <el-form>
<el-form-item> <el-form-item>
<el-cascader <el-cascader
:options="changeClassObj.periods_list" :options="changeClassObj.periods_list"
:props="{value:'id',label:'title'}" :props="{value:'id',label:'title'}"
@active-item-change="handleItemChange" @active-item-change="handleItemChange"
@change="changePeriods" @change="changePeriods"
v-model="changeClassObj.selectedGoods" v-model="changeClassObj.selectedGoods"
> >
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="changeClassObj.show = false"> </el-button> <el-button @click="changeClassObj.show = false"> </el-button>
<el-button type="primary" @click="changeClassSub()"> </el-button> <el-button type="primary" @click="changeClassSub()"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<el-dialog :modal="false" width="1100px" :visible.sync="rank.show" title="看课排行"> <el-dialog :modal="false" width="1100px" :visible.sync="rank.show" title="看课排行">
<el-form label-width="100px" inline> <el-form label-width="100px" inline>
<el-form-item label="看课时间"> <el-form-item label="看课时间">
<el-date-picker <el-date-picker
type="daterange" type="daterange"
v-model="timerank" v-model="timerank"
range-separator="至" range-separator="至"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
@change="onRank()"> @change="onRank()">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item label="排名人数"> <el-form-item label="排名人数">
<el-input style="width:100px;" v-model="rankParams.limit"/> <el-input style="width:100px;" v-model="rankParams.limit"/>
</el-form-item> </el-form-item>
<el-form-item label="排名类型"> <el-form-item label="排名类型">
<el-select style="width:100px;" v-model="rankParams.type" placeholder="请选择" @change="onRank()"> <el-select style="width:100px;" v-model="rankParams.type" placeholder="请选择" @change="onRank()">
<el-option <el-option
label="按天数" label="按天数"
value="day"> value="day">
</el-option> </el-option>
<el-option <el-option
label="按时长" label="按时长"
value="time"> value="time">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="onRank()">搜索</el-button> <el-button type="primary" @click="onRank()">搜索</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table border <el-table border
size="mini" size="mini"
style="display: block;margin: 20px auto;background: transparent" style="display: block;margin: 20px auto;background: transparent"
:data="rank.list"> :data="rank.list">
<el-table-column <el-table-column
label="排名" label="排名"
type="index" type="index"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
className="f-c" className="f-c"
label="用户"> label="用户">
<template slot-scope="scope"> <template slot-scope="scope">
<img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}(ID:{{scope.row.user_id}}) <img class="avatar" :src="scope.row.avatar">{{scope.row.nickname}}(ID:{{scope.row.user_id}})
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="总天数" label="总天数"
prop="total_day"> prop="total_day">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="总时长(分)" label="总时长(分)"
prop="total_time"> prop="total_time">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.total_time/60}} {{scope.row.total_time/60}}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="手机号" label="手机号"
prop="mobile"> prop="mobile">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
label="最后登录时间" label="最后登录时间"
prop="last_login_at"> prop="last_login_at">
</el-table-column> </el-table-column>
</el-table> </el-table>
</el-dialog> </el-dialog>
<el-dialog :modal="false" :visible.sync="privilegeDialog.show" title="编辑权限"> <el-dialog :modal="false" :visible.sync="privilegeDialog.show" title="编辑权限">
<el-form label-width="120px"> <el-form label-width="120px">
<el-form-item label="是否添加老师"> <el-form-item label="是否添加老师">
<el-select v-model="privilegeDialog.is_add_teacher" placeholder="请选择"> <el-select v-model="privilegeDialog.is_add_teacher" placeholder="请选择">
<el-option <el-option
v-for="(data,index) in isAddTeacherList" v-for="(data,index) in isAddTeacherList"
:key="index" :key="index"
:label="data.label" :label="data.label"
:value="data.value"> :value="data.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="看课权限"> <el-form-item label="看课权限">
<el-switch <el-switch
v-model="privilegeDialog.isAllowView" v-model="privilegeDialog.isAllowView"
active-color="#13ce66" active-color="#13ce66"
inactive-color="#ff4949"> inactive-color="#ff4949">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="意向等级"> <el-form-item label="意向等级">
<el-input-number v-model="privilegeDialog.weight" :min="0" :step="1"></el-input-number> <el-input-number v-model="privilegeDialog.weight" :min="0" :step="1"></el-input-number>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="privilegeDialog.show = false"> </el-button> <el-button @click="privilegeDialog.show = false"> </el-button>
<el-button type="primary" @click="changePrivilegeSub()"> </el-button> <el-button type="primary" @click="changePrivilegeSub()"> </el-button>
</span> </span>
</el-dialog> </el-dialog>
<!--<el-dialog :modal="false" :visible.sync="descDialog.show" title="沟通情况列表">--> <!--<el-dialog :modal="false" :visible.sync="descDialog.show" title="沟通情况列表">-->
<!--<el-form label-width="90px">--> <!--<el-form label-width="90px">-->
<!--<el-form-item>--> <!--<el-form-item>-->
<!--<el-button style="float: right" type="primary" plain @click="editComment(descDialog.id)">添加沟通情况</el-button>--> <!--<el-button style="float: right" type="primary" plain @click="editComment(descDialog.id)">添加沟通情况</el-button>-->
<!--</el-form-item>--> <!--</el-form-item>-->
<!--</el-form>--> <!--</el-form>-->
<!--<el-table--> <!--<el-table-->
<!--:data="descDialog.descList"--> <!--:data="descDialog.descList"-->
<!--style="width: 100%">--> <!--style="width: 100%">-->
<!--<el-table-column--> <!--<el-table-column-->
<!--label="用户" className="f-c" min-width="150">--> <!--label="用户" className="f-c" min-width="150">-->
<!--<template slot-scope="scope" v-if="descDialog.userInfo">--> <!--<template slot-scope="scope" v-if="descDialog.userInfo">-->
<!--<img :src="descDialog.userInfo.avatar" style="width: 40px;height: 40px;border-radius: 50px"> {{descDialog.userInfo.nickname}}(ID:{{descDialog.userInfo.user_id}})--> <!--<img :src="descDialog.userInfo.avatar" style="width: 40px;height: 40px;border-radius: 50px"> {{descDialog.userInfo.nickname}}(ID:{{descDialog.userInfo.user_id}})-->
<!--</template>--> <!--</template>-->
<!--</el-table-column>--> <!--</el-table-column>-->
<!--<el-table-column--> <!--<el-table-column-->
<!--prop="desc"--> <!--prop="desc"-->
<!--label="沟通情况">--> <!--label="沟通情况">-->
<!--</el-table-column>--> <!--</el-table-column>-->
<!--<el-table-column--> <!--<el-table-column-->
<!--prop="operator"--> <!--prop="operator"-->
<!--label="联系人">--> <!--label="联系人">-->
<!--</el-table-column>--> <!--</el-table-column>-->
<!--<el-table-column--> <!--<el-table-column-->
<!--prop="created_at"--> <!--prop="created_at"-->
<!--label="记录时间">--> <!--label="记录时间">-->
<!--</el-table-column>--> <!--</el-table-column>-->
<!--</el-table>--> <!--</el-table>-->
<!--<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,178 +678,180 @@ ...@@ -659,178 +678,180 @@
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),
h( h(
"el-tooltip", "el-tooltip",
{ {
props: { props: {
effect: "dark", effect: "dark",
content: tipArr[column.label], content: tipArr[column.label],
placement: "top" placement: "top"
} }
}, },
[ [
h("i", { h("i", {
class: "el-icon-question", class: "el-icon-question",
style: "color:#409eff;display:block;" style: "color:#409eff;display:block;"
}) })
] ]
) )
]); ]);
}, },
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,
i.title = i.class_name; type: this.userObj.type
}); }, this.userObj.type).then(res => {
this.changeClassObj.periods_list.find(i=>{return i.id === this.changeClassObj.selectedGoods[0]}).children = res.list res.list.forEach(i => {
let nowGoods = this.changeClassObj.periods_list.find(i=>{return i.id === this.changeClassObj.selectedGoods[0]}); i.title = i.class_name;
this.periods = nowGoods.children.find(i=>{return i.id === this.changeClassObj.selectedGoods[1]}); });
this.changeClassObj.new_class_id=this.userObj.classId; this.changeClassObj.periods_list.find(i => {
this.changeClassObj.new_periods_id=this.userObj.periods_id; return i.id === this.changeClassObj.selectedGoods[0]
}) }).children = res.list
let nowGoods = this.changeClassObj.periods_list.find(i => {
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,27 +938,27 @@ ...@@ -908,27 +938,27 @@
} }
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;
this.statistics.over_clock_rate = res.over_clock_rate; this.statistics.over_clock_rate = res.over_clock_rate;
...@@ -938,79 +968,79 @@ ...@@ -938,79 +968,79 @@
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
console.log(this.$store.state.orderRefund) console.log(this.$store.state.orderRefund)
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: '只能选择一个用户!'
...@@ -1068,10 +1098,10 @@ ...@@ -1068,10 +1098,10 @@
} }
this.addId = this.multipleSelection[0].user_id; this.addId = this.multipleSelection[0].user_id;
if (!this.addId) { if (!this.addId) {
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,47 +1231,47 @@ ...@@ -1201,47 +1231,47 @@
}); });
}); });
}, },
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
} }
if (this.searchFrom.is_add_teacher) { if (this.searchFrom.is_add_teacher) {
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
} }
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,10 +1307,10 @@ ...@@ -1273,10 +1307,10 @@
</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;
align-items: center; align-items: center;
} }
</style> </style>
...@@ -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