Commit 9447f5db authored by chenfenglei's avatar chenfenglei

工具管理修改

parent 4ec672e0
......@@ -14,7 +14,7 @@
</el-cascader>
</el-form-item>
<el-form-item label="老师">
<el-select v-model="form.teacher_id" placeholder="请选择">
<el-select v-model="form.teacher_id" placeholder="请选择" filterable >
<el-option
v-for="(data,index) in teacherList"
:key="index"
......
......@@ -140,12 +140,12 @@
{{scope.row.type|classTypeFilter}}
</template>
</el-table-column>
<el-table-column
<!-- <el-table-column
label="班级名称">
<template slot-scope="scope">
{{scope.row.teacher_name}}一班
</template>
</el-table-column>
</el-table-column> -->
<el-table-column
prop="max_join_num"
label="最大人数">
......@@ -254,12 +254,13 @@
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 = '';
this.getClassList()
this.getClassList()
})
} else {
getDefaultPeriodsApi().then(res=>{
if(res){
this.goods_id = res.goods_id;
console.log(res)
this.selectedGoods = [parseInt(res.goods_id),parseInt(res.id)];
getPeriodsApi({goods_id:this.selectedGoods[0]}).then(res=>{
res.list.forEach(i=>{i.name = i.title});
......
<template>
<div class="head-index">
<img class="logo" :src="iconUrl" @click="toHome"/>{{$store.state.userName}}
<img class="logo" :src="iconUrl" @click="toHome" />{{$store.state.userName}}
<div class="fl-r">
<!-- <el-button round size="mini" class="edit-btn" @click="dialogUpdate=true">修改密码 </el-button>
<el-button round size="mini" class="edit-btn" @click="logOut">退出登录 </el-button> -->
<!-- <el-button round size="mini" class="edit-btn" @click="dialogUpdate=true">修改密码 </el-button> -->
<el-dropdown>
<el-button round size="mini" class="edit-btn" >工具管理 <i class="el-icon-arrow-down el-icon--right"></i></el-button>
<el-button round size="mini" class="edit-btn">工具管理
<i class="el-icon-arrow-down el-icon--right"></i>
</el-button>
<el-dropdown-menu slot="dropdown">
<!-- <el-dropdown-item @click.native="entranceObj.show=true">无需登录入口</el-dropdown-item> -->
<el-dropdown-item @click.native="qrcodeObj.show=true">生成二维码</el-dropdown-item>
<el-dropdown-item @click.native="linkObj.show=true">生成短链接</el-dropdown-item>
<el-dropdown-item @click.native="linkObj.show=true">生成工具</el-dropdown-item>
<el-dropdown-item @click.native="userObj.show=true">清除缓存</el-dropdown-item>
<el-dropdown-item @click.native="dialogUpdate=true">修改密码</el-dropdown-item>
<el-dropdown-item @click.native="logOut">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<el-dialog
title="修改密码"
:visible.sync="dialogUpdate"
center
width="400px">
<el-dialog title="修改密码" :visible.sync="dialogUpdate" center width="400px">
<el-form ref="ruleForm2" label-width="80px" :model="ruleForm2" :rules="rules2">
<el-form-item label="原密码" prop="oldPass">
<el-input type="password" v-model="ruleForm2.oldPass"></el-input>
......@@ -35,21 +30,17 @@
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogUpdate = false">取 消</el-button>
<el-button type="primary" @click="changePass">确 定</el-button>
<el-button type="primary" @click="changePass">确 定</el-button>
</span>
</el-dialog>
<clear-cache :userObj="userObj" />
<entrance :entranceObj="entranceObj" />
<get-link :linkObj="linkObj" />
<getqr-code :qrcodeObj="qrcodeObj" />
<get-link :linkObj="linkObj" />
</div>
</template>
<script>
import clearCache from "./other/clearCache";
import entrance from "./other/entrance";
import getLink from "./other/getLink";
import getqrCode from "./other/getqrCode";
import clearCache from "./other/clearCache";
import getLink from "./other/getLink";
import { logoutApi, editAdminPasswordApi } from "../../service/api";
import iconUrl from "../../assets/logos.png";
import cookie from "../../util/cookie";
......@@ -84,22 +75,14 @@ export default {
}
};
return {
userObj:{
title:'清除缓存',
show:false
},
entranceObj:{
title:'无需登录入口',
show:false
},
linkObj:{
title:'生成短链接',
show:false
},
qrcodeObj:{
title:'生成二维码',
show:false
},
userObj: {
title: "清除缓存",
show: false
},
linkObj: {
title: "生成工具",
show: false
},
iconUrl: iconUrl,
dialogUpdate: false,
rules2: {
......@@ -114,11 +97,9 @@ export default {
}
};
},
components:{
components: {
clearCache,
entrance,
getLink,
getqrCode
getLink
},
methods: {
a() {
......
<template>
<el-dialog :title="linkObj.title"
:visible.sync="linkObj.show" center
width="800px">
<el-form :model="form" ref="form" label-width="100px">
<el-form-item
label="输入链接"
prop="link"
:rules="[
{ required: true, message: '内容不能为空'}
]"
>
<el-input v-model="form.link" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('form')">获取</el-button>
</el-form-item>
</el-form>
<div class="link_content" v-if="content.show">
<div class="content">
<el-input v-model="content.text" readonly="readonly" id="text"></el-input>
<textarea id="input" style="opacity:0;z-index=-10;position:absolute;top:0;left:0;"></textarea>
</div>
<el-button type="primary" @click="copyUrl(content.text)">复制链接</el-button>
</div>
<el-dialog :title="linkObj.title" :visible.sync="linkObj.show" center width="800px">
<el-tabs v-model="activeName" type="card" style="line-height:1">
<el-tab-pane label="生成短链接" name="first">
<el-form :model="linkForm" ref="linkForm" label-width="100px">
<el-form-item label="输入链接" prop="link" :rules="[ { required: true, message: '内容不能为空'}]">
<el-input v-model="linkForm.link" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('linkForm')">获取</el-button>
</el-form-item>
</el-form>
<div class="link_content" v-if="linkContent.show">
<div class="content">
<el-input v-model="linkContent.text" readonly="readonly" id="text"></el-input>
<textarea id="input" style="opacity:0;z-index=-10;position:absolute;top:0;left:0;"></textarea>
</div>
<el-button type="primary" @click="copyUrl(linkContent.text)">复制链接</el-button>
</div>
</el-tab-pane>
<el-tab-pane label="生成二维码" name="second">
<el-form :model="qrForm" ref="qrForm" label-width="100px" class="demo-ruleForm">
<el-form-item label="输入链接" prop="link" :rules="[{ required: true, message: '内容不能为空'} ]">
<el-input v-model="qrForm.link" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitqrForm('qrForm')">获取</el-button>
</el-form-item>
</el-form>
<div class="link_content" v-if="qrContent.show">
<div class="qr_content">
<img :src="qrContent.url" id="cavasimg">
</div>
</div>
</el-tab-pane>
</el-tabs>
</el-dialog>
</template>
<script>
import {getLinkApi} from "../../../service/api";
import { getLinkApi } from "../../../service/api";
export default {
name: "getLink",
props: ["linkObj"],
data() {
return {
form: {
activeName: "first",
linkForm: {
link: ""
},
content:{
show:false,
text:""
qrForm: {
link: ""
},
linkContent: {
show: false,
text: ""
},
qrContent: {
show: false,
url: ""
}
};
},
......@@ -45,44 +66,70 @@ export default {
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
let json={}
json.url=this.form.link;
getLinkApi(json).then((res)=>{
this.content.show=true;
this.content.text=res.url;
})
let json = {};
json.url = this.linkForm.link;
getLinkApi(json).then(res => {
this.linkContent.show = true;
this.linkContent.text = res.url;
});
} else {
console.log("error submit!!");
return false;
}
});
},
copyUrl(data){
let url =data;
let oInput = document.createElement('input');
oInput.value = url;
document.body.appendChild(oInput);
oInput.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
this.$message({
message: '已成功复制到剪切板',
type: 'success'
});
oInput.remove()
},
submitqrForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
let json1 = {};
json1.url = this.qrForm.link;
this.qrContent.show = true;
this.qrContent.url = `https://admin_test.changchangenglish.com/api/public/qrcode?str=${
json1.url
}`;
} else {
console.log("error submit!!");
return false;
}
});
},
copyUrl(data) {
let url = data;
let oInput = document.createElement("input");
oInput.value = url;
document.body.appendChild(oInput);
oInput.select(); // 选择对象
document.execCommand("Copy"); // 执行浏览器复制命令
this.$message({
message: "已成功复制到剪切板",
type: "success"
});
oInput.remove();
}
},
watch:{
'linkObj.show':function(a){
if(!a){
this.form.link="";
this.content.show=false;
watch: {
"linkObj.show": function(a) {
if (!a) {
this.linkForm.link = "";
this.qrForm.link = "";
this.linkContent.show = false;
this.qrContent.show = false;
}
}
}
};
</script>
<style scoped lang="less">
.content{
.content {
height: 100px;
}
.qr_content {
width: 300px;
height: 300px;
margin: 0 auto 20px;
img {
width: 300px;
height: 300px;
}
}
</style>
\ No newline at end of file
<template>
<el-dialog :title="qrcodeObj.title"
:visible.sync="qrcodeObj.show" center
width="800px">
<el-form :model="form" ref="form" label-width="100px" class="demo-ruleForm">
<el-form-item
label="输入链接"
prop="link"
:rules="[
{ required: true, message: '内容不能为空'}
]"
>
<el-input v-model="form.link" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('form')">获取</el-button>
</el-form-item>
</el-form>
<div class="link_content" v-if="content.show">
<div class="content">
<img :src="content.url" id="cavasimg">
</div>
<a :href="content.url" download="a.png">
<!-- <el-button type="primary" >下载二维码</el-button> -->
</a>
</div>
</el-dialog>
</template>
<script>
import {getqrCodeApi} from "../../../service/api";
export default {
name: "getqrCode",
props: ["qrcodeObj"],
data() {
return {
form: {
link: ""
},
content:{
show:false,
url:''
}
};
},
methods: {
submitForm(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
let json={}
json.url=this.form.link;
this.content.show=true;
this.content.url=`https://admin_test.changchangenglish.com/api/public/qrcode?str=${json.url}`
} else {
console.log("error submit!!");
return false;
}
});
},
},
watch:{
'qrcodeObj.show':function(a){
if(!a){
this.form.link="";
this.content.show=false;
}
}
}
};
</script>
<style scoped lang="less">
.content{
width: 300px;
height: 300px;
margin: 0 auto;
img{
width: 300px;
height: 300px;
}
}
</style>
\ No newline at end of file
......@@ -9,12 +9,12 @@
<el-form-item label="描述">
<el-input v-model="searchFrom.desc"></el-input>
</el-form-item>
<el-form-item label="商品ID">
<el-select v-model="searchFrom.value" placeholder="请选择" clearable>
<el-form-item label="商品名称">
<el-select v-model="searchFrom.value" placeholder="请选择">
<el-option
v-for="(data,index) in goodsList"
:key="index"
:label="data.name"
:label="data | filterGoods"
:value="String(data.id)">
</el-option>
</el-select>
......@@ -32,15 +32,15 @@
<el-form-item label="描述">
<el-input v-model="searchFrom2.desc"></el-input>
</el-form-item>
<el-form-item label="期数ID">
<el-select v-model="searchFrom2.value" placeholder="请选择" clearable>
<el-option
v-for="(data,index) in periodList"
:key="index"
:label="data.title"
:value="String(data.id)">
</el-option>
</el-select>
<el-form-item label="期数名称">
<el-cascader
:options="periodsList"
:props="{value:'id',label:'name'}"
@active-item-change="handleItemChange"
@change="changePeriods"
v-model="selectedGoods"
>
</el-cascader>
</el-form-item>
<el-form-item>
<div class="search-btn-block">
......@@ -48,13 +48,13 @@
</div>
</el-form-item>
</el-form>
</el-tab-pane>
</el-tabs>
</el-dialog>
</template>
<script>
import {getConfigListApi,getGoodsListApi,getPeriodsApi,putConfigApi} from "../../../service/api";
import {getConfigListApi,getGoodsListApi,getPeriodsApi,putConfigApi,getDefaultPeriodsApi} from "../../service/api";
import {GOODSTYPE} from '../../util/wordbook';
export default {
name:"entrance",
props:[
......@@ -63,7 +63,8 @@
data(){
return{
goodsList:[],
periodList:[],
periodsList:[],
goods_id:null,
activeName: 'first',
searchFrom:{
key:'goods_receive_course ',
......@@ -75,10 +76,16 @@
desc: '',
value: '',
},
selectedGoods:[],
}
},
mounted(){
},
filters:{
filterGoods(val){
return '[' + GOODSTYPE[val.goods_type] + ']' + '[' +val.current_price / 100 + '元]' + val.name
},
},
methods:{
initPage(){
getConfigListApi({key:this.searchFrom.key}).then(res=>{
......@@ -92,12 +99,15 @@
});
getConfigListApi({key:this.searchFrom2.key}).then(res=>{
if(res.list && res.list.length>0){
this.searchFrom2.desc = res.list[0].desc;
this.searchFrom2.value = res.list[0].value;
// this.searchFrom2.desc = res.list[0].desc;
// this.selectedGoods = [parseInt(res.goods_id),parseInt(res.list[0].value)];
// console.log(res.list)
}else{
this.searchFrom2.desc = '';
this.searchFrom2.value = '';
}
this.searchFrom2.desc = '';
this.searchFrom2.value = '';
})
},
getPeriodsList(){
......@@ -106,7 +116,7 @@
page: 1
}
getPeriodsApi(json1).then(res=>{
this.periodList = res.list;
this.periodsList = res.list;
});
},
getGoodsList(){
......@@ -127,7 +137,6 @@
}).then(() => {
console.log(data);
let json ={
}
json.value=data.value;
json.key=data.key;
......@@ -145,8 +154,32 @@
message: "请设置选择项!"
});
}
}
},
changePeriods(data){
if(data.length>1){
this.searchFrom2.value=String(data[1]);
}
},
handleItemChange(val){
getPeriodsApi({goods_id:val[0]}).then(res=>{
res.list.forEach(i=>{i.name = i.title});
this.periodsList.find(i=>{return i.id === val[0]}).children = res.list
})
},
initPage1(){
let json = {
page: 1,
limit: 100,
goods_type:'1,2'
};
getGoodsListApi(json).then(res=>{
res.list.forEach(i=>{
i.children = [];
});
this.periodsList = res.list;
});
},
},
watch:{
'entranceObj.show':function(a){
......@@ -154,11 +187,7 @@
this.initPage()
this.getPeriodsList();
this.getGoodsList();
}else{
this.searchFrom2.value="";
this.searchFrom2.desc="";
this.searchFrom.value="";
this.searchFrom.desc="";
this.initPage1();
}
}
}
......
<template>
<div>
<div class="not_buy">
<div class="head clear-both">
<el-button plain type="success" style="float: right;margin-bottom:20px;" v-if="!$store.state.readonly" @click="entranceObj.show=true">无需登录入口</el-button>
</div>
<el-table :data="configList" style="width: 100%">
<el-table-column label="用户ID" sortable prop="scope.row.user_id" className="userInfo">
<template slot-scope="scope">
<img class="avatar" :src="scope.row.avatar">
{{scope.row.nickname}}(ID:{{scope.row.user_id}})
</template>
</el-table-column>
<el-table-column prop="class_id" label="班级ID">
</el-table-column>
<el-table-column label="商品ID/期数ID">
<template slot-scope="scope">
{{scope.row.goods_id}}/{{scope.row.periods_id}}
</template>
</el-table-column>
<el-table-column prop="created_at" label="创建时间" sortable>
</el-table-column>
<el-table-column prop="updated_at" label="结束时间" sortable>
</el-table-column>
</el-table>
<page :nowPage="nowPage" :total="total" @pageChange="onPageChange" @sizeChange="onSizeChange" />
<entrance :entranceObj="entranceObj" />
</div>
</template>
<script>
import {getNotBuyApi} from "../../service/api"
export default {
name: "notBuyClass",
data(){
return{
import entrance from "./entrance";
import { getClassConfigApi } from "../../service/api";
import page from "../framework/page";
export default {
name: "notBuyClass",
data() {
return {
nowPage: 1,
total: 0,
limit: 10,
configList: [],
entranceObj: {
title: "无需登录入口",
show: false
}
};
},
components: {
entrance,
page
},
mounted() {
this.getList();
},
methods: {
onPageChange(val) {
this.nowPage = val;
this.getList();
},
mounted(){
onSizeChange(val) {
this.nowPage = 1;
this.limit = val;
this.getList();
},
methods:{
getList(){
let json="";
getNotBuyApi(json).then((res)=>{
console.log(res);
})
},
getList() {
let json = {
limit: this.limit,
page: this.nowPage
};
getClassConfigApi(json).then(res => {
console.log(res);
this.total = res.total;
this.configList=res.list;
});
}
}
}
};
</script>
<style scoped>
<style scoped lang="less">
.not_buy {
.head {
margin-bottom: 10px;
}
width: 100%;
padding: 20px 0;
.page-div {
text-align: center;
padding-top: 20px;
}
}
.avatar {
width:50px;
height: 50px;
border-radius: 50%;
}
</style>
<style>
.userInfo >div{
display: flex;
flex-flow: row nowrap;
justify-content: flex-start;
align-items: center;
}
</style>
......@@ -298,7 +298,7 @@
import detailDialog from './detail'
import refundDetail from './refundDetail'
import AddressArray from '../framework/address-picker/addr'
import {INVITETYPE,ORDERSTATUS,BUYTYPE,BUYTYPEOPTION,ORDERSTATUSOPTION,INVITETYPEOPTION} from "../../util/wordbook";
import {INVITETYPE,ORDERSTATUS,BUYTYPE,BUYTYPEOPTION,ORDERSTATUSOPTION,INVITETYPEOPTION,GOODSTYPE} from "../../util/wordbook";
import CommonJs from '../../util/common';
export default {
......@@ -670,7 +670,7 @@
return val = val / 100 + '元'
},
filterGoods(val){
return val.name + '[' +val.current_price / 100 + '元]'
return '[' + GOODSTYPE[val.goods_type] + ']' + '[' +val.current_price / 100 + '元]' + val.name
}
}
}
......
......@@ -23,7 +23,15 @@
</el-col>
</el-row>
<el-form-item label="期数名称" prop="title">
<el-input v-model="form.title"></el-input>
<!-- <el-input v-model="form.title"></el-input> -->
<el-cascader
:options="periodsList"
:props="{value:'id',label:'name'}"
@active-item-change="handleItemChange"
@change="changePeriods"
v-model="selectedGoods"
>
</el-cascader>
</el-form-item>
<el-form-item label="开始主题" prop="startNum">
<el-select v-model="form.startNum" clearable placeholder="请选择">
......@@ -46,7 +54,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="带班老师" prop="teacherList" v-if = "!form.id">
<el-select v-model="form.teacherList" placeholder="请选择" @change="onTeacher1Change">
<el-select v-model="form.teacherList" placeholder="请选择" @change="onTeacher1Change" filterable multiple>
<el-option
v-for="item in teacher1Options"
:key="item.id"
......@@ -56,7 +64,7 @@
</el-select>
</el-form-item>
<el-form-item label="观摩老师" prop="viewTeacher" v-if = "!form.id">
<el-select v-model="form.viewTeacher" placeholder="请选择" @change="onTeacher2Change">
<el-select v-model="form.viewTeacher" placeholder="请选择" @change="onTeacher2Change" filterable multiple>
<el-option
v-for="item in teacher2Options"
:key="item.id"
......@@ -93,7 +101,7 @@
</template>
<script>
import {getGoodsListApi,getAddPeriodsApi,getTeacherListApi,getEditPeriodsApi,getLessonDetailApi} from "../../service/api";
import {getGoodsListApi,getAddPeriodsApi,getTeacherListApi,getEditPeriodsApi,getLessonDetailApi,getPeriodsApi} from "../../service/api";
import {ISORNOT,GOODSTYPE,LESSONTYPE,GOODSSTATUS} from "../../util/wordbook";
import goodDialog from './dialog'
export default {
......@@ -104,7 +112,14 @@
return{
loading: false,
form: {
is_add_teacher_to_class: false
is_add_teacher_to_class: false,
goods_id:'',
teacherList:'',
viewTeacher:'',
is_add_teacher_to_class:'',
rest_week_day:'',
title:"",
goods_id:"",
},
show: false,
viewTeacher: '',
......@@ -173,7 +188,9 @@
viewTeacher: [
{ required: true, message: '观摩老师不能为空', trigger: 'change' }
]
}
},
periodsList:[],
selectedGoods:[],
}
},
components:{
......@@ -198,7 +215,7 @@
return GOODSSTATUS[value]
},
filterGoods(val){
return '(id:'+val.id+')' + val.name + '[' +val.current_price / 100 + '元]'
return '[' + GOODSTYPE[val.goods_type] + ']' + '[' +val.current_price / 100 + '元]' + val.name
}
},
methods:{
......@@ -249,7 +266,7 @@
findDifferentArray(array1, array2){
let newArray = []
array1.forEach((val)=>{
let index = array2.findIndex((item)=>{
let index = array1.findIndex((item)=>{
return val.id == item
})
if (index === -1) {
......@@ -281,6 +298,7 @@
},
getLessonDetail(id){
getLessonDetailApi(id,{}).then((res) => {
console.log(res)
this.itemOptions = res.detail[res.type]
})
},
......@@ -303,12 +321,46 @@
}
this.show = this.dialogObj.show
})
}
},
changePeriods(data){
if(data.length>1){
this.form.title=String(data[1]);
}
},
handleItemChange(val){
getPeriodsApi({goods_id:val[0]}).then(res=>{
res.list.forEach(i=>{i.name = i.title});
this.periodsList.find(i=>{return i.id === val[0]}).children = res.list
})
},
initPage1(){
let json = {
page: 1,
limit: 100,
goods_type:'1,2'
};
getGoodsListApi(json).then(res=>{
res.list.forEach(i=>{
i.children = [];
});
this.periodsList = res.list;
});
},
},
mounted(){
// this.initPage()
this.getTeachers();
this.getGoodsOption();
this.initPage1();
},
watch:{
'dialogObj.show':function(a){
if(a){
}
}
}
}
</script>
......
......@@ -62,7 +62,7 @@
style="width: 100%">
<el-table-column
prop="id"
label="商品ID">
label="商品编号" width="80">
</el-table-column>
<el-table-column
prop="name"
......
import Vue from 'vue';
import {post,fetch,patch,put,del,upload} from './index'
import { post, fetch, patch, put, del, upload } from './index'
import md5 from "js-md5";
const _baseUrl=process.env.API_URL;
Vue.prototype.$post=post;
Vue.prototype.$fetch=fetch;
Vue.prototype.$patch=patch;
Vue.prototype.$put=put;
Vue.prototype.$del=del;
const _baseUrl = process.env.API_URL;
Vue.prototype.$post = post;
Vue.prototype.$fetch = fetch;
Vue.prototype.$patch = patch;
Vue.prototype.$put = put;
Vue.prototype.$del = del;
Vue.prototype.$upload = upload;
//登录
const loginURL = `${_baseUrl}api/admin/login`;
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`;
export const logoutApi = function() {
return Vue.prototype.$post(logOutUrl)
return Vue.prototype.$post(logOutUrl)
};
//查询账号列表
const getAdminListUrl = `${_baseUrl}api/admin/user/list`;
export const getAdminListApi = function (json) {
return Vue.prototype.$fetch(getAdminListUrl,json)
export const getAdminListApi = function(json) {
return Vue.prototype.$fetch(getAdminListUrl, json)
};
//修改账号信息
const editAdminUrl = `${_baseUrl}api/admin/user/info`;
export const editAdminListApi = function (id,json) {
return Vue.prototype.$put(`${editAdminUrl}/${id}`,json)
export const editAdminListApi = function(id, json) {
return Vue.prototype.$put(`${editAdminUrl}/${id}`, json)
};
//添加账号
const addAdminUrl = `${_baseUrl}api/admin/user/add`;
export const addAdminListApi = function (json) {
return Vue.prototype.$post(addAdminUrl,json)
export const addAdminListApi = function(json) {
return Vue.prototype.$post(addAdminUrl, json)
};
//删除账号
const delAdminUrl = `${_baseUrl}api/admin/user`;
export const delAdminListApi = function (id) {
return Vue.prototype.$del(`${delAdminUrl}/${id}`)
export const delAdminListApi = function(id) {
return Vue.prototype.$del(`${delAdminUrl}/${id}`)
};
//修改密码
const editPasswordUrl = `${_baseUrl}api/admin/user/passwd`;
export const editPasswordApi = function (id,json) {
return Vue.prototype.$patch(`${editPasswordUrl}/${id}`,json)
export const editPasswordApi = function(id, json) {
return Vue.prototype.$patch(`${editPasswordUrl}/${id}`, json)
};
//获取用户列表
const getUserListUrl = `${_baseUrl}api/admin/student/list`;
export const getUserListApi = function (json) {
return Vue.prototype.$fetch(getUserListUrl,json)
export const getUserListApi = function(json) {
return Vue.prototype.$fetch(getUserListUrl, json)
};
//获取用户详情
const getUserDetailUrl = `${_baseUrl}api/admin/student/info`;
export const getUserDetailApi = function (id) {
return Vue.prototype.$fetch(`${getUserDetailUrl}/${id}`)
export const getUserDetailApi = function(id) {
return Vue.prototype.$fetch(`${getUserDetailUrl}/${id}`)
};
//获取教师列表
const getTeacherListUrl = `${_baseUrl}api/admin/teacher/list`;
export const getTeacherListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherListUrl}`,json)
export const getTeacherListApi = function(json) {
return Vue.prototype.$fetch(`${getTeacherListUrl}`, json)
};
//获取教师详情
const getTeacherDetailUrl = `${_baseUrl}api/admin/teacher/info`;
export const getTeacherDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getTeacherDetailUrl}/${id}`, json)
export const getTeacherDetailApi = function(id, json) {
return Vue.prototype.$fetch(`${getTeacherDetailUrl}/${id}`, json)
};
//添加教师
const addTeacherUrl = `${_baseUrl}api/admin/teacher/add`;
export const addTeacherApi = function (json) {
return Vue.prototype.$post(addTeacherUrl,json)
export const addTeacherApi = function(json) {
return Vue.prototype.$post(addTeacherUrl, json)
};
//更新教师信息
const editTeacherUrl = `${_baseUrl}api/admin/teacher/info`;
export const editTeacherApi = function (id, json) {
return Vue.prototype.$put(`${editTeacherUrl}/${id}`,json)
export const editTeacherApi = function(id, json) {
return Vue.prototype.$put(`${editTeacherUrl}/${id}`, json)
};
//删除教师
const delTeacherUrl = `${_baseUrl}api/admin/teacher`;
export const delTeacherApi = function (id) {
return Vue.prototype.$del(`${delTeacherUrl}/${id}`)
export const delTeacherApi = function(id) {
return Vue.prototype.$del(`${delTeacherUrl}/${id}`)
};
//获取课程列表
const getLessonUrl = `${_baseUrl}api/admin/course/list`;
export const getLessonApi = function (json) {
return Vue.prototype.$fetch(getLessonUrl,json)
export const getLessonApi = function(json) {
return Vue.prototype.$fetch(getLessonUrl, json)
};
//获取课程详情
const getLessonDetailUrl = `${_baseUrl}api/admin/course/info`;
export const getLessonDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getLessonDetailUrl}/${id}`,json)
export const getLessonDetailApi = function(id, json) {
return Vue.prototype.$fetch(`${getLessonDetailUrl}/${id}`, json)
};
//编辑课程详情
const editLessonDetailUrl = `${_baseUrl}api/admin/course/info`;
export const editLessonApi = function (id,json) {
return Vue.prototype.$put(`${editLessonDetailUrl}/${id}`,json)
export const editLessonApi = function(id, json) {
return Vue.prototype.$put(`${editLessonDetailUrl}/${id}`, json)
};
//删除课程
const deleteLessonUrl = `${_baseUrl}api/admin/course`;
export const deleteLessonAPI = function (id) {
return Vue.prototype.$del(`${deleteLessonUrl}/${id}`)
export const deleteLessonAPI = function(id) {
return Vue.prototype.$del(`${deleteLessonUrl}/${id}`)
};
//新增课程
const addLessonUrl = `${_baseUrl}api/admin/course/add`;
export const addLessonApi = function (json) {
return Vue.prototype.$post(addLessonUrl,json)
export const addLessonApi = function(json) {
return Vue.prototype.$post(addLessonUrl, json)
};
//获取商品列表
const getGoodsListUrl = `${_baseUrl}api/admin/goods/list`;
export const getGoodsListApi = function (json) {
return Vue.prototype.$fetch(getGoodsListUrl,json)
export const getGoodsListApi = function(json) {
return Vue.prototype.$fetch(getGoodsListUrl, json)
};
//获取商品详情
const getGoodsDetailUrl = `${_baseUrl}api/admin/goods/info`;
export const getGoodsDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getGoodsDetailUrl}/${id}`,json)
export const getGoodsDetailApi = function(id, json) {
return Vue.prototype.$fetch(`${getGoodsDetailUrl}/${id}`, json)
};
//添加商品
const addGoodsUrl = `${_baseUrl}api/admin/goods/add`;
export const addGoodsApi = function (json) {
return Vue.prototype.$post(addGoodsUrl,json)
export const addGoodsApi = function(json) {
return Vue.prototype.$post(addGoodsUrl, json)
};
//编辑商品
const editGoodsUrl = `${_baseUrl}api/admin/goods/info`;
export const editGoodsApi = function (id, json) {
return Vue.prototype.$put(`${editGoodsUrl}/${id}`,json)
export const editGoodsApi = function(id, json) {
return Vue.prototype.$put(`${editGoodsUrl}/${id}`, json)
};
//删除商品
const deleteGoodsUrl = `${_baseUrl}api/admin/goods`;
export const deleteGoodsApi = function (id) {
return Vue.prototype.$del(`${deleteGoodsUrl}/${id}`)
export const deleteGoodsApi = function(id) {
return Vue.prototype.$del(`${deleteGoodsUrl}/${id}`)
};
// 商品上架
const upGoodsUrl = `${_baseUrl}api/admin/goods/putaway/`;
export const upGoodsApi = function (id) {
return Vue.prototype.$patch(`${upGoodsUrl}${id}`)
export const upGoodsApi = function(id) {
return Vue.prototype.$patch(`${upGoodsUrl}${id}`)
};
// 商品下架
const downGoodsUrl = `${_baseUrl}api/admin/goods/soldout/`;
export const downGoodsApi = function (id) {
return Vue.prototype.$patch(`${downGoodsUrl}${id}`)
export const downGoodsApi = function(id) {
return Vue.prototype.$patch(`${downGoodsUrl}${id}`)
};
//查询元素、菜单分类
const getCategoryUrl = `${_baseUrl}api/admin/category/list/0`;
export const getCategoryApi = function (pid) {
return Vue.prototype.$fetch(getCategoryUrl,{'pid':pid})
export const getCategoryApi = function(pid) {
return Vue.prototype.$fetch(getCategoryUrl, { 'pid': pid })
};
// 添加教材菜单
const addCategoryUrl = `${_baseUrl}api/admin/category/add/0`;
export const addCategoryApi = function (json) {
return Vue.prototype.$post(addCategoryUrl,json)
export const addCategoryApi = function(json) {
return Vue.prototype.$post(addCategoryUrl, json)
};
//删除分类
const delCategoryUrl = `${_baseUrl}api/admin/category`;
export const delCategoryApi = function (id) {
return Vue.prototype.$del(`${delCategoryUrl}/${id}`)
export const delCategoryApi = function(id) {
return Vue.prototype.$del(`${delCategoryUrl}/${id}`)
};
//分类排序修改
const sortCategoryUrl = `${_baseUrl}api/admin/category/sort`;
export const sortCategoryApi = function (json) {
return Vue.prototype.$patch(sortCategoryUrl,json)
export const sortCategoryApi = function(json) {
return Vue.prototype.$patch(sortCategoryUrl, json)
};
//获取分类下的元素列表
const getCateDetailListUrl = `${_baseUrl}api/admin/element/list/0`;
export const getCateListApi = function (id) {
return Vue.prototype.$fetch(getCateDetailListUrl,id)
export const getCateListApi = function(id) {
return Vue.prototype.$fetch(getCateDetailListUrl, id)
};
// 添加元素
const addElementUrl = `${_baseUrl}api/admin/element/add/`;
export const addElementApi = function (json, type) {
return Vue.prototype.$post(`${addElementUrl}${type}`,json)
export const addElementApi = function(json, type) {
return Vue.prototype.$post(`${addElementUrl}${type}`, json)
};
// 查询元素详情
const getElemenetDetailUrl = `${_baseUrl}api/admin/element/`;
export const getElemenetDetailApi = function (id) {
return Vue.prototype.$fetch(`${getElemenetDetailUrl}${id}`)
export const getElemenetDetailApi = function(id) {
return Vue.prototype.$fetch(`${getElemenetDetailUrl}${id}`)
};
// 编辑元素
const editElementUrl = `${_baseUrl}api/admin/element/`;
export const editElementApi = function (json, id) {
return Vue.prototype.$put(`${editElementUrl}${id}`, json)
export const editElementApi = function(json, id) {
return Vue.prototype.$put(`${editElementUrl}${id}`, json)
};
// 删除元素
const delElementUrl = `${_baseUrl}api/admin/element/`;
export const delElementApi = function (id) {
return Vue.prototype.$del(`${delElementUrl}${id}`)
export const delElementApi = function(id) {
return Vue.prototype.$del(`${delElementUrl}${id}`)
};
// 获取单品列表
const getSingleListUrl = `${_baseUrl}api/admin/item/stock/list`;
export const getSingleListApi = function (json) {
return Vue.prototype.$fetch(`${getSingleListUrl}`,json)
export const getSingleListApi = function(json) {
return Vue.prototype.$fetch(`${getSingleListUrl}`, json)
};
// 获取单品详情
const getSingleDetailUrl = `${_baseUrl}api/admin/item/stock/info/`;
export const getSingleDetailApi = function (id) {
return Vue.prototype.$fetch(`${getSingleDetailUrl}${id}`)
export const getSingleDetailApi = function(id) {
return Vue.prototype.$fetch(`${getSingleDetailUrl}${id}`)
};
// 删除单品
const delSingleUrl = `${_baseUrl}api/admin/item/stock/`;
export const delSingleApi = function (id) {
return Vue.prototype.$del(`${delSingleUrl}${id}`)
export const delSingleApi = function(id) {
return Vue.prototype.$del(`${delSingleUrl}${id}`)
};
// 新增单品
const addSingleUrl = `${_baseUrl}api/admin/item/stock/add`;
export const addSingleApi = function (json) {
return Vue.prototype.$post(addSingleUrl,json)
export const addSingleApi = function(json) {
return Vue.prototype.$post(addSingleUrl, json)
};
// 修改单品
const editSingleUrl = `${_baseUrl}api/admin/item/stock/info/`;
export const editSingleApi = function (id,json) {
return Vue.prototype.$put(`${editSingleUrl}${id}`,json)
export const editSingleApi = function(id, json) {
return Vue.prototype.$put(`${editSingleUrl}${id}`, json)
};
// 获取盒子分类
const getBoxTypeListUrl = `${_baseUrl}api/admin/category/list/1`;
export const getBoxTypeListApi = function () {
return Vue.prototype.$fetch(getBoxTypeListUrl)
export const getBoxTypeListApi = function() {
return Vue.prototype.$fetch(getBoxTypeListUrl)
};
// 获取盒子列表
const getBoxListUrl = `${_baseUrl}api/admin/item/box/list/`;
export const getBoxListApi = function (id) {
return Vue.prototype.$fetch(`${getBoxListUrl}${id}`)
export const getBoxListApi = function(id) {
return Vue.prototype.$fetch(`${getBoxListUrl}${id}`)
};
// 添加盒子
const addBoxUrl = `${_baseUrl}api/admin/item/box/add/`;
export const addBoxApi = function (id, json) {
return Vue.prototype.$post(`${addBoxUrl}${id}`,json)
export const addBoxApi = function(id, json) {
return Vue.prototype.$post(`${addBoxUrl}${id}`, json)
};
// 删除盒子
const delBoxUrl = `${_baseUrl}api/admin/item/box/`;
export const delBoxApi = function (id) {
return Vue.prototype.$del(`${delBoxUrl}${id}`)
export const delBoxApi = function(id) {
return Vue.prototype.$del(`${delBoxUrl}${id}`)
};
// 获取盒子详情
const getBoxDetailUrl = `${_baseUrl}api/admin/item/box/info/`;
export const getBoxDetailApi = function (id) {
return Vue.prototype.$fetch(`${getBoxDetailUrl}${id}`)
export const getBoxDetailApi = function(id) {
return Vue.prototype.$fetch(`${getBoxDetailUrl}${id}`)
};
// 更新盒子
const editBoxUrl = `${_baseUrl}api/admin/item/box/info/`;
export const editBoxApi = function (id, json) {
return Vue.prototype.$put(`${editBoxUrl}${id}`,json)
export const editBoxApi = function(id, json) {
return Vue.prototype.$put(`${editBoxUrl}${id}`, json)
};
// 获取公众号菜单
const getPublicMenuUrl = `${_baseUrl}api/admin/open/menu`;
export const getPublicMenuApi = function () {
return Vue.prototype.$fetch(getPublicMenuUrl)
export const getPublicMenuApi = function() {
return Vue.prototype.$fetch(getPublicMenuUrl)
};
// 添加公众号菜单
export const savePublicMenuApi = function (json) {
return Vue.prototype.$post(getPublicMenuUrl,json)
export const savePublicMenuApi = function(json) {
return Vue.prototype.$post(getPublicMenuUrl, json)
};
// 获取配置列表
const getConfigListUrl = `${_baseUrl}api/admin/sys/config/list`;
export const getConfigListApi = function (json) {
return Vue.prototype.$fetch(getConfigListUrl, json)
export const getConfigListApi = function(json) {
return Vue.prototype.$fetch(getConfigListUrl, json)
};
// 新增系统配置
const saveConfigUrl = `${_baseUrl}api/admin/sys/config`;
export const saveConfigApi = function (json) {
return Vue.prototype.$post(saveConfigUrl, json)
export const saveConfigApi = function(json) {
return Vue.prototype.$post(saveConfigUrl, json)
};
// 更新关键词
const updateConfigUrl = `${_baseUrl}api/admin/sys/config`;
export const updateConfigApi = function (config_id,json) {
return Vue.prototype.$put(`${updateConfigUrl}/${config_id}`, json)
export const updateConfigApi = function(config_id, json) {
return Vue.prototype.$put(`${updateConfigUrl}/${config_id}`, json)
};
// 删除配置
const delConfigUrl = `${_baseUrl}api/admin/sys/config/`;
export const deleteConfigApi = function (config_id) {
return Vue.prototype.$del(`${delConfigUrl}${config_id}`)
export const deleteConfigApi = function(config_id) {
return Vue.prototype.$del(`${delConfigUrl}${config_id}`)
};
// 获取配置详情
const getConfigDetailUrl = `${_baseUrl}api/admin/sys/config/`;
export const getConfigDetailApi = function (id) {
return Vue.prototype.$fetch(`${getConfigDetailUrl}${id}`)
export const getConfigDetailApi = function(id) {
return Vue.prototype.$fetch(`${getConfigDetailUrl}${id}`)
};
// 获取素材列表
const getMediaListUrl = `${_baseUrl}api/admin/open/media/list`;
export const getMediaListApi = function (json) {
return Vue.prototype.$fetch(getMediaListUrl, json)
export const getMediaListApi = function(json) {
return Vue.prototype.$fetch(getMediaListUrl, json)
};
// 文件上传
const uploadFileUrl = `${_baseUrl}api/public/upload/zone`;
export const uploadFileApi = function (json) {
return Vue.prototype.$upload(uploadFileUrl,json)
export const uploadFileApi = function(json) {
return Vue.prototype.$upload(uploadFileUrl, json)
};
// 获取菜单列表
const getMenuListUrl = `${_baseUrl}api/admin/category/list/2`;
export const getMenuListApi = function () {
return Vue.prototype.$fetch(`${getMenuListUrl}`)
export const getMenuListApi = function() {
return Vue.prototype.$fetch(`${getMenuListUrl}`)
};
// 新增菜单
const addMenuListUrl = `${_baseUrl}api/admin/category/add/2`;
export const saveMenuApi = function (json) {
return Vue.prototype.$post(addMenuListUrl, json)
export const saveMenuApi = function(json) {
return Vue.prototype.$post(addMenuListUrl, json)
};
// 更改菜单
const updateMenuUrl = `${_baseUrl}api/admin/category/`;
export const updateMenuApi = function (id,json) {
return Vue.prototype.$put(`${updateMenuUrl}${id}`, json)
export const updateMenuApi = function(id, json) {
return Vue.prototype.$put(`${updateMenuUrl}${id}`, json)
};
// 删除菜单
export const delMenuApi = function (id) {
return Vue.prototype.$del(`${updateMenuUrl}${id}`)
export const delMenuApi = function(id) {
return Vue.prototype.$del(`${updateMenuUrl}${id}`)
};
// 获取权限列表
const getRoleListUrl = `${_baseUrl}api/admin/role/list`;
export const getRoleListApi = function (json) {
return Vue.prototype.$fetch(`${getRoleListUrl}`, json)
export const getRoleListApi = function(json) {
return Vue.prototype.$fetch(`${getRoleListUrl}`, json)
};
// 新增角色
const addRoleUrl = `${_baseUrl}api/admin/role/add`;
export const saveRoleApi = function (json) {
return Vue.prototype.$post(addRoleUrl, json)
export const saveRoleApi = function(json) {
return Vue.prototype.$post(addRoleUrl, json)
};
// 更新权限
const updateRoleUrl = `${_baseUrl}api/admin/role/info/`;
export const updateRoleApi = function (id,json) {
return Vue.prototype.$put(`${updateRoleUrl}${id}`, json)
export const updateRoleApi = function(id, json) {
return Vue.prototype.$put(`${updateRoleUrl}${id}`, json)
};
// 获取权限详情
export const getRoleDetailApi = function (id) {
return Vue.prototype.$fetch(`${updateRoleUrl}${id}`)
export const getRoleDetailApi = function(id) {
return Vue.prototype.$fetch(`${updateRoleUrl}${id}`)
};
// 删除权限
const delRoleUrl = `${_baseUrl}api/admin/role/`;
export const delRoleApi = function (id) {
return Vue.prototype.$del(`${delRoleUrl}${id}`)
export const delRoleApi = function(id) {
return Vue.prototype.$del(`${delRoleUrl}${id}`)
};
// 获取banner列表
const getBannerListUrl = `${_baseUrl}api/admin/banner/list`;
export const getBannerListApi = function (json) {
return Vue.prototype.$fetch(`${getBannerListUrl}`, json)
export const getBannerListApi = function(json) {
return Vue.prototype.$fetch(`${getBannerListUrl}`, json)
};
// 添加banner
const addBannerUrl = `${_baseUrl}api/admin/banner/add`;
export const addBannerApi = function (json) {
return Vue.prototype.$post(addBannerUrl, json)
export const addBannerApi = function(json) {
return Vue.prototype.$post(addBannerUrl, json)
};
// 编辑banner
const editBannerUrl = `${_baseUrl}api/admin/banner/info/`;
export const editBannerApi = function (id,json) {
return Vue.prototype.$put(`${editBannerUrl}${id}`, json)
export const editBannerApi = function(id, json) {
return Vue.prototype.$put(`${editBannerUrl}${id}`, json)
};
// 获取banner详情
export const getBannerDetailApi = function (id) {
return Vue.prototype.$fetch(`${editBannerUrl}${id}`)
export const getBannerDetailApi = function(id) {
return Vue.prototype.$fetch(`${editBannerUrl}${id}`)
};
// 删除banner
const delBannerUrl = `${_baseUrl}api/admin/banner/`;
export const delBannerApi = function (id) {
return Vue.prototype.$del(`${delBannerUrl}${id}`)
export const delBannerApi = function(id) {
return Vue.prototype.$del(`${delBannerUrl}${id}`)
};
// 移动顺序
const moveUrl = `${_baseUrl}api/admin/banner/sort`;
export const moveApi = function (upId, downId) {
return Vue.prototype.$patch(`${moveUrl}`, {banner_up_id: upId, banner_down_id: downId})
export const moveApi = function(upId, downId) {
return Vue.prototype.$patch(`${moveUrl}`, { banner_up_id: upId, banner_down_id: downId })
};
// 获取期数列表
const getPeriodsUrl = `${_baseUrl}api/admin/periods/list`;
export const getPeriodsApi = function (json) {
return Vue.prototype.$fetch(getPeriodsUrl,json)
export const getPeriodsApi = function(json) {
return Vue.prototype.$fetch(getPeriodsUrl, json)
};
// 添加期数
const getAddPeriodsUrl = `${_baseUrl}api/admin/periods/add/`;
export const getAddPeriodsApi = function (id,json) {
return Vue.prototype.$post(`${getAddPeriodsUrl}${id}`,json)
export const getAddPeriodsApi = function(id, json) {
return Vue.prototype.$post(`${getAddPeriodsUrl}${id}`, json)
};
// 编辑期数
const getEditPeriodsUrl = `${_baseUrl}api/admin/periods/info/`;
export const getEditPeriodsApi = function (id,json) {
return Vue.prototype.$put(`${getEditPeriodsUrl}${id}`,json)
export const getEditPeriodsApi = function(id, json) {
return Vue.prototype.$put(`${getEditPeriodsUrl}${id}`, json)
};
// 删除期数
const getDelPeriodUrl = `${_baseUrl}api/admin/periods/`;
export const delPeriodApi = function (id) {
return Vue.prototype.$del(`${getDelPeriodUrl}${id}`)
export const delPeriodApi = function(id) {
return Vue.prototype.$del(`${getDelPeriodUrl}${id}`)
};
// 获取班级列表
const getClassListUrl = `${_baseUrl}api/admin/periods/class/list/`;
export const getClassListApi = function (id,json) {
return Vue.prototype.$fetch(`${getClassListUrl}${id}`,json)
export const getClassListApi = function(id, json) {
return Vue.prototype.$fetch(`${getClassListUrl}${id}`, json)
};
// 获取当前期数下的老师列表
const getPeriodsTeacherUrl = `${_baseUrl}api/admin/periods/teacher/list/`;
export const getPeriodsTeacherApi = function (id) {
return Vue.prototype.$fetch(`${getPeriodsTeacherUrl}${id}`)
export const getPeriodsTeacherApi = function(id) {
return Vue.prototype.$fetch(`${getPeriodsTeacherUrl}${id}`)
};
// 删除班级
const delClassUrl = `${_baseUrl}api/admin/periods/class/`;
export const delClassApi = function (id) {
return Vue.prototype.$del(`${delClassUrl}${id}`)
export const delClassApi = function(id) {
return Vue.prototype.$del(`${delClassUrl}${id}`)
};
// 添加班级
const addClassUrl = `${_baseUrl}api/admin/periods/class/add/`;
export const addClassApi = function (id,json) {
return Vue.prototype.$post(`${addClassUrl}${id}`,json)
export const addClassApi = function(id, json) {
return Vue.prototype.$post(`${addClassUrl}${id}`, json)
};
// 修改班级
const editClassUrl = `${_baseUrl}api/admin/periods/class/info/`;
export const editClassApi = function (id,json) {
return Vue.prototype.$put(`${editClassUrl}${id}`,json)
export const editClassApi = function(id, json) {
return Vue.prototype.$put(`${editClassUrl}${id}`, json)
};
// 获取班级详情
const getClassDetailUrl = `${_baseUrl}api/admin/periods/class/info/`;
export const getClassDetailApi = function (id, json) {
return Vue.prototype.$fetch(`${getClassDetailUrl}${id}`,json)
export const getClassDetailApi = function(id, json) {
return Vue.prototype.$fetch(`${getClassDetailUrl}${id}`, json)
};
// 获取班级用户列表
const getClassUserUrl = `${_baseUrl}api/admin/class/user/list/`;
export const getClassUserApi = function (id,json) {
return Vue.prototype.$fetch(`${getClassUserUrl}${id}`,json)
export const getClassUserApi = function(id, json) {
return Vue.prototype.$fetch(`${getClassUserUrl}${id}`, json)
};
// 添加班级用户
const addClassUserUrl = `${_baseUrl}api/admin/class/user/add/`;
export const addClassUesrApi = function (classId, userId, json) {
return Vue.prototype.$post(`${addClassUserUrl}${classId}/${userId}`,json)
export const addClassUesrApi = function(classId, userId, json) {
return Vue.prototype.$post(`${addClassUserUrl}${classId}/${userId}`, json)
};
// 更改看课权限
const changeUserUrl = `${_baseUrl}api/admin/class/user/`;
export const changeUserApi = function (id,json) {
return Vue.prototype.$put(`${changeUserUrl}${id}`,json)
export const changeUserApi = function(id, json) {
return Vue.prototype.$put(`${changeUserUrl}${id}`, json)
};
// 添加是否添加老师权限
const addUserTeacherUrl = `${_baseUrl}api/admin/class/user/teacher/`;
export const addUserTeacherApi = function (id,json) {
return Vue.prototype.$put(`${addUserTeacherUrl}${id}`,json)
export const addUserTeacherApi = function(id, json) {
return Vue.prototype.$put(`${addUserTeacherUrl}${id}`, json)
};
// 移除班级用户
const delClassUserUrl = `${_baseUrl}api/admin/class/user/`;
export const delClassUserApi = function (id) {
return Vue.prototype.$del(`${delClassUserUrl}${id}`)
export const delClassUserApi = function(id) {
return Vue.prototype.$del(`${delClassUserUrl}${id}`)
};
// 获取订单列表
const getOrderListUrl = `${_baseUrl}api/admin/order/list`;
export const getOrderListApi = function (json) {
return Vue.prototype.$fetch(getOrderListUrl,json)
export const getOrderListApi = function(json) {
return Vue.prototype.$fetch(getOrderListUrl, json)
};
// 修改订单备注
const editOrderDescUrl = `${_baseUrl}api/admin/order/desc/`;
export const editOrderDescApi = function (orderId, type, json) {
return Vue.prototype.$put(`${editOrderDescUrl}${orderId}/${type}`, json)
export const editOrderDescApi = function(orderId, type, json) {
return Vue.prototype.$put(`${editOrderDescUrl}${orderId}/${type}`, json)
};
// 给用户退款
const refundUrl = `${_baseUrl}api/admin/bill/refund/`;
export const refundApi = function (id, json) {
return Vue.prototype.$post(`${refundUrl}${id}`,json)
} ;
export const refundApi = function(id, json) {
return Vue.prototype.$post(`${refundUrl}${id}`, json)
};
// 修改订单收货地址
const editAddressUrl = `${_baseUrl}api/admin/order/address/`;
export const editAddressApi = function (id,json) {
return Vue.prototype.$put(`${editAddressUrl}${id}`,json)
export const editAddressApi = function(id, json) {
return Vue.prototype.$put(`${editAddressUrl}${id}`, json)
};
// 提现审核
const withdrawUrl = `${_baseUrl}/api/admin/order/withdraw/`;
export const withdrawApi = function (id,json) {
return Vue.prototype.$post(`${withdrawUrl}${id}`,json)
export const withdrawApi = function(id, json) {
return Vue.prototype.$post(`${withdrawUrl}${id}`, json)
};
// 退款列表
const getRefundListUrl = `${_baseUrl}api/admin/order/refund/list`;
export const getRefundListApi = function (json) {
return Vue.prototype.$fetch(`${getRefundListUrl}`,json)
export const getRefundListApi = function(json) {
return Vue.prototype.$fetch(`${getRefundListUrl}`, json)
};
// 提现列表
const getWithdrawListUrl = `${_baseUrl}api/admin/order/withdraw/list`;
export const getWithdrawListApi = function (json) {
return Vue.prototype.$fetch(`${getWithdrawListUrl}`,json)
export const getWithdrawListApi = function(json) {
return Vue.prototype.$fetch(`${getWithdrawListUrl}`, json)
};
// 新增盒子类型
const addBoxTypeUrl = `${_baseUrl}api/admin/category/add/1`;
export const addBoxTypeApi = function (json) {
return Vue.prototype.$post(addBoxTypeUrl, json)
export const addBoxTypeApi = function(json) {
return Vue.prototype.$post(addBoxTypeUrl, json)
};
// 用户关联老师
const addRelatedTeacherUrl = `${_baseUrl}api/admin/student/bind/`;
export const addRelatedTeacherApi = function (id,json) {
return Vue.prototype.$put(`${addRelatedTeacherUrl}${id}`,json)
export const addRelatedTeacherApi = function(id, json) {
return Vue.prototype.$put(`${addRelatedTeacherUrl}${id}`, json)
};
// 操作日志
const getAdminLogListUrl = `${_baseUrl}api/admin/user/log`;
export const getAdminLogLisApi = function (json) {
return Vue.prototype.$fetch(`${getAdminLogListUrl}`,json)
export const getAdminLogLisApi = function(json) {
return Vue.prototype.$fetch(`${getAdminLogListUrl}`, json)
};
// 清除缓存
const clearCacheListUrl = `/api/admin/redis/key`;
export const clearCacheListApi = function (json) {
return Vue.prototype.$del(`${clearCacheListUrl}/${json}`)
export const clearCacheListApi = function(json) {
return Vue.prototype.$del(`${clearCacheListUrl}/${json}`)
};
// 绑定其他商品
const bindOtherUrl = `${_baseUrl}api/admin/goods/bind/`;
export const bindOtherApi = function (goodsId, newGoodsId) {
return Vue.prototype.$patch(`${bindOtherUrl}${goodsId}/${newGoodsId}`)
export const bindOtherApi = function(goodsId, newGoodsId) {
return Vue.prototype.$patch(`${bindOtherUrl}${goodsId}/${newGoodsId}`)
};
// 冲突商品
const conflictUrl = `${_baseUrl}api/admin/goods/conflict/`;
export const conflictApi = function (id,json) {
return Vue.prototype.$patch(`${conflictUrl}${id}`,json)
export const conflictApi = function(id, json) {
return Vue.prototype.$patch(`${conflictUrl}${id}`, json)
};
// 班级用户添加备注
const addPeriodsClassUserDescUrl = `/api/admin/class/user/desc`;
export const addPeriodsClassUserDescApi = function (id,json) {
return Vue.prototype.$post(`${addPeriodsClassUserDescUrl}/${id}`,json)
export const addPeriodsClassUserDescApi = function(id, json) {
return Vue.prototype.$post(`${addPeriodsClassUserDescUrl}/${id}`, json)
};
// 复制商品
const copyShopUrl = `/api/admin/goods/copy/`;
export const copyShopApi = function (id) {
return Vue.prototype.$post(`${copyShopUrl}${id}`)
export const copyShopApi = function(id) {
return Vue.prototype.$post(`${copyShopUrl}${id}`)
};
// 获取media详情
const getMediaUrl = `/api/admin/open/media/info`;
export const getMediaApi = function (id) {
return Vue.prototype.$fetch(`${getMediaUrl}?media_id=${id}`)
export const getMediaApi = function(id) {
return Vue.prototype.$fetch(`${getMediaUrl}?media_id=${id}`)
};
// 期数数据统计
const getPeriodsStatisticsUrl = '/api/admin/periods/statistics/';
export const getPeriodsStatisticsApi = function (id) {
return Vue.prototype.$fetch(`${getPeriodsStatisticsUrl}${id}`)
export const getPeriodsStatisticsApi = function(id) {
return Vue.prototype.$fetch(`${getPeriodsStatisticsUrl}${id}`)
};
// 班级数据统计
const getClassStatisticsUrl = `/api/admin/periods/class/statistics/`;
export const getClassStatisticsApi = function (periods_id, class_id,json) {
return Vue.prototype.$fetch(`${getClassStatisticsUrl}${periods_id}/${class_id}`,json)
export const getClassStatisticsApi = function(periods_id, class_id, json) {
return Vue.prototype.$fetch(`${getClassStatisticsUrl}${periods_id}/${class_id}`, json)
};
// 用户看课情况
const userLookUrl = `/api/admin/user/static/list/`;
export const userLookApi = function (periods_id,user_id, json) {
return Vue.prototype.$fetch(`${userLookUrl}${periods_id}/${user_id}`, json)
export const userLookApi = function(periods_id, user_id, json) {
return Vue.prototype.$fetch(`${userLookUrl}${periods_id}/${user_id}`, json)
};
//订单统计
const orderCountUrl = `/api/admin/order/statistics`;
export const orderCountApi = function (json) {
return Vue.prototype.$fetch(orderCountUrl,json)
export const orderCountApi = function(json) {
return Vue.prototype.$fetch(orderCountUrl, json)
};
// 切换期数与班级
const changeClassUrl = `/api/admin/change/class`;
export const changeClassApi = function (json) {
return Vue.prototype.$put(changeClassUrl,json)
export const changeClassApi = function(json) {
return Vue.prototype.$put(changeClassUrl, json)
};
// 创建微信推广二维码
const createQrCodeUrl = '/api/admin/create/wechat/qrcode';
export const createQrCodeApi = function (json) {
return Vue.prototype.$post(createQrCodeUrl,json)
export const createQrCodeApi = function(json) {
return Vue.prototype.$post(createQrCodeUrl, json)
};
// 获取公众号二维码
const getQrCodeListUrl = '/api/admin/wechat/qrcode/list';
export const getQrCodeListApi = function (json) {
return Vue.prototype.$fetch(getQrCodeListUrl,json)
export const getQrCodeListApi = function(json) {
return Vue.prototype.$fetch(getQrCodeListUrl, json)
};
// 每日关注取关统计
const getWatchListUrl = '/api/admin/open/subscribe/statistics';
export const getWatchListApi = function (json) {
return Vue.prototype.$fetch(getWatchListUrl,json)
export const getWatchListApi = function(json) {
return Vue.prototype.$fetch(getWatchListUrl, json)
};
// 获取群发结果
const getMsgListUrl = '/api/admin/open/muti/msg';
export const getMsgListApi = function (json) {
return Vue.prototype.$fetch(getMsgListUrl,json)
export const getMsgListApi = function(json) {
return Vue.prototype.$fetch(getMsgListUrl, json)
};
// 群发客服消息
const sendMsgUrl = `/api/admin/open/muti/msg`;
export const sendMsgApi = function (json) {
return Vue.prototype.$post(`${sendMsgUrl}`, json)
export const sendMsgApi = function(json) {
return Vue.prototype.$post(`${sendMsgUrl}`, json)
};
// 获取微信授权
const getwechatParamUrl = `${_baseUrl}api/client/jssdk`;
export const getwechatParam = function (json) {
return Vue.prototype.$fetch(getwechatParamUrl,json)
export const getwechatParam = function(json) {
return Vue.prototype.$fetch(getwechatParamUrl, json)
};
// 默认当前体验营期数
const getDefaultPeriodsUrl = '/api/admin/periods/default';
export const getDefaultPeriodsApi = function () {
return Vue.prototype.$fetch(getDefaultPeriodsUrl)
export const getDefaultPeriodsApi = function() {
return Vue.prototype.$fetch(getDefaultPeriodsUrl)
};
// 修改二维码管理
const updateQrCodeUrl = '/api/admin/wechat/qrcode';
export const updateQrCodeApi = function (id, json) {
return Vue.prototype.$put(`${updateQrCodeUrl}/${id}`,json)
export const updateQrCodeApi = function(id, json) {
return Vue.prototype.$put(`${updateQrCodeUrl}/${id}`, json)
};
// 获取二维码列表详情
const getQrCodeDetailUrl = '/api/admin/wechat/qrcode';
export const getQrCodeDetailUrlApi = function (id) {
return Vue.prototype.$fetch(`${getQrCodeDetailUrl}/${id}`)
export const getQrCodeDetailUrlApi = function(id) {
return Vue.prototype.$fetch(`${getQrCodeDetailUrl}/${id}`)
};
const getAdsListlUrl = '/api/public/ads/list';
export const getAdsListApi = function (json) {
return Vue.prototype.$fetch(getAdsListlUrl, json)
export const getAdsListApi = function(json) {
return Vue.prototype.$fetch(getAdsListlUrl, json)
};
const getAdsInnerListUrl = '/api/admin/ads/list';
export const getAdsInnerListApi = function (json) {
return Vue.prototype.$fetch(getAdsInnerListUrl, json)
export const getAdsInnerListApi = function(json) {
return Vue.prototype.$fetch(getAdsInnerListUrl, json)
};
// 外部投放修改备注
const updateAdsInnerUrl = '/api/admin/ads';
export const updateAdsInnerApi = function (id, json) {
return Vue.prototype.$put(`${updateAdsInnerUrl}/${id}`,json)
export const updateAdsInnerApi = function(id, json) {
return Vue.prototype.$put(`${updateAdsInnerUrl}/${id}`, json)
};
// 订单使用红包列表
const getCouponListUrl = '/api/admin/order/coupon';
export const getCouponListApi = function (json) {
return Vue.prototype.$fetch(getCouponListUrl, json)
export const getCouponListApi = function(json) {
return Vue.prototype.$fetch(getCouponListUrl, json)
};
// 更新二维码备注
const updateQrcodeDescUrl = '/api/admin/wechat/qrcode/desc';
export const updateQrcodeDescApi = function (id, json) {
return Vue.prototype.$put(`${updateQrcodeDescUrl}/${id}`,json)
export const updateQrcodeDescApi = function(id, json) {
return Vue.prototype.$put(`${updateQrcodeDescUrl}/${id}`, json)
};
// banner上下架
const bannerChangeStatusUrl = `/api/admin/banner/status/`;
export const bannerChangeStatusApi = function (id,json) {
return Vue.prototype.$put(`${bannerChangeStatusUrl}${id}`,json)
export const bannerChangeStatusApi = function(id, json) {
return Vue.prototype.$put(`${bannerChangeStatusUrl}${id}`, json)
};
// 微信用户数据分析
const getWechatStatisticListUrl = '/api/admin/wechat/statistics';
export const getWechatStatisticListApi = function (json) {
return Vue.prototype.$fetch(getWechatStatisticListUrl,json)
export const getWechatStatisticListApi = function(json) {
return Vue.prototype.$fetch(getWechatStatisticListUrl, json)
};
// 同步用户手机号
const getSyncUserUrl = '/api/admin/student/mobile';
export const getSyncUserApi = function (json) {
return Vue.prototype.$fetch(getSyncUserUrl,json)
export const getSyncUserApi = function(json) {
return Vue.prototype.$fetch(getSyncUserUrl, json)
};
// 获取关注统计详情
const getStatisticsDetailUrl = '/api/admin/open/subscribe/statistics/detail';
export const getStatisticsDetailApi = function (json) {
return Vue.prototype.$fetch(getStatisticsDetailUrl,json)
export const getStatisticsDetailApi = function(json) {
return Vue.prototype.$fetch(getStatisticsDetailUrl, json)
};
// 修改商品备注
const editGoodsDescUrl = `/api/admin/goods/info/desc/`;
export const editGoodsDescApi = function (goodsId, json) {
return Vue.prototype.$put(`${editGoodsDescUrl}${goodsId}`, json)
export const editGoodsDescApi = function(goodsId, json) {
return Vue.prototype.$put(`${editGoodsDescUrl}${goodsId}`, json)
};
// 管理员密码修改
const editAdminPasswordUrl = `/api/admin/user/passwd`;
export const editAdminPasswordApi = function (json) {
return Vue.prototype.$patch(editAdminPasswordUrl,json)
export const editAdminPasswordApi = function(json) {
return Vue.prototype.$patch(editAdminPasswordUrl, json)
};
// 导出
export const exportExcelApi = function (url, params) {
url = `${url}?`;
let json = JSON.parse(JSON.stringify(params))
for(let k in json)
{
let reg = /^[0-9]+$/u;
if(reg.test(json[k])){
json[k]= Number(json[k])
}
if(json[k] === null){
json[k] = ''
}
if(typeof json[k] === "string"){
params[k]=params[k].replace(/(^\s*)|(\s*$)/g, "");
json[k]=json[k].replace(/(^\s*)|(\s*$)/g, "");
export const exportExcelApi = function(url, params) {
url = `${url}?`;
let json = JSON.parse(JSON.stringify(params))
for (let k in json) {
let reg = /^[0-9]+$/u;
if (reg.test(json[k])) {
json[k] = Number(json[k])
}
if (json[k] === null) {
json[k] = ''
}
if (typeof json[k] === "string") {
params[k] = params[k].replace(/(^\s*)|(\s*$)/g, "");
json[k] = json[k].replace(/(^\s*)|(\s*$)/g, "");
}
json[k] = md5(json[k].toString())
}
json[k] = md5(json[k].toString())
}
json.sing = "singsingenglish21000";
params.param_token = md5(JSON.stringify(json));
let urlEncode = function (param, key, encode) {
if(param==null) return '';
let paramStr = '';
let t = typeof (param);
if (t == 'string' || t == 'number' || t == 'boolean') {
paramStr += '&' + key + '=' + ((encode==null||encode) ? encodeURIComponent(param) : param);
} else {
for (let i in param) {
let k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
paramStr += urlEncode(param[i], k, encode);
}
}
return paramStr;
};
url += urlEncode(params)
window.open(url)
json.sing = "singsingenglish21000";
params.param_token = md5(JSON.stringify(json));
let urlEncode = function(param, key, encode) {
if (param == null) return '';
let paramStr = '';
let t = typeof(param);
if (t == 'string' || t == 'number' || t == 'boolean') {
paramStr += '&' + key + '=' + ((encode == null || encode) ? encodeURIComponent(param) : param);
} else {
for (let i in param) {
let k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
paramStr += urlEncode(param[i], k, encode);
}
}
return paramStr;
};
url += urlEncode(params)
window.open(url)
};
// 来源码列表
const getSourceListUrl = '/api/admin/code/rule';
export const getSourceListApi = function (json) {
return Vue.prototype.$fetch(getSourceListUrl,json)
export const getSourceListApi = function(json) {
return Vue.prototype.$fetch(getSourceListUrl, json)
};
// 添加来源码
const addSourceUrl = '/api/admin/code/rule';
export const addSourceApi = function (json) {
return Vue.prototype.$post(addSourceUrl,json)
export const addSourceApi = function(json) {
return Vue.prototype.$post(addSourceUrl, json)
};
// 修改来源码
const updateSourceUrl = '/api/admin/code/rule';
export const updateSourceApi = function (id,json) {
return Vue.prototype.$put(`${updateSourceUrl}/${id}`,json)
export const updateSourceApi = function(id, json) {
return Vue.prototype.$put(`${updateSourceUrl}/${id}`, json)
};
// 删除来源码
const delSourceUrl = `/api/admin/code/rule/`;
export const delSourceApi = function (id) {
return Vue.prototype.$del(`${delSourceUrl}${id}`)
export const delSourceApi = function(id) {
return Vue.prototype.$del(`${delSourceUrl}${id}`)
};
// 修改商品购买数量
const updateGoodsNumberUrl = '/api/admin/goods/buy/nums';
export const updateGoodsNumbeApi = function (id,json) {
return Vue.prototype.$put(`${updateGoodsNumberUrl}/${id}`,json)
export const updateGoodsNumbeApi = function(id, json) {
return Vue.prototype.$put(`${updateGoodsNumberUrl}/${id}`, json)
};
// 获取班级用户备注列表
const getUserDescListUrl = '/api/admin/class/user/desc/';
export const getUserDescListApi = function (id,json) {
return Vue.prototype.$fetch(`${getUserDescListUrl}${id}`,json)
export const getUserDescListApi = function(id, json) {
return Vue.prototype.$fetch(`${getUserDescListUrl}${id}`, json)
};
// 更改用户看课权限,添加老师,意向等级
const updateUserPrivilegeUrl = '/api/admin/class/user';
export const updateUserPrivilegeApi = function (id,json) {
return Vue.prototype.$put(`${updateUserPrivilegeUrl}/${id}`,json)
export const updateUserPrivilegeApi = function(id, json) {
return Vue.prototype.$put(`${updateUserPrivilegeUrl}/${id}`, json)
};
// 修改订单推广人信息
const updateOrderTeacherUrl = '/api/admin/order/invite';
export const updateOrderTeacherApi = function (id,teacherId) {
return Vue.prototype.$put(`${updateOrderTeacherUrl}/${id}/${teacherId}`)
export const updateOrderTeacherApi = function(id, teacherId) {
return Vue.prototype.$put(`${updateOrderTeacherUrl}/${id}/${teacherId}`)
};
// 用户提现 api/admin/bill/pay/to/user
const payToUserUrl = '/api/admin/bill/pay/to/user';
export const payToUserApi = function (json) {
return Vue.prototype.$post(payToUserUrl,json)
export const payToUserApi = function(json) {
return Vue.prototype.$post(payToUserUrl, json)
};
// 获取班主任业绩总排行
const getTeacherRankListUrl = '/api/admin/teacher/performance';
export const getTeacherRankListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherRankListUrl}`,json)
export const getTeacherRankListApi = function(json) {
return Vue.prototype.$fetch(`${getTeacherRankListUrl}`, json)
};
// 班主任业绩排行按天
const getTeacherDayRankListUrl = '/api/admin/teacher/performance/day';
export const getTeacherDayRankListApi = function (json) {
return Vue.prototype.$fetch(`${getTeacherDayRankListUrl}`,json)
export const getTeacherDayRankListApi = function(json) {
return Vue.prototype.$fetch(`${getTeacherDayRankListUrl}`, json)
};
// 老师绑定用户
const teacherBindUserUrl = '/api/admin/teacher/bind';
export const teacherBindUserApi = function (id,json) {
return Vue.prototype.$put(`${teacherBindUserUrl}/${id}`, json)
export const teacherBindUserApi = function(id, json) {
return Vue.prototype.$put(`${teacherBindUserUrl}/${id}`, json)
};
// 获取老师加用户数,用户老师数
const getJoinNumUrl = '/api/admin/class/teacher/group/num/';
export const getJoinNumApi = function (id) {
return Vue.prototype.$fetch(`${getJoinNumUrl}${id}`)
};
// 未购买列表
const getNotBuyUrl = '';
export const getNotBuyApi = function (id) {
return Vue.prototype.$fetch(`${getNotBuyUrl}${id}`)
export const getJoinNumApi = function(id) {
return Vue.prototype.$fetch(`${getJoinNumUrl}${id}`)
};
//获取短网址
const getLinkUrl = `/api/public/short/url`;
export const getLinkApi = function (json) {
return Vue.prototype.$fetch(`${getLinkUrl}`,json)
export const getLinkApi = function(json) {
return Vue.prototype.$fetch(`${getLinkUrl}`, json)
};
//获取二维码
const getqrCodeUrl = `${_baseUrl}api/public/qrcode`;
export const getqrCodeApi = function (json) {
return Vue.prototype.$fetch(`${getqrCodeUrl}`,json)
export const getqrCodeApi = function(json) {
return Vue.prototype.$fetch(`${getqrCodeUrl}`, json)
};
//设置系统指定配置
const putConfigUrl = `/api/admin/tools/config`;
export const putConfigApi = function (json) {
return Vue.prototype.$put(`${putConfigUrl}`,json)
};
\ No newline at end of file
export const putConfigApi = function(json) {
return Vue.prototype.$put(`${putConfigUrl}`, json)
};
//用户领取课程日志
const getClassConfigUrl = `/api/admin/user/receive/course/log`;
export const getClassConfigApi = function(json) {
return Vue.prototype.$fetch(`${getClassConfigUrl}`, json)
}
\ No newline at end of file
export default [
{
name: '',
value: '教研管理',
icon: 'icon-material',
list: [
{
value:'教材列表',
routerName:'resources',
path:'/resources',
cover:'1-1',
router:{
path: '/resources',
name:'resources',
component: e=>require(['@/components/resources'],e),
}
}
]
},{
name: '',
value: '商品课程',
icon: 'icon-shangpin1',
list: [
{
value:'课程列表',
routerName:'lesson',
path:'/lesson',
cover:'2-1',
router:{
path: '/lesson',
name:'lesson',
component: e=>require(['@/components/lesson'],e),
}
},{
value:'商品列表',
routerName:'shop',
path:'/shop',
cover:'4-1',
router:{
path: '/shop',
name:'shop',
component: e=>require(['@/components/shop'],e),
},
},
]
},{
name: '',
value: '期数管理',
icon: 'icon-kecheng',
list: [
{
value:'期数列表',
routerName:'periods',
path:'/periods',
cover:'2-2',
router:{
path: '/periods',
name:'periods',
component: e=>require(['@/components/periods'],e),
}
},
{
value:'班级列表',
routerName:'class',
path:'/class',
cover:'2-3',
router:{
path: '/class',
name:'class',
component: e=>require(['@/components/class'],e),
}
},
{
value:'不上课日期',
routerName:'noLesson',
path:'/noLesson',
cover:'2-4',
router:{
path: '/noLesson',
name:'noLesson',
component: e=>require(['@/components/noLesson'],e),
}
},
]
},{
name: '',
value: '人员管理',
icon: 'icon-laoshi',
list: [
{
value:'教师列表',
routerName:'teacher',
path:'/teacher',
cover:'3-1',
router:{
path: '/teacher',
name:'teacher',
component: e=>require(['@/components/teacher'],e),
}
},
{
value:'用户列表',
routerName:'user',
path:'/user',
cover:'3-2',
router:{
path: '/user',
name:'user',
component: e=>require(['@/components/user'],e),
}
}
]
},{
name: '',
value: '订单管理',
icon: 'icon-dingdan',
list: [
{
value:'订单列表',
routerName:'order',
path:'/order',
cover:'5-1',
router:{
path: '/order',
name:'order',
component: e=>require(['@/components/order'],e),
}
},{
value:'退款列表',
routerName:'refund',
path:'/refund',
cover:'5-2',
router:{
path: '/refund',
name:'refund',
component: e=>require(['@/components/refund'],e),
}
},{
value:'提现列表',
routerName:'putForward',
path:'/putForward',
cover:'5-3',
router:{
path: '/putForward',
name:'putForward',
component: e=>require(['@/components/putForward'],e),
}
},
{
value:'发货管理',
routerName:'consignment',
path:'/consignment',
cover:'5-4',
router:{
path: '/consignment',
name:'consignment',
component: e=>require(['@/components/consignment'],e),
}
},{
value:'订单统计',
routerName:'orderCount',
path:'/orderCount',
cover:'5-5',
router:{
path: '/orderCount',
name:'orderCount',
component: e=>require(['@/components/orderCount'],e),
}
},{
value:'优惠券列表',
routerName:'coupon',
path:'/coupon',
cover:'5-6',
router:{
path: '/coupon',
name:'coupon',
component: e=>require(['@/components/coupon'],e),
}
},
{
value:'未购买列表',
routerName:'notBuyClass',
path:'/notBuyClass',
cover:'5-8',
router:{
path: '/notBuyClass',
name:'notBuyClass',
component: e=>require(['@/components/notBuyClass'],e),
}
},
{
value:'业绩排行',
routerName:'achievement',
path:'/achievement',
cover:'5-7',
router:{
path: '/achievement',
name:'achievement',
component: e=>require(['@/components/achievement'],e),
}
},
]
},{
name: '',
value: '实物管理',
icon: 'icon-shu',
list: [
{
value:'单品列表',
routerName:'single',
path:'/single',
cover:'6-1',
router:{
path: '/single',
name:'single',
component: e=>require(['@/components/single'],e),
}
},
{
value:'盒子列表',
routerName:'box',
path:'/box',
cover:'6-2',
router:{
path: '/box',
name:'box',
component: e=>require(['@/components/box'],e),
}
}
]
},{
name: '',
value: '公众号',
icon: 'icon-ai-weixin',
list: [
{
value:'自动回复',
routerName:'focusReply',
path:'/focusReply',
cover:'7-1',
router:{
path: '/focusReply',
name:'focusReply',
component: e=>require(['@/components/weChat/focusReply'],e),
}
},
{
value:'关键词回复',
routerName:'autoReply',
path:'/autoReply',
cover:'7-2',
router:{
path: '/autoReply',
name:'autoReply',
component: e=>require(['@/components/weChat/autoReply'],e),
}
},
{
value:'公众号菜单',
routerName:'weChat',
path:'/weChat',
cover:'7-3',
router:{
path: '/weChat',
name:'weChat',
component: e=>require(['@/components/weChat'],e),
}
},
{
value:'素材管理',
routerName:'weChatResource',
path:'/weChatResource',
cover:'7-4',
router:{
path: '/weChatResource',
name:'weChatResource',
component: e=>require(['@/components/weChat/weChatResource'],e),
}
},
{
value:'二维码管理',
routerName:'qrcode',
path:'/qrcode',
cover:'7-6',
router:{
path: '/qrcode',
name:'qrcode',
component: e=>require(['@/components/qrcode'],e),
}
},
{
value:'群发助手',
routerName:'groupSend',
path:'/groupSend',
cover:'7-7',
router:{
path: '/groupSend',
name:'groupSend',
component: e=>require(['@/components/groupSend'],e),
}
},
{
value:'关注取关统计',
routerName:'watchCount',
path:'/watchCount',
cover:'7-8',
router:{
path: '/watchCount',
name:'watchCount',
component: e=>require(['@/components/watchCount'],e),
}
},
{
value:'微信统计',
routerName:'weChatStatistics',
path:'/weChatStatistics',
cover:'7-10',
router:{
path: '/weChatStatistics',
name:'weChatStatistics',
component: e=>require(['@/components/weChatStatistics'],e),
}
},
]
},{
name: '',
value: '系统管理',
icon: 'icon-xitongquanxian',
list: [
{
value:'Banner管理',
routerName:'banner',
path:'/banner',
cover:'7-5',
router:{
path: '/banner',
name:'banner',
component: e=>require(['@/components/system/banner'],e),
},
},{
value:'外部投放管理',
routerName:'externalLaunch',
path:'/externalLaunch',
cover:'7-9',
router:{
path: '/externalLaunch',
name:'externalLaunch',
component: e=>require(['@/components/externalLaunch'],e),
}
},
{
value:'来源码管理',
routerName:'sourceManage',
path:'/sourceManage',
cover:'10-1',
router:{
path: '/sourceManage',
name:'sourceManage',
component: e=>require(['@/components/sourceManage'],e),
}
},
]
},
{
name: '',
value: '后台管理',
icon: 'icon-shezhi',
list: [
{
value:'账号管理',
routerName:'admin',
path:'/admin',
cover:'8-1',
router:{
path: '/admin',
name:'admin',
component: e=>require(['@/components/system/admin'],e),
}
},{
value:'角色管理',
routerName:'role',
path:'/role',
cover:'8-2',
router:{
path: '/role',
name:'role',
component: e=>require(['@/components/system/role'],e),
}
},{
value:'菜单管理',
routerName:'menu',
path:'/menu',
cover:'8-3',
router:{
path: '/menu',
name:'menu',
component: e=>require(['@/components/system/menu'],e),
}
},{
value:'系统配置',
routerName:'sysConfig',
path:'/sysConfig',
cover:'8-4',
router:{
path: '/sysConfig',
name:'sysConfig',
component: e=>require(['@/components/system/sysConfig'],e),
}
export default [{
name: '',
value: '教研管理',
icon: 'icon-material',
list: [{
value: '教材列表',
routerName: 'resources',
path: '/resources',
cover: '1-1',
router: {
path: '/resources',
name: 'resources',
component: e => require(['@/components/resources'], e),
}
}]
}, {
name: '',
value: '商品课程',
icon: 'icon-shangpin1',
list: [{
value: '课程列表',
routerName: 'lesson',
path: '/lesson',
cover: '2-1',
router: {
path: '/lesson',
name: 'lesson',
component: e => require(['@/components/lesson'], e),
}
}, {
value: '商品列表',
routerName: 'shop',
path: '/shop',
cover: '4-1',
router: {
path: '/shop',
name: 'shop',
component: e => require(['@/components/shop'], e),
},
}, ]
}, {
name: '',
value: '期数管理',
icon: 'icon-kecheng',
list: [{
value: '期数列表',
routerName: 'periods',
path: '/periods',
cover: '2-2',
router: {
path: '/periods',
name: 'periods',
component: e => require(['@/components/periods'], e),
}
},
{
value: '班级列表',
routerName: 'class',
path: '/class',
cover: '2-3',
router: {
path: '/class',
name: 'class',
component: e => require(['@/components/class'], e),
}
},
{
value: '不上课日期',
routerName: 'noLesson',
path: '/noLesson',
cover: '2-4',
router: {
path: '/noLesson',
name: 'noLesson',
component: e => require(['@/components/noLesson'], e),
}
},
]
}, {
name: '',
value: '人员管理',
icon: 'icon-laoshi',
list: [{
value: '教师列表',
routerName: 'teacher',
path: '/teacher',
cover: '3-1',
router: {
path: '/teacher',
name: 'teacher',
component: e => require(['@/components/teacher'], e),
}
},
{
value: '用户列表',
routerName: 'user',
path: '/user',
cover: '3-2',
router: {
path: '/user',
name: 'user',
component: e => require(['@/components/user'], e),
}
}
]
}, {
name: '',
value: '订单管理',
icon: 'icon-dingdan',
list: [{
value: '订单列表',
routerName: 'order',
path: '/order',
cover: '5-1',
router: {
path: '/order',
name: 'order',
component: e => require(['@/components/order'], e),
}
}, {
value: '退款列表',
routerName: 'refund',
path: '/refund',
cover: '5-2',
router: {
path: '/refund',
name: 'refund',
component: e => require(['@/components/refund'], e),
}
}, {
value: '提现列表',
routerName: 'putForward',
path: '/putForward',
cover: '5-3',
router: {
path: '/putForward',
name: 'putForward',
component: e => require(['@/components/putForward'], e),
}
},
{
value: '发货管理',
routerName: 'consignment',
path: '/consignment',
cover: '5-4',
router: {
path: '/consignment',
name: 'consignment',
component: e => require(['@/components/consignment'], e),
}
}, {
value: '订单统计',
routerName: 'orderCount',
path: '/orderCount',
cover: '5-5',
router: {
path: '/orderCount',
name: 'orderCount',
component: e => require(['@/components/orderCount'], e),
}
}, {
value: '优惠券列表',
routerName: 'coupon',
path: '/coupon',
cover: '5-6',
router: {
path: '/coupon',
name: 'coupon',
component: e => require(['@/components/coupon'], e),
}
},
{
value: '未购买列表',
routerName: 'notBuyClass',
path: '/notBuyClass',
cover: '5-7',
router: {
path: '/notBuyClass',
name: 'notBuyClass',
component: e => require(['@/components/notBuyClass'], e),
}
},
{
value: '业绩排行',
routerName: 'achievement',
path: '/achievement',
cover: '5-7',
router: {
path: '/achievement',
name: 'achievement',
component: e => require(['@/components/achievement'], e),
}
},
]
}, {
name: '',
value: '实物管理',
icon: 'icon-shu',
list: [{
value: '单品列表',
routerName: 'single',
path: '/single',
cover: '6-1',
router: {
path: '/single',
name: 'single',
component: e => require(['@/components/single'], e),
}
},
{
value: '盒子列表',
routerName: 'box',
path: '/box',
cover: '6-2',
router: {
path: '/box',
name: 'box',
component: e => require(['@/components/box'], e),
}
}
]
}, {
name: '',
value: '公众号',
icon: 'icon-ai-weixin',
list: [{
value: '自动回复',
routerName: 'focusReply',
path: '/focusReply',
cover: '7-1',
router: {
path: '/focusReply',
name: 'focusReply',
component: e => require(['@/components/weChat/focusReply'], e),
}
},
{
value: '关键词回复',
routerName: 'autoReply',
path: '/autoReply',
cover: '7-2',
router: {
path: '/autoReply',
name: 'autoReply',
component: e => require(['@/components/weChat/autoReply'], e),
}
},
{
value: '公众号菜单',
routerName: 'weChat',
path: '/weChat',
cover: '7-3',
router: {
path: '/weChat',
name: 'weChat',
component: e => require(['@/components/weChat'], e),
}
},
{
value: '素材管理',
routerName: 'weChatResource',
path: '/weChatResource',
cover: '7-4',
router: {
path: '/weChatResource',
name: 'weChatResource',
component: e => require(['@/components/weChat/weChatResource'], e),
}
},
{
value: '二维码管理',
routerName: 'qrcode',
path: '/qrcode',
cover: '7-6',
router: {
path: '/qrcode',
name: 'qrcode',
component: e => require(['@/components/qrcode'], e),
}
},
{
value: '群发助手',
routerName: 'groupSend',
path: '/groupSend',
cover: '7-7',
router: {
path: '/groupSend',
name: 'groupSend',
component: e => require(['@/components/groupSend'], e),
}
},
{
value: '关注取关统计',
routerName: 'watchCount',
path: '/watchCount',
cover: '7-8',
router: {
path: '/watchCount',
name: 'watchCount',
component: e => require(['@/components/watchCount'], e),
}
},
{
value: '微信统计',
routerName: 'weChatStatistics',
path: '/weChatStatistics',
cover: '7-10',
router: {
path: '/weChatStatistics',
name: 'weChatStatistics',
component: e => require(['@/components/weChatStatistics'], e),
}
},
]
}, {
name: '',
value: '系统管理',
icon: 'icon-xitongquanxian',
list: [{
value: 'Banner管理',
routerName: 'banner',
path: '/banner',
cover: '7-5',
router: {
path: '/banner',
name: 'banner',
component: e => require(['@/components/system/banner'], e),
},
}, {
value: '外部投放管理',
routerName: 'externalLaunch',
path: '/externalLaunch',
cover: '7-9',
router: {
path: '/externalLaunch',
name: 'externalLaunch',
component: e => require(['@/components/externalLaunch'], e),
}
},
{
value: '来源码管理',
routerName: 'sourceManage',
path: '/sourceManage',
cover: '10-1',
router: {
path: '/sourceManage',
name: 'sourceManage',
component: e => require(['@/components/sourceManage'], e),
}
},
]
},
{
name: '',
value: '后台管理',
icon: 'icon-shezhi',
list: [{
value: '账号管理',
routerName: 'admin',
path: '/admin',
cover: '8-1',
router: {
path: '/admin',
name: 'admin',
component: e => require(['@/components/system/admin'], e),
}
}, {
value: '角色管理',
routerName: 'role',
path: '/role',
cover: '8-2',
router: {
path: '/role',
name: 'role',
component: e => require(['@/components/system/role'], e),
}
}, {
value: '菜单管理',
routerName: 'menu',
path: '/menu',
cover: '8-3',
router: {
path: '/menu',
name: 'menu',
component: e => require(['@/components/system/menu'], e),
}
}, {
value: '系统配置',
routerName: 'sysConfig',
path: '/sysConfig',
cover: '8-4',
router: {
path: '/sysConfig',
name: 'sysConfig',
component: e => require(['@/components/system/sysConfig'], e),
}
},
{
value:'操作日志',
routerName:'adminLog',
path:'/adminLog',
cover:'8-5',
router:{
path: '/adminLog',
name:'adminLog',
component: e=>require(['@/components/system/adminLog'],e),
}
}
]
}
},
{
value: '操作日志',
routerName: 'adminLog',
path: '/adminLog',
cover: '8-5',
router: {
path: '/adminLog',
name: 'adminLog',
component: e => require(['@/components/system/adminLog'], e),
}
}
]
}
]
// {
// name: '',
......@@ -433,4 +421,4 @@ export default [
// path:'/help'
// }
// ]
// }
// }
\ No newline at end of file
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