Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
bigDataSystem
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
张伯涛
bigDataSystem
Commits
14cb4be6
Commit
14cb4be6
authored
Nov 30, 2024
by
罗林杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改浏览公共资源
parent
ddbd4770
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
1094 additions
and
100 deletions
+1094
-100
index.ts
src/router/routes/index.ts
+25
-0
VisitSource.vue
src/views/OverviewMallResources/VisitSource.vue
+1
-0
index.vue
src/views/OverviewMallResources/index.vue
+117
-100
commonDataSet.data.ts
...erviewMallResources/publicResources/commonDataSet.data.ts
+41
-0
index.vue
src/views/OverviewMallResources/publicResources/index.vue
+474
-0
mock.ts
src/views/OverviewMallResources/publicResources/mock.ts
+436
-0
No files found.
src/router/routes/index.ts
View file @
14cb4be6
...
@@ -603,6 +603,30 @@ export const WorkSpaceRoute: AppRouteRecordRaw = {
...
@@ -603,6 +603,30 @@ export const WorkSpaceRoute: AppRouteRecordRaw = {
],
],
};
};
/**浏览公共资源*/
export
const
PublicResourcesRoute
:
AppRouteRecordRaw
=
{
path
:
'/overviewMallResources'
,
name
:
'OverviewMallResources'
,
component
:
LAYOUT
,
meta
:
{
title
:
'商城资源概览'
,
icon
:
''
,
hidden
:
true
,
currentActiveMenu
:
'/OverviewMallResources'
,
},
children
:
[
{
path
:
'publicResources'
,
name
:
'PublicResources'
,
component
:
()
=>
import
(
'@/views/OverviewMallResources/publicResources/index.vue'
),
meta
:
{
title
:
'浏览公共资源'
,
icon
:
''
,
},
},
],
};
/**质量规则*/
/**质量规则*/
export
const
QualityRuleRoute
:
AppRouteRecordRaw
=
{
export
const
QualityRuleRoute
:
AppRouteRecordRaw
=
{
path
:
'/dataQuality'
,
path
:
'/dataQuality'
,
...
@@ -970,6 +994,7 @@ export const basicRoutes = [
...
@@ -970,6 +994,7 @@ export const basicRoutes = [
WorkSpaceRoute
,
WorkSpaceRoute
,
CommonFileRoute
,
CommonFileRoute
,
ModelRoute
,
ModelRoute
,
PublicResourcesRoute
,
DataSourceRoute
,
DataSourceRoute
,
DataStandardRoute
,
DataStandardRoute
,
kinshipParseRoute
,
kinshipParseRoute
,
...
...
src/views/OverviewMallResources/VisitSource.vue
View file @
14cb4be6
...
@@ -77,4 +77,5 @@ const options2 = ref([
...
@@ -77,4 +77,5 @@ const options2 = ref([
},
},
])
])
</
script
>
</
script
>
src/views/OverviewMallResources/index.vue
View file @
14cb4be6
...
@@ -4,113 +4,125 @@
...
@@ -4,113 +4,125 @@
<a-input-search
<a-input-search
v-model:value=
"value"
v-model:value=
"value"
placeholder=
""
placeholder=
""
style=
"width: 700px
;
"
style=
"width: 700px"
@
search=
"onSearch"
@
search=
"onSearch"
/>
/>
<Icon
class=
"iconClass1"
icon=
"mdi:funnel"
/>
<Icon
class=
"iconClass1"
icon=
"mdi:funnel"
/>
<Icon
class=
"iconClass2"
icon=
"ant-design:folder-open-outlined"
/>
<Icon
class=
"iconClass2"
icon=
"ant-design:folder-open-outlined"
@
click=
"handleClick"
/>
</div>
</div>
<div
class=
"centent2"
>
<div
class=
"centent2"
>
<Dropdown
:trigger=
"['click']"
>
<Dropdown
:trigger=
"['click']"
>
<span
class=
"centent2-1"
@
click
.
prevent
>
<span
class=
"centent2-1"
@
click
.
prevent
>
所有资源类型
<Icon
icon=
"ant-design:caret-down-filled"
class=
"iconClass3"
/>
所有资源类型
<Icon
icon=
"ant-design:caret-down-filled"
class=
"iconClass3"
/>
</span>
</span>
<template
#
overlay
>
<template
#
overlay
>
<Menu>
<Menu>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</MenuItem>
</
template
>
</
template
>
</SubMenu>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{
item.name
}}
</span>
<span>
{{
item.name
}}
</span>
</MenuItem>
</MenuItem>
</template>
</template>
</Menu>
</Menu>
</template>
</template>
</Dropdown>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px;color: rgb(146, 153, 167);font-size: 13px"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有编目
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px;margin-left: 2px"
/>
所有编目
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
</span>
<
template
#
overlay
>
<
template
#
overlay
>
<Menu>
<Menu>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</MenuItem>
</
template
>
</
template
>
</SubMenu>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{
item.name
}}
</span>
<span>
{{
item.name
}}
</span>
</MenuItem>
</MenuItem>
</template>
</template>
</Menu>
</Menu>
</template>
</template>
</Dropdown>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px;color: rgb(146, 153, 167);font-size: 13px"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有机构
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px;margin-left: 2px"
/>
所有机构
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
</span>
<
template
#
overlay
>
<
template
#
overlay
>
<Menu>
<Menu>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</MenuItem>
</
template
>
</
template
>
</SubMenu>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{
item.name
}}
</span>
<span>
{{
item.name
}}
</span>
</MenuItem>
</MenuItem>
</template>
</template>
</Menu>
</Menu>
</template>
</template>
</Dropdown>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px;color: rgb(146, 153, 167);font-size: 13px"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有标签
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px;margin-left: 2px"
/>
所有标签
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
</span>
<
template
#
overlay
>
<
template
#
overlay
>
<Menu>
<Menu>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</MenuItem>
</
template
>
</
template
>
</SubMenu>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{
item.name
}}
</span>
<span>
{{
item.name
}}
</span>
</MenuItem>
</MenuItem>
</template>
</template>
</Menu>
</Menu>
</template>
</template>
</Dropdown>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"color: rgb(146, 153, 167);font-size: 13px"
>
<span
@
click
.
prevent
style=
"color: rgb(146, 153, 167); font-size: 13px"
>
所有发布时间
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px;margin-left: 2px"
/>
所有发布时间
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
</span>
<
template
#
overlay
>
<
template
#
overlay
>
<Menu>
<Menu>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<template
v-for=
"(item, index) in List"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<template
v-for=
"(item1,
index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</MenuItem>
</
template
>
</
template
>
</SubMenu>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{
item.name
}}
</span>
<span>
{{
item.name
}}
</span>
</MenuItem>
</MenuItem>
</template>
</template>
</Menu>
</Menu>
...
@@ -129,18 +141,18 @@
...
@@ -129,18 +141,18 @@
</div>
</div>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
'vue'
;
import
{
ref
}
from
'vue'
;
import
ResourceStatistics
from
'./ResourceStatistics.vue'
;
import
ResourceStatistics
from
'./ResourceStatistics.vue'
;
import
VisitSource
from
'./VisitSource.vue'
;
import
VisitSource
from
'./VisitSource.vue'
;
import
PopularResources
from
'./PopularResources.vue'
;
import
PopularResources
from
'./PopularResources.vue'
;
import
MyProcess
from
'./MyProcess.vue'
;
import
MyProcess
from
'./MyProcess.vue'
;
import
{
Tag
,
Card
,
Dropdown
,
Menu
,
MenuItem
,
SubMenu
}
from
'ant-design-vue'
;
import
{
Dropdown
,
Menu
,
MenuItem
,
SubMenu
}
from
'ant-design-vue'
;
import
StatisticalChart
from
'./StatisticalChart.vue'
import
StatisticalChart
from
'./StatisticalChart.vue'
;
import
Icon
from
"@/components/Icon/Icon.vue"
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
DownOutlined
}
from
'@ant-design/icons-vue
'
;
import
{
router
}
from
'@/router
'
;
const
loading
=
ref
(
false
);
const
loading
=
ref
(
false
);
const
List
=
ref
([
const
List
=
ref
([
{
{
name
:
'新建任务1'
,
name
:
'新建任务1'
,
title
:
'新建任务1'
,
title
:
'新建任务1'
,
...
@@ -153,7 +165,7 @@ const List = ref([
...
@@ -153,7 +165,7 @@ const List = ref([
name
:
'22222'
,
name
:
'22222'
,
title
:
'新建任务'
,
title
:
'新建任务'
,
},
},
]
],
},
},
{
{
name
:
'新建任务2'
,
name
:
'新建任务2'
,
...
@@ -173,40 +185,45 @@ const List = ref([
...
@@ -173,40 +185,45 @@ const List = ref([
},
},
{
{
name
:
'新建任务6'
,
name
:
'新建任务6'
,
},
]);
function
handleClick
()
{
router
.
push
({
path
:
'/overviewMallResources/publicResources'
,
});
}
}
])
setTimeout
(()
=>
{
setTimeout
(()
=>
{
loading
.
value
=
false
;
loading
.
value
=
false
;
},
1500
);
},
1500
);
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
.centent1
{
.centent1
{
display: flex;
display: flex;
justify-content: center;
justify-content: center;
margin-bottom: 20px;
margin-bottom: 20px;
.iconClass1
{
.iconClass1
{
font-size: 20px;
font-size: 20px;
color: rgb(27, 148, 243);
color: rgb(27, 148, 243);
margin-left: 5px;
margin-left: 5px;
margin-right: 5px
margin-right: 5px;
}
.iconClass2 {
font-size: 20px;
}
}
.iconClass2{
font-size: 20px
}
}
}
.centent2 {
.centent2{
display: flex;
display: flex;
justify-content: center;
justify-content: center;
margin-top: 10px;
margin-top: 10px;
margin-bottom: 20px;
margin-bottom: 20px;
.centent2-1
{
.centent2-1
{
margin-right: 20px;
margin-right: 20px;
color: rgb(146, 153, 167);
color: rgb(146, 153, 167);
font-size: 13px
font-size: 13px;
}
}
.iconClass3 {
font-size: 12px;
margin-left: 2px;
}
}
}
.iconClass3{
font-size: 12px;margin-left: 2px
}
</
style
>
</
style
>
src/views/OverviewMallResources/publicResources/commonDataSet.data.ts
0 → 100644
View file @
14cb4be6
import
{
BasicColumn
}
from
'@/components/Table'
;
export
const
Columns
:
BasicColumn
[]
=
[
{
title
:
'名称'
,
dataIndex
:
'title'
,
},
{
title
:
'部门'
,
dataIndex
:
'dept'
,
},
{
title
:
'标签'
,
dataIndex
:
'label'
,
},
{
title
:
'描述'
,
dataIndex
:
'description'
,
},
{
title
:
'创建人'
,
dataIndex
:
'createdBy'
,
},
{
title
:
'创建时间'
,
dataIndex
:
'createdTime'
,
},
{
title
:
'浏览次数'
,
dataIndex
:
'view'
,
},
{
title
:
'推送次数'
,
dataIndex
:
'edit'
,
},
{
title
:
'共享类型'
,
dataIndex
:
'isShare'
,
slots
:
{
customRender
:
'isShare'
},
},
];
src/views/OverviewMallResources/publicResources/index.vue
0 → 100644
View file @
14cb4be6
<
template
>
<div
class=
"full-page-container"
>
<PageWrapper
title=
"返回"
class=
"page-wrapper"
@
back=
"goBack"
>
<template
#
headerContent
>
<div
style=
"display: flex; justify-content: center; margin-bottom: 20px"
>
<a-input-search
v-model:value=
"params"
placeholder=
""
style=
"width: 800px"
@
search=
"onSearch"
/>
<Icon
icon=
"mdi:funnel"
style=
"font-size: 20px; color: rgb(27, 148, 243); margin-left: 5px; margin-right: 5px"
/>
<Icon
icon=
"ant-design:folder-open-outlined"
style=
"font-size: 20px"
/>
</div>
<div
class=
"centent2"
>
<Dropdown
:trigger=
"['click']"
>
<span
class=
"centent2-1"
@
click
.
prevent
>
所有资源类型
<Icon
icon=
"ant-design:caret-down-filled"
class=
"iconClass3"
/>
</span>
<template
#
overlay
>
<Menu>
<template
v-for=
"(item, index) in dataList"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1, index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</
template
>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{ item.name }}
</span>
</MenuItem>
</template>
</Menu>
</template>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有编目
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
<
template
#
overlay
>
<Menu>
<template
v-for=
"(item, index) in dataList"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1, index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</
template
>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{ item.name }}
</span>
</MenuItem>
</template>
</Menu>
</template>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有机构
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
<
template
#
overlay
>
<Menu>
<template
v-for=
"(item, index) in dataList"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1, index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</
template
>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{ item.name }}
</span>
</MenuItem>
</template>
</Menu>
</template>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"margin-right: 20px; color: rgb(146, 153, 167); font-size: 13px"
>
所有标签
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
<
template
#
overlay
>
<Menu>
<template
v-for=
"(item, index) in dataList"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1, index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</
template
>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{ item.name }}
</span>
</MenuItem>
</template>
</Menu>
</template>
</Dropdown>
<Dropdown
:trigger=
"['click']"
>
<span
@
click
.
prevent
style=
"color: rgb(146, 153, 167); font-size: 13px"
>
所有发布时间
<Icon
icon=
"ant-design:caret-down-filled"
style=
"font-size: 12px; margin-left: 2px"
/>
</span>
<
template
#
overlay
>
<Menu>
<template
v-for=
"(item, index) in dataList"
:key=
"item.title"
>
<SubMenu
:title=
"item.name"
v-if=
"item.children"
>
<template
v-for=
"(item1, index) in item.children"
>
<MenuItem
@
click=
"handleTaskModel(item1)"
>
<span>
{{
item1
.
name
}}
</span>
</MenuItem>
</
template
>
</SubMenu>
<MenuItem
@
click=
"handleTaskModel(item)"
v-else
>
<span>
{{ item.name }}
</span>
</MenuItem>
</template>
</Menu>
</template>
</Dropdown>
</div>
<div
class=
"headerContent"
>
<div
class=
"buttonGroup"
>
<Segmented
v-model:value=
"value"
:options=
"data"
>
<
template
#
label=
"{ payload, value: segmentValue }"
>
<div
class=
"icon-container"
>
<Icon
:icon=
"payload.icon"
:size=
"24"
:color=
"segmentValue === value ? '#007bff' : '#8c8c8c'"
/>
</div>
</
template
>
</Segmented>
<div
class=
"search"
>
<div>
<Select
:options=
"[
{ label: '最近发布', value: 'earliest' },
{ label: '最高热度', value: 'highFire' },
{ label: '共享热度', value: 'latest' },
]"
v-model:value=
"sortOrder"
style=
"width: 150px; margin-left: 10px"
@
change=
"onSearch"
/>
</div>
</div>
</div>
</div>
</template>
<List
v-if=
"value === 'cardList'"
>
<Row
:gutter=
"16"
>
<
template
v-for=
"item in cardListData"
:key=
"item.title"
>
<Col
:span=
"8"
>
<ListItem>
<Card
:hoverable=
"true"
@
click=
"handleNewModal(item.scene)"
style=
"height: 250px; width: 400px; position: relative"
>
<div
style=
"display: flex; justify-content: space-between"
>
<div
style=
"display: flex; align-items: center; gap: 5px"
>
<div
style=
"display: flex"
>
<Icon
size=
"23"
v-if=
"item.icon"
:icon=
"item.icon"
:color=
"item.color"
/>
</div>
<div>
<span
class=
"card-title"
>
{{
item
.
title
}}
</span>
</div>
</div>
<div
style=
"display: flex; align-items: center; gap: 5px"
>
<span
class=
"card-dept"
>
{{
item
.
dept
}}
</span>
</div>
</div>
<div
class=
"card-description"
>
{{
item
.
description
}}
</div>
<div
class=
"cardFooter"
style=
"position: absolute; bottom: 0; left: 0; right: 0"
>
<div
style=
"padding-left: 5px; padding-bottom: 5px"
>
<Tag
style=
"padding: 2px 10px"
>
{{
item
.
label
}}
</Tag>
</div>
<div
style=
"display: flex; justify-content: space-between; color: gray"
>
<span>
{{
item
.
createdBy
}}
</span>
<span>
{{
item
.
createdTime
}}
</span>
</div>
<Divider
style=
"margin: 9px 0"
/>
<div
style=
"display: flex; justify-content: space-between; color: gray"
>
<span
v-if=
"item.isShare"
>
有条件共享
</span>
<span
v-else
>
无条件共享
</span>
<div>
<a-button
style=
"padding: 0; border: none; box-shadow: none"
>
<Icon
icon=
"icon-park-outline:eyes"
/>
{{
item
.
view
}}
</a-button
>
<Divider
type=
"vertical"
/>
<a-button
style=
"padding: 0; border: none; box-shadow: none"
>
<Icon
icon=
"icon-park-outline:hand-up"
/>
{{
item
.
edit
}}
</a-button
>
</div>
</div>
</div>
</Card>
</ListItem>
</Col>
</
template
>
</Row>
</List>
<BasicTable
v-else
@
register=
"registerTable"
>
<
template
#
isShare=
"{ text }"
>
<span
v-if=
"text === 'true'"
>
有条件共享
</span>
<span
v-else
>
无条件共享
</span>
</
template
>
</BasicTable>
<Pagination
style=
"display: flex; justify-content: end"
size=
"small"
:total=
"6"
show-size-changer
show-quick-jumper
/>
</PageWrapper>
</div>
</template>
<
script
lang=
"ts"
setup
>
import
{
BasicTable
,
useTable
}
from
'@/components/Table'
;
import
{
Pagination
,
Segmented
,
Card
,
Row
,
Col
,
List
,
ListItem
,
Tag
,
Divider
,
Select
,
MenuItem
,
Menu
,
SubMenu
,
Dropdown
,
}
from
'ant-design-vue'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
onMounted
,
ref
,
reactive
}
from
'vue'
;
import
{
cardList
,
dataList
}
from
'./mock'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useRouter
}
from
'vue-router'
;
import
{
Columns
}
from
'./commonDataSet.data'
;
import
{
router
}
from
'@/router'
;
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
route
=
useRouter
();
const
value
=
ref
(
'cardList'
);
const
params
=
ref
(
''
);
const
selectValue
=
ref
(
''
);
const
sortOrder
=
ref
(
'latest'
);
const
selectedCard
=
reactive
([]
as
any
[]);
const
cardListData
=
ref
([]);
const
workSpaceName
=
ref
(
'党建建设'
);
const
data
=
ref
([
{
value
:
'cardList'
,
payload
:
{
icon
:
'mingcute:grid-fill'
,
},
},
{
value
:
'table'
,
payload
:
{
icon
:
'typcn:th-list'
,
},
},
]);
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
async
()
=>
{
onSearch
();
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
cardListData
.
value
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
return
{
...
response
,
data
:
cardListData
.
value
};
},
columns
:
Columns
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
pagination
:
false
,
bordered
:
true
,
canResize
:
false
,
//取消自适应 取消滚动条
});
function
handleNewModal
(
scene
:
string
)
{}
function
goBack
()
{
router
.
back
();
}
function
onSearch
()
{
let
filteredList
=
cardList
.
filter
((
item
)
=>
{
const
titleMatch
=
item
.
title
.
toLowerCase
().
includes
(
params
.
value
.
toLowerCase
());
const
shareMatch
=
selectValue
.
value
===
''
?
true
:
item
.
isShare
.
toString
()
===
selectValue
.
value
;
const
workspaceMatch
=
workSpaceName
.
value
===
''
||
workSpaceName
.
value
===
'公共数据集'
||
item
.
parentWorkSpaceName
===
workSpaceName
.
value
;
console
.
log
(
'workSpaceName.value'
,
workSpaceName
.
value
);
console
.
log
(
'item.parentWorkSpaceName'
,
item
.
parentWorkSpaceName
);
console
.
log
(
'item.parentWorkSpaceName'
,
item
.
title
);
return
titleMatch
&&
shareMatch
&&
workspaceMatch
;
});
if
(
sortOrder
.
value
===
'earliest'
)
{
filteredList
.
sort
(
(
a
,
b
)
=>
new
Date
(
b
.
createdTime
).
getTime
()
-
new
Date
(
a
.
createdTime
).
getTime
(),
);
}
else
if
(
sortOrder
.
value
===
'latest'
)
{
filteredList
.
sort
(
(
a
,
b
)
=>
new
Date
(
a
.
createdTime
).
getTime
()
-
new
Date
(
b
.
createdTime
).
getTime
(),
);
}
else
if
(
sortOrder
.
value
===
'highFire'
)
{
filteredList
.
sort
((
a
,
b
)
=>
b
.
view
-
a
.
view
);
}
cardListData
.
value
=
filteredList
;
reload
();
}
onMounted
(()
=>
{
onSearch
();
});
</
script
>
<
style
lang=
"scss"
scoped
>
html
,
body
{
height
:
100%
;
margin
:
0
;
padding
:
0
;
}
.full-page-container
{
display
:
flex
;
height
:
100%
;
}
.group-tree
{
width
:
250px
;
background-color
:
#f0f0f0
;
}
.page-wrapper
{
flex
:
1
;
min-height
:
860px
;
padding
:
20px
;
background-color
:
#ffffff
;
}
.headerContent
{
display
:
flex
;
align-items
:
center
;
.title
{
font-size
:
16px
;
font-weight
:
bold
;
}
.path
{
font-size
:
14px
;
color
:
gray
;
}
.buttonGroup
{
margin-left
:
auto
;
display
:
flex
;
gap
:
5px
;
align-items
:
center
;
}
}
.icon-container
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
width
:
32px
;
height
:
32px
;
}
.sceneSelectionIcon
{
transition
:
color
0
.3s
ease
;
}
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
}
.card-dept
{
font-size
:
12px
;
color
:
gray
;
}
.card-description
{
margin-top
:
10px
;
color
:
gray
;
}
.cardFooter
{
padding
:
10px
;
}
.search
{
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.centent1
{
display
:
flex
;
justify-content
:
center
;
margin-bottom
:
20px
;
.iconClass1
{
font-size
:
20px
;
color
:
rgb
(
27
,
148
,
243
);
margin-left
:
5px
;
margin-right
:
5px
;
}
.iconClass2
{
font-size
:
20px
;
}
}
.centent2
{
display
:
flex
;
justify-content
:
center
;
margin-top
:
10px
;
margin-bottom
:
20px
;
.centent2-1
{
margin-right
:
20px
;
color
:
rgb
(
146
,
153
,
167
);
font-size
:
13px
;
}
}
.iconClass3
{
font-size
:
12px
;
margin-left
:
2px
;
}
</
style
>
src/views/OverviewMallResources/publicResources/mock.ts
0 → 100644
View file @
14cb4be6
import
{
ref
}
from
"vue"
;
export
const
tableList
:
any
[]
=
[
{
businessId
:
1
,
name
:
'图标加载'
,
scene
:
'离线加载'
,
releaseStatus
:
'未发布'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:04'
,
owner
:
'admin'
,
workgroup
:
'个人工作组'
,
},
{
businessId
:
2
,
name
:
'图标专利文件加载'
,
scene
:
'离线加载'
,
releaseStatus
:
'未发布'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:05'
,
owner
:
'admin'
,
workgroup
:
'个人工作组'
,
},
{
businessId
:
3
,
name
:
'版权证书加载'
,
scene
:
'离线加载'
,
releaseStatus
:
'已下线'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:04'
,
owner
:
'admin'
,
workgroup
:
'个人工作组'
,
},
{
businessId
:
4
,
name
:
'学生成绩表格'
,
scene
:
'文件加载'
,
releaseStatus
:
'已发布'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:05'
,
owner
:
'admin'
,
workgroup
:
'共享工作组'
,
},
{
businessId
:
5
,
name
:
'各科试卷加载'
,
scene
:
'文件加载'
,
releaseStatus
:
'已发布'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:05'
,
owner
:
'admin'
,
workgroup
:
'共享工作组'
,
},
{
businessId
:
6
,
name
:
'学生个人信息加载'
,
scene
:
'准实时加载'
,
releaseStatus
:
'已发布'
,
createTime
:
'2023/05/23 14:36:04'
,
updateTime
:
'2023/05/23 14:36:04'
,
owner
:
'admin'
,
workgroup
:
'共享工作组'
,
},
];
export
const
TreeData
:
any
[]
=
[
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
100
,
parentWorkSpaceName
:
'公共数据集'
,
workSpaceName
:
'公共数据集'
,
parentId
:
0
,
'code:'
:
'001'
,
ancestors
:
'0'
,
orderNum
:
0
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
101
,
parentWorkSpaceName
:
'公共数据集'
,
workSpaceName
:
'党建建设'
,
parentId
:
100
,
'code:'
:
'002'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
201
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'基本信息'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
202
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'党员发展计划'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
203
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'主题教育活动'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
204
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'党建工作总结'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
205
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'党史知识竞赛'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
206
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'红色文化展览'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
207
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'志愿服务活动'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
208
,
parentWorkSpaceName
:
'党建建设'
,
workSpaceName
:
'党员风采展示'
,
parentId
:
101
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
102
,
parentWorkSpaceName
:
'公共数据集'
,
workSpaceName
:
'交通信息'
,
parentId
:
100
,
'code:'
:
'004'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
209
,
parentWorkSpaceName
:
'交通信息'
,
workSpaceName
:
'城市公交优化方案'
,
parentId
:
102
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
210
,
parentWorkSpaceName
:
'交通信息'
,
workSpaceName
:
'智能交通系统部署'
,
parentId
:
102
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
{
delFlag
:
'0'
,
flag
:
'1'
,
businessId
:
211
,
parentWorkSpaceName
:
'交通信息'
,
workSpaceName
:
'绿色出行倡议'
,
parentId
:
102
,
'code:'
:
'003'
,
ancestors
:
'0,100'
,
orderNum
:
1
,
children
:
[],
selectType
:
null
,
createTime
:
'2024-10-24 10:04:04'
,
createBy
:
'admin'
,
},
];
export
const
cardList
=
[
{
title
:
'基本信息'
,
scene
:
'databaseOfflineLoading'
,
parentWorkSpaceName
:
'党建建设'
,
icon
:
'majesticons:table'
,
color
:
'#71c8d5'
,
dept
:
'数据资源管理部'
,
description
:
'集团党委会、党委理论学习中心的学习会的组织实操、集团党委、纪委换届选举'
,
label
:
'其他'
,
createdBy
:
'admin'
,
createdTime
:
'2023/01/05 15:43:15'
,
view
:
'85'
,
edit
:
'2'
,
isShare
:
'true'
,
},
{
title
:
'党员发展计划'
,
scene
:
'partyDevelopmentPlan'
,
parentWorkSpaceName
:
'党建建设'
,
icon
:
'majesticons:table'
,
color
:
'#71c8d5'
,
dept
:
'组织人事部'
,
description
:
'制定年度党员发展计划,开展入党积极分子培训'
,
label
:
'计划'
,
createdBy
:
'admin'
,
createdTime
:
'2023/02/10 09:20:30'
,
view
:
'120'
,
edit
:
'5'
,
isShare
:
'true'
,
},
{
title
:
'主题教育活动'
,
scene
:
'themeEducationActivity'
,
parentWorkSpaceName
:
'党建建设'
,
icon
:
'majesticons:table'
,
color
:
'#71c8d5'
,
dept
:
'宣传部'
,
description
:
'举办各类主题教育活动,增强党员意识'
,
label
:
'活动'
,
createdBy
:
'admin'
,
createdTime
:
'2023/03/15 14:45:45'
,
view
:
'95'
,
edit
:
'3'
,
isShare
:
'false'
,
},
{
title
:
'党建工作总结'
,
scene
:
'partyWorkSummary'
,
parentWorkSpaceName
:
'党建建设'
,
icon
:
'majesticons:table'
,
color
:
'#71c8d5'
,
dept
:
'办公室'
,
description
:
'撰写季度党建工作总结报告'
,
label
:
'总结'
,
createdBy
:
'admin'
,
createdTime
:
'2023/08/10 09:00:00'
,
view
:
'80'
,
edit
:
'1'
,
isShare
:
'true'
,
},
{
title
:
'党史知识竞赛'
,
scene
:
'partyHistoryQuiz'
,
parentWorkSpaceName
:
'党建建设'
,
icon
:
'majesticons:table'
,
color
:
'#71c8d5'
,
dept
:
'宣传教育中心'
,
description
:
'组织党史知识竞赛,提升党员历史素养'
,
label
:
'竞赛'
,
createdBy
:
'admin'
,
createdTime
:
'2023/05/25 16:30:15'
,
view
:
'110'
,
edit
:
'4'
,
isShare
:
'false'
,
},
{
title
:
'公交优化方案'
,
scene
:
'urbanBusOptimization'
,
parentWorkSpaceName
:
'交通信息'
,
icon
:
'majesticons:bus'
,
color
:
'#71c8d5'
,
dept
:
'交通规划部'
,
description
:
'分析现有公交线路运行情况,提出优化建议以提高效率和乘客满意度。'
,
label
:
'方案'
,
createdBy
:
'admin'
,
createdTime
:
'2023/04/01 10:00:00'
,
view
:
'90'
,
edit
:
'3'
,
isShare
:
'true'
,
},
{
title
:
'交通系统部署'
,
scene
:
'intelligentTransportSystemDeployment'
,
icon
:
'majesticons:bus'
,
parentWorkSpaceName
:
'交通信息'
,
color
:
'#71c8d5'
,
dept
:
'信息技术部'
,
description
:
'实施先进的智能交通管理系统,包括信号灯控制、交通流量监测等,旨在缓解城市交通拥堵。'
,
label
:
'技术'
,
createdBy
:
'admin'
,
createdTime
:
'2023/05/15 11:30:00'
,
view
:
'115'
,
edit
:
'5'
,
isShare
:
'false'
,
},
{
title
:
'绿色出行倡议'
,
scene
:
'greenCommuteInitiative'
,
icon
:
'majesticons:bus'
,
parentWorkSpaceName
:
'交通信息'
,
color
:
'#71c8d5'
,
dept
:
'环保与发展部'
,
description
:
'推广低碳环保的出行方式,如骑行和步行,并为市民提供相关设施支持。'
,
label
:
'倡议'
,
createdBy
:
'admin'
,
createdTime
:
'2023/09/28 14:00:00'
,
view
:
'75'
,
edit
:
'2'
,
isShare
:
'true'
,
},
];
export
const
dataList
=
ref
([
{
name
:
'新建任务1'
,
title
:
'新建任务1'
,
children
:
[
{
name
:
'11111'
,
title
:
'新建任务'
,
},
{
name
:
'22222'
,
title
:
'新建任务'
,
},
],
},
{
name
:
'新建任务2'
,
title
:
'新建任务2'
,
},
{
name
:
'新建任务3'
,
title
:
'新建任务3'
,
},
{
name
:
'新建任务4'
,
title
:
'新建任务4'
,
},
{
name
:
'新建任务5'
,
title
:
'新建任务5'
,
},
{
name
:
'新建任务6'
,
},
]);
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