Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-project
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-project
Commits
dd00816e
提交
dd00816e
authored
6月 06, 2022
作者:
王鹏飞
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
chore: 支持资源管理系统
上级
be8f6c06
显示空白字符变更
内嵌
并排
正在显示
21 个修改的文件
包含
515 行增加
和
120 行删除
+515
-120
base.js
src/api/base.js
+5
-0
UserAutocomplete.vue
src/components/base/UserAutocomplete.vue
+79
-0
UserSelect.vue
src/components/base/UserSelect.vue
+77
-0
api.js
src/modules/permissions/api.js
+6
-6
ClonePermissions.vue
src/modules/permissions/components/ClonePermissions.vue
+3
-4
Editform.vue
src/modules/permissions/components/Editform.vue
+3
-3
List.vue
src/modules/permissions/views/List.vue
+5
-20
api.js
src/modules/projects/api.js
+7
-0
List.vue
src/modules/projects/views/List.vue
+11
-17
api.js
src/modules/roles/api.js
+8
-8
Editform.vue
src/modules/roles/components/Editform.vue
+13
-2
Permissions.vue
src/modules/roles/components/Permissions.vue
+12
-8
List.vue
src/modules/roles/views/List.vue
+15
-9
api.js
src/modules/school/api.js
+35
-1
Editform.vue
src/modules/school/components/Editform.vue
+4
-19
UserEditform.vue
src/modules/school/components/UserEditform.vue
+98
-0
Users.vue
src/modules/school/components/Users.vue
+97
-0
Detail.vue
src/modules/school/views/Detail.vue
+4
-8
List.vue
src/modules/school/views/List.vue
+6
-9
dictionary.js
src/utils/dictionary.js
+26
-0
vite.config.js
vite.config.js
+1
-6
没有找到文件。
src/api/base.js
浏览文件 @
dd00816e
...
@@ -41,3 +41,8 @@ export function getPermissions(params) {
...
@@ -41,3 +41,8 @@ export function getPermissions(params) {
export
function
getAllProjects
(
params
)
{
export
function
getAllProjects
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v2/project/all'
,
{
params
})
return
httpRequest
.
get
(
'/api/xedu/admin/v2/project/all'
,
{
params
})
}
}
// 搜索紫荆用户
export
function
userSearch
(
params
)
{
return
httpRequest
.
get
(
'/api/permissions/admin/v1/system/search-sso-users'
,
{
params
})
}
src/components/base/UserAutocomplete.vue
0 → 100644
浏览文件 @
dd00816e
<
template
>
<div
class=
"user-autocomplete"
>
<el-select
v-model=
"searchType"
style=
"width: 120px"
>
<el-option
label=
"用户名"
value=
"username"
></el-option>
<el-option
label=
"手机号"
value=
"mobile"
></el-option>
<el-option
label=
"邮箱"
value=
"email"
></el-option>
<el-option
label=
"昵称"
value=
"nickname"
></el-option>
</el-select>
<el-select
placeholder=
"搜索"
filterable
remote
style=
"width: 100%"
:remote-method=
"fetchUserList"
:loading=
"loading"
@
change=
"handleChange"
clearable
v-bind=
"$attrs"
v-on=
"$listeners"
>
<el-option
:label=
"user.realname || user.nickname"
:value=
"user.id"
v-for=
"user in userList"
:key=
"user.id"
>
<div
style=
"display: flex"
>
<span>
{{
user
.
realname
||
user
.
nickname
}}
<template
v-if=
"user.mobile"
>
(手机号:
{{
user
.
mobile
}}
)
</
template
>
</span>
<span
class=
"t1"
v-if=
"user.email"
>
邮箱:{{ user.email }}
</span>
<span
class=
"t1"
v-else
>
ID:{{ user.id }}
</span>
</div>
</el-option>
</el-select>
</div>
</template>
<
script
>
import
{
userSearch
}
from
'@/api/base'
export
default
{
data
()
{
return
{
searchType
:
'nickname'
,
userList
:
[],
loading
:
false
}
},
methods
:
{
fetchUserList
(
searchValue
)
{
const
params
=
{}
params
[
this
.
searchType
]
=
searchValue
this
.
loading
=
true
userSearch
(
params
)
.
then
(
response
=>
{
this
.
userList
=
response
.
data
.
items
})
.
finally
(()
=>
{
this
.
loading
=
false
})
},
handleChange
(
userId
)
{
const
user
=
this
.
userList
.
find
(
user
=>
user
.
id
===
userId
)
this
.
$emit
(
'change'
,
userId
,
user
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
.user-autocomplete
{
display
:
flex
;
.el-select
+
.el-select
{
margin-left
:
10px
;
}
.t1
{
color
:
#8492a6
;
font-size
:
13px
;
margin
:
0
20px
0
10px
;
}
}
</
style
>
src/components/base/UserSelect.vue
0 → 100644
浏览文件 @
dd00816e
<
template
>
<el-dialog
v-bind=
"$attrs"
v-on=
"$listeners"
append-to-body
title=
"选择成员"
width=
"60%"
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
@
select=
"select"
@
selection-change=
"handleSelectionChange"
></app-list>
<div
class=
"dialog-footer"
>
<el-button
@
click=
"handleCancel"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handlePrimary"
>
确 定
</el-button>
</div>
</el-dialog>
</
template
>
<
script
>
import
{
getUserList
}
from
'@/api/base.js'
export
default
{
props
:
{
multiple
:
{
type
:
Boolean
,
default
:
true
},
role_id
:
{
type
:
String
}
},
data
()
{
return
{
dialogVisible
:
false
,
multipleSelection
:
[],
// 选择的数据
selected
:
[]
// 确定选中的
}
},
computed
:
{
// 列表配置
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
getUserList
,
params
:
{
role_id
:
this
.
role_id
}
},
columns
:
[
{
type
:
'selection'
},
{
label
:
'姓名'
,
prop
:
'sso_user.realname'
},
{
label
:
'昵称'
,
prop
:
'sso_user.nickname'
},
{
label
:
'手机号'
,
prop
:
'sso_user.mobile'
},
{
label
:
'邮箱'
,
prop
:
'sso_user.email'
}
]
}
}
},
methods
:
{
// 选择
select
(
selection
,
row
)
{
if
(
!
this
.
multiple
&&
selection
.
length
>
1
)
{
const
selected
=
!!
selection
.
find
(
item
=>
item
.
id
===
row
.
id
)
this
.
$refs
.
list
.
table
.
clearSelection
()
this
.
$nextTick
(
function
()
{
this
.
$refs
.
list
.
table
.
toggleRowSelection
(
row
,
selected
)
})
}
},
// 选择
handleSelectionChange
(
value
)
{
this
.
multipleSelection
=
value
},
// 取消
handleCancel
()
{
this
.
$emit
(
'update:visible'
,
false
)
},
// 确定
handlePrimary
()
{
this
.
$emit
(
'primary'
,
this
.
multipleSelection
)
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.dialog-footer
{
position
:
sticky
;
bottom
:
0
;
text-align
:
center
;
z-index
:
118
;
padding
:
20px
0
;
border-top
:
0
.5px
solid
rgba
(
0
,
0
,
0
,
0
.05
);
background-color
:
rgba
(
255
,
255
,
255
,
0
.95
);
}
</
style
>
src/modules/permissions/api.js
浏览文件 @
dd00816e
...
@@ -4,40 +4,40 @@ import httpRequest from '@/utils/axios'
...
@@ -4,40 +4,40 @@ import httpRequest from '@/utils/axios'
* 获取权限列表
* 获取权限列表
*/
*/
export
function
getPermissionList
(
params
)
{
export
function
getPermissionList
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v
2
/permissions'
,
{
params
})
return
httpRequest
.
get
(
'/api/xedu/admin/v
3
/permissions'
,
{
params
})
}
}
/**
/**
* 获取权限详情
* 获取权限详情
*/
*/
export
function
getPermission
(
params
)
{
export
function
getPermission
(
params
)
{
return
httpRequest
.
get
(
`/api/xedu/admin/v
2
/permission/
${
params
.
id
}
`
,
{
params
})
return
httpRequest
.
get
(
`/api/xedu/admin/v
3
/permission/
${
params
.
id
}
`
,
{
params
})
}
}
/**
/**
* 创建权限
* 创建权限
*/
*/
export
function
createPermission
(
data
)
{
export
function
createPermission
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v
2
/permission'
,
data
)
return
httpRequest
.
post
(
'/api/xedu/admin/v
3
/permission'
,
data
)
}
}
/**
/**
* 修改权限
* 修改权限
*/
*/
export
function
updatePermission
(
data
)
{
export
function
updatePermission
(
data
)
{
return
httpRequest
.
put
(
`/api/xedu/admin/v
2
/permission/
${
data
.
id
}
`
,
data
)
return
httpRequest
.
put
(
`/api/xedu/admin/v
3
/permission/
${
data
.
id
}
`
,
data
)
}
}
/**
/**
* 删除权限
* 删除权限
*/
*/
export
function
deletePermission
(
data
)
{
export
function
deletePermission
(
data
)
{
return
httpRequest
.
delete
(
`/api/xedu/admin/v
2
/permission/
${
data
.
id
}
`
,
data
)
return
httpRequest
.
delete
(
`/api/xedu/admin/v
3
/permission/
${
data
.
id
}
`
,
data
)
}
}
/**
/**
* 复制权限
* 复制权限
*/
*/
export
function
clonePermission
(
data
)
{
export
function
clonePermission
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v
2
/permission/copy'
,
data
)
return
httpRequest
.
post
(
'/api/xedu/admin/v
3
/permission/copy'
,
data
)
}
}
src/modules/permissions/components/ClonePermissions.vue
浏览文件 @
dd00816e
...
@@ -14,9 +14,7 @@
...
@@ -14,9 +14,7 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"所属系统"
prop=
"system_tags"
>
<el-form-item
label=
"所属系统"
prop=
"system_tags"
>
<el-checkbox-group
v-model=
"form.system_tags"
>
<el-checkbox-group
v-model=
"form.system_tags"
>
<el-checkbox
:label=
"1"
>
学校端
</el-checkbox>
<el-checkbox
v-for=
"item in systemList"
:label=
"item.value"
:key=
"item.value"
>
{{
item
.
label
}}
</el-checkbox>
<!--
<el-checkbox
:label=
"2"
>
教师端
</el-checkbox>
-->
<el-checkbox
:label=
"3"
>
学生端
</el-checkbox>
</el-checkbox-group>
</el-checkbox-group>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -28,11 +26,12 @@
...
@@ -28,11 +26,12 @@
</template>
</template>
<
script
>
<
script
>
// lodash
import
{
clonePermission
}
from
'../api.js'
import
{
clonePermission
}
from
'../api.js'
import
{
systemList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
systemList
,
form
:
{
form
:
{
current_project_id
:
this
.
$store
.
state
.
activeProject
.
id
,
current_project_id
:
this
.
$store
.
state
.
activeProject
.
id
,
select_project_id
:
''
,
select_project_id
:
''
,
...
...
src/modules/permissions/components/Editform.vue
浏览文件 @
dd00816e
...
@@ -15,9 +15,7 @@
...
@@ -15,9 +15,7 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"所属系统"
prop=
"system_tag"
>
<el-form-item
label=
"所属系统"
prop=
"system_tag"
>
<el-radio-group
v-model=
"form.system_tag"
:disabled=
"isEdit"
>
<el-radio-group
v-model=
"form.system_tag"
:disabled=
"isEdit"
>
<el-radio
:label=
"1"
>
学校端
</el-radio>
<el-radio
v-for=
"item in systemList"
:label=
"item.value"
:key=
"item.value"
>
{{
item
.
label
}}
</el-radio>
<!--
<el-radio
:label=
"2"
>
教师端
</el-radio>
-->
<el-radio
:label=
"3"
>
学生端
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item
label=
"路由"
prop=
"effect_uris"
>
<el-form-item
label=
"路由"
prop=
"effect_uris"
>
...
@@ -38,6 +36,7 @@
...
@@ -38,6 +36,7 @@
// lodash
// lodash
import
{
createPermission
,
updatePermission
}
from
'../api.js'
import
{
createPermission
,
updatePermission
}
from
'../api.js'
import
{
pick
}
from
'lodash'
import
{
pick
}
from
'lodash'
import
{
systemList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
props
:
{
props
:
{
isEdit
:
{
type
:
Boolean
,
default
:
false
},
isEdit
:
{
type
:
Boolean
,
default
:
false
},
...
@@ -45,6 +44,7 @@ export default {
...
@@ -45,6 +44,7 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
systemList
,
form
:
{
parent_id
:
'0'
,
type
:
1
,
name
:
''
,
tag
:
''
,
system_tag
:
''
,
desc
:
''
,
effect_uris
:
''
},
form
:
{
parent_id
:
'0'
,
type
:
1
,
name
:
''
,
tag
:
''
,
system_tag
:
''
,
desc
:
''
,
effect_uris
:
''
},
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
'请输入权限名称'
,
trigger
:
'blur'
}],
name
:
[{
required
:
true
,
message
:
'请输入权限名称'
,
trigger
:
'blur'
}],
...
...
src/modules/permissions/views/List.vue
浏览文件 @
dd00816e
...
@@ -6,12 +6,7 @@
...
@@ -6,12 +6,7 @@
<el-button
type=
"warning"
@
click=
"cloneVisible = true"
>
复制权限
</el-button>
<el-button
type=
"warning"
@
click=
"cloneVisible = true"
>
复制权限
</el-button>
</
template
>
</
template
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleClick"
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleClick"
>
<el-tab-pane
<el-tab-pane
:label=
"item.label"
:name=
"item.value"
v-for=
"(item, index) in typeList"
:key=
"index"
></el-tab-pane>
:label=
"item.label"
:name=
"item.value"
v-for=
"(item, index) in typeList"
:key=
"index"
></el-tab-pane>
</el-tabs>
</el-tabs>
<
template
v-slot:table-x=
"{ row }"
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
type=
"text"
@
click=
"handleCreate(row)"
>
创建子权限
</el-button><br
/>
<el-button
type=
"text"
@
click=
"handleCreate(row)"
>
创建子权限
</el-button><br
/>
...
@@ -19,13 +14,7 @@
...
@@ -19,13 +14,7 @@
<el-button
type=
"text"
@
click=
"onRemove(row)"
>
删除
</el-button>
<el-button
type=
"text"
@
click=
"onRemove(row)"
>
删除
</el-button>
</
template
>
</
template
>
</app-list>
</app-list>
<editform
<editform
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
<ClonePermissions
:visible
.
sync=
"cloneVisible"
@
success=
"handleSuccess"
v-if=
"cloneVisible"
></ClonePermissions>
<ClonePermissions
:visible
.
sync=
"cloneVisible"
@
success=
"handleSuccess"
v-if=
"cloneVisible"
></ClonePermissions>
</app-card>
</app-card>
</template>
</template>
...
@@ -33,6 +22,7 @@
...
@@ -33,6 +22,7 @@
<
script
>
<
script
>
// 接口
// 接口
import
{
getPermissionList
,
deletePermission
}
from
'../api'
import
{
getPermissionList
,
deletePermission
}
from
'../api'
import
{
system
,
systemList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -73,11 +63,7 @@ export default {
...
@@ -73,11 +63,7 @@ export default {
type
:
'select'
,
type
:
'select'
,
prop
:
'system_tag'
,
prop
:
'system_tag'
,
placeholder
:
'所属系统'
,
placeholder
:
'所属系统'
,
options
:
[
options
:
systemList
{
label
:
'学校端'
,
value
:
'1'
},
// { label: '教师端', value: '2' },
{
label
:
'学生端'
,
value
:
'3'
}
]
}
}
],
],
columns
:
[
columns
:
[
...
@@ -87,8 +73,7 @@ export default {
...
@@ -87,8 +73,7 @@ export default {
label
:
'所属系统'
,
label
:
'所属系统'
,
prop
:
'system_tag'
,
prop
:
'system_tag'
,
computed
({
row
})
{
computed
({
row
})
{
const
map
=
{
1
:
'学校端'
,
2
:
'教师端'
,
3
:
'学生端'
}
return
system
[
row
.
system_tag
]
||
row
.
system_tag
return
map
[
row
.
system_tag
]
||
row
.
system_tag
}
}
},
},
{
{
...
...
src/modules/projects/api.js
浏览文件 @
dd00816e
...
@@ -40,3 +40,10 @@ export function updateProjectStatus(data) {
...
@@ -40,3 +40,10 @@ export function updateProjectStatus(data) {
export
function
deleteProject
(
data
)
{
export
function
deleteProject
(
data
)
{
return
httpRequest
.
delete
(
`/api/xedu/admin/v2/
${
data
.
id
}
/project`
,
data
)
return
httpRequest
.
delete
(
`/api/xedu/admin/v2/
${
data
.
id
}
/project`
,
data
)
}
}
/**
* 初始化机构用户角色
*/
export
function
initUserRole
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v3/role/init-user-role'
,
data
)
}
src/modules/projects/views/List.vue
浏览文件 @
dd00816e
...
@@ -8,33 +8,21 @@
...
@@ -8,33 +8,21 @@
<el-tag>
{{
row
.
role_name
}}
</el-tag>
<el-tag>
{{
row
.
role_name
}}
</el-tag>
</
template
>
</
template
>
<
template
v-slot:table-status=
"{ row }"
>
<
template
v-slot:table-status=
"{ row }"
>
<el-switch
<el-switch
v-model=
"row.status"
:active-value=
"1"
:inactive-value=
"2"
active-text=
"启用"
inactive-text=
"停用"
@
change=
"handleStatus(row)"
></el-switch>
v-model=
"row.status"
:active-value=
"1"
:inactive-value=
"2"
active-text=
"启用"
inactive-text=
"停用"
@
change=
"handleStatus(row)"
></el-switch>
</
template
>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
type=
"primary"
plain
@
click=
"handleUpdate(row)"
>
编辑
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleUpdate(row)"
>
编辑
</el-button>
<el-button
type=
"info"
plain
@
click=
"handleInitUserRole(row)"
>
初始化用户角色
</el-button>
</
template
>
</
template
>
</app-list>
</app-list>
<!-- 创建/编辑 -->
<!-- 创建/编辑 -->
<editform
<editform
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
</app-card>
</app-card>
</template>
</template>
<
script
>
<
script
>
// 接口
// 接口
import
{
getProjectList
,
deleteProject
,
updateProjectStatus
}
from
'../api'
import
{
getProjectList
,
deleteProject
,
updateProjectStatus
,
initUserRole
}
from
'../api'
export
default
{
export
default
{
components
:
{
components
:
{
...
@@ -85,7 +73,7 @@ export default {
...
@@ -85,7 +73,7 @@ export default {
},
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'状态'
,
prop
:
'status'
,
slots
:
'table-status'
},
{
label
:
'状态'
,
prop
:
'status'
,
slots
:
'table-status'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
'
8
0'
,
fixed
:
'right'
}
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
'
22
0'
,
fixed
:
'right'
}
]
]
}
}
}
}
...
@@ -129,6 +117,12 @@ export default {
...
@@ -129,6 +117,12 @@ export default {
updateProjectStatus
({
id
:
row
.
id
,
status
:
row
.
status
}).
then
(
res
=>
{
updateProjectStatus
({
id
:
row
.
id
,
status
:
row
.
status
}).
then
(
res
=>
{
this
.
$message
({
type
:
'success'
,
message
:
'修改成功'
})
this
.
$message
({
type
:
'success'
,
message
:
'修改成功'
})
})
})
},
// 初始化用户角色
handleInitUserRole
(
row
)
{
initUserRole
({
project_id
:
row
.
id
}).
then
(
res
=>
{
this
.
$message
({
type
:
'success'
,
message
:
'初始化角色成功'
})
})
}
}
}
}
}
}
...
...
src/modules/roles/api.js
浏览文件 @
dd00816e
...
@@ -4,54 +4,54 @@ import httpRequest from '@/utils/axios'
...
@@ -4,54 +4,54 @@ import httpRequest from '@/utils/axios'
* 获取角色列表
* 获取角色列表
*/
*/
export
function
getRoleList
(
params
)
{
export
function
getRoleList
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v
2
/roles'
,
{
params
})
return
httpRequest
.
get
(
'/api/xedu/admin/v
3
/roles'
,
{
params
})
}
}
/**
/**
* 获取角色详情
* 获取角色详情
*/
*/
export
function
getRole
(
params
)
{
export
function
getRole
(
params
)
{
return
httpRequest
.
get
(
`/api/xedu/admin/v
2
/role/
${
params
.
id
}
`
,
{
params
})
return
httpRequest
.
get
(
`/api/xedu/admin/v
3
/role/
${
params
.
id
}
`
,
{
params
})
}
}
/**
/**
* 创建角色
* 创建角色
*/
*/
export
function
createRole
(
data
)
{
export
function
createRole
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v
2
/role'
,
data
)
return
httpRequest
.
post
(
'/api/xedu/admin/v
3
/role'
,
data
)
}
}
/**
/**
* 修改角色
* 修改角色
*/
*/
export
function
updateRole
(
data
)
{
export
function
updateRole
(
data
)
{
return
httpRequest
.
put
(
`/api/xedu/admin/v
2
/role/
${
data
.
id
}
`
,
data
)
return
httpRequest
.
put
(
`/api/xedu/admin/v
3
/role/
${
data
.
id
}
`
,
data
)
}
}
/**
/**
* 删除角色
* 删除角色
*/
*/
export
function
deleteRole
(
data
)
{
export
function
deleteRole
(
data
)
{
return
httpRequest
.
delete
(
`/api/xedu/admin/v
2
/role/
${
data
.
id
}
`
,
data
)
return
httpRequest
.
delete
(
`/api/xedu/admin/v
3
/role/
${
data
.
id
}
`
,
data
)
}
}
/**
/**
* 获取权限列表
* 获取权限列表
*/
*/
export
function
getPermissionList
(
params
)
{
export
function
getPermissionList
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v
2
/permissions'
,
{
params
})
return
httpRequest
.
get
(
'/api/xedu/admin/v
3
/permissions'
,
{
params
})
}
}
/**
/**
* 获取角色所有权限
* 获取角色所有权限
*/
*/
export
function
getRolePermissions
(
params
)
{
export
function
getRolePermissions
(
params
)
{
return
httpRequest
.
get
(
`/api/xedu/admin/v
2
/assign/
${
params
.
role_id
}
/permissions`
,
{
params
})
return
httpRequest
.
get
(
`/api/xedu/admin/v
3
/assign/
${
params
.
role_id
}
/permissions`
,
{
params
})
}
}
/**
/**
* 更新角色权限
* 更新角色权限
*/
*/
export
function
updateRolePermissions
(
data
)
{
export
function
updateRolePermissions
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v
2
/assign/permissions-to-role'
,
data
)
return
httpRequest
.
post
(
'/api/xedu/admin/v
3
/assign/permissions-to-role'
,
data
)
}
}
/**
/**
* 获取课程列表
* 获取课程列表
...
...
src/modules/roles/components/Editform.vue
浏览文件 @
dd00816e
<
template
>
<
template
>
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
v-bind=
"$attrs"
v-on=
"$listeners"
width=
"500px"
>
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
v-bind=
"$attrs"
v-on=
"$listeners"
width=
"500px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"top"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"top"
>
<el-form-item
label=
"角色用途"
prop=
"purpose"
>
<el-radio-group
v-model=
"form.purpose"
>
<el-radio
v-for=
"item in roleTypeList"
:label=
"item.value"
:key=
"item.value"
>
{{
item
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"角色名称"
prop=
"name"
>
<el-form-item
label=
"角色名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
clearable
></el-input>
<el-input
v-model=
"form.name"
clearable
></el-input>
</el-form-item>
</el-form-item>
...
@@ -18,6 +25,8 @@
...
@@ -18,6 +25,8 @@
<
script
>
<
script
>
import
{
createRole
,
updateRole
}
from
'../api.js'
import
{
createRole
,
updateRole
}
from
'../api.js'
import
{
pick
}
from
'lodash'
import
{
pick
}
from
'lodash'
import
{
roleTypeList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
props
:
{
props
:
{
isEdit
:
{
type
:
Boolean
,
default
:
false
},
isEdit
:
{
type
:
Boolean
,
default
:
false
},
...
@@ -25,8 +34,10 @@ export default {
...
@@ -25,8 +34,10 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
form
:
{
name
:
''
,
tag
:
''
,
desc
:
''
},
roleTypeList
,
form
:
{
name
:
''
,
purpose
:
''
,
desc
:
''
},
rules
:
{
rules
:
{
purpose
:
[{
required
:
true
,
message
:
'请选择角色用途'
,
trigger
:
'change'
}],
name
:
[{
required
:
true
,
message
:
'请输入角色名称'
,
trigger
:
'blur'
}],
name
:
[{
required
:
true
,
message
:
'请输入角色名称'
,
trigger
:
'blur'
}],
desc
:
[{
required
:
true
,
message
:
'请输入角色描述'
,
trigger
:
'blur'
}]
desc
:
[{
required
:
true
,
message
:
'请输入角色描述'
,
trigger
:
'blur'
}]
}
}
...
@@ -53,7 +64,7 @@ export default {
...
@@ -53,7 +64,7 @@ export default {
// 确定
// 确定
onPrimary
()
{
onPrimary
()
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
const
params
=
pick
(
this
.
form
,
[
'id'
,
'name'
,
'desc'
])
const
params
=
pick
(
this
.
form
,
[
'id'
,
'name'
,
'desc'
,
'purpose'
])
this
.
isEdit
?
this
.
edit
(
params
)
:
this
.
create
(
params
)
this
.
isEdit
?
this
.
edit
(
params
)
:
this
.
create
(
params
)
})
})
},
},
...
...
src/modules/roles/components/Permissions.vue
浏览文件 @
dd00816e
...
@@ -15,9 +15,7 @@
...
@@ -15,9 +15,7 @@
</div>
</div>
</el-form-item>
</el-form-item>
<el-form-item
label=
"课程列表"
>
<el-form-item
label=
"课程列表"
>
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
<el-checkbox
:indeterminate=
"isIndeterminate"
v-model=
"checkAll"
@
change=
"handleCheckAllChange"
>
全选
</el-checkbox>
全选
</el-checkbox>
<el-checkbox-group
v-model=
"form.course_ids"
>
<el-checkbox-group
v-model=
"form.course_ids"
>
<div
v-for=
"item in courses"
:key=
"item.id"
>
<div
v-for=
"item in courses"
:key=
"item.id"
>
<el-checkbox
:label=
"item.id"
>
{{
item
.
course_name
}}
</el-checkbox>
<el-checkbox
:label=
"item.id"
>
{{
item
.
course_name
}}
</el-checkbox>
...
@@ -34,11 +32,21 @@
...
@@ -34,11 +32,21 @@
<
script
>
<
script
>
import
{
getPermissionList
,
getRolePermissions
,
updateRolePermissions
,
getCourseList
}
from
'../api.js'
import
{
getPermissionList
,
getRolePermissions
,
updateRolePermissions
,
getCourseList
}
from
'../api.js'
import
{
systemList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
props
:
{
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
({})
}
data
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
},
data
()
{
data
()
{
const
options
=
systemList
.
map
(
item
=>
{
return
{
system_tag
:
item
.
value
,
name
:
item
.
label
,
permissions
:
[],
value
:
[]
}
})
return
{
return
{
loading
:
true
,
loading
:
true
,
form
:
{
form
:
{
...
@@ -51,11 +59,7 @@ export default {
...
@@ -51,11 +59,7 @@ export default {
permissions
:
[],
// 所有权限
permissions
:
[],
// 所有权限
defaultProps
:
{
label
:
'name'
,
value
:
'id'
,
multiple
:
true
,
expandTrigger
:
'hover'
,
emitPath
:
false
},
defaultProps
:
{
label
:
'name'
,
value
:
'id'
,
multiple
:
true
,
expandTrigger
:
'hover'
,
emitPath
:
false
},
submitLoading
:
false
,
submitLoading
:
false
,
options
:
[
options
,
{
name
:
'学校端'
,
system_tag
:
1
,
permissions
:
[],
value
:
[]
},
// { name: '教师端', system_tag: 2, permissions: [], value: [] },
{
name
:
'学生端'
,
system_tag
:
3
,
permissions
:
[],
value
:
[]
}
],
courses
:
[],
// 所有课程
courses
:
[],
// 所有课程
checkAll
:
false
checkAll
:
false
}
}
...
...
src/modules/roles/views/List.vue
浏览文件 @
dd00816e
...
@@ -11,13 +11,7 @@
...
@@ -11,13 +11,7 @@
</
template
>
</
template
>
</app-list>
</app-list>
<!-- 创建/编辑 -->
<!-- 创建/编辑 -->
<editform
<editform
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
<!-- 权限配置 -->
<!-- 权限配置 -->
<permissions
:visible
.
sync=
"permisssionVisible"
:data=
"editRaw"
v-if=
"permisssionVisible"
></permissions>
<permissions
:visible
.
sync=
"permisssionVisible"
:data=
"editRaw"
v-if=
"permisssionVisible"
></permissions>
</app-card>
</app-card>
...
@@ -26,6 +20,8 @@
...
@@ -26,6 +20,8 @@
<
script
>
<
script
>
// 接口
// 接口
import
{
getRoleList
,
deleteRole
}
from
'../api'
import
{
getRoleList
,
deleteRole
}
from
'../api'
import
{
roleType
,
roleTypeList
}
from
'@/utils/dictionary.js'
export
default
{
export
default
{
components
:
{
components
:
{
Editform
:
()
=>
import
(
'../components/Editform.vue'
),
Editform
:
()
=>
import
(
'../components/Editform.vue'
),
...
@@ -45,12 +41,22 @@ export default {
...
@@ -45,12 +41,22 @@ export default {
return
{
return
{
remote
:
{
remote
:
{
httpRequest
:
getRoleList
,
httpRequest
:
getRoleList
,
params
:
{
name
:
''
,
tag
:
''
}
params
:
{
name
:
''
,
purpose
:
''
}
},
},
filters
:
[{
type
:
'input'
,
prop
:
'name'
,
placeholder
:
'角色名称'
}],
filters
:
[
{
type
:
'input'
,
prop
:
'name'
,
placeholder
:
'角色名称'
},
{
type
:
'select'
,
prop
:
'purpose'
,
placeholder
:
'角色用途'
,
options
:
roleTypeList
}
],
columns
:
[
columns
:
[
{
label
:
'角色名称'
,
prop
:
'name'
},
{
label
:
'角色名称'
,
prop
:
'name'
},
{
label
:
'角色描述'
,
prop
:
'desc'
},
{
label
:
'角色描述'
,
prop
:
'desc'
},
{
label
:
'角色用途'
,
prop
:
'purpose'
,
computed
({
row
})
{
return
roleType
[
row
.
purpose
]
||
row
.
purpose
}
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'创建时间'
,
prop
:
'created_at'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
240
,
fixed
:
'right'
}
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'right'
,
width
:
240
,
fixed
:
'right'
}
]
]
...
...
src/modules/school/api.js
浏览文件 @
dd00816e
...
@@ -39,7 +39,7 @@ export function deleteOrg(data) {
...
@@ -39,7 +39,7 @@ export function deleteOrg(data) {
* 获取角色列表
* 获取角色列表
*/
*/
export
function
getRoleList
(
params
)
{
export
function
getRoleList
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v2/roles'
,
{
params
})
return
httpRequest
.
get
(
`/api/xedu/admin/v3/role/all/
${
params
.
project_id
}
`
,
{
params
})
}
}
/**
/**
...
@@ -48,3 +48,37 @@ export function getRoleList(params) {
...
@@ -48,3 +48,37 @@ export function getRoleList(params) {
export
function
getAllOrgList
(
params
)
{
export
function
getAllOrgList
(
params
)
{
return
httpRequest
.
get
(
`/api/xedu/admin/v2/organization/children/
${
params
.
project_id
}
`
,
{
params
})
return
httpRequest
.
get
(
`/api/xedu/admin/v2/organization/children/
${
params
.
project_id
}
`
,
{
params
})
}
}
/**
*
* 用户Start
* */
/**
* 获取机构用户列表
*/
export
function
getOrgUserList
(
params
)
{
return
httpRequest
.
get
(
'/api/xedu/admin/v3/org/users'
,
{
params
})
}
/**
* 创建机构用户
*/
export
function
createOrgUser
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v3/org/users'
,
data
)
}
/**
* 修改机构用户
*/
export
function
updateOrgUser
(
data
)
{
return
httpRequest
.
put
(
`/api/xedu/admin/v3/org/user/
${
data
.
id
}
`
,
data
)
}
/**
* 删除机构用户
*/
export
function
deleteOrgUser
(
data
)
{
return
httpRequest
.
post
(
'/api/xedu/admin/v3/org/user/batch-delete'
,
data
)
}
/**
*
* 用户End
* */
src/modules/school/components/Editform.vue
浏览文件 @
dd00816e
...
@@ -24,13 +24,7 @@
...
@@ -24,13 +24,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"有效期"
prop=
"validity_date"
>
<el-form-item
label=
"有效期"
prop=
"validity_date"
>
<el-date-picker
<el-date-picker
v-model=
"form.validity_date"
type=
"date"
value-format=
"yyyy-MM-dd"
:picker-options=
"pickerOptions"
placeholder=
"请选择该机构有效期"
/>
v-model=
"form.validity_date"
type=
"date"
value-format=
"yyyy-MM-dd"
:picker-options=
"pickerOptions"
placeholder=
"请选择该机构有效期"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"二级机构"
prop=
"children_ids"
>
<el-form-item
label=
"二级机构"
prop=
"children_ids"
>
<el-select
v-model=
"form.children_ids"
multiple
clearable
placeholder=
"请选择二级机构"
style=
"width: 100%"
>
<el-select
v-model=
"form.children_ids"
multiple
clearable
placeholder=
"请选择二级机构"
style=
"width: 100%"
>
...
@@ -111,8 +105,8 @@ export default {
...
@@ -111,8 +105,8 @@ export default {
methods
:
{
methods
:
{
// 获取角色列表
// 获取角色列表
getRoleList
()
{
getRoleList
()
{
getRoleList
({
limit
:
100
}).
then
(
res
=>
{
getRoleList
({
project_id
:
this
.
activeProject
.
id
,
purpose
:
2
}).
then
(
res
=>
{
this
.
roleList
=
res
.
data
.
data
this
.
roleList
=
res
.
data
})
})
},
},
// 获取所有机构列表
// 获取所有机构列表
...
@@ -129,16 +123,7 @@ export default {
...
@@ -129,16 +123,7 @@ export default {
// 确定
// 确定
onPrimary
()
{
onPrimary
()
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
const
params
=
pick
(
this
.
form
,
[
const
params
=
pick
(
this
.
form
,
[
'id'
,
'login_mobile'
,
'name'
,
'contact_name'
,
'contact_information'
,
'role_id'
,
'validity_date'
,
'children_ids'
])
'id'
,
'login_mobile'
,
'name'
,
'contact_name'
,
'contact_information'
,
'role_id'
,
'validity_date'
,
'children_ids'
])
this
.
isEdit
?
this
.
edit
(
params
)
:
this
.
create
(
params
)
this
.
isEdit
?
this
.
edit
(
params
)
:
this
.
create
(
params
)
})
})
},
},
...
...
src/modules/school/components/UserEditform.vue
0 → 100644
浏览文件 @
dd00816e
<
template
>
<el-dialog
:title=
"title"
:close-on-click-modal=
"false"
v-bind=
"$attrs"
v-on=
"$listeners"
width=
"622px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"top"
>
<el-form-item
label=
"手机号"
prop=
"mobile"
v-if=
"!isEdit"
>
<el-input
v-model=
"form.mobile"
></el-input>
</el-form-item>
<el-form-item
label=
"所属角色"
prop=
"role_ids"
>
<el-transfer
v-bind=
"transferOptions"
v-model=
"form.role_ids"
:data=
"roles"
></el-transfer>
</el-form-item>
</el-form>
<template
#
footer
>
<el-button
type=
"text"
@
click=
"onCancel"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"medium"
@
click=
"onPrimary"
>
保存
</el-button>
</
template
>
</el-dialog>
</template>
<
script
>
import
{
getRoleList
,
createOrgUser
,
updateOrgUser
}
from
'../api.js'
export
default
{
props
:
{
isEdit
:
{
type
:
Boolean
,
default
:
false
},
data
:
{
type
:
Object
,
default
:
()
=>
({})
}
},
data
()
{
return
{
roles
:
[],
// 角色列表
transferOptions
:
{
props
:
{
key
:
'id'
,
label
:
'name'
},
titles
:
[
'未选择'
,
'已选择'
]
},
form
:
{
organization_id
:
this
.
$route
.
query
.
id
,
mobile
:
''
,
role_ids
:
[]
},
rules
:
{
mobile
:
[{
required
:
true
,
message
:
'请输入手机号'
,
trigger
:
'blur'
}]
}
}
},
watch
:
{
data
:
{
immediate
:
true
,
handler
(
data
)
{
this
.
form
=
Object
.
assign
({},
this
.
form
,
data
)
if
(
data
&&
data
.
roles
)
{
this
.
form
.
role_ids
=
data
.
roles
.
map
(
item
=>
item
.
id
)
}
}
}
},
computed
:
{
activeProject
()
{
return
this
.
$store
.
state
.
activeProject
||
{}
},
title
()
{
return
this
.
isEdit
?
'修改用户'
:
'添加用户'
}
},
beforeMount
()
{
this
.
getRoleList
()
},
methods
:
{
getRoleList
()
{
getRoleList
({
project_id
:
this
.
activeProject
.
id
,
purpose
:
1
}).
then
(
res
=>
{
this
.
roles
=
res
.
data
})
},
// 取消
onCancel
()
{
this
.
$emit
(
'update:visible'
,
false
)
},
// 确定
onPrimary
()
{
this
.
$refs
.
form
.
validate
().
then
(()
=>
{
this
.
isEdit
?
this
.
edit
()
:
this
.
create
()
})
},
// 添加用户
create
()
{
const
params
=
Object
.
assign
({
project_id
:
this
.
activeProject
.
id
},
this
.
form
)
createOrgUser
(
params
).
then
(
res
=>
{
this
.
$message
.
success
(
'添加成功'
)
this
.
$emit
(
'update:visible'
,
false
)
this
.
$emit
(
'success'
,
res
.
data
)
})
},
// 编辑用户
edit
()
{
const
params
=
Object
.
assign
({},
this
.
form
)
updateOrgUser
(
params
).
then
(
res
=>
{
this
.
$message
.
success
(
'修改成功'
)
this
.
$emit
(
'update:visible'
,
false
)
this
.
$emit
(
'success'
,
res
.
data
)
})
}
}
}
</
script
>
<
style
></
style
>
src/modules/school/components/Users.vue
0 → 100644
浏览文件 @
dd00816e
<
template
>
<app-card
title=
"机构用户"
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
@
selection-change=
"handleSelectionChange"
>
<template
#
header-aside
>
<el-button
type=
"primary"
icon=
"el-icon-plus"
@
click=
"handleCreate"
>
添加用户
</el-button>
</
template
>
<
template
v-slot:table-roles=
"{ row }"
>
<el-tag
v-for=
"item in row.roles"
:key=
"item.id"
style=
"margin: 0 5px 5px 0"
>
{{
item
.
name
}}
</el-tag>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
type=
"primary"
plain
@
click=
"handleUpdate(row)"
>
编辑
</el-button>
</
template
>
<
template
#
footer
>
<el-button
type=
"primary"
@
click=
"onRemove"
:disabled=
"!multipleSelection.length"
>
删除
</el-button>
</
template
>
</app-list>
<!-- 创建/编辑 -->
<editform
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
</app-card>
</template>
<
script
>
import
{
getOrgUserList
,
deleteOrgUser
}
from
'../api'
export
default
{
components
:
{
Editform
:
()
=>
import
(
'../components/UserEditform.vue'
)
},
data
()
{
return
{
visible
:
false
,
isEdit
:
false
,
// 是否是编辑状态
editRaw
:
{},
// 编辑的数据
multipleSelection
:
[]
// 已选择的数据
}
},
computed
:
{
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
getOrgUserList
,
params
:
{
organization_id
:
this
.
$route
.
query
.
id
}
},
columns
:
[
{
type
:
'selection'
},
{
label
:
'ID'
,
prop
:
'id'
},
{
label
:
'用户名'
,
prop
:
'sso_user.realname'
,
computed
({
row
})
{
return
row
.
sso_user
.
realname
||
row
.
sso_user
.
nickname
||
row
.
sso_user
.
username
}
},
{
label
:
'手机号'
,
prop
:
'sso_user.mobile'
},
{
label
:
'角色'
,
prop
:
'roles'
,
slots
:
'table-roles'
},
{
label
:
'操作'
,
align
:
'right'
,
slots
:
'table-x'
}
]
}
}
},
methods
:
{
// 选择
handleSelectionChange
(
value
)
{
this
.
multipleSelection
=
value
},
// 创建成功刷新列表
handleSuccess
()
{
this
.
$refs
.
list
.
refetch
()
},
// 创建
handleCreate
()
{
this
.
isEdit
=
false
this
.
editRaw
=
{}
this
.
visible
=
true
},
// 编辑
handleUpdate
(
row
)
{
this
.
isEdit
=
true
this
.
editRaw
=
row
this
.
visible
=
true
},
// 删除
onRemove
()
{
this
.
$confirm
(
'用户删除请谨慎操作,确定删除?'
,
'删除用户'
,
{
confirmButtonText
:
'删除'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(
this
.
handleRemove
)
},
// 删除
handleRemove
()
{
const
ids
=
this
.
multipleSelection
.
map
(
item
=>
item
.
id
)
deleteOrgUser
({
ids
}).
then
(
res
=>
{
this
.
$message
({
type
:
'success'
,
message
:
'删除成功'
})
this
.
$refs
.
list
.
refetch
()
})
}
}
}
</
script
>
src/modules/school/views/Detail.vue
浏览文件 @
dd00816e
...
@@ -21,13 +21,7 @@
...
@@ -21,13 +21,7 @@
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<!-- 编辑 -->
<!-- 编辑 -->
<editform
<editform
:visible
.
sync=
"visible"
:isEdit=
"true"
:data=
"detail"
@
success=
"handleUpdateSuccess"
v-if=
"visible"
></editform>
:visible
.
sync=
"visible"
:isEdit=
"true"
:data=
"detail"
@
success=
"handleUpdateSuccess"
v-if=
"visible"
></editform>
</app-card>
</app-card>
<app-card
title=
"二级机构"
>
<app-card
title=
"二级机构"
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
...
@@ -42,14 +36,16 @@
...
@@ -42,14 +36,16 @@
</
template
>
</
template
>
</app-list>
</app-list>
</app-card>
</app-card>
<Users></Users>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
getOrg
}
from
'../api.js'
import
{
getOrg
}
from
'../api.js'
import
Users
from
'../components/Users.vue'
export
default
{
export
default
{
components
:
{
components
:
{
Users
,
Editform
:
()
=>
import
(
'../components/Editform.vue'
)
Editform
:
()
=>
import
(
'../components/Editform.vue'
)
},
},
data
()
{
data
()
{
...
...
src/modules/school/views/List.vue
浏览文件 @
dd00816e
...
@@ -20,13 +20,7 @@
...
@@ -20,13 +20,7 @@
</
template
>
</
template
>
</app-list>
</app-list>
<!-- 创建/编辑 -->
<!-- 创建/编辑 -->
<editform
<editform
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
:visible
.
sync=
"visible"
:isEdit=
"isEdit"
:data=
"editRaw"
@
success=
"handleSuccess"
v-if=
"visible"
></editform>
</app-card>
</app-card>
</template>
</template>
...
@@ -47,6 +41,9 @@ export default {
...
@@ -47,6 +41,9 @@ export default {
}
}
},
},
computed
:
{
computed
:
{
activeProject
()
{
return
this
.
$store
.
state
.
activeProject
||
{}
},
// 列表配置
// 列表配置
tableOptions
()
{
tableOptions
()
{
return
{
return
{
...
@@ -119,8 +116,8 @@ export default {
...
@@ -119,8 +116,8 @@ export default {
},
},
methods
:
{
methods
:
{
getRoleList
()
{
getRoleList
()
{
getRoleList
({
limit
:
100
}).
then
(
res
=>
{
getRoleList
({
project_id
:
this
.
activeProject
.
id
}).
then
(
res
=>
{
this
.
roleList
=
res
.
data
.
data
this
.
roleList
=
res
.
data
})
})
},
},
// 创建成功刷新列表
// 创建成功刷新列表
...
...
src/utils/dictionary.js
浏览文件 @
dd00816e
// json to array
export
const
json2Array
=
function
(
data
)
{
return
Object
.
keys
(
data
).
map
(
value
=>
({
label
:
data
[
value
],
value
:
parseInt
(
value
)
}))
}
// 角色用途
// 角色用途
export
const
roleType
=
{
export
const
roleType
=
{
1
:
'用户使用'
,
1
:
'用户使用'
,
2
:
'机构使用'
2
:
'机构使用'
}
}
// 角色用途列表
export
const
roleTypeList
=
json2Array
(
roleType
)
// 所属系统
export
const
system
=
{
1
:
'学校端'
,
// 2: '教师端',
3
:
'学生端'
,
4
:
'资源管理系统'
}
// 所属系统列表
export
const
systemList
=
json2Array
(
system
)
// 角色用途
export
const
permissionType
=
{
1
:
'菜单'
,
2
:
'按钮'
// 3: '功能'
}
// 角色用途列表
export
const
permissionTypeList
=
json2Array
(
roleType
)
vite.config.js
浏览文件 @
dd00816e
...
@@ -7,12 +7,7 @@ import checker from 'vite-plugin-checker'
...
@@ -7,12 +7,7 @@ import checker from 'vite-plugin-checker'
export
default
defineConfig
(({
mode
})
=>
{
export
default
defineConfig
(({
mode
})
=>
{
return
{
return
{
base
:
mode
===
'prod'
?
'https://webapp-pub.ezijing.com/website/prod/x-school-admin/'
:
'/'
,
base
:
mode
===
'prod'
?
'https://webapp-pub.ezijing.com/website/prod/x-school-admin/'
:
'/'
,
plugins
:
[
plugins
:
[
createVuePlugin
(),
checker
({
eslint
:
{
lintCommand
:
'eslint "./src/**/*.{vue,js,jsx,ts,tsx}"'
}
})],
checker
({
eslint
:
{
lintCommand
:
'eslint "./src/**/*.{vue,js,jsx,ts,tsx}"'
}
}),
createVuePlugin
()
],
server
:
{
server
:
{
open
:
true
,
open
:
true
,
host
:
'dev.ezijing.com'
,
host
:
'dev.ezijing.com'
,
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论