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
ca63ef0e
Commit
ca63ef0e
authored
Dec 06, 2024
by
chenjiahao
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
f6ce19da
9ff61fe8
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1423 additions
and
60 deletions
+1423
-60
index.ts
src/router/routes/index.ts
+10
-0
databaseOfflineLoading.vue
...tion/dataLoading/dataEntryLake/databaseOfflineLoading.vue
+1
-0
label.data.ts
src/views/dataStandards/labelDropInspection/label.data.ts
+2
-2
labelData.ts
src/views/dataStandards/labelDropInspection/labelData.ts
+4
-4
AddStandardModel.vue
...ards/labelDropInspection/labelDetail/AddStandardModel.vue
+66
-0
detail.data.ts
...aStandards/labelDropInspection/labelDetail/detail.data.ts
+55
-1
index.vue
...s/dataStandards/labelDropInspection/labelDetail/index.vue
+9
-1
index.vue
.../mallResourceDevelopment/dataSet/dataSetByApply/index.vue
+2
-2
datasetByCreateDetail.vue
...lopment/dataSet/datasetByCreate/datasetByCreateDetail.vue
+1
-2
index.vue
src/views/mallResourceDevelopment/file/fileByApply/index.vue
+2
-2
GroupTree.vue
...s/mallResourceDevelopment/file/fileByCreate/GroupTree.vue
+1
-1
addFileModal.vue
...allResourceDevelopment/file/fileByCreate/addFileModal.vue
+2
-2
data.ts
src/views/mallResourceDevelopment/file/fileByCreate/data.ts
+257
-0
dataFileData.ts
...mallResourceDevelopment/file/fileByCreate/dataFileData.ts
+460
-0
editFileModal.vue
...llResourceDevelopment/file/fileByCreate/editFileModal.vue
+1
-1
fileByCreateDetail.vue
...ourceDevelopment/file/fileByCreate/fileByCreateDetail.vue
+303
-0
index.vue
...views/mallResourceDevelopment/file/fileByCreate/index.vue
+98
-41
newFolder.vue
...s/mallResourceDevelopment/file/fileByCreate/newFolder.vue
+1
-1
versionPublishModal.vue
...urceDevelopment/file/fileByCreate/versionPublishModal.vue
+148
-0
No files found.
src/router/routes/index.ts
View file @
ca63ef0e
...
@@ -269,6 +269,16 @@ export const MallSourceFileRoute: AppRouteRecordRaw = {
...
@@ -269,6 +269,16 @@ export const MallSourceFileRoute: AppRouteRecordRaw = {
icon
:
''
,
icon
:
''
,
},
},
},
},
{
path
:
'fileByCreate/fileByCreateDetail'
,
name
:
'fileByCreateDetail'
,
component
:
()
=>
import
(
'@/views/mallResourceDevelopment/file/fileByCreate/fileByCreateDetail.vue'
),
meta
:
{
title
:
'我创建的文件详情'
,
icon
:
''
,
},
},
],
],
};
};
...
...
src/views/dataIntegration/dataLoading/dataEntryLake/databaseOfflineLoading.vue
View file @
ca63ef0e
...
@@ -776,6 +776,7 @@
...
@@ -776,6 +776,7 @@
label
:
'元数据类型'
,
label
:
'元数据类型'
,
component
:
'Input'
,
component
:
'Input'
,
required
:
true
,
required
:
true
,
defaultValue
:
'Table,View'
,
componentProps
:
{
componentProps
:
{
placeholder
:
'以,分隔输入元数据类型'
,
placeholder
:
'以,分隔输入元数据类型'
,
},
},
...
...
src/views/dataStandards/labelDropInspection/label.data.ts
View file @
ca63ef0e
...
@@ -121,8 +121,8 @@ export const addLabelModelFormSchemas: FormSchema[] = [
...
@@ -121,8 +121,8 @@ export const addLabelModelFormSchemas: FormSchema[] = [
value
:
'基础标准'
,
value
:
'基础标准'
,
},
},
{
{
label
:
'
数据
标准'
,
label
:
'
指标
标准'
,
value
:
'
数据
标准'
,
value
:
'
指标
标准'
,
},
},
],
],
},
},
...
...
src/views/dataStandards/labelDropInspection/labelData.ts
View file @
ca63ef0e
...
@@ -66,28 +66,28 @@ export const labelTableData = [
...
@@ -66,28 +66,28 @@ export const labelTableData = [
{
{
businessId
:
1
,
businessId
:
1
,
name
:
'客户编号'
,
name
:
'客户编号'
,
type
:
'
数据
标准'
,
type
:
'
基础
标准'
,
uploadFlag
:
'已下线'
,
uploadFlag
:
'已下线'
,
updateTime
:
'2022/10/27 12:14:41'
,
updateTime
:
'2022/10/27 12:14:41'
,
},
},
{
{
businessId
:
2
,
businessId
:
2
,
name
:
'指标落标test'
,
name
:
'指标落标test'
,
type
:
'
数据
标准'
,
type
:
'
基础
标准'
,
uploadFlag
:
'已下线'
,
uploadFlag
:
'已下线'
,
updateTime
:
'2022/10/26 17:57:08'
,
updateTime
:
'2022/10/26 17:57:08'
,
},
},
{
{
businessId
:
3
,
businessId
:
3
,
name
:
'主数据标志落标'
,
name
:
'主数据标志落标'
,
type
:
'
数据
标准'
,
type
:
'
基础
标准'
,
uploadFlag
:
'已下线'
,
uploadFlag
:
'已下线'
,
updateTime
:
'2022/10/26 18:20:41'
,
updateTime
:
'2022/10/26 18:20:41'
,
},
},
{
{
businessId
:
4
,
businessId
:
4
,
name
:
'客户详细地址'
,
name
:
'客户详细地址'
,
type
:
'
数据
标准'
,
type
:
'
基础
标准'
,
uploadFlag
:
'已上线'
,
uploadFlag
:
'已上线'
,
updateTime
:
'2022/10/26 16:53:45'
,
updateTime
:
'2022/10/26 16:53:45'
,
},
},
...
...
src/views/dataStandards/labelDropInspection/labelDetail/AddStandardModel.vue
0 → 100644
View file @
ca63ef0e
<
template
>
<!-- 添加数据标准 弹窗 -->
<BasicModal
v-bind=
"$attrs"
@
register=
"registerModal"
showFooter
title=
"添加数据标准"
width=
"60%"
@
ok=
"handleSubmit"
>
<BasicTable
@
register=
"registerTable"
/>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
useMessage
}
from
"@/hooks/web/useMessage"
;
import
{
BasicTable
,
useTable
}
from
"@/components/Table"
;
import
{
dataStandardListData
,
dataStandardColumns
,
}
from
"@/views/dataStandards/labelDropInspection/labelDetail/detail.data.ts"
defineOptions
({
name
:
'AddStandardModel'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
//初始化表格
const
[
registerTable
,
{
reload
}]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNum
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
dataStandardListData
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
return
{...
response
,
data
:
dataStandardListData
};
},
pagination
:
false
,
columns
:
dataStandardColumns
,
rowKey
:
'id'
,
rowSelection
:
true
,
useSearchForm
:
false
,
scroll
:
{
y
:
300
,
},
editRow
:
true
,
showTableSetting
:
false
,
bordered
:
true
,
showIndexColumn
:
false
,
});
// 初始化弹窗
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
setModalProps
({
loading
:
false
,
confirmLoading
:
false
});
});
/** 确认按钮 */
async
function
handleSubmit
()
{
createMessage
.
success
(
'添加成功'
);
closeModal
()
}
</
script
>
src/views/dataStandards/labelDropInspection/labelDetail/detail.data.ts
View file @
ca63ef0e
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
FormSchema
}
from
'@/components/Form'
;
import
{
BasicColumn
}
from
"@/components/Table"
;
import
{
BasicColumn
}
from
"@/components/Table"
;
import
{
TableColumn
}
from
"ant-design-vue"
;
export
const
detailFormSchema
:
FormSchema
[]
=
[
export
const
detailFormSchema
:
FormSchema
[]
=
[
{
{
...
@@ -260,3 +259,58 @@ export const importFormSchema: FormSchema[] = [
...
@@ -260,3 +259,58 @@ export const importFormSchema: FormSchema[] = [
},
},
},
},
];
];
// 添加数据标准 弹窗表头数据
export
const
dataStandardColumns
:
BasicColumn
[
any
]
=
[
{
title
:
'标准中文名称'
,
dataIndex
:
'standardName'
,
width
:
150
,
},
{
title
:
'标准编号'
,
dataIndex
:
'standardNumber'
,
width
:
150
,
},
{
title
:
'业务定义'
,
dataIndex
:
'businessDefinition'
,
width
:
150
,
},
{
title
:
'权属工作组'
,
dataIndex
:
'workGroup'
,
width
:
150
,
},
]
// 添加数据标准 弹窗列表数据
export
const
dataStandardListData
:
any
[]
=
[
{
"id"
:
1
,
"standardName"
:
"对外投资出资方式"
,
"standardNumber"
:
"BAS000004"
,
"businessDefinition"
:
"对外投资出资方式"
,
"workGroup"
:
"个人工作区"
,
},
{
"id"
:
2
,
"standardName"
:
"对外投资控股标志"
,
"standardNumber"
:
"BAS000005"
,
"businessDefinition"
:
"对外投资控股标志"
,
"workGroup"
:
"个人工作区"
,
},
{
"id"
:
3
,
"standardName"
:
"对外投资企业证明"
,
"standardNumber"
:
"BAS000006"
,
"businessDefinition"
:
"对外投资企业证明"
,
"workGroup"
:
"个人工作区"
,
},
{
"id"
:
4
,
"standardName"
:
"zy_basic_standard"
,
"standardNumber"
:
"BAS000007"
,
"businessDefinition"
:
"zy_basic_standard"
,
"workGroup"
:
"共享工作区"
,
},
];
src/views/dataStandards/labelDropInspection/labelDetail/index.vue
View file @
ca63ef0e
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
@
click=
"handleDelete"
@
click=
"handleDelete"
><DeleteOutlined
><DeleteOutlined
/></a-button>
/></a-button>
<a-button
:disabled=
"disabled"
type=
"primary"
>
添加数据标准
</a-button>
<a-button
:disabled=
"disabled"
type=
"primary"
@
click=
"addDataStandard()"
>
添加数据标准
</a-button>
</
template
>
</
template
>
<
template
#
standard=
"{ text, record }"
>
<
template
#
standard=
"{ text, record }"
>
<a
@
click=
"handleTableName"
>
{{
text
}}
</a>
<a
@
click=
"handleTableName"
>
{{
text
}}
</a>
...
@@ -94,6 +94,7 @@
...
@@ -94,6 +94,7 @@
</template>
</template>
<ExcelModel
@
register=
"excelModel"
/>
<ExcelModel
@
register=
"excelModel"
/>
<AddMetadataModel
@
register=
"addMetadataModel"
/>
<AddMetadataModel
@
register=
"addMetadataModel"
/>
<AddStandardModel
@
register=
"addStandardModel"
/>
</PageWrapper>
</PageWrapper>
</template>
</template>
...
@@ -123,6 +124,7 @@
...
@@ -123,6 +124,7 @@
}
from
'@/views/dataStandards/labelDropInspection/labelDetail/detailData'
;
}
from
'@/views/dataStandards/labelDropInspection/labelDetail/detailData'
;
import
ExcelModel
from
'./excelModel.vue'
;
import
ExcelModel
from
'./excelModel.vue'
;
import
AddMetadataModel
from
'./addMetadataModel.vue'
;
import
AddMetadataModel
from
'./addMetadataModel.vue'
;
import
AddStandardModel
from
'./AddStandardModel.vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
{
createMessage
,
createConfirm
}
=
useMessage
();
...
@@ -168,8 +170,14 @@
...
@@ -168,8 +170,14 @@
path
:
'/dataQuality/dataSheet/task/taskOperation'
,
path
:
'/dataQuality/dataSheet/task/taskOperation'
,
});
});
}
}
/** 添加数据标准 弹窗 */
function
addDataStandard
()
{
openAddStandardModel
(
true
,
{});
}
const
[
excelModel
,
{
openModal
:
openExcelModal
}]
=
useModal
();
const
[
excelModel
,
{
openModal
:
openExcelModal
}]
=
useModal
();
const
[
addMetadataModel
,
{
openModal
:
openAddMetadataModel
}]
=
useModal
();
const
[
addMetadataModel
,
{
openModal
:
openAddMetadataModel
}]
=
useModal
();
const
[
addStandardModel
,
{
openModal
:
openAddStandardModel
}]
=
useModal
();
const
[
registerForm
,
{
setFieldsValue
,
getFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
const
[
registerForm
,
{
setFieldsValue
,
getFieldsValue
,
updateSchema
,
resetFields
,
validate
}]
=
useForm
({
useForm
({
labelWidth
:
100
,
labelWidth
:
100
,
...
...
src/views/mallResourceDevelopment/dataSet/dataSetByApply/index.vue
View file @
ca63ef0e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<template
#
headerContent
>
<template
#
headerContent
>
<div
class=
"modal_top"
>
<div
class=
"modal_top"
>
<div>
<div>
<Icon
icon=
"hugeicons:file-euro"
:size=
"
5
0"
:color=
"'#64c6e9'"
/>
<Icon
icon=
"hugeicons:file-euro"
:size=
"
4
0"
:color=
"'#64c6e9'"
/>
</div>
</div>
<div>
<div>
<div
class=
"title"
>
我申请的
</div>
<div
class=
"title"
>
我申请的
</div>
...
@@ -172,7 +172,7 @@
...
@@ -172,7 +172,7 @@
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
.title
{
.title
{
font-size
:
25
px
;
font-size
:
18
px
;
font-weight
:
500
;
font-weight
:
500
;
margin-left
:
10px
;
margin-left
:
10px
;
margin-top
:
20px
;
margin-top
:
20px
;
...
...
src/views/mallResourceDevelopment/dataSet/datasetByCreate/datasetByCreateDetail.vue
View file @
ca63ef0e
...
@@ -182,8 +182,7 @@
...
@@ -182,8 +182,7 @@
const
ATabs
=
Tabs
;
const
ATabs
=
Tabs
;
const
ATabPane
=
Tabs
.
TabPane
;
const
ATabPane
=
Tabs
.
TabPane
;
const
currentKey
=
ref
(
'1'
);
const
currentKey
=
ref
(
'1'
);
const
{
setTitle
}
=
useTabs
();
setTitle
(
'数据集详情'
);
const
[
registerVersionPublishModal
,
{
openModal
:
openVersionPublishModal
}]
=
useModal
();
const
[
registerVersionPublishModal
,
{
openModal
:
openVersionPublishModal
}]
=
useModal
();
const
[
registerTable
]
=
useTable
({
const
[
registerTable
]
=
useTable
({
...
...
src/views/mallResourceDevelopment/file/fileByApply/index.vue
View file @
ca63ef0e
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<template
#
headerContent
>
<template
#
headerContent
>
<div
class=
"modal_top"
>
<div
class=
"modal_top"
>
<div>
<div>
<Icon
icon=
"hugeicons:file-euro"
:size=
"
5
0"
:color=
"'#64c6e9'"
/>
<Icon
icon=
"hugeicons:file-euro"
:size=
"
4
0"
:color=
"'#64c6e9'"
/>
</div>
</div>
<div>
<div>
<div
class=
"title"
>
我申请的
</div>
<div
class=
"title"
>
我申请的
</div>
...
@@ -172,7 +172,7 @@
...
@@ -172,7 +172,7 @@
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
.title
{
.title
{
font-size
:
25
px
;
font-size
:
18
px
;
font-weight
:
500
;
font-weight
:
500
;
margin-left
:
10px
;
margin-left
:
10px
;
margin-top
:
20px
;
margin-top
:
20px
;
...
...
src/views/mallResourceDevelopment/file/fileByCreate/GroupTree.vue
View file @
ca63ef0e
<
template
>
<
template
>
<div
class=
"
m-5 mr-0
overflow-hidden bg-white"
>
<div
class=
"overflow-hidden bg-white"
>
<BasicTree
<BasicTree
title=
""
title=
""
ref=
"treeRef"
ref=
"treeRef"
...
...
src/views/mallResourceDevelopment/file/fileByCreate/addFileModal.vue
View file @
ca63ef0e
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicModal
,
useModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
addFileFormSchema
}
from
'./data'
;
import
{
addFileFormSchema
}
from
'./data'
;
import
{
TreeData
}
from
'./dataFileData'
;
import
{
newFile
TreeData
}
from
'./dataFileData'
;
import
EditFileModal
from
'./editFileModal.vue'
;
import
EditFileModal
from
'./editFileModal.vue'
;
defineOptions
({
name
:
'AccountModal'
});
defineOptions
({
name
:
'AccountModal'
});
...
@@ -49,7 +49,7 @@
...
@@ -49,7 +49,7 @@
});
});
}
}
title
.
value
=
data
.
title
;
title
.
value
=
data
.
title
;
const
treeList
=
handleTree
(
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
);
const
treeList
=
handleTree
(
newFile
TreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
);
updateSchema
([
updateSchema
([
{
{
field
:
'path'
,
field
:
'path'
,
...
...
src/views/mallResourceDevelopment/file/fileByCreate/data.ts
View file @
ca63ef0e
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
BasicColumn
,
FormSchema
}
from
'@/components/Table'
;
import
{
DescItem
}
from
'@/components/Description'
;
import
{
h
,
VNodeChild
}
from
'vue'
;
export
const
columns
:
BasicColumn
[]
=
[
export
const
columns
:
BasicColumn
[]
=
[
{
{
...
@@ -327,3 +329,258 @@ export const editFileOptionsFormSchema: any = [
...
@@ -327,3 +329,258 @@ export const editFileOptionsFormSchema: any = [
colProps
:
{
lg
:
24
,
md
:
24
},
colProps
:
{
lg
:
24
,
md
:
24
},
},
},
];
];
export
const
basicSchema
:
DescItem
[]
=
[
{
field
:
'name'
,
label
:
'资源名称'
,
},
{
field
:
'description'
,
label
:
'描述'
,
},
{
field
:
'tags'
,
label
:
'业务标签'
,
},
{
field
:
'owner'
,
label
:
'权属机构'
,
},
{
field
:
'sensitiveStatus'
,
label
:
'敏感状态'
,
},
{
field
:
'version'
,
label
:
'版本'
,
},
{
field
:
'source'
,
label
:
'来源'
,
},
];
export
const
sourceTableSchema
:
DescItem
[]
=
[
{
field
:
'name'
,
label
:
'表名'
,
},
{
field
:
'path'
,
label
:
'路径'
,
},
{
field
:
'size'
,
label
:
'大小'
,
},
{
field
:
'filterCondition'
,
label
:
'数据过滤条件'
,
},
];
export
const
optionSchema
:
DescItem
[]
=
[
{
field
:
'autoOffShelfDate'
,
label
:
'自动下架日期'
,
},
{
field
:
'shareType'
,
label
:
'共享方式'
,
},
{
field
:
'visibleRange'
,
label
:
'可见范围'
,
},
{
field
:
'filterCondition'
,
label
:
'数据过滤条件'
,
},
];
export
const
permissionSchema
:
DescItem
[]
=
[
{
field
:
'download'
,
label
:
'下载权限'
,
},
{
field
:
'encryption'
,
label
:
'文件加密'
,
},
{
field
:
'push'
,
label
:
'推送权限'
,
},
{
field
:
'api'
,
label
:
'API调用'
,
},
{
field
:
'filterType'
,
label
:
'数据过滤方式'
,
},
];
export
const
informationColumns
:
BasicColumn
[]
=
[
{
title
:
'字段'
,
dataIndex
:
'field'
,
width
:
120
,
},
{
title
:
'中文名'
,
dataIndex
:
'name'
,
width
:
150
,
},
{
title
:
'字段描述'
,
dataIndex
:
'remark'
,
width
:
150
,
},
{
title
:
'字段类型'
,
dataIndex
:
'type'
,
width
:
120
,
},
{
title
:
'安全分级'
,
dataIndex
:
'security'
,
width
:
120
,
},
{
title
:
'敏感状态'
,
dataIndex
:
'status'
,
width
:
150
,
},
{
title
:
'敏感类型'
,
dataIndex
:
'sensitiveType'
,
width
:
100
,
},
{
title
:
'数据标准'
,
dataIndex
:
'standard'
,
width
:
100
,
},
];
function
renderHeader
(
column
:
BasicColumn
,
isSensitive
:
boolean
):
VNodeChild
{
const
style
=
isSensitive
?
{
color
:
'orange'
}
:
{};
return
h
(
'span'
,
{
style
},
column
.
title
);
}
export
const
sampleDataColumns
:
BasicColumn
[]
=
[
{
title
:
'name(敏感)'
,
dataIndex
:
'name'
,
customHeaderRender
:
(
column
)
=>
renderHeader
(
column
,
true
),
width
:
120
,
},
{
title
:
'phone_number_string(敏感)'
,
dataIndex
:
'phone_number_string'
,
customHeaderRender
:
(
column
)
=>
renderHeader
(
column
,
true
),
width
:
150
,
},
{
title
:
'student_id(敏感)'
,
dataIndex
:
'student_id'
,
customHeaderRender
:
(
column
)
=>
renderHeader
(
column
,
true
),
width
:
150
,
},
{
title
:
'major(敏感)'
,
dataIndex
:
'major'
,
customHeaderRender
:
(
column
)
=>
renderHeader
(
column
,
true
),
width
:
120
,
},
{
title
:
'origin_city'
,
dataIndex
:
'origin_city'
,
width
:
120
,
},
{
title
:
'ethnic(敏感)'
,
dataIndex
:
'ethnic'
,
customHeaderRender
:
(
column
)
=>
renderHeader
(
column
,
true
),
width
:
150
,
},
{
title
:
'building_num'
,
dataIndex
:
'building_num'
,
width
:
100
,
},
];
export
const
globalDataColumns
:
BasicColumn
[]
=
[
{
title
:
'公共资源名称'
,
dataIndex
:
'name'
,
width
:
100
,
},
{
title
:
'上架状态'
,
dataIndex
:
'status'
,
width
:
100
,
},
];
export
const
uploadFieldColumns
:
BasicColumn
[]
=
[
{
title
:
'列名'
,
dataIndex
:
'name'
,
width
:
100
,
},
{
title
:
'中文名'
,
dataIndex
:
'chineseName'
,
width
:
100
,
},
{
title
:
'数据类型'
,
dataIndex
:
'type'
,
width
:
100
,
},
];
export
const
versionPublishSchema
:
FormSchema
[]
=
[
{
field
:
'title'
,
label
:
'申请标题'
,
component
:
'Input'
,
defaultValue
:
'申请发布V10.0版本:数据集1'
,
required
:
true
,
},
{
field
:
'reason'
,
label
:
'申请理由'
,
component
:
'Input'
,
},
{
field
:
'remark'
,
label
:
'版本说明'
,
component
:
'Input'
,
required
:
true
,
},
{
field
:
'scope'
,
label
:
'生效范围'
,
component
:
'Select'
,
defaultValue
:
'1'
,
componentProps
:
{
options
:
[
{
label
:
'存量任务和新增任务'
,
value
:
'1'
,
},
{
label
:
'全部'
,
value
:
'2'
,
},
],
},
required
:
true
,
},
];
export
const
searchEditFormSchema
:
FormSchema
[]
=
[
{
field
:
'name'
,
label
:
' '
,
component
:
'Input'
,
colProps
:
{
span
:
4
},
componentProps
:
{
placeholder
:
'搜索名称'
,
},
},
];
src/views/mallResourceDevelopment/file/fileByCreate/dataFileData.ts
View file @
ca63ef0e
...
@@ -137,3 +137,463 @@ export const TreeData: any[] = [
...
@@ -137,3 +137,463 @@ export const TreeData: any[] = [
createBy
:
'admin'
,
createBy
:
'admin'
,
},
},
];
];
export
const
newFileTreeData
:
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
basicData
=
{
name
:
'wyx_contact'
,
description
:
'联系人信息'
,
tags
:
'测试'
,
owner
:
'数据平台治理部'
,
sensitiveStatus
:
'敏感'
,
version
:
'V1.0'
,
source
:
'元数据'
,
};
export
const
sourceTableData
=
{
name
:
'contact'
,
path
:
'商城工作区/18inceptor/wyx/contact'
,
size
:
'40.84KB'
,
filterCondition
:
'-'
,
};
export
const
optionData
=
{
autoOffShelfDate
:
'2024-12-31 23:59:59'
,
shareType
:
'公开'
,
visibleRange
:
'所有人'
,
filterCondition
:
'price > 100 AND stock > 0'
,
};
export
const
permissionData
=
{
download
:
'是'
,
encryption
:
'否'
,
push
:
'否'
,
api
:
'是'
,
filterType
:
'按时间过滤'
,
};
export
const
informationTableList
:
any
[]
=
[
{
field
:
'name'
,
name
:
'姓名'
,
remark
:
'姓名'
,
type
:
'string'
,
status
:
'敏感'
,
security
:
'G2'
,
sensitiveType
:
'姓名(简体中...'
,
standard
:
'-'
,
},
{
field
:
'phone_number'
,
name
:
'手机号'
,
remark
:
'手机号'
,
type
:
'string'
,
status
:
'敏感'
,
security
:
'G3'
,
sensitiveType
:
'手机号(中国...'
,
standard
:
'-'
,
},
{
field
:
'student_id'
,
name
:
'学号'
,
remark
:
'学号'
,
type
:
'string'
,
status
:
'敏感'
,
security
:
'G3'
,
sensitiveType
:
'账户编号'
,
standard
:
'-'
,
},
{
field
:
'major'
,
name
:
'专业'
,
remark
:
'专业'
,
type
:
'string'
,
status
:
'敏感'
,
security
:
'G10'
,
sensitiveType
:
'专业'
,
standard
:
'-'
,
},
{
field
:
'origin_city'
,
name
:
'生源地'
,
remark
:
'生源地'
,
type
:
'string'
,
status
:
'不敏感'
,
security
:
'未分级'
,
sensitiveType
:
'-'
,
standard
:
'-'
,
},
{
field
:
'ethnic'
,
name
:
'民族'
,
remark
:
'民族'
,
type
:
'string'
,
status
:
'敏感'
,
security
:
'G2'
,
sensitiveType
:
'民族'
,
standard
:
'-'
,
},
{
field
:
'building_num'
,
name
:
'楼号'
,
remark
:
'楼号'
,
type
:
'int'
,
status
:
'不敏感'
,
security
:
'未分级'
,
sensitiveType
:
'-'
,
standard
:
'-'
,
},
{
field
:
'room_num'
,
name
:
'寝室号'
,
remark
:
'寝室号'
,
type
:
'int'
,
status
:
'不敏感'
,
security
:
'安全分级_03'
,
sensitiveType
:
'敏感类型_01'
,
standard
:
'-'
,
},
];
export
const
sampleDataTableList
:
any
[]
=
[
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'北京市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'上海市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'广州市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'深圳市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'杭州市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
{
name
:
'******'
,
phone_number_string
:
'******'
,
student_id
:
'******'
,
major
:
'******'
,
origin_city
:
'武汉市'
,
ethnic
:
'******'
,
building_num
:
'18'
,
},
];
export
const
globalDataTableList
:
any
[]
=
[
{
name
:
'test1'
,
status
:
'1'
,
id
:
'1'
,
},
{
name
:
'test2'
,
status
:
'1'
,
id
:
'2'
,
},
{
name
:
'test3'
,
status
:
'1'
,
id
:
'3'
,
},
{
name
:
'test4'
,
status
:
'1'
,
id
:
'4'
,
},
];
export
const
uploadFieldTableList
:
any
[]
=
[
{
name
:
'id'
,
chineseName
:
'标识'
,
type
:
'INT'
,
},
{
name
:
'username'
,
chineseName
:
'用户名'
,
type
:
'VARCHAR'
,
},
{
name
:
'password'
,
chineseName
:
'密码'
,
type
:
'VARCHAR'
,
},
{
name
:
'email'
,
chineseName
:
'电子邮件'
,
type
:
'VARCHAR'
,
},
{
name
:
'age'
,
chineseName
:
'年龄'
,
type
:
'INT'
,
},
{
name
:
'birthday'
,
chineseName
:
'生日'
,
type
:
'DATE'
,
},
{
name
:
'created_at'
,
chineseName
:
'创建时间'
,
type
:
'DATETIME'
,
},
{
name
:
'updated_at'
,
chineseName
:
'更新时间'
,
type
:
'DATETIME'
,
},
];
export
const
basicNewData
=
{
name
:
'wyx_contact'
,
description
:
'联系人信息'
,
tags
:
'测试'
,
owner
:
'数据平台治理部'
,
sensitiveStatus
:
'敏感'
,
version
:
'V10.0'
,
source
:
'元数据'
,
};
export
const
basicOldData
=
{
name
:
'wyx_contact'
,
description
:
'联系人信息'
,
tags
:
'测试'
,
owner
:
'数据平台治理部'
,
sensitiveStatus
:
'敏感'
,
version
:
'V9.0'
,
source
:
'元数据'
,
};
src/views/mallResourceDevelopment/file/fileByCreate/editFileModal.vue
View file @
ca63ef0e
<
template
>
<
template
>
<BasicModal
<BasicModal
width=
"
55
%"
width=
"
60
%"
v-bind=
"$attrs"
v-bind=
"$attrs"
@
register=
"registerModal"
@
register=
"registerModal"
:title=
"title"
:title=
"title"
...
...
src/views/mallResourceDevelopment/file/fileByCreate/fileByCreateDetail.vue
0 → 100644
View file @
ca63ef0e
<
template
>
<PageWrapper
class=
"content-padding"
contentBackground
@
back=
"goBack"
>
<template
#
headerContent
>
<div
class=
"modal_top"
>
<Icon
icon=
"ep:arrow-left-bold"
:size=
"20"
style=
"margin-right: 5px"
:color=
"'#a3a7b1'"
@
click=
"goBack"
/>
<div>
<Icon
icon=
"material-symbols-light:dataset-linked-outline-sharp"
:size=
"40"
:color=
"'#64c6e9'"
/>
</div>
<div>
<div
class=
"title"
>
test
</div>
<div
class=
"path"
>
我创建的/test
</div>
</div>
<div
class=
"buttonGroup"
>
<a-button
type=
"primary"
@
click=
"handleVersionPublish"
>
版本发布
</a-button>
<a-button
type=
"primary"
@
click=
"handleVersionManagement"
>
版本管理
</a-button>
<a-button
type=
"primary"
@
click=
"handleDelete"
>
删除
</a-button>
<a-button
type=
"primary"
@
click=
"handleUp"
>
上架
</a-button>
<a-button
type=
"primary"
@
click=
"handleVersionManagement"
>
编辑
</a-button>
</div>
</div>
</
template
>
<
template
#
footer
>
<a-tabs
v-model:activeKey=
"currentKey"
>
<a-tab-pane
key=
"1"
tab=
"资源信息"
/>
<a-tab-pane
key=
"2"
tab=
"列信息"
/>
<a-tab-pane
key=
"3"
tab=
"采样数据"
/>
<a-tab-pane
key=
"4"
tab=
"对应公共资源"
/>
</a-tabs>
</
template
>
<div
class=
"pt-4 m-4 desc-wrap"
>
<
template
v-if=
"currentKey == '1'"
>
<Description
size=
"middle"
title=
"基本信息"
:bordered=
"false"
:column=
"2"
:data=
"basicData"
:schema=
"basicSchema"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
/>
<Description
size=
"middle"
title=
"源表信息"
:bordered=
"false"
:column=
"2"
:data=
"sourceTableData"
:schema=
"sourceTableSchema"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
/>
<Description
size=
"middle"
title=
"默认上架配置"
:bordered=
"false"
:column=
"2"
:data=
"optionData"
:schema=
"optionSchema"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
/>
<Description
size=
"middle"
title=
"开放权限"
:bordered=
"false"
:column=
"2"
:data=
"permissionData"
:schema=
"permissionSchema"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
/>
</
template
>
<
template
v-if=
"currentKey == '2'"
>
<BasicTable
@
register=
"registerTable"
/>
</
template
>
<
template
v-if=
"currentKey == '3'"
>
<BasicTable
@
register=
"registerSampleDataTable"
/>
</
template
>
<
template
v-if=
"currentKey == '4'"
>
<div
class=
"flex"
>
<div
style=
"width: 30%; border: rgba(26, 26, 26, 0.15) 1px solid"
>
<BasicTable
@
register=
"registerGlobalDataTable"
>
<template
#
bodyCell=
"
{ column, record }">
<template
v-if=
"column.key === 'status'"
>
<template
v-if=
"record.status === '1'"
>
<Icon
icon=
"grommet-icons:status-good"
color=
"green"
/><span>
已上架
</span>
</
template
>
<
template
v-if=
"record.status === '0'"
>
<Icon
icon=
"carbon:error-outline"
color=
"red"
/><span>
未上架
</span>
</
template
>
</template>
</template>
</BasicTable>
</div>
<div
style=
"width: 70%; border: rgba(26, 26, 26, 0.15) 1px solid"
>
<div>
<Icon
icon=
"material-symbols-light:dataset-linked-outline-sharp"
:size=
"40"
style=
"margin-left: 10px"
:color=
"'#64c6e9'"
/>
<a-button
type=
"primary"
style=
"margin-left: 900px"
@
click=
"handleDown"
>
下架
</a-button
>
<a-button
type=
"primary"
style=
"margin-left: 10px"
@
click=
"handleUp"
>
重新上架
</a-button
>
</div>
<div>
<div
class=
"title"
style=
"margin-left: 15px; padding-bottom: 20px"
>
test1
</div>
</div>
<div>
<Description
size=
"middle"
:bordered=
"false"
:column=
"2"
:data=
"optionData"
:schema=
"optionSchema"
:labelStyle=
"{ fontSize: '16px' }"
:contentStyle=
"{ fontSize: '16px' }"
/>
</div>
<div>
<BasicTable
@
register=
"registerUploadFieldTable"
/>
</div>
</div>
</div>
</template>
</div>
<VersionPublishModal
@
register=
"registerVersionPublishModal"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
import
{
onMounted
,
ref
}
from
'vue'
;
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
useTabs
}
from
'@/hooks/web/useTabs'
;
import
{
Tabs
}
from
'ant-design-vue'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
router
}
from
'@/router'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
Description
}
from
'@/components/Description'
;
import
{
basicSchema
,
sourceTableSchema
,
optionSchema
,
permissionSchema
,
searchEditFormSchema
,
informationColumns
,
sampleDataColumns
,
globalDataColumns
,
uploadFieldColumns
,
}
from
'./data'
;
import
{
basicData
,
sourceTableData
,
optionData
,
permissionData
,
informationTableList
,
sampleDataTableList
,
globalDataTableList
,
uploadFieldTableList
,
}
from
'./dataFileData'
;
import
{
BasicTable
,
useTable
}
from
'@/components/Table'
;
import
{
useModal
}
from
'@/components/Modal'
;
import
VersionPublishModal
from
'./versionPublishModal.vue'
;
defineOptions
({
name
:
'AccountDetail'
});
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
ATabs
=
Tabs
;
const
ATabPane
=
Tabs
.
TabPane
;
const
currentKey
=
ref
(
'1'
);
const
[
registerVersionPublishModal
,
{
openModal
:
openVersionPublishModal
}]
=
useModal
();
const
[
registerTable
]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
informationTableList
.
length
,
code
:
''
,
message
:
''
,
data
:
informationTableList
,
};
return
{
...
response
};
},
columns
:
informationColumns
,
formConfig
:
{
labelWidth
:
10
,
schemas
:
searchEditFormSchema
,
autoSubmitOnEnter
:
true
,
showActionButtonGroup
:
false
,
},
useSearchForm
:
true
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
true
,
handleSearchInfoFn
(
info
)
{
return
info
;
},
});
const
[
registerSampleDataTable
]
=
useTable
({
dataSource
:
sampleDataTableList
,
columns
:
sampleDataColumns
,
formConfig
:
{
labelWidth
:
10
,
schemas
:
searchEditFormSchema
,
autoSubmitOnEnter
:
true
,
showActionButtonGroup
:
false
,
},
useSearchForm
:
true
,
bordered
:
false
,
});
const
[
registerGlobalDataTable
]
=
useTable
({
dataSource
:
globalDataTableList
,
columns
:
globalDataColumns
,
rowSelection
:
true
,
rowKey
:
'id'
,
showIndexColumn
:
false
,
bordered
:
false
,
});
const
[
registerUploadFieldTable
]
=
useTable
({
title
:
'上架字段'
,
dataSource
:
uploadFieldTableList
,
columns
:
uploadFieldColumns
,
showIndexColumn
:
false
,
scroll
:
{
y
:
400
,
},
bordered
:
false
,
});
function
handleDown
()
{
createMessage
.
success
(
'下架成功'
);
}
function
handleUp
()
{
createMessage
.
success
(
'上架成功'
);
}
function
handleVersionPublish
()
{
openVersionPublishModal
(
true
,
{
title
:
'申请发布V10.0版本:数据集1'
,
});
}
function
handleDelete
()
{
createConfirm
({
iconType
:
'warning'
,
title
:
'确认删除'
,
content
:
'确认删除吗?'
,
onOk
()
{
router
.
back
();
createMessage
.
success
(
'删除成功!'
);
},
});
}
function
goBack
()
{
router
.
back
();
}
onMounted
(()
=>
{});
</
script
>
<
style
lang=
"scss"
scoped
>
.content-padding
{
background-color
:
white
;
}
.modal_top
{
padding
:
0
0
20px
0
;
display
:
flex
;
align-items
:
center
;
.title
{
font-size
:
16px
;
font-weight
:
500
;
}
.path
{
font-size
:
14px
;
color
:
gray
;
}
.buttonGroup
{
margin-left
:
auto
;
display
:
flex
;
gap
:
5px
;
align-items
:
center
;
}
}
.selected-row
{
background-color
:
#5cb3ff
;
/* 可以根据需要调整颜色 */
}
</
style
>
src/views/mallResourceDevelopment/file/fileByCreate/index.vue
View file @
ca63ef0e
<
template
>
<
template
>
<PageWrapper
dense
contentFullHeight
fixedHeight
contentClass=
"flex"
>
<PageWrapper
dense
contentFullHeight
fixedHeight
contentClass=
"flex"
>
<GroupTree
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
<GroupTree
class=
"w-1/4 xl:w-1/5"
@
select=
"handleSelect"
/>
<BasicTable
@
register=
"registerTable"
class=
"w-3/4 xl:w-4/5"
>
<div
class=
"w-3/4 xl:w-4/5"
>
<template
#
toolbar
>
<div
style=
"display: flex; align-items: center; background-color: white; padding-top: 20px"
>
<a-button
type=
"primary"
@
click=
"deleteButton"
>
删除
</a-button>
<Icon
style=
"margin-left: 30px"
icon=
"ion:folder-outline"
:size=
"50"
:color=
"'#6499e9'"
/>
<a-button
type=
"primary"
@
click=
"handleMove(1)"
>
移动
</a-button>
<div
style=
"margin-left: 10px"
>
<a-button
type=
"primary"
@
click=
"batchUploading"
>
批量上架
</a-button>
<span
class=
"title"
>
test
</span>
<a-button
type=
"primary"
@
click=
"handleNewFolder"
>
新建文件夹
</a-button>
<div>
<a-button
type=
"primary"
@
click=
"handleDataEntry"
>
新建文件
</a-button>
<span
class=
"path"
>
我创建的
</span>
</
template
>
</div>
<
template
#
bodyCell=
"{ column, record }"
>
</div>
<template
v-if=
"column.key === 'status'"
>
<a-button
style=
"margin-left: 550px"
type=
"primary"
@
click=
"deleteButton"
>
删除
</a-button>
<template
v-if=
"record.uploadStatus === '0'"
>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"handleMove(1)"
>
移动
</a-button>
<Icon
icon=
"grommet-icons:status-good"
color=
"green"
/><span>
已发布
</span>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"batchUploading"
>
批量上架
</a-button
>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"handleNewFolder"
>
新建文件夹
</a-button
>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"handleCataloging"
>
新建编目
</a-button
>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"handleDataEntry"
>
新建文件
</a-button
>
<a-button
style=
"margin-left: 10px"
type=
"primary"
@
click=
"handleDataEntry"
>
批量新建
</a-button
>
</div>
<BasicTable
style=
"background-color: white"
@
register=
"registerTable"
>
<template
#
bodyCell=
"
{ column, record }">
<template
v-if=
"column.key === 'status'"
>
<template
v-if=
"record.uploadStatus === '0'"
>
<Icon
icon=
"grommet-icons:status-good"
color=
"green"
/><span>
已发布
</span>
</
template
>
<
template
v-if=
"record.uploadStatus === '1'"
>
<Icon
icon=
"carbon:error-outline"
color=
"red"
/><span>
未发布
</span>
</
template
>
</template>
</template>
<
template
v-if=
"record.uploadStatus === '1'"
>
<
template
v-if=
"column.key === 'uploadStatus'"
>
<Icon
icon=
"carbon:error-outline"
color=
"red"
/><span>
未发布
</span>
<template
v-if=
"record.uploadStatus === '0'"
>
<Icon
icon=
"grommet-icons:status-good"
color=
"green"
/><span>
已上架
</span>
</
template
>
<
template
v-if=
"record.uploadStatus === '1'"
>
<Icon
icon=
"carbon:error-outline"
color=
"red"
/><span>
未上架
</span>
</
template
>
</template>
</template>
</template>
<
template
v-if=
"column.key === 'name'"
>
<
template
v-if=
"column.key === 'uploadStatus'"
>
<div
@
click=
"handleDetail"
style=
"color: #6499e9"
>
<template
v-if=
"record.uploadStatus === '0'"
>
<Icon
icon=
"carbon:folder"
/>
<Icon
icon=
"grommet-icons:status-good"
color=
"green"
/><span>
已上架
</span>
<span>
{{
record
.
name
}}
</span>
</div>
</
template
>
</
template
>
<
template
v-if=
"record.uploadStatus === '1'"
>
<
template
v-if=
"column.key === 'action'"
>
<Icon
icon=
"carbon:error-outline"
color=
"red"
/><span>
未上架
</span>
<TableAction
:actions=
"[
{
label: '上架',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handleUpload.bind(null),
},
},
{
label: '编辑',
onClick: handEdit.bind(null),
},
{
label: '删除',
popConfirm: {
title: '是否确认删除',
placement: 'left',
confirm: handDelete.bind(null),
},
},
]"
/>
</
template
>
</
template
>
</template>
</template>
<
template
v-if=
"column.key === 'action'"
>
</BasicTable>
<TableAction
</div>
:actions=
"[
{
label: '上架',
onClick: handleUpload.bind(null, 0, record),
},
{
label: '删除',
onClick: handDelete.bind(null),
},
]"
/>
</
template
>
</template>
</BasicTable>
<MoveFile
@
register=
"registerMoveFile"
/>
<MoveFile
@
register=
"registerMoveFile"
/>
<NewFolder
@
register=
"registerNewFolder"
/>
<NewFolder
@
register=
"registerNewFolder"
/>
<AddFileModal
@
register=
"registerAddFileModal"
/>
<AddFileModal
@
register=
"registerAddFileModal"
/>
<EditFileModal
@
register=
"registerEditFile"
/>
</PageWrapper>
</PageWrapper>
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
...
@@ -60,11 +100,15 @@
...
@@ -60,11 +100,15 @@
import
GroupTree
from
'./GroupTree.vue'
;
import
GroupTree
from
'./GroupTree.vue'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
AddFileModal
from
'./addFileModal.vue'
;
import
AddFileModal
from
'./addFileModal.vue'
;
import
EditFileModal
from
'./editFileModal.vue'
;
import
{
router
}
from
'@/router'
;
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
{
createMessage
,
createConfirm
}
=
useMessage
();
const
[
registerMoveFile
,
{
openModal
:
openMoveFileModal
}]
=
useModal
();
const
[
registerMoveFile
,
{
openModal
:
openMoveFileModal
}]
=
useModal
();
const
[
registerNewFolder
,
{
openModal
:
openNewFolderModal
}]
=
useModal
();
const
[
registerNewFolder
,
{
openModal
:
openNewFolderModal
}]
=
useModal
();
const
[
registerAddFileModal
,
{
openModal
:
openAddFileModal
}]
=
useModal
();
const
[
registerAddFileModal
,
{
openModal
:
openAddFileModal
}]
=
useModal
();
const
[
registerEditFile
,
{
openModal
:
openEditFileModal
}]
=
useModal
();
const
[
registerTable
,
{
reload
,
getRowSelection
}]
=
useTable
({
const
[
registerTable
,
{
reload
,
getRowSelection
}]
=
useTable
({
api
:
async
()
=>
{
api
:
async
()
=>
{
const
response
=
{
const
response
=
{
...
@@ -94,7 +138,7 @@
...
@@ -94,7 +138,7 @@
return
info
;
return
info
;
},
},
actionColumn
:
{
actionColumn
:
{
width
:
1
0
0
,
width
:
1
2
0
,
title
:
'操作'
,
title
:
'操作'
,
dataIndex
:
'action'
,
dataIndex
:
'action'
,
},
},
...
@@ -111,12 +155,14 @@
...
@@ -111,12 +155,14 @@
isUpdate
:
false
,
isUpdate
:
false
,
});
});
}
}
function
handleCataloging
()
{
openNewFolderModal
(
true
,
{
isUpdate
:
true
,
});
}
/** 移动按钮*/
/** 移动按钮*/
function
handleMove
(
isMove
,
record
:
Recordable
)
{
function
handleMove
(
isMove
)
{
// console.log('record',record)
openMoveFileModal
(
true
,
{
openMoveFileModal
(
true
,
{
record
,
isMove
:
isMove
,
isMove
:
isMove
,
});
});
}
}
...
@@ -152,6 +198,17 @@
...
@@ -152,6 +198,17 @@
});
});
}
}
function
handEdit
()
{
openEditFileModal
(
true
,
{
title
:
'编辑文件'
,
});
}
function
handleDetail
()
{
router
.
push
({
path
:
'/file/fileByCreate/fileByCreateDetail'
,
});
}
/** 部门树的select*/
/** 部门树的select*/
function
handleSelect
()
{
function
handleSelect
()
{
reload
();
reload
();
...
...
src/views/mallResourceDevelopment/file/fileByCreate/newFolder.vue
View file @
ca63ef0e
...
@@ -85,7 +85,7 @@
...
@@ -85,7 +85,7 @@
return
treeData
!==
''
?
treeData
:
data
;
return
treeData
!==
''
?
treeData
:
data
;
}
}
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新建
主体'
:
'编辑主体
'
));
const
getTitle
=
computed
(()
=>
(
!
unref
(
isUpdate
)
?
'新建
文件夹'
:
'新建编目
'
));
async
function
handleSubmit
()
{
async
function
handleSubmit
()
{
try
{
try
{
...
...
src/views/mallResourceDevelopment/file/fileByCreate/versionPublishModal.vue
0 → 100644
View file @
ca63ef0e
<
template
>
<BasicModal
width=
"55%"
v-bind=
"$attrs"
@
register=
"registerModal"
:title=
"title"
@
ok=
"handleSubmit"
>
<div>
<BasicForm
@
register=
"registerForm"
/>
<Description
size=
"middle"
title=
"版本对比"
:bordered=
"false"
/>
</div>
<div
class=
"flex"
>
<div
style=
"width: 50%; border: rgba(26, 26, 26, 0.12) 1px solid"
>
<div
style=
"padding-left: 20px; font-size: 16px; font-weight: 500"
>
V9.0(当前)
</div>
<Description
size=
"middle"
title=
"基本信息"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="basicOldData"
:schema="basicSchema"
/>
<Description
size=
"middle"
title=
"源表信息"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="sourceTableData"
:schema="sourceTableSchema"
/>
<Description
size=
"middle"
title=
"默认上架配置"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="optionData"
:schema="optionSchema"
/>
<Description
size=
"middle"
title=
"开放权限"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="permissionData"
:schema="permissionSchema"
/>
</div>
<div
style=
"width: 50%; border: rgba(26, 26, 26, 0.12) 1px solid"
>
<div
style=
"padding-left: 20px; font-size: 16px; font-weight: 500"
>
发布版本
</div>
<Description
size=
"middle"
title=
"基本信息"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="basicNewData"
:schema="basicSchema"
/>
<Description
size=
"middle"
title=
"源表信息"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="sourceTableData"
:schema="sourceTableSchema"
/>
<Description
size=
"middle"
title=
"默认上架配置"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="optionData"
:schema="optionSchema"
/>
<Description
size=
"middle"
title=
"开放权限"
:bordered=
"false"
:column=
"1"
:labelStyle=
"
{ fontSize: '16px' }"
:contentStyle="{ fontSize: '16px' }"
:data="permissionData"
:schema="permissionSchema"
/>
</div>
</div>
</BasicModal>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
'vue'
;
import
{
BasicModal
,
useModalInner
}
from
'@/components/Modal'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
basicSchema
,
optionSchema
,
permissionSchema
,
sourceTableSchema
,
versionPublishSchema
,
}
from
'@/views/mallResourceDevelopment/dataSet/datasetByCreate/data'
;
import
Description
from
'@/components/Description/src/Description.vue'
;
import
{
basicNewData
,
basicOldData
,
optionData
,
permissionData
,
sourceTableData
,
}
from
'@/views/mallResourceDevelopment/dataSet/datasetByCreate/dataFileData'
;
defineOptions
({
name
:
'KnowledgeModal'
});
const
{
createMessage
}
=
useMessage
();
const
title
=
ref
();
const
[
registerForm
,
{
resetFields
}]
=
useForm
({
labelWidth
:
100
,
baseColProps
:
{
lg
:
12
,
md
:
12
},
schemas
:
versionPublishSchema
,
showActionButtonGroup
:
false
,
actionColOptions
:
{
span
:
23
,
},
});
//初始化弹框
const
[
registerModal
,
{
setModalProps
,
closeModal
}]
=
useModalInner
(
async
(
data
)
=>
{
await
resetFields
();
setModalProps
({
confirmLoading
:
false
});
title
.
value
=
data
.
title
;
});
async
function
handleSubmit
()
{
closeModal
();
createMessage
.
success
(
'提交成功'
);
}
</
script
>
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