Commit dd6db7f3 authored by liwei's avatar liwei

liwei

parent 06e3b7e5
<template> <template>
<div id="app"> <div id="app">
<router-view/> <router-view />
</div> </div>
</template> </template>
<script> <script>
import menu from './util/menuList' import menu from "./util/menuList";
export default { export default {
name: 'App', name: "App",
data(){ data() {
return { return {};
}
}, },
mounted(){ mounted() {
// 权限验证 动态路由 // 权限验证 动态路由
if(window.location.href.indexOf('login') < 0){ if (window.location.href.indexOf("login") < 0) {
let permission = this.$store.state.progressList; let permission = this.$store.state.progressList;
console.log(this.$store.state) console.log(this.$store.state);
let menuList = []; let menuList = [];
this.$router.options.routes[0].children = []; this.$router.options.routes[0].children = [];
let routerUserDetail = { let routerUserDetail = {
path: '/userDetail/:id', path: "/userDetail/:id",
name:'userDetail', name: "userDetail",
component: e=>require(['@/components/userDetail'],e), component: e => require(["@/components/userDetail"], e)
}; };
let routerTeacherDetail ={ let routerTeacherDetail = {
path: '/teacher/:id', path: "/teacher/:id",
name:'teacherDetail', name: "teacherDetail",
component: e=>require(['@/components/teacherDetail'],e), component: e => require(["@/components/teacherDetail"], e)
}; };
menu.forEach(i=>{ menu.forEach(i => {
let p = false; let p = false;
let t = []; let t = [];
i.list.forEach(j=>{ i.list.forEach(j => {
let find = permission.find(x=>{return x.cover === j.cover}); let find = permission.find(x => {
if(find){ return x.cover === j.cover;
});
if (find) {
j.router.meta = {}; j.router.meta = {};
j.router.meta.readonly = !!find.readonly; j.router.meta.readonly = !!find.readonly;
j.router.meta.delete = !!find.delete; j.router.meta.delete = !!find.delete;
...@@ -47,13 +47,13 @@ export default { ...@@ -47,13 +47,13 @@ export default {
j.router.meta.classTakeUnlimited = !!find.classTakeUnlimited; j.router.meta.classTakeUnlimited = !!find.classTakeUnlimited;
j.router.meta.promoter = !!find.promoter; j.router.meta.promoter = !!find.promoter;
t.push(j); t.push(j);
if(find.cover === '3-1'){ if (find.cover === "3-1") {
routerTeacherDetail.meta = {}; routerTeacherDetail.meta = {};
routerTeacherDetail.meta.readonly = find.readonly; routerTeacherDetail.meta.readonly = find.readonly;
routerTeacherDetail.meta.delete = !!find.delete; routerTeacherDetail.meta.delete = !!find.delete;
this.$router.options.routes[0].children.push(routerTeacherDetail); this.$router.options.routes[0].children.push(routerTeacherDetail);
} }
if(find.cover === '3-2'){ if (find.cover === "3-2") {
routerUserDetail.meta = {}; routerUserDetail.meta = {};
routerUserDetail.meta.readonly = find.readonly; routerUserDetail.meta.readonly = find.readonly;
routerUserDetail.meta.delete = !!find.delete; routerUserDetail.meta.delete = !!find.delete;
...@@ -63,28 +63,32 @@ export default { ...@@ -63,28 +63,32 @@ export default {
p = true; p = true;
} }
}); });
if(p){ if (p) {
i.list = t; i.list = t;
menuList.push(i) menuList.push(i);
} }
}); });
this.$router.addRoutes([this.$router.options.routes[0]]);//调用add; this.$router.addRoutes([this.$router.options.routes[0]]); //调用add;
this.$store.dispatch('setMenu',menuList) this.$store.dispatch("setMenu", menuList);
} }
} }
} };
</script> </script>
<style> <style>
#app { #app {
height: 100%; height: 100%;
} }
html,body{ html,
height: 100%; body {
margin: 0; height: 100%;
padding: 0; margin: 0;
} padding: 0;
.el-collapse-item__arrow{margin-left: 0;} }
.fl{float: left;} .el-collapse-item__arrow {
margin-left: 0;
}
.fl {
float: left;
}
</style> </style>
<template>
<div class="channel-trans-list">
<div
class="no-data"
v-if="list.length == 0"
style="background:#fff;textAlign: center;color: #909399;padding: 10px 0;"
>暂无数据</div>
<el-form ref="searchFrom" :model="searchFrom" label-width="100px" inline v-if="list.length > 0">
<el-form-item label="进量日期">
<el-date-picker
v-model="searchFrom.payTime"
type="datetimerange"
range-separator="至"
value-format="yyyy-MM-dd HH:mm:ss"
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="{shortcuts:[today,yesterday,last7Day,last30Day]}"
:default-time="['00:00:00','23:59:59']"
@change="getChannelTransList"
></el-date-picker>
</el-form-item>
<el-form-item label="商品课时数">
<!-- <el-input v-model="searchFrom.watch_num" style="width: 80px"></el-input> -->
<el-select
v-model="searchFrom.watch_num"
filterable
placeholder="请选择"
style="width: 150px"
@change="selectChange"
>
<el-option value label="请选择"></el-option>
<el-option
v-for="(data,index) in watchList"
:key="index"
:label="data.title"
:value="data.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="渠道类型">
<el-input v-model="searchFrom.invite_type" style="width: 110px"></el-input>
</el-form-item>
<el-form-item label="期数名称">
<el-cascader
:options="goodsList"
:props="{value:'id',label:'name'}"
@active-item-change="handleItemChange"
@change="changePeriods"
v-model="selectedGoods"
></el-cascader>
</el-form-item>
<el-form-item label="组ID">
<el-input v-model="searchFrom.squad" style="width: 120px"></el-input>
</el-form-item>
<el-form-item label="老师">
<el-select
v-model="searchFrom.teacher_id"
filterable
placeholder="请选择"
@change="changeTeacher"
clearable
style="width: 100px"
>
<el-option label="暂不分配" value="0"></el-option>
<el-option
v-for="(data,index) in teacherList"
:key="index"
:label="data.name"
:value="data.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="flexRow">
<el-button type="primary" plain @click="getChannelTransList">搜索</el-button>
</div>
</el-form-item>
</el-form>
<el-table
v-if="list.length > 0"
:data="list"
:style="{width: width+'px'}"
:default-sort="{prop: 'cur_date', order: 'descending'}"
>
<el-table-column prop="cur_date" label="支付日期" sortable></el-table-column>
<el-table-column prop="invite_type" label="渠道类型" sortable></el-table-column>
<el-table-column prop="teacher_name" label="老师名称"></el-table-column>
<el-table-column prop="periods_id" label="期数ID"></el-table-column>
<el-table-column prop="squad" label="组ID"></el-table-column>
<el-table-column prop="watch_num" label="商品课时数"></el-table-column>
<el-table-column prop="class_num" label="班级人数"></el-table-column>
<el-table-column prop="come_num" label="到课人数"></el-table-column>
<el-table-column prop="one_buy_num" label="年课购买人数"></el-table-column>
<el-table-column prop="one_buy_money" label="一年课转化金额"></el-table-column>
<el-table-column prop="two_buy_money" label="两年课转化金额"></el-table-column>
</el-table>
<page
v-if="list.length > 0"
:nowPage="nowPage"
:total="total"
:limit="limit"
@pageChange="onPageChange"
@sizeChange="onSizeChange"
/>
</div>
</template>
<script>
import {
getTeacherListApi,
getchannelTransListApi,
getPeriodsApi,
getGoodsListApi
} from "../../service/api";
import page from "../framework/page";
import { GOODSTYPE, CLASSSOURCE } from "../../util/wordbook";
export default {
name: "channelTransList",
data() {
return {
width: 0,
nowPage: 1,
total: 0,
limit: 10,
list: [],
goods_id: null,
teacherList: [],
goodsList: [],
total: 0,
today: {
text: "今天",
onClick: () => {
this.searchFrom.payTime = [
this.formatTime(new Date()) + " 00:00:00",
this.formatTime(new Date()) + " 23:59:59"
];
}
},
yesterday: {
text: "昨天",
onClick: () => {
let preDate = this.formatTime(
new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
);
this.searchFrom.payTime = [
preDate + " 00:00:00",
preDate + " 23:59:59"
];
}
},
last30Day: {
text: "过去30天",
onClick: () => {
let preDate = this.formatTime(
new Date(new Date().getTime() - 30 * 24 * 60 * 60 * 1000)
);
this.searchFrom.payTime = [
preDate + " 00:00:00",
this.formatTime(new Date()) + " 23:59:59"
];
}
},
last7Day: {
text: "过去7天",
onClick: () => {
let preDate = this.formatTime(
new Date(new Date().getTime() - 7 * 24 * 60 * 60 * 1000)
);
this.searchFrom.payTime = [
preDate + " 00:00:00",
this.formatTime(new Date()) + " 23:59:59"
];
}
},
searchFrom: {
payTime: [],
start_at: "",
end_at: "",
invite_type: "",
invite_name: "",
watch_num: "",
periods_id: "",
squad: "",
teacher_id: ""
},
watchList: [
{ id: 0, title: 5 },
{ id: 1, title: 6 },
{ id: 2, title: 10 },
{ id: 3, title: 20 }
]
};
},
components: { page },
methods: {
handleItemChange(val) {
getPeriodsApi({ goods_id: val[0], limit: 100 }).then(res => {
res.list.forEach(i => {
i.name = i.title;
});
this.goodsList.find(i => {
return i.id === val[0];
}).children = res.list;
});
},
changePeriods(data) {
if (data.length > 1) {
this.goods_id = data[0];
let nowGoods = this.goodsList.find(i => {
return i.id === data[0];
});
this.periods = nowGoods.children.find(i => {
return i.id === data[1];
});
this.searchFrom.periods_id = this.periods.id;
this.getChannelTransList();
}
},
changeTeacher(value) {
this.searchFrom.teacher_id = value;
this.getChannelTransList();
},
selectChange(value) {
this.searchFrom.watch_num = this.watchList[value].title;
this.getChannelTransList();
},
formatTime(date) {
let year = date.getFullYear();
let Month = date.getMonth() + 1;
if (Month < 10) {
Month = `0${Month}`;
}
let Day = date.getDate();
if (Day < 10) Day = `0${Day}`;
return `${year}-${Month}-${Day}`;
},
onPageChange(val) {
this.nowPage = val;
this.getChannelTransList();
},
onSizeChange(val) {
this.nowPage = 1;
this.limit = val;
this.getChannelTransList();
},
getTeacherList() {
let json = {
page: 1,
limit: 200
};
getTeacherListApi(json).then(res => {
this.teacherList = res.list;
});
},
getGoodsList() {
let json = {
page: 1,
limit: 100,
goods_type: "1,2"
};
getGoodsListApi(json).then(res => {
res.list.forEach(i => {
i.name =
"[" +
i.id +
"]" +
"[" +
GOODSTYPE[i.goods_type] +
"]" +
"[" +
i.current_price / 100 +
"元]" +
i.name;
i.children = [];
});
this.goodsList = res.list;
});
},
getChannelTransList() {
let json = {
limit: this.limit,
page: this.nowPage
};
// 搜索筛选
if (this.searchFrom.invite_type) {
json.invite_type = this.searchFrom.invite_type;
}
if (this.searchFrom.squad) {
json.squad = this.searchFrom.squad;
}
if (this.searchFrom.watch_num) {
json.watch_num = this.searchFrom.watch_num;
}
if (this.searchFrom.periods_id) {
json.periods_id = this.searchFrom.periods_id;
}
if (this.searchFrom.teacher_id) {
json.teacher_id = this.searchFrom.teacher_id;
}
if (this.searchFrom.payTime.length > 0) {
if (
this.searchFrom.payTime[0] &&
this.searchFrom.payTime[0].length > 0
) {
this.searchFrom.start_at = this.searchFrom.payTime[0];
json.start_at = this.searchFrom.start_at;
}
if (
this.searchFrom.payTime[1] &&
this.searchFrom.payTime[1].length > 0
) {
this.searchFrom.end_at = this.searchFrom.payTime[1];
json.end_at = this.searchFrom.end_at;
}
}
getchannelTransListApi(json).then(res => {
if (res) {
this.total = res.total;
if (res.list && res.list.length > 0) {
this.list = res.list.map(item => {
item.squad = "T" + item.squad;
let name =
item.invite_name && item.invite_name.length > 0
? `(${item.invite_name})`
: "";
item.invite_type = `${item.invite_type}${name}`;
return item;
});
this.width = document.documentElement.clientWidth - 200;
} else {
this.list = [];
}
} else {
this.list = [];
}
});
}
},
mounted() {
this.getChannelTransList();
this.getTeacherList();
// this.getPeriodsList();
this.getGoodsList();
}
};
</script>
<style lang="less" scoped>
.channel-trans-list {
padding: 20px 0;
}
</style>
...@@ -9,23 +9,26 @@ ...@@ -9,23 +9,26 @@
@active-item-change="handleItemChange" @active-item-change="handleItemChange"
@change="changePeriods" @change="changePeriods"
v-model="selectedGoods" v-model="selectedGoods"
> ></el-cascader>
</el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="老师"> <el-form-item label="老师">
<el-select filterable v-model="teacher_id" placeholder="请选择" @change="getClassList" clearable> <el-select
filterable
v-model="teacher_id"
placeholder="请选择"
@change="getClassList"
clearable
>
<el-option <el-option
v-for="(data,index) in teacherList" v-for="(data,index) in teacherList"
:key="index" :key="index"
:label="data.teacher_name" :label="data.teacher_name"
:value="data.teacher_id"> :value="data.teacher_id"
</el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label=""> <el-form-item label>
<el-button type="primary" @click="getClassList"> <el-button type="primary" @click="getClassList">搜索</el-button>
搜索
</el-button>
</el-form-item> </el-form-item>
<el-form-item style="float: right"> <el-form-item style="float: right">
<el-button @click="onAdd" type="success" v-if="!$store.state.readonly">+添加班级</el-button> <el-button @click="onAdd" type="success" v-if="!$store.state.readonly">+添加班级</el-button>
...@@ -33,42 +36,20 @@ ...@@ -33,42 +36,20 @@
</el-form> </el-form>
</div> </div>
<div v-if="title && title.title " class="intro"> <div v-if="title && title.title " class="intro">
<el-table border <el-table
size="mini" border
style="display: block;margin: 20px auto;background: transparent" size="mini"
:data="[title]"> style="display: block;margin: 20px auto;background: transparent"
<el-table-column :data="[title]"
label="期数名称" >
prop="title"> <el-table-column label="期数名称" prop="title"></el-table-column>
</el-table-column> <el-table-column label="可看课包数" prop="watch_num"></el-table-column>
<el-table-column <el-table-column label="已看课包数" prop="has_watch_num"></el-table-column>
label="可看课包数" <el-table-column label="开始时间" prop="start_at"></el-table-column>
prop="watch_num"> <el-table-column label="老师数量" prop="count_teacher_num"></el-table-column>
</el-table-column> <el-table-column label="预计学员总数" prop="count_max_join_num"></el-table-column>
<el-table-column <el-table-column label="学员总数" prop="count_join_num"></el-table-column>
label="已看课包数" <el-table-column label="结束时间" prop="over_at"></el-table-column>
prop="has_watch_num">
</el-table-column>
<el-table-column
label="开始时间"
prop="start_at">
</el-table-column>
<el-table-column
label="老师数量"
prop="count_teacher_num">
</el-table-column>
<el-table-column
label="预计学员总数"
prop="count_max_join_num">
</el-table-column>
<el-table-column
label="学员总数"
prop="count_join_num">
</el-table-column>
<el-table-column
label="结束时间"
prop="over_at">
</el-table-column>
</el-table> </el-table>
</div> </div>
<div v-if="!title || !title.title"> <div v-if="!title || !title.title">
...@@ -77,410 +58,445 @@ ...@@ -77,410 +58,445 @@
</el-form> </el-form>
</div> </div>
<div> <div>
<el-table <el-table @expand-change="changeRow" :data="classList" style="width: 100%">
@expand-change="changeRow"
:data="classList"
style="width: 100%">
<el-table-column type="expand"> <el-table-column type="expand">
<template slot-scope="scope"> <template slot-scope="scope">
<el-table <el-table :data="[scope.row]" style="width: 100%">
:data="[scope.row]" <el-table-column label="到课率">
style="width: 100%">
<el-table-column
label="到课率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.arrive_course_rate | percent}}</span> <span>{{ scope2.row.arrive_course_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="看课率">
label="看课率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.watch_course_rate | percent}}</span> <span>{{ scope2.row.watch_course_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="完课率">
label="完课率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.over_course_rate | percent}}</span> <span>{{ scope2.row.over_course_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="打卡率">
label="打卡率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.clock_rate | percent}}</span> <span>{{ scope2.row.clock_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="全勤打卡率">
label="全勤打卡率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.over_clock_rate | percent}}</span> <span>{{ scope2.row.over_clock_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="转化率">
label="转化率">
<template slot-scope="scope2"> <template slot-scope="scope2">
<span>{{ scope2.row.transform_rate | percent}}</span> <span>{{ scope2.row.transform_rate | percent}}</span>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="班级名称">
label="班级名称"> <template slot-scope="scope">{{scope.row.class_name}}</template>
<template slot-scope="scope">
{{scope.row.class_name}}
</template>
</el-table-column>
<el-table-column
prop="qr"
label="班级二维码">
<template slot-scope="scope">
<a :href="scope.row.qr" v-if="scope.row.qr" target="_blank">
<img class="avatar" :src="scope.row.qr" alt="二维码">
</a>
<p v-if="!scope.row.qr">--</p>
</template>
</el-table-column>
<el-table-column
prop="teacher_name"
label="班主任">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="qr" label="班级二维码">
label="老师状态">
<template slot-scope="scope"> <template slot-scope="scope">
{{scope.row.teacher_status === 0 ? '带班' : '不带班'}} <a :href="scope.row.qr" v-if="scope.row.qr" target="_blank">
<img class="avatar" :src="scope.row.qr" alt="二维码" />
</a>
<p v-if="!scope.row.qr">--</p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="teacher_name" label="班主任"></el-table-column>
label="班级类型"> <el-table-column label="老师状态">
<template slot-scope="scope"> <template slot-scope="scope">{{scope.row.teacher_status === 0 ? '带班' : '不带班'}}</template>
{{scope.row.type | classTypeFilter}}
</template>
</el-table-column>
<el-table-column
prop="max_join_num"
label="最大人数">
</el-table-column> </el-table-column>
<el-table-column <el-table-column label="班级类型">
prop="join_num" <template slot-scope="scope">{{scope.row.type | classTypeFilter}}</template>
label="现有人数">
</el-table-column> </el-table-column>
<el-table-column <el-table-column prop="max_join_num" label="最大人数"></el-table-column>
prop="source" <el-table-column prop="join_num" label="现有人数"></el-table-column>
label="招生来源"> <el-table-column prop="source" label="招生来源">
<template slot-scope="scope"> <template slot-scope="scope">{{scope.row.source | classSourceFilter}}</template>
{{scope.row.source | classSourceFilter}}
</template>
</el-table-column> </el-table-column>
<el-table-column <el-table-column width="250" label="操作">
width="250"
label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button @click="showUser(scope.row)" size="mini" type="primary">班级成员</el-button> <el-button @click="showUser(scope.row)" size="mini" type="primary">班级成员</el-button>
<el-button @click="editClass(scope.row)" size="mini" v-if="!$store.state.readonly" type="warning">编辑</el-button> <el-button
<el-button @click="delClass(scope.row)" size="mini" v-if="$store.state.deletePermission && !$store.state.readonly" type="danger">删除</el-button> @click="editClass(scope.row)"
size="mini"
v-if="!$store.state.readonly"
type="warning"
>编辑</el-button>
<el-button
@click="delClass(scope.row)"
size="mini"
v-if="$store.state.deletePermission && !$store.state.readonly"
type="danger"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
<page :nowPage="nowPage" :total="total" :limit="limit" @pageChange="onPageChange" @sizeChange="onSizeChange"/> <page
:nowPage="nowPage"
:total="total"
:limit="limit"
@pageChange="onPageChange"
@sizeChange="onSizeChange"
/>
<class-dialog :dialogObj="dialogObj" @reflash="onReflash"></class-dialog> <class-dialog :dialogObj="dialogObj" @reflash="onReflash"></class-dialog>
<user-list :userObj="userObj" @reflash="getClassList"/> <user-list :userObj="userObj" @reflash="getClassList" />
</div> </div>
</template> </template>
<script> <script>
import {getGoodsListApi,getPeriodsApi,getClassListApi,getPeriodsTeacherApi,delClassApi,getClassStatisticsApi,getDefaultPeriodsApi,postActiveNoticeApi} from "../../service/api"; import {
import classDialog from './dialog' getGoodsListApi,
import {GOODSTYPE,CLASSSOURCE} from '../../util/wordbook'; getPeriodsApi,
import UserList from './userList' getClassListApi,
import page from '../framework/page' getPeriodsTeacherApi,
export default { delClassApi,
data(){ getClassStatisticsApi,
return { getDefaultPeriodsApi,
noticeDialog:false, postActiveNoticeApi
nowPage: 1, } from "../../service/api";
total: 0, import classDialog from "./dialog";
limit: 10, import { GOODSTYPE, CLASSSOURCE } from "../../util/wordbook";
periodsId:null, import UserList from "./userList";
goods_id:null, import page from "../framework/page";
goodsList:[], export default {
teacher_id:'', data() {
classList:[], return {
title:'', noticeDialog: false,
countObj: '', nowPage: 1,
teacherList:[], total: 0,
userObj:{ limit: 10,
classId:'', periodsId: null,
title:'', goods_id: null,
show:false, goodsList: [],
goods_id:null teacher_id: "",
}, classList: [],
dialogObj:{ title: "",
show:false, countObj: "",
title:'添加班级', teacherList: [],
periodsId:'', userObj: {
type:0, classId: "",
id:0 title: "",
}, show: false,
selectedGoods: [], goods_id: null
secGoods:[], },
dialogObj: {
show: false,
title: "添加班级",
periodsId: "",
type: 0,
id: 0
},
selectedGoods: [],
secGoods: []
};
},
components: {
UserList,
classDialog,
page
},
filters: {
classTypeFilter(val) {
let _val = parseInt(val);
if (_val === 1) {
return "带班班级";
} else if (_val === 2) {
return "观摩班级";
} else {
return "";
} }
}, },
components:{ classSourceFilter(val) {
UserList, return CLASSSOURCE[val];
classDialog,
page
}, },
filters: { percent(val) {
classTypeFilter(val){ return (val * 100).toFixed(2) + "%";
let _val = parseInt(val); }
if (_val === 1) { },
return '带班班级' mounted() {
} else if (_val === 2) { this.initPage();
return '观摩班级' },
} else { methods: {
return '' changeRow(data, b) {
} if (b.indexOf(data) > -1) {
}, getClassStatisticsApi(data.periods_id, data.id).then(res => {
classSourceFilter(val){ data.arrive_course_rate = res.arrive_course_rate;
return CLASSSOURCE[val] data.watch_course_rate = res.watch_course_rate;
}, data.over_course_rate = res.over_course_rate;
percent(val){ data.work_rate = res.work_rate;
return (val * 100).toFixed(2)+'%' data.over_work_rate = res.over_work_rate;
data.clock_rate = res.clock_rate;
data.over_clock_rate = res.over_clock_rate;
data.transform_rate = res.transform_rate;
});
}
},
initQuery() {
let _query = this.$route.query;
if (_query && _query.goods_id && _query.periods_id) {
this.goods_id = _query.goods_id;
this.selectedGoods = [
parseInt(_query.goods_id),
parseInt(_query.periods_id)
];
getPeriodsApi({ goods_id: this.selectedGoods[0], limit: 100 }).then(
res => {
res.list.forEach(i => {
i.name = i.title;
});
this.goodsList.find(i => {
return i.id === this.selectedGoods[0];
}).children = res.list;
let nowGoods = this.goodsList.find(i => {
return i.id === this.selectedGoods[0];
});
this.periods = nowGoods.children.find(i => {
return i.id === this.selectedGoods[1];
});
console.log(this.periods);
this.teacher_id = "";
this.getClassList();
}
);
} else {
getDefaultPeriodsApi().then(res => {
console.log(res);
//
if (res) {
this.goods_id = res.goods_id;
this.selectedGoods = [parseInt(res.goods_id), parseInt(res.id)];
getPeriodsApi({ goods_id: this.selectedGoods[0], limit: 100 }).then(
res => {
res.list.forEach(i => {
i.name = i.title;
});
this.goodsList.find(i => {
return i.id === this.selectedGoods[0];
}).children = res.list;
let nowGoods = this.goodsList.find(i => {
return i.id === this.selectedGoods[0];
});
this.periods = nowGoods.children.find(i => {
return i.id === this.selectedGoods[1];
});
this.teacher_id = "";
console.log(this.periods);
this.getClassList();
}
);
}
});
} }
console.log(this.goodsList);
}, },
mounted(){ initPage() {
this.initPage(); let json = {
page: 1,
limit: 100,
goods_type: "1,2"
};
getGoodsListApi(json).then(res => {
console.log(res);
res.list.forEach(i => {
i.name =
"[" +
i.id +
"]" +
"[" +
GOODSTYPE[i.goods_type] +
"]" +
"[" +
i.current_price / 100 +
"元]" +
i.name;
i.children = [];
});
this.goodsList = res.list;
this.initQuery();
});
}, },
methods:{ showUser(data) {
changeRow(data,b){ let classType = data.type == 1 ? "(带班班级)" : "(观摩班级)";
if(b.indexOf(data)>-1){ console.log(data);
getClassStatisticsApi(data.periods_id,data.id).then(res=>{ // debugger
data.arrive_course_rate = res.arrive_course_rate; this.userObj = {
data.watch_course_rate = res.watch_course_rate; classId: data.id,
data.over_course_rate = res.over_course_rate; periods_id: data.periods_id,
data.work_rate = res.work_rate; show: true,
data.over_work_rate = res.over_work_rate; goods_id: this.goods_id,
data.clock_rate = res.clock_rate; title: `${data.teacher_name}班级用户列表${classType}`,
data.over_clock_rate = res.over_clock_rate; teacherId: data.teacher_id,
data.transform_rate = res.transform_rate; class_name: data.class_name,
}) type: data.type,
} watch_num: this.title.watch_num
}, };
initQuery(){ console.log(this.userObj);
let _query = this.$route.query; },
if (_query && _query.goods_id && _query.periods_id) { getTeacher() {
this.goods_id = _query.goods_id; if (!this.periods) return;
this.selectedGoods = [parseInt(_query.goods_id),parseInt(_query.periods_id)]; getPeriodsTeacherApi(this.periods.id).then(res => {
getPeriodsApi({goods_id:this.selectedGoods[0],limit:100}).then(res=>{ let obj = {}; //班级老师去重
res.list.forEach(i=>{i.name = i.title}); res = res.reduce(function(item, next) {
this.goodsList.find(i=>{return i.id === this.selectedGoods[0]}).children = res.list obj[next.teacher_id]
let nowGoods = this.goodsList.find(i=>{return i.id === this.selectedGoods[0]}); ? ""
this.periods = nowGoods.children.find(i=>{return i.id === this.selectedGoods[1]}); : (obj[next.teacher_id] = true && item.push(next));
console.log(this.periods) return item;
this.teacher_id = ''; }, []);
this.getClassList() this.teacherList = res;
}) });
} else { },
changePeriods(data) {
getDefaultPeriodsApi().then(res=>{ if (data.length > 1) {
console.log(res) this.goods_id = data[0];
// let nowGoods = this.goodsList.find(i => {
if(res){ return i.id === data[0];
this.goods_id = res.goods_id;
this.selectedGoods = [parseInt(res.goods_id),parseInt(res.id)];
getPeriodsApi({goods_id:this.selectedGoods[0],limit:100}).then(res=>{
res.list.forEach(i=>{i.name = i.title});
this.goodsList.find(i=>{return i.id === this.selectedGoods[0]}).children = res.list
let nowGoods = this.goodsList.find(i=>{return i.id === this.selectedGoods[0]});
this.periods = nowGoods.children.find(i=>{return i.id === this.selectedGoods[1]});
this.teacher_id = '';
console.log(this.periods)
this.getClassList()
});
}
})
}
console.log(this.goodsList)
},
initPage(){
let json = {
page: 1,
limit: 100,
goods_type:'1,2'
};
getGoodsListApi(json).then(res=>{
console.log(res)
res.list.forEach(i=>{
i.name = '['+i.id+']'+'[' + GOODSTYPE[i.goods_type] + ']' + '[' +i.current_price / 100 + '元]' + i.name
i.children = [];
});
this.goodsList = res.list;
this.initQuery();
}); });
}, this.periods = nowGoods.children.find(i => {
showUser(data){ return i.id === data[1];
});
let classType = data.type==1?'(带班班级)':'(观摩班级)' console.log(this.goodsList);
console.log(data) console.log(this.periods);
// debugger // debugger
this.userObj={ this.teacher_id = "";
classId:data.id,
periods_id:data.periods_id,
show:true,
goods_id:this.goods_id,
title:`${data.teacher_name}班级用户列表${classType}`,
teacherId: data.teacher_id,
class_name:data.class_name,
type:data.type,
watch_num:this.title.watch_num
}
console.log(this.userObj)
},
getTeacher(){
if (!this.periods) return;
getPeriodsTeacherApi(this.periods.id).then(res=>{
let obj = {}; //班级老师去重
res = res.reduce(function(item, next) {
obj[next.teacher_id] ? '' : obj[next.teacher_id] = true && item.push(next);
return item;
}, []);
this.teacherList = res
})
},
changePeriods(data){
if(data.length>1){
this.goods_id = data[0];
let nowGoods = this.goodsList.find(i=>{return i.id === data[0]});
this.periods = nowGoods.children.find(i=>{return i.id === data[1]});
console.log(this.goodsList)
console.log(this.periods)
// debugger
this.teacher_id = '';
this.getTeacher();
this.getClassList();
}
},
onPageChange(val){
this.nowPage = val;
this.getClassList();
},
onSizeChange(val){
this.limit = val;
this.nowPage = 1;
this.getClassList();
},
onReflash(periods){
this.periods = periods;
this.selectedGoods = [periods.goods_id, periods.id];
this.getClassList();
},
getClassList(){
if (!this.periods) return;
this.getTeacher(); this.getTeacher();
let json = { this.getClassList();
limit: this.limit, }
page: this.nowPage },
}; onPageChange(val) {
if (this.teacher_id) { this.nowPage = val;
json.teacher_id = this.teacher_id this.getClassList();
} },
console.log(this.periods) onSizeChange(val) {
getClassListApi(this.periods.id,json).then(res=>{ this.limit = val;
// debugger this.nowPage = 1;
res.list.forEach(data=>{ this.getClassList();
data.arrive_course_rate = 0; },
data.watch_course_rate = 0; onReflash(periods) {
data.over_course_rate = 0; this.periods = periods;
data.work_rate = 0; this.selectedGoods = [periods.goods_id, periods.id];
data.over_work_rate = 0; this.getClassList();
data.clock_rate = 0; },
data.over_clock_rate = 0; getClassList() {
data.transform_rate = 0; if (!this.periods) return;
}); this.getTeacher();
this.title = res.periods; let json = {
this.title.count_join_num = res.count.count_join_num ? res.count.count_join_num : '暂无'; limit: this.limit,
this.title.count_max_join_num = res.count.count_max_join_num ? res.count.count_max_join_num : '暂无'; page: this.nowPage
this.title.count_teacher_num = res.count.count_teacher_num ? res.count.count_teacher_num : '暂无'; };
this.countObj = res.count ? res.count : ''; if (this.teacher_id) {
this.classList = res.list; json.teacher_id = this.teacher_id;
this.total = res.total; }
}) console.log(this.periods);
}, getClassListApi(this.periods.id, json).then(res => {
handleItemChange(val){ // debugger
getPeriodsApi({goods_id:val[0],limit:100}).then(res=>{ res.list.forEach(data => {
res.list.forEach(i=>{i.name = i.title}); data.arrive_course_rate = 0;
this.goodsList.find(i=>{return i.id === val[0]}).children = res.list data.watch_course_rate = 0;
}) data.over_course_rate = 0;
}, data.work_rate = 0;
delClass(data){ data.over_work_rate = 0;
this.$confirm('此操作将删除该班级?', '提示', { data.clock_rate = 0;
confirmButtonText: '确定', data.over_clock_rate = 0;
cancelButtonText: '取消', data.transform_rate = 0;
type: 'warning' });
}).then(() => { this.title = res.periods;
delClassApi(data.id).then(res=>{ this.title.count_join_num = res.count.count_join_num
this.$message({ ? res.count.count_join_num
type: 'success', : "暂无";
message: '删除成功!' this.title.count_max_join_num = res.count.count_max_join_num
}); ? res.count.count_max_join_num
this.getClassList() : "暂无";
this.title.count_teacher_num = res.count.count_teacher_num
? res.count.count_teacher_num
: "暂无";
this.countObj = res.count ? res.count : "";
this.classList = res.list;
this.total = res.total;
});
},
handleItemChange(val) {
getPeriodsApi({ goods_id: val[0], limit: 100 }).then(res => {
res.list.forEach(i => {
i.name = i.title;
});
this.goodsList.find(i => {
return i.id === val[0];
}).children = res.list;
});
},
delClass(data) {
this.$confirm("此操作将删除该班级?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(() => {
delClassApi(data.id).then(res => {
this.$message({
type: "success",
message: "删除成功!"
}); });
this.getClassList();
}); });
}, });
onAdd(){ },
this.dialogObj = { onAdd() {
show:true, this.dialogObj = {
title:'添加班级', show: true,
type:0, title: "添加班级",
teacherList: this.teacherList ? this.teacherList: [] type: 0,
}; teacherList: this.teacherList ? this.teacherList : []
if (this.periods) { };
this.dialogObj.periods = this.periods; if (this.periods) {
this.dialogObj.periodsId = this.periods.id this.dialogObj.periods = this.periods;
} this.dialogObj.periodsId = this.periods.id;
}, }
editClass(data){ },
this.dialogObj = { editClass(data) {
show:true, this.dialogObj = {
title:'编辑班级', show: true,
type:1, title: "编辑班级",
id:data.id, type: 1,
teacherList: this.teacherList ? this.teacherList: [] id: data.id,
}; teacherList: this.teacherList ? this.teacherList : []
if (this.periods) { };
this.dialogObj.periods = this.periods; if (this.periods) {
this.dialogObj.periodsId = this.periods.id this.dialogObj.periods = this.periods;
} this.dialogObj.periodsId = this.periods.id;
} }
} }
} }
};
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.class{ .class {
padding: 20px 0; padding: 20px 0;
} }
.intro .el-form-item{ .intro .el-form-item {
margin-bottom: 0; margin-bottom: 0;
} }
.avatar{width: 70px;} .avatar {
width: 70px;
}
</style> </style>
<style> <style>
.demo-table-expand { .demo-table-expand {
font-size: 0; font-size: 0;
} }
.demo-table-expand label { .demo-table-expand label {
width: 90px; width: 90px;
color: #99a9bf; color: #99a9bf;
} }
.demo-table-expand .el-form-item { .demo-table-expand .el-form-item {
margin-right: 0; margin-right: 0;
margin-bottom: 0; margin-bottom: 0;
width: 50%; width: 50%;
} }
</style> </style>
...@@ -6,80 +6,87 @@ ...@@ -6,80 +6,87 @@
background-color="#333333" background-color="#333333"
active-text-color="#ffd04b" active-text-color="#ffd04b"
:collapse="menuType" :collapse="menuType"
class="el-menu-vertical-demo"> class="el-menu-vertical-demo"
>
<div class="menu-btn" @click="menuType = !menuType"> <div class="menu-btn" @click="menuType = !menuType">
<i v-if="!menuType" class="iconfont icon-shouqi"></i> <i v-if="!menuType" class="iconfont icon-shouqi"></i>
<i v-if="menuType" <i v-if="menuType" class="iconfont icon-zhankai"></i>
class="iconfont icon-zhankai"></i>
</div> </div>
<el-submenu v-for="(data,index) in menuList" :index="data.value" :key="index"> <el-submenu v-for="(data,index) in menuList" :index="data.value" :key="index">
<template slot="title"> <template slot="title">
<i :class="'iconfont menu-icon '+data.icon"></i> <i :class="'iconfont menu-icon '+data.icon"></i>
<span>{{data.value}}</span> <span>{{data.value}}</span>
</template> </template>
<el-menu-item v-for="(item,i) in data.list" :index="item.path" :key="i" class="item">{{item.value}}</el-menu-item> <el-menu-item
v-for="(item,i) in data.list"
:index="item.path"
:key="i"
class="item"
>{{item.value}}</el-menu-item>
</el-submenu> </el-submenu>
</el-menu> </el-menu>
</template> </template>
<script> <script>
export default {
export default { name: "leftMenu",
name: "leftMenu", data() {
data(){ return {
return { menuList: this.$store.state.menuList,
menuList:this.$store.state.menuList, menuType: false
menuType:false };
} },
mounted() {
console.log(this.menuList);
},
methods: {
changeMenuType: function() {
this.$store.state.menuType = !this.$store.state.menuType;
}, },
methods:{ toPath: function(data) {
changeMenuType:function(){ this.$router.push({ name: data.routerName });
this.$store.state.menuType = !this.$store.state.menuType if (this.$store.state.openedTab.indexOf(data) < 0) {
}, this.$store.state.openedTab.push(data);
toPath:function (data) {
this.$router.push({name:data.routerName})
if(this.$store.state.openedTab.indexOf(data) < 0){
this.$store.state.openedTab.push(data);
}
} }
}, }
} }
};
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import "../../util/public"; @import "../../util/public";
.el-menu-vertical-demo:not(.el-menu--collapse) { .el-menu-vertical-demo:not(.el-menu--collapse) {
width: 200px; width: 200px;
}
.el-menu {
background: @bg-b;
color: white;
overflow: auto;
height: 100%;
.menu-btn {
height: 35px;
background: @bg-b-s;
line-height: 35px;
/*text-align: center;*/
i {
font-size: 26px;
float: right;
padding: 0 15px;
}
} }
.el-menu{ .el-submenu {
background: @bg-b; .menu-icon {
color: white; color: white;
overflow: auto; font-size: 18px;
height: 100%; position: relative;
.menu-btn{ right: 5px;
height: 35px;
background: @bg-b-s;
line-height: 35px;
/*text-align: center;*/
i{
font-size: 26px;
float: right;
padding: 0 15px;
}
} }
.el-submenu{ .el-menu-item {
.menu-icon{ background: @main-font-color;
color: white; }
font-size: 18px; .template {
position: relative; color: black;
right: 5px;
}
.el-menu-item{
background: @main-font-color;
}
.template{
color: black;
}
} }
} }
}
</style> </style>
<template> <template>
<div class="login"> <div class="login">
<div class="wrap-main"> <div class="wrap-main">
<h1 class="title">唱唱启蒙——后台管理系统</h1> <h1 class="title">唱唱启蒙——后台管理系统</h1>
<el-form :model="login" :rules="loginRules" ref="loginForm"> <el-form :model="login" :rules="loginRules" ref="loginForm">
<el-form-item prop="username"> <el-form-item prop="username">
<el-input v-model="login.username" placeholder="用户名"></el-input> <el-input v-model="login.username" placeholder="用户名"></el-input>
</el-form-item> </el-form-item>
<el-form-item prop="password"> <el-form-item prop="password">
<el-input type="password" v-model="login.password" placeholder="密码"></el-input> <el-input type="password" v-model="login.password" placeholder="密码"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button class="btn" size="medium" type="primary" @click="submitForm">登陆</el-button> <el-button class="btn" size="medium" type="primary" @click="submitForm">登陆</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div>
</div> </div>
</div>
</template> </template>
<script> <script>
import { loginApi } from "../../service/api"; import { loginApi } from "../../service/api";
import md5 from 'js-md5'; import md5 from "js-md5";
export default { export default {
data(){ data() {
return{ return {
login:{ login: {
username:'', username: "",
password:'' password: ""
},
loginRules:{
username:[
{ required: true, message: '请输入您的用户名', trigger: 'blur' }
],
password:[
{ required: true, message: '请输入您的密码', trigger: 'blur' }
]
}
}
},
mounted(){
let that = this;
document.onkeydown=keyDownSearch;
function keyDownSearch(e) {
// 兼容FF和IE和Opera
let theEvent = e || window.event;
let code = theEvent.keyCode || theEvent.which || theEvent.charCode;
if (code === 13 && that.$route.name === 'login') {
that.submitForm();//具体处理函数
return false;
}
return true;
}
}, },
methods:{ loginRules: {
// 提交 username: [
submitForm(){ { required: true, message: "请输入您的用户名", trigger: "blur" }
this.$refs["loginForm"].validate((valid) => { ],
if (valid) { password: [
let json = { { required: true, message: "请输入您的密码", trigger: "blur" }
username:this.login.username, ]
password:md5(this.login.password) }
}; };
// debugger },
loginApi(json).then(res=>{ mounted() {
if(res.teacher_info){ let that = this;
let data=JSON.stringify(res.teacher_info) document.onkeydown = keyDownSearch;
localStorage.setItem("phoneNum",data) function keyDownSearch(e) {
}else{ // 兼容FF和IE和Opera
localStorage.setItem("phoneNum","") let theEvent = e || window.event;
} let code = theEvent.keyCode || theEvent.which || theEvent.charCode;
this.$store.dispatch('setToken',res.token); if (code === 13 && that.$route.name === "login") {
this.$store.dispatch('setUserName',res.desc); that.submitForm(); //具体处理函数
this.$store.dispatch('setPermission',JSON.parse(res.roles.menu_ids)); return false;
// debugger }
window.location.href = '/'; return true;
}
}) },
methods: {
// 提交
submitForm() {
this.$refs["loginForm"].validate(valid => {
if (valid) {
let json = {
username: this.login.username,
password: md5(this.login.password)
};
// debugger
loginApi(json).then(res => {
debugger;
if (res.teacher_info) {
let data = JSON.stringify(res.teacher_info);
localStorage.setItem("phoneNum", data);
} else {
localStorage.setItem("phoneNum", "");
} }
}) this.$store.dispatch("setToken", res.token);
this.$store.dispatch("setUserName", res.desc);
this.$store.dispatch(
"setPermission",
JSON.parse(res.roles.menu_ids)
);
// debugger
window.location.href = "/";
});
} }
} });
} }
}
};
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
@import "../../util/public"; @import "../../util/public";
.login{ .login {
height: 100%; height: 100%;
background: linear-gradient(to bottom right, #ecec7c, #787af4); /* 标准的语法(必须放在最后) */ background: linear-gradient(
to bottom right,
#ecec7c,
#787af4
); /* 标准的语法(必须放在最后) */
}
.wrap-main {
width: 300px;
height: 180px;
padding: 50px 20px;
border-radius: 5px;
box-shadow: 8px 8px 15px rgba(49, 49, 49, 0.5);
position: fixed;
line-height: 50px;
background-color: rgba(255, 255, 255, 0.3);
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -200px;
.btn {
display: block;
width: 100%;
} }
.wrap-main{ .title {
width: 300px; position: absolute;
height: 180px; top: -100px;
padding:50px 20px; width: 100%;
border-radius: 5px; text-align: center;
box-shadow: 8px 8px 15px rgba(49, 49, 49, 0.5); left: 0;
position: fixed; color: white;
line-height: 50px; font-size: 26px;
background-color: rgba(255,255,255,0.3); text-shadow: 6px 6px 3px rgba(49, 49, 49, 0.5);
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -200px;
.btn{
display: block;
width: 100%;
}
.title{
position: absolute;
top: -100px;
width: 100%;
text-align: center;
left: 0;
color: white;
font-size: 26px;
text-shadow: 6px 6px 3px rgba(49, 49, 49, 0.5);
}
} }
}
</style> </style>
...@@ -12,564 +12,564 @@ Vue.prototype.$upload = upload; ...@@ -12,564 +12,564 @@ Vue.prototype.$upload = upload;
//登录 //登录
const loginURL = `${_baseUrl}api/admin/login`; const loginURL = `${_baseUrl}api/admin/login`;
export const loginApi = function(json) { export const loginApi = function (json) {
return Vue.prototype.$post(loginURL, { "username": json.username, "passwd": json.password }) return Vue.prototype.$post(loginURL, { "username": json.username, "passwd": json.password })
}; };
//退出登录 //退出登录
const logOutUrl = `${_baseUrl}api/admin/logout`; const logOutUrl = `${_baseUrl}api/admin/logout`;
export const logoutApi = function() { export const logoutApi = function () {
return Vue.prototype.$post(logOutUrl) return Vue.prototype.$post(logOutUrl)
}; };
//查询账号列表 //查询账号列表
const getAdminListUrl = `${_baseUrl}api/admin/user/list`; const getAdminListUrl = `${_baseUrl}api/admin/user/list`;
export const getAdminListApi = function(json) { export const getAdminListApi = function (json) {
return Vue.prototype.$fetch(getAdminListUrl, json) return Vue.prototype.$fetch(getAdminListUrl, json)
}; };
//修改账号信息 //修改账号信息
const editAdminUrl = `${_baseUrl}api/admin/user/info`; const editAdminUrl = `${_baseUrl}api/admin/user/info`;
export const editAdminListApi = function(id, json) { export const editAdminListApi = function (id, json) {
return Vue.prototype.$put(`${editAdminUrl}/${id}`, json) return Vue.prototype.$put(`${editAdminUrl}/${id}`, json)
}; };
//添加账号 //添加账号
const addAdminUrl = `${_baseUrl}api/admin/user/add`; const addAdminUrl = `${_baseUrl}api/admin/user/add`;
export const addAdminListApi = function(json) { export const addAdminListApi = function (json) {
return Vue.prototype.$post(addAdminUrl, json) return Vue.prototype.$post(addAdminUrl, json)
}; };
//删除账号 //删除账号
const delAdminUrl = `${_baseUrl}api/admin/user`; const delAdminUrl = `${_baseUrl}api/admin/user`;
export const delAdminListApi = function(id) { export const delAdminListApi = function (id) {
return Vue.prototype.$del(`${delAdminUrl}/${id}`) return Vue.prototype.$del(`${delAdminUrl}/${id}`)
}; };
//修改密码 //修改密码
const editPasswordUrl = `${_baseUrl}api/admin/user/passwd`; const editPasswordUrl = `${_baseUrl}api/admin/user/passwd`;
export const editPasswordApi = function(id, json) { export const editPasswordApi = function (id, json) {
return Vue.prototype.$patch(`${editPasswordUrl}/${id}`, json) return Vue.prototype.$patch(`${editPasswordUrl}/${id}`, json)
}; };
//获取用户列表 //获取用户列表
const getUserListUrl = `${_baseUrl}api/admin/student/list`; const getUserListUrl = `${_baseUrl}api/admin/student/list`;
export const getUserListApi = function(json) { export const getUserListApi = function (json) {
return Vue.prototype.$fetch(getUserListUrl, json) return Vue.prototype.$fetch(getUserListUrl, json)
}; };
//获取用户详情 //获取用户详情
const getUserDetailUrl = `${_baseUrl}api/admin/student/info`; const getUserDetailUrl = `${_baseUrl}api/admin/student/info`;
export const getUserDetailApi = function(id) { export const getUserDetailApi = function (id) {
return Vue.prototype.$fetch(`${getUserDetailUrl}/${id}`) return Vue.prototype.$fetch(`${getUserDetailUrl}/${id}`)
}; };
//获取教师列表 //获取教师列表
const getTeacherListUrl = `${_baseUrl}api/admin/teacher/list`; const getTeacherListUrl = `${_baseUrl}api/admin/teacher/list`;
export const getTeacherListApi = function(json) { export const getTeacherListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherListUrl}`, json) return Vue.prototype.$fetch(`${getTeacherListUrl}`, json)
}; };
//获取教师详情 //获取教师详情
const getTeacherDetailUrl = `${_baseUrl}api/admin/teacher/info`; const getTeacherDetailUrl = `${_baseUrl}api/admin/teacher/info`;
export const getTeacherDetailApi = function(id, json) { export const getTeacherDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getTeacherDetailUrl}/${id}`, json) return Vue.prototype.$fetch(`${getTeacherDetailUrl}/${id}`, json)
}; };
//添加教师 //添加教师
const addTeacherUrl = `${_baseUrl}api/admin/teacher/add`; const addTeacherUrl = `${_baseUrl}api/admin/teacher/add`;
export const addTeacherApi = function(json) { export const addTeacherApi = function (json) {
return Vue.prototype.$post(addTeacherUrl, json) return Vue.prototype.$post(addTeacherUrl, json)
}; };
//更新教师信息 //更新教师信息
const editTeacherUrl = `${_baseUrl}api/admin/teacher/info`; const editTeacherUrl = `${_baseUrl}api/admin/teacher/info`;
export const editTeacherApi = function(id, json) { export const editTeacherApi = function (id, json) {
return Vue.prototype.$put(`${editTeacherUrl}/${id}`, json) return Vue.prototype.$put(`${editTeacherUrl}/${id}`, json)
}; };
//删除教师 //删除教师
const delTeacherUrl = `${_baseUrl}api/admin/teacher`; const delTeacherUrl = `${_baseUrl}api/admin/teacher`;
export const delTeacherApi = function(id) { export const delTeacherApi = function (id) {
return Vue.prototype.$del(`${delTeacherUrl}/${id}`) return Vue.prototype.$del(`${delTeacherUrl}/${id}`)
}; };
//获取课程列表 //获取课程列表
const getLessonUrl = `${_baseUrl}api/admin/course/list`; const getLessonUrl = `${_baseUrl}api/admin/course/list`;
export const getLessonApi = function(json) { export const getLessonApi = function (json) {
return Vue.prototype.$fetch(getLessonUrl, json) return Vue.prototype.$fetch(getLessonUrl, json)
}; };
//获取课程详情 //获取课程详情
const getLessonDetailUrl = `${_baseUrl}api/admin/course/info`; const getLessonDetailUrl = `${_baseUrl}api/admin/course/info`;
export const getLessonDetailApi = function(id, json) { export const getLessonDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getLessonDetailUrl}/${id}`, json) return Vue.prototype.$fetch(`${getLessonDetailUrl}/${id}`, json)
}; };
//编辑课程详情 //编辑课程详情
const editLessonDetailUrl = `${_baseUrl}api/admin/course/info`; const editLessonDetailUrl = `${_baseUrl}api/admin/course/info`;
export const editLessonApi = function(id, json) { export const editLessonApi = function (id, json) {
return Vue.prototype.$put(`${editLessonDetailUrl}/${id}`, json) return Vue.prototype.$put(`${editLessonDetailUrl}/${id}`, json)
}; };
//删除课程 //删除课程
const deleteLessonUrl = `${_baseUrl}api/admin/course`; const deleteLessonUrl = `${_baseUrl}api/admin/course`;
export const deleteLessonAPI = function(id) { export const deleteLessonAPI = function (id) {
return Vue.prototype.$del(`${deleteLessonUrl}/${id}`) return Vue.prototype.$del(`${deleteLessonUrl}/${id}`)
}; };
//新增课程 //新增课程
const addLessonUrl = `${_baseUrl}api/admin/course/add`; const addLessonUrl = `${_baseUrl}api/admin/course/add`;
export const addLessonApi = function(json) { export const addLessonApi = function (json) {
return Vue.prototype.$post(addLessonUrl, json) return Vue.prototype.$post(addLessonUrl, json)
}; };
//获取商品列表 //获取商品列表
const getGoodsListUrl = `${_baseUrl}api/admin/goods/list`; const getGoodsListUrl = `${_baseUrl}api/admin/goods/list`;
export const getGoodsListApi = function(json) { export const getGoodsListApi = function (json) {
return Vue.prototype.$fetch(getGoodsListUrl, json) return Vue.prototype.$fetch(getGoodsListUrl, json)
}; };
//获取商品详情 //获取商品详情
const getGoodsDetailUrl = `${_baseUrl}api/admin/goods/info`; const getGoodsDetailUrl = `${_baseUrl}api/admin/goods/info`;
export const getGoodsDetailApi = function(id, json) { export const getGoodsDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getGoodsDetailUrl}/${id}`, json) return Vue.prototype.$fetch(`${getGoodsDetailUrl}/${id}`, json)
}; };
//添加商品 //添加商品
const addGoodsUrl = `${_baseUrl}api/admin/goods/add`; const addGoodsUrl = `${_baseUrl}api/admin/goods/add`;
export const addGoodsApi = function(json) { export const addGoodsApi = function (json) {
return Vue.prototype.$post(addGoodsUrl, json) return Vue.prototype.$post(addGoodsUrl, json)
}; };
//编辑商品 //编辑商品
const editGoodsUrl = `${_baseUrl}api/admin/goods/info`; const editGoodsUrl = `${_baseUrl}api/admin/goods/info`;
export const editGoodsApi = function(id, json) { export const editGoodsApi = function (id, json) {
return Vue.prototype.$put(`${editGoodsUrl}/${id}`, json) return Vue.prototype.$put(`${editGoodsUrl}/${id}`, json)
}; };
//删除商品 //删除商品
const deleteGoodsUrl = `${_baseUrl}api/admin/goods`; const deleteGoodsUrl = `${_baseUrl}api/admin/goods`;
export const deleteGoodsApi = function(id) { export const deleteGoodsApi = function (id) {
return Vue.prototype.$del(`${deleteGoodsUrl}/${id}`) return Vue.prototype.$del(`${deleteGoodsUrl}/${id}`)
}; };
// 商品上架 // 商品上架
const upGoodsUrl = `${_baseUrl}api/admin/goods/putaway/`; const upGoodsUrl = `${_baseUrl}api/admin/goods/putaway/`;
export const upGoodsApi = function(id) { export const upGoodsApi = function (id) {
return Vue.prototype.$patch(`${upGoodsUrl}${id}`) return Vue.prototype.$patch(`${upGoodsUrl}${id}`)
}; };
// 商品下架 // 商品下架
const downGoodsUrl = `${_baseUrl}api/admin/goods/soldout/`; const downGoodsUrl = `${_baseUrl}api/admin/goods/soldout/`;
export const downGoodsApi = function(id) { export const downGoodsApi = function (id) {
return Vue.prototype.$patch(`${downGoodsUrl}${id}`) return Vue.prototype.$patch(`${downGoodsUrl}${id}`)
}; };
//查询元素、菜单分类 //查询元素、菜单分类
const getCategoryUrl = `${_baseUrl}api/admin/category/list/0`; const getCategoryUrl = `${_baseUrl}api/admin/category/list/0`;
export const getCategoryApi = function(pid) { export const getCategoryApi = function (pid) {
return Vue.prototype.$fetch(getCategoryUrl, { 'pid': pid }) return Vue.prototype.$fetch(getCategoryUrl, { 'pid': pid })
}; };
// 添加教材菜单 // 添加教材菜单
const addCategoryUrl = `${_baseUrl}api/admin/category/add/0`; const addCategoryUrl = `${_baseUrl}api/admin/category/add/0`;
export const addCategoryApi = function(json) { export const addCategoryApi = function (json) {
return Vue.prototype.$post(addCategoryUrl, json) return Vue.prototype.$post(addCategoryUrl, json)
}; };
//删除分类 //删除分类
const delCategoryUrl = `${_baseUrl}api/admin/category`; const delCategoryUrl = `${_baseUrl}api/admin/category`;
export const delCategoryApi = function(id) { export const delCategoryApi = function (id) {
return Vue.prototype.$del(`${delCategoryUrl}/${id}`) return Vue.prototype.$del(`${delCategoryUrl}/${id}`)
}; };
//分类排序修改 //分类排序修改
const sortCategoryUrl = `${_baseUrl}api/admin/category/sort`; const sortCategoryUrl = `${_baseUrl}api/admin/category/sort`;
export const sortCategoryApi = function(json) { export const sortCategoryApi = function (json) {
return Vue.prototype.$patch(sortCategoryUrl, json) return Vue.prototype.$patch(sortCategoryUrl, json)
}; };
//获取分类下的元素列表 //获取分类下的元素列表
const getCateDetailListUrl = `${_baseUrl}api/admin/element/list/0`; const getCateDetailListUrl = `${_baseUrl}api/admin/element/list/0`;
export const getCateListApi = function(id) { export const getCateListApi = function (id) {
return Vue.prototype.$fetch(getCateDetailListUrl, id) return Vue.prototype.$fetch(getCateDetailListUrl, id)
}; };
// 添加元素 // 添加元素
const addElementUrl = `${_baseUrl}api/admin/element/add/`; const addElementUrl = `${_baseUrl}api/admin/element/add/`;
export const addElementApi = function(json, type) { export const addElementApi = function (json, type) {
return Vue.prototype.$post(`${addElementUrl}${type}`, json) return Vue.prototype.$post(`${addElementUrl}${type}`, json)
}; };
// 查询元素详情 // 查询元素详情
const getElemenetDetailUrl = `${_baseUrl}api/admin/element/`; const getElemenetDetailUrl = `${_baseUrl}api/admin/element/`;
export const getElemenetDetailApi = function(id) { export const getElemenetDetailApi = function (id) {
return Vue.prototype.$fetch(`${getElemenetDetailUrl}${id}`) return Vue.prototype.$fetch(`${getElemenetDetailUrl}${id}`)
}; };
// 编辑元素 // 编辑元素
const editElementUrl = `${_baseUrl}api/admin/element/`; const editElementUrl = `${_baseUrl}api/admin/element/`;
export const editElementApi = function(json, id) { export const editElementApi = function (json, id) {
return Vue.prototype.$put(`${editElementUrl}${id}`, json) return Vue.prototype.$put(`${editElementUrl}${id}`, json)
}; };
// 删除元素 // 删除元素
const delElementUrl = `${_baseUrl}api/admin/element/`; const delElementUrl = `${_baseUrl}api/admin/element/`;
export const delElementApi = function(id) { export const delElementApi = function (id) {
return Vue.prototype.$del(`${delElementUrl}${id}`) return Vue.prototype.$del(`${delElementUrl}${id}`)
}; };
// 获取单品列表 // 获取单品列表
const getSingleListUrl = `${_baseUrl}api/admin/item/stock/list`; const getSingleListUrl = `${_baseUrl}api/admin/item/stock/list`;
export const getSingleListApi = function(json) { export const getSingleListApi = function (json) {
return Vue.prototype.$fetch(`${getSingleListUrl}`, json) return Vue.prototype.$fetch(`${getSingleListUrl}`, json)
}; };
// 获取单品详情 // 获取单品详情
const getSingleDetailUrl = `${_baseUrl}api/admin/item/stock/info/`; const getSingleDetailUrl = `${_baseUrl}api/admin/item/stock/info/`;
export const getSingleDetailApi = function(id) { export const getSingleDetailApi = function (id) {
return Vue.prototype.$fetch(`${getSingleDetailUrl}${id}`) return Vue.prototype.$fetch(`${getSingleDetailUrl}${id}`)
}; };
// 删除单品 // 删除单品
const delSingleUrl = `${_baseUrl}api/admin/item/stock/`; const delSingleUrl = `${_baseUrl}api/admin/item/stock/`;
export const delSingleApi = function(id) { export const delSingleApi = function (id) {
return Vue.prototype.$del(`${delSingleUrl}${id}`) return Vue.prototype.$del(`${delSingleUrl}${id}`)
}; };
// 新增单品 // 新增单品
const addSingleUrl = `${_baseUrl}api/admin/item/stock/add`; const addSingleUrl = `${_baseUrl}api/admin/item/stock/add`;
export const addSingleApi = function(json) { export const addSingleApi = function (json) {
return Vue.prototype.$post(addSingleUrl, json) return Vue.prototype.$post(addSingleUrl, json)
}; };
// 修改单品 // 修改单品
const editSingleUrl = `${_baseUrl}api/admin/item/stock/info/`; const editSingleUrl = `${_baseUrl}api/admin/item/stock/info/`;
export const editSingleApi = function(id, json) { export const editSingleApi = function (id, json) {
return Vue.prototype.$put(`${editSingleUrl}${id}`, json) return Vue.prototype.$put(`${editSingleUrl}${id}`, json)
}; };
// 获取盒子分类 // 获取盒子分类
const getBoxTypeListUrl = `${_baseUrl}api/admin/category/list/1`; const getBoxTypeListUrl = `${_baseUrl}api/admin/category/list/1`;
export const getBoxTypeListApi = function() { export const getBoxTypeListApi = function () {
return Vue.prototype.$fetch(getBoxTypeListUrl) return Vue.prototype.$fetch(getBoxTypeListUrl)
}; };
// 获取盒子列表 // 获取盒子列表
const getBoxListUrl = `${_baseUrl}api/admin/item/box/list/`; const getBoxListUrl = `${_baseUrl}api/admin/item/box/list/`;
export const getBoxListApi = function(id) { export const getBoxListApi = function (id) {
return Vue.prototype.$fetch(`${getBoxListUrl}${id}`) return Vue.prototype.$fetch(`${getBoxListUrl}${id}`)
}; };
// 添加盒子 // 添加盒子
const addBoxUrl = `${_baseUrl}api/admin/item/box/add/`; const addBoxUrl = `${_baseUrl}api/admin/item/box/add/`;
export const addBoxApi = function(id, json) { export const addBoxApi = function (id, json) {
return Vue.prototype.$post(`${addBoxUrl}${id}`, json) return Vue.prototype.$post(`${addBoxUrl}${id}`, json)
}; };
// 删除盒子 // 删除盒子
const delBoxUrl = `${_baseUrl}api/admin/item/box/`; const delBoxUrl = `${_baseUrl}api/admin/item/box/`;
export const delBoxApi = function(id) { export const delBoxApi = function (id) {
return Vue.prototype.$del(`${delBoxUrl}${id}`) return Vue.prototype.$del(`${delBoxUrl}${id}`)
}; };
// 获取盒子详情 // 获取盒子详情
const getBoxDetailUrl = `${_baseUrl}api/admin/item/box/info/`; const getBoxDetailUrl = `${_baseUrl}api/admin/item/box/info/`;
export const getBoxDetailApi = function(id) { export const getBoxDetailApi = function (id) {
return Vue.prototype.$fetch(`${getBoxDetailUrl}${id}`) return Vue.prototype.$fetch(`${getBoxDetailUrl}${id}`)
}; };
// 更新盒子 // 更新盒子
const editBoxUrl = `${_baseUrl}api/admin/item/box/info/`; const editBoxUrl = `${_baseUrl}api/admin/item/box/info/`;
export const editBoxApi = function(id, json) { export const editBoxApi = function (id, json) {
return Vue.prototype.$put(`${editBoxUrl}${id}`, json) return Vue.prototype.$put(`${editBoxUrl}${id}`, json)
}; };
// 获取公众号菜单 // 获取公众号菜单
const getPublicMenuUrl = `${_baseUrl}api/admin/open/menu`; const getPublicMenuUrl = `${_baseUrl}api/admin/open/menu`;
export const getPublicMenuApi = function() { export const getPublicMenuApi = function () {
return Vue.prototype.$fetch(getPublicMenuUrl) return Vue.prototype.$fetch(getPublicMenuUrl)
}; };
// 添加公众号菜单 // 添加公众号菜单
export const savePublicMenuApi = function(json) { export const savePublicMenuApi = function (json) {
return Vue.prototype.$post(getPublicMenuUrl, json) return Vue.prototype.$post(getPublicMenuUrl, json)
}; };
// 获取配置列表 // 获取配置列表
const getConfigListUrl = `${_baseUrl}api/admin/sys/config/list`; const getConfigListUrl = `${_baseUrl}api/admin/sys/config/list`;
export const getConfigListApi = function(json) { export const getConfigListApi = function (json) {
return Vue.prototype.$fetch(getConfigListUrl, json) return Vue.prototype.$fetch(getConfigListUrl, json)
}; };
// 新增系统配置 // 新增系统配置
const saveConfigUrl = `${_baseUrl}api/admin/sys/config`; const saveConfigUrl = `${_baseUrl}api/admin/sys/config`;
export const saveConfigApi = function(json) { export const saveConfigApi = function (json) {
return Vue.prototype.$post(saveConfigUrl, json) return Vue.prototype.$post(saveConfigUrl, json)
}; };
// 更新关键词 // 更新关键词
const updateConfigUrl = `${_baseUrl}api/admin/sys/config`; const updateConfigUrl = `${_baseUrl}api/admin/sys/config`;
export const updateConfigApi = function(config_id, json) { export const updateConfigApi = function (config_id, json) {
return Vue.prototype.$put(`${updateConfigUrl}/${config_id}`, json) return Vue.prototype.$put(`${updateConfigUrl}/${config_id}`, json)
}; };
// 删除配置 // 删除配置
const delConfigUrl = `${_baseUrl}api/admin/sys/config/`; const delConfigUrl = `${_baseUrl}api/admin/sys/config/`;
export const deleteConfigApi = function(config_id) { export const deleteConfigApi = function (config_id) {
return Vue.prototype.$del(`${delConfigUrl}${config_id}`) return Vue.prototype.$del(`${delConfigUrl}${config_id}`)
}; };
// 获取配置详情 // 获取配置详情
const getConfigDetailUrl = `${_baseUrl}api/admin/sys/config/`; const getConfigDetailUrl = `${_baseUrl}api/admin/sys/config/`;
export const getConfigDetailApi = function(id) { export const getConfigDetailApi = function (id) {
return Vue.prototype.$fetch(`${getConfigDetailUrl}${id}`) return Vue.prototype.$fetch(`${getConfigDetailUrl}${id}`)
}; };
// 获取素材列表 // 获取素材列表
const getMediaListUrl = `${_baseUrl}api/admin/open/media/list`; const getMediaListUrl = `${_baseUrl}api/admin/open/media/list`;
export const getMediaListApi = function(json) { export const getMediaListApi = function (json) {
return Vue.prototype.$fetch(getMediaListUrl, json) return Vue.prototype.$fetch(getMediaListUrl, json)
}; };
// 文件上传 // 文件上传
const uploadFileUrl = `${_baseUrl}api/public/upload/zone`; const uploadFileUrl = `${_baseUrl}api/public/upload/zone`;
export const uploadFileApi = function(json) { export const uploadFileApi = function (json) {
return Vue.prototype.$upload(uploadFileUrl, json) return Vue.prototype.$upload(uploadFileUrl, json)
}; };
// 获取菜单列表 // 获取菜单列表
const getMenuListUrl = `${_baseUrl}api/admin/category/list/2`; const getMenuListUrl = `${_baseUrl}api/admin/category/list/2`;
export const getMenuListApi = function(json) { export const getMenuListApi = function (json) {
return Vue.prototype.$fetch(`${getMenuListUrl}`,json) return Vue.prototype.$fetch(`${getMenuListUrl}`, json)
}; };
// 新增菜单 // 新增菜单
const addMenuListUrl = `${_baseUrl}api/admin/category/add/2`; const addMenuListUrl = `${_baseUrl}api/admin/category/add/2`;
export const saveMenuApi = function(json) { export const saveMenuApi = function (json) {
return Vue.prototype.$post(addMenuListUrl, json) return Vue.prototype.$post(addMenuListUrl, json)
}; };
// 更改菜单 // 更改菜单
const updateMenuUrl = `${_baseUrl}api/admin/category/`; const updateMenuUrl = `${_baseUrl}api/admin/category/`;
export const updateMenuApi = function(id, json) { export const updateMenuApi = function (id, json) {
return Vue.prototype.$put(`${updateMenuUrl}${id}`, json) return Vue.prototype.$put(`${updateMenuUrl}${id}`, json)
}; };
// 删除菜单 // 删除菜单
export const delMenuApi = function(id) { export const delMenuApi = function (id) {
return Vue.prototype.$del(`${updateMenuUrl}${id}`) return Vue.prototype.$del(`${updateMenuUrl}${id}`)
}; };
// 获取权限列表 // 获取权限列表
const getRoleListUrl = `${_baseUrl}api/admin/role/list`; const getRoleListUrl = `${_baseUrl}api/admin/role/list`;
export const getRoleListApi = function(json) { export const getRoleListApi = function (json) {
return Vue.prototype.$fetch(`${getRoleListUrl}`, json) return Vue.prototype.$fetch(`${getRoleListUrl}`, json)
}; };
// 新增角色 // 新增角色
const addRoleUrl = `${_baseUrl}api/admin/role/add`; const addRoleUrl = `${_baseUrl}api/admin/role/add`;
export const saveRoleApi = function(json) { export const saveRoleApi = function (json) {
return Vue.prototype.$post(addRoleUrl, json) return Vue.prototype.$post(addRoleUrl, json)
}; };
// 更新权限 // 更新权限
const updateRoleUrl = `${_baseUrl}api/admin/role/info/`; const updateRoleUrl = `${_baseUrl}api/admin/role/info/`;
export const updateRoleApi = function(id, json) { export const updateRoleApi = function (id, json) {
return Vue.prototype.$put(`${updateRoleUrl}${id}`, json) return Vue.prototype.$put(`${updateRoleUrl}${id}`, json)
}; };
// 获取权限详情 // 获取权限详情
export const getRoleDetailApi = function(id) { export const getRoleDetailApi = function (id) {
return Vue.prototype.$fetch(`${updateRoleUrl}${id}`) return Vue.prototype.$fetch(`${updateRoleUrl}${id}`)
}; };
// 删除权限 // 删除权限
const delRoleUrl = `${_baseUrl}api/admin/role/`; const delRoleUrl = `${_baseUrl}api/admin/role/`;
export const delRoleApi = function(id) { export const delRoleApi = function (id) {
return Vue.prototype.$del(`${delRoleUrl}${id}`) return Vue.prototype.$del(`${delRoleUrl}${id}`)
}; };
// 获取banner列表 // 获取banner列表
const getBannerListUrl = `${_baseUrl}api/admin/banner/list/`; const getBannerListUrl = `${_baseUrl}api/admin/banner/list/`;
export const getBannerListApi = function(type,json) { export const getBannerListApi = function (type, json) {
return Vue.prototype.$fetch(getBannerListUrl+type, json) return Vue.prototype.$fetch(getBannerListUrl + type, json)
}; };
// 添加banner // 添加banner
const addBannerUrl = `${_baseUrl}api/admin/banner/add/`; const addBannerUrl = `${_baseUrl}api/admin/banner/add/`;
export const addBannerApi = function(type,json) { export const addBannerApi = function (type, json) {
return Vue.prototype.$post(addBannerUrl+type, json) return Vue.prototype.$post(addBannerUrl + type, json)
}; };
// 编辑banner // 编辑banner
const editBannerUrl = `${_baseUrl}api/admin/banner/info/`; const editBannerUrl = `${_baseUrl}api/admin/banner/info/`;
export const editBannerApi = function(id, json) { export const editBannerApi = function (id, json) {
return Vue.prototype.$put(`${editBannerUrl}${id}`, json) return Vue.prototype.$put(`${editBannerUrl}${id}`, json)
}; };
// 获取banner详情 // 获取banner详情
export const getBannerDetailApi = function(id) { export const getBannerDetailApi = function (id) {
return Vue.prototype.$fetch(`${editBannerUrl}${id}`) return Vue.prototype.$fetch(`${editBannerUrl}${id}`)
}; };
// 删除banner // 删除banner
const delBannerUrl = `${_baseUrl}api/admin/banner/`; const delBannerUrl = `${_baseUrl}api/admin/banner/`;
export const delBannerApi = function(id) { export const delBannerApi = function (id) {
return Vue.prototype.$del(`${delBannerUrl}${id}`) return Vue.prototype.$del(`${delBannerUrl}${id}`)
}; };
// 移动顺序 // 移动顺序
const moveUrl = `${_baseUrl}api/admin/banner/sort`; const moveUrl = `${_baseUrl}api/admin/banner/sort`;
export const moveApi = function(upId, downId) { export const moveApi = function (upId, downId) {
return Vue.prototype.$patch(`${moveUrl}`, { banner_up_id: upId, banner_down_id: downId }) return Vue.prototype.$patch(`${moveUrl}`, { banner_up_id: upId, banner_down_id: downId })
}; };
// 获取期数列表 // 获取期数列表
const getPeriodsUrl = `${_baseUrl}api/admin/periods/list`; const getPeriodsUrl = `${_baseUrl}api/admin/periods/list`;
export const getPeriodsApi = function(json) { export const getPeriodsApi = function (json) {
return Vue.prototype.$fetch(getPeriodsUrl, json) return Vue.prototype.$fetch(getPeriodsUrl, json)
}; };
// 添加期数 // 添加期数
const getAddPeriodsUrl = `${_baseUrl}api/admin/periods/add/`; const getAddPeriodsUrl = `${_baseUrl}api/admin/periods/add/`;
export const getAddPeriodsApi = function(id, json) { export const getAddPeriodsApi = function (id, json) {
return Vue.prototype.$post(`${getAddPeriodsUrl}${id}`, json) return Vue.prototype.$post(`${getAddPeriodsUrl}${id}`, json)
}; };
// 编辑期数 // 编辑期数
const getEditPeriodsUrl = `${_baseUrl}api/admin/periods/info/`; const getEditPeriodsUrl = `${_baseUrl}api/admin/periods/info/`;
export const getEditPeriodsApi = function(id, json) { export const getEditPeriodsApi = function (id, json) {
return Vue.prototype.$put(`${getEditPeriodsUrl}${id}`, json) return Vue.prototype.$put(`${getEditPeriodsUrl}${id}`, json)
}; };
// 删除期数 // 删除期数
const getDelPeriodUrl = `${_baseUrl}api/admin/periods/`; const getDelPeriodUrl = `${_baseUrl}api/admin/periods/`;
export const delPeriodApi = function(id) { export const delPeriodApi = function (id) {
return Vue.prototype.$del(`${getDelPeriodUrl}${id}`) return Vue.prototype.$del(`${getDelPeriodUrl}${id}`)
}; };
// 获取班级列表 // 获取班级列表
const getClassListUrl = `${_baseUrl}api/admin/periods/class/list/`; const getClassListUrl = `${_baseUrl}api/admin/periods/class/list/`;
export const getClassListApi = function(id,json,type) { export const getClassListApi = function (id, json, type) {
// let typeParams = type?type:0 // let typeParams = type?type:0
return Vue.prototype.$fetch(`${getClassListUrl}${id}`, json) return Vue.prototype.$fetch(`${getClassListUrl}${id}`, json)
}; };
// 获取当前期数下的老师列表 // 获取当前期数下的老师列表
const getPeriodsTeacherUrl = `${_baseUrl}api/admin/periods/teacher/list/`; const getPeriodsTeacherUrl = `${_baseUrl}api/admin/periods/teacher/list/`;
export const getPeriodsTeacherApi = function(id) { export const getPeriodsTeacherApi = function (id) {
return Vue.prototype.$fetch(`${getPeriodsTeacherUrl}${id}`) return Vue.prototype.$fetch(`${getPeriodsTeacherUrl}${id}`)
}; };
// 删除班级 // 删除班级
const delClassUrl = `${_baseUrl}api/admin/periods/class/`; const delClassUrl = `${_baseUrl}api/admin/periods/class/`;
export const delClassApi = function(id) { export const delClassApi = function (id) {
return Vue.prototype.$del(`${delClassUrl}${id}`) return Vue.prototype.$del(`${delClassUrl}${id}`)
}; };
// 添加班级 // 添加班级
const addClassUrl = `${_baseUrl}api/admin/periods/class/add/`; const addClassUrl = `${_baseUrl}api/admin/periods/class/add/`;
export const addClassApi = function(id, json) { export const addClassApi = function (id, json) {
return Vue.prototype.$post(`${addClassUrl}${id}`, json) return Vue.prototype.$post(`${addClassUrl}${id}`, json)
}; };
// 修改班级 // 修改班级
const editClassUrl = `${_baseUrl}api/admin/periods/class/info/`; const editClassUrl = `${_baseUrl}api/admin/periods/class/info/`;
export const editClassApi = function(id, json) { export const editClassApi = function (id, json) {
return Vue.prototype.$put(`${editClassUrl}${id}`, json) return Vue.prototype.$put(`${editClassUrl}${id}`, json)
}; };
// 获取班级详情 // 获取班级详情
const getClassDetailUrl = `${_baseUrl}api/admin/periods/class/info/`; const getClassDetailUrl = `${_baseUrl}api/admin/periods/class/info/`;
export const getClassDetailApi = function(id, json) { export const getClassDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getClassDetailUrl}${id}`, json) return Vue.prototype.$fetch(`${getClassDetailUrl}${id}`, json)
}; };
// 获取班级用户列表 // 获取班级用户列表
const getClassUserUrl = `${_baseUrl}api/admin/class/user/list/`; const getClassUserUrl = `${_baseUrl}api/admin/class/user/list/`;
export const getClassUserApi = function(id, json) { export const getClassUserApi = function (id, json) {
return Vue.prototype.$fetch(`${getClassUserUrl}${id}`, json) return Vue.prototype.$fetch(`${getClassUserUrl}${id}`, json)
}; };
// 添加班级用户 // 添加班级用户
const addClassUserUrl = `${_baseUrl}api/admin/class/user/add/`; const addClassUserUrl = `${_baseUrl}api/admin/class/user/add/`;
export const addClassUesrApi = function(classId, userId, json) { export const addClassUesrApi = function (classId, userId, json) {
return Vue.prototype.$post(`${addClassUserUrl}${classId}/${userId}`, json) return Vue.prototype.$post(`${addClassUserUrl}${classId}/${userId}`, json)
}; };
// 更改看课权限 // 更改看课权限
const changeUserUrl = `${_baseUrl}api/admin/class/user/`; const changeUserUrl = `${_baseUrl}api/admin/class/user/`;
export const changeUserApi = function(id, json) { export const changeUserApi = function (id, json) {
return Vue.prototype.$put(`${changeUserUrl}${id}`, json) return Vue.prototype.$put(`${changeUserUrl}${id}`, json)
}; };
// 添加是否添加老师权限 // 添加是否添加老师权限
const addUserTeacherUrl = `${_baseUrl}api/admin/class/user/teacher/`; const addUserTeacherUrl = `${_baseUrl}api/admin/class/user/teacher/`;
export const addUserTeacherApi = function(id, json) { export const addUserTeacherApi = function (id, json) {
return Vue.prototype.$put(`${addUserTeacherUrl}${id}`, json) return Vue.prototype.$put(`${addUserTeacherUrl}${id}`, json)
}; };
// 移除班级用户 // 移除班级用户
const delClassUserUrl = `${_baseUrl}api/admin/class/user/`; const delClassUserUrl = `${_baseUrl}api/admin/class/user/`;
export const delClassUserApi = function(id) { export const delClassUserApi = function (id) {
return Vue.prototype.$del(`${delClassUserUrl}${id}`) return Vue.prototype.$del(`${delClassUserUrl}${id}`)
}; };
// 获取订单列表 // 获取订单列表
const getOrderListUrl = `${_baseUrl}api/admin/order/list`; const getOrderListUrl = `${_baseUrl}api/admin/order/list`;
export const getOrderListApi = function(json) { export const getOrderListApi = function (json) {
return Vue.prototype.$fetch(getOrderListUrl, json) return Vue.prototype.$fetch(getOrderListUrl, json)
}; };
//手动添加订单 //手动添加订单
const setOrderUrl = `/api/admin/order`; const setOrderUrl = `/api/admin/order`;
export const setOrderApi = function(json) { export const setOrderApi = function (json) {
return Vue.prototype.$post(setOrderUrl,json) return Vue.prototype.$post(setOrderUrl, json)
} }
// 修改订单备注 // 修改订单备注
const editOrderDescUrl = `${_baseUrl}api/admin/order/desc/`; const editOrderDescUrl = `${_baseUrl}api/admin/order/desc/`;
export const editOrderDescApi = function(orderId, type, json) { export const editOrderDescApi = function (orderId, type, json) {
return Vue.prototype.$put(`${editOrderDescUrl}${orderId}/${type}`, json) return Vue.prototype.$put(`${editOrderDescUrl}${orderId}/${type}`, json)
}; };
// 给用户退款 // 给用户退款
const refundUrl = `${_baseUrl}api/admin/bill/refund/`; const refundUrl = `${_baseUrl}api/admin/bill/refund/`;
export const refundApi = function(id, json) { export const refundApi = function (id, json) {
return Vue.prototype.$post(`${refundUrl}${id}`, json) return Vue.prototype.$post(`${refundUrl}${id}`, json)
}; };
// 修改订单收货地址 // 修改订单收货地址
const editAddressUrl = `${_baseUrl}api/admin/order/address/`; const editAddressUrl = `${_baseUrl}api/admin/order/address/`;
export const editAddressApi = function(id, json) { export const editAddressApi = function (id, json) {
return Vue.prototype.$put(`${editAddressUrl}${id}`, json) return Vue.prototype.$put(`${editAddressUrl}${id}`, json)
}; };
// 提现审核 // 提现审核
const withdrawUrl = `${_baseUrl}/api/admin/order/withdraw/`; const withdrawUrl = `${_baseUrl}/api/admin/order/withdraw/`;
export const withdrawApi = function(id, json) { export const withdrawApi = function (id, json) {
return Vue.prototype.$post(`${withdrawUrl}${id}`, json) return Vue.prototype.$post(`${withdrawUrl}${id}`, json)
}; };
// 退款列表 // 退款列表
const getRefundListUrl = `${_baseUrl}api/admin/order/refund/list`; const getRefundListUrl = `${_baseUrl}api/admin/order/refund/list`;
export const getRefundListApi = function(json) { export const getRefundListApi = function (json) {
return Vue.prototype.$fetch(`${getRefundListUrl}`, json) return Vue.prototype.$fetch(`${getRefundListUrl}`, json)
}; };
// 提现列表 // 提现列表
const getWithdrawListUrl = `${_baseUrl}api/admin/order/withdraw/list`; const getWithdrawListUrl = `${_baseUrl}api/admin/order/withdraw/list`;
export const getWithdrawListApi = function(json) { export const getWithdrawListApi = function (json) {
return Vue.prototype.$fetch(`${getWithdrawListUrl}`, json) return Vue.prototype.$fetch(`${getWithdrawListUrl}`, json)
}; };
// 新增盒子类型 // 新增盒子类型
const addBoxTypeUrl = `${_baseUrl}api/admin/category/add/1`; const addBoxTypeUrl = `${_baseUrl}api/admin/category/add/1`;
export const addBoxTypeApi = function(json) { export const addBoxTypeApi = function (json) {
return Vue.prototype.$post(addBoxTypeUrl, json) return Vue.prototype.$post(addBoxTypeUrl, json)
}; };
// 用户关联老师 // 用户关联老师
const addRelatedTeacherUrl = `${_baseUrl}api/admin/student/bind/`; const addRelatedTeacherUrl = `${_baseUrl}api/admin/student/bind/`;
export const addRelatedTeacherApi = function(id, json) { export const addRelatedTeacherApi = function (id, json) {
return Vue.prototype.$put(`${addRelatedTeacherUrl}${id}`, json) return Vue.prototype.$put(`${addRelatedTeacherUrl}${id}`, json)
}; };
// 操作日志 // 操作日志
const getAdminLogListUrl = `${_baseUrl}api/admin/user/log`; const getAdminLogListUrl = `${_baseUrl}api/admin/user/log`;
export const getAdminLogLisApi = function(json) { export const getAdminLogLisApi = function (json) {
return Vue.prototype.$fetch(`${getAdminLogListUrl}`, json) return Vue.prototype.$fetch(`${getAdminLogListUrl}`, json)
}; };
// 清除缓存 // 清除缓存
const clearCacheListUrl = `/api/admin/redis/key`; const clearCacheListUrl = `/api/admin/redis/key`;
export const clearCacheListApi = function(json) { export const clearCacheListApi = function (json) {
return Vue.prototype.$del(`${clearCacheListUrl}/${json}`) return Vue.prototype.$del(`${clearCacheListUrl}/${json}`)
}; };
// 绑定其他商品 // 绑定其他商品
const bindOtherUrl = `${_baseUrl}api/admin/goods/bind/`; const bindOtherUrl = `${_baseUrl}api/admin/goods/bind/`;
export const bindOtherApi = function(goodsId, newGoodsId) { export const bindOtherApi = function (goodsId, newGoodsId) {
return Vue.prototype.$patch(`${bindOtherUrl}${goodsId}/${newGoodsId}`) return Vue.prototype.$patch(`${bindOtherUrl}${goodsId}/${newGoodsId}`)
}; };
// 冲突商品 // 冲突商品
const conflictUrl = `${_baseUrl}api/admin/goods/conflict/`; const conflictUrl = `${_baseUrl}api/admin/goods/conflict/`;
export const conflictApi = function(id, json) { export const conflictApi = function (id, json) {
return Vue.prototype.$patch(`${conflictUrl}${id}`, json) return Vue.prototype.$patch(`${conflictUrl}${id}`, json)
}; };
// 班级用户添加备注 // 班级用户添加备注
const addPeriodsClassUserDescUrl = `/api/admin/class/user/desc`; const addPeriodsClassUserDescUrl = `/api/admin/class/user/desc`;
export const addPeriodsClassUserDescApi = function(id, json) { export const addPeriodsClassUserDescApi = function (id, json) {
return Vue.prototype.$post(`${addPeriodsClassUserDescUrl}/${id}`, json) return Vue.prototype.$post(`${addPeriodsClassUserDescUrl}/${id}`, json)
}; };
// 复制商品 // 复制商品
const copyShopUrl = `/api/admin/goods/copy/`; const copyShopUrl = `/api/admin/goods/copy/`;
export const copyShopApi = function(id) { export const copyShopApi = function (id) {
return Vue.prototype.$post(`${copyShopUrl}${id}`) return Vue.prototype.$post(`${copyShopUrl}${id}`)
}; };
// 获取media详情 // 获取media详情
const getMediaUrl = `/api/admin/open/media/info`; const getMediaUrl = `/api/admin/open/media/info`;
export const getMediaApi = function(id) { export const getMediaApi = function (id) {
return Vue.prototype.$fetch(`${getMediaUrl}?media_id=${id}`) return Vue.prototype.$fetch(`${getMediaUrl}?media_id=${id}`)
}; };
// 期数数据统计 // 期数数据统计
const getPeriodsStatisticsUrl = '/api/admin/periods/statistics/'; const getPeriodsStatisticsUrl = '/api/admin/periods/statistics/';
export const getPeriodsStatisticsApi = function(id) { export const getPeriodsStatisticsApi = function (id) {
return Vue.prototype.$fetch(`${getPeriodsStatisticsUrl}${id}`) return Vue.prototype.$fetch(`${getPeriodsStatisticsUrl}${id}`)
}; };
// 班级数据统计 // 班级数据统计
const getClassStatisticsUrl = `/api/admin/periods/class/statistics/`; const getClassStatisticsUrl = `/api/admin/periods/class/statistics/`;
export const getClassStatisticsApi = function(periods_id, class_id, json) { export const getClassStatisticsApi = function (periods_id, class_id, json) {
return Vue.prototype.$fetch(`${getClassStatisticsUrl}${periods_id}/${class_id}`, json) return Vue.prototype.$fetch(`${getClassStatisticsUrl}${periods_id}/${class_id}`, json)
}; };
// 用户看课情况 // 用户看课情况
const userLookUrl = `/api/admin/user/static/list/`; const userLookUrl = `/api/admin/user/static/list/`;
export const userLookApi = function(periods_id, user_id, json) { export const userLookApi = function (periods_id, user_id, json) {
return Vue.prototype.$fetch(`${userLookUrl}${periods_id}/${user_id}`, json) return Vue.prototype.$fetch(`${userLookUrl}${periods_id}/${user_id}`, json)
}; };
//订单统计 //订单统计
const orderCountUrl = `/api/admin/order/statistics`; const orderCountUrl = `/api/admin/order/statistics`;
export const orderCountApi = function(json) { export const orderCountApi = function (json) {
return Vue.prototype.$fetch(orderCountUrl, json) return Vue.prototype.$fetch(orderCountUrl, json)
}; };
// 切换期数与班级 // 切换期数与班级
const changeClassUrl = `/api/admin/change/class`; const changeClassUrl = `/api/admin/change/class`;
export const changeClassApi = function(json) { export const changeClassApi = function (json) {
return Vue.prototype.$put(changeClassUrl, json) return Vue.prototype.$put(changeClassUrl, json)
}; };
// 创建微信推广二维码 // 创建微信推广二维码
const createQrCodeUrl = '/api/admin/create/wechat/qrcode'; const createQrCodeUrl = '/api/admin/create/wechat/qrcode';
export const createQrCodeApi = function(json) { export const createQrCodeApi = function (json) {
return Vue.prototype.$post(createQrCodeUrl, json) return Vue.prototype.$post(createQrCodeUrl, json)
}; };
// 获取公众号二维码 // 获取公众号二维码
const getQrCodeListUrl = '/api/admin/wechat/qrcode/list'; const getQrCodeListUrl = '/api/admin/wechat/qrcode/list';
export const getQrCodeListApi = function(json) { export const getQrCodeListApi = function (json) {
return Vue.prototype.$fetch(getQrCodeListUrl, json) return Vue.prototype.$fetch(getQrCodeListUrl, json)
}; };
// 每日关注取关统计 // 每日关注取关统计
const getWatchListUrl = '/api/admin/open/subscribe/statistics'; const getWatchListUrl = '/api/admin/open/subscribe/statistics';
export const getWatchListApi = function(json) { export const getWatchListApi = function (json) {
return Vue.prototype.$fetch(getWatchListUrl, json) return Vue.prototype.$fetch(getWatchListUrl, json)
}; };
// 获取群发结果 // 获取群发结果
...@@ -584,87 +584,87 @@ export const getWatchListApi = function(json) { ...@@ -584,87 +584,87 @@ export const getWatchListApi = function(json) {
// }; // };
// 获取微信授权 // 获取微信授权
const getwechatParamUrl = `${_baseUrl}api/client/jssdk`; const getwechatParamUrl = `${_baseUrl}api/client/jssdk`;
export const getwechatParam = function(json) { export const getwechatParam = function (json) {
return Vue.prototype.$fetch(getwechatParamUrl, json) return Vue.prototype.$fetch(getwechatParamUrl, json)
}; };
// 默认当前体验营期数 // 默认当前体验营期数
const getDefaultPeriodsUrl = '/api/admin/periods/default'; const getDefaultPeriodsUrl = '/api/admin/periods/default';
export const getDefaultPeriodsApi = function() { export const getDefaultPeriodsApi = function () {
return Vue.prototype.$fetch(getDefaultPeriodsUrl) return Vue.prototype.$fetch(getDefaultPeriodsUrl)
}; };
// 修改二维码管理 // 修改二维码管理
const updateQrCodeUrl = '/api/admin/wechat/qrcode'; const updateQrCodeUrl = '/api/admin/wechat/qrcode';
export const updateQrCodeApi = function(id, json) { export const updateQrCodeApi = function (id, json) {
return Vue.prototype.$put(`${updateQrCodeUrl}/${id}`, json) return Vue.prototype.$put(`${updateQrCodeUrl}/${id}`, json)
}; };
// 获取二维码列表详情 // 获取二维码列表详情
const getQrCodeDetailUrl = '/api/admin/wechat/qrcode'; const getQrCodeDetailUrl = '/api/admin/wechat/qrcode';
export const getQrCodeDetailUrlApi = function(id) { export const getQrCodeDetailUrlApi = function (id) {
return Vue.prototype.$fetch(`${getQrCodeDetailUrl}/${id}`) return Vue.prototype.$fetch(`${getQrCodeDetailUrl}/${id}`)
}; };
const getAdsListlUrl = '/api/public/ads/list'; const getAdsListlUrl = '/api/public/ads/list';
export const getAdsListApi = function(json) { export const getAdsListApi = function (json) {
return Vue.prototype.$fetch(getAdsListlUrl, json) return Vue.prototype.$fetch(getAdsListlUrl, json)
}; };
const getAdsInnerListUrl = '/api/admin/ads/list'; const getAdsInnerListUrl = '/api/admin/ads/list';
export const getAdsInnerListApi = function(json) { export const getAdsInnerListApi = function (json) {
return Vue.prototype.$fetch(getAdsInnerListUrl, json) return Vue.prototype.$fetch(getAdsInnerListUrl, json)
}; };
// 外部投放修改备注 // 外部投放修改备注
const updateAdsInnerUrl = '/api/admin/ads'; const updateAdsInnerUrl = '/api/admin/ads';
export const updateAdsInnerApi = function(id, json) { export const updateAdsInnerApi = function (id, json) {
return Vue.prototype.$put(`${updateAdsInnerUrl}/${id}`, json) return Vue.prototype.$put(`${updateAdsInnerUrl}/${id}`, json)
}; };
// 外部投放批量修改备注 // 外部投放批量修改备注
const updateAdsInnerPlUrl = '/api/admin/ads/multi/desc'; const updateAdsInnerPlUrl = '/api/admin/ads/multi/desc';
export const updateAdsInnerPlApi = function(json) { export const updateAdsInnerPlApi = function (json) {
return Vue.prototype.$put(`${updateAdsInnerPlUrl}`, json) return Vue.prototype.$put(`${updateAdsInnerPlUrl}`, json)
}; };
// 订单使用红包列表 // 订单使用红包列表
const getCouponListUrl = '/api/admin/order/coupon'; const getCouponListUrl = '/api/admin/order/coupon';
export const getCouponListApi = function(json) { export const getCouponListApi = function (json) {
return Vue.prototype.$fetch(getCouponListUrl, json) return Vue.prototype.$fetch(getCouponListUrl, json)
}; };
// 更新二维码备注 // 更新二维码备注
const updateQrcodeDescUrl = '/api/admin/wechat/qrcode/desc'; const updateQrcodeDescUrl = '/api/admin/wechat/qrcode/desc';
export const updateQrcodeDescApi = function(id, json) { export const updateQrcodeDescApi = function (id, json) {
return Vue.prototype.$put(`${updateQrcodeDescUrl}/${id}`, json) return Vue.prototype.$put(`${updateQrcodeDescUrl}/${id}`, json)
}; };
// banner上下架 // banner上下架
const bannerChangeStatusUrl = `/api/admin/banner/status/`; const bannerChangeStatusUrl = `/api/admin/banner/status/`;
export const bannerChangeStatusApi = function(id, json) { export const bannerChangeStatusApi = function (id, json) {
return Vue.prototype.$put(`${bannerChangeStatusUrl}${id}`, json) return Vue.prototype.$put(`${bannerChangeStatusUrl}${id}`, json)
}; };
// 微信用户数据分析 // 微信用户数据分析
const getWechatStatisticListUrl = '/api/admin/wechat/statistics'; const getWechatStatisticListUrl = '/api/admin/wechat/statistics';
export const getWechatStatisticListApi = function(json) { export const getWechatStatisticListApi = function (json) {
return Vue.prototype.$fetch(getWechatStatisticListUrl, json) return Vue.prototype.$fetch(getWechatStatisticListUrl, json)
}; };
// 同步用户手机号 // 同步用户手机号
const getSyncUserUrl = '/api/admin/student/mobile'; const getSyncUserUrl = '/api/admin/student/mobile';
export const getSyncUserApi = function(json) { export const getSyncUserApi = function (json) {
return Vue.prototype.$fetch(getSyncUserUrl, json) return Vue.prototype.$fetch(getSyncUserUrl, json)
}; };
// 获取关注统计详情 // 获取关注统计详情
const getStatisticsDetailUrl = '/api/admin/open/subscribe/statistics/detail'; const getStatisticsDetailUrl = '/api/admin/open/subscribe/statistics/detail';
export const getStatisticsDetailApi = function(json) { export const getStatisticsDetailApi = function (json) {
return Vue.prototype.$fetch(getStatisticsDetailUrl, json) return Vue.prototype.$fetch(getStatisticsDetailUrl, json)
}; };
// 修改商品备注 // 修改商品备注
const editGoodsDescUrl = `/api/admin/goods/info/desc/`; const editGoodsDescUrl = `/api/admin/goods/info/desc/`;
export const editGoodsDescApi = function(goodsId, json) { export const editGoodsDescApi = function (goodsId, json) {
return Vue.prototype.$put(`${editGoodsDescUrl}${goodsId}`, json) return Vue.prototype.$put(`${editGoodsDescUrl}${goodsId}`, json)
}; };
// 管理员密码修改 // 管理员密码修改
const editAdminPasswordUrl = `/api/admin/user/passwd`; const editAdminPasswordUrl = `/api/admin/user/passwd`;
export const editAdminPasswordApi = function(json) { export const editAdminPasswordApi = function (json) {
return Vue.prototype.$patch(editAdminPasswordUrl, json) return Vue.prototype.$patch(editAdminPasswordUrl, json)
}; };
// 导出 // 导出
export const exportExcelApi = function(url, params) { export const exportExcelApi = function (url, params) {
url = `${url}?`; url = `${url}?`;
let json = JSON.parse(JSON.stringify(params)) let json = JSON.parse(JSON.stringify(params))
for (let k in json) { for (let k in json) {
...@@ -683,16 +683,16 @@ export const exportExcelApi = function(url, params) { ...@@ -683,16 +683,16 @@ export const exportExcelApi = function(url, params) {
} }
json.sing = "singsingenglish21000"; json.sing = "singsingenglish21000";
params.param_token = md5(JSON.stringify(json)); params.param_token = md5(JSON.stringify(json));
let urlEncode = function(param, key, encode) { let urlEncode = function (param, key, encode) {
if (param == null) return ''; if (param == null) return '';
let paramStr = []; let paramStr = [];
let t = typeof(param); let t = typeof (param);
if (t === 'string' || t === 'number' || t === 'boolean') { if (t === 'string' || t === 'number' || t === 'boolean') {
paramStr.push( key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param)) paramStr.push(key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param))
} else { } else {
for (let i in param) { for (let i in param) {
let k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i); let k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
paramStr.push(urlEncode(param[i], k, encode)) ; paramStr.push(urlEncode(param[i], k, encode));
} }
} }
return paramStr.join('&'); return paramStr.join('&');
...@@ -703,368 +703,368 @@ export const exportExcelApi = function(url, params) { ...@@ -703,368 +703,368 @@ export const exportExcelApi = function(url, params) {
}; };
// 来源码列表 // 来源码列表
const getSourceListUrl = '/api/admin/code/rule'; const getSourceListUrl = '/api/admin/code/rule';
export const getSourceListApi = function(json) { export const getSourceListApi = function (json) {
return Vue.prototype.$fetch(getSourceListUrl, json) return Vue.prototype.$fetch(getSourceListUrl, json)
}; };
// 添加来源码 // 添加来源码
const addSourceUrl = '/api/admin/code/rule'; const addSourceUrl = '/api/admin/code/rule';
export const addSourceApi = function(json) { export const addSourceApi = function (json) {
return Vue.prototype.$post(addSourceUrl, json) return Vue.prototype.$post(addSourceUrl, json)
}; };
// 修改来源码 // 修改来源码
const updateSourceUrl = '/api/admin/code/rule'; const updateSourceUrl = '/api/admin/code/rule';
export const updateSourceApi = function(id, json) { export const updateSourceApi = function (id, json) {
return Vue.prototype.$put(`${updateSourceUrl}/${id}`, json) return Vue.prototype.$put(`${updateSourceUrl}/${id}`, json)
}; };
// 删除来源码 // 删除来源码
const delSourceUrl = `/api/admin/code/rule/`; const delSourceUrl = `/api/admin/code/rule/`;
export const delSourceApi = function(id) { export const delSourceApi = function (id) {
return Vue.prototype.$del(`${delSourceUrl}${id}`) return Vue.prototype.$del(`${delSourceUrl}${id}`)
}; };
// 修改商品购买数量 // 修改商品购买数量
const updateGoodsNumberUrl = '/api/admin/goods/buy/nums'; const updateGoodsNumberUrl = '/api/admin/goods/buy/nums';
export const updateGoodsNumbeApi = function(id, json) { export const updateGoodsNumbeApi = function (id, json) {
return Vue.prototype.$put(`${updateGoodsNumberUrl}/${id}`, json) return Vue.prototype.$put(`${updateGoodsNumberUrl}/${id}`, json)
}; };
// 获取班级用户备注列表 // 获取班级用户备注列表
const getUserDescListUrl = '/api/admin/class/user/desc/'; const getUserDescListUrl = '/api/admin/class/user/desc/';
export const getUserDescListApi = function(id, json) { export const getUserDescListApi = function (id, json) {
return Vue.prototype.$fetch(`${getUserDescListUrl}${id}`, json) return Vue.prototype.$fetch(`${getUserDescListUrl}${id}`, json)
}; };
// 更改用户看课权限,添加老师,意向等级 // 更改用户看课权限,添加老师,意向等级
const updateUserPrivilegeUrl = '/api/admin/class/user'; const updateUserPrivilegeUrl = '/api/admin/class/user';
export const updateUserPrivilegeApi = function(id, json) { export const updateUserPrivilegeApi = function (id, json) {
return Vue.prototype.$put(`${updateUserPrivilegeUrl}/${id}`, json) return Vue.prototype.$put(`${updateUserPrivilegeUrl}/${id}`, json)
}; };
// 修改订单推广人信息 // 修改订单推广人信息
const updateOrderTeacherUrl = '/api/admin/order/invite'; const updateOrderTeacherUrl = '/api/admin/order/invite';
export const updateOrderTeacherApi = function(id, teacherId) { export const updateOrderTeacherApi = function (id, teacherId) {
return Vue.prototype.$put(`${updateOrderTeacherUrl}/${id}/${teacherId}`) return Vue.prototype.$put(`${updateOrderTeacherUrl}/${id}/${teacherId}`)
}; };
// 用户提现 api/admin/bill/pay/to/user // 用户提现 api/admin/bill/pay/to/user
const payToUserUrl = '/api/admin/bill/pay/to/user'; const payToUserUrl = '/api/admin/bill/pay/to/user';
export const payToUserApi = function(json) { export const payToUserApi = function (json) {
return Vue.prototype.$post(payToUserUrl, json) return Vue.prototype.$post(payToUserUrl, json)
}; };
// 获取班主任业绩总排行 // 获取班主任业绩总排行
const getTeacherRankListUrl = '/api/admin/teacher/performance'; const getTeacherRankListUrl = '/api/admin/teacher/performance';
export const getTeacherRankListApi = function(json) { export const getTeacherRankListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherRankListUrl}`, json) return Vue.prototype.$fetch(`${getTeacherRankListUrl}`, json)
}; };
// 班主任业绩排行按天 // 班主任业绩排行按天
const getTeacherDayRankListUrl = '/api/admin/teacher/performance/day'; const getTeacherDayRankListUrl = '/api/admin/teacher/performance/day';
export const getTeacherDayRankListApi = function(json) { export const getTeacherDayRankListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherDayRankListUrl}`, json) return Vue.prototype.$fetch(`${getTeacherDayRankListUrl}`, json)
}; };
// 老师绑定用户 // 老师绑定用户
const teacherBindUserUrl = '/api/admin/teacher/bind'; const teacherBindUserUrl = '/api/admin/teacher/bind';
export const teacherBindUserApi = function(id, json) { export const teacherBindUserApi = function (id, json) {
return Vue.prototype.$put(`${teacherBindUserUrl}/${id}`, json) return Vue.prototype.$put(`${teacherBindUserUrl}/${id}`, json)
}; };
// 获取老师加用户数,用户老师数 // 获取老师加用户数,用户老师数
const getJoinNumUrl = '/api/admin/class/teacher/group/num/'; const getJoinNumUrl = '/api/admin/class/teacher/group/num/';
export const getJoinNumApi = function(id) { export const getJoinNumApi = function (id) {
return Vue.prototype.$fetch(`${getJoinNumUrl}${id}`) return Vue.prototype.$fetch(`${getJoinNumUrl}${id}`)
}; };
//获取短网址 //获取短网址
const getLinkUrl = `/api/public/short/url`; const getLinkUrl = `/api/public/short/url`;
export const getLinkApi = function(json) { export const getLinkApi = function (json) {
return Vue.prototype.$fetch(`${getLinkUrl}`, json) return Vue.prototype.$fetch(`${getLinkUrl}`, json)
}; };
//获取二维码 //获取二维码
const getqrCodeUrl = `${_baseUrl}api/public/qrcode`; const getqrCodeUrl = `${_baseUrl}api/public/qrcode`;
export const getqrCodeApi = function(json) { export const getqrCodeApi = function (json) {
return Vue.prototype.$fetch(`${getqrCodeUrl}`, json) return Vue.prototype.$fetch(`${getqrCodeUrl}`, json)
}; };
//设置系统指定配置 //设置系统指定配置
const putConfigUrl = `/api/admin/tools/config`; const putConfigUrl = `/api/admin/tools/config`;
export const putConfigApi = function(json) { export const putConfigApi = function (json) {
return Vue.prototype.$put(`${putConfigUrl}`, json) return Vue.prototype.$put(`${putConfigUrl}`, json)
}; };
//用户领取课程日志 //用户领取课程日志
const getClassConfigUrl = `/api/admin/user/receive/course/log`; const getClassConfigUrl = `/api/admin/user/receive/course/log`;
export const getClassConfigApi = function(json) { export const getClassConfigApi = function (json) {
return Vue.prototype.$fetch(`${getClassConfigUrl}`, json) return Vue.prototype.$fetch(`${getClassConfigUrl}`, json)
}; };
//扫码入课编辑备注 //扫码入课编辑备注
const updateDescUrl = `/api/admin/user/receive/course/log/desc/`; const updateDescUrl = `/api/admin/user/receive/course/log/desc/`;
export const updateDescApi = function(json,id) { export const updateDescApi = function (json, id) {
return Vue.prototype.$put(`${updateDescUrl}${id}`, json) return Vue.prototype.$put(`${updateDescUrl}${id}`, json)
}; };
//短信发送记录 //短信发送记录
const getsmsRecordUrl = `/api/admin/sms/log/list`; const getsmsRecordUrl = `/api/admin/sms/log/list`;
export const getsmsRecordApi = function(json) { export const getsmsRecordApi = function (json) {
return Vue.prototype.$fetch(`${getsmsRecordUrl}`, json) return Vue.prototype.$fetch(`${getsmsRecordUrl}`, json)
}; };
//云集订单列表 //云集订单列表
const getyunjiUrl = `/api/admin/yunji/order`; const getyunjiUrl = `/api/admin/yunji/order`;
export const getyunjiApi = function(json) { export const getyunjiApi = function (json) {
return Vue.prototype.$fetch(`${getyunjiUrl}`, json) return Vue.prototype.$fetch(`${getyunjiUrl}`, json)
}; };
//云集绑定老师 //云集绑定老师
const bindTeacherUrl = `/api/admin/yunji/order/bind/teacher/`; const bindTeacherUrl = `/api/admin/yunji/order/bind/teacher/`;
export const bindTeacherApi = function(json,id) { export const bindTeacherApi = function (json, id) {
return Vue.prototype.$put(`${bindTeacherUrl}${json}/${id}`) return Vue.prototype.$put(`${bindTeacherUrl}${json}/${id}`)
}; };
//云集订单备注 //云集订单备注
const orderDescUrl = `/api/admin/yunji/order/desc/`; const orderDescUrl = `/api/admin/yunji/order/desc/`;
export const orderDescApi = function(json,id) { export const orderDescApi = function (json, id) {
return Vue.prototype.$put(`${orderDescUrl}${id}`,json) return Vue.prototype.$put(`${orderDescUrl}${id}`, json)
}; };
//老师销卖课程列表 //老师销卖课程列表
const getTeacherClassUrl = `/api/admin/teacher/performance/course/`; const getTeacherClassUrl = `/api/admin/teacher/performance/course/`;
export const getTeacherClassApi = function(json,id) { export const getTeacherClassApi = function (json, id) {
return Vue.prototype.$fetch(`${getTeacherClassUrl}${id}`,json) return Vue.prototype.$fetch(`${getTeacherClassUrl}${id}`, json)
}; };
//老系统用户列表 //老系统用户列表
const getOldListUrl = `/api/admin/student/course/old/sys/`; const getOldListUrl = `/api/admin/student/course/old/sys/`;
export const getOldListApi = function(json) { export const getOldListApi = function (json) {
return Vue.prototype.$fetch(getOldListUrl,json) return Vue.prototype.$fetch(getOldListUrl, json)
}; };
//删除老系统用户 //删除老系统用户
const delOldUseUrl = `/api/admin/student/course/old/sys/`; const delOldUseUrl = `/api/admin/student/course/old/sys/`;
export const delOldUseApi = function(id) { export const delOldUseApi = function (id) {
return Vue.prototype.$del(`${delOldUseUrl}${id}`) return Vue.prototype.$del(`${delOldUseUrl}${id}`)
}; };
// 存储预览课程数据 // 存储预览课程数据
const saveViewDataUrl = '/api/admin/element/view/'; const saveViewDataUrl = '/api/admin/element/view/';
export const saveViewDataApi = function (id,json) { export const saveViewDataApi = function (id, json) {
return Vue.prototype.$post(`${saveViewDataUrl}${id}`,json) return Vue.prototype.$post(`${saveViewDataUrl}${id}`, json)
}; };
// 获取课程预览内容 // 获取课程预览内容
const getViewDataUrl = '/api/admin/element/view/'; const getViewDataUrl = '/api/admin/element/view/';
export const getViewDataApi = function (id) { export const getViewDataApi = function (id) {
return Vue.prototype.$fetch(`${getViewDataUrl}${id}`) return Vue.prototype.$fetch(`${getViewDataUrl}${id}`)
}; };
// 获取用户积分列表 // 获取用户积分列表
const getIntegralListUrl = '/api/admin/student/integral'; const getIntegralListUrl = '/api/admin/student/integral';
export const getIntegralListApi = function (json) { export const getIntegralListApi = function (json) {
return Vue.prototype.$fetch(getIntegralListUrl,json) return Vue.prototype.$fetch(getIntegralListUrl, json)
}; };
// 积分变更 // 积分变更
const changeIntegralUrl = '/api/admin/student/integral'; const changeIntegralUrl = '/api/admin/student/integral';
export const changeIntegralApi = function (json) { export const changeIntegralApi = function (json) {
return Vue.prototype.$post(changeIntegralUrl,json) return Vue.prototype.$post(changeIntegralUrl, json)
}; };
// 修改添加老师 // 修改添加老师
const changeAddTeacherUrl ='/api/admin/class/user/add/teacher/'; const changeAddTeacherUrl = '/api/admin/class/user/add/teacher/';
export const changeAddTeacherApi = function (id, type) { export const changeAddTeacherApi = function (id, type) {
return Vue.prototype.$put(`${changeAddTeacherUrl}${id}/${type}`,) return Vue.prototype.$put(`${changeAddTeacherUrl}${id}/${type}`)
}; };
// 兑换码列表 // 兑换码列表
const getExchangeListUrl = `/api/admin/exchange/list`; const getExchangeListUrl = `/api/admin/exchange/list`;
export const getExchangeListApi = function (json) { export const getExchangeListApi = function (json) {
return Vue.prototype.$fetch(getExchangeListUrl,json) return Vue.prototype.$fetch(getExchangeListUrl, json)
}; };
// 生成兑换码 // 生成兑换码
const addExchangeUrl = `/api/admin/exchange/add`; const addExchangeUrl = `/api/admin/exchange/add`;
export const addExchangeApi = function (json) { export const addExchangeApi = function (json) {
return Vue.prototype.$post(addExchangeUrl,json) return Vue.prototype.$post(addExchangeUrl, json)
}; };
// 兑换码详情 // 兑换码详情
const exchangeDetailUrl = '/api/admin/exchange/detail/'; const exchangeDetailUrl = '/api/admin/exchange/detail/';
export const exchangeDetailApi = function (id, json) { export const exchangeDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${exchangeDetailUrl}${id}`,json) return Vue.prototype.$fetch(`${exchangeDetailUrl}${id}`, json)
}; };
// 修改兑换码 // 修改兑换码
const editExchangeUrl = `/api/admin/exchange/edit/`; const editExchangeUrl = `/api/admin/exchange/edit/`;
export const editExchangeApi = function (id, json) { export const editExchangeApi = function (id, json) {
return Vue.prototype.$put(`${editExchangeUrl}${id}`,json) return Vue.prototype.$put(`${editExchangeUrl}${id}`, json)
}; };
// 修改用户意向等级 // 修改用户意向等级
const editUserWeightUrl = `/api/admin/class/user/weight/`; const editUserWeightUrl = `/api/admin/class/user/weight/`;
export const editUserWeightApi = function (id, weight,json) { export const editUserWeightApi = function (id, weight, json) {
return Vue.prototype.$put(editUserWeightUrl + id + '/' + weight,json) return Vue.prototype.$put(editUserWeightUrl + id + '/' + weight, json)
}; };
// 修改用户看课权限 // 修改用户看课权限
const editUserViewCourseUrl = `/api/admin/class/user/view/course/`; const editUserViewCourseUrl = `/api/admin/class/user/view/course/`;
export const editUserViewCourseApi = function (id, is_view_course) { export const editUserViewCourseApi = function (id, is_view_course) {
return Vue.prototype.$put(editUserViewCourseUrl + id + '/' + is_view_course) return Vue.prototype.$put(editUserViewCourseUrl + id + '/' + is_view_course)
}; };
// 班主任任务1 添加好友 // 班主任任务1 添加好友
const task1Url = `/api/admin/teacher/task1/`; const task1Url = `/api/admin/teacher/task1/`;
export const task1Api = function (id) { export const task1Api = function (id) {
return Vue.prototype.$fetch(task1Url + id) return Vue.prototype.$fetch(task1Url + id)
}; };
// 班主任任务2 意向等级 // 班主任任务2 意向等级
const task2Url = `/api/admin/teacher/task2/`; const task2Url = `/api/admin/teacher/task2/`;
export const task2Api = function (id) { export const task2Api = function (id) {
return Vue.prototype.$fetch(task2Url + id) return Vue.prototype.$fetch(task2Url + id)
}; };
// 班主任任务3 用户召回 // 班主任任务3 用户召回
const task3Url = `/api/admin/teacher/task3/`; const task3Url = `/api/admin/teacher/task3/`;
export const task3Api = function (id) { export const task3Api = function (id) {
return Vue.prototype.$fetch(task3Url + id) return Vue.prototype.$fetch(task3Url + id)
}; };
// 班主任任务5 活跃用户跟踪 // 班主任任务5 活跃用户跟踪
const task5Url = `/api/admin/teacher/task5/`; const task5Url = `/api/admin/teacher/task5/`;
export const task5Api = function (id) { export const task5Api = function (id) {
return Vue.prototype.$fetch(task5Url + id) return Vue.prototype.$fetch(task5Url + id)
}; };
// 取出当前老师当前期数全勤的用户 // 取出当前老师当前期数全勤的用户
const getOverWatchListUrl = `/api/admin/class/user/over/watch/list/`; const getOverWatchListUrl = `/api/admin/class/user/over/watch/list/`;
export const getOverWatchListApi = function (periods_id, teacher_id, json) { export const getOverWatchListApi = function (periods_id, teacher_id, json) {
return Vue.prototype.$fetch(`${getOverWatchListUrl}${periods_id}/${teacher_id}`,json) return Vue.prototype.$fetch(`${getOverWatchListUrl}${periods_id}/${teacher_id}`, json)
}; };
// 需要召回的用户(今日没看且去除前两天都没看的用户) // 需要召回的用户(今日没看且去除前两天都没看的用户)
const getRecallUrl = `/api/admin/class/user/recall/list/`; const getRecallUrl = `/api/admin/class/user/recall/list/`;
export const getRecallListApi = function (periods_id, teacher_id, json) { export const getRecallListApi = function (periods_id, teacher_id, json) {
return Vue.prototype.$fetch(`${getRecallUrl}${periods_id}/${teacher_id}`,json) return Vue.prototype.$fetch(`${getRecallUrl}${periods_id}/${teacher_id}`, json)
}; };
//通过用户是否看课取出用户 //通过用户是否看课取出用户
const getWatchUserUrl = `/api/admin/class/user/watch/list/`; const getWatchUserUrl = `/api/admin/class/user/watch/list/`;
export const getWatchUserApi = function (periods_id, teacher_id, json) { export const getWatchUserApi = function (periods_id, teacher_id, json) {
return Vue.prototype.$fetch(`${getWatchUserUrl}${periods_id}/${teacher_id}`,json) return Vue.prototype.$fetch(`${getWatchUserUrl}${periods_id}/${teacher_id}`, json)
}; };
// 班主任任务4 // 班主任任务4
const task4Url = '/api/admin/teacher/task4/'; const task4Url = '/api/admin/teacher/task4/';
export const task4Api = function (teacher_id) { export const task4Api = function (teacher_id) {
return Vue.prototype.$fetch(task4Url + teacher_id) return Vue.prototype.$fetch(task4Url + teacher_id)
}; };
// 班主任任务6 // 班主任任务6
const task6Url = '/api/admin/teacher/task6/'; const task6Url = '/api/admin/teacher/task6/';
export const task6Api = function (teacher_id,json) { export const task6Api = function (teacher_id, json) {
return Vue.prototype.$fetch(task6Url + teacher_id,json) return Vue.prototype.$fetch(task6Url + teacher_id, json)
}; };
// 班主任任务7 // 班主任任务7
const task7Url = '/api/admin/teacher/task7/'; const task7Url = '/api/admin/teacher/task7/';
export const task7Api = function (teacher_id,json) { export const task7Api = function (teacher_id, json) {
return Vue.prototype.$fetch(task7Url + teacher_id,json) return Vue.prototype.$fetch(task7Url + teacher_id, json)
}; };
// 批量添加备注 // 批量添加备注
const allDescUrl = `/api/admin/class/user/desc/multiple`; const allDescUrl = `/api/admin/class/user/desc/multiple`;
export const allDescApi = function (json) { export const allDescApi = function (json) {
return Vue.prototype.$post(allDescUrl,json) return Vue.prototype.$post(allDescUrl, json)
}; };
// 修改用户回复 // 修改用户回复
const editUserReplyUrl = `/api/admin/class/user/desc/`; const editUserReplyUrl = `/api/admin/class/user/desc/`;
export const editUserReplyApi = function (id, json) { export const editUserReplyApi = function (id, json) {
return Vue.prototype.$put(editUserReplyUrl + id, json) return Vue.prototype.$put(editUserReplyUrl + id, json)
}; };
// 用户积分排行 // 用户积分排行
const integralUrl = '/api/admin/student/integral/hot/blog'; const integralUrl = '/api/admin/student/integral/hot/blog';
export const integralApi = function (json) { export const integralApi = function (json) {
return Vue.prototype.$fetch(integralUrl,json) return Vue.prototype.$fetch(integralUrl, json)
}; };
// 外部订单批量指定老师邀请激活 // 外部订单批量指定老师邀请激活
const yunjiOrderTeacherUrl = '/api/admin/yunji/order/teacher/'; const yunjiOrderTeacherUrl = '/api/admin/yunji/order/teacher/';
export const yunjiOrderTeacherApi = function (id, json) { export const yunjiOrderTeacherApi = function (id, json) {
return Vue.prototype.$put(yunjiOrderTeacherUrl+id,json) return Vue.prototype.$put(yunjiOrderTeacherUrl + id, json)
}; };
// 获取当前市场招生数据 // 获取当前市场招生数据
const getPeriodsClassCurDataUrl = '/api/admin/periods/class/cur/data'; const getPeriodsClassCurDataUrl = '/api/admin/periods/class/cur/data';
export const getPeriodsClassCurDataApi = function (json) { export const getPeriodsClassCurDataApi = function (json) {
return Vue.prototype.$fetch(getPeriodsClassCurDataUrl,json) return Vue.prototype.$fetch(getPeriodsClassCurDataUrl, json)
}; };
// 批量更新外部订单备注 // 批量更新外部订单备注
const multiUrl = `/api/admin/yunji/order/multi/desc`; const multiUrl = `/api/admin/yunji/order/multi/desc`;
export const multiApi = function (json) { export const multiApi = function (json) {
return Vue.prototype.$put(multiUrl,json) return Vue.prototype.$put(multiUrl, json)
}; };
// 获取当前市场招生数据 // 获取当前市场招生数据
const getSourceByDateUrl = '/api/admin/user/static/list'; const getSourceByDateUrl = '/api/admin/user/static/list';
export const getSourceByDateApi = function (periods_id,user_id,json) { export const getSourceByDateApi = function (periods_id, user_id, json) {
console.log(periods_id,user_id) console.log(periods_id, user_id)
return Vue.prototype.$fetch(`${getSourceByDateUrl}/${periods_id}/${user_id}/v2`,json) return Vue.prototype.$fetch(`${getSourceByDateUrl}/${periods_id}/${user_id}/v2`, json)
}; };
// 批量添加备注 // 批量添加备注
const sendMsgUrl = `/api/admin/multi/msg/user`; const sendMsgUrl = `/api/admin/multi/msg/user`;
export const sendMsgApi = function (json) { export const sendMsgApi = function (json) {
return Vue.prototype.$post(sendMsgUrl,json) return Vue.prototype.$post(sendMsgUrl, json)
}; };
const getMsgListUrl = `/api/admin/muti/msg/list`; const getMsgListUrl = `/api/admin/muti/msg/list`;
export const getMsgListApi = function (json) { export const getMsgListApi = function (json) {
return Vue.prototype.$fetch(getMsgListUrl,json) return Vue.prototype.$fetch(getMsgListUrl, json)
}; };
const getMsgCountUrl = `/api/admin/multi/msg/user`; const getMsgCountUrl = `/api/admin/multi/msg/user`;
export const getMsgCountApi = function (json) { export const getMsgCountApi = function (json) {
return Vue.prototype.$fetch(`${getMsgCountUrl}`,json) return Vue.prototype.$fetch(`${getMsgCountUrl}`, json)
}; };
const updateFansUrl = `/api/admin/init/fans/info`; const updateFansUrl = `/api/admin/init/fans/info`;
export const updateFansApi = function (json) { export const updateFansApi = function (json) {
return Vue.prototype.$put(`${updateFansUrl}`,json) return Vue.prototype.$put(`${updateFansUrl}`, json)
}; };
// 更新外部订单沟通情况 // 更新外部订单沟通情况
const updateContactUrl = `/api/admin/other/order/user/status`; const updateContactUrl = `/api/admin/other/order/user/status`;
export const updateContactApi = function (json) { export const updateContactApi = function (json) {
return Vue.prototype.$put(`${updateContactUrl}`,json) return Vue.prototype.$put(`${updateContactUrl}`, json)
}; };
// 外部渠道批量指派订单老师 // 外部渠道批量指派订单老师
const adsTeacherUrl = `/api/admin/ads/teacher/`; const adsTeacherUrl = `/api/admin/ads/teacher/`;
export const adsTeacherApi = function (id,json) { export const adsTeacherApi = function (id, json) {
return Vue.prototype.$put(`${adsTeacherUrl}${id}`,json) return Vue.prototype.$put(`${adsTeacherUrl}${id}`, json)
}; };
// 更新外部渠道沟通状态 // 更新外部渠道沟通状态
const updateAdsStatusUrl = `/api/admin/ads/user/status`; const updateAdsStatusUrl = `/api/admin/ads/user/status`;
export const updateAdsStatusApi = function (json) { export const updateAdsStatusApi = function (json) {
return Vue.prototype.$put(`${updateAdsStatusUrl}`,json) return Vue.prototype.$put(`${updateAdsStatusUrl}`, json)
}; };
// 更新外部订单地址 // 更新外部订单地址
const editOrderAdressUrl = '/api/admin/order/address/other/'; const editOrderAdressUrl = '/api/admin/order/address/other/';
export const editOrderAdressApi = function (id, json) { export const editOrderAdressApi = function (id, json) {
return Vue.prototype.$put(editOrderAdressUrl+id,json) return Vue.prototype.$put(editOrderAdressUrl + id, json)
}; };
// 看课排行 // 看课排行
const getLookRankUrl = `/api/admin/class/user/watch/ranking/`; const getLookRankUrl = `/api/admin/class/user/watch/ranking/`;
export const getLookRankApi = function (classId,json) { export const getLookRankApi = function (classId, json) {
return Vue.prototype.$fetch(`${getLookRankUrl}${classId}`,json) return Vue.prototype.$fetch(`${getLookRankUrl}${classId}`, json)
}; };
//发生期数消息 //发生期数消息
const postActiveNoticeUrl = `/api/admin/active/notice/`; const postActiveNoticeUrl = `/api/admin/active/notice/`;
export const postActiveNoticeApi = function (classId) { export const postActiveNoticeApi = function (classId) {
return Vue.prototype.$post(`${postActiveNoticeUrl}${classId}`) return Vue.prototype.$post(`${postActiveNoticeUrl}${classId}`)
}; };
//手动创建外部订单列表 //手动创建外部订单列表
const postOtherOrderUrl = `/api/admin/other/order`; const postOtherOrderUrl = `/api/admin/other/order`;
export const postOtherOrderApi = function (json) { export const postOtherOrderApi = function (json) {
return Vue.prototype.$post(`${postOtherOrderUrl}`,json) return Vue.prototype.$post(`${postOtherOrderUrl}`, json)
}; };
//清除外部订单激活信息 //清除外部订单激活信息
export const postClearOtherOrderApi = function (id) { export const postClearOtherOrderApi = function (id) {
return Vue.prototype.$post(`/api/admin/other/order/clear/${id}`) return Vue.prototype.$post(`/api/admin/other/order/clear/${id}`)
}; };
//新建话术/模块 //新建话术/模块
export const postQuestionModularApi = function (json) { export const postQuestionModularApi = function (json) {
return Vue.prototype.$post(`/api/admin/question/`,json) return Vue.prototype.$post(`/api/admin/question/`, json)
}; };
//话术/模块列表 //话术/模块列表
export const getQuestionModularListApi = function (type,json) { export const getQuestionModularListApi = function (type, json) {
return Vue.prototype.$fetch(`/api/admin/question/list/${type}`,json) return Vue.prototype.$fetch(`/api/admin/question/list/${type}`, json)
}; };
//话术/模块详情 //话术/模块详情
export const getQuestionModularDetailApi = function (question_id) { export const getQuestionModularDetailApi = function (question_id) {
return Vue.prototype.$fetch(`/api/admin/question/${question_id}`) return Vue.prototype.$fetch(`/api/admin/question/${question_id}`)
}; };
//更新话术/模块内容 //更新话术/模块内容
export const updateQuestionModularDetailApi = function (question_id,json) { export const updateQuestionModularDetailApi = function (question_id, json) {
return Vue.prototype.$put(`/api/admin/question/${question_id}`,json) return Vue.prototype.$put(`/api/admin/question/${question_id}`, json)
}; };
//删除话术/模块 //删除话术/模块
export const deleteQuestionModularDetailApi = function (question_id) { export const deleteQuestionModularDetailApi = function (question_id) {
...@@ -1072,27 +1072,27 @@ export const deleteQuestionModularDetailApi = function (question_id) { ...@@ -1072,27 +1072,27 @@ export const deleteQuestionModularDetailApi = function (question_id) {
}; };
//话术/模块排序 //话术/模块排序
export const sortQuestionModularDetailApi = function (json) { export const sortQuestionModularDetailApi = function (json) {
return Vue.prototype.$put(`/api/admin/question/sort/`,json) return Vue.prototype.$put(`/api/admin/question/sort/`, json)
}; };
//用户收货地址 //用户收货地址
export const fetchAddressListApi = function (uid) { export const fetchAddressListApi = function (uid) {
return Vue.prototype.$fetch(`/api/admin/student/address/${uid}`) return Vue.prototype.$fetch(`/api/admin/student/address/${uid}`)
}; };
//用户收货地址编辑 //用户收货地址编辑
export const editAddressListApi = function (uid,json) { export const editAddressListApi = function (uid, json) {
return Vue.prototype.$put(`/api/admin/student/address/${uid}`,json) return Vue.prototype.$put(`/api/admin/student/address/${uid}`, json)
}; };
//模板消息 //模板消息
export const getTemplatetApi = function (uid,json) { export const getTemplatetApi = function (uid, json) {
return Vue.prototype.$fetch(`/api/admin/open/template`,json) return Vue.prototype.$fetch(`/api/admin/open/template`, json)
}; };
//发送模板消息 //发送模板消息
export const sendTemplatetApi = function (json) { export const sendTemplatetApi = function (json) {
return Vue.prototype.$post(`/api/admin/open/template/send`,json) return Vue.prototype.$post(`/api/admin/open/template/send`, json)
}; };
//用户收货地址编辑 //用户收货地址编辑
export const addAddressListApi = function (uid,json) { export const addAddressListApi = function (uid, json) {
return Vue.prototype.$post(`/api/admin/student/address/${uid}`,json) return Vue.prototype.$post(`/api/admin/student/address/${uid}`, json)
}; };
//用户当前亲情号 //用户当前亲情号
export const getSubAccountInfoApi = function (uid) { export const getSubAccountInfoApi = function (uid) {
...@@ -1104,11 +1104,11 @@ export const getUserSubAccountListApi = function (uid) { ...@@ -1104,11 +1104,11 @@ export const getUserSubAccountListApi = function (uid) {
}; };
//绑定子账号列表 //绑定子账号列表
export const getSubAccountListApi = function (json) { export const getSubAccountListApi = function (json) {
return Vue.prototype.$fetch(`/api/admin/student/bind/list`,json) return Vue.prototype.$fetch(`/api/admin/student/bind/list`, json)
}; };
//自化体验课列表 //自化体验课列表
export const getAutomationListApi = function (json) { export const getAutomationListApi = function (json) {
return Vue.prototype.$fetch(`/api/admin/automation/list`,json) return Vue.prototype.$fetch(`/api/admin/automation/list`, json)
}; };
//添加期数(云集) //添加期数(云集)
export const addyunjiPeriodApi = function (period_id) { export const addyunjiPeriodApi = function (period_id) {
...@@ -1120,11 +1120,11 @@ export const getOrderTypeApi = function () { ...@@ -1120,11 +1120,11 @@ export const getOrderTypeApi = function () {
}; };
//用户看课记录 //用户看课记录
export const getWatchRecordApi = function (json) { export const getWatchRecordApi = function (json) {
return Vue.prototype.$fetch(`/api/admin/student/teacher/watch`,json) return Vue.prototype.$fetch(`/api/admin/student/teacher/watch`, json)
}; };
//修改优惠券过期时间 //修改优惠券过期时间
export const editCouponDeadlineApi = function (json,coupon_id) { export const editCouponDeadlineApi = function (json, coupon_id) {
return Vue.prototype.$put(`/api/admin/order/coupon/deadline/${coupon_id}`,json) return Vue.prototype.$put(`/api/admin/order/coupon/deadline/${coupon_id}`, json)
}; };
//添加星星活动期数 //添加星星活动期数
export const addStarActivityPeriodApi = function (periods_id) { export const addStarActivityPeriodApi = function (periods_id) {
...@@ -1148,18 +1148,23 @@ export const getYunjiActivityPeriodApi = function () { ...@@ -1148,18 +1148,23 @@ export const getYunjiActivityPeriodApi = function () {
}; };
//待发货列表 //待发货列表
export const getDeliverListApi = function (json) { export const getDeliverListApi = function (json) {
return Vue.prototype.$fetch(`api/admin/order/deliver/list`,json) return Vue.prototype.$fetch(`api/admin/order/deliver/list`, json)
}; };
//主题列表 //主题列表
export const getThemeListApi = function (json) { export const getThemeListApi = function (json) {
return Vue.prototype.$fetch(`api/admin/course/theme/list`,json) return Vue.prototype.$fetch(`api/admin/course/theme/list`, json)
}; };
//待发货列表 //待发货列表
export const editDeliverAddressApi = function (deliver_id,json) { export const editDeliverAddressApi = function (deliver_id, json) {
return Vue.prototype.$put(`/api/admin/order/deliver/edit/${deliver_id}`,json) return Vue.prototype.$put(`/api/admin/order/deliver/edit/${deliver_id}`, json)
}; };
//待发货列表 //待发货列表
export const getDeliverRecordApi = function (json) { export const getDeliverRecordApi = function (json) {
return Vue.prototype.$fetch(`/api/admin/student/deliver/record/list`,json) return Vue.prototype.$fetch(`/api/admin/student/deliver/record/list`, json)
};
//获取转化渠道列表
const getchannelTransListUrl = `${_baseUrl}api/admin/channel/conversion/list`;
export const getchannelTransListApi = function (json) {
return Vue.prototype.$fetch(getchannelTransListUrl, json)
}; };
// /api/admin/student/deliver/record/list // /api/admin/student/deliver/record/list
\ No newline at end of file
...@@ -37,7 +37,7 @@ export default [{ ...@@ -37,7 +37,7 @@ export default [{
name: 'shop', name: 'shop',
component: e => require(['@/components/shop'], e), component: e => require(['@/components/shop'], e),
}, },
}, ] },]
}, { }, {
name: '', name: '',
value: '期数管理', value: '期数管理',
...@@ -53,49 +53,49 @@ export default [{ ...@@ -53,49 +53,49 @@ export default [{
component: e => require(['@/components/periods'], e), component: e => require(['@/components/periods'], e),
} }
}, },
{ {
value: '班级列表', value: '班级列表',
routerName: 'class', routerName: 'class',
path: '/class',
cover: '2-3',
router: {
path: '/class', path: '/class',
cover: '2-3', name: 'class',
router: { component: e => require(['@/components/class'], e),
path: '/class', }
name: 'class', }, {
component: e => require(['@/components/class'], e), value: '市场招生统计',
} routerName: 'marketStatistics',
},{ path: '/marketStatistics',
value: '市场招生统计', cover: '2-5',
routerName: 'marketStatistics', router: {
path: '/marketStatistics', path: '/marketStatistics',
cover: '2-5', name: 'marketStatistics',
router: { component: e => require(['@/components/marketStatistics'], e),
path: '/marketStatistics', }
name: 'marketStatistics', },
component: e => require(['@/components/marketStatistics'], e), {
} value: '不上课日期',
}, routerName: 'noLesson',
{ path: '/noLesson',
value: '不上课日期', cover: '2-4',
routerName: 'noLesson', router: {
path: '/noLesson', path: '/noLesson',
cover: '2-4', name: 'noLesson',
router: { component: e => require(['@/components/noLesson'], e),
path: '/noLesson', }
name: 'noLesson', },
component: e => require(['@/components/noLesson'], e), {
} value: '自化课列表',
}, routerName: 'autoClass',
{ path: '/autoClass',
value: '自化课列表', cover: '2-6',
routerName: 'autoClass', router: {
path: '/autoClass', path: '/autoClass',
cover: '2-6', name: 'autoClass',
router: { component: e => require(['@/components/autoClass'], e),
path: '/autoClass', }
name: 'autoClass', },
component: e => require(['@/components/autoClass'], e),
}
},
] ]
}, { }, {
name: '', name: '',
...@@ -111,7 +111,7 @@ export default [{ ...@@ -111,7 +111,7 @@ export default [{
name: 'teacher', name: 'teacher',
component: e => require(['@/components/teacher'], e), component: e => require(['@/components/teacher'], e),
} }
},{ }, {
value: '月课订单列表', value: '月课订单列表',
routerName: 'monthOrder', routerName: 'monthOrder',
path: '/monthOrder', path: '/monthOrder',
...@@ -122,17 +122,17 @@ export default [{ ...@@ -122,17 +122,17 @@ export default [{
component: e => require(['@/components/monthOrder'], e), component: e => require(['@/components/monthOrder'], e),
} }
}, },
{ {
value: '月课订单统计', value: '月课订单统计',
routerName: 'monthOrderCount', routerName: 'monthOrderCount',
path: '/monthOrderCount',
cover: '5-12',
router: {
path: '/monthOrderCount', path: '/monthOrderCount',
cover: '5-12', name: 'monthOrderCount',
router: { component: e => require(['@/components/orderCount/monthOrderCount'], e),
path: '/monthOrderCount', }
name: 'monthOrderCount', }, {
component: e => require(['@/components/orderCount/monthOrderCount'], e),
}
},{
value: '退款列表', value: '退款列表',
routerName: 'refund', routerName: 'refund',
path: '/refund', path: '/refund',
...@@ -142,7 +142,7 @@ export default [{ ...@@ -142,7 +142,7 @@ export default [{
name: 'refund', name: 'refund',
component: e => require(['@/components/refund'], e), component: e => require(['@/components/refund'], e),
} }
},{ }, {
value: '业绩排行', value: '业绩排行',
routerName: 'achievement', routerName: 'achievement',
path: '/achievement', path: '/achievement',
...@@ -152,7 +152,7 @@ export default [{ ...@@ -152,7 +152,7 @@ export default [{
name: 'achievement', name: 'achievement',
component: e => require(['@/components/achievement'], e), component: e => require(['@/components/achievement'], e),
} }
},{ }, {
value: '话术列表', value: '话术列表',
routerName: 'talkingSkill', routerName: 'talkingSkill',
path: '/talkingSkill', path: '/talkingSkill',
...@@ -164,7 +164,7 @@ export default [{ ...@@ -164,7 +164,7 @@ export default [{
} }
},] },]
}, },
{ {
name: '', name: '',
value: '用户管理', value: '用户管理',
icon: 'icon-laoshi', icon: 'icon-laoshi',
...@@ -215,22 +215,23 @@ export default [{ ...@@ -215,22 +215,23 @@ export default [{
}, },
] ]
}, },
{ {
name: '', name: '',
value: '订单管理', value: '订单管理',
icon: 'icon-dingdan', icon: 'icon-dingdan',
list: [{ list: [
value: '日课订单列表', {
routerName: 'order', value: '日课订单列表',
path: '/order', routerName: 'order',
cover: '5-1',
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: '提现列表', value: '提现列表',
routerName: 'putForward', routerName: 'putForward',
path: '/putForward', path: '/putForward',
...@@ -251,7 +252,8 @@ export default [{ ...@@ -251,7 +252,8 @@ export default [{
name: 'consignment', name: 'consignment',
component: e => require(['@/components/consignment'], e), component: e => require(['@/components/consignment'], e),
} }
}, { },
{
value: '订单统计', value: '订单统计',
routerName: 'orderCount', routerName: 'orderCount',
path: '/orderCount', path: '/orderCount',
...@@ -261,7 +263,8 @@ export default [{ ...@@ -261,7 +263,8 @@ export default [{
name: 'orderCount', name: 'orderCount',
component: e => require(['@/components/orderCount/index'], e), component: e => require(['@/components/orderCount/index'], e),
} }
},{ },
{
value: '日课订单统计', value: '日课订单统计',
routerName: 'dayOrderCount', routerName: 'dayOrderCount',
path: '/dayOrderCount', path: '/dayOrderCount',
...@@ -305,7 +308,6 @@ export default [{ ...@@ -305,7 +308,6 @@ export default [{
component: e => require(['@/components/yunji'], e), component: e => require(['@/components/yunji'], e),
} }
}, },
{ {
value: '兑换码管理', value: '兑换码管理',
routerName: 'exchange', routerName: 'exchange',
...@@ -316,10 +318,10 @@ export default [{ ...@@ -316,10 +318,10 @@ export default [{
name: 'exchange', name: 'exchange',
component: e => require(['@/components/exchange'], e), component: e => require(['@/components/exchange'], e),
} }
}, }
] ]
}, },
{ {
name: '', name: '',
value: '实物管理', value: '实物管理',
icon: 'icon-shu', icon: 'icon-shu',
...@@ -334,28 +336,28 @@ export default [{ ...@@ -334,28 +336,28 @@ export default [{
component: e => require(['@/components/single'], e), component: e => require(['@/components/single'], e),
} }
}, },
{ {
value: '盒子列表', value: '盒子列表',
routerName: 'box', routerName: 'box',
path: '/box',
cover: '6-2',
router: {
path: '/box', path: '/box',
cover: '6-2', name: 'box',
router: { component: e => require(['@/components/box'], e),
path: '/box', }
name: 'box', },
component: e => require(['@/components/box'], e), {
} value: '待发货列表',
}, routerName: 'logistics',
{ path: '/logistics',
value: '待发货列表', cover: '6-3',
routerName: 'logistics', router: {
path: '/logistics', path: '/logistics',
cover: '6-3', name: 'logistics',
router: { component: e => require(['@/components/logistics'], e),
path: '/logistics', }
name: 'logistics', },
component: e => require(['@/components/logistics'], e),
}
},
] ]
}, { }, {
name: '', name: '',
...@@ -372,97 +374,114 @@ export default [{ ...@@ -372,97 +374,114 @@ export default [{
component: e => require(['@/components/weChat/focusReply'], e), component: e => require(['@/components/weChat/focusReply'], e),
} }
}, },
{ {
value: '关键词回复', value: '关键词回复',
routerName: 'autoReply', routerName: 'autoReply',
path: '/autoReply',
cover: '7-2',
router: {
path: '/autoReply', path: '/autoReply',
cover: '7-2', name: 'autoReply',
router: { component: e => require(['@/components/weChat/autoReply'], e),
path: '/autoReply', }
name: 'autoReply',
component: e => require(['@/components/weChat/autoReply'], e),
}
}, },
{ {
value: '公众号菜单', value: '公众号菜单',
routerName: 'weChat', routerName: 'weChat',
path: '/weChat',
cover: '7-3',
router: {
path: '/weChat', path: '/weChat',
cover: '7-3', name: 'weChat',
router: { component: e => require(['@/components/weChat'], e),
path: '/weChat', }
name: 'weChat', },
component: e => require(['@/components/weChat'], e), {
} value: '素材管理',
}, routerName: 'weChatResource',
{ path: '/weChatResource',
value: '素材管理', cover: '7-4',
routerName: 'weChatResource', router: {
path: '/weChatResource', path: '/weChatResource',
cover: '7-4', name: 'weChatResource',
router: { component: e => require(['@/components/weChat/weChatResource'], e),
path: '/weChatResource', }
name: 'weChatResource', },
component: e => require(['@/components/weChat/weChatResource'], e), {
} value: '二维码管理',
}, routerName: 'qrcode',
{ path: '/qrcode',
value: '二维码管理', cover: '7-6',
routerName: 'qrcode', router: {
path: '/qrcode', path: '/qrcode',
cover: '7-6', name: 'qrcode',
router: { component: e => require(['@/components/qrcode'], e),
path: '/qrcode', }
name: 'qrcode', },
component: e => require(['@/components/qrcode'], e), {
} value: '群发助手',
}, routerName: 'groupSend',
{ path: '/groupSend',
value: '群发助手', cover: '7-7',
routerName: 'groupSend', router: {
path: '/groupSend', path: '/groupSend',
cover: '7-7', name: 'groupSend',
router: { component: e => require(['@/components/groupSend'], e),
path: '/groupSend', }
name: 'groupSend', },
component: e => require(['@/components/groupSend'], e), {
} value: '关注取关统计',
}, routerName: 'watchCount',
{ path: '/watchCount',
value: '关注取关统计', cover: '7-8',
routerName: 'watchCount', router: {
path: '/watchCount', path: '/watchCount',
cover: '7-8', name: 'watchCount',
router: { component: e => require(['@/components/watchCount'], e),
path: '/watchCount', }
name: 'watchCount', },
component: e => require(['@/components/watchCount'], e), {
} value: '微信统计',
}, routerName: 'weChatStatistics',
{ path: '/weChatStatistics',
value: '微信统计', cover: '7-10',
routerName: 'weChatStatistics', router: {
path: '/weChatStatistics', path: '/weChatStatistics',
cover: '7-10', name: 'weChatStatistics',
router: { component: e => require(['@/components/weChatStatistics'], e),
path: '/weChatStatistics', }
name: 'weChatStatistics', },
component: e => require(['@/components/weChatStatistics'], e), {
} value: '测试',
}, routerName: 'test',
{ path: '/test',
value: '测试', cover: '7-11',
routerName: 'test', router: {
path: '/test', path: '/test',
cover: '7-11', name: 'test',
router: { component: e => require(['@/components/weChat/test'], e),
path: '/test', }
name: 'test', },
component: e => require(['@/components/weChat/test'], e),
}
},
] ]
}, { },
{
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: '', name: '',
value: '系统管理', value: '系统管理',
icon: 'icon-xitongquanxian', icon: 'icon-xitongquanxian',
...@@ -487,100 +506,119 @@ export default [{ ...@@ -487,100 +506,119 @@ export default [{
component: e => require(['@/components/externalLaunch'], e), component: e => require(['@/components/externalLaunch'], e),
} }
}, },
{ {
value: '来源码管理', value: '来源码管理',
routerName: 'sourceManage', routerName: 'sourceManage',
path: '/sourceManage',
cover: '10-1',
router: {
path: '/sourceManage', path: '/sourceManage',
cover: '10-1', name: 'sourceManage',
router: { component: e => require(['@/components/sourceManage'], e),
path: '/sourceManage', }
name: 'sourceManage', },
component: e => require(['@/components/sourceManage'], e), {
} value: '短信发送记录',
}, routerName: 'smsRecord',
{ path: '/smsRecord',
value: '短信发送记录', cover: '10-2',
routerName: 'smsRecord', router: {
path: '/smsRecord', path: '/smsRecord',
cover: '10-2', name: 'smsRecord',
router: { component: e => require(['@/components/smsRecord'], e),
path: '/smsRecord', }
name: 'smsRecord', },
component: e => require(['@/components/smsRecord'], e), {
} value: '系统配置',
}, routerName: 'config',
{ path: '/config',
value: '系统配置', cover: '10-3',
routerName: 'config', router: {
path: '/config', path: '/config',
cover: '10-3', name: 'config',
component: e => require(['@/components/config'], e),
}
},
]
},
{
name: '',
value: '数据管理',
icon: 'icon-shezhi',
list: [
{
value: '渠道转化列表',
routerName: 'channelTransList',
path: '/channelTransList',
cover: '9-1',
router: { router: {
path: '/config', path: '/channelTransList',
name: 'config', name: 'channelTransList',
component: e => require(['@/components/config'], e), component: e => require(['@/components/channelTransList'], e),
} }
}, }
] ]
}, },
{ {
name: '', name: '',
value: '后台管理', value: '后台管理',
icon: 'icon-shezhi', icon: 'icon-shezhi',
list: [{ list: [{
value: '账号管理', value: '账号管理',
routerName: 'admin', routerName: 'admin',
path: '/admin',
cover: '8-1',
router: {
path: '/admin', path: '/admin',
cover: '8-1', name: 'admin',
router: { component: e => require(['@/components/system/admin'], e),
path: '/admin', }
name: 'admin', }, {
component: e => require(['@/components/system/admin'], e), value: '角色管理',
} routerName: 'role',
}, { path: '/role',
value: '角色管理', cover: '8-2',
routerName: 'role', router: {
path: '/role', path: '/role',
cover: '8-2', name: 'role',
router: { component: e => require(['@/components/system/role'], e),
path: '/role', }
name: 'role', }, {
component: e => require(['@/components/system/role'], e), value: '菜单管理',
} routerName: 'menu',
}, { path: '/menu',
value: '菜单管理', cover: '8-3',
routerName: 'menu', router: {
path: '/menu', path: '/menu',
cover: '8-3', name: 'menu',
router: { component: e => require(['@/components/system/menu'], e),
path: '/menu', }
name: 'menu', }, {
component: e => require(['@/components/system/menu'], e), value: '系统配置',
} routerName: 'sysConfig',
}, { path: '/sysConfig',
value: '系统配置', cover: '8-4',
routerName: 'sysConfig', router: {
path: '/sysConfig', path: '/sysConfig',
cover: '8-4', name: 'sysConfig',
router: { component: e => require(['@/components/system/sysConfig'], e),
path: '/sysConfig', }
name: 'sysConfig',
component: e => require(['@/components/system/sysConfig'], e),
}
}, },
{
value: '操作日志', {
routerName: 'adminLog', value: '操作日志',
path: '/adminLog', routerName: 'adminLog',
cover: '8-5', path: '/adminLog',
router: { cover: '8-5',
path: '/adminLog', router: {
name: 'adminLog', path: '/adminLog',
component: e => require(['@/components/system/adminLog'], e), 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