Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
A
admin-base
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
new-sing
admin-base
Commits
6db49bd1
Commit
6db49bd1
authored
Sep 12, 2018
by
wangwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
菜单权限 按钮权限
parent
196c84f5
Changes
32
Show whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
393 additions
and
240 deletions
+393
-240
App.vue
src/App.vue
+26
-0
boxTypeList.vue
src/components/box/boxTypeList.vue
+5
-5
index.vue
src/components/box/index.vue
+3
-3
index.vue
src/components/class/index.vue
+3
-3
userList.vue
src/components/class/userList.vue
+2
-2
headIndex.vue
src/components/framework/headIndex.vue
+1
-1
index.vue
src/components/framework/index.vue
+3
-0
index.vue
src/components/lesson/index.vue
+2
-1
index.vue
src/components/login/index.vue
+2
-1
index.vue
src/components/noLesson/index.vue
+3
-3
index.vue
src/components/order/index.vue
+1
-0
index.vue
src/components/periods/index.vue
+3
-6
index.vue
src/components/putForward/index.vue
+1
-0
index.vue
src/components/refund/index.vue
+1
-0
editor.vue
src/components/resources/editor.vue
+5
-5
index.vue
src/components/resources/index.vue
+14
-14
list.vue
src/components/resources/list.vue
+1
-1
index.vue
src/components/shop/index.vue
+2
-1
index.vue
src/components/single/index.vue
+2
-1
admin.vue
src/components/system/admin.vue
+5
-4
banner.vue
src/components/system/banner.vue
+2
-1
menu.vue
src/components/system/menu.vue
+31
-11
role.vue
src/components/system/role.vue
+65
-28
sysConfig.vue
src/components/system/sysConfig.vue
+2
-1
autoReply.vue
src/components/weChat/autoReply.vue
+2
-1
focusReply.vue
src/components/weChat/focusReply.vue
+2
-1
weChatResource.vue
src/components/weChat/weChatResource.vue
+1
-1
index.js
src/router/index.js
+20
-120
actions.js
src/store/actions.js
+9
-0
index.js
src/store/index.js
+3
-2
mutations.js
src/store/mutations.js
+10
-0
menuList.js
src/util/menuList.js
+161
-23
No files found.
src/App.vue
View file @
6db49bd1
...
@@ -5,12 +5,38 @@
...
@@ -5,12 +5,38 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
menu
from
'./util/menuList'
export
default
{
export
default
{
name
:
'App'
,
name
:
'App'
,
data
(){
data
(){
return
{
return
{
}
}
},
mounted
(){
let
permission
=
this
.
$store
.
state
.
progressList
;
let
menuList
=
[];
this
.
$router
.
options
.
routes
[
0
].
children
=
[];
menu
.
forEach
(
i
=>
{
let
p
=
false
;
let
t
=
[];
i
.
list
.
forEach
(
j
=>
{
let
find
=
permission
.
find
(
x
=>
{
return
x
.
cover
===
j
.
cover
});
if
(
find
){
j
.
router
.
meta
=
{};
j
.
router
.
meta
.
readonly
=
find
.
readonly
;
t
.
push
(
j
);
this
.
$router
.
options
.
routes
[
0
].
children
.
push
(
j
.
router
);
p
=
true
;
}
});
if
(
p
){
i
.
list
=
t
;
menuList
.
push
(
i
)
}
})
this
.
$router
.
addRoutes
(
this
.
$router
.
options
.
routes
);
//调用add
this
.
$store
.
dispatch
(
'setMenu'
,
menuList
)
}
}
}
}
</
script
>
</
script
>
...
...
src/components/box/boxTypeList.vue
View file @
6db49bd1
...
@@ -7,20 +7,20 @@
...
@@ -7,20 +7,20 @@
<el-card
class=
"box-card"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
>
<div
slot=
"header"
>
<span>
盒子类型
</span>
<span>
盒子类型
</span>
<el-button
style=
"float: right; padding: 3px 0;"
@
click=
"onAddType"
type=
"text"
>
新增类型
</el-button>
<el-button
style=
"float: right; padding: 3px 0;"
@
click=
"onAddType"
type=
"text"
v-if=
"!$store.state.readonly"
>
新增类型
</el-button>
</div>
</div>
<el-card
v-for=
"o in list"
shadow=
"hover"
:key=
"o.id"
:class=
"
{text:true,'now-card':o.id === nowId}">
<el-card
v-for=
"o in list"
shadow=
"hover"
:key=
"o.id"
:class=
"
{text:true,'now-card':o.id === nowId}">
<div
class=
"name"
@
click=
"changeCateGory(o.id)"
>
<div
class=
"name"
@
click=
"changeCateGory(o.id)"
>
{{
o
.
name
}}
{{
o
.
name
}}
</div>
</div>
<div
class=
"btn-block"
>
<div
class=
"btn-block"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
circle
plain
size=
"mini"
></el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
circle
plain
size=
"mini"
v-if=
"!$store.state.readonly"
></el-button>
<el-button
type=
"warning"
icon=
"el-icon-edit"
circle
plain
size=
"mini"
></el-button>
<el-button
type=
"warning"
icon=
"el-icon-edit"
circle
plain
size=
"mini"
v-if=
"!$store.state.readonly"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
plain
size=
"mini"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
plain
size=
"mini"
v-if=
"!$store.state.readonly"
></el-button>
</div>
</div>
</el-card>
</el-card>
</el-card>
</el-card>
<el-dialog
title=
"新增盒子"
:visible
.
sync=
"dialogVisible"
:modal=
"false"
>
<el-dialog
title=
"新增盒子"
:visible
.
sync=
"dialogVisible"
:modal=
"false"
v-if=
"!$store.state.readonly"
>
<el-form
label-width=
"100px"
>
<el-form
label-width=
"100px"
>
<el-form-item
label=
"名称"
>
<el-form-item
label=
"名称"
>
<el-input
v-model=
"form.name"
></el-input>
<el-input
v-model=
"form.name"
></el-input>
...
...
src/components/box/index.vue
View file @
6db49bd1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"box-index"
>
<div
class=
"box-index"
>
<box-type-list
@
changeCategoryId=
"changeCategoryId"
/>
<box-type-list
@
changeCategoryId=
"changeCategoryId"
/>
<div
class=
"add-block"
>
<div
class=
"add-block"
>
<el-button
class=
"add-btn"
type=
"success"
@
click=
"onAdd()"
>
+新增盒子
</el-button>
<el-button
class=
"add-btn"
type=
"success"
@
click=
"onAdd()"
v-if=
"!$store.state.readonly"
>
+新增盒子
</el-button>
</div>
</div>
<el-row>
<el-row>
<el-col
:span=
"5"
v-for=
"(data, index) in list"
:key=
"index"
class=
"card-col"
>
<el-col
:span=
"5"
v-for=
"(data, index) in list"
:key=
"index"
class=
"card-col"
>
...
@@ -17,8 +17,8 @@
...
@@ -17,8 +17,8 @@
<el-tag
size=
"mini"
>
level
{{
data
.
min_level
}}
-level
{{
data
.
max_level
}}
</el-tag>
<el-tag
size=
"mini"
>
level
{{
data
.
min_level
}}
-level
{{
data
.
max_level
}}
</el-tag>
<el-tag
type=
"success"
size=
"mini"
>
{{
data
.
min_age
}}
-
{{
data
.
max_age
}}
岁
</el-tag>
<el-tag
type=
"success"
size=
"mini"
>
{{
data
.
min_age
}}
-
{{
data
.
max_age
}}
岁
</el-tag>
<div
class=
"btn-block"
>
<div
class=
"btn-block"
>
<el-button
type=
"warning"
icon=
"el-icon-edit"
circle
plain
size=
"mini"
@
click=
"onEdit(data.id)"
></el-button>
<el-button
type=
"warning"
icon=
"el-icon-edit"
circle
plain
size=
"mini"
v-if=
"!$store.state.readonly"
@
click=
"onEdit(data.id)"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
plain
size=
"mini"
@
click=
"delBox(data.id)"
></el-button>
<el-button
type=
"danger"
icon=
"el-icon-delete"
circle
plain
size=
"mini"
v-if=
"!$store.state.readonly"
@
click=
"delBox(data.id)"
></el-button>
</div>
</div>
</div>
</div>
</div>
</div>
...
...
src/components/class/index.vue
View file @
6db49bd1
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
</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"
>
+添加班级
</el-button>
<el-button
@
click=
"onAdd"
type=
"success"
v-if=
"!$store.state.readonly"
>
+添加班级
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -70,8 +70,8 @@
...
@@ -70,8 +70,8 @@
label=
"操作"
>
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"
type=
"warning"
>
编辑
</el-button>
<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"
type=
"danger"
>
删除
</el-button>
<el-button
@
click=
"delClass(scope.row)"
size=
"mini"
v-if=
"!$store.state.readonly"
type=
"danger"
>
删除
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
...
src/components/class/userList.vue
View file @
6db49bd1
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div>
<div>
<el-form
label-width=
"90px"
inline
>
<el-form
label-width=
"90px"
inline
>
<el-form-item
style=
"float: right"
>
<el-form-item
style=
"float: right"
>
<el-button
type=
"success"
@
click=
"addShow = true"
>
+添加用户
</el-button>
<el-button
type=
"success"
@
click=
"addShow = true"
v-if=
"!$store.state.readonly"
>
+添加用户
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-table
<el-table
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
{{
scope
.
row
.
is_view_course
|
isOrNot
}}
{{
scope
.
row
.
is_view_course
|
isOrNot
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
>
<el-table-column
label=
"操作"
v-if=
"!$store.state.readonly"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"warning"
size=
"mini"
@
click=
"changeUser(scope.row)"
>
更改看课权限
</el-button>
<el-button
type=
"warning"
size=
"mini"
@
click=
"changeUser(scope.row)"
>
更改看课权限
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"onDel(scope.row)"
>
删除
</el-button>
<el-button
type=
"danger"
size=
"mini"
@
click=
"onDel(scope.row)"
>
删除
</el-button>
...
...
src/components/framework/headIndex.vue
View file @
6db49bd1
...
@@ -28,7 +28,7 @@
...
@@ -28,7 +28,7 @@
cookie
.
delete
(
'cc_token'
);
cookie
.
delete
(
'cc_token'
);
this
.
$store
.
dispatch
(
'setToken'
,
''
);
this
.
$store
.
dispatch
(
'setToken'
,
''
);
this
.
$store
.
dispatch
(
'setUserName'
,
''
);
this
.
$store
.
dispatch
(
'setUserName'
,
''
);
this
.
$router
.
push
({
name
:
'login'
})
window
.
location
.
href
=
'/#/login'
})
})
}).
catch
(()
=>
{
}).
catch
(()
=>
{
...
...
src/components/framework/index.vue
View file @
6db49bd1
...
@@ -52,9 +52,11 @@
...
@@ -52,9 +52,11 @@
margin: 0;
margin: 0;
padding: 0;
padding: 0;
background: #f8f8f8;
background: #f8f8f8;
.menu-block{
.menu-block{
float: left;
float: left;
height: 100%;
height: 100%;
overflow: auto;
}
}
.content{
.content{
display: flex;
display: flex;
...
@@ -67,6 +69,7 @@
...
@@ -67,6 +69,7 @@
position: absolute;
position: absolute;
top: 0;
top: 0;
height: auto;
height: auto;
overflow-y: auto;
left: 0;
left: 0;
bottom:0;
bottom:0;
right: 0;
right: 0;
...
...
src/components/lesson/index.vue
View file @
6db49bd1
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"4"
:offset=
"8"
>
<el-col
:span=
"4"
:offset=
"8"
>
<el-button
type=
"success"
plain
@
click=
"add"
>
新增课程
</el-button>
<el-button
type=
"success"
plain
@
click=
"add"
v-if=
"!$store.state.readonly"
>
新增课程
</el-button>
</el-col>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
...
@@ -56,6 +56,7 @@
...
@@ -56,6 +56,7 @@
label=
"实体包数量"
>
label=
"实体包数量"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
v-if=
"!$store.state.readonly"
width=
"250"
width=
"250"
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
...
src/components/login/index.vue
View file @
6db49bd1
...
@@ -65,7 +65,8 @@
...
@@ -65,7 +65,8 @@
loginApi
(
json
).
then
(
res
=>
{
loginApi
(
json
).
then
(
res
=>
{
this
.
$store
.
dispatch
(
'setToken'
,
res
.
token
);
this
.
$store
.
dispatch
(
'setToken'
,
res
.
token
);
this
.
$store
.
dispatch
(
'setUserName'
,
res
.
user_name
);
this
.
$store
.
dispatch
(
'setUserName'
,
res
.
user_name
);
this
.
$router
.
push
({
name
:
'resources'
})
this
.
$store
.
dispatch
(
'setPermission'
,
JSON
.
parse
(
res
.
roles
.
menu_ids
));
window
.
location
.
href
=
'/'
})
})
}
}
})
})
...
...
src/components/noLesson/index.vue
View file @
6db49bd1
...
@@ -2,14 +2,14 @@
...
@@ -2,14 +2,14 @@
<div>
<div>
<el-row
type=
"flex"
class=
"add-btn"
justify=
"end"
>
<el-row
type=
"flex"
class=
"add-btn"
justify=
"end"
>
<el-col
:span=
"6"
>
<el-col
:span=
"6"
>
<el-button
type=
"success"
plain
@
click=
"add"
>
添加不上课日期
</el-button>
<el-button
type=
"success"
plain
@
click=
"add"
v-if=
"!$store.state.readonly"
>
添加不上课日期
</el-button>
</el-col>
</el-col>
</el-row>
</el-row>
<div
class=
"card"
>
<div
class=
"card"
>
<el-card
:body-style=
"
{ padding: '0px' }" v-for="(currentDate, index) in list">
<el-card
:body-style=
"
{ padding: '0px' }" v-for="(currentDate, index) in list"
:key="index"
>
<span
class=
"time"
>
{{
currentDate
}}
</span>
<span
class=
"time"
>
{{
currentDate
}}
</span>
<div
class=
"bottom clearfix"
>
<div
class=
"bottom clearfix"
>
<el-button
type=
"text"
class=
"button"
@
click=
"del(currentDate)"
>
删除
</el-button>
<el-button
type=
"text"
class=
"button"
@
click=
"del(currentDate)"
v-if=
"!$store.state.readonly"
>
删除
</el-button>
</div>
</div>
</el-card>
</el-card>
</div>
</div>
...
...
src/components/order/index.vue
View file @
6db49bd1
...
@@ -61,6 +61,7 @@
...
@@ -61,6 +61,7 @@
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
min-width=
"80"
min-width=
"80"
v-if=
"!$store.state.readonly"
>
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-popover
<el-popover
...
...
src/components/periods/index.vue
View file @
6db49bd1
...
@@ -25,14 +25,11 @@
...
@@ -25,14 +25,11 @@
</el-option>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<!--
<el-form-item>
-->
<el-form-item>
<!--
<el-button
@
click=
"onChoose"
type=
"success"
>
选择商品
</el-button>
-->
<!--
</el-form-item>
-->
<!--
<el-form-item>
-->
<el-button
@
click=
"onSearch"
type=
"primary"
>
查询
</el-button>
<el-button
@
click=
"onSearch"
type=
"primary"
>
查询
</el-button>
</el-form-item>
</el-form-item>
<el-form-item
style=
"float: left;margin-left: 20px;"
>
<el-form-item
style=
"float: left;margin-left: 20px;"
>
<el-button
@
click=
"onAdd"
type=
"primary"
>
添加期数
</el-button>
<el-button
@
click=
"onAdd"
type=
"primary"
v-if=
"!$store.state.readonly"
>
添加期数
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -98,7 +95,7 @@
...
@@ -98,7 +95,7 @@
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
width=
"148"
>
width=
"148"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
v-if=
"!$store.state.readonly"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"onEdit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"onEdit(scope.row)"
>
编辑
编辑
</el-button>
</el-button>
...
...
src/components/putForward/index.vue
View file @
6db49bd1
...
@@ -88,6 +88,7 @@
...
@@ -88,6 +88,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
v-if=
"!$store.state.readonly"
>
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
...
...
src/components/refund/index.vue
View file @
6db49bd1
...
@@ -55,6 +55,7 @@
...
@@ -55,6 +55,7 @@
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
min-width=
"80"
min-width=
"80"
v-if=
"!$store.state.readonly"
>
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
...
...
src/components/resources/editor.vue
View file @
6db49bd1
...
@@ -17,10 +17,11 @@
...
@@ -17,10 +17,11 @@
<el-container>
<el-container>
<el-aside
width=
"150px"
>
<el-aside
width=
"150px"
>
<div
class=
"page-list"
>
<div
class=
"page-list"
>
<div
class=
"card-item"
v-for=
"(data,index) in selectedMould"
:key=
"index"
@
click=
"chooseThat(index)"
>
<div
class=
"card-item"
v-for=
"(data,index) in selectedMould"
:key=
"index"
>
<div
class=
"list2-btn"
>
<div
class=
"list2-btn"
>
<i
class=
"iconfont icon-shanchu"
@
click=
"delMould(index)"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delMould(index)"
></i>
</div>
</div>
<div
@
click=
"chooseThat(index)"
>
<el-card
shadow=
"hover"
:class=
"nowIndex === index ? 'border' : ''"
:body-style=
"
{ padding: '0px' }">
<el-card
shadow=
"hover"
:class=
"nowIndex === index ? 'border' : ''"
:body-style=
"
{ padding: '0px' }">
<div
class=
"dialog-card"
>
<div
class=
"dialog-card"
>
序号:
{{
index
}}
序号:
{{
index
}}
...
@@ -29,6 +30,7 @@
...
@@ -29,6 +30,7 @@
</el-card>
</el-card>
</div>
</div>
</div>
</div>
</div>
</el-aside>
</el-aside>
<el-main>
<el-main>
<!--爸妈看一看1-->
<!--爸妈看一看1-->
...
@@ -57,8 +59,6 @@
...
@@ -57,8 +59,6 @@
</div>
</div>
<div
class=
"title2-block"
>
<div
class=
"title2-block"
>
<img
:src=
"mouldImg.look1.title2"
class=
"title2"
/>
<img
:src=
"mouldImg.look1.title2"
class=
"title2"
/>
<img
:src=
"mouldImg.look1.redM"
class=
"redM"
/>
<img
:src=
"mouldImg.look1.flour"
class=
"flour"
/>
<div
class=
"directory-text"
>
<div
class=
"directory-text"
>
<div
v-html=
"selectedMould[nowIndex].content.directory"
>
<div
v-html=
"selectedMould[nowIndex].content.directory"
>
</div>
</div>
...
@@ -127,7 +127,7 @@
...
@@ -127,7 +127,7 @@
<div
class=
"icon-class"
>
<div
class=
"icon-class"
>
<img
:src=
"mouldImg.play1.play"
/>
<img
:src=
"mouldImg.play1.play"
/>
</div>
</div>
<video
v-if=
"selectedMould[nowIndex].content.videoUrl.length > 0"
:poster=
"selectedMould[nowIndex].content.banner[0] ? selectedMould[nowIndex].content.banner[0].url : '' "
:src=
"selectedMould[nowIndex].content.videoUrl[0].url"
></video>
<video
style=
"width: 100%"
v-if=
"selectedMould[nowIndex].content.videoUrl.length > 0"
:poster=
"selectedMould[nowIndex].content.banner[0] ? selectedMould[nowIndex].content.banner[0].url : '' "
:src=
"selectedMould[nowIndex].content.videoUrl[0].url"
></video>
</div>
</div>
<img
:src=
"mouldImg.play1.radio"
class=
"radio-img"
/>
<img
:src=
"mouldImg.play1.radio"
class=
"radio-img"
/>
<img
:src=
"mouldImg.play1.backBtn"
class=
"btn back"
/>
<img
:src=
"mouldImg.play1.backBtn"
class=
"btn back"
/>
...
@@ -482,7 +482,7 @@
...
@@ -482,7 +482,7 @@
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center"
>
<span
slot=
"footer"
class=
"dialog-footer"
style=
"text-align: center"
>
<
el-button
type=
"default"
@
click=
"selectedMould[nowIndex].content =
{};dialogVisible = false">取消
</el-button
>
<
!--
<el-button
type=
"default"
@
click=
"dialogVisible = false"
>
取消
</el-button>
--
>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"dialogVisible = false"
>
确 定
</el-button>
</span>
</span>
</el-dialog>
</el-dialog>
...
...
src/components/resources/index.vue
View file @
6db49bd1
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<el-menu
<el-menu
:default-active=
"index"
v-loading=
"menuLoading"
>
:default-active=
"index"
v-loading=
"menuLoading"
>
<div
style=
"padding: 5px"
>
<div
style=
"padding: 5px"
>
<el-button
type=
"success"
plain
round
size=
"mini"
style=
"width: 100%"
@
click=
"addFist()"
>
<el-button
type=
"success"
plain
round
size=
"mini"
style=
"width: 100%"
@
click=
"addFist()"
v-if=
"!$store.state.readonly"
>
+添加分类
+添加分类
</el-button>
</el-button>
</div>
</div>
...
@@ -13,37 +13,37 @@
...
@@ -13,37 +13,37 @@
<template
slot=
"title"
>
<template
slot=
"title"
>
<span>
<span>
{{
data
.
name
}}
(
{{
data
.
children
|
lengthNum
}}
)
{{
data
.
name
}}
(
{{
data
.
children
|
lengthNum
}}
)
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(data)"
></i>
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(data)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(data)"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(data)"
v-if=
"!$store.state.readonly"
></i>
</span>
</span>
</
template
>
</
template
>
<el-submenu
v-if=
"data.children"
class=
"list2"
:index=
"item.name"
v-for=
"item in data.children"
:key=
"item.id"
>
<el-submenu
v-if=
"data.children"
class=
"list2"
:index=
"item.name"
v-for=
"item in data.children"
:key=
"item.id"
>
<span
slot=
"title"
>
<span
slot=
"title"
>
{{item.name}}
{{item.name}}
<div
class=
"btn-block list2-btn"
>
<div
class=
"btn-block list2-btn"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"upIndex(item,data.children)"
></i>
<i
class=
"iconfont icon-shangyi"
@
click=
"upIndex(item,data.children)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-xiayi"
@
click=
"downIndex(item,data.children)"
></i>
<i
class=
"iconfont icon-xiayi"
@
click=
"downIndex(item,data.children)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(item)"
></i>
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(item)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(item)"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(item)"
v-if=
"!$store.state.readonly"
></i>
</div>
</div>
</span>
</span>
<div
@
click=
"chooseId(i)"
v-for=
"i in item.children"
:key=
"i.name"
>
<div
@
click=
"chooseId(i)"
v-for=
"i in item.children"
:key=
"i.name"
>
<el-menu-item
class=
"list3"
:index=
"i.name"
>
<el-menu-item
class=
"list3"
:index=
"i.name"
>
{{i.name}}
{{i.name}}
<div
class=
"btn-block list3-btn"
>
<div
class=
"btn-block list3-btn"
>
<i
class=
"iconfont icon-shangyi"
@
click=
"upIndex(i,item.children)"
></i>
<i
class=
"iconfont icon-shangyi"
@
click=
"upIndex(i,item.children)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-xiayi"
@
click=
"downIndex(i,item.children)"
></i>
<i
class=
"iconfont icon-xiayi"
@
click=
"downIndex(i,item.children)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(i)"
></i>
<i
class=
"iconfont icon-bianji"
@
click=
"editIndex(i)"
v-if=
"!$store.state.readonly"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(i)"
></i>
<i
class=
"iconfont icon-shanchu"
@
click=
"delIndex(i)"
v-if=
"!$store.state.readonly"
></i>
</div>
</div>
</el-menu-item>
</el-menu-item>
</div>
</div>
<el-menu-item
class=
"list3"
index=
"new"
>
<el-menu-item
class=
"list3"
index=
"new"
>
<el-button
type=
"success"
round
size=
"mini"
plain
style=
"width: 100%"
@
click=
"addItem(item.id)"
>
+添加三级分类
</el-button>
<el-button
type=
"success"
round
size=
"mini"
plain
style=
"width: 100%"
@
click=
"addItem(item.id)"
v-if=
"!$store.state.readonly"
>
+添加三级分类
</el-button>
</el-menu-item>
</el-menu-item>
</el-submenu>
</el-submenu>
<el-menu-item
class=
"list3"
index=
"new"
>
<el-menu-item
class=
"list3"
index=
"new"
>
<el-button
type=
"success"
round
size=
"mini"
plain
style=
"width: 100%"
@
click=
"addSec(data.id)"
>
+添加二级分类
</el-button>
<el-button
type=
"success"
round
size=
"mini"
plain
style=
"width: 100%"
@
click=
"addSec(data.id)"
v-if=
"!$store.state.readonly"
>
+添加二级分类
</el-button>
</el-menu-item>
</el-menu-item>
</el-submenu>
</el-submenu>
</el-menu>
</el-menu>
...
@@ -196,7 +196,7 @@
...
@@ -196,7 +196,7 @@
}
}
},
},
mounted
(){
mounted
(){
this
.
getList
()
this
.
getList
()
;
}
}
}
}
</
script
>
</
script
>
...
...
src/components/resources/list.vue
View file @
6db49bd1
<
template
>
<
template
>
<div>
<div>
<div
class=
"add-block"
v-if=
"id && list.length === 0"
>
<div
class=
"add-block"
v-if=
"id && list.length === 0"
>
<el-button
round
type=
"success"
@
click=
"onAdd"
>
+新增课时
</el-button>
<el-button
round
type=
"success"
@
click=
"onAdd"
v-if=
"!$store.state.readonly"
>
+新增课时
</el-button>
</div>
</div>
<el-card
v-for=
"data in list"
:key=
"data.id"
class=
"box-card"
>
<el-card
v-for=
"data in list"
:key=
"data.id"
class=
"box-card"
>
<div
class=
"id"
>
<div
class=
"id"
>
...
...
src/components/shop/index.vue
View file @
6db49bd1
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
</el-col>
</el-col>
<el-col
:span=
"4"
:offset=
"12"
>
<el-col
:span=
"4"
:offset=
"12"
>
<el-form-item>
<el-form-item>
<el-button
type=
"success"
plain
@
click=
"add"
>
添加商品
</el-button>
<el-button
type=
"success"
plain
@
click=
"add"
v-if=
"!$store.state.readonly"
>
添加商品
</el-button>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
...
@@ -72,6 +72,7 @@
...
@@ -72,6 +72,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
width=
"200"
width=
"200"
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-popover
<el-popover
...
...
src/components/single/index.vue
View file @
6db49bd1
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
</el-col>
</el-col>
<el-col
:span=
"4"
>
<el-col
:span=
"4"
>
<el-form-item>
<el-form-item>
<el-button
type=
"success"
plain
size=
"small"
@
click=
"onAdd"
>
<el-button
type=
"success"
plain
size=
"small"
@
click=
"onAdd"
v-if=
"!$store.state.readonly"
>
添加单品
添加单品
</el-button>
</el-button>
</el-form-item>
</el-form-item>
...
@@ -53,6 +53,7 @@
...
@@ -53,6 +53,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
width=
"200"
width=
"200"
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
...
...
src/components/system/admin.vue
View file @
6db49bd1
<
template
>
<
template
>
<div
class=
"admin"
>
<div
class=
"admin"
>
<div
class=
"head clear-both"
>
<div
class=
"head clear-both"
>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
>
新增角色
</el-button>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
v-if=
"!$store.state.readonly"
>
新增角色
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"adminList"
:data=
"adminList"
...
@@ -25,6 +25,7 @@
...
@@ -25,6 +25,7 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-popover
<el-popover
...
@@ -99,7 +100,7 @@
...
@@ -99,7 +100,7 @@
import
{
getAdminListApi
,
editAdminListApi
,
addAdminListApi
,
delAdminListApi
,
editPasswordApi
,
getRoleListApi
}
from
"../../service/api"
;
import
{
getAdminListApi
,
editAdminListApi
,
addAdminListApi
,
delAdminListApi
,
editPasswordApi
,
getRoleListApi
}
from
"../../service/api"
;
import
{
ADMINSTATUS
}
from
"../../util/wordbook"
;
import
{
ADMINSTATUS
}
from
"../../util/wordbook"
;
import
page
from
'../framework/page'
import
page
from
'../framework/page'
import
md5
from
'js-md5'
;
export
default
{
export
default
{
name
:
"admin"
,
name
:
"admin"
,
components
:{
components
:{
...
@@ -281,7 +282,7 @@
...
@@ -281,7 +282,7 @@
let
json
=
{
let
json
=
{
role_id
:
dia
.
form
.
role_id
,
role_id
:
dia
.
form
.
role_id
,
desc
:
dia
.
form
.
desc
,
desc
:
dia
.
form
.
desc
,
passwd
:
dia
.
form
.
password
,
passwd
:
md5
(
dia
.
form
.
password
)
,
username
:
dia
.
form
.
username
username
:
dia
.
form
.
username
};
};
addAdminListApi
(
json
).
then
(()
=>
{
addAdminListApi
(
json
).
then
(()
=>
{
...
@@ -295,7 +296,7 @@
...
@@ -295,7 +296,7 @@
}
else
if
(
dia
.
dialogType
===
2
){
}
else
if
(
dia
.
dialogType
===
2
){
console
.
log
(
1
)
console
.
log
(
1
)
let
json
=
{
let
json
=
{
passwd_new
:
dia
.
form
.
password
passwd_new
:
md5
(
dia
.
form
.
password
)
}
}
editPasswordApi
(
dia
.
form
.
id
,
json
).
then
(()
=>
{
editPasswordApi
(
dia
.
form
.
id
,
json
).
then
(()
=>
{
this
.
$message
({
this
.
$message
({
...
...
src/components/system/banner.vue
View file @
6db49bd1
<
template
>
<
template
>
<div
class=
"banner"
v-loading=
"loading"
>
<div
class=
"banner"
v-loading=
"loading"
>
<div
class=
"head clear-both"
>
<div
class=
"head clear-both"
>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
>
新增banner
</el-button>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
v-if=
"!$store.state.readonly"
>
新增banner
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"bannerList"
:data=
"bannerList"
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"操作"
label=
"操作"
v-if=
"!$store.state.readonly"
width=
"100"
>
width=
"100"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-popover
<el-popover
...
...
src/components/system/menu.vue
View file @
6db49bd1
<
template
>
<
template
>
<div
class=
"menu"
>
<div
class=
"menu"
>
<div
class=
"head clear-both"
>
<div
class=
"head clear-both"
>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
>
新增菜单
</el-button>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
v-if=
"!$store.state.readonly"
>
新增菜单
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"menuList"
:data=
"menuList"
style=
"width: 100%"
>
style=
"width: 100%"
>
<el-table-column
<el-table-column
prop=
"
id
"
prop=
"
name
"
label=
"菜单
ID
"
>
label=
"菜单
名称
"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"cover"
prop=
"cover"
label=
"菜单Code"
>
label=
"菜单Code"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"name"
v-if=
"!$store.state.readonly"
label=
"菜单名称"
>
</el-table-column>
<el-table-column
label=
"操作"
>
label=
"操作"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"edit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"edit(scope.row)"
>
...
@@ -43,6 +40,20 @@
...
@@ -43,6 +40,20 @@
<el-form-item
label=
"菜单Code"
prop=
"cover"
>
<el-form-item
label=
"菜单Code"
prop=
"cover"
>
<el-input
v-model=
"dialog.form.cover"
></el-input>
<el-input
v-model=
"dialog.form.cover"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"上级菜单"
prop=
"cover"
>
<el-select
v-model=
"dialog.form.pid"
placeholder=
"请选择"
>
<el-option
label=
"无"
:value=
"0"
>
</el-option>
<el-option
v-for=
"item in plist"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialog.show = false"
>
取 消
</el-button>
<el-button
@
click=
"dialog.show = false"
>
取 消
</el-button>
...
@@ -56,12 +67,12 @@
...
@@ -56,12 +67,12 @@
import
{
getMenuListApi
,
saveMenuApi
,
delMenuApi
,
updateMenuApi
}
from
"../../service/api"
;
import
{
getMenuListApi
,
saveMenuApi
,
delMenuApi
,
updateMenuApi
}
from
"../../service/api"
;
export
default
{
export
default
{
name
:
"menu"
,
data
(){
data
(){
return
{
return
{
nowPage
:
1
,
nowPage
:
1
,
total
:
0
,
total
:
0
,
menuList
:[],
menuList
:[],
plist
:[],
dialog
:{
dialog
:{
title
:
'新增菜单'
,
title
:
'新增菜单'
,
show
:
false
,
show
:
false
,
...
@@ -90,7 +101,17 @@
...
@@ -90,7 +101,17 @@
getList
(){
getList
(){
getMenuListApi
().
then
(
res
=>
{
getMenuListApi
().
then
(
res
=>
{
if
(
res
)
{
if
(
res
)
{
this
.
menuList
=
res
this
.
menuList
=
[];
this
.
plist
=
[];
res
.
forEach
(
i
=>
{
this
.
menuList
.
push
(
i
);
this
.
plist
.
push
(
i
);
if
(
i
.
children
){
i
.
children
.
forEach
(
j
=>
{
this
.
menuList
.
push
(
j
);
})
}
})
}
}
})
})
},
},
...
@@ -100,7 +121,7 @@
...
@@ -100,7 +121,7 @@
this
.
dialog
.
title
=
'编辑菜单'
;
this
.
dialog
.
title
=
'编辑菜单'
;
this
.
dialog
.
form
.
name
=
data
.
name
;
this
.
dialog
.
form
.
name
=
data
.
name
;
this
.
dialog
.
form
.
cover
=
data
.
cover
;
this
.
dialog
.
form
.
cover
=
data
.
cover
;
this
.
dialog
.
form
.
pid
=
0
;
this
.
dialog
.
form
.
pid
=
data
.
pid
;
},
},
add
(){
add
(){
this
.
dialog
.
show
=
true
;
this
.
dialog
.
show
=
true
;
...
@@ -170,7 +191,6 @@
...
@@ -170,7 +191,6 @@
.head{
.head{
padding: 5px;
padding: 5px;
}
}
width: 100%;
padding: 10px;
padding: 10px;
.page-div{
.page-div{
text-align: center;
text-align: center;
...
...
src/components/system/role.vue
View file @
6db49bd1
<
template
>
<
template
>
<div
class=
"role"
>
<div
class=
"role"
>
<div
class=
"head clear-both"
>
<div
class=
"head clear-both"
>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
>
新增角色
</el-button>
<el-button
@
click=
"add"
plain
type=
"success"
style=
"float: right"
v-if=
"!$store.state.readonly"
>
新增角色
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"roleList"
:data=
"roleList"
...
@@ -14,15 +14,12 @@
...
@@ -14,15 +14,12 @@
prop=
"name"
prop=
"name"
label=
"角色名称"
>
label=
"角色名称"
>
</el-table-column>
</el-table-column>
<el-table-column
prop=
"menu_ids"
label=
"菜单IDs"
>
</el-table-column>
<el-table-column
<el-table-column
prop=
"created_at"
prop=
"created_at"
label=
"创建时间"
>
label=
"创建时间"
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"edit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"primary"
@
click=
"edit(scope.row)"
>
...
@@ -38,22 +35,32 @@
...
@@ -38,22 +35,32 @@
<el-dialog
<el-dialog
:title=
"dialog.title"
:title=
"dialog.title"
center
center
append-to-body
append-to-body
:visible
.
sync=
"dialog.show"
:visible
.
sync=
"dialog.show"
width=
"30%"
>
width=
"30%"
>
<el-form
ref=
"form"
:rules=
"dialog.rules"
:model=
"dialog.form"
label-width=
"100px"
>
<el-form
ref=
"form"
:rules=
"dialog.rules"
:model=
"dialog.form"
label-width=
"100px"
>
<el-form-item
label=
"
菜单
名称"
prop=
"name"
>
<el-form-item
label=
"
角色
名称"
prop=
"name"
>
<el-input
v-model=
"dialog.form.name"
></el-input>
<el-input
v-model=
"dialog.form.name"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"菜单选项"
prop=
"menu_ids"
>
<el-form-item
label=
"菜单选项"
>
<el-select
v-model=
"dialog.form.menu_ids"
multiple
placeholder=
"请选择"
>
<div
class=
"custom-tree-container"
>
<el-option
<el-tree
:data=
"dialog.select"
v-for=
"item in dialog.select"
show-checkbox
:key=
"item.id"
node-key=
"id"
:label=
"item.name"
ref=
"tree"
:value=
"item.id"
>
:default-checked-keys=
"dialog.chooseed"
</el-option>
default-expand-all
</el-select>
:expand-on-click-node=
"false"
:props=
"{children:'children',label:'name',value:false}"
>
<span
class=
"custom-tree-node"
slot-scope=
"{ node, data }"
>
<span>
{{ node.label }}
</span>
<span
v-if=
"data.pid !== 0"
>
<el-checkbox
v-model=
"data.readonly"
>
只读
</el-checkbox>
</span>
</span>
</el-tree>
</div>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -68,7 +75,6 @@
...
@@ -68,7 +75,6 @@
import
{
getMenuListApi
,
getRoleListApi
,
getRoleDetailApi
,
delRoleApi
,
updateRoleApi
,
saveRoleApi
}
from
"../../service/api"
;
import
{
getMenuListApi
,
getRoleListApi
,
getRoleDetailApi
,
delRoleApi
,
updateRoleApi
,
saveRoleApi
}
from
"../../service/api"
;
import
page
from
'../framework/page'
import
page
from
'../framework/page'
export
default
{
export
default
{
name
:
"menu"
,
components
:{
components
:{
page
page
},
},
...
@@ -81,13 +87,11 @@
...
@@ -81,13 +87,11 @@
title
:
'新增角色'
,
title
:
'新增角色'
,
show
:
false
,
show
:
false
,
select
:[],
select
:[],
chooseed
:[],
rules
:
{
rules
:
{
name
:
[
name
:
[
{
required
:
true
,
message
:
'请填写角色名称'
,
trigger
:
'change'
},
{
required
:
true
,
message
:
'请填写角色名称'
,
trigger
:
'change'
},
],
],
menu_ids
:
[
{
required
:
true
,
message
:
'请选择菜单'
,
trigger
:
'change'
},
]
},
},
form
:{
form
:{
name
:
''
,
name
:
''
,
...
@@ -98,12 +102,20 @@
...
@@ -98,12 +102,20 @@
}
}
},
},
created
(){
created
(){
this
.
getList
()
this
.
getList
();
this
.
getMenuList
()
},
},
methods
:{
methods
:{
getMenuList
(){
getMenuList
(){
getMenuListApi
().
then
(
res
=>
{
getMenuListApi
().
then
(
res
=>
{
if
(
res
)
{
if
(
res
)
{
res
.
forEach
(
i
=>
{
if
(
i
.
children
){
i
.
children
.
forEach
(
j
=>
{
j
.
readonly
=
false
})
}
});
this
.
dialog
.
select
=
res
this
.
dialog
.
select
=
res
}
}
})
})
...
@@ -121,11 +133,21 @@
...
@@ -121,11 +133,21 @@
this
.
dialog
.
title
=
'编辑角色'
;
this
.
dialog
.
title
=
'编辑角色'
;
this
.
getMenuList
();
this
.
getMenuList
();
getRoleDetailApi
(
data
.
id
).
then
((
res
)
=>
{
getRoleDetailApi
(
data
.
id
).
then
((
res
)
=>
{
this
.
dialog
.
form
.
name
=
res
.
name
this
.
dialog
.
form
.
name
=
res
.
name
;
let
_ids
=
res
.
menu_ids
.
split
(
','
).
map
((
item
)
=>
{
this
.
dialog
.
form
.
menu_ids
=
JSON
.
parse
(
res
.
menu_ids
);
return
parseInt
(
item
);
this
.
dialog
.
chooseed
=
[];
this
.
dialog
.
form
.
menu_ids
.
forEach
(
i
=>
{
this
.
dialog
.
chooseed
.
push
(
i
.
id
);
this
.
dialog
.
select
.
forEach
(
j
=>
{
if
(
j
.
children
){
j
.
children
.
forEach
(
x
=>
{
if
(
x
.
id
===
i
.
id
){
x
.
readonly
=
i
.
readonly
}
})
}
})
})
this
.
dialog
.
form
.
menu_ids
=
_ids
});
this
.
dialog
.
show
=
true
;
this
.
dialog
.
show
=
true
;
})
})
},
},
...
@@ -133,7 +155,7 @@
...
@@ -133,7 +155,7 @@
this
.
dialog
.
show
=
true
;
this
.
dialog
.
show
=
true
;
this
.
dialog
.
form
.
id
=
''
;
this
.
dialog
.
form
.
id
=
''
;
this
.
dialog
.
title
=
'新增菜单'
;
this
.
dialog
.
title
=
'新增菜单'
;
this
.
dialog
.
form
.
name
=
''
this
.
dialog
.
form
.
name
=
''
;
this
.
dialog
.
form
.
menu_ids
=
[];
this
.
dialog
.
form
.
menu_ids
=
[];
this
.
getMenuList
();
this
.
getMenuList
();
},
},
...
@@ -155,11 +177,18 @@
...
@@ -155,11 +177,18 @@
sub
(){
sub
(){
this
.
$refs
[
'form'
].
validate
((
valid
)
=>
{
this
.
$refs
[
'form'
].
validate
((
valid
)
=>
{
if
(
valid
){
if
(
valid
){
let
checked
=
this
.
$refs
.
tree
.
getCheckedNodes
();
let
menu_ids
=
[];
checked
.
forEach
(
i
=>
{
if
(
i
.
readonly
===
false
||
i
.
readonly
===
true
){
menu_ids
.
push
({
id
:
i
.
id
,
cover
:
i
.
cover
,
readonly
:
i
.
readonly
})
}
});
let
dia
=
this
.
dialog
;
let
dia
=
this
.
dialog
;
if
(
dia
.
form
.
id
){
if
(
dia
.
form
.
id
){
let
json
=
{
let
json
=
{
name
:
dia
.
form
.
name
,
name
:
dia
.
form
.
name
,
menu_ids
:
dia
.
form
.
menu_ids
.
join
(
','
)
menu_ids
:
JSON
.
stringify
(
menu_ids
)
};
};
updateRoleApi
(
dia
.
form
.
id
,
json
).
then
(()
=>
{
updateRoleApi
(
dia
.
form
.
id
,
json
).
then
(()
=>
{
this
.
$message
({
this
.
$message
({
...
@@ -172,7 +201,7 @@
...
@@ -172,7 +201,7 @@
}
else
{
}
else
{
let
json
=
{
let
json
=
{
name
:
dia
.
form
.
name
,
name
:
dia
.
form
.
name
,
menu_ids
:
dia
.
form
.
menu_ids
.
join
(
','
)
menu_ids
:
JSON
.
stringify
(
menu_ids
)
};
};
saveRoleApi
(
json
).
then
(()
=>
{
saveRoleApi
(
json
).
then
(()
=>
{
this
.
$message
({
this
.
$message
({
...
@@ -191,6 +220,14 @@
...
@@ -191,6 +220,14 @@
</
script
>
</
script
>
<
style
scoped
lang=
"less"
>
<
style
scoped
lang=
"less"
>
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
padding-right: 8px;
}
.role{
.role{
.head{
.head{
padding: 5px;
padding: 5px;
...
...
src/components/system/sysConfig.vue
View file @
6db49bd1
<
template
>
<
template
>
<div
class=
"sys"
>
<div
class=
"sys"
>
<div
class=
"clear-both top"
>
<div
class=
"clear-both top"
>
<el-button
type=
"success"
plain
@
click=
"add"
style=
"float: right"
>
添加配置
</el-button>
<el-button
type=
"success"
plain
@
click=
"add"
style=
"float: right"
v-if=
"!$store.state.readonly"
>
添加配置
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"list"
:data=
"list"
...
@@ -39,6 +39,7 @@
...
@@ -39,6 +39,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
width=
"250"
width=
"250"
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
...
...
src/components/weChat/autoReply.vue
View file @
6db49bd1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div>
<div>
<el-row
type=
"flex"
class=
"add-btn"
justify=
"end"
>
<el-row
type=
"flex"
class=
"add-btn"
justify=
"end"
>
<el-col
:span=
"6"
style=
"text-align: right;"
>
<el-col
:span=
"6"
style=
"text-align: right;"
>
<el-button
type=
"success"
plain
@
click=
"add"
>
添加回复
</el-button>
<el-button
type=
"success"
plain
@
click=
"add"
v-if=
"!$store.state.readonly"
>
添加回复
</el-button>
</el-col>
</el-col>
</el-row>
</el-row>
<el-table
<el-table
...
@@ -40,6 +40,7 @@
...
@@ -40,6 +40,7 @@
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
width=
"250"
width=
"250"
v-if=
"!$store.state.readonly"
label=
"操作"
>
label=
"操作"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
<el-button
size=
"mini"
plain
type=
"warning"
@
click=
"edit(scope.row)"
>
...
...
src/components/weChat/focusReply.vue
View file @
6db49bd1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"focus-reply"
>
<div
class=
"focus-reply"
>
<div
class=
"clear-both top"
>
<div
class=
"clear-both top"
>
<span
class=
"title"
>
自动回复
</span>
<span
class=
"title"
>
自动回复
</span>
<el-button
type=
"success"
plain
style=
"float: right"
@
click=
"add"
>
添加回复
</el-button>
<el-button
type=
"success"
plain
style=
"float: right"
@
click=
"add"
v-if=
"!$store.state.readonly"
>
添加回复
</el-button>
</div>
</div>
<el-table
<el-table
:data=
"list"
:data=
"list"
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
<el-table-column
<el-table-column
fixed=
"right"
fixed=
"right"
label=
"操作"
label=
"操作"
v-if=
"!$store.state.readonly"
width=
"200"
>
width=
"200"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
...
...
src/components/weChat/weChatResource.vue
View file @
6db49bd1
...
@@ -35,7 +35,7 @@
...
@@ -35,7 +35,7 @@
:show-file-list=
"false"
:show-file-list=
"false"
:data=
"uploadParam"
>
:data=
"uploadParam"
>
<!--:on-success="handleUploadSuccess"-->
<!--:on-success="handleUploadSuccess"-->
<el-button
style=
"order:2;"
slot=
"trigger"
size=
"small"
type=
"primary"
>
选取文件
</el-button>
<el-button
style=
"order:2;"
slot=
"trigger"
size=
"small"
type=
"primary"
v-if=
"!$store.state.readonly"
>
选取文件
</el-button>
<!--
<div
slot=
"tip"
class=
"el-upload__tip"
>
大小不超过5M
</div>
-->
<!--
<div
slot=
"tip"
class=
"el-upload__tip"
>
大小不超过5M
</div>
-->
</el-upload>
</el-upload>
</div>
</div>
...
...
src/router/index.js
View file @
6db49bd1
...
@@ -7,14 +7,6 @@ Vue.use(Router);
...
@@ -7,14 +7,6 @@ Vue.use(Router);
const
router
=
new
Router
({
const
router
=
new
Router
({
routes
:
[
routes
:
[
{
path
:
'/login'
,
name
:
'login'
,
component
:
e
=>
require
([
'@/components/login'
],
e
),
meta
:{
skip_auth
:
true
,
}
},
{
{
path
:
'/'
,
path
:
'/'
,
name
:
'index'
,
name
:
'index'
,
...
@@ -25,122 +17,25 @@ const router =new Router({
...
@@ -25,122 +17,25 @@ const router =new Router({
path
:
''
,
path
:
''
,
name
:
'first'
,
name
:
'first'
,
component
:
e
=>
require
([
'@/components/main'
],
e
),
component
:
e
=>
require
([
'@/components/main'
],
e
),
},{
}
path
:
'/help'
,
]
name
:
'help'
,
component
:
e
=>
require
([
'@/components/help'
],
e
),
},{
path
:
'/putForward'
,
name
:
'putForward'
,
component
:
e
=>
require
([
'@/components/putForward'
],
e
),
},{
path
:
'/refund'
,
name
:
'refund'
,
component
:
e
=>
require
([
'@/components/refund'
],
e
),
},{
path
:
'/noLesson'
,
name
:
'noLesson'
,
component
:
e
=>
require
([
'@/components/noLesson'
],
e
),
},{
path
:
'/banner'
,
name
:
'banner'
,
component
:
e
=>
require
([
'@/components/system/banner'
],
e
),
},{
path
:
'/weChatResource'
,
name
:
'weChatResource'
,
component
:
e
=>
require
([
'@/components/weChat/weChatResource'
],
e
),
},{
path
:
'/menu'
,
name
:
'menu'
,
component
:
e
=>
require
([
'@/components/system/menu'
],
e
),
},{
path
:
'/focusReply'
,
name
:
'focusReply'
,
component
:
e
=>
require
([
'@/components/weChat/focusReply'
],
e
),
},{
path
:
'/weChat'
,
name
:
'weChat'
,
component
:
e
=>
require
([
'@/components/weChat'
],
e
),
},{
path
:
'/autoReply'
,
name
:
'autoReply'
,
component
:
e
=>
require
([
'@/components/weChat/autoReply'
],
e
),
},{
path
:
'/resources'
,
name
:
'resources'
,
component
:
e
=>
require
([
'@/components/resources'
],
e
),
},{
path
:
'/periods'
,
name
:
'periods'
,
component
:
e
=>
require
([
'@/components/periods'
],
e
),
},{
path
:
'/shop'
,
name
:
'shop'
,
component
:
e
=>
require
([
'@/components/shop'
],
e
),
},{
path
:
'/consignment'
,
name
:
'consignment'
,
component
:
e
=>
require
([
'@/components/consignment'
],
e
),
},{
path
:
'/single'
,
name
:
'single'
,
component
:
e
=>
require
([
'@/components/single'
],
e
),
},{
path
:
'/box'
,
name
:
'box'
,
component
:
e
=>
require
([
'@/components/box'
],
e
),
},{
path
:
'/lesson'
,
name
:
'lesson'
,
component
:
e
=>
require
([
'@/components/lesson'
],
e
),
},{
path
:
'/user'
,
name
:
'user'
,
component
:
e
=>
require
([
'@/components/user'
],
e
),
},{
path
:
'/teacher'
,
name
:
'teacher'
,
component
:
e
=>
require
([
'@/components/teacher'
],
e
),
},{
path
:
'/admin'
,
name
:
'admin'
,
component
:
e
=>
require
([
'@/components/system/admin'
],
e
),
},{
path
:
'/role'
,
name
:
'role'
,
component
:
e
=>
require
([
'@/components/system/role'
],
e
),
},
{
path
:
'/class'
,
name
:
'class'
,
component
:
e
=>
require
([
'@/components/class'
],
e
),
},{
path
:
'/order'
,
name
:
'order'
,
component
:
e
=>
require
([
'@/components/order'
],
e
),
},{
path
:
'/sysConfig'
,
name
:
'sysConfig'
,
component
:
e
=>
require
([
'@/components/system/sysConfig'
],
e
),
},
{
path
:
'/userOrder/:id'
,
name
:
'userOrder'
,
component
:
e
=>
require
([
'@/components/userOrder'
],
e
),
},
},
{
{
path
:
'/teacher/:id
'
,
path
:
'/login
'
,
name
:
'teacherDetail
'
,
name
:
'login
'
,
component
:
e
=>
require
([
'@/components/teacherDetail
'
],
e
),
component
:
e
=>
require
([
'@/components/login
'
],
e
),
},
meta
:{
]
skip_auth
:
true
,
}
}
},
]
]
});
});
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
router
.
beforeEach
((
to
,
from
,
next
)
=>
{
store
.
commit
(
'mainCanShow'
);
store
.
commit
(
'mainCanShow'
);
if
(
Cookie
.
get
(
'cc_token'
)){
if
(
Cookie
.
get
(
'cc_token'
)){
store
.
dispatch
(
'setToken'
,
Cookie
.
get
(
'cc_token'
));
store
.
dispatch
(
'setToken'
,
Cookie
.
get
(
'cc_token'
));
store
.
dispatch
(
'setPermission'
,
JSON
.
parse
(
localStorage
.
getItem
(
'permission'
)));
if
(
Cookie
.
get
(
'cc_user_name'
)
!==
null
){
if
(
Cookie
.
get
(
'cc_user_name'
)
!==
null
){
store
.
dispatch
(
'setUserName'
,
Cookie
.
get
(
'cc_user_name'
))
store
.
dispatch
(
'setUserName'
,
Cookie
.
get
(
'cc_user_name'
))
}
else
{
}
else
{
...
@@ -162,11 +57,16 @@ router.beforeEach((to,from,next)=> {
...
@@ -162,11 +57,16 @@ router.beforeEach((to,from,next)=> {
store
.
state
.
openedTab
.
push
(
thisMenu
);
store
.
state
.
openedTab
.
push
(
thisMenu
);
}
}
}
}
if
(
to
.
meta
.
readonly
){
store
.
dispatch
(
'readonly'
,
true
)
}
else
{
store
.
dispatch
(
'readonly'
,
false
)
}
// 登录拦截
// 登录拦截
if
(
to
.
matched
.
some
(
record
=>
record
.
meta
.
skip_auth
!==
true
)
&&
!
store
.
state
.
token
)
{
if
(
to
.
matched
.
some
(
record
=>
record
.
meta
.
skip_auth
!==
true
)
&&
!
store
.
state
.
token
)
{
next
({
window
.
location
.
href
=
'/#/login'
path
:
'/login'
})
}
else
{
}
else
{
next
()
next
()
}
}
...
...
src/store/actions.js
View file @
6db49bd1
...
@@ -11,4 +11,13 @@ export default{
...
@@ -11,4 +11,13 @@ export default{
setProgress
({
commit
},
data
){
setProgress
({
commit
},
data
){
commit
(
'progress'
,
data
);
commit
(
'progress'
,
data
);
},
},
setPermission
({
commit
},
data
){
commit
(
'setPermission'
,
data
)
},
setMenu
({
commit
},
data
){
commit
(
'setMenu'
,
data
)
},
readonly
({
commit
},
data
){
commit
(
'readonly'
,
data
)
}
}
}
src/store/index.js
View file @
6db49bd1
import
Vue
from
'vue'
import
Vue
from
'vue'
import
vuex
from
'vuex'
import
vuex
from
'vuex'
import
menu
from
'../util/menuList'
import
mutations
from
'./mutations'
import
mutations
from
'./mutations'
import
actions
from
'./actions'
import
actions
from
'./actions'
Vue
.
use
(
vuex
);
Vue
.
use
(
vuex
);
...
@@ -10,8 +9,10 @@ export default new vuex.Store({
...
@@ -10,8 +9,10 @@ export default new vuex.Store({
show
:
false
,
show
:
false
,
userName
:
''
,
userName
:
''
,
token
:
''
,
token
:
''
,
permission
:
false
,
readonly
:
true
,
mainLoad
:
true
,
mainLoad
:
true
,
menuList
:
menu
,
menuList
:
[]
,
menuType
:
false
,
menuType
:
false
,
nowTab
:
'first'
,
nowTab
:
'first'
,
progressList
:[],
progressList
:[],
...
...
src/store/mutations.js
View file @
6db49bd1
...
@@ -11,6 +11,16 @@ const mutations={
...
@@ -11,6 +11,16 @@ const mutations={
state
.
userName
=
userName
;
state
.
userName
=
userName
;
Cookie
.
set
(
'cc_user_name'
,
userName
);
Cookie
.
set
(
'cc_user_name'
,
userName
);
},
},
setPermission
(
state
,
data
){
state
.
progressList
=
data
;
localStorage
.
setItem
(
'permission'
,
JSON
.
stringify
(
data
))
},
setMenu
(
state
,
data
){
state
.
menuList
=
data
;
},
readonly
(
state
,
data
){
state
.
readonly
=
data
;
},
mainCanShow
(
state
){
mainCanShow
(
state
){
state
.
mainLoad
=
false
state
.
mainLoad
=
false
},
},
...
...
src/util/menuList.js
View file @
6db49bd1
...
@@ -7,7 +7,13 @@ export default [
...
@@ -7,7 +7,13 @@ export default [
{
{
value
:
'教材列表'
,
value
:
'教材列表'
,
routerName
:
'resources'
,
routerName
:
'resources'
,
path
:
'/resources'
path
:
'/resources'
,
cover
:
'1-1'
,
router
:{
path
:
'/resources'
,
name
:
'resources'
,
component
:
e
=>
require
([
'@/components/resources'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -18,22 +24,46 @@ export default [
...
@@ -18,22 +24,46 @@ export default [
{
{
value
:
'课程列表'
,
value
:
'课程列表'
,
routerName
:
'lesson'
,
routerName
:
'lesson'
,
path
:
'/lesson'
path
:
'/lesson'
,
cover
:
'2-1'
,
router
:{
path
:
'/lesson'
,
name
:
'lesson'
,
component
:
e
=>
require
([
'@/components/lesson'
],
e
),
}
},
},
{
{
value
:
'期数列表'
,
value
:
'期数列表'
,
routerName
:
'periods'
,
routerName
:
'periods'
,
path
:
'/periods'
path
:
'/periods'
,
cover
:
'2-2'
,
router
:{
path
:
'/periods'
,
name
:
'periods'
,
component
:
e
=>
require
([
'@/components/periods'
],
e
),
}
},
},
{
{
value
:
'班级列表'
,
value
:
'班级列表'
,
routerName
:
'class'
,
routerName
:
'class'
,
path
:
'/class'
path
:
'/class'
,
cover
:
'2-3'
,
router
:{
path
:
'/class'
,
name
:
'class'
,
component
:
e
=>
require
([
'@/components/class'
],
e
),
}
},
},
{
{
value
:
'不上课日期'
,
value
:
'不上课日期'
,
routerName
:
'noLesson'
,
routerName
:
'noLesson'
,
path
:
'/noLesson'
path
:
'/noLesson'
,
cover
:
'2-4'
,
router
:{
path
:
'/noLesson'
,
name
:
'noLesson'
,
component
:
e
=>
require
([
'@/components/noLesson'
],
e
),
}
},
},
]
]
},{
},{
...
@@ -44,12 +74,24 @@ export default [
...
@@ -44,12 +74,24 @@ export default [
{
{
value
:
'教师列表'
,
value
:
'教师列表'
,
routerName
:
'teacher'
,
routerName
:
'teacher'
,
path
:
'/teacher'
path
:
'/teacher'
,
cover
:
'3-1'
,
router
:{
path
:
'/teacher'
,
name
:
'teacher'
,
component
:
e
=>
require
([
'@/components/teacher'
],
e
),
}
},
},
{
{
value
:
'用户列表'
,
value
:
'用户列表'
,
routerName
:
'user'
,
routerName
:
'user'
,
path
:
'/user'
path
:
'/user'
,
cover
:
'3-2'
,
router
:{
path
:
'/user'
,
name
:
'user'
,
component
:
e
=>
require
([
'@/components/user'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -60,7 +102,13 @@ export default [
...
@@ -60,7 +102,13 @@ export default [
{
{
value
:
'商品列表'
,
value
:
'商品列表'
,
routerName
:
'shop'
,
routerName
:
'shop'
,
path
:
'/shop'
path
:
'/shop'
,
cover
:
'4-1'
,
router
:{
path
:
'/shop'
,
name
:
'shop'
,
component
:
e
=>
require
([
'@/components/shop'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -71,20 +119,44 @@ export default [
...
@@ -71,20 +119,44 @@ export default [
{
{
value
:
'订单列表'
,
value
:
'订单列表'
,
routerName
:
'order'
,
routerName
:
'order'
,
path
:
'/order'
path
:
'/order'
,
cover
:
'5-1'
,
router
:{
path
:
'/order'
,
name
:
'order'
,
component
:
e
=>
require
([
'@/components/order'
],
e
),
}
},{
},{
value
:
'退款列表'
,
value
:
'退款列表'
,
routerName
:
'refund'
,
routerName
:
'refund'
,
path
:
'/refund'
path
:
'/refund'
,
cover
:
'5-2'
,
router
:{
path
:
'/refund'
,
name
:
'refund'
,
component
:
e
=>
require
([
'@/components/refund'
],
e
),
}
},{
},{
value
:
'提现列表'
,
value
:
'提现列表'
,
routerName
:
'putForward'
,
routerName
:
'putForward'
,
path
:
'/putForward'
path
:
'/putForward'
,
cover
:
'5-3'
,
router
:{
path
:
'/putForward'
,
name
:
'putForward'
,
component
:
e
=>
require
([
'@/components/putForward'
],
e
),
}
},
},
{
{
value
:
'发货管理'
,
value
:
'发货管理'
,
routerName
:
'consignment'
,
routerName
:
'consignment'
,
path
:
'/consignment'
path
:
'/consignment'
,
cover
:
'5-4'
,
router
:{
path
:
'/consignment'
,
name
:
'consignment'
,
component
:
e
=>
require
([
'@/components/consignment'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -95,12 +167,24 @@ export default [
...
@@ -95,12 +167,24 @@ export default [
{
{
value
:
'单品列表'
,
value
:
'单品列表'
,
routerName
:
'single'
,
routerName
:
'single'
,
path
:
'/single'
path
:
'/single'
,
cover
:
'6-1'
,
router
:{
path
:
'/single'
,
name
:
'single'
,
component
:
e
=>
require
([
'@/components/single'
],
e
),
}
},
},
{
{
value
:
'盒子列表'
,
value
:
'盒子列表'
,
routerName
:
'box'
,
routerName
:
'box'
,
path
:
'/box'
path
:
'/box'
,
cover
:
'6-2'
,
router
:{
path
:
'/box'
,
name
:
'box'
,
component
:
e
=>
require
([
'@/components/box'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -111,27 +195,57 @@ export default [
...
@@ -111,27 +195,57 @@ export default [
{
{
value
:
'关注自动回复'
,
value
:
'关注自动回复'
,
routerName
:
'focusReply'
,
routerName
:
'focusReply'
,
path
:
'/focusReply'
path
:
'/focusReply'
,
cover
:
'7-1'
,
router
:{
path
:
'/focusReply'
,
name
:
'focusReply'
,
component
:
e
=>
require
([
'@/components/weChat/focusReply'
],
e
),
}
},
},
{
{
value
:
'关键词回复'
,
value
:
'关键词回复'
,
routerName
:
'autoReply'
,
routerName
:
'autoReply'
,
path
:
'/autoReply'
path
:
'/autoReply'
,
cover
:
'7-2'
,
router
:{
path
:
'/autoReply'
,
name
:
'autoReply'
,
component
:
e
=>
require
([
'@/components/weChat/autoReply'
],
e
),
}
},
},
{
{
value
:
'公众号菜单'
,
value
:
'公众号菜单'
,
routerName
:
'weChat'
,
routerName
:
'weChat'
,
path
:
'/weChat'
path
:
'/weChat'
,
cover
:
'7-3'
,
router
:{
path
:
'/weChat'
,
name
:
'weChat'
,
component
:
e
=>
require
([
'@/components/weChat'
],
e
),
}
},
},
{
{
value
:
'素材管理'
,
value
:
'素材管理'
,
routerName
:
'weChatResource'
,
routerName
:
'weChatResource'
,
path
:
'/weChatResource'
path
:
'/weChatResource'
,
cover
:
'7-4'
,
router
:{
path
:
'/weChatResource'
,
name
:
'weChatResource'
,
component
:
e
=>
require
([
'@/components/weChat/weChatResource'
],
e
),
}
},
},
{
{
value
:
'Banner管理'
,
value
:
'Banner管理'
,
routerName
:
'banner'
,
routerName
:
'banner'
,
path
:
'/banner'
path
:
'/banner'
,
cover
:
'7-5'
,
router
:{
path
:
'/banner'
,
name
:
'banner'
,
component
:
e
=>
require
([
'@/components/system/banner'
],
e
),
}
}
}
]
]
},{
},{
...
@@ -142,19 +256,43 @@ export default [
...
@@ -142,19 +256,43 @@ export default [
{
{
value
:
'账号管理'
,
value
:
'账号管理'
,
routerName
:
'admin'
,
routerName
:
'admin'
,
path
:
'/admin'
path
:
'/admin'
,
cover
:
'8-1'
,
router
:{
path
:
'/admin'
,
name
:
'admin'
,
component
:
e
=>
require
([
'@/components/system/admin'
],
e
),
}
},{
},{
value
:
'角色管理'
,
value
:
'角色管理'
,
routerName
:
'role'
,
routerName
:
'role'
,
path
:
'/role'
path
:
'/role'
,
cover
:
'8-2'
,
router
:{
path
:
'/role'
,
name
:
'role'
,
component
:
e
=>
require
([
'@/components/system/role'
],
e
),
}
},{
},{
value
:
'菜单管理'
,
value
:
'菜单管理'
,
routerName
:
'menu'
,
routerName
:
'menu'
,
path
:
'/menu'
path
:
'/menu'
,
cover
:
'8-3'
,
router
:{
path
:
'/menu'
,
name
:
'menu'
,
component
:
e
=>
require
([
'@/components/system/menu'
],
e
),
}
},{
},{
value
:
'系统配置'
,
value
:
'系统配置'
,
routerName
:
'sysConfig'
,
routerName
:
'sysConfig'
,
path
:
'/sysConfig'
path
:
'/sysConfig'
,
cover
:
'8-4'
,
router
:{
path
:
'/sysConfig'
,
name
:
'sysConfig'
,
component
:
e
=>
require
([
'@/components/system/sysConfig'
],
e
),
}
}
}
]
]
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment