Commit 2bed3201 authored by liwei's avatar liwei

新增了服务开发页面

parent 1b755d1a
......@@ -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: '',
},
},
],
};
......
<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 }}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
{{ 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>
<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>
......@@ -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[] = [
{
......
......@@ -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*/
......
......@@ -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测试*/
......
......@@ -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() {
// 本例的效果时点击返回始终跳转到账号列表页,实际应用时可返回上一页
......
......@@ -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'
......
<template>
<PageWrapper title="API测试" class="content-padding" contentBackground @back="goBack">
<div style="margin-top: 20px;margin-bottom: 20px;margin-left: 10px;display: flex">
参数输入模式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>
<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) {
// 处理标签页切换逻辑...
}
......
<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>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment