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
ffd95ef2
Commit
ffd95ef2
authored
Sep 16, 2019
by
赵茹林
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
班级列表、教师列表、用户列表 新增 “看课权限”是否可编辑的权限控制
用户详情 - 期数列表 隐藏 编辑按钮
parent
59917b0d
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
133 additions
and
204 deletions
+133
-204
App.vue
src/App.vue
+6
-2
userList.vue
src/components/class/userList.vue
+90
-191
role.vue
src/components/system/role.vue
+22
-6
hour.vue
src/components/team/hour.vue
+1
-1
index.vue
src/components/team/index.vue
+1
-1
index.vue
src/components/userDetail/index.vue
+1
-1
index.js
src/router/index.js
+1
-0
actions.js
src/store/actions.js
+3
-0
index.js
src/store/index.js
+1
-0
mutations.js
src/store/mutations.js
+3
-0
menuList.js
src/util/menuList.js
+4
-2
No files found.
src/App.vue
View file @
ffd95ef2
...
@@ -44,6 +44,7 @@
...
@@ -44,6 +44,7 @@
j
.
router
.
meta
.
refund
=
!!
find
.
refund
;
j
.
router
.
meta
.
refund
=
!!
find
.
refund
;
j
.
router
.
meta
.
distribution
=
!!
find
.
distribution
;
j
.
router
.
meta
.
distribution
=
!!
find
.
distribution
;
j
.
router
.
meta
.
classManage
=
!!
find
.
classManage
;
j
.
router
.
meta
.
classManage
=
!!
find
.
classManage
;
j
.
router
.
meta
.
editWatch
=
!!
find
.
editWatch
;
j
.
router
.
meta
.
classManageUnlimited
=
!!
find
.
classManageUnlimited
;
j
.
router
.
meta
.
classManageUnlimited
=
!!
find
.
classManageUnlimited
;
j
.
router
.
meta
.
classTakeUnlimited
=
!!
find
.
classTakeUnlimited
;
j
.
router
.
meta
.
classTakeUnlimited
=
!!
find
.
classTakeUnlimited
;
j
.
router
.
meta
.
exportFinish
=
!!
find
.
exportFinish
;
j
.
router
.
meta
.
exportFinish
=
!!
find
.
exportFinish
;
...
@@ -327,11 +328,14 @@
...
@@ -327,11 +328,14 @@
}
}
.tabs-refresh {
.tabs-refresh {
margin-top: 10px;
&.el-tabs--card > .el-tabs__header {
&.el-tabs--card > .el-tabs__header {
margin-bottom: 10px;
margin-bottom: 10px;
padding-left: 10px;
/*margin-top: 10px;*/
margin-left: 10px;
/*padding-left: 10px;*/
/* background-color: #fff; */
/* background-color: #fff; */
padding-top: 10px;
/*padding-top: 10px;*/
padding-bottom: 1px;
padding-bottom: 1px;
}
}
...
...
src/components/class/userList.vue
View file @
ffd95ef2
...
@@ -11,42 +11,26 @@
...
@@ -11,42 +11,26 @@
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
end-placeholder=
"结束日期"
@
change=
"searchList2()"
>
@
change=
"searchList2()"
></el-date-picker>
</el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item
label=
"用户ID"
>
<el-form-item
label=
"用户ID"
>
<el-input
v-model=
"searchFrom.user_id"
/>
<el-input
v-model=
"searchFrom.user_id"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"是否添加老师"
>
<el-form-item
label=
"是否添加老师"
>
<el-select
v-model=
"searchFrom.is_add_teacher"
placeholder=
"请选择"
@
change=
"searchList2()"
clearable
>
<el-select
v-model=
"searchFrom.is_add_teacher"
placeholder=
"请选择"
@
change=
"searchList2()"
clearable
>
<el-option
label=
"老师主动添加"
:value=
"1"
>
<el-option
label=
"老师主动添加"
:value=
"1"
></el-option>
</el-option>
<el-option
label=
"用户主动添加"
:value=
"2"
></el-option>
<el-option
label=
"用户主动添加"
:value=
"2"
>
<el-option
label=
"待通过"
:value=
"3"
></el-option>
</el-option>
<el-option
label=
"手机号不是微信号"
:value=
"4"
></el-option>
<el-option
label=
"待通过"
:value=
"3"
>
<el-option
label=
"用户已拒绝"
:value=
"5"
></el-option>
</el-option>
<el-option
label=
"暂未处理"
:value=
"0"
></el-option>
<el-option
label=
"手机号不是微信号"
:value=
"4"
>
</el-option>
<el-option
label=
"用户已拒绝"
:value=
"5"
>
</el-option>
<el-option
label=
"暂未处理"
:value=
"0"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"是否可看课"
>
<el-form-item
label=
"是否可看课"
>
<el-select
v-model=
"searchFrom.is_view_course"
placeholder=
"请选择"
@
change=
"searchList2()"
>
<el-select
v-model=
"searchFrom.is_view_course"
placeholder=
"请选择"
@
change=
"searchList2()"
>
<el-option
<el-option
label=
"全部"
value=
""
></el-option>
label=
"全部"
<el-option
label=
"是"
value=
"1"
></el-option>
value=
""
>
<el-option
label=
"否"
value=
"0"
></el-option>
</el-option>
<el-option
label=
"是"
value=
"1"
>
</el-option>
<el-option
label=
"否"
value=
"0"
>
</el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
...
@@ -60,11 +44,7 @@
...
@@ -60,11 +44,7 @@
<el-button
type=
"success"
@
click=
"onRank()"
>
看课排行
</el-button>
<el-button
type=
"success"
@
click=
"onRank()"
>
看课排行
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-table
<el-table
:data=
"[statistics]"
border
size=
"mini"
style=
"width: 100%;margin: 20px 0"
>
:data=
"[statistics]"
border
size=
"mini"
style=
"width: 100%;margin: 20px 0"
>
<el-table-column
<el-table-column
label=
"到课率"
:render-header=
"rendertip"
>
label=
"到课率"
:render-header=
"rendertip"
>
<template
slot-scope=
"scope2"
>
<template
slot-scope=
"scope2"
>
...
@@ -101,28 +81,14 @@
...
@@ -101,28 +81,14 @@
<span>
{{
scope2
.
row
.
transform_rate
|
percent
}}
</span>
<span>
{{
scope2
.
row
.
transform_rate
|
percent
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"老师主动添加用户数"
prop=
"teacher_add_user_num"
></el-table-column>
label=
"老师主动添加用户数"
<el-table-column
label=
"用户主动添加老师数"
prop=
"user_add_teacher_num"
></el-table-column>
prop=
"teacher_add_user_num"
>
</el-table-column>
<el-table-column
label=
"用户主动添加老师数"
prop=
"user_add_teacher_num"
>
</el-table-column>
</el-table>
</el-table>
<el-table
<el-table
:data=
"userTable"
:data=
"userTable"
v-loading=
"loadingFlag"
size=
"mini"
v-loading=
"loadingFlag"
@
selection-change=
"handleSelectionChange123"
style=
"width: 100%"
fixed
>
size=
"mini"
<el-table-column
type=
"selection"
width=
"30"
></el-table-column>
@
selection-change=
"handleSelectionChange123"
<el-table-column
width=
"120"
label=
"沟通情况"
>
style=
"width: 100%"
fixed
>
<el-table-column
type=
"selection"
width=
"30"
>
</el-table-column>
<el-table-column
width=
"120"
label=
"沟通情况"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<teacher-desc
:row=
"scope.row"
:typeFlag=
"true"
:descType=
"2"
@
onSuccess=
"searchList()"
></teacher-desc>
<teacher-desc
:row=
"scope.row"
:typeFlag=
"true"
:descType=
"2"
@
onSuccess=
"searchList()"
></teacher-desc>
</
template
>
</
template
>
...
@@ -133,20 +99,33 @@
...
@@ -133,20 +99,33 @@
<br>
Tel:
{{
scope
.
row
.
mobile
}}
<br>
Tel:
{{
scope
.
row
.
mobile
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"看课权限"
v-if=
"!userObj.classPage"
>
<el-table-column
label=
"看课权限"
>
<
template
slot-scope=
"scope"
>
<el-select
v-if=
"$store.state.editWatch && !$store.state.readonly"
v-model=
"scope.row.is_view_course"
size=
"mini"
@
change=
"changeView(scope.row)"
>
<el-option
label=
"否"
:value=
"0"
></el-option>
<el-option
label=
"是"
:value=
"1"
></el-option>
</el-select>
<template
v-else
>
{{
scope
.
row
.
is_view_course
==
1
?
'是'
:
'否'
}}
</
template
>
</template>
</el-table-column>
<!--<el-table-column label="看课权限" v-if="!userObj.classPage">
<template slot-scope="scope">
<template slot-scope="scope">
<el-select v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)">
<el-select v-model="scope.row.is_view_course" size="mini" @change="changeView(scope.row)">
<el-option label="否" :value="0"></el-option>
<el-option label="否" :value="0"></el-option>
<el-option label="是" :value="1"></el-option>
<el-option label="是" :value="1"></el-option>
</el-select>
</el-select>
</template>
</template>
<!-- classPage -->
<!– classPage –>
</el-table-column>
</el-table-column>
<el-table-column label="看课权限" v-if="userObj.classPage">
<el-table-column label="看课权限" v-if="userObj.classPage">
<template slot-scope="scope">
<template slot-scope="scope">
{{scope.row.is_view_course==1?'是':'否'}}
{{scope.row.is_view_course==1?'是':'否'}}
</template>
</template>
</el-table-column>
</el-table-column>-->
<el-table-column
<el-table-column
label=
"时间"
sortable
min-width=
"200"
prop=
"last_login_at"
>
label=
"时间"
sortable
min-width=
"200"
prop=
"last_login_at"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -189,46 +168,35 @@
...
@@ -189,46 +168,35 @@
label=
"是否添加老师"
min-width=
"155"
sortable
prop=
"is_add_teacher"
v-if=
"!userObj.classPage"
>
label=
"是否添加老师"
min-width=
"155"
sortable
prop=
"is_add_teacher"
v-if=
"!userObj.classPage"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.is_add_teacher"
size=
"mini"
@
change=
"changeAddTeacher(scope.row)"
>
<el-select
v-model=
"scope.row.is_add_teacher"
size=
"mini"
@
change=
"changeAddTeacher(scope.row)"
>
<el-option
label=
"老师主动添加"
:value=
"1"
>
<el-option
label=
"老师主动添加"
:value=
"1"
></el-option>
</el-option>
<el-option
label=
"用户主动添加"
:value=
"2"
></el-option>
<el-option
label=
"用户主动添加"
:value=
"2"
>
<el-option
label=
"待通过"
:value=
"3"
></el-option>
</el-option>
<el-option
label=
"手机号不是微信号"
:value=
"4"
></el-option>
<el-option
label=
"待通过"
:value=
"3"
>
<el-option
label=
"用户已拒绝"
:value=
"5"
></el-option>
</el-option>
<el-option
label=
"暂未处理"
:value=
"0"
></el-option>
<el-option
label=
"手机号不是微信号"
:value=
"4"
>
</el-option>
<el-option
label=
"用户已拒绝"
:value=
"5"
>
</el-option>
<el-option
label=
"暂未处理"
:value=
"0"
>
</el-option>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"是否添加老师"
min-width=
"155"
sortable
prop=
"is_add_teacher"
v-if=
"userObj.classPage"
>
label=
"是否添加老师"
min-width=
"155"
sortable
prop=
"is_add_teacher"
v-if=
"userObj.classPage"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
is_add_teacher
|
isteacher
}}
{{
scope
.
row
.
is_add_teacher
|
isteacher
}}
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"意向等级"
sortable
min-width=
"95"
prop=
"weight"
v-if=
"userObj.classPage"
>
label=
"意向等级"
sortable
min-width=
"95"
prop=
"weight"
v-if=
"userObj.classPage"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
weight
|
userWeightf
}}
{{
scope
.
row
.
weight
|
userWeightf
}}
<!--
<user-weight
:row=
"scope.row"
@
onSuccess=
"searchList"
></user-weight>
-->
<!--
<user-weight
:row=
"scope.row"
@
onSuccess=
"searchList"
></user-weight>
-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"意向等级"
sortable
min-width=
"95"
prop=
"weight"
v-if=
"!userObj.classPage"
>
label=
"意向等级"
sortable
min-width=
"95"
prop=
"weight"
v-if=
"!userObj.classPage"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<user-weight
:row=
"scope.row"
@
onSuccess=
"searchList"
></user-weight>
<user-weight
:row=
"scope.row"
@
onSuccess=
"searchList"
></user-weight>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
fixed=
"right"
>
<el-table-column
label=
"操作"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-popover
<el-popover
placement=
"top"
width=
"200"
>
placement=
"top"
width=
"200"
>
<div
style=
"text-align: center"
>
<div
style=
"text-align: center"
>
<el-button
type=
"primary"
size=
"mini"
plain
@
click=
"showSourceByDate(scope.row)"
>
看课情况
</el-button>
<el-button
type=
"primary"
size=
"mini"
plain
@
click=
"showSourceByDate(scope.row)"
>
看课情况
</el-button>
<el-button
type=
"danger"
size=
"mini"
plain
@
click=
"onDel(scope.row)"
v-if=
"$store.state.deletePermission && !$store.state.readonly"
>
删除
</el-button>
<el-button
type=
"danger"
size=
"mini"
plain
@
click=
"onDel(scope.row)"
v-if=
"$store.state.deletePermission && !$store.state.readonly"
>
删除
</el-button>
...
@@ -279,26 +247,14 @@
...
@@ -279,26 +247,14 @@
</el-col>
</el-col>
</el-row>
</el-row>
</el-form>
</el-form>
<el-table
<el-table
:data=
"userList"
ref=
"multipleTable"
@
selection-change=
"handleSelectionChange"
style=
"width: 100%"
>
:data=
"userList"
<el-table-column
type=
"selection"
width=
"55"
></el-table-column>
ref=
"multipleTable"
<el-table-column
className=
"f-c"
label=
"用户"
>
@
selection-change=
"handleSelectionChange"
style=
"width: 100%"
>
<el-table-column
type=
"selection"
width=
"55"
>
</el-table-column>
<el-table-column
className=
"f-c"
label=
"用户"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<img
style=
"margin-right:5px;width: 50px;height: 50px;border-radius: 50px"
:src=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
(ID:
{{
scope
.
row
.
user_id
}}
)
<img
style=
"margin-right:5px;width: 50px;height: 50px;border-radius: 50px"
:src=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
(ID:
{{
scope
.
row
.
user_id
}}
)
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
"mobile"
label=
"手机号"
></el-table-column>
prop=
"mobile"
label=
"手机号"
>
</el-table-column>
</el-table>
</el-table>
<page
:total=
"total"
:limit=
"limit"
@
pageChange=
"onPageChange"
@
sizeChange=
"onSizeChange"
/>
<page
:total=
"total"
:limit=
"limit"
@
pageChange=
"onPageChange"
@
sizeChange=
"onSizeChange"
/>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -307,16 +263,9 @@
...
@@ -307,16 +263,9 @@
</span>
</span>
</el-dialog>
</el-dialog>
<el-dialog
:modal=
"false"
:visible
.
sync=
"lookDetail.show"
>
<el-dialog
:modal=
"false"
:visible
.
sync=
"lookDetail.show"
>
<el-table
<el-table
v-loading=
"lookDetail.loading"
:data=
"lookDetail.list"
style=
"width: 100%"
>
v-loading=
"lookDetail.loading"
<el-table-column
prop=
"start_at"
label=
"日期"
></el-table-column>
:data=
"lookDetail.list"
<el-table-column
label=
"爸妈看一看"
>
style=
"width: 100%"
>
<el-table-column
prop=
"start_at"
label=
"日期"
>
</el-table-column>
<el-table-column
label=
"爸妈看一看"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>
{return i.page_id === 1})">
<span
v-if=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>
{return i.page_id === 1})">
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
1
}
).
stay_time
}}
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
1
}
).
stay_time
}}
...
@@ -326,8 +275,7 @@
...
@@ -326,8 +275,7 @@
<
/span
>
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"宝贝玩一玩"
>
label
=
"宝贝玩一玩"
>
<
template
slot
-
scope
=
"scope"
>
<
template
slot
-
scope
=
"scope"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 2
}
)"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 2
}
)"
>
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
2
}
).
stay_time
}}
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
2
}
).
stay_time
}}
...
@@ -337,8 +285,7 @@
...
@@ -337,8 +285,7 @@
<
/span
>
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"爸妈秀宝贝"
>
label
=
"爸妈秀宝贝"
>
<
template
slot
-
scope
=
"scope"
>
<
template
slot
-
scope
=
"scope"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 3
}
)"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 3
}
)"
>
<
div
v
-
html
=
"scope.row.watch_list.find(i=>{return i.page_id === 3
}
).learn_report"
><
/div
>
<
div
v
-
html
=
"scope.row.watch_list.find(i=>{return i.page_id === 3
}
).learn_report"
><
/div
>
...
@@ -348,8 +295,7 @@
...
@@ -348,8 +295,7 @@
<
/span
>
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"多元趣味课"
>
label
=
"多元趣味课"
>
<
template
slot
-
scope
=
"scope"
>
<
template
slot
-
scope
=
"scope"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 5
}
)"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 5
}
)"
>
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
5
}
).
stay_time
}}
{{
scope
.
row
.
watch_list
.
find
(
i
=>
{
return
i
.
page_id
===
5
}
).
stay_time
}}
...
@@ -359,8 +305,7 @@
...
@@ -359,8 +305,7 @@
<
/span
>
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"分享"
>
label
=
"分享"
>
<
template
slot
-
scope
=
"scope"
>
<
template
slot
-
scope
=
"scope"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 4
}
)"
>
<
span
v
-
if
=
"scope.row.watch_list && scope.row.watch_list.length > 0 && scope.row.watch_list.find(i=>{return i.page_id === 4
}
)"
>
已分享
已分享
...
@@ -381,15 +326,13 @@
...
@@ -381,15 +326,13 @@
:
props
=
"{value:'id',label:'title'
}
"
:
props
=
"{value:'id',label:'title'
}
"
@
active
-
item
-
change
=
"handleItemChange"
@
active
-
item
-
change
=
"handleItemChange"
@
change
=
"changePeriods"
@
change
=
"changePeriods"
v
-
model
=
"changeClassObj.selectedGoods"
v
-
model
=
"changeClassObj.selectedGoods"
><
/el-cascader
>
>
<
/el-cascader
>
<
/el-form-item
>
<
/el-form-item
>
<
/el-form
>
<
/el-form
>
<
span
slot
=
"footer"
class
=
"dialog-footer"
>
<
div
slot
=
"footer"
class
=
"dialog-footer"
>
<
el
-
button
@
click
=
"changeClassObj.show = false"
>
取
消
<
/el-button
>
<
el
-
button
@
click
=
"changeClassObj.show = false"
>
取
消
<
/el-button
>
<
el
-
button
type
=
"primary"
@
click
=
"changeClassSub()"
>
确
定
<
/el-button
>
<
el
-
button
type
=
"primary"
@
click
=
"changeClassSub()"
>
确
定
<
/el-button
>
<
/span
>
<
/div
>
<
/el-dialog
>
<
/el-dialog
>
<
el
-
dialog
:
modal
=
"false"
width
=
"1100px"
:
visible
.
sync
=
"rank.show"
title
=
"看课排行"
>
<
el
-
dialog
:
modal
=
"false"
width
=
"1100px"
:
visible
.
sync
=
"rank.show"
title
=
"看课排行"
>
<
el
-
form
label
-
width
=
"100px"
inline
>
<
el
-
form
label
-
width
=
"100px"
inline
>
...
@@ -401,63 +344,34 @@
...
@@ -401,63 +344,34 @@
value
-
format
=
"yyyy-MM-dd"
value
-
format
=
"yyyy-MM-dd"
start
-
placeholder
=
"开始日期"
start
-
placeholder
=
"开始日期"
end
-
placeholder
=
"结束日期"
end
-
placeholder
=
"结束日期"
@
change
=
"onRank()"
>
@
change
=
"onRank()"
><
/el-date-picker
>
<
/el-date-picker
>
<
/el-form-item
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"排名人数"
>
<
el
-
form
-
item
label
=
"排名人数"
>
<
el
-
input
style
=
"width:100px;"
v
-
model
=
"rankParams.limit"
/>
<
el
-
input
style
=
"width:100px;"
v
-
model
=
"rankParams.limit"
/>
<
/el-form-item
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"排名类型"
>
<
el
-
form
-
item
label
=
"排名类型"
>
<
el
-
select
style
=
"width:100px;"
v
-
model
=
"rankParams.type"
placeholder
=
"请选择"
@
change
=
"onRank()"
>
<
el
-
select
style
=
"width:100px;"
v
-
model
=
"rankParams.type"
placeholder
=
"请选择"
@
change
=
"onRank()"
>
<
el
-
option
<
el
-
option
label
=
"按天数"
value
=
"day"
><
/el-option
>
label
=
"按天数"
<
el
-
option
label
=
"按时长"
value
=
"time"
><
/el-option
>
value
=
"day"
>
<
/el-option
>
<
el
-
option
label
=
"按时长"
value
=
"time"
>
<
/el-option
>
<
/el-select
>
<
/el-select
>
<
/el-form-item
>
<
/el-form-item
>
<
el
-
form
-
item
>
<
el
-
form
-
item
>
<
el
-
button
type
=
"primary"
@
click
=
"onRank()"
>
搜索
<
/el-button
>
<
el
-
button
type
=
"primary"
@
click
=
"onRank()"
>
搜索
<
/el-button
>
<
/el-form-item
>
<
/el-form-item
>
<
/el-form
>
<
/el-form
>
<
el
-
table
border
<
el
-
table
:
data
=
"rank.list"
border
size
=
"mini"
style
=
"display: block;margin: 20px auto;background: transparent"
>
size
=
"mini"
<
el
-
table
-
column
label
=
"排名"
type
=
"index"
><
/el-table-column
>
style
=
"display: block;margin: 20px auto;background: transparent"
<
el
-
table
-
column
className
=
"f-c"
label
=
"用户"
>
:
data
=
"rank.list"
>
<
el
-
table
-
column
label
=
"排名"
type
=
"index"
>
<
/el-table-column
>
<
el
-
table
-
column
className
=
"f-c"
label
=
"用户"
>
<
template
slot
-
scope
=
"scope"
>
<
template
slot
-
scope
=
"scope"
>
<
img
class
=
"avatar"
:
src
=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
(
ID
:{{
scope
.
row
.
user_id
}}
)
<
img
class
=
"avatar"
:
src
=
"scope.row.avatar"
>
{{
scope
.
row
.
nickname
}}
(
ID
:{{
scope
.
row
.
user_id
}}
)
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"总天数"
prop
=
"total_day"
><
/el-table-column
>
label
=
"总天数"
<
el
-
table
-
column
label
=
"总时长(分)"
prop
=
"total_time"
>
prop
=
"total_day"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
total_time
/
60
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"总时长(分)"
prop
=
"total_time"
>
<
template
slot
-
scope
=
"scope"
>
{{
scope
.
row
.
total_time
/
60
}}
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"手机号"
prop
=
"mobile"
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"最后登录时间"
prop
=
"last_login_at"
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"手机号"
prop
=
"mobile"
><
/el-table-column
>
<
el
-
table
-
column
label
=
"最后登录时间"
prop
=
"last_login_at"
><
/el-table-column
>
<
/el-table
>
<
/el-table
>
<
/el-dialog
>
<
/el-dialog
>
<
el
-
dialog
:
modal
=
"false"
:
visible
.
sync
=
"privilegeDialog.show"
title
=
"编辑权限"
>
<
el
-
dialog
:
modal
=
"false"
:
visible
.
sync
=
"privilegeDialog.show"
title
=
"编辑权限"
>
...
@@ -641,42 +555,30 @@
...
@@ -641,42 +555,30 @@
weight
:
0
,
weight
:
0
,
id
:
''
id
:
''
}
,
}
,
isAddTeacherList
:
[
isAddTeacherList
:
[{
{
label
:
'暂未处理'
,
label
:
'暂未处理'
,
value
:
0
value
:
0
}
,
}
,
{
{
label
:
'老师主动添加用户'
,
label
:
'老师主动添加用户'
,
value
:
1
value
:
1
}
,
}
,
{
{
label
:
'用户主动添加老师'
,
label
:
'用户主动添加老师'
,
value
:
2
value
:
2
}
,
}
,
{
{
label
:
'待通过'
,
label
:
'待通过'
,
value
:
3
value
:
3
}
,
}
,
{
{
label
:
'手机号不是微信号'
,
label
:
'手机号不是微信号'
,
value
:
4
value
:
4
}
,
}
,
{
{
label
:
'用户已拒绝'
,
label
:
'用户已拒绝'
,
value
:
5
value
:
5
}
}
],
],
isBindUser
:
false
isBindUser
:
false
}
}
}
,
}
,
components
:
{
components
:
{
page
,
page
,
page2
,
teacherDesc
,
userWeight
,
pageDesc
,
sourceByDateDialog
page2
,
teacherDesc
,
userWeight
,
pageDesc
,
sourceByDateDialog
}
,
}
,
filters
:
{
filters
:
{
isOrNot
(
value
)
{
isOrNot
(
value
)
{
...
@@ -958,7 +860,6 @@
...
@@ -958,7 +860,6 @@
json
.
is_view_course
=
this
.
searchFrom
.
is_view_course
json
.
is_view_course
=
this
.
searchFrom
.
is_view_course
}
}
getClassStatisticsApi
(
this
.
userObj
.
periods_id
,
this
.
userObj
.
classId
,
json2
).
then
(
res
=>
{
getClassStatisticsApi
(
this
.
userObj
.
periods_id
,
this
.
userObj
.
classId
,
json2
).
then
(
res
=>
{
this
.
statistics
.
arrive_course_rate
=
res
.
arrive_course_rate
;
this
.
statistics
.
arrive_course_rate
=
res
.
arrive_course_rate
;
this
.
statistics
.
clock_rate
=
res
.
clock_rate
;
this
.
statistics
.
clock_rate
=
res
.
clock_rate
;
this
.
statistics
.
over_clock_rate
=
res
.
over_clock_rate
;
this
.
statistics
.
over_clock_rate
=
res
.
over_clock_rate
;
...
@@ -969,12 +870,10 @@
...
@@ -969,12 +870,10 @@
this
.
statistics
.
work_rate
=
res
.
work_rate
;
this
.
statistics
.
work_rate
=
res
.
work_rate
;
}
);
}
);
getClassListApi
(
this
.
userObj
.
periods_id
,
{
page
:
1
,
limit
:
100
}
).
then
(
res
=>
{
getClassListApi
(
this
.
userObj
.
periods_id
,
{
page
:
1
,
limit
:
100
}
).
then
(
res
=>
{
// console.log(res)
// console.log(res)
this
.
userObj
.
watch_num
=
res
.
periods
.
watch_num
this
.
userObj
.
watch_num
=
res
.
periods
.
watch_num
console
.
log
(
this
.
$store
.
state
.
orderRefund
)
console
.
log
(
this
.
$store
.
state
.
orderRefund
)
console
.
log
(
this
.
userObj
)
console
.
log
(
this
.
userObj
)
// debugger
}
)
}
)
getJoinNumApi
(
this
.
userObj
.
classId
).
then
(
res
=>
{
getJoinNumApi
(
this
.
userObj
.
classId
).
then
(
res
=>
{
let
_list
=
res
||
[];
let
_list
=
res
||
[];
...
...
src/components/system/role.vue
View file @
ffd95ef2
...
@@ -54,27 +54,31 @@
...
@@ -54,27 +54,31 @@
<el-checkbox
<el-checkbox
v-model=
"data.promoter"
v-model=
"data.promoter"
v-if=
"data.cover ==='5-1' "
>
编辑推广人
</el-checkbox>
v-if=
"data.cover ==='5-1' "
>
编辑推广人
</el-checkbox>
<!--class user teacher-->
<el-checkbox
v-model=
"data.editWatch"
v-if=
"data.cover ==='2-3' || data.cover=== '3-1' || data.cover=== '3-2'"
>
修改看课权限
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.refund"
v-model=
"data.refund"
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加观摩班用户
</el-checkbox>
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加观摩班用户
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.classManage"
v-model=
"data.classManage"
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加带班班用户
</el-checkbox>
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加带班班用户
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.classManageUnlimited"
v-model=
"data.classManageUnlimited"
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加观摩班(无限制)
</el-checkbox>
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加观摩班(无限制)
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.classTakeUnlimited"
v-model=
"data.classTakeUnlimited"
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加带班班(无限制)
</el-checkbox>
v-if=
"data.cover ==='2-3'
|| data.cover=== '3-1'
|| data.cover=== '3-2' || data.cover=== '3-6' || data.cover=== '3-7' "
>
添加带班班(无限制)
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.distribution"
v-model=
"data.distribution"
v-if=
"data.cover ==='5-9'
||
data.cover ==='7-9'"
@
change=
"distribution"
>
批量分配
</el-checkbox>
v-if=
"data.cover ==='5-9'
||
data.cover ==='7-9'"
@
change=
"distribution"
>
批量分配
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.exportFinish"
v-model=
"data.exportFinish"
v-if=
"data.cover === '2-3'"
>
导出完课用户
</el-checkbox>
v-if=
"data.cover === '2-3'"
>
导出完课用户
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.import"
v-model=
"data.import"
v-if=
"data.cover ==='6-3'
||data.cover ==='5-3'||data.cover ==='5-9'||
data.cover ==='6-4'"
>
导入
</el-checkbox>
v-if=
"data.cover ==='6-3'
|| data.cover ==='5-3' || data.cover ==='5-9' ||
data.cover ==='6-4'"
>
导入
</el-checkbox>
<el-checkbox
<el-checkbox
v-model=
"data.export"
v-model=
"data.export"
v-if=
"exportMenuList.indexOf(data.cover) >-1"
>
导出
</el-checkbox>
v-if=
"exportMenuList.indexOf(data.cover) >-1"
>
导出
</el-checkbox>
...
@@ -166,6 +170,9 @@
...
@@ -166,6 +170,9 @@
j
.
classManage
=
false
;
j
.
classManage
=
false
;
j
.
classTakeUnlimited
=
false
;
j
.
classTakeUnlimited
=
false
;
}
}
if
(
j
.
cover
===
"2-3"
||
j
.
cover
===
"3-1"
||
j
.
cover
===
'3-2'
)
{
j
.
editWatch
=
false
;
}
if
(
j
.
cover
===
"2-3"
)
j
.
exportFinish
=
false
;
if
(
j
.
cover
===
"2-3"
)
j
.
exportFinish
=
false
;
if
(
j
.
cover
===
"5-1"
)
j
.
promoter
=
false
;
if
(
j
.
cover
===
"5-1"
)
j
.
promoter
=
false
;
})
})
...
@@ -217,6 +224,9 @@
...
@@ -217,6 +224,9 @@
j
.
classManage
=
false
;
j
.
classManage
=
false
;
j
.
classTakeUnlimited
=
false
;
j
.
classTakeUnlimited
=
false
;
}
}
if
(
j
.
cover
===
"2-3"
||
j
.
cover
===
"3-1"
||
j
.
cover
===
'3-2'
)
{
j
.
editWatch
=
false
;
}
if
(
j
.
cover
===
"2-3"
)
j
.
exportFinish
=
false
;
if
(
j
.
cover
===
"2-3"
)
j
.
exportFinish
=
false
;
if
(
j
.
cover
===
"5-1"
)
j
.
promoter
=
false
;
if
(
j
.
cover
===
"5-1"
)
j
.
promoter
=
false
;
})
})
...
@@ -249,6 +259,9 @@
...
@@ -249,6 +259,9 @@
x
.
classManageUnlimited
=
!!
i
.
classManageUnlimited
;
x
.
classManageUnlimited
=
!!
i
.
classManageUnlimited
;
x
.
classTakeUnlimited
=
!!
i
.
classTakeUnlimited
;
x
.
classTakeUnlimited
=
!!
i
.
classTakeUnlimited
;
}
}
if
(
i
.
cover
===
"2-3"
||
i
.
cover
===
"3-1"
||
i
.
cover
===
'3-2'
)
{
x
.
editWatch
=
!!
i
.
editWatch
;
}
if
(
i
.
cover
===
"6-3"
||
i
.
cover
===
"5-3"
||
i
.
cover
===
"5-9"
||
i
.
cover
===
"6-4"
)
{
if
(
i
.
cover
===
"6-3"
||
i
.
cover
===
"5-3"
||
i
.
cover
===
"5-9"
||
i
.
cover
===
"6-4"
)
{
x
.
import
=
!!
i
.
import
;
x
.
import
=
!!
i
.
import
;
}
}
...
@@ -319,6 +332,9 @@
...
@@ -319,6 +332,9 @@
if
(
i
.
classManageUnlimited
===
false
||
i
.
classManageUnlimited
===
true
)
{
if
(
i
.
classManageUnlimited
===
false
||
i
.
classManageUnlimited
===
true
)
{
json
.
classManageUnlimited
=
i
.
classManageUnlimited
json
.
classManageUnlimited
=
i
.
classManageUnlimited
}
}
if
(
i
.
editWatch
===
false
||
i
.
editWatch
===
true
)
{
json
.
editWatch
=
i
.
editWatch
}
if
(
i
.
classTakeUnlimited
===
false
||
i
.
classTakeUnlimited
===
true
)
{
if
(
i
.
classTakeUnlimited
===
false
||
i
.
classTakeUnlimited
===
true
)
{
json
.
classTakeUnlimited
=
i
.
classTakeUnlimited
json
.
classTakeUnlimited
=
i
.
classTakeUnlimited
}
}
...
...
src/components/team/hour.vue
View file @
ffd95ef2
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"admin-refresh"
>
<div
class=
"admin-refresh"
>
<el-date-picker
<el-date-picker
style=
"
margin: 10px 0 0
10px; width: 185px;"
:clearable=
"false"
style=
"
display: block; margin: 10px 0 10px
10px; width: 185px;"
:clearable=
"false"
v-model=
"search.start_at"
value-format=
"yyyy-MM-dd"
v-model=
"search.start_at"
value-format=
"yyyy-MM-dd"
align=
"right"
type=
"date"
placeholder=
"选择日期"
align=
"right"
type=
"date"
placeholder=
"选择日期"
:picker-options=
"pickerOptions"
@
change=
"getData"
>
:picker-options=
"pickerOptions"
@
change=
"getData"
>
...
...
src/components/team/index.vue
View file @
ffd95ef2
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"admin-refresh"
>
<div
class=
"admin-refresh"
>
<el-date-picker
<el-date-picker
style=
"
margin: 10px 0 0
10px; width: 185px;"
:clearable=
"false"
@
change=
"getData"
style=
"
display: block; margin: 10px 0 10px
10px; width: 185px;"
:clearable=
"false"
@
change=
"getData"
v-model=
"search.start_at"
value-format=
"yyyy-MM-dd"
v-model=
"search.start_at"
value-format=
"yyyy-MM-dd"
align=
"right"
type=
"date"
placeholder=
"选择日期"
align=
"right"
type=
"date"
placeholder=
"选择日期"
:picker-options=
"pickerOptions"
>
:picker-options=
"pickerOptions"
>
...
...
src/components/userDetail/index.vue
View file @
ffd95ef2
...
@@ -135,7 +135,7 @@
...
@@ -135,7 +135,7 @@
<el-table-column
label=
"操作"
width=
"340px"
>
<el-table-column
label=
"操作"
width=
"340px"
>
<
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
size=
"mini"
type=
"warning"
v-if=
"!$store.state.readonly"
@
click=
"editPrivilege(scope.row)"
>
编辑
</el-button
>
<
!--
<el-button
size=
"mini"
type=
"warning"
v-if=
"!$store.state.readonly"
@
click=
"editPrivilege(scope.row)"
>
编辑
</el-button>
--
>
<el-button
size=
"mini"
type=
"primary"
@
click=
"onGetUserDescList(scope.row)"
>
备注
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"onGetUserDescList(scope.row)"
>
备注
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"showSourceByDate(scope.row)"
>
看课情况
</el-button>
<el-button
size=
"mini"
type=
"primary"
@
click=
"showSourceByDate(scope.row)"
>
看课情况
</el-button>
</
template
>
</
template
>
...
...
src/router/index.js
View file @
ffd95ef2
...
@@ -98,6 +98,7 @@ router.beforeEach((to,from,next)=> {
...
@@ -98,6 +98,7 @@ router.beforeEach((to,from,next)=> {
store
.
state
.
classManage
=
to
.
meta
.
classManage
;
store
.
state
.
classManage
=
to
.
meta
.
classManage
;
store
.
state
.
import
=
to
.
meta
.
import
;
store
.
state
.
import
=
to
.
meta
.
import
;
store
.
dispatch
(
'promoter'
,
to
.
meta
.
promoter
)
store
.
dispatch
(
'promoter'
,
to
.
meta
.
promoter
)
store
.
dispatch
(
'editWatch'
,
to
.
meta
.
editWatch
)
store
.
dispatch
(
'classManageUnlimited'
,
to
.
meta
.
classManageUnlimited
)
store
.
dispatch
(
'classManageUnlimited'
,
to
.
meta
.
classManageUnlimited
)
store
.
dispatch
(
'classTakeUnlimited'
,
to
.
meta
.
classTakeUnlimited
)
store
.
dispatch
(
'classTakeUnlimited'
,
to
.
meta
.
classTakeUnlimited
)
store
.
dispatch
(
'exportFinish'
,
to
.
meta
.
exportFinish
)
store
.
dispatch
(
'exportFinish'
,
to
.
meta
.
exportFinish
)
...
...
src/store/actions.js
View file @
ffd95ef2
...
@@ -29,6 +29,9 @@ export default{
...
@@ -29,6 +29,9 @@ export default{
classManage
({
commit
},
data
){
classManage
({
commit
},
data
){
commit
(
'classManage'
,
data
)
commit
(
'classManage'
,
data
)
},
},
editWatch
({
commit
},
data
){
commit
(
'editWatch'
,
data
)
},
classManageUnlimited
({
commit
},
data
){
classManageUnlimited
({
commit
},
data
){
commit
(
'classManageUnlimited'
,
data
)
commit
(
'classManageUnlimited'
,
data
)
},
},
...
...
src/store/index.js
View file @
ffd95ef2
...
@@ -15,6 +15,7 @@ export default new vuex.Store({
...
@@ -15,6 +15,7 @@ export default new vuex.Store({
deletePermission
:
false
,
deletePermission
:
false
,
distribution
:
false
,
distribution
:
false
,
classManage
:
false
,
classManage
:
false
,
editWatch
:
false
,
classManageUnlimited
:
false
,
classManageUnlimited
:
false
,
classTakeUnlimited
:
false
,
classTakeUnlimited
:
false
,
exportFinish
:
false
,
exportFinish
:
false
,
...
...
src/store/mutations.js
View file @
ffd95ef2
...
@@ -30,6 +30,9 @@ const mutations={
...
@@ -30,6 +30,9 @@ const mutations={
classManage
(
state
,
data
){
classManage
(
state
,
data
){
state
.
classManage
=
data
;
state
.
classManage
=
data
;
},
},
editWatch
(
state
,
data
){
state
.
editWatch
=
data
;
},
classManageUnlimited
(
state
,
data
){
classManageUnlimited
(
state
,
data
){
state
.
classManageUnlimited
=
data
;
state
.
classManageUnlimited
=
data
;
},
},
...
...
src/util/menuList.js
View file @
ffd95ef2
...
@@ -254,7 +254,8 @@ export default [
...
@@ -254,7 +254,8 @@ export default [
name
:
'user'
,
name
:
'user'
,
component
:
e
=>
require
([
'@/components/user'
],
e
),
component
:
e
=>
require
([
'@/components/user'
],
e
),
}
}
},
{
},
/*{
value: '用户详情',
value: '用户详情',
routerName: 'userDetail',
routerName: 'userDetail',
path: '/userDetail',
path: '/userDetail',
...
@@ -265,7 +266,8 @@ export default [
...
@@ -265,7 +266,8 @@ export default [
name: 'userDetail',
name: 'userDetail',
component: e => require(['@/components/userDetail/index'], e),
component: e => require(['@/components/userDetail/index'], e),
}
}
},
{
},*/
{
value
:
'老系统用户列表'
,
value
:
'老系统用户列表'
,
routerName
:
'oldUser'
,
routerName
:
'oldUser'
,
path
:
'/oldUser'
,
path
:
'/oldUser'
,
...
...
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