blob: 93e11aa2bbdc55959af0b4b77770d72e45e85d3f [file] [log] [blame]
<!--
* 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="drawer">
<el-dialog :title="$t('device.newquery')" v-model="centerDialogVisible" width="30%" @close="centerDialogV">
<el-form ref="form" label-width="75px">
<el-form-item :label="$t('device.dataconnection')" :rules="{ required: true, message: $t('device.selectdataconnections'), trigger: 'blur' }">
<!-- <span>{{ $t('device.dataconnection') }}</span> -->
<el-select v-model="linkData" :placeholder="$t('device.selectdataconnections')">
<el-option v-for="item in linkList.list" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="centerDialogV">{{ $t('device.cencel') }}</el-button>
<el-button type="primary" @click="centerDialog">{{ $t('device.ok') }}</el-button>
</span>
</template>
</el-dialog>
</div>
</template>
<script>
import { ElDialog, ElButton, ElForm, ElSelect, ElOption, ElFormItem, ElMessage } from 'element-plus';
import { onMounted, reactive, ref } from 'vue';
import { useStore } from 'vuex';
import { useI18n } from 'vue-i18n';
import { getlink } from '../api/index';
export default {
name: 'sqldrawer',
props: ['func'],
setup(props, { emit }) {
const { t } = useI18n();
const uerInfo = useStore();
const linkList = reactive({
list: [],
});
const linkData = ref(null);
function centerDialog() {
if (linkData.value) {
props.func.updateTree([`${linkData.value}connection`, `${linkData.value}connection:querylist`], true);
props.func.addTab(`${linkData.value}connection:querylist:newquery`, {}, true);
emit('coloseDrawer');
} else {
ElMessage.error(`${t('device.selectdataconnection')}!`);
}
}
function centerDialogV() {
emit('coloseDrawer');
}
onMounted(() => {
getlink({ userId: uerInfo.state.userInfo.userId }).then((res) => {
linkList.list = res.data.aliasList.map((item) => {
return {
label: item.alias,
value: item.id,
};
});
});
});
const centerDialogVisible = ref(true);
return { centerDialogVisible, linkList, linkData, centerDialog, centerDialogV };
},
components: {
ElDialog,
ElButton,
ElForm,
ElSelect,
ElOption,
ElFormItem,
},
};
</script>
<style lang="scss" scoped>
.drawer {
.el-dialog__header {
border-bottom: 1px solid #efefef;
}
}
:deep(.el-form) {
.el-form-item {
display: flex;
width: 100%;
margin-bottom: 0;
}
.el-select {
width: 100%;
}
.el-input__suffix {
top: -2px;
}
}
</style>