feat: add paramRoute in sceneConfig page
diff --git a/ui-vue3/src/views/resources/services/tabs/paramRoute.vue b/ui-vue3/src/views/resources/services/tabs/paramRoute.vue
new file mode 100644
index 0000000..8d7ae99
--- /dev/null
+++ b/ui-vue3/src/views/resources/services/tabs/paramRoute.vue
@@ -0,0 +1,170 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one or more
+ ~ contributor license agreements. See the NOTICE file distributed with
+ ~ this work for additional information regarding copyright ownership.
+ ~ The ASF licenses this file to You under the Apache License, Version 2.0
+ ~ (the "License"); you may not use this file except in compliance with
+ ~ the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+-->
+<template>
+ <div class="__container_services_tabs_param_route">
+ <a-card :bordered="false" style="width: 800px">
+ <template #title>
+ <a-flex justify="space-between">
+ <span>路由</span>
+ <a-flex class="handle-form">
+ <EditOutlined style="font-size: 18px" />
+ <DeleteOutlined style="font-size: 18px" />
+ </a-flex>
+ </a-flex>
+ </template>
+ <a-form-item
+ label="选择方法"
+ >
+ <a-select
+ v-model:value="method.value"
+ style="width: 120px"
+ >
+ <a-select-option v-for="item, index in method.selectArr" :value="item" :key="index">
+ {{ item }}
+ </a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item
+ label="指定方法参数"
+ >
+ <a-table :columns="functionParamsColumn" :data-source="props.paramRouteForm.functionParams" :pagination="false">
+ <template #bodyCell="{ column, index }">
+ <template v-if="column.dataIndex === 'param'">
+ <a-input v-model:value="functionParamsEdit[index].param" />
+ </template>
+ <template v-if="column.dataIndex === 'relation'">
+ <a-input v-model:value="functionParamsEdit[index].relation" />
+ </template>
+ <template v-if="column.dataIndex === 'value'">
+ <a-input v-model:value="functionParamsEdit[index].value" />
+ </template>
+ <template v-if="column.dataIndex === 'handle'">
+ <PlusOutlined style="font-size: 18px" />
+ <MinusOutlined style="font-size: 18px" />
+ </template>
+ </template>
+ </a-table>
+ </a-form-item>
+ <a-form-item
+ label="路由目的地"
+ >
+ <a-table :columns="destinationColumn" :data-source="props.paramRouteForm.destination" :pagination="false">
+ <template #bodyCell="{ column, index }">
+ <template v-if="column.dataIndex === 'label'">
+ <a-input v-model:value="destinationEdit[index].label" />
+ </template>
+ <template v-if="column.dataIndex === 'relation'">
+ <a-input v-model:value="destinationEdit[index].relation" />
+ </template>
+ <template v-if="column.dataIndex === 'value'">
+ <a-input v-model:value="destinationEdit[index].value" />
+ </template>
+ <template v-if="column.dataIndex === 'weight'">
+ <a-input v-model:value="destinationEdit[index].weight" />
+ </template>
+ <template v-if="column.dataIndex === 'handle'">
+ <PlusOutlined style="font-size: 18px" />
+ <MinusOutlined style="font-size: 18px" />
+ </template>
+ </template>
+ </a-table>
+ </a-form-item>
+ </a-card>
+ </div>
+</template>
+
+<script setup lang="ts">
+import { EditOutlined, DeleteOutlined, PlusOutlined, MinusOutlined } from '@ant-design/icons-vue';
+import { ref } from 'vue'
+
+const props = defineProps<{
+ paramRouteForm: {
+ type: Object,
+ default: {}
+ },
+}>()
+
+const method = ref(JSON.parse(JSON.stringify(props.paramRouteForm.method)));
+const functionParamsEdit = ref(JSON.parse(JSON.stringify(props.paramRouteForm.functionParams)))
+const destinationEdit = ref(JSON.parse(JSON.stringify(props.paramRouteForm.destination)))
+
+const functionParamsColumn = [
+ {
+ title: '参数索引',
+ key: 'param',
+ dataIndex: 'param',
+ width: '30%'
+ },
+ {
+ title: '关系',
+ key: 'relation',
+ dataIndex: 'relation',
+ width: '30%'
+ },
+ {
+ title: '值',
+ key: 'value',
+ dataIndex: 'value',
+ width: '30%'
+ },
+ {
+ title: '操作',
+ key: 'handle',
+ dataIndex: 'handle',
+ width: '10%'
+ },
+]
+
+const destinationColumn = [
+{
+ title: '标签',
+ key: 'label',
+ dataIndex: 'label',
+ width: '25%'
+ },
+ {
+ title: '关系',
+ key: 'relation',
+ dataIndex: 'relation',
+ width: '25%'
+ },
+ {
+ title: '值',
+ key: 'value',
+ dataIndex: 'value',
+ width: '25%'
+ },
+ {
+ title: '权重',
+ key: 'weight',
+ dataIndex: 'weight',
+ width: '15%'
+ },
+ {
+ title: '操作',
+ key: 'handle',
+ dataIndex: 'handle',
+ width: '10%'
+ },
+]
+</script>
+
+<style lang="less" scoped>
+.__container_services_tabs_param_route {
+
+}
+</style>