68 lines
1.5 KiB
Vue
68 lines
1.5 KiB
Vue
<!--
|
|
- Copyright (c) 2024 LangChat. TyCoding All Rights Reserved.
|
|
-
|
|
- Licensed under the GNU Affero General Public License, Version 3 (the "License");
|
|
- you may not use this file except in compliance with the License.
|
|
- You may obtain a copy of the License at
|
|
-
|
|
- https://www.gnu.org/licenses/agpl-3.0.html
|
|
-
|
|
- 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 lang="ts" setup>
|
|
import { onMounted, ref, toRaw } from 'vue'
|
|
import { AppApi } from '@/api/new-ai/app'
|
|
|
|
const props = defineProps<{
|
|
id: any
|
|
}>()
|
|
const emit = defineEmits(['update'])
|
|
const options = ref([])
|
|
const appId = ref('')
|
|
|
|
onMounted(async () => {
|
|
options.value = await AppApi.getAppList({})
|
|
appId.value = props.id
|
|
})
|
|
|
|
function onUpdate(val: any) {
|
|
const obj = toRaw(options.value.find(item => item.id === val))
|
|
if (obj == null) {
|
|
emit('update', {
|
|
id: '',
|
|
})
|
|
} else {
|
|
emit('update', {
|
|
id: obj.id,
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<template>
|
|
<el-select
|
|
v-model="appId"
|
|
clearable
|
|
placeholder="请选择关联应用"
|
|
@change="onUpdate"
|
|
>
|
|
<el-option
|
|
v-for="item in options"
|
|
:key="item.id"
|
|
:label="item.name"
|
|
:value="item.id"
|
|
/>
|
|
</el-select>
|
|
</template>
|
|
|
|
<style lang="scss" scoped>
|
|
:deep(.el-select) {
|
|
width: 100%;
|
|
}
|
|
</style>
|