Commit f34c5511 authored by IvyXia123's avatar IvyXia123

Merge branch 'dev' of http://git.singsingenglish.com/new-sing/admin into dev

parents abf93254 5d117cda
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
<el-card shadow="never" class="callback-info callback-item" style="margin-bottom: 15px;"> <el-card shadow="never" class="callback-info callback-item" style="margin-bottom: 15px;">
ID:{{user.user_id}} &emsp; ID:{{user.user_id}} &emsp;
用户昵称:{{user.nickname}} &emsp; 用户昵称:{{user.info.nickname || '-'}} &emsp;
宝宝名称:{{user.baby_name || '-'}} &emsp; 宝宝名称:{{user.info.baby_name || '-'}} &emsp;
宝宝生日:{{(user.birthday == '0000-00-00') ? '-' : user.birthday}} &emsp; 宝宝生日:{{(user.info.birthday == '0000-00-00') ? '-' : user.info.birthday}} &emsp;
手机号:{{user.mobile || '-'}} &emsp; 手机号:{{user.info.mobile || '-'}} &emsp;
<div style="display: inline-block; white-space: nowrap"> <div style="display: inline-block; white-space: nowrap">
关联手机号: 关联手机号:
<span class="callback-edit"> <span class="callback-edit">
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
:disabled="(callbackEdit.wechat.value == callbackEdit.wechat.origin) && (callbackEdit.mobile.value == callbackEdit.mobile.origin)" :disabled="(callbackEdit.wechat.value == callbackEdit.wechat.origin) && (callbackEdit.mobile.value == callbackEdit.mobile.origin)"
type="primary" plain size="small">更新用户信息 type="primary" plain size="small">更新用户信息
</el-button>&emsp; </el-button>&emsp;
<span style="font-size: 12px; color: #999999; white-space: nowrap">最后更新:{{user.updated_at || '-'}}</span> <span style="font-size: 12px; color: #999999; white-space: nowrap">最后更新:{{user.info.updated_at || '-'}}</span>
</el-card> </el-card>
<el-card shadow="never" class="callback-item" style="display: flex; align-items: flex-start; margin-bottom: 15px; line-height: 32px;"> <el-card shadow="never" class="callback-item" style="display: flex; align-items: flex-start; margin-bottom: 15px; line-height: 32px;">
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
</el-card> </el-card>
<!--添加回访信息--> <!--添加回访信息-->
<el-card shadow="never" v-if="callbackObj.teacher_id && callbackAdd && !$store.state.readonly" class="callback-item callback-input"> <el-card shadow="never" v-if="callbackObj.teacher_id && !$store.state.readonly" class="callback-item callback-input">
<el-form size="small" inline> <el-form size="small" inline>
<el-form-item required> <el-form-item required>
<el-select v-model="add.method" placeholder="回访方式" style="width: 140px;"> <el-select v-model="add.method" placeholder="回访方式" style="width: 140px;">
...@@ -184,25 +184,21 @@ ...@@ -184,25 +184,21 @@
name: "CallBack", name: "CallBack",
components: {page}, components: {page},
props: { props: {
callbackObj: { callbackObj: { // user_id、teacher_id、timestamp
type: Object, type: Object,
default: () => {} default: () => {}
}, },
callbackAdd: { hasUserInfo: { // 是否传过来用户信息,传来用户信息就不调接口请求用户新,否则请求(防止同时请求用户信息接口报错)
type: Boolean, type: Boolean,
default: false default: false
} },
}, },
data() { data() {
return { return {
loading: true, loading: true,
user: { user: {
user_id: '', user_id: '',
nickname: '', info: {}
baby_name: '',
birthday: '',
mobile: '',
updated_at: ''
}, },
CALLBACK_METHOD: CALLBACK_METHOD, CALLBACK_METHOD: CALLBACK_METHOD,
CALLBACK_TYPE: CALLBACK_TYPE, CALLBACK_TYPE: CALLBACK_TYPE,
...@@ -262,11 +258,14 @@ ...@@ -262,11 +258,14 @@
created() { created() {
}, },
watch: { watch: {
'user'() { 'callbackObj.info'() {
this.callbackEdit.mobile.value = this.user.relation_mobile; this.user.info = this.callbackObj.info || {};
this.callbackEdit.mobile.origin = this.user.relation_mobile; },
this.callbackEdit.wechat.value = this.user.wx_number; 'user.info'() {
this.callbackEdit.wechat.origin = this.user.wx_number; this.callbackEdit.mobile.value = this.user.info.relation_mobile;
this.callbackEdit.mobile.origin = this.user.info.relation_mobile;
this.callbackEdit.wechat.value = this.user.info.wx_number;
this.callbackEdit.wechat.origin = this.user.info.wx_number;
}, },
'callbackObj.timestamp'() { 'callbackObj.timestamp'() {
this.user.user_id = this.callbackObj.user_id; this.user.user_id = this.callbackObj.user_id;
...@@ -276,8 +275,26 @@ ...@@ -276,8 +275,26 @@
}, },
mounted() { mounted() {
this.user.user_id = this.callbackObj.user_id; this.user.user_id = this.callbackObj.user_id;
this.getUser(); if (!this.hasUserInfo) {
this.getUser();
} else {
this.user.info = this.callbackObj.info;
}
this.getTag(); this.getTag();
this.getData();
if (this.callbackObj.teacher_id) {
let json = {
user_id: this.callbackObj.user_id
}
getCallBackPrevApi(json).then(res => {
if (res && res[0] && res[0].next_visit_at && res[0].intention) {
this.add.intention = res[0].intention;
this.add.next_visit_at = res[0].next_visit_at;
}
})
}
}, },
methods: { methods: {
filterName(string, type) { filterName(string, type) {
...@@ -300,7 +317,9 @@ ...@@ -300,7 +317,9 @@
putUserInfoApi(this.user.user_id, json).then(res => { putUserInfoApi(this.user.user_id, json).then(res => {
this.$message({type: 'success', message: '用户信息更新成功'}); this.$message({type: 'success', message: '用户信息更新成功'});
this.getUser(); this.getUser();
// this.$emit('updateUser'); if (this.hasUserInfo) {
this.$emit('updateUser');
}
}) })
}, },
...@@ -388,20 +407,7 @@ ...@@ -388,20 +407,7 @@
getUser() { getUser() {
getUserDetailApi(this.user.user_id).then(res => { getUserDetailApi(this.user.user_id).then(res => {
// console.log(res, 999) // console.log(res, 999)
this.user = res; this.user.info = res;
this.getData();
if (this.callbackObj.teacher_id) {
let json = {
user_id: this.callbackObj.user_id
}
getCallBackPrevApi(json).then(res => {
if (res && res[0] && res[0].next_visit_at && res[0].intention) {
this.add.intention = res[0].intention;
this.add.next_visit_at = res[0].next_visit_at;
}
})
}
this.loading = false;
}) })
}, },
getTag() { getTag() {
...@@ -420,6 +426,7 @@ ...@@ -420,6 +426,7 @@
this.list = res.page_data; this.list = res.page_data;
this.total = res.total this.total = res.total
// this.total = res.total_page // this.total = res.total_page
this.loading = false;
}) })
}, },
callbackReset() { callbackReset() {
......
...@@ -331,13 +331,6 @@ export default { ...@@ -331,13 +331,6 @@ export default {
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.searchFrom{
/*position: absolute;
top: 20px;*/
}
.el-table{
/*margin-top: 130px;*/
}
/deep/.el-table--enable-row-hover .el-table__body tr:hover > td { /deep/.el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: #fff; background-color: #fff;
} }
...@@ -347,7 +340,4 @@ export default { ...@@ -347,7 +340,4 @@ export default {
/deep/.el-progress-bar__inner { /deep/.el-progress-bar__inner {
max-width: 100% !important; max-width: 100% !important;
} }
.el-main .content .router-block .child-view {
/*height: 100vh;*/
}
</style> </style>
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
} }
</script> </script>
<style scoped lang="less"> <style lang="less">
@import "../../util/public"; @import "../../util/public";
.el-header{ .el-header{
background: #333333; background: #333333;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<el-dialog append-to-body :visible.sync="descDialog.show" title="沟通情况列表" width="75%"> <el-dialog append-to-body :visible.sync="descDialog.show" title="沟通情况列表" width="75%">
<!--TODO @updateUser--> <!--TODO @updateUser-->
<call-back :callbackAdd="true" :callbackObj="callbackObj"></call-back> <call-back :callbackObj="callbackObj"></call-back>
<!--<el-form label-width="90px"> <!--<el-form label-width="90px">
<el-form-item> <el-form-item>
......
...@@ -471,7 +471,7 @@ ...@@ -471,7 +471,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="mobile" label="手机号"></el-table-column> <el-table-column prop="mobile" label="手机号"></el-table-column>
</el-table> </el-table>
<page :total="userObj.total" :limit="userObj.limit" :small="true" @pageChange="onPageChange3" @sizeChange="onSizeChange3"/> <page :total="userObj.total" :limit="userObj.limit" :small="true" @pageChange="onPageChange4" @sizeChange="onSizeChange4"/>
<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>
...@@ -821,15 +821,15 @@ ...@@ -821,15 +821,15 @@
type: data.type type: data.type
} }
}, },
/*onPageChange3(val) { onPageChange4(val) {
this.userObj.nowPage = val; this.userObj.nowPage = val;
this.getUser() this.getUser()
},*/ },
/*onSizeChange3(val) { onSizeChange4(val) {
this.userObj.limit = val; this.userObj.limit = val;
this.userObj.nowPage = 1; this.userObj.nowPage = 1;
this.getUser(); this.getUser();
},*/ },
onPageChange(val) { onPageChange(val) {
this.nowPage = val; this.nowPage = val;
this.getTeacherDetail(); this.getTeacherDetail();
......
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
<!--<el-tabs type="border-card" v-model="tabs">--> <!--<el-tabs type="border-card" v-model="tabs">-->
<el-tabs type="border-card" v-model="tabs"> <el-tabs type="border-card" v-model="tabs">
<el-tab-pane label="回访信息" name="callback"> <el-tab-pane label="回访信息" name="callback">
<call-back :callbackObj="callbackObj" :callbackAdd="true" @updateUser="getDetail"></call-back> <call-back :hasUserInfo="true" :callbackObj="callbackObj" @updateUser="getDetail"></call-back>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="期数列表" name="periods"> <el-tab-pane label="期数列表" name="periods">
<el-table @expand-change="changeRow" :data="periodList"> <el-table @expand-change="changeRow" :data="periodList">
...@@ -550,7 +550,8 @@ ...@@ -550,7 +550,8 @@
callbackObj: { callbackObj: {
user_id: '', user_id: '',
teacher_id: '', teacher_id: '',
timestamp: '' timestamp: '',
info: {}
}, },
userList: [], userList: [],
yunjiList: [], yunjiList: [],
...@@ -875,11 +876,10 @@ ...@@ -875,11 +876,10 @@
if (!this.id) return; if (!this.id) return;
getUserDetailApi(this.id).then(res => { getUserDetailApi(this.id).then(res => {
this.detail = res; this.detail = res;
// this.callbackObj.detail = res; // 用户的所有数据
if (res.periods_list) { if (res.periods_list) {
this.periodList = res.periods_list this.periodList = res.periods_list
} }
// console.log(res) this.callbackObj.info = res; // 用户的所有数据
}) })
getSubAccountInfoApi(this.id).then(res => { getSubAccountInfoApi(this.id).then(res => {
if (res.family_user == 1) { if (res.family_user == 1) {
......
export default [{ export default [
name: '',
value: '教研管理',
icon: 'icon-material',
list: [{
value: '教材列表',
routerName: 'resources',
path: '/resources',
cover: '1-1',
router: {
path: '/resources',
name: 'resources',
component: e => require(['@/components/resources'], e),
}
}]
}, {
name: '',
value: '商品课程',
icon: 'icon-shangpin1',
list: [{
value: '课程列表',
routerName: 'lesson',
path: '/lesson',
cover: '2-1',
router: {
path: '/lesson',
name: 'lesson',
component: e => require(['@/components/lesson'], e),
}
}, {
value: '商品列表',
routerName: 'shop',
path: '/shop',
cover: '4-1',
router: {
path: '/shop',
name: 'shop',
component: e => require(['@/components/shop'], e),
},
},]
}, {
name: '',
value: '期数管理',
icon: 'icon-kecheng',
list: [{
value: '期数列表',
routerName: 'periods',
path: '/periods',
cover: '2-2',
router: {
path: '/periods',
name: 'periods',
component: e => require(['@/components/periods'], e),
}
},
{
value: '班级列表',
routerName: 'class',
path: '/class',
cover: '2-3',
router: {
path: '/class',
name: 'class',
component: e => require(['@/components/class'], e),
}
}, {
value: '市场招生统计',
routerName: 'marketStatistics',
path: '/marketStatistics',
cover: '2-5',
router: {
path: '/marketStatistics',
name: 'marketStatistics',
component: e => require(['@/components/marketStatistics'], e),
}
},
{
value: '不上课日期',
routerName: 'noLesson',
path: '/noLesson',
cover: '2-4',
router: {
path: '/noLesson',
name: 'noLesson',
component: e => require(['@/components/noLesson'], e),
}
},
{ {
value: '自化课列表', name: '',
routerName: 'autoClass', value: '教研管理',
path: '/autoClass', icon: 'icon-material',
cover: '2-6', list: [
router: { {
path: '/autoClass', value: '教材列表',
name: 'autoClass', routerName: 'resources',
component: e => require(['@/components/autoClass'], e), path: '/resources',
} cover: '1-1',
}, router: {
] path: '/resources',
}, { name: 'resources',
name: '', component: e => require(['@/components/resources'], e),
value: '销售管理', }
icon: 'icon-laoshi', }
list: [{ ]
value: '教师列表',
routerName: 'teacher',
path: '/teacher',
cover: '3-1',
router: {
path: '/teacher',
name: 'teacher',
component: e => require(['@/components/teacher'], e),
}
}, {
value: '月课订单列表',
routerName: 'monthOrder',
path: '/monthOrder',
cover: '5-10',
router: {
path: '/monthOrder',
name: 'monthOrder',
component: e => require(['@/components/monthOrder'], e),
}
},
{
value: '月课订单统计',
routerName: 'monthOrderCount',
path: '/monthOrderCount',
cover: '5-12',
router: {
path: '/monthOrderCount',
name: 'monthOrderCount',
component: e => require(['@/components/orderCount/monthOrderCount'], e),
}
}, { }, {
value: '退款列表', name: '',
routerName: 'refund', value: '商品课程',
path: '/refund', icon: 'icon-shangpin1',
cover: '5-2', list: [
router: { {
path: '/refund', value: '课程列表',
name: 'refund', routerName: 'lesson',
component: e => require(['@/components/refund'], e), path: '/lesson',
} cover: '2-1',
router: {
path: '/lesson',
name: 'lesson',
component: e => require(['@/components/lesson'], e),
}
}, {
value: '商品列表',
routerName: 'shop',
path: '/shop',
cover: '4-1',
router: {
path: '/shop',
name: 'shop',
component: e => require(['@/components/shop'], e),
},
},
]
}, { }, {
value: '业绩排行', name: '',
routerName: 'achievement', value: '期数管理',
path: '/achievement', icon: 'icon-kecheng',
cover: '5-7', list: [
router: { {
path: '/achievement', value: '期数列表',
name: 'achievement', routerName: 'periods',
component: e => require(['@/components/achievement'], e), path: '/periods',
} cover: '2-2',
router: {
path: '/periods',
name: 'periods',
component: e => require(['@/components/periods'], e),
}
}, {
value: '班级列表',
routerName: 'class',
path: '/class',
cover: '2-3',
router: {
path: '/class',
name: 'class',
component: e => require(['@/components/class'], e),
}
}, {
value: '市场招生统计',
routerName: 'marketStatistics',
path: '/marketStatistics',
cover: '2-5',
router: {
path: '/marketStatistics',
name: 'marketStatistics',
component: e => require(['@/components/marketStatistics'], e),
}
}, {
value: '不上课日期',
routerName: 'noLesson',
path: '/noLesson',
cover: '2-4',
router: {
path: '/noLesson',
name: 'noLesson',
component: e => require(['@/components/noLesson'], e),
}
}, {
value: '自化课列表',
routerName: 'autoClass',
path: '/autoClass',
cover: '2-6',
router: {
path: '/autoClass',
name: 'autoClass',
component: e => require(['@/components/autoClass'], e),
}
},
]
}, { }, {
value: '话术列表', name: '',
routerName: 'talkingSkill', value: '销售管理',
path: '/talkingSkill', icon: 'icon-laoshi',
cover: '11-6', list: [
router: { {
path: '/talkingSkill', value: '教师列表',
name: 'talkingSkill', routerName: 'teacher',
component: e => require(['@/components/talkingSkill'], e), path: '/teacher',
} cover: '3-1',
},{ router: {
value: '销售级别配置', path: '/teacher',
routerName: 'salesLevel', name: 'teacher',
path: '/salesLevel', component: e => require(['@/components/teacher'], e),
cover: '11-7', }
router: { }, {
value: '月课订单列表',
routerName: 'monthOrder',
path: '/monthOrder',
cover: '5-10',
router: {
path: '/monthOrder',
name: 'monthOrder',
component: e => require(['@/components/monthOrder'], e),
}
}, {
value: '月课订单统计',
routerName: 'monthOrderCount',
path: '/monthOrderCount',
cover: '5-12',
router: {
path: '/monthOrderCount',
name: 'monthOrderCount',
component: e => require(['@/components/orderCount/monthOrderCount'], e),
}
}, {
value: '退款列表',
routerName: 'refund',
path: '/refund',
cover: '5-2',
router: {
path: '/refund',
name: 'refund',
component: e => require(['@/components/refund'], e),
}
}, {
value: '业绩排行',
routerName: 'achievement',
path: '/achievement',
cover: '5-7',
router: {
path: '/achievement',
name: 'achievement',
component: e => require(['@/components/achievement'], e),
}
}, {
value: '话术列表',
routerName: 'talkingSkill',
path: '/talkingSkill',
cover: '11-6',
router: {
path: '/talkingSkill',
name: 'talkingSkill',
component: e => require(['@/components/talkingSkill'], e),
}
}, {
value: '销售级别配置',
routerName: 'salesLevel',
path: '/salesLevel', path: '/salesLevel',
name: 'salesLevel', cover: '11-7',
component: e => require(['@/components/salesLevel'], e), router: {
} path: '/salesLevel',
}, { name: 'salesLevel',
value: '佣金配置', component: e => require(['@/components/salesLevel'], e),
routerName: 'brokerage', }
path: '/brokerage', }, {
cover: '11-8', value: '佣金配置',
router: { routerName: 'brokerage',
path: '/brokerage', path: '/brokerage',
name: 'brokerage', cover: '11-8',
component: e => require(['@/components/brokerage'], e), router: {
} path: '/brokerage',
},] name: 'brokerage',
}, component: e => require(['@/components/brokerage'], e),
{ }
name: '', },
value: '用户管理', ]
icon: 'icon-yonghu', }, {
list: [ name: '',
{ value: '用户管理',
value: '用户列表', icon: 'icon-yonghu',
routerName: 'user', list: [
path: '/user', {
cover: '3-2', value: '用户列表',
router: { routerName: 'user',
path: '/user', path: '/user',
name: 'user', cover: '3-2',
component: e => require(['@/components/user'], e), router: {
} path: '/user',
}, name: 'user',
{ component: e => require(['@/components/user'], e),
value: '用户详情', }
routerName: 'userDetail', }, {
path: '/userDetail', value: '用户详情',
cover: '3-2', routerName: 'userDetail',
hidden: true,
router: {
path: '/userDetail', path: '/userDetail',
name: 'userDetail', cover: '3-2',
component: e => require(['@/components/userDetail/index'], e), hidden: true,
} router: {
}, path: '/userDetail',
{ name: 'userDetail',
value: '老系统用户列表', component: e => require(['@/components/userDetail/index'], e),
routerName: 'oldUser', }
path: '/oldUser', }, {
cover: '3-3', value: '老系统用户列表',
router: { routerName: 'oldUser',
path: '/oldUser', path: '/oldUser',
name: 'oldUser', cover: '3-3',
component: e => require(['@/components/oldUser/'], e), router: {
} path: '/oldUser',
}, name: 'oldUser',
{ component: e => require(['@/components/oldUser/'], e),
value: '用户积分列表', }
routerName: 'integral', }, {
path: '/integral', value: '用户积分列表',
cover: '3-4', routerName: 'integral',
router: {
path: '/integral', path: '/integral',
name: 'integral', cover: '3-4',
component: e => require(['@/components/integral/'], e), router: {
} path: '/integral',
}, name: 'integral',
{ component: e => require(['@/components/integral/'], e),
value: '绑定子账号列表', }
routerName: 'subList', }, {
path: '/subList', value: '绑定子账号列表',
cover: '3-5', routerName: 'subList',
router: {
path: '/subList', path: '/subList',
name: 'subList', cover: '3-5',
component: e => require(['@/components/subList/'], e), router: {
} path: '/subList',
}, name: 'subList',
] component: e => require(['@/components/subList/'], e),
}, }
{ },
name: '', ]
value: '订单管理', }, {
icon: 'icon-dingdan', name: '',
list: [ value: '订单管理',
{ icon: 'icon-dingdan',
value: '日课订单列表', list: [
routerName: 'order', {
path: '/order', value: '日课订单列表',
cover: '5-1', routerName: 'order',
router: {
path: '/order', path: '/order',
name: 'order', cover: '5-1',
component: e => require(['@/components/order'], e), router: {
} path: '/order',
}, name: 'order',
{ component: e => require(['@/components/order'], e),
value: '提现列表', }
routerName: 'putForward', }, {
path: '/putForward', value: '提现列表',
cover: '5-3', routerName: 'putForward',
router: {
path: '/putForward', path: '/putForward',
name: 'putForward', cover: '5-3',
component: e => require(['@/components/putForward'], e), router: {
} path: '/putForward',
}, name: 'putForward',
{ component: e => require(['@/components/putForward'], e),
value: '发货管理', }
routerName: 'consignment', }, {
path: '/consignment', value: '发货管理',
cover: '5-4', routerName: 'consignment',
router: {
path: '/consignment', path: '/consignment',
name: 'consignment', cover: '5-4',
component: e => require(['@/components/consignment'], e), router: {
} path: '/consignment',
}, name: 'consignment',
{ component: e => require(['@/components/consignment'], e),
value: '订单统计', }
routerName: 'orderCount', }, {
path: '/orderCount', value: '订单统计',
cover: '5-5', routerName: 'orderCount',
router: {
path: '/orderCount', path: '/orderCount',
name: 'orderCount', cover: '5-5',
component: e => require(['@/components/orderCount/index'], e), router: {
} path: '/orderCount',
}, name: 'orderCount',
{ component: e => require(['@/components/orderCount/index'], e),
value: '日课订单统计', }
routerName: 'dayOrderCount', }, {
path: '/dayOrderCount', value: '日课订单统计',
cover: '5-11', routerName: 'dayOrderCount',
router: {
path: '/dayOrderCount', path: '/dayOrderCount',
name: 'dayOrderCount', cover: '5-11',
component: e => require(['@/components/orderCount/dayOrderCount'], e), router: {
} path: '/dayOrderCount',
}, name: 'dayOrderCount',
{ component: e => require(['@/components/orderCount/dayOrderCount'], e),
value: '优惠券列表', }
routerName: 'coupon', }, {
path: '/coupon', value: '优惠券列表',
cover: '5-6', routerName: 'coupon',
router: {
path: '/coupon', path: '/coupon',
name: 'coupon', cover: '5-6',
component: e => require(['@/components/coupon'], e), router: {
} path: '/coupon',
}, name: 'coupon',
{ component: e => require(['@/components/coupon'], e),
value: '扫码入课列表', }
routerName: 'notBuyClass', }, {
path: '/notBuyClass', value: '扫码入课列表',
cover: '5-8', routerName: 'notBuyClass',
router: {
path: '/notBuyClass', path: '/notBuyClass',
name: 'notBuyClass', cover: '5-8',
component: e => require(['@/components/notBuyClass'], e), router: {
} path: '/notBuyClass',
}, name: 'notBuyClass',
{ component: e => require(['@/components/notBuyClass'], e),
value: '外部订单列表', }
routerName: 'yunji', }, {
path: '/yunji', value: '外部订单列表',
cover: '5-9', routerName: 'yunji',
router: {
path: '/yunji', path: '/yunji',
name: 'yunji', cover: '5-9',
component: e => require(['@/components/yunji'], e), router: {
} path: '/yunji',
}, name: 'yunji',
{ component: e => require(['@/components/yunji'], e),
value: '兑换码管理', }
routerName: 'exchange', }, {
path: '/exchange', value: '兑换码管理',
cover: '5-13', routerName: 'exchange',
router: {
path: '/exchange', path: '/exchange',
name: 'exchange', cover: '5-13',
component: e => require(['@/components/exchange'], e), router: {
path: '/exchange',
name: 'exchange',
component: e => require(['@/components/exchange'], e),
}
} }
} ]
] }, {
}, name: '',
{ value: '数据管理',
name: '', icon: 'icon-shezhi',
value: '数据管理', list: [
icon: 'icon-shezhi', {
list: [ value: '年课转化来源',
{ routerName: 'sourceConversionList',
value: '年课转化来源', path: '/sourceConversionList',
routerName: 'sourceConversionList', cover: '9-9',
path: '/sourceConversionList', router: {
cover: '9-9',
router: {
path: '/sourceConversionList', path: '/sourceConversionList',
name: 'sourceConversionList', name: 'sourceConversionList',
component: e => require(['@/components/conversionList/sourceConversionList'], e), component: e => require(['@/components/conversionList/sourceConversionList'], e),
} }
}, }, {
{
value: '市场招生列表', value: '市场招生列表',
routerName: 'marketEnrollmentConversionList', routerName: 'marketEnrollmentConversionList',
path: '/marketEnrollmentConversionList', path: '/marketEnrollmentConversionList',
cover: '9-8', cover: '9-8',
router: { router: {
path: '/marketEnrollmentConversionList', path: '/marketEnrollmentConversionList',
name: 'marketEnrollmentConversionList', name: 'marketEnrollmentConversionList',
component: e => require(['@/components/conversionList/marketEnrollmentConversionList'], e), component: e => require(['@/components/conversionList/marketEnrollmentConversionList'], e),
} }
}, }, {
{ value: '渠道转化数据',
value: '渠道转化数据', routerName: 'channelConversionList',
routerName: 'channelConversionList', path: '/channelConversionList',
cover: '9-3',
router: {
path: '/channelConversionList', path: '/channelConversionList',
cover: '9-3', name: 'channelConversionList',
router: { component: e => require(['@/components/conversionList/channelConversionList'], e),
path: '/channelConversionList', }
name: 'channelConversionList', }, {
component: e => require(['@/components/conversionList/channelConversionList'], e),
}
},
{
value: '渠道分商品转化数据', value: '渠道分商品转化数据',
routerName: 'channelGoodsConversionList', routerName: 'channelGoodsConversionList',
path: '/channelGoodsConversionList', path: '/channelGoodsConversionList',
cover: '9-2', cover: '9-2',
router: { router: {
path: '/channelGoodsConversionList', path: '/channelGoodsConversionList',
name: 'channelGoodsConversionList', name: 'channelGoodsConversionList',
component: e => require(['@/components/conversionList/channelGoodsConversionList'], e), component: e => require(['@/components/conversionList/channelGoodsConversionList'], e),
} }
}, }, {
{ value: '期数转化数据',
value: '期数转化数据', routerName: 'periodsConversionList',
routerName: 'periodsConversionList', path: '/periodsConversionList',
cover: '9-4',
router: {
path: '/periodsConversionList', path: '/periodsConversionList',
cover: '9-4', name: 'periodsConversionList',
router: { component: e => require(['@/components/conversionList/periodsConversionList'], e),
path: '/periodsConversionList', }
name: 'periodsConversionList', }, {
component: e => require(['@/components/conversionList/periodsConversionList'], e), value: '销售小组数据',
} routerName: 'squadConversionList',
}, path: '/squadConversionList',
{ cover: '9-5',
value: '销售小组数据', router: {
routerName: 'squadConversionList',
path: '/squadConversionList', path: '/squadConversionList',
cover: '9-5', name: 'squadConversionList',
router: { component: e => require(['@/components/conversionList/squadConversionList'], e),
path: '/squadConversionList', }
name: 'squadConversionList', }, {
component: e => require(['@/components/conversionList/squadConversionList'], e), value: '班主任转化数据',
} routerName: 'teacherConversionList',
}, path: '/teacherConversionList',
{ cover: '9-6',
value: '班主任转化数据', router: {
routerName: 'teacherConversionList',
path: '/teacherConversionList', path: '/teacherConversionList',
cover: '9-6', name: 'teacherConversionList',
router: { component: e => require(['@/components/conversionList/teacherConversionList'], e),
path: '/teacherConversionList', }
name: 'teacherConversionList', }, {
component: e => require(['@/components/conversionList/teacherConversionList'], e), value: '各期数班主任转化数据',
} routerName: 'teacherPeriodsConversionList',
}, path: '/teacherPeriodsConversionList',
{ cover: '9-7',
value: '各期数班主任转化数据', router: {
routerName: 'teacherPeriodsConversionList',
path: '/teacherPeriodsConversionList', path: '/teacherPeriodsConversionList',
cover: '9-7', name: 'teacherPeriodsConversionList',
router: { component: e => require(['@/components/conversionList/teacherPeriodsConversionList'], e),
path: '/teacherPeriodsConversionList', }
name: 'teacherPeriodsConversionList', }, {
component: e => require(['@/components/conversionList/teacherPeriodsConversionList'], e), value: '明细数据列表',
} routerName: 'channelTransList',
}, path: '/channelTransList',
{ cover: '9-1',
value: '明细数据列表', router: {
routerName: 'channelTransList',
path: '/channelTransList', path: '/channelTransList',
cover: '9-1', name: 'channelTransList',
router: { component: e => require(['@/components/conversionList/channelTransList'], e),
path: '/channelTransList', }
name: 'channelTransList',
component: e => require(['@/components/conversionList/channelTransList'], e),
}
}, },
]
]
}, {
name: '',
value: '实物管理',
icon: 'icon-shu',
list: [{
value: '单品列表',
routerName: 'single',
path: '/single',
cover: '6-1',
router: {
path: '/single',
name: 'single',
component: e => require(['@/components/single'], e),
}
}, { }, {
value: '盒子列表', name: '',
routerName: 'box', value: '实物管理',
path: '/box', icon: 'icon-shu',
cover: '6-2', list: [
router: { {
path: '/box', value: '单品列表',
name: 'box', routerName: 'single',
component: e => require(['@/components/box'], e), path: '/single',
} cover: '6-1',
},{ router: {
value: '待发货列表', path: '/single',
routerName: 'logistics', name: 'single',
path: '/logistics', component: e => require(['@/components/single'], e),
cover: '6-3', }
router: { }, {
path: '/logistics', value: '盒子列表',
name: 'logistics', routerName: 'box',
component: e => require(['@/components/logistics'], e), path: '/box',
} cover: '6-2',
},{ router: {
value: '一次性物流信息', path: '/box',
routerName: 'disposable', name: 'box',
path: '/disposable', component: e => require(['@/components/box'], e),
cover: '6-4', }
router: { }, {
path: '/disposable', value: '待发货列表',
name: 'disposable', routerName: 'logistics',
component: e => require(['@/components/disposable'], e), path: '/logistics',
} cover: '6-3',
}] router: {
}, { path: '/logistics',
name: '', name: 'logistics',
value: '公众号', component: e => require(['@/components/logistics'], e),
icon: 'icon-ai-weixin', }
list: [{ }, {
value: '自动回复', value: '一次性物流信息',
routerName: 'focusReply', routerName: 'disposable',
path: '/focusReply', path: '/disposable',
cover: '7-1', cover: '6-4',
router: { router: {
path: '/focusReply', path: '/disposable',
name: 'focusReply', name: 'disposable',
component: e => require(['@/components/weChat/focusReply'], e), component: e => require(['@/components/disposable'], e),
} }
}, }
{ ]
value: '关键词回复',
routerName: 'autoReply',
path: '/autoReply',
cover: '7-2',
router: {
path: '/autoReply',
name: 'autoReply',
component: e => require(['@/components/weChat/autoReply'], e),
}
},
{
value: '公众号菜单',
routerName: 'weChat',
path: '/weChat',
cover: '7-3',
router: {
path: '/weChat',
name: 'weChat',
component: e => require(['@/components/weChat'], e),
}
},
{
value: '素材管理',
routerName: 'weChatResource',
path: '/weChatResource',
cover: '7-4',
router: {
path: '/weChatResource',
name: 'weChatResource',
component: e => require(['@/components/weChat/weChatResource'], e),
}
},
{
value: '二维码管理',
routerName: 'qrcode',
path: '/qrcode',
cover: '7-6',
router: {
path: '/qrcode',
name: 'qrcode',
component: e => require(['@/components/qrcode'], e),
}
},
{
value: '群发助手',
routerName: 'groupSend',
path: '/groupSend',
cover: '7-7',
router: {
path: '/groupSend',
name: 'groupSend',
component: e => require(['@/components/groupSend'], e),
}
},
{
value: '关注取关统计',
routerName: 'watchCount',
path: '/watchCount',
cover: '7-8',
router: {
path: '/watchCount',
name: 'watchCount',
component: e => require(['@/components/watchCount'], e),
}
},
{
value: '微信统计',
routerName: 'weChatStatistics',
path: '/weChatStatistics',
cover: '7-10',
router: {
path: '/weChatStatistics',
name: 'weChatStatistics',
component: e => require(['@/components/weChatStatistics'], e),
}
},
{
value: '测试',
routerName: 'test',
path: '/test',
cover: '7-11',
router: {
path: '/test',
name: 'test',
component: e => require(['@/components/weChat/test'], e),
}
},
]
},
{
name: '',
value: '系统管理',
icon: 'icon-xitongquanxian',
list: [{
value: '首页管理',
routerName: 'banner',
path: '/banner',
cover: '10-5',
router: {
path: '/banner',
name: 'banner',
component: e => require(['@/components/system/banner'], e),
},
}, { }, {
value: '外部投放管理', name: '',
routerName: 'externalLaunch', value: '公众号',
path: '/externalLaunch', icon: 'icon-ai-weixin',
cover: '10-6', list: [
router: { {
path: '/externalLaunch', value: '自动回复',
name: 'externalLaunch', routerName: 'focusReply',
component: e => require(['@/components/externalLaunch'], e), path: '/focusReply',
} cover: '7-1',
}, router: {
{ path: '/focusReply',
value: '来源码管理', name: 'focusReply',
routerName: 'sourceManage', component: e => require(['@/components/weChat/focusReply'], e),
path: '/sourceManage', }
cover: '10-1', }, {
router: { value: '关键词回复',
path: '/sourceManage', routerName: 'autoReply',
name: 'sourceManage', path: '/autoReply',
component: e => require(['@/components/sourceManage'], e), cover: '7-2',
} router: {
}, path: '/autoReply',
{ name: 'autoReply',
value: '短信发送记录', component: e => require(['@/components/weChat/autoReply'], e),
routerName: 'smsRecord', }
path: '/smsRecord', }, {
cover: '10-2', value: '公众号菜单',
router: { routerName: 'weChat',
path: '/smsRecord', path: '/weChat',
name: 'smsRecord', cover: '7-3',
component: e => require(['@/components/smsRecord'], e), router: {
} path: '/weChat',
}, name: 'weChat',
{ component: e => require(['@/components/weChat'], e),
value: '设备监管记录', }
routerName: 'staffRecord', }, {
path: '/staffRecord', value: '素材管理',
cover: '10-7', routerName: 'weChatResource',
router: { path: '/weChatResource',
cover: '7-4',
router: {
path: '/weChatResource',
name: 'weChatResource',
component: e => require(['@/components/weChat/weChatResource'], e),
}
}, {
value: '二维码管理',
routerName: 'qrcode',
path: '/qrcode',
cover: '7-6',
router: {
path: '/qrcode',
name: 'qrcode',
component: e => require(['@/components/qrcode'], e),
}
}, {
value: '群发助手',
routerName: 'groupSend',
path: '/groupSend',
cover: '7-7',
router: {
path: '/groupSend',
name: 'groupSend',
component: e => require(['@/components/groupSend'], e),
}
}, {
value: '关注取关统计',
routerName: 'watchCount',
path: '/watchCount',
cover: '7-8',
router: {
path: '/watchCount',
name: 'watchCount',
component: e => require(['@/components/watchCount'], e),
}
}, {
value: '微信统计',
routerName: 'weChatStatistics',
path: '/weChatStatistics',
cover: '7-10',
router: {
path: '/weChatStatistics',
name: 'weChatStatistics',
component: e => require(['@/components/weChatStatistics'], e),
}
}, {
value: '测试',
routerName: 'test',
path: '/test',
cover: '7-11',
router: {
path: '/test',
name: 'test',
component: e => require(['@/components/weChat/test'], e),
}
},
]
}, {
name: '',
value: '系统管理',
icon: 'icon-xitongquanxian',
list: [
{
value: '首页管理',
routerName: 'banner',
path: '/banner',
cover: '10-5',
router: {
path: '/banner',
name: 'banner',
component: e => require(['@/components/system/banner'], e),
},
}, {
value: '外部投放管理',
routerName: 'externalLaunch',
path: '/externalLaunch',
cover: '10-6',
router: {
path: '/externalLaunch',
name: 'externalLaunch',
component: e => require(['@/components/externalLaunch'], e),
}
}, {
value: '来源码管理',
routerName: 'sourceManage',
path: '/sourceManage',
cover: '10-1',
router: {
path: '/sourceManage',
name: 'sourceManage',
component: e => require(['@/components/sourceManage'], e),
}
}, {
value: '短信发送记录',
routerName: 'smsRecord',
path: '/smsRecord',
cover: '10-2',
router: {
path: '/smsRecord',
name: 'smsRecord',
component: e => require(['@/components/smsRecord'], e),
}
}, {
value: '设备监管记录',
routerName: 'staffRecord',
path: '/staffRecord', path: '/staffRecord',
name: 'staffRecord', cover: '10-7',
component: e => require(['@/components/system/staffRecord'], e), router: {
} path: '/staffRecord',
}, name: 'staffRecord',
{ component: e => require(['@/components/system/staffRecord'], e),
value: '标签管理', }
routerName: 'tag', }, {
path: '/tag', value: '标签管理',
cover: '10-8', routerName: 'tag',
router: {
path: '/tag', path: '/tag',
name: 'tag', cover: '10-8',
component: e => require(['@/components/system/tag'], e), router: {
} path: '/tag',
}, name: 'tag',
{ component: e => require(['@/components/system/tag'], e),
value: '员工管理', }
routerName: 'staff', }, {
path: '/staff', value: '员工管理',
cover: '10-4', routerName: 'staff',
router: {
path: '/staff', path: '/staff',
name: 'staff', cover: '10-4',
component: e => require(['@/components/system/staff'], e), router: {
} path: '/staff',
}, name: 'staff',
{ component: e => require(['@/components/system/staff'], e),
value: '系统配置', }
routerName: 'config', }, {
path: '/config', value: '系统配置',
cover: '10-3', routerName: 'config',
router: { path: '/config',
path: '/config', cover: '10-3',
name: 'config', router: {
component: e => require(['@/components/config'], e), path: '/config',
} name: 'config',
}, component: e => require(['@/components/config'], e),
] }
}, },
]
{
name: '',
value: '后台管理',
icon: 'icon-shezhi',
list: [{
value: '账号管理',
routerName: 'admin',
path: '/admin',
cover: '8-1',
router: {
path: '/admin',
name: 'admin',
component: e => require(['@/components/system/admin'], e),
}
}, {
value: '角色管理',
routerName: 'role',
path: '/role',
cover: '8-2',
router: {
path: '/role',
name: 'role',
component: e => require(['@/components/system/role'], e),
}
}, {
value: '菜单管理',
routerName: 'menu',
path: '/menu',
cover: '8-3',
router: {
path: '/menu',
name: 'menu',
component: e => require(['@/components/system/menu'], e),
}
}, { }, {
value: '系统配置', name: '',
routerName: 'sysConfig', value: '后台管理',
path: '/sysConfig', icon: 'icon-shezhi',
cover: '8-4', list: [
router: { {
path: '/sysConfig', value: '账号管理',
name: 'sysConfig', routerName: 'admin',
component: e => require(['@/components/system/sysConfig'], e), path: '/admin',
} cover: '8-1',
router: {
}, path: '/admin',
name: 'admin',
{ component: e => require(['@/components/system/admin'], e),
value: '操作日志', }
routerName: 'adminLog', }, {
path: '/adminLog', value: '角色管理',
cover: '8-5', routerName: 'role',
router: { path: '/role',
path: '/adminLog', cover: '8-2',
name: 'adminLog', router: {
component: e => require(['@/components/system/adminLog'], e), path: '/role',
} name: 'role',
component: e => require(['@/components/system/role'], e),
}
}, {
value: '菜单管理',
routerName: 'menu',
path: '/menu',
cover: '8-3',
router: {
path: '/menu',
name: 'menu',
component: e => require(['@/components/system/menu'], e),
}
}, {
value: '系统配置',
routerName: 'sysConfig',
path: '/sysConfig',
cover: '8-4',
router: {
path: '/sysConfig',
name: 'sysConfig',
component: e => require(['@/components/system/sysConfig'], e),
}
}, {
value: '操作日志',
routerName: 'adminLog',
path: '/adminLog',
cover: '8-5',
router: {
path: '/adminLog',
name: 'adminLog',
component: e => require(['@/components/system/adminLog'], e),
}
}
]
} }
]
}
] ]
// { // {
// name: '', // name: '',
......
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