blob: 154a00bceb6e875dab82588e7383db426c1a9948 [file] [log] [blame]
<!--
~ Licensed to 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. Apache Software Foundation (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.
-->
<script setup>
import { reactive } from 'vue';
import { watch, getCurrentInstance } from '@vue/runtime-core';
import { useRoute } from 'vue-router';
import { getSecondaryDataModel } from '@/api/index';
import FormHeader from '../common/FormHeader.vue';
const { proxy } = getCurrentInstance();
const $loadingCreate = getCurrentInstance().appContext.config.globalProperties.$loadingCreate;
const $loadingClose = proxy.$loadingClose;
const data = reactive({
group: '',
name: '',
type: '',
operator: '',
indexRule: {},
});
const route = useRoute();
watch(
() => route,
() => {
data.group = route.params.group;
data.name = route.params.name;
data.type = route.params.type;
data.operator = route.params.operator;
initData();
},
{
immediate: true,
deep: true,
},
);
async function initData() {
if (!(data.type && data.group && data.name)) {
return;
}
$loadingCreate();
const result = await getSecondaryDataModel(data.type, data.group, data.name);
$loadingClose();
if (!(result.data && result.data.indexRule)) {
ElMessage({
message: `Please refresh and try again.`,
type: 'error',
duration: 3000,
});
return;
}
data.indexRule = { ...result.data.indexRule, noSort: String(result.data.indexRule.noSort) };
}
</script>
<template>
<div>
<el-card>
<template #header>
<FormHeader :fields="data" />
</template>
<el-form label-position="left" label-width="100px" :model="data.indexRule" style="width: 90%">
<el-form-item label="Analyzer">
<el-input v-model="data.indexRule.analyzer" :disabled="true"></el-input>
</el-form-item>
<el-form-item label="Tags">
<el-select
class="tags-and-rules"
v-model="data.indexRule.tags"
style="width: 100%"
:disabled="true"
multiple
></el-select>
</el-form-item>
<el-form-item label="Type">
<el-input v-model="data.indexRule.type" disabled></el-input>
</el-form-item>
<el-form-item label="No Sort">
<el-input v-model="data.indexRule.noSort" disabled></el-input>
</el-form-item>
</el-form>
</el-card>
</div>
</template>
<style lang="scss" scoped>
:deep(.el-card) {
margin: 15px;
}
</style>