11<template >
22 <div class =" p-16-24" >
33 <h2 class =" mb-16" >{{ $t('views.applicationOverview.title') }}</h2 >
4-
54 <el-scrollbar >
65 <div class =" main-calc-height" >
76 <el-card style =" --el-card-padding : 24px " >
5352 :active-text =" $t('views.applicationOverview.appInfo.openText')"
5453 :inactive-text =" $t('views.applicationOverview.appInfo.closeText')"
5554 :before-change =" () => changeState(accessToken.is_active)"
56- v-hasPermission =" [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.APPLICATION_EDIT.getWorkspacePermission]"
55+ v-hasPermission =" [
56+ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
57+ PermissionConst.APPLICATION_EDIT.getWorkspacePermission,
58+ ]"
5759 />
5860 </div >
5961
9294 <AppIcon iconName =" app-create-chat" class =" mr-4" ></AppIcon >
9395 {{ $t('views.application.operation.toChat') }}
9496 </el-button >
95- <el-button :disabled =" !accessToken?.is_active" @click =" openDialog"
96- v-hasPermission =" [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.APPLICATION_OVERVIEW_EMBEDDED.getWorkspacePermission]"
97+ <el-button
98+ :disabled =" !accessToken?.is_active"
99+ @click =" openDialog"
100+ v-hasPermission =" [
101+ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
102+ PermissionConst.APPLICATION_OVERVIEW_EMBEDDED.getWorkspacePermission,
103+ ]"
97104 >
98105 <AppIcon iconName =" app-export" class =" mr-4" ></AppIcon >
99106 {{ $t('views.applicationOverview.appInfo.embedInWebsite') }}
100107 </el-button >
101- <el-button @click =" openLimitDialog"
102- v-hasPermission =" [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.APPLICATION_OVERVIEW_ACCESS.getWorkspacePermission]"
108+ <!-- 访问限制 -->
109+ <el-button
110+ @click =" openLimitDialog"
111+ v-hasPermission =" [
112+ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
113+ PermissionConst.APPLICATION_OVERVIEW_ACCESS.getWorkspacePermission,
114+ ]"
103115 >
104116 <el-icon class =" mr-4" ><Lock /></el-icon >
105117 {{ $t('views.applicationOverview.appInfo.accessControl') }}
106118 </el-button >
107- <el-button @click =" openDisplaySettingDialog"
108- v-hasPermission =" [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.APPLICATION_OVERVIEW_DISPLAY.getWorkspacePermission]"
119+ <!-- 显示设置 -->
120+ <el-button
121+ @click =" openDisplaySettingDialog"
122+ v-hasPermission =" [
123+ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
124+ PermissionConst.APPLICATION_OVERVIEW_DISPLAY.getWorkspacePermission,
125+ ]"
109126 >
110127 <el-icon class =" mr-4" ><Setting /></el-icon >
111128 {{ $t('views.applicationOverview.appInfo.displaySetting') }}
146163 </div >
147164 </div >
148165 <div >
149- <el-button @click =" openAPIKeyDialog"
150- v-hasPermission =" [RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,PermissionConst.APPLICATION_OVERVIEW_API_KEY.getWorkspacePermission]"
166+ <el-button
167+ @click =" openAPIKeyDialog"
168+ v-hasPermission =" [
169+ RoleConst.WORKSPACE_MANAGE.getWorkspaceRole,
170+ PermissionConst.APPLICATION_OVERVIEW_API_KEY.getWorkspacePermission,
171+ ]"
151172 >
152173 <el-icon class =" mr-4" ><Key /></el-icon >
153174 {{ $t('views.applicationOverview.appInfo.apiKey') }}</el-button
199220 :api-input-params =" mapToUrlParams(apiInputParams)"
200221 />
201222 <APIKeyDialog ref =" APIKeyDialogRef" />
202- <LimitDialog ref =" LimitDialogRef" @refresh =" refresh" />
203223 <EditAvatarDialog ref =" EditAvatarDialogRef" @refresh =" refreshIcon" />
204- <XPackDisplaySettingDialog ref =" XPackDisplaySettingDialogRef" @refresh =" refresh" />
205- <!-- v-if="user.isEnterprise()" -->
206- <DisplaySettingDialog ref =" DisplaySettingDialogRef" @refresh =" refresh" />
224+
225+ <!-- 社区版访问限制 -->
226+ <component :is =" currentLimitDialog" ref =" LimitDialogRef" @refresh =" refresh" />
227+ <!-- 显示设置 -->
228+ <component :is =" currentDisplaySettingDialog" ref =" DisplaySettingDialogRef" @refresh =" refresh" />
207229 </div >
208230</template >
209231<script setup lang="ts">
210- import { ref , computed , onMounted , watch } from ' vue'
232+ import { ref , computed , onMounted , shallowRef , nextTick } from ' vue'
211233import { useRoute } from ' vue-router'
212234import EmbedDialog from ' ./component/EmbedDialog.vue'
213235import APIKeyDialog from ' ./component/APIKeyDialog.vue'
214236import LimitDialog from ' ./component/LimitDialog.vue'
237+ import XPackLimitDrawer from ' ./xpack-component/XPackLimitDrawer.vue'
215238import DisplaySettingDialog from ' ./component/DisplaySettingDialog.vue'
216- import XPackDisplaySettingDialog from ' ./component/XPackDisplaySettingDialog.vue'
239+ import XPackDisplaySettingDialog from ' ./xpack- component/XPackDisplaySettingDialog.vue'
217240import EditAvatarDialog from ' ./component/EditAvatarDialog.vue'
218241import StatisticsCharts from ' ./component/StatisticsCharts.vue'
219242import applicationApi from ' @/api/application/application'
220- import overviewApi from ' @/api/application/application-key'
221243import { nowDate , beforeDay } from ' @/utils/time'
222244import { MsgSuccess , MsgConfirm } from ' @/utils/message'
223245import { copyClick } from ' @/utils/clipboard'
224246import { isAppIcon } from ' @/utils/common'
225247import useStore from ' @/stores'
226248import { t } from ' @/locales'
227- import { PermissionConst , RoleConst } from ' @/utils/permission/data'
249+ import { PermissionConst , RoleConst , EditionConst } from ' @/utils/permission/data'
228250import { hasPermission } from ' @/utils/permission/index'
229251const { user, application } = useStore ()
230252const route = useRoute ()
@@ -236,10 +258,7 @@ const apiUrl = window.location.origin + '/doc/chat/'
236258
237259const baseUrl = window .location .origin + ' /api/application/'
238260
239- const DisplaySettingDialogRef = ref ()
240- const XPackDisplaySettingDialogRef = ref ()
241261const EditAvatarDialogRef = ref ()
242- const LimitDialogRef = ref ()
243262const APIKeyDialogRef = ref ()
244263const EmbedDialogRef = ref ()
245264
@@ -299,13 +318,39 @@ const apiInputParams = ref([])
299318function toUrl(url : string ) {
300319 window .open (url , ' _blank' )
301320}
321+
322+ // 显示设置
323+ const DisplaySettingDialogRef = ref ()
324+ const currentDisplaySettingDialog = shallowRef <any >(null )
302325function openDisplaySettingDialog() {
303- // if (user.isEnterprise()) {
304- XPackDisplaySettingDialogRef .value ?.open (accessToken .value , detail .value )
305- // } else {
306- // DisplaySettingDialogRef.value?.open(accessToken.value, detail.value)
307- // }
326+ // 企业版和专业版
327+ if (hasPermission ([EditionConst .IS_EE , EditionConst .IS_PE ], ' OR' )) {
328+ currentDisplaySettingDialog .value = XPackDisplaySettingDialog
329+ } else {
330+ // 社区版
331+ currentDisplaySettingDialog .value = DisplaySettingDialog
332+ }
333+ nextTick (() => {
334+ DisplaySettingDialogRef .value ?.open (accessToken .value , detail .value )
335+ })
308336}
337+
338+ // 访问限制
339+ const LimitDialogRef = ref ()
340+ const currentLimitDialog = shallowRef <any >(null )
341+ function openLimitDialog() {
342+ // 企业版和专业版
343+ if (hasPermission ([EditionConst .IS_EE , EditionConst .IS_PE ], ' OR' )) {
344+ currentLimitDialog .value = XPackLimitDrawer
345+ } else {
346+ // 社区版
347+ currentLimitDialog .value = LimitDialog
348+ }
349+ nextTick (() => {
350+ LimitDialogRef .value .open (accessToken .value )
351+ })
352+ }
353+
309354function openEditAvatar() {
310355 EditAvatarDialogRef .value .open (detail .value )
311356}
@@ -370,10 +415,6 @@ async function updateAccessToken(obj: any, str: string) {
370415 })
371416}
372417
373- function openLimitDialog() {
374- LimitDialogRef .value .open (accessToken .value )
375- }
376-
377418function openAPIKeyDialog() {
378419 APIKeyDialogRef .value .open ()
379420}
0 commit comments