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
2bed3201
Commit
2bed3201
authored
Nov 21, 2024
by
liwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增了服务开发页面
parent
1b755d1a
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
875 additions
and
4 deletions
+875
-4
index.ts
src/router/routes/index.ts
+9
-0
DataPreviewDrawer.vue
...iews/dataService/serviceDevelopment/DataPreviewDrawer.vue
+195
-0
MetadataPreviewDrawer.vue
.../dataService/serviceDevelopment/MetadataPreviewDrawer.vue
+105
-0
api.data.ts
src/views/dataService/serviceDevelopment/api.data.ts
+88
-1
apiData.ts
src/views/dataService/serviceDevelopment/apiData.ts
+282
-1
guideModeApi.vue
src/views/dataService/serviceDevelopment/guideModeApi.vue
+6
-0
sqlModeApi.vue
src/views/dataService/serviceDevelopment/sqlModeApi.vue
+21
-0
sqlModeStep1.vue
src/views/dataService/serviceDevelopment/sqlModeStep1.vue
+15
-1
trusteeshipApiTest.vue
...ews/dataService/serviceDevelopment/trusteeshipApiTest.vue
+110
-0
trusteeshipModeApi.vue
...ews/dataService/serviceDevelopment/trusteeshipModeApi.vue
+10
-1
trusteeshipModeApiTest.vue
...dataService/serviceDevelopment/trusteeshipModeApiTest.vue
+34
-0
No files found.
src/router/routes/index.ts
View file @
2bed3201
...
...
@@ -733,6 +733,15 @@ export const serviceDevelopmentRoute: AppRouteRecordRaw = {
icon
:
''
,
},
},
{
path
:
'serviceDevelopment/trusteeshipApiTest'
,
name
:
'trusteeshipApiTest'
,
component
:
()
=>
import
(
'@/views/dataService/serviceDevelopment/trusteeshipApiTest.vue'
),
meta
:
{
title
:
'API测试'
,
icon
:
''
,
},
},
],
};
...
...
src/views/dataService/serviceDevelopment/DataPreviewDrawer.vue
0 → 100644
View file @
2bed3201
<
template
>
<BasicDrawer
v-bind=
"$attrs"
@
register=
"registerDrawer"
showFooter
:title=
"getTitle"
width=
"50%"
@
ok=
"handleSubmit"
>
<BasicTable
@
register=
"registerTable1"
/>
<div
style=
"display: flex;justify-content: center;margin-top: 20px;margin-bottom: 20px"
>
<a-button
type=
"primary"
@
click=
"testButton"
style=
"width: 100px"
>
测试
</a-button>
</div>
<div
style=
"font-weight: bold;font-size: 16px;margin-bottom: 10px"
>
返回参数
</div>
<div
style=
"display: flex;width: 100%"
>
<div
style=
"width: 40%;border: 1px solid #ccc;"
>
<List
:pagination=
"pagination"
>
<template
v-for=
"item in executionList1"
:key=
"item.id"
>
<List
.
Item
@
click=
"clickButton(item)"
:class=
"
{ 'listItemClass': selectedItem === item }">
<List
.
Item
.
Meta
style=
"display: flex !important; align-items: center !important"
>
<template
#
avatar
>
<Icon
class=
"icon"
v-if=
"item.icon"
:icon=
"item.icon"
:color=
"item.color"
/>
</
template
>
<
template
#
title
>
<span
v-if=
"item.title.includes('执行')"
style=
"font-weight: bold;height: 20px"
>
{{
item
.
title
}}
</span>
<span
v-else
>
{{
item
.
title
}}
</span>
</
template
>
<
template
#
description
>
<div
class=
"info"
>
<div
v-if=
"item.time"
>
{{
item
.
time
}}
{{
item
.
result
}}
</div>
</div>
</
template
>
</List
.Item.Meta
>
</List
.Item
>
</template>
</List>
</div>
<div
style=
"width: 60%;border: 1px solid #ccc;"
>
<div
v-if=
"show === 2 && test === 'success'"
>
<BasicTable
@
register=
"registerTable2"
class=
"tableClass"
/>
</div>
<div
v-else-if=
"show === 5 && test === 'success'"
>
<BasicTable
@
register=
"registerTable3"
class=
"tableClass"
/>
</div>
<div
v-else
>
<BasicTable
@
register=
"registerTable4"
class=
"tableClass"
/>
</div>
</div>
</div>
</BasicDrawer>
</template>
<
script
lang=
"ts"
setup
>
import
{
h
,
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
guideModeTableColumns7
,
guideModeTableColumns8
}
from
'./api.data'
;
import
{
guideModelTableData7
,
guideModelTableData8
,
guideModelTableData9
,
guideModelTableData10
}
from
'./apiData'
import
{
BasicDrawer
,
useDrawerInner
}
from
'@/components/Drawer'
;
import
{
BasicTree
,
ContextMenuItem
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
useMessage
}
from
"@/hooks/web/useMessage"
;
import
{
List
}
from
'ant-design-vue'
;
import
{
cardList1
,
cardList2
}
from
'./apiData'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
BasicTable
from
'@/components/Table/src/BasicTable.vue'
;
import
{
useTable
}
from
'@/components/Table'
;
const
selectedItem
=
ref
(
''
)
const
show
=
ref
(
''
)
const
test
=
ref
(
''
)
const
executionList1
=
ref
(
cardList1
);
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
treeRef
=
ref
<
Nullable
<
TreeActionType
>>
(
null
);
const
isUpdate
=
ref
(
true
);
const
roleId
=
ref
(
''
);
const
getTitle
=
ref
(
'数据预览'
);
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
[
registerDrawer
,
{
setDrawerProps
,
closeDrawer
}]
=
useDrawerInner
(
async
(
data
)
=>
{
setDrawerProps
({
confirmLoading
:
false
,
showCancelBtn
:
false
,
showOkBtn
:
false
});
});
const
[
registerTable1
]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
guideModelTableData7
.
length
,
code
:
''
,
message
:
''
,
data
:
guideModelTableData7
,
};
return
{
...
response
};
},
rowKey
:
'key'
,
columns
:
guideModeTableColumns7
,
pagination
:
false
,
showIndexColumn
:
false
,
showTableSetting
:
false
,
scroll
:
{
y
:
300
},
});
const
[
registerTable2
]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
guideModelTableData9
.
length
,
code
:
''
,
message
:
''
,
data
:
guideModelTableData9
,
};
return
{
...
response
};
},
rowKey
:
'key'
,
columns
:
guideModeTableColumns8
,
pagination
:
true
,
showIndexColumn
:
false
,
showTableSetting
:
false
,
scroll
:
{
y
:
300
},
});
const
[
registerTable3
]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
guideModelTableData8
.
length
,
code
:
''
,
message
:
''
,
data
:
guideModelTableData8
,
};
return
{
...
response
};
},
rowKey
:
'key'
,
columns
:
guideModeTableColumns8
,
pagination
:
true
,
showIndexColumn
:
false
,
showTableSetting
:
false
,
scroll
:
{
y
:
300
},
});
const
[
registerTable4
]
=
useTable
({
api
:
async
()
=>
{
const
response
=
{
pageNu
:
'1'
,
pageSize
:
'10'
,
pages
:
'1'
,
total
:
guideModelTableData10
.
length
,
code
:
''
,
message
:
''
,
data
:
guideModelTableData10
,
};
return
{
...
response
};
},
rowKey
:
'key'
,
columns
:
guideModeTableColumns8
,
pagination
:
true
,
showIndexColumn
:
false
,
showTableSetting
:
false
,
scroll
:
{
y
:
300
},
});
async
function
handleSubmit
()
{
}
/**测试*/
function
testButton
()
{
createMessage
.
success
(
'测试成功'
);
test
.
value
=
'success'
executionList1
.
value
=
cardList2
console
.
log
(
executionList1
.
value
)
}
/**点击事件*/
function
clickButton
(
item
)
{
show
.
value
=
item
.
id
selectedItem
.
value
=
item
;
// 更新选中的项
}
</
script
>
<
style
lang=
"scss"
scoped
>
.icon
{
font-size
:
30px
!
important
;
}
.tableClass
{
::v-deep
(
.ant-table
)
{
height
:
300px
;
}
}
.listItemClass
{
background-color
:
#badeee
;
}
</
style
>
src/views/dataService/serviceDevelopment/MetadataPreviewDrawer.vue
0 → 100644
View file @
2bed3201
<
template
>
<BasicDrawer
v-bind=
"$attrs"
@
register=
"registerDrawer"
showFooter
:title=
"getTitle"
width=
"50%"
@
ok=
"handleSubmit"
>
<BasicTree
ref=
"treeRef"
toolbar
search
treeWrapperClassName=
"h-[calc(100%-35px)] overflow-auto"
:clickRowToExpand=
"false"
:defaultExpandAll=
"true"
:treeData=
"treeData"
:fieldNames=
"
{ key: 'businessId', title: 'apiName' }"
@select="handleSelect"
:beforeRightClick="getRightMenuList"
:actionList="actionList"
/>
<List
:pagination=
"pagination"
>
<template
v-for=
"item in executionList"
:key=
"item.id"
>
<List
.
Item
class=
"list"
>
<List
.
Item
.
Meta
style=
"display: flex !important; align-items: center !important"
>
<template
#
avatar
>
<Icon
class=
"icon"
v-if=
"item.icon"
:icon=
"item.icon"
:color=
"item.color"
/>
</
template
>
<
template
#
title
>
<span>
{{
item
.
executionDate
}}
</span>
</
template
>
<
template
#
description
>
<div
class=
"info"
>
<div>
{{
item
.
sensitiveState
}}
</div>
</div>
</
template
>
</List
.Item.Meta
>
</List
.Item
>
</template>
</List>
</BasicDrawer>
</template>
<
script
lang=
"ts"
setup
>
import
{
h
,
nextTick
,
onMounted
,
ref
,
unref
}
from
'vue'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
}
from
'./api.data'
;
import
{
metadataTreeData
}
from
'./apiData'
import
{
BasicDrawer
,
useDrawerInner
}
from
'@/components/Drawer'
;
import
{
BasicTree
,
ContextMenuItem
,
TreeActionType
,
TreeItem
}
from
'@/components/Tree'
;
import
{
useMessage
}
from
"@/hooks/web/useMessage"
;
import
{
List
}
from
'ant-design-vue'
;
import
{
cardList1
}
from
'./apiData'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
const
executionList
=
ref
(
cardList1
);
const
emit
=
defineEmits
([
'success'
,
'register'
]);
const
{
createMessage
}
=
useMessage
();
const
treeRef
=
ref
<
Nullable
<
TreeActionType
>>
(
null
);
const
isUpdate
=
ref
(
true
);
const
roleId
=
ref
(
''
);
const
getTitle
=
ref
(
'元数据预览'
);
const
treeData
=
ref
<
TreeItem
[]
>
([]);
const
[
registerDrawer
,
{
setDrawerProps
,
closeDrawer
}]
=
useDrawerInner
(
async
(
data
)
=>
{
setDrawerProps
({
confirmLoading
:
false
});
treeData
.
value
=
handleTree
(
metadataTreeData
,
'businessId'
,
undefined
,
undefined
,
undefined
)
await
nextTick
(()
=>
{
getTree
().
expandAll
(
true
)
})
});
function
getTree
()
{
const
tree
=
unref
(
treeRef
);
if
(
!
tree
)
{
throw
new
Error
(
'tree is null!'
);
}
return
tree
;
}
async
function
handleSubmit
()
{
}
/** 转成树 */
function
handleTree
(
data
,
id
,
parentId
,
children
,
rootId
)
{
id
=
id
||
'id'
parentId
=
parentId
||
'parentId'
children
=
children
||
'children'
rootId
=
rootId
||
Math
.
min
.
apply
(
Math
,
data
.
map
(
item
=>
{
return
item
[
parentId
]
}))
||
0
// 对源数据深度克隆
const
cloneData
=
JSON
.
parse
(
JSON
.
stringify
(
data
))
// 循环所有项
const
treeData
=
cloneData
.
filter
(
father
=>
{
const
branchArr
=
cloneData
.
filter
(
child
=>
{
// 返回每一项的子级数组
return
father
[
id
]
===
child
[
parentId
]
})
branchArr
.
length
>
0
?
father
.
children
=
branchArr
:
''
// 返回第一层
return
father
[
parentId
]
===
rootId
})
return
treeData
!==
''
?
treeData
:
data
}
</
script
>
src/views/dataService/serviceDevelopment/api.data.ts
View file @
2bed3201
...
...
@@ -883,6 +883,54 @@ export const guideModeTableColumns6: BasicColumn[] = [
width
:
150
},
];
/**向导模式 列表7*/
export
const
guideModeTableColumns7
:
BasicColumn
[]
=
[
{
title
:
'参数1'
,
dataIndex
:
'param1'
,
width
:
100
},
{
title
:
'参数2'
,
dataIndex
:
'param2'
,
width
:
100
},
{
title
:
'参数3'
,
dataIndex
:
'param3'
,
width
:
100
},
{
title
:
'参数4'
,
dataIndex
:
'param4'
,
width
:
100
},
{
title
:
'参数5'
,
dataIndex
:
'param5'
,
width
:
80
},
{
title
:
'参数6'
,
dataIndex
:
'param6'
,
width
:
80
},
{
title
:
'参数7'
,
dataIndex
:
'param7'
,
width
:
150
,
editable
:
true
,
edit
:
true
},
];
/**向导模式 列表8*/
export
const
guideModeTableColumns8
:
BasicColumn
[]
=
[
{
title
:
'value'
,
dataIndex
:
'value'
,
width
:
100
},
];
/**类别管理-新增 表单*/
export
const
addTypeFormSchema
:
FormSchema
[]
=
[
{
...
...
@@ -1907,6 +1955,46 @@ export const trusteeshipTableColumns6: BasicColumn[] = [
width
:
150
,
},
];
/**托管模式- 列表表头7*/
export
const
trusteeshipTableColumns7
:
BasicColumn
[]
=
[
{
title
:
'参数code'
,
dataIndex
:
'parameterCode'
,
width
:
150
,
},
{
title
:
'参数位置'
,
dataIndex
:
'parameterLocation'
,
width
:
150
,
},
{
title
:
'Xpath'
,
dataIndex
:
'Xpath'
,
width
:
150
,
},
{
title
:
'数据类型'
,
dataIndex
:
'dataType'
,
width
:
150
,
},
{
title
:
'注释'
,
dataIndex
:
'comment'
,
width
:
150
,
},
{
title
:
'是否必填'
,
dataIndex
:
'isNeed'
,
width
:
150
,
},
{
title
:
'参数值'
,
dataIndex
:
'parameterValue'
,
width
:
150
,
edit
:
true
,
editable
:
true
,
},
];
/**托管模式- 表单1*/
export
const
trusteeshipFormSchema1
:
FormSchema
[]
=
[
{
...
...
@@ -2017,7 +2105,6 @@ export const trusteeshipFormSchema1: FormSchema[] = [
/**版本对比 表单*/
export
const
contrastSchema
:
FormSchema
[]
=
[
{
...
...
src/views/dataService/serviceDevelopment/apiData.ts
View file @
2bed3201
...
...
@@ -219,6 +219,74 @@ export const guideModelTableData6: any[] = [
parameterType
:
'timestamp'
,
comment
:
''
,
},
];
/**向导模式 列表 数据7*/
export
const
guideModelTableData7
:
any
[]
=
[
{
param1
:
'birthday'
,
param2
:
'birthday'
,
param3
:
'_01 set birthday=#{birthday},name=#{name}where id=#{id}'
,
param4
:
'String'
,
param5
:
'-'
,
param6
:
'否'
,
param7
:
'2023-09-27'
,
},
{
param1
:
'name'
,
param2
:
'name'
,
param3
:
'_01 set birthday=#{birthday},name=#{name}where id=#{id}'
,
param4
:
'String'
,
param5
:
'-'
,
param6
:
'否'
,
param7
:
'yi-update'
,
},
{
param1
:
'id'
,
param2
:
'id'
,
param3
:
'_01 set birthday=#{birthday},name=#{name}where id=#{id}'
,
param4
:
'Number'
,
param5
:
'-'
,
param6
:
'否'
,
param7
:
'10'
,
},
{
param1
:
'id'
,
param2
:
'id'
,
param3
:
'_01 set birthday=#{birthday},name=#{name}where id=#{id}'
,
param4
:
'Number'
,
param5
:
'-'
,
param6
:
'否'
,
param7
:
'1000'
,
},
];
/**向导模式 列表 数据8*/
export
const
guideModelTableData8
:
any
[]
=
[
{
value
:
'sdfs'
,
},
{
value
:
'yi-update'
,
},
{
value
:
'yi1'
,
},
{
value
:
'yi2'
,
},
{
value
:
'yi3'
,
},
];
/**向导模式 列表 数据9*/
export
const
guideModelTableData9
:
any
[]
=
[
{
value
:
'sdfs'
,
},
];
/**向导模式 列表 数据10*/
export
const
guideModelTableData10
:
any
[]
=
[
];
/**版本管理列表 数据*/
export
const
versionData
:
any
[]
=
[
...
...
@@ -353,6 +421,87 @@ export const step1TableData4: any[] = [
returnRecordCount
:
'-'
},
];
/**元数据树/列表 数据*/
export
const
metadataTreeData
:
any
[]
=
[
{
"businessId"
:
101
,
"apiName"
:
"@!&test@&"
,
"anotherName"
:
"@!&test@&"
,
"parentId"
:
0
,
icon
:
"material-symbols:database-outline"
,
},
{
"businessId"
:
102
,
"apiName"
:
"@!&data@&!"
,
"anotherName"
:
"@!&data@&!"
,
"parentId"
:
0
,
icon
:
"material-symbols:database-outline"
,
},
{
"businessId"
:
103
,
"apiName"
:
"@sxf_db"
,
"anotherName"
:
"@sxf_db"
,
"parentId"
:
0
,
icon
:
"material-symbols:database-outline"
,
},
{
"businessId"
:
104
,
"apiName"
:
"bc_test"
,
"anotherName"
:
"bc_test"
,
"parentId"
:
0
,
icon
:
"material-symbols:database-outline"
,
},
{
"businessId"
:
105
,
"apiName"
:
"yi_test"
,
"anotherName"
:
"yi_test"
,
"parentId"
:
0
,
icon
:
"material-symbols:database-outline"
,
},
{
"businessId"
:
201
,
"apiName"
:
"demo"
,
"anotherName"
:
"demo"
,
"parentId"
:
101
,
icon
:
'uiw:table'
},
{
"businessId"
:
202
,
"apiName"
:
"demo"
,
"anotherName"
:
"demo"
,
"parentId"
:
102
,
icon
:
'uiw:table'
},
{
"businessId"
:
203
,
"apiName"
:
"demo"
,
"anotherName"
:
"demo"
,
"parentId"
:
103
,
icon
:
'uiw:table'
},
{
"businessId"
:
204
,
"apiName"
:
"demo"
,
"anotherName"
:
"demo"
,
"parentId"
:
104
,
icon
:
'uiw:table'
},
{
"businessId"
:
205
,
"apiName"
:
"yi_test"
,
"anotherName"
:
"yi_table_01"
,
"parentId"
:
105
,
icon
:
'uiw:table'
},
{
"businessId"
:
206
,
"apiName"
:
"yi_test"
,
"anotherName"
:
"yi_table_02"
,
"parentId"
:
105
,
icon
:
'uiw:table'
},
];
/**SQL模式-步骤2 列表数据1*/
export
const
step2TableData1
:
any
[]
=
[
...
...
@@ -712,8 +861,140 @@ export const trusteeshipTableData4: any[] = [
},
];
/**托管模式 列表数据5*/
export
const
trusteeshipTableData5
:
any
[]
=
[
{
parameterCode
:
'size'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.size'
,
dataType
:
'String'
,
comment
:
'size'
,
isNeed
:
'否'
,
parameterValue
:
'size'
,
},
{
parameterCode
:
'sortRules'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.sortRules[]'
,
dataType
:
'String'
,
comment
:
'sortRules'
,
isNeed
:
'否'
,
parameterValue
:
'sortRules'
,
},
{
parameterCode
:
'category'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.category'
,
dataType
:
'String'
,
comment
:
'category'
,
isNeed
:
'否'
,
parameterValue
:
'category'
,
},
{
parameterCode
:
'filterRules'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.filterRules[]'
,
dataType
:
'String'
,
comment
:
'filterRules'
,
isNeed
:
'否'
,
parameterValue
:
'filterRules'
,
},
{
parameterCode
:
'page'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.page'
,
dataType
:
'String'
,
comment
:
'page'
,
isNeed
:
'否'
,
parameterValue
:
'page'
,
},
{
parameterCode
:
'childrenRequest'
,
parameterLocation
:
'Body'
,
Xpath
:
'^.childrenRequest'
,
dataType
:
'String'
,
comment
:
'childrenRequest'
,
isNeed
:
'否'
,
parameterValue
:
'childrenRequest'
,
},
];
export
const
cardList1
:
any
[]
=
[
{
id
:
1
,
title
:
'执行(0/4)'
,
},
{
id
:
2
,
time
:
'13:57:33 2毫秒'
,
result
:
'1行结果'
,
title
:
'Insert into yi_test.yi_table_01(id,na...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#e2dfe0'
,
},
{
id
:
3
,
time
:
'13:57:33 2毫秒'
,
result
:
'0行结果'
,
title
:
'SELECT name,birthday,sum(weig...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#e2dfe0'
,
},
{
id
:
4
,
time
:
'13:57:33 2毫秒'
,
title
:
'update yl_test.yl_table_01 set birth...'
,
result
:
'0行结果'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#e2dfe0'
,
},
{
id
:
5
,
time
:
'13:57:33 2毫秒'
,
result
:
'5行结果'
,
title
:
'SELECT * FROM(SELECT a.name AS...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#e2dfe0'
,
},
]
export
const
cardList2
:
any
[]
=
[
{
id
:
1
,
title
:
'执行(4/4)'
,
},
{
id
:
2
,
time
:
'13:57:33 2毫秒'
,
result
:
'1行结果'
,
title
:
'Insert into yi_test.yi_table_01(id,na...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#2f9d59'
,
},
{
id
:
3
,
time
:
'13:57:33 2毫秒'
,
result
:
'0行结果'
,
title
:
'SELECT name,birthday,sum(weig...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#2f9d59'
,
},
{
id
:
4
,
time
:
'13:57:33 2毫秒'
,
title
:
'update yl_test.yl_table_01 set birth...'
,
result
:
'0行结果'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#2f9d59'
,
},
{
id
:
5
,
time
:
'13:57:33 2毫秒'
,
result
:
'5行结果'
,
title
:
'SELECT * FROM(SELECT a.name AS...'
,
icon
:
'ant-design:check-circle-outlined'
,
color
:
'#2f9d59'
,
},
]
/**对比左侧列表 数据1*/
...
...
src/views/dataService/serviceDevelopment/guideModeApi.vue
View file @
2bed3201
...
...
@@ -118,6 +118,8 @@
<BasicInfoDrawer
@
register=
"registerDrawer"
@
success=
"handleSuccess"
/>
<!-- api测试 抽屉-->
<ApiTestDrawer
@
register=
"registerApiTestDrawer"
@
success=
"handleSuccess"
/>
<!-- 数据预览 抽屉-->
<DataPreviewDrawer
@
register=
"registerDataPreviewDrawer"
@
success=
"handleSuccess"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
...
...
@@ -151,6 +153,7 @@
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
BasicInfoDrawer
from
'./BasicInfoDrawer.vue'
import
ApiTestDrawer
from
'./ApiTestDrawer.vue'
import
DataPreviewDrawer
from
'./DataPreviewDrawer.vue'
defineOptions
({
name
:
'Metadata'
});
const
route
=
useRoute
();
...
...
@@ -164,6 +167,7 @@
]);
const
{
createMessage
}
=
useMessage
();
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
[
registerDataPreviewDrawer
,
{
openDrawer
:
openDataPreviewDrawer
}]
=
useDrawer
();
const
[
registerApiTestDrawer
,
{
openDrawer
:
openApiTestDrawer
}]
=
useDrawer
();
const
[
registerGuideModeForm
]
=
useForm
({
labelWidth
:
100
,
...
...
@@ -363,7 +367,9 @@
/**数据预览*/
function
dataPreviewButton
()
{
openDataPreviewDrawer
(
true
,{
})
}
/**API测试*/
...
...
src/views/dataService/serviceDevelopment/sqlModeApi.vue
View file @
2bed3201
...
...
@@ -20,6 +20,10 @@
<!-- 基本信息 抽屉-->
<BasicInfoDrawer
@
register=
"registerDrawer"
@
success=
"handleSuccess"
/>
<!-- api测试 抽屉-->
<ApiTestDrawer
@
register=
"registerApiTestDrawer"
@
success=
"handleSuccess"
/>
<!-- 数据预览 抽屉-->
<DataPreviewDrawer
@
register=
"registerDataPreviewDrawer"
@
success=
"handleSuccess"
/>
</PageWrapper>
</
template
>
...
...
@@ -33,8 +37,13 @@
import
{
useGo
}
from
'@/hooks/web/usePage'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
BasicInfoDrawer
from
'./BasicInfoDrawer.vue'
import
ApiTestDrawer
from
'./ApiTestDrawer.vue'
import
DataPreviewDrawer
from
'./DataPreviewDrawer.vue'
defineOptions
({
name
:
'AccountDetail'
});
const
[
registerDrawer
,
{
openDrawer
}]
=
useDrawer
();
const
[
registerDataPreviewDrawer
,
{
openDrawer
:
openDataPreviewDrawer
}]
=
useDrawer
();
const
[
registerApiTestDrawer
,
{
openDrawer
:
openApiTestDrawer
}]
=
useDrawer
();
const
current
=
ref
(
0
);
const
go
=
useGo
();
...
...
@@ -53,6 +62,18 @@
});
}
/**API测试*/
function
apiTestButton
()
{
openApiTestDrawer
(
true
,{})
}
/**数据预览*/
function
dataPreviewButton
()
{
openDataPreviewDrawer
(
true
,{
})
}
// 页面左侧点击返回链接时的操作
function
goBack
()
{
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
...
...
src/views/dataService/serviceDevelopment/sqlModeStep1.vue
View file @
2bed3201
...
...
@@ -12,7 +12,7 @@
/>
</div>
<div>
<a-button
type=
"primary"
@
click=
""
>
元数据预览
</a-button>
<a-button
type=
"primary"
@
click=
"
previewButton
"
>
元数据预览
</a-button>
</div>
</div>
<div>
...
...
@@ -48,6 +48,8 @@
</div>
<!-- SQL设置 弹窗-->
<SqlSettingModal
@
register=
"registerSqlSettingModal"
@
success=
"handleSuccess"
/>
<!-- 元数据预览 抽屉-->
<MetadataPreviewDrawer
@
register=
"registerMetadataPreviewDrawer"
@
success=
"handleSuccess"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
setup
>
...
...
@@ -65,7 +67,10 @@
import
{
Alert
,
Space
}
from
'ant-design-vue'
;
import
{
Select
}
from
'ant-design-vue'
;
import
SqlSettingModal
from
'./sqlSettingModal.vue'
import
MetadataPreviewDrawer
from
'./MetadataPreviewDrawer.vue'
import
{
useDrawer
}
from
'@/components/Drawer'
;
const
[
registerMetadataPreviewDrawer
,
{
openDrawer
:
openMetadataPreviewDrawer
}]
=
useDrawer
();
const
[
registerRunModal
,
{
openModal
:
openRunModal
}]
=
useModal
();
const
[
registerSqlSettingModal
,
{
openModal
:
openSqlSettingModal
}]
=
useModal
();
const
[
registerSelectDatasourceModal
,
{
openModal
:
openSelectDatasourceModal
}]
=
useModal
();
...
...
@@ -161,6 +166,15 @@
})
}
/**元数据预览*/
function
previewButton
()
{
openMetadataPreviewDrawer
(
true
,
{
});
}
/**初始化*/
onMounted
(()
=>
{
optionValue
.
value
=
'1'
...
...
src/views/dataService/serviceDevelopment/trusteeshipApiTest.vue
0 → 100644
View file @
2bed3201
<
template
>
<PageWrapper
title=
"API测试"
class=
"content-padding"
contentBackground
@
back=
"goBack"
>
<div
style=
"margin-top: 20px;margin-bottom: 20px;margin-left: 10px;display: flex"
>
参数输入模式
<Select
class=
"selectCss"
v-model:value=
"optionValue"
show-search
placeholder=
"input search text"
:options=
"options"
@
search=
"handleSearch"
/>
</div>
<BasicTable
@
register=
"registerTable1"
/>
<a-button
type=
"primary"
@
click=
"testButton"
>
测试
</a-button>
</PageWrapper>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
Description
}
from
'@/components/Description'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
step2TableData1
,
step2TableData2
,
trusteeshipTableData5
}
from
'./apiData'
;
import
{
ref
,
reactive
,
onMounted
}
from
'vue'
;
import
{
Select
,
Textarea
}
from
'ant-design-vue'
;
import
CodeEditor
from
"@/components/CodeEditor/src/CodeEditor.vue"
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
step2TableColumns2
,
trusteeshipTableColumns7
}
from
'./api.data'
;
import
{
router
}
from
"@/router"
;
const
{
createMessage
}
=
useMessage
();
const
emit
=
defineEmits
([
'next'
]);
const
optionValue
=
ref
(
''
)
const
options
=
ref
([
{
label
:
'参数模式'
,
value
:
'参数模式'
},
{
label
:
'报文模式'
,
value
:
'报文模式'
},
])
const
show
=
ref
(
false
)
const
[
registerTable1
]
=
useTable
({
title
:
'请求参数'
,
api
:
async
(
params
)
=>
{
var
data
=
[];
const
response
=
{
pageNu
:
"1"
,
pageSize
:
"10"
,
pages
:
"1"
,
total
:
trusteeshipTableData5
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
return
{
...
response
,
data
:
trusteeshipTableData5
};
},
columns
:
trusteeshipTableColumns7
,
useSearchForm
:
false
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
true
,
scroll
:
{
y
:
300
},
});
const
[
registerTable2
]
=
useTable
({
title
:
'入参映射'
,
api
:
async
(
params
)
=>
{
var
data
=
[];
const
response
=
{
pageNu
:
"1"
,
pageSize
:
"10"
,
pages
:
"1"
,
total
:
step2TableData2
.
length
,
code
:
''
,
message
:
''
,
data
:
[],
};
//过滤data中的数据,取出等于params.deptId的数据
return
{
...
response
,
data
:
step2TableData2
};
},
columns
:
step2TableColumns2
,
useSearchForm
:
false
,
showTableSetting
:
false
,
showIndexColumn
:
false
,
bordered
:
true
,
scroll
:
{
y
:
300
},
});
/**测试按钮*/
function
testButton
(){
router
.
push
({
path
:
'/dataService/serviceDevelopment/trusteeshipApiTest'
,
query
:
{},
});
}
/**初始化*/
onMounted
(()
=>
{
optionValue
.
value
=
'参数模式'
});
</
script
>
<
style
lang=
"less"
scoped
>
.selectCss{
::v-deep(.ant-select-selector){
width:200px!important;
}
}
</
style
>
src/views/dataService/serviceDevelopment/trusteeshipModeApi.vue
View file @
2bed3201
<
template
>
<PageWrapper
title=
"托管模式"
contentFullHeight
contentBackground
>
<div
style=
"display: flex; justify-content: flex-end;margin-bottom: 10px"
>
<div
style=
"display: flex; justify-content: flex-end;margin-bottom: 10px
;margin-top: 10px
"
>
<a-button
type=
"primary"
@
click=
"basicInfoButton"
style=
"margin-right: 10px"
>
基本信息
</a-button>
<a-button
type=
"primary"
@
click=
"apiTestButton"
style=
"margin-right: 10px"
>
API测试
</a-button>
<a-button
type=
"primary"
@
click=
"publishButton"
style=
"margin-right: 10px"
>
发布
</a-button>
...
...
@@ -219,6 +219,7 @@
import
{
useModal
}
from
'@/components/Modal'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
import
BasicInfoDrawer
from
'./BasicInfoDrawer.vue'
import
{
router
}
from
"@/router"
;
defineOptions
({
name
:
'AccountModal'
});
const
emit
=
defineEmits
([
'success'
,
'register'
]);
...
...
@@ -445,6 +446,14 @@
}
/**API测试 按钮*/
function
apiTestButton
()
{
router
.
push
({
path
:
'/dataService/serviceDevelopment/trusteeshipApiTest'
,
query
:
{},
});
}
function
handleChangeTab
(
key
:
string
)
{
// 处理标签页切换逻辑...
}
...
...
src/views/dataService/serviceDevelopment/trusteeshipModeApiTest.vue
0 → 100644
View file @
2bed3201
<
template
>
<PageWrapper
title=
""
contentFullHeight
contentBackground
>
111
</PageWrapper>
</
template
>
<
script
lang=
"ts"
setup
>
import
{
PageWrapper
}
from
'@/components/Page'
;
import
{
}
from
'./api.data'
;
import
{
}
from
'./apiData'
;
import
{
useMessage
}
from
'@/hooks/web/useMessage'
;
import
{
BasicForm
,
useForm
}
from
'@/components/Form'
;
import
{
onMounted
,
ref
}
from
"vue"
;
import
{
Select
}
from
'ant-design-vue'
;
import
Icon
from
'@/components/Icon/Icon.vue'
;
import
{
router
}
from
"@/router"
;
import
{
useRoute
,
onBeforeRouteLeave
}
from
'vue-router'
;
import
{
Divider
}
from
'ant-design-vue'
;
import
{
BasicTable
,
useTable
,
TableAction
}
from
'@/components/Table'
;
import
{
useDrawer
}
from
'@/components/Drawer'
;
defineOptions
({
name
:
'Metadata'
});
const
route
=
useRoute
();
const
{
createMessage
}
=
useMessage
();
onMounted
(()
=>
{
});
</
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