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>