Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
A
admin-fdc
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
admin-fdc
Commits
f2606fe7
提交
f2606fe7
authored
1月 24, 2022
作者:
pengxiaohui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加权限管控
上级
7906dee9
显示空白字符变更
内嵌
并排
正在显示
20 个修改的文件
包含
172 行增加
和
136 行删除
+172
-136
Aside.vue
src/components/layout/Aside.vue
+9
-9
api.js
src/modules/audit/myAudit/api.js
+0
-0
DialogAudit.vue
src/modules/audit/myAudit/components/DialogAudit.vue
+0
-0
List.vue
src/modules/audit/myAudit/views/List.vue
+16
-6
VideoPlayer.vue
src/modules/dashboard/screen/components/VideoPlayer.vue
+0
-26
index.js
src/modules/dashboard/screen/index.js
+0
-5
Details.vue
src/modules/dashboard/screen/views/Details.vue
+0
-48
List.vue
src/modules/dashboard/screen/views/List.vue
+7
-1
List.vue
src/modules/school/cert/views/List.vue
+7
-1
AddCourse.vue
src/modules/school/class/components/AddCourse.vue
+0
-3
CourseList.vue
src/modules/school/class/components/CourseList.vue
+12
-3
StudentList.vue
src/modules/school/class/components/StudentList.vue
+12
-3
TeachList.vue
src/modules/school/class/components/TeachList.vue
+8
-2
List.vue
src/modules/school/class/views/List.vue
+19
-4
Details.vue
src/modules/school/course/views/Details.vue
+19
-10
List.vue
src/modules/school/course/views/List.vue
+7
-1
List.vue
src/modules/school/exam/views/List.vue
+7
-1
List.vue
src/modules/school/student/views/List.vue
+23
-5
List.vue
src/modules/school/teacher/views/List.vue
+23
-5
axios.js
src/utils/axios.js
+3
-3
没有找到文件。
src/components/layout/Aside.vue
浏览文件 @
f2606fe7
...
...
@@ -34,19 +34,19 @@ export default {
path
:
'/dashboard'
,
icon
:
'el-icon-data-board'
,
children
:
[
{
name
:
'数据总览'
,
path
:
'/dashboard'
,
tag
:
''
}
{
name
:
'数据总览'
,
path
:
'/dashboard'
,
tag
:
'
console-index
'
}
]
},
{
tag
:
'
menu_school
'
,
tag
:
''
,
name
:
'教务管理'
,
path
:
'/school/class'
,
icon
:
'el-icon-user'
,
children
:
[
{
name
:
'班级管理'
,
path
:
'/school/class'
,
tag
:
''
},
{
name
:
'课程管理'
,
path
:
'/school/course'
,
tag
:
''
},
{
name
:
'考试管理'
,
path
:
'/school/exam'
,
tag
:
''
},
{
name
:
'证书管理'
,
path
:
'/school/cert'
,
tag
:
''
},
{
name
:
'班级管理'
,
path
:
'/school/class'
,
tag
:
'
class-list
'
},
{
name
:
'课程管理'
,
path
:
'/school/course'
,
tag
:
'
course-list
'
},
{
name
:
'考试管理'
,
path
:
'/school/exam'
,
tag
:
'
examination-list
'
},
{
name
:
'证书管理'
,
path
:
'/school/cert'
,
tag
:
'
certificate-list
'
},
// { name: '教师管理', path: '/school/teacher', tag: '' },
// { name: '学员管理', path: '/school/student', tag: '' }
]
...
...
@@ -56,8 +56,8 @@ export default {
path
:
'/personnel/teacher'
,
icon
:
'el-icon-s-custom'
,
children
:
[
{
name
:
'教工管理'
,
path
:
'/personnel/teacher'
,
tag
:
''
},
{
name
:
'人员管理'
,
path
:
'/personnel/student'
,
tag
:
''
}
{
name
:
'教工管理'
,
path
:
'/personnel/teacher'
,
tag
:
'
teacher-list
'
},
{
name
:
'人员管理'
,
path
:
'/personnel/student'
,
tag
:
'
student-list
'
}
]
},
// {
...
...
@@ -73,7 +73,7 @@ export default {
icon
:
'el-icon-s-check'
,
children
:
[
// { name: '事务类型', path: '/audit/type', tag: '' },
{
name
:
'我的审核'
,
path
:
'/audit/my'
,
tag
:
''
}
{
name
:
'我的审核'
,
path
:
'/audit/my'
,
tag
:
'
lobby-list
'
}
]
}
]
...
...
src/modules/audit/myAudit/api.js
浏览文件 @
f2606fe7
src/modules/audit/myAudit/components/DialogAudit.vue
浏览文件 @
f2606fe7
src/modules/audit/myAudit/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -23,11 +23,11 @@
<img
:src=
"row.url"
width=
"120"
height=
"70"
>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
v-if=
"tabActive !== '0'"
type=
"primary"
size=
"mini"
plain
@
click=
"onDetails(row)"
>
查看
</el-button>
<el-button
v-
else
type=
"primary"
size=
"mini"
plain
@
click=
"onAudit(row)"
>
办理
</el-button>
<el-button
v-if=
"
btnView &&
tabActive !== '0'"
type=
"primary"
size=
"mini"
plain
@
click=
"onDetails(row)"
>
查看
</el-button>
<el-button
v-
if=
"btnAudit && tabActive === '0'"
type=
"primary"
size=
"mini"
plain
@
click=
"onAudit(row)"
>
办理
</el-button>
</
template
>
<
template
#
footer
>
<div
v-if=
"tabActive === '0'"
>
<div
v-if=
"tabActive === '0'
&& btnMultiPass
"
>
已选中
{{
multipleSelection
.
length
}}
项
<el-button
style=
"margin-left:15px;"
size=
"mini"
:disabled=
"!multipleSelection.length"
@
click=
"fetchMultiPass"
>
一键通过
</el-button>
</div>
...
...
@@ -38,7 +38,6 @@
</template>
<
script
>
import
AppStudentSelect
from
'@/components/base/AppStudentSelect.vue'
import
AppClassSelect
from
'@/components/base/AppClassSelect.vue'
import
DialogAudit
from
'../components/DialogAudit.vue'
import
{
getAuditList
,
multiPass
}
from
'../api'
...
...
@@ -53,11 +52,22 @@ export default {
}
},
components
:
{
AppStudentSelect
,
AppClassSelect
,
DialogAudit
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnMultiPass
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'lobby-multiPass'
)
},
btnAudit
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'lobby-update'
)
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'lobby-view'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
@@ -72,7 +82,7 @@ export default {
{
placeholder
:
'所属班级'
,
slots
:
'filter-class'
}
],
columns
:
[
{
type
:
'selection'
,
minWidth
:
'50px'
,
fixed
:
'left'
,
visible
:
this
.
tabActive
===
'0'
},
{
type
:
'selection'
,
minWidth
:
'50px'
,
fixed
:
'left'
,
visible
:
this
.
tabActive
===
'0'
&&
this
.
btnMultiPass
},
{
label
:
'事项'
,
align
:
'center'
,
prop
:
'type_label'
},
{
label
:
'申请人'
,
align
:
'center'
,
prop
:
'personal_name'
},
{
label
:
'所属班级'
,
align
:
'center'
,
prop
:
'class_name'
},
...
...
src/modules/dashboard/screen/components/VideoPlayer.vue
deleted
100644 → 0
浏览文件 @
7906dee9
<
template
>
<el-dialog
:title=
"info.title"
v-bind=
"$attrs"
v-on=
"$listeners"
width=
"800px"
top=
"20vh"
>
<video
:src=
"info.url"
controls=
"controls"
autoplay=
"autoplay"
></video>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
info
:
{
type
:
Object
,
default
()
{
return
{}
}
}
},
data
()
{
return
{}
}
}
</
script
>
<
style
scoped
>
video
{
width
:
100%
;
}
</
style
>
\ No newline at end of file
src/modules/dashboard/screen/index.js
浏览文件 @
f2606fe7
...
...
@@ -7,11 +7,6 @@ const routes = [
path
:
''
,
component
:
()
=>
import
(
'./views/List.vue'
),
meta
:
{
title
:
'工作台'
}
},
{
path
:
'details'
,
component
:
()
=>
import
(
'./views/Details.vue'
),
meta
:
{
title
:
'证书信息'
}
}
]
}
...
...
src/modules/dashboard/screen/views/Details.vue
deleted
100644 → 0
浏览文件 @
7906dee9
<
template
>
<div>
<app-card
class=
"base-info"
title=
"证书信息"
>
<p>
还未取得证书
</p>
<div
style=
"margin:20px;"
>
<img
src=
"https://d1icd6shlvmxi6.cloudfront.net/gsc/VZBEW1/80/94/0b/80940b325e974c2bbb1947333cef5a62/images/%E6%88%91%E7%9A%84%E8%AF%81%E4%B9%A6/u195.png?token=a74c08777a71a87475bc07e15ce324e9ba84b5f1ae0b3ee46443d323e17180df"
/>
</div>
<div
style=
"margin:20px;"
>
<img
src=
"https://d1icd6shlvmxi6.cloudfront.net/gsc/VZBEW1/80/94/0b/80940b325e974c2bbb1947333cef5a62/images/%E6%88%91%E7%9A%84%E8%AF%81%E4%B9%A6/u193.png?token=292d1b529d8cd3149295c1fd7226df2c2404d5ee5aec9a56467c9a13586806af"
/>
</div>
</app-card>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
}
},
methods
:
{
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.app-card
{
padding
:
15px
0
20px
;
::v-deep
.app-card-hd
{
padding
:
0
20px
;
border-bottom
:
1px
solid
#ececec
;
}
::v-deep
.app-card-bd
{
padding
:
20px
;
}
}
.base-info
{
::v-deep
.app-card-bd
{
.title
{
margin-bottom
:
20px
;
padding-bottom
:
14px
;
border-bottom
:
1px
solid
#f0f0f0
;
i
{
font-size
:
24px
;
color
:
#3276fc
;
}
}
}
}
</
style
>
src/modules/dashboard/screen/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -19,7 +19,7 @@
<app-card
title=
"数据汇总"
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template>
<div
style=
"border-top:1px solid #f3f3f3;padding:15px 0;"
>
<div
v-if=
"btnExport"
style=
"border-top:1px solid #f3f3f3;padding:15px 0;"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"exportAll"
>
导出Excel
</el-button>
<span
style=
"color:#666;font-size:14px;margin-left:15px;"
>
导出当前搜索结果
</span>
</div>
...
...
@@ -60,6 +60,12 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnExport
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-download'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/cert/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -17,7 +17,7 @@
<img
:src=
"row.url"
width=
"120"
height=
"70"
>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<router-link
:to=
"
{ path: '/school/cert/details', query: { id: row.student_id } }">
<router-link
v-if=
"btnView"
:to=
"
{ path: '/school/cert/details', query: { id: row.student_id } }">
<el-button
type=
"primary"
size=
"mini"
plain
>
查看
</el-button>
</router-link>
</
template
>
...
...
@@ -41,6 +41,12 @@ export default {
AppClassSelect
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'certificate-view'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/class/components/AddCourse.vue
浏览文件 @
f2606fe7
...
...
@@ -34,10 +34,8 @@
</
template
>
<
script
>
import
AppCourseSelect
from
'@/components/base/AppCourseSelect.vue'
import
{
getAddCourseList
,
addCourse
,
updateCourse
}
from
'../api'
export
default
{
components
:
{
AppCourseSelect
},
props
:
{
info
:
{
type
:
Object
,
...
...
@@ -102,7 +100,6 @@ export default {
}
else
{
this
.
fetchCourseList
()
}
},
methods
:
{
handleChange
(
val
)
{
...
...
src/modules/school/class/components/CourseList.vue
浏览文件 @
f2606fe7
<
template
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
#
header-aside
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"handleAdd"
>
添加
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"handleAdd"
v-if=
"btnAdd"
>
添加
</el-button>
</
template
>
<
template
v-slot:table-img=
"{ row }"
>
<img
v-if=
"row.curriculum"
:src=
"row.curriculum.course_picture"
width=
"120"
height=
"70"
>
...
...
@@ -10,8 +10,8 @@
<router-link
:to=
"
{ path: '/school/course/details', query: { id: row.id } }">
<el-button
type=
"primary"
size=
"mini"
plain
style=
"margin-right: 10px"
>
查看
</el-button>
</router-link>
<el-button
@
click=
"onEdit(row)"
type=
"primary"
size=
"mini"
plain
>
更新
</el-button>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
>
删除
</el-button>
<el-button
@
click=
"onEdit(row)"
type=
"primary"
size=
"mini"
plain
v-if=
"btnUpdate"
>
更新
</el-button>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
v-if=
"btnAdd"
>
删除
</el-button>
</
template
>
<AddCourse
v-if=
"isShowDialog"
:info=
"info"
:title=
"info ? '更新课程':'添加课程'"
:visible
.
sync=
"isShowDialog"
@
success=
"success"
/>
</app-list>
...
...
@@ -40,6 +40,15 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnAdd
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-addCourse'
)
},
btnUpdate
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-updateCourse'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/class/components/StudentList.vue
浏览文件 @
f2606fe7
...
...
@@ -2,11 +2,11 @@
<!-- 学员 -->
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
#
header-aside
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addStudent"
>
添加
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"importStudent"
>
导入
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addStudent"
v-if=
"btnAdd"
>
添加
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"importStudent"
v-if=
"btnImport"
>
导入
</el-button>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
>
删除
</el-button>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
v-if=
"btnAdd"
>
删除
</el-button>
</
template
>
<AddStudent
:visible
.
sync=
"isShowDialog"
@
success=
"success"
/>
</app-list>
...
...
@@ -33,6 +33,15 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnAdd
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-addStudent'
)
},
btnImport
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-importStudent'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/class/components/TeachList.vue
浏览文件 @
f2606fe7
<
template
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
#
header-aside
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addTeacher"
>
添加
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"addTeacher"
v-if=
"btnAdd"
>
添加
</el-button>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
>
删除
</el-button>
<el-button
@
click=
"onRemove(row)"
type=
"danger"
size=
"mini"
plain
v-if=
"btnAdd"
>
删除
</el-button>
</
template
>
<AddTeacher
:visible
.
sync=
"isShowDialog"
@
success=
"success"
/>
</app-list>
...
...
@@ -32,6 +32,12 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnAdd
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-addTeacher'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/class/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -2,18 +2,18 @@
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template>
<router-link
:to=
"
{ path: 'class/update' }">
<router-link
:to=
"
{ path: 'class/update' }"
v-if="btnCreate"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
>
新建
</el-button>
</router-link>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<router-link
:to=
"
{ path: 'class/view', query: { id: row.id } }">
<router-link
v-if=
"btnManage"
:to=
"
{ path: 'class/view', query: { id: row.id } }">
<el-button
type=
"primary"
style=
"margin-left: 10px"
size=
"mini"
plain
>
管理
</el-button>
</router-link>
<router-link
:to=
"
{ path: 'class/update', query: { id: row.id } }">
<router-link
v-if=
"btnUpdate"
:to=
"
{ path: 'class/update', query: { id: row.id } }">
<el-button
type=
"success"
style=
"margin-left: 10px"
size=
"mini"
plain
>
更新
</el-button>
</router-link>
<el-button
type=
"danger"
@
click=
"onRemove(row)"
style=
"margin-left: 10px"
size=
"mini"
plain
>
删除
</el-button>
<el-button
v-if=
"btnDelete"
type=
"danger"
@
click=
"onRemove(row)"
style=
"margin-left: 10px"
size=
"mini"
plain
>
删除
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -30,6 +30,21 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnCreate
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-add'
)
},
btnManage
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-view'
)
},
btnUpdate
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-update'
)
},
btnDelete
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'class-delete'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/course/views/Details.vue
浏览文件 @
f2606fe7
...
...
@@ -16,7 +16,7 @@
<div
class=
"course-title"
>
{{
item
.
name
}}
</div>
</
template
>
<div
class=
"item"
v-for=
"(it, idx) in item.children"
:key=
"idx"
>
<i
v-if=
"it.type === 2"
class=
"el-icon-video-play"
@
click=
"fetchVideoUrl(it)"
></i>
<i
v-if=
"
btnView &&
it.type === 2"
class=
"el-icon-video-play"
@
click=
"fetchVideoUrl(it)"
></i>
<p>
{{it.name}}
</p>
<div
class=
"time"
v-if=
"it.type === 2"
>
<span
class=
"text"
>
时长
</span>
...
...
@@ -64,15 +64,24 @@ export default {
},
filters
:
{
formatSeconds
(
value
)
{
let
result
=
parseInt
(
value
)
let
h
=
Math
.
floor
(
result
/
3600
)
<
10
?
'0'
+
Math
.
floor
(
result
/
3600
)
:
Math
.
floor
(
result
/
3600
);
let
m
=
Math
.
floor
((
result
/
60
%
60
))
<
10
?
'0'
+
Math
.
floor
((
result
/
60
%
60
))
:
Math
.
floor
((
result
/
60
%
60
));
let
s
=
Math
.
floor
((
result
%
60
))
<
10
?
'0'
+
Math
.
floor
((
result
%
60
))
:
Math
.
floor
((
result
%
60
));
let
res
=
''
;
if
(
h
!==
'00'
)
res
+=
`
${
h
}
h:`
;
if
(
m
!==
'00'
)
res
+=
`
${
m
}
:`
;
res
+=
`
${
s
}
`
;
return
res
;
const
result
=
parseInt
(
value
)
const
h
=
Math
.
floor
(
result
/
3600
)
<
10
?
'0'
+
Math
.
floor
(
result
/
3600
)
:
Math
.
floor
(
result
/
3600
)
const
m
=
Math
.
floor
((
result
/
60
%
60
))
<
10
?
'0'
+
Math
.
floor
((
result
/
60
%
60
))
:
Math
.
floor
((
result
/
60
%
60
))
const
s
=
Math
.
floor
((
result
%
60
))
<
10
?
'0'
+
Math
.
floor
((
result
%
60
))
:
Math
.
floor
((
result
%
60
))
let
res
=
''
if
(
h
!==
'00'
)
res
+=
`
${
h
}
h:`
res
+=
`
${
m
}
:`
// if(m !== '00') res += `${m}:`
res
+=
`
${
s
}
`
return
res
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'course-video'
)
}
},
created
()
{
...
...
src/modules/school/course/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -14,7 +14,7 @@
</el-popover>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<router-link
:to=
"
{ path: '/school/course/details', query: { id: row.id } }">
<router-link
v-if=
"btnView"
:to=
"
{ path: '/school/course/details', query: { id: row.id } }">
<el-button
type=
"primary"
size=
"mini"
plain
>
查看
</el-button>
</router-link>
</
template
>
...
...
@@ -36,6 +36,12 @@ export default {
AppCourseSelect
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'course-view'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/exam/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -5,7 +5,7 @@
{{
row
.
start_time
}}
-
{{
row
.
end_time
}}
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<router-link
:to=
"
{ path: '/exam/details', query: { id: row.id, title: row.paper_title } }">
<router-link
v-if=
"btnView"
:to=
"
{ path: '/exam/details', query: { id: row.id, title: row.paper_title } }">
<el-button
type=
"primary"
size=
"mini"
plain
>
查看
</el-button>
</router-link>
</
template
>
...
...
@@ -23,6 +23,12 @@ export default {
}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'examination-sheetList'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/student/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -3,8 +3,8 @@
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template>
<el-row
style=
"margin-bottom: 20px"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"add"
>
新建
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"imports"
size=
"mini"
<el-button
v-if=
"btnAdd"
type=
"primary"
icon=
"el-icon-plus"
size=
"mini"
@
click=
"add"
>
新建
</el-button>
<el-button
v-if=
"btnImport"
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"imports"
size=
"mini"
>
导入
</el-button
>
<!--
<el-button
type=
"primary"
icon=
"el-icon-download"
style=
"margin-left: 20px"
@
click=
"downLoad"
size=
"mini"
>
下载
</el-button>
-->
...
...
@@ -14,13 +14,13 @@
<!--
<router-link
:to=
"
{ path: 'student/process', query: { id: row.id } }">
<el-button
type=
"warning"
size=
"mini"
plain
>
学习进度
</el-button>
</router-link>
-->
<router-link
:to=
"
{ path: 'student/view', query: { id: row.id } }">
<router-link
v-if=
"btnView"
:to=
"
{ path: 'student/view', query: { id: row.id } }">
<el-button
type=
"primary"
style=
"margin-left: 10px"
size=
"mini"
plain
>
查看
</el-button>
</router-link>
<router-link
:to=
"
{ path: 'student/update', query: { id: row.id } }">
<router-link
v-if=
"btnUpdate"
:to=
"
{ path: 'student/update', query: { id: row.id } }">
<el-button
type=
"success"
style=
"margin-left: 10px"
size=
"mini"
plain
>
更新
</el-button>
</router-link>
<el-button
type=
"danger"
@
click=
"onRemove(row)"
style=
"margin-left: 10px"
size=
"mini"
plain
>
删除
</el-button>
<el-button
v-if=
"btnDelete"
type=
"danger"
@
click=
"onRemove(row)"
style=
"margin-left: 10px"
size=
"mini"
plain
>
删除
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -36,6 +36,24 @@ export default {
return
{}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnAdd
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-add'
)
},
btnUpdate
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-update'
)
},
btnDelete
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-delete'
)
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-view'
)
},
btnImport
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'student-import'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/modules/school/teacher/views/List.vue
浏览文件 @
f2606fe7
...
...
@@ -3,20 +3,20 @@
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template>
<el-row
style=
"margin-bottom: 20px"
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"add"
size=
"mini"
>
新建
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"imports"
size=
"mini"
<el-button
v-if=
"btnAdd"
type=
"primary"
icon=
"el-icon-plus"
@
click=
"add"
size=
"mini"
>
新建
</el-button>
<el-button
v-if=
"btnImport"
type=
"primary"
icon=
"el-icon-upload2"
style=
"margin-left: 20px"
@
click=
"imports"
size=
"mini"
>
导入
</el-button
>
</el-row>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<router-link
:to=
"
{ path: 'teacher/view', query: { id: row.id } }">
<router-link
v-if=
"btnView"
:to=
"
{ path: 'teacher/view', query: { id: row.id } }">
<el-button
type=
"primary"
size=
"mini"
plain
>
查看
</el-button>
</router-link>
<router-link
:to=
"
{ path: 'teacher/update', query: { id: row.id } }">
<router-link
v-if=
"btnUpdate"
:to=
"
{ path: 'teacher/update', query: { id: row.id } }">
<el-button
type=
"success"
style=
"margin-left: 10px"
size=
"mini"
plain
>
更新
</el-button>
</router-link>
<el-button
type=
"danger"
style=
"margin-left: 10px"
size=
"mini"
plain
@
click=
"onRemove(row)"
>
删除
</el-button>
<el-button
v-if=
"btnDelete"
type=
"danger"
style=
"margin-left: 10px"
size=
"mini"
plain
@
click=
"onRemove(row)"
>
删除
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -31,6 +31,24 @@ export default {
return
{}
},
computed
:
{
permissions
()
{
return
this
.
$store
.
state
.
permissions
},
btnAdd
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'teacher-add'
)
},
btnUpdate
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'teacher-update'
)
},
btnDelete
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'teacher-delete'
)
},
btnView
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'teacher-view'
)
},
btnImport
()
{
return
!!
this
.
permissions
.
find
(
item
=>
item
.
tag
===
'teacher-import'
)
},
// 列表配置
tableOptions
()
{
return
{
...
...
src/utils/axios.js
浏览文件 @
f2606fe7
...
...
@@ -65,9 +65,9 @@ httpRequest.interceptors.response.use(
function
(
error
)
{
if
(
error
.
response
)
{
const
{
status
,
message
}
=
error
.
response
.
data
if
(
status
===
401
)
{
router
.
push
(
'/401'
)
}
//
if (status === 401) {
//
router.push('/401')
//
}
// 未登录
if
(
status
===
403
)
{
window
.
location
.
href
=
`
${
import
.
meta
.
env
.
VITE_LOGIN_URL
}
?rd=
${
encodeURIComponent
(
window
.
location
.
href
)}
`
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论