Commit 02475ce6 authored by 赵茹林's avatar 赵茹林

手动合并master最近更新

parent 206c0178
...@@ -154,6 +154,7 @@ ...@@ -154,6 +154,7 @@
this.form = { this.form = {
teacher_id:'', teacher_id:'',
max_join_num:'', max_join_num:'',
class_name: '',
source:'', source:'',
qr:"" qr:""
}; };
......
...@@ -42,10 +42,10 @@ ...@@ -42,10 +42,10 @@
<el-checkbox v-model="data.refund" 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 ==='5-1'|| data.cover=== '5-10'|| data.cover=== '5-9'">退款</el-checkbox>
<el-checkbox v-model="data.refund" v-if="data.cover ==='10-1' ">类别管理</el-checkbox> <el-checkbox v-model="data.refund" v-if="data.cover ==='10-1' ">类别管理</el-checkbox>
<el-checkbox v-model="data.promoter" v-if="data.cover ==='5-1' ">编辑推广人</el-checkbox> <el-checkbox v-model="data.promoter" v-if="data.cover ==='5-1' ">编辑推广人</el-checkbox>
<el-checkbox v-model="data.refund" 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>
<el-checkbox v-model="data.classManage" v-if="data.cover ==='2-3'|| data.cover=== '3-1'|| data.cover=== '3-2' ">添加带班班用户</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' ">添加观摩班(无限制)</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' ">添加带班班(无限制)</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.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.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'">导入</el-checkbox> <el-checkbox v-model="data.import" v-if="data.cover ==='6-3'||data.cover ==='5-3'||data.cover ==='5-9'">导入</el-checkbox>
...@@ -88,7 +88,7 @@ ...@@ -88,7 +88,7 @@
limit: 10, limit: 10,
roleList: [], roleList: [],
exportMenuList: [ // 导出权限 exportMenuList: [ // 导出权限
'2-3', '5-10', '5-2', '5-1', '5-3', '5-8', '5-9', '6-4', '3-1', '7-9', '6-3', '10-8' '2-3', '5-10', '5-2', '5-1', '5-3', '5-8', '5-9', '6-4', '3-1', '3-6', '3-7', '7-9', '6-3', '10-8'
], ],
dialog: { dialog: {
title: '新增角色', title: '新增角色',
...@@ -129,8 +129,9 @@ ...@@ -129,8 +129,9 @@
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.import = false; if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9") j.import = false;
if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理" || j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') j.refund = false; if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理"
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') { || 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") {
j.classManageUnlimited = false; j.classManageUnlimited = false;
j.classManage = false; j.classManage = false;
j.classTakeUnlimited = false; j.classTakeUnlimited = false;
...@@ -179,8 +180,9 @@ ...@@ -179,8 +180,9 @@
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.import = false; if (j.cover === "6-3" || j.cover === "5-3" || j.cover === "5-9") j.import = false;
if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理" || j.cover === "5-9" || j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') j.refund = false; if (j.name === '月课订单列表' || j.name === '日课订单列表' || j.name === "来源码管理"
if (j.cover === "2-3" || j.cover === "3-1" || j.cover === '3-2') { || 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") {
j.classManageUnlimited = false; j.classManageUnlimited = false;
j.classManage = false; j.classManage = false;
j.classTakeUnlimited = false; j.classTakeUnlimited = false;
...@@ -208,10 +210,11 @@ ...@@ -208,10 +210,11 @@
x.readonly = !!i.readonly; x.readonly = !!i.readonly;
x.delete = !!i.delete; x.delete = !!i.delete;
if (this.exportMenuList.indexOf(i.cover) > -1) x.export = !!i.export; if (this.exportMenuList.indexOf(i.cover) > -1) x.export = !!i.export;
if (i.cover === '5-1' || i.cover === '5-10' || i.cover === "10-1" || i.cover === "5-9" || i.cover === "2-3" || i.cover === "3-1" || i.cover === '3-2') { if (i.cover === '5-1' || i.cover === '5-10' || i.cover === "10-1" || i.cover === "5-9" || i.cover === "2-3"
|| i.cover === "3-1" || i.cover === '3-2' || i.cover === "3-6" || i.cover === "3-7") {
x.refund = !!i.refund; x.refund = !!i.refund;
} }
if (i.cover === "2-3" || i.cover === "3-1" || i.cover === '3-2') { if (i.cover === "2-3" || i.cover === "3-1" || i.cover === '3-2' || i.cover === "3-6" || i.cover === "3-7") {
x.classManage = !!i.classManage; x.classManage = !!i.classManage;
x.classManageUnlimited = !!i.classManageUnlimited; x.classManageUnlimited = !!i.classManageUnlimited;
x.classTakeUnlimited = !!i.classTakeUnlimited; x.classTakeUnlimited = !!i.classTakeUnlimited;
......
...@@ -38,8 +38,7 @@ ...@@ -38,8 +38,7 @@
<span v-if="type===1">{{teacherDetail.status}}</span> <span v-if="type===1">{{teacherDetail.status}}</span>
<el-form-item v-if="type !== 1"> <el-form-item v-if="type !== 1">
<el-select v-model="form.status" placeholder="请选择"> <el-select v-model="form.status" placeholder="请选择">
<el-option v-for="data in statusOption" :key="data.value" :label="data.label" <el-option v-for="data in statusOption" :key="data.value" :label="data.label" :value="data.value"></el-option>
:value="data.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -47,9 +46,9 @@ ...@@ -47,9 +46,9 @@
<el-col :span="8"> <el-col :span="8">
<span v-if="type===1">{{teacherDetail.type}}</span> <span v-if="type===1">{{teacherDetail.type}}</span>
<el-form-item v-if="type !== 1"> <el-form-item v-if="type !== 1">
<el-select v-model="form.type" placeholder="请选择"> <!--<el-select v-model="form.type" placeholder="请选择" disabled>-->
<el-option v-for="data in dialogObj.teacherTypeList" :key="data.type" :label="data.name" <el-select v-model="form.type" placeholder="请选择" :disabled="typeList.length < 2">
:value="data.type"></el-option> <el-option v-for="data in typeList" :key="data.type" :label="data.name" :value="data.type"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -141,6 +140,7 @@ ...@@ -141,6 +140,7 @@
], ],
loading:true, loading:true,
type:0, type:0,
typeList: [],
title:'', title:'',
form:{ form:{
name:'', name:'',
...@@ -167,7 +167,7 @@ ...@@ -167,7 +167,7 @@
methods:{ methods:{
sub(){ sub(){
if(this.imageList.length > 0){ if(this.imageList.length > 0){
this.form.qr = this.imageList[0].url; this.form.qr = this.imageList[0].url;
} }
let json = { let json = {
name:this.form.name, name:this.form.name,
...@@ -181,16 +181,16 @@ ...@@ -181,16 +181,16 @@
switch(this.dialogObj.type){ switch(this.dialogObj.type){
case 2: case 2:
this.$refs['form'].validate((valid) => { this.$refs['form'].validate((valid) => {
if(valid){ if (valid) {
editTeacherApi(this.id,json).then(res=>{ editTeacherApi(this.id, json).then(res => {
this.$message({ this.$message({
type: 'success', type: 'success',
message: '修改成功!' message: '修改成功!'
}); });
this.$emit("reflash"); this.$emit("reflash");
this.show = false; this.show = false;
}) })
} }
}); });
break; break;
case 0: case 0:
...@@ -235,41 +235,63 @@ ...@@ -235,41 +235,63 @@
this.loading = false; this.loading = false;
}) })
}, },
initType() {
// debugger
if (this.dialogObj.teacherTypeList && this.dialogObj.teacherTypeList.length) {
if (String(this.dialogObj.typeAdd).indexOf(',') > -1) { // 3,4
let typeAddArr = this.dialogObj.typeAdd.split(','), arr = [];
typeAddArr.forEach(val => {
let idx = this.dialogObj.teacherTypeList.findIndex(i => i.type == val);
if (idx > -1) {
arr.push(this.dialogObj.teacherTypeList[idx])
}
})
this.typeList = arr;
} else if (this.dialogObj.typeAdd == 0 || this.dialogObj.typeAdd == 2) {
let idx = this.dialogObj.teacherTypeList.findIndex(i => i.type == this.dialogObj.typeAdd);
if (idx > -1) {
this.typeList = [this.dialogObj.teacherTypeList[idx]]
}
}
}
},
initDialog(){ initDialog(){
console.log(this.dialogObj) // console.log(this.dialogObj)
this.initType();
switch(this.dialogObj.type){ switch(this.dialogObj.type){
case 0: case 0: // 添加
this.title = '新增教师'; this.title = '新增';
this.show = this.dialogObj.show; this.show = this.dialogObj.show;
this.type = 0; this.type = 0;
this.form.name = ""; this.form.name = "";
this.form.alias = ""; this.form.alias = "";
this.form.qr = ""; this.form.qr = "";
this.form.squad = ""; this.form.squad = "";
this.form.type = 0; this.form.type = String(this.dialogObj.typeAdd).indexOf(',')>-1 ? 3 : this.dialogObj.typeAdd;
this.form.status = 0; this.form.status = 0;
this.imageList = []; this.imageList = [];
this.loading = false; this.loading = false;
this.uploadShow = true; this.uploadShow = true;
this.form.media_id = ''; this.form.media_id = '';
break; break;
case 1: case 1: // 查看
this.title = '教师详情'; this.title = '详情';
this.show = this.dialogObj.show; this.show = this.dialogObj.show;
this.id = this.dialogObj.id; this.id = this.dialogObj.id;
this.type = 1; this.type = 1;
getTeacherDetailApi(this.id).then(res=>{ getTeacherDetailApi(this.id).then(res => {
this.teacherDetail = res; this.teacherDetail = res;
this.loading = false this.loading = false
}); });
break; break;
case 2: case 2: // 编辑
this.title = '编辑'; this.title = '编辑';
this.show = this.dialogObj.show; this.show = this.dialogObj.show;
this.id = this.dialogObj.id; this.id = this.dialogObj.id;
this.type = 2; this.type = 2;
getTeacherDetailApi(this.id).then(res=>{ getTeacherDetailApi(this.id).then(res => {
this.form.name = res.name; this.form.name = res.name;
this.form.squad = res.squad; this.form.squad = res.squad;
this.form.alias = res.alias; this.form.alias = res.alias;
...@@ -277,7 +299,7 @@ ...@@ -277,7 +299,7 @@
this.form.type = res.type; this.form.type = res.type;
this.form.status = res.status; this.form.status = res.status;
this.form.media_id = res.media_id ? res.media_id : ''; this.form.media_id = res.media_id ? res.media_id : '';
this.imageList = [{name:res.qr,url:res.qr}]; this.imageList = [{name: res.qr, url: res.qr}];
this.uploadShow = !res.qr; this.uploadShow = !res.qr;
this.loading = false; this.loading = false;
}); });
...@@ -287,6 +309,10 @@ ...@@ -287,6 +309,10 @@
} }
}, },
watch:{ watch:{
'dialogObj.teacherTypeList'() {
console.log('listUpdate'); // todo 似乎无用?
this.initType();
},
dialogObj:{ dialogObj:{
handler: function () { handler: function () {
this.loading = true; this.loading = true;
......
This diff is collapsed.
...@@ -13,18 +13,18 @@ ...@@ -13,18 +13,18 @@
<el-option label="不带班" value="1"></el-option> <el-option label="不带班" value="1"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="教师类型"> <!--<el-form-item label="教师类型">
<el-select v-model="searchFrom.type" style="width: 95px" placeholder="请选择" @change="getUser" clearable> <el-select v-model="searchFrom.type" style="width: 95px" placeholder="请选择" @change="getUser" clearable>
<!-- <el-option &lt;!&ndash; <el-option
v-for="item in dialogObj.teacherTypeList" v-for="item in dialogObj.teacherTypeList"
:key="item.id" :key="item.id"
:label="item.label" :label="item.label"
:value="item.id"> :value="item.id">
</el-option> --> </el-option> &ndash;&gt;
<el-option v-for="data in dialogObj.teacherTypeList" :key="data.type" :label="data.name" <el-option v-for="data in dialogObj.teacherTypeList" :key="data.type" :label="data.name"
:value="data.type"></el-option> :value="data.type"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>-->
<el-form-item label="任务日期"> <el-form-item label="任务日期">
<el-date-picker <el-date-picker
style="width: 140px;" style="width: 140px;"
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<el-form-item> <el-form-item>
<el-button type="primary" plain @click="getUser">搜索</el-button> <el-button type="primary" plain @click="getUser">搜索</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="$store.state.orderRefund"> <el-form-item v-if="!$store.state.readonly">
<el-button type="success" plain @click="add">新增教师</el-button> <el-button type="success" plain @click="add">新增教师</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -151,9 +151,9 @@ ...@@ -151,9 +151,9 @@
label="意向用户数"> label="意向用户数">
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="performance" prop="performance"
width="100" width="100"
label="当月业绩"> label="当月业绩">
</el-table-column> </el-table-column>
<el-table-column width="320" label="操作"> <el-table-column width="320" label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -187,40 +187,40 @@ ...@@ -187,40 +187,40 @@
</div> </div>
<div> <div>
<div> <div>
达标率:<el-progress 达标率:<el-progress
style="display: inline-block;width: calc(90% - 50px)" style="display: inline-block;width: calc(90% - 50px)"
:text-inside="true" :text-inside="true"
:stroke-width="16" :stroke-width="16"
:color="Number(res.recall_watch_rate)===100 ? '#67C23A' : '#ff0000'" :color="Number(res.recall_watch_rate)===100 ? '#67C23A' : '#ff0000'"
:percentage="Number(res.recall_watch_rate)?Number(res.recall_watch_rate):0"> :percentage="Number(res.recall_watch_rate)?Number(res.recall_watch_rate):0">
</el-progress> </el-progress>
<br> <br>
处理率:<el-progress 处理率:<el-progress
style="display: inline-block;;width: calc(90% - 50px)" style="display: inline-block;;width: calc(90% - 50px)"
:text-inside="true" :text-inside="true"
:stroke-width="16" :stroke-width="16"
:color="Number(res.recall_exec_rate)===100 ? '#67C23A' : '#f00'" :color="Number(res.recall_exec_rate)===100 ? '#67C23A' : '#f00'"
:percentage="Number(res.recall_exec_rate)?Number(res.recall_exec_rate):0"> :percentage="Number(res.recall_exec_rate)?Number(res.recall_exec_rate):0">
</el-progress> </el-progress>
</div> </div>
</div> </div>
<div> <div>
<div> <div>
标记率:<el-progress 标记率:<el-progress
style="display: inline-block;width: calc(90% - 50px)" style="display: inline-block;width: calc(90% - 50px)"
:text-inside="true" :text-inside="true"
:stroke-width="16" :stroke-width="16"
color="#67C23A" color="#67C23A"
:percentage="Number(res.over_intention_rate)?Number(res.over_intention_rate):0"> :percentage="Number(res.over_intention_rate)?Number(res.over_intention_rate):0">
</el-progress> </el-progress>
<br> <br>
处理率:<el-progress 处理率:<el-progress
style="display: inline-block;width: calc(90% - 50px)" style="display: inline-block;width: calc(90% - 50px)"
:text-inside="true" :text-inside="true"
:stroke-width="16" :stroke-width="16"
:color="Number(res.over_exec_rate)===100 ? '#67C23A' : '#f00'" :color="Number(res.over_exec_rate)===100 ? '#67C23A' : '#f00'"
:percentage="Number(res.over_exec_rate)?Number(res.over_exec_rate):0"> :percentage="Number(res.over_exec_rate)?Number(res.over_exec_rate):0">
</el-progress> </el-progress>
</div> </div>
</div> </div>
<div> <div>
...@@ -289,7 +289,7 @@ ...@@ -289,7 +289,7 @@
import page from '../framework/page' import page from '../framework/page'
import teacherDetail from '../teacherDetail/index' import teacherDetail from '../teacherDetail/index'
import dialogCom from './dialog' import dialogCom from './dialog'
import Dialog from "../class/dialog"; // import Dialog from "../class/dialog";
let teacherTypeSource = {} let teacherTypeSource = {}
export default { export default {
name: "index", name: "index",
...@@ -334,7 +334,13 @@ ...@@ -334,7 +334,13 @@
status:'0', status:'0',
task_date:nowDate, task_date:nowDate,
squad:"1", squad:"1",
type:"", type:0,
},
dialogObj:{
typeAdd: 0, // 与searchFrom.type一致
type:0,
show:false,
id:''
}, },
dialogDetail:{ dialogDetail:{
show:false, show:false,
...@@ -344,11 +350,6 @@ ...@@ -344,11 +350,6 @@
total:0, total:0,
nowPage:1, nowPage:1,
limit: 20, limit: 20,
dialogObj:{
type:0,
show:false,
id:''
},
res:null, res:null,
dialogDetailObj:{ dialogDetailObj:{
show:false, show:false,
...@@ -373,7 +374,7 @@ ...@@ -373,7 +374,7 @@
} }
}, },
components:{ components:{
Dialog, // Dialog,
page, page,
dialogCom, dialogCom,
teacherDetail teacherDetail
...@@ -384,7 +385,6 @@ ...@@ -384,7 +385,6 @@
} }
}, },
mounted(){ mounted(){
console.log(this.dialogDetail)
// console.log(s) // console.log(s)
let data = localStorage.getItem("phoneNum"); let data = localStorage.getItem("phoneNum");
console.log(data) console.log(data)
...@@ -596,7 +596,7 @@ ...@@ -596,7 +596,7 @@
background: #cccccc; background: #cccccc;
} }
.total-tab{ .total-tab{
display: table; display: table;
background: #dfedff; background: #dfedff;
width: 100%; width: 100%;
vertical-align: middle; vertical-align: middle;
......
This diff is collapsed.
...@@ -115,6 +115,26 @@ export default [ ...@@ -115,6 +115,26 @@ export default [
name: 'teacher', name: 'teacher',
component: e => require(['@/components/teacher'], e), component: e => require(['@/components/teacher'], e),
} }
}, {
value: '增长运营列表', // 增长运营、TMK用
routerName: 'growth',
path: '/growth',
cover: '3-6',
router: {
path: '/growth',
name: 'growth',
component: e => require(['@/components/teacher/growth'], e),
}
}, {
value: '用户服务列表', // 用户服务用
routerName: 'userservice',
path: '/userservice',
cover: '3-7',
router: {
path: '/userservice',
name: 'userservice',
component: e => require(['@/components/teacher/userservice'], e),
}
}, { }, {
value: '月课订单列表', value: '月课订单列表',
routerName: 'monthOrder', routerName: 'monthOrder',
......
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