Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-dml
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-dml
Commits
d30bf39a
提交
d30bf39a
authored
5月 27, 2024
作者:
lhh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
2fd8592d
显示空白字符变更
内嵌
并排
正在显示
12 个修改的文件
包含
71 行增加
和
21 行删除
+71
-21
Index.vue
src/modules/material/audio/views/Index.vue
+6
-1
Index.vue
src/modules/material/card/views/Index.vue
+6
-1
Index.vue
src/modules/material/h5/views/Index.vue
+6
-1
Index.vue
src/modules/material/image/views/Index.vue
+4
-0
Index.vue
src/modules/material/mini/views/Index.vue
+6
-1
Index.vue
src/modules/material/qrcode/views/Index.vue
+6
-1
Index.vue
src/modules/material/text/views/Index.vue
+4
-0
Index.vue
src/modules/material/video/views/Index.vue
+4
-0
Index.vue
src/modules/metadata/event/views/Index.vue
+1
-4
Index.vue
src/modules/metadata/user/views/Index.vue
+1
-4
Index.vue
src/modules/user/views/Index.vue
+26
-6
permission.ts
src/utils/permission.ts
+1
-2
没有找到文件。
src/modules/material/audio/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
@@ -151,6 +155,7 @@ const deleteMembers = function (ids: string) {
:data=
"currentRow"
@
update=
"handleRefresh()"
v-if=
"updateVisible"
v-model=
"updateVisible"
></UpdateMaterialDialog>
v-model=
"updateVisible"
></UpdateMaterialDialog>
</AppCard>
</template>
src/modules/material/card/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
@@ -151,6 +155,7 @@ const deleteMembers = function (ids: string) {
:data=
"currentRow"
@
update=
"handleRefresh()"
v-if=
"updateVisible"
v-model=
"updateVisible"
></UpdateMaterialDialog>
v-model=
"updateVisible"
></UpdateMaterialDialog>
</AppCard>
</template>
src/modules/material/h5/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
@@ -151,6 +155,7 @@ const deleteMembers = function (ids: string) {
:data=
"currentRow"
@
update=
"handleRefresh()"
v-if=
"updateVisible"
v-model=
"updateVisible"
></UpdateMaterialDialog>
v-model=
"updateVisible"
></UpdateMaterialDialog>
</AppCard>
</template>
src/modules/material/image/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
src/modules/material/mini/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
@@ -151,6 +155,7 @@ const deleteMembers = function (ids: string) {
:data=
"currentRow"
@
update=
"handleRefresh()"
v-if=
"updateVisible"
v-model=
"updateVisible"
></UpdateMaterialDialog>
v-model=
"updateVisible"
></UpdateMaterialDialog>
</AppCard>
</template>
src/modules/material/qrcode/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
@@ -151,6 +155,7 @@ const deleteMembers = function (ids: string) {
:data=
"currentRow"
@
update=
"handleRefresh()"
v-if=
"updateVisible"
v-model=
"updateVisible"
></UpdateMaterialDialog>
v-model=
"updateVisible"
></UpdateMaterialDialog>
</AppCard>
</template>
src/modules/material/text/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
src/modules/material/video/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMaterialList
,
deleteMaterial
}
from
'@/api/base'
import
type
{
MaterialProp
}
from
'@/types'
import
{
ElMessage
}
from
'element-plus'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateMaterialDialog
=
defineAsyncComponent
(()
=>
import
(
'@/components/base/UpdateMaterialDialog.vue'
))
...
...
@@ -117,6 +120,7 @@ const deleteMembers = function (ids: string) {
<template
#
header-buttons
>
<el-space>
<el-button
v-if=
"!userStore.status.material_status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
...
...
src/modules/metadata/event/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,9 +4,6 @@ import { Plus } from '@element-plus/icons-vue'
import
{
ElMessageBox
,
ElMessage
}
from
'element-plus'
import
AppList
from
'@/components/base/AppList.vue'
import
{
getMetaEvent
,
getConnectionsList
,
deleteMetaEvent
}
from
'../api'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
FormDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/FormDialog.vue'
))
const
ViewDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/ViewDialog.vue'
))
...
...
@@ -119,7 +116,7 @@ const handleField = function (row: EventProp) {
<AppCard>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<el-space
v-if=
"!userStore.status.tag_status"
>
<el-space>
<el-button
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
>
新建
</el-button>
</el-space>
</
template
>
...
...
src/modules/metadata/user/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -5,9 +5,6 @@ import { ElMessageBox, ElMessage } from 'element-plus'
import
AppList
from
'@/components/base/AppList.vue'
import
{
getMemberMeta
,
deleteMemberMeta
}
from
'../api'
import
{
useMapStore
}
from
'@/stores/map'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
store
=
useMapStore
()
...
...
@@ -105,7 +102,7 @@ function handleRemove(row: UserProp) {
<AppCard>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
<el-space
v-if=
"!userStore.status.status"
>
<el-space>
<el-button
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
>
新建
</el-button>
</el-space>
</
template
>
...
...
src/modules/user/views/Index.vue
浏览文件 @
d30bf39a
...
...
@@ -4,6 +4,9 @@ import AppList from '@/components/base/AppList.vue'
import
{
getMemberList
,
deleteMember
,
getMemberConnectionsList
}
from
'../api'
import
{
ElMessage
,
ElMessageBox
,
ElLoading
}
from
'element-plus'
import
type
{
MemberProp
,
ConnectionsProp
}
from
'../types'
import
{
useUserStore
}
from
'@/stores/user'
const
userStore
=
useUserStore
()
const
UpdateDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/UpdateDialog.vue'
))
const
UploadEventsDialog
=
defineAsyncComponent
(()
=>
import
(
'../components/UploadEventsDialog.vue'
))
...
...
@@ -207,13 +210,22 @@ const downloadMember = function (isAll?: boolean) {
<template
#
header-buttons
>
<el-row
justify=
"space-between"
>
<el-space>
<el-button
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
v-permission=
"'v1-experiment-member-create'"
>
新建
</el-button>
<el-button
v-if=
"!userStore.status.status"
type=
"primary"
:icon=
"Plus"
@
click=
"handleAdd"
v-permission=
"'v1-experiment-member-create'"
>
新建
</el-button
>
<el-dropdown
v-permission=
"'v1-experiment-member-download'"
>
<el-button
type=
"primary"
:icon=
"Download"
>
导出
</el-button>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
@
click=
"downloadMember(true)"
>
全部用户数据
</el-dropdown-item>
<el-dropdown-item
:disabled=
"!multipleSelection.length"
@
click=
"downloadMember(false)"
>
勾选用户数据
</el-dropdown-item>
<el-dropdown-item
:disabled=
"!multipleSelection.length"
@
click=
"downloadMember(false)"
>
勾选用户数据
</el-dropdown-item
>
</el-dropdown-menu>
</
template
>
</el-dropdown>
...
...
@@ -226,14 +238,18 @@ const downloadMember = function (isAll?: boolean) {
</el-dropdown-menu>
</
template
>
</el-dropdown>
<el-button
type=
"primary"
@
click=
"progressVisible = true"
v-permission=
"'v1-experiment-member-tasks'"
>
数据导入进度
</el-button>
<el-button
type=
"primary"
@
click=
"progressVisible = true"
v-permission=
"'v1-experiment-member-tasks'"
>
数据导入进度
</el-button
>
<!-- <el-button type="danger" plain :icon="Delete" :disabled="!multipleSelection.length" @click="handleRemoves()" v-permission="'v1-experiment-member-delete'">删除</el-button> -->
<el-dropdown
v-permission=
"'v1-experiment-member-delete'"
>
<el-button
type=
"danger"
:icon=
"Delete"
>
删除
</el-button>
<
template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
@
click=
"handleRemoves(true)"
>
删除全部用户
</el-dropdown-item>
<el-dropdown-item
:disabled=
"!multipleSelection.length"
@
click=
"handleRemoves(false)"
>
删除勾选用户
</el-dropdown-item>
<el-dropdown-item
:disabled=
"!multipleSelection.length"
@
click=
"handleRemoves(false)"
>
删除勾选用户
</el-dropdown-item
>
</el-dropdown-menu>
</
template
>
</el-dropdown>
...
...
@@ -244,8 +260,12 @@ const downloadMember = function (isAll?: boolean) {
<
template
#
table-x=
"{ row }"
>
<el-button
type=
"primary"
plain
@
click=
"handleImage(row)"
>
画像
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleView(row)"
>
查看
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleEdit(row)"
v-permission=
"'v1-experiment-member-update'"
>
编辑
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleRemove(row)"
v-permission=
"'v1-experiment-member-delete'"
>
删除
</el-button>
<el-button
type=
"primary"
plain
@
click=
"handleEdit(row)"
v-permission=
"'v1-experiment-member-update'"
>
编辑
</el-button
>
<el-button
type=
"primary"
plain
@
click=
"handleRemove(row)"
v-permission=
"'v1-experiment-member-delete'"
>
删除
</el-button
>
<el-button
type=
"primary"
plain
@
click=
"goPage(row)"
>
事件
</el-button>
</
template
>
</AppList>
...
...
src/utils/permission.ts
浏览文件 @
d30bf39a
...
...
@@ -5,7 +5,7 @@ import type { DirectiveBinding } from 'vue'
export
function
checkPermission
(
value
:
string
|
string
[]):
boolean
{
const
userStore
=
useUserStore
()
// true 是学员且使用公共数据(学员不能自己创建数据) false 学员可以自己创建数据
// if (!userStore.
status) return true
if
(
!
userStore
.
status
.
status
||
!
userStore
.
status
.
group_status
||
!
userStore
.
status
.
material_status
||
!
userStore
.
status
.
tag_
status
)
return
true
const
permissions
=
userStore
.
permissions
if
(
Array
.
isArray
(
value
))
{
return
permissions
.
some
(
item
=>
value
.
includes
(
item
.
tag
))
...
...
@@ -13,7 +13,6 @@ export function checkPermission(value: string | string[]): boolean {
return
!!
permissions
.
find
(
item
=>
item
.
tag
===
value
)
}
}
// 权限指令
export
function
permissionDirective
(
el
:
HTMLElement
,
binding
:
DirectiveBinding
)
{
const
{
value
}
=
binding
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论