Skip to content

Commit 76b13ef

Browse files
feat: resource trigger
1 parent 068efcb commit 76b13ef

File tree

9 files changed

+419
-123
lines changed

9 files changed

+419
-123
lines changed

ui/src/api/system-resource-management/trigger.ts

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const prefix = 'system/resource'
1818
*/
1919
const postResourceTrigger: (
2020
source_type: string,
21-
resource_id: string,
21+
source_id: string,
2222
data: TriggerData,
2323
loading?: Ref<boolean>,
2424
) => Promise<Result<any>> = (source_type, source_id, data, loading) => {
@@ -32,14 +32,14 @@ const postResourceTrigger: (
3232

3333
/**
3434
* 资源端触发器列表
35-
* @param source_type
36-
* @param source_id
37-
* @param loading
38-
* @returns
35+
* @param source_type
36+
* @param source_id
37+
* @param loading
38+
* @returns
3939
*/
4040
const getResourceTriggerList: (
4141
source_type: string,
42-
resource_id: string,
42+
source_id: string,
4343
loading?: Ref<boolean>,
4444
) => Promise<Result<any>> = (source_type, source_id, loading) => {
4545
return get(
@@ -51,15 +51,15 @@ const getResourceTriggerList: (
5151

5252
/**
5353
* 资源端触发器详情
54-
* @param source_type
55-
* @param source_id
56-
* @param trigger_id
57-
* @param loading
58-
* @returns
54+
* @param source_type
55+
* @param source_id
56+
* @param trigger_id
57+
* @param loading
58+
* @returns
5959
*/
6060
const getResourceTriggerDetail: (
6161
source_type: string,
62-
resource_id: string,
62+
source_id: string,
6363
trigger_id: string,
6464
loading?: Ref<boolean>,
6565
) => Promise<Result<any>> = (source_type, source_id, trigger_id, loading) => {
@@ -72,15 +72,15 @@ const getResourceTriggerDetail: (
7272

7373
/**
7474
* 资源端删除触发器
75-
* @param source_type
76-
* @param source_id
77-
* @param trigger_id
78-
* @param loading
79-
* @returns
75+
* @param source_type
76+
* @param source_id
77+
* @param trigger_id
78+
* @param loading
79+
* @returns
8080
*/
8181
const deleteResourceTrigger: (
8282
source_type: string,
83-
resource_id: string,
83+
source_id: string,
8484
trigger_id: string,
8585
loading?: Ref<boolean>,
8686
) => Promise<Result<any>> = (source_type, source_id, trigger_id, loading) => {
@@ -103,7 +103,7 @@ const deleteResourceTrigger: (
103103
*/
104104
const putResourceTrigger: (
105105
source_type: string,
106-
resource_id: string,
106+
source_id: string,
107107
trigger_id: string,
108108
data: TriggerData,
109109
loading?: Ref<boolean>,
@@ -122,4 +122,4 @@ export default {
122122
getResourceTriggerDetail,
123123
deleteResourceTrigger,
124124
putResourceTrigger
125-
}
125+
}

ui/src/api/trigger/trigger.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ const getTriggerTaskRecordDetails = (
173173
*/
174174
const postResourceTrigger: (
175175
source_type: string,
176-
resource_id: string,
176+
source_id: string,
177177
data: TriggerData,
178178
loading?: Ref<boolean>,
179179
) => Promise<Result<any>> = (source_type, source_id, data, loading) => {
@@ -187,14 +187,14 @@ const postResourceTrigger: (
187187

188188
/**
189189
* 资源端触发器列表
190-
* @param source_type
191-
* @param source_id
192-
* @param loading
193-
* @returns
190+
* @param source_type
191+
* @param source_id
192+
* @param loading
193+
* @returns
194194
*/
195195
const getResourceTriggerList: (
196196
source_type: string,
197-
resource_id: string,
197+
source_id: string,
198198
loading?: Ref<boolean>,
199199
) => Promise<Result<any>> = (source_type, source_id, loading) => {
200200
return get(
@@ -206,15 +206,15 @@ const getResourceTriggerList: (
206206

207207
/**
208208
* 资源端触发器详情
209-
* @param source_type
210-
* @param source_id
211-
* @param trigger_id
212-
* @param loading
213-
* @returns
209+
* @param source_type
210+
* @param source_id
211+
* @param trigger_id
212+
* @param loading
213+
* @returns
214214
*/
215215
const getResourceTriggerDetail: (
216216
source_type: string,
217-
resource_id: string,
217+
source_id: string,
218218
trigger_id: string,
219219
loading?: Ref<boolean>,
220220
) => Promise<Result<any>> = (source_type, source_id, trigger_id, loading) => {
@@ -227,15 +227,15 @@ const getResourceTriggerDetail: (
227227

228228
/**
229229
* 资源端删除触发器
230-
* @param source_type
231-
* @param source_id
232-
* @param trigger_id
233-
* @param loading
234-
* @returns
230+
* @param source_type
231+
* @param source_id
232+
* @param trigger_id
233+
* @param loading
234+
* @returns
235235
*/
236236
const deleteResourceTrigger: (
237237
source_type: string,
238-
resource_id: string,
238+
source_id: string,
239239
trigger_id: string,
240240
loading?: Ref<boolean>,
241241
) => Promise<Result<any>> = (source_type, source_id, trigger_id, loading) => {
@@ -258,7 +258,7 @@ const deleteResourceTrigger: (
258258
*/
259259
const putResourceTrigger: (
260260
source_type: string,
261-
resource_id: string,
261+
source_id: string,
262262
trigger_id: string,
263263
data: TriggerData,
264264
loading?: Ref<boolean>,

ui/src/utils/dynamics-api/shared-api.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import applicationKeyWorkspaceApi from '@/api/application/application-key'
1111
import workflowVersionWorkspaceApi from '@/api/application/workflow-version'
1212
import chatLogWorkspaceApi from '@/api/application/chat-log'
1313
import resourceAuthorizationWorkspaceApi from '@/api/workspace/resource-authorization'
14+
import triggerApi from '@/api/trigger/trigger'
1415
import sharedWorkspaceApi from '@/api/shared-workspace'
1516
import toolSystemShareApi from '@/api/system-shared/tool'
1617
import modelSystemShareApi from '@/api/system-shared/model'
@@ -38,6 +39,8 @@ import resourceAuthorizationResourceApi
3839
import folderResourceApi from '@/api/system-resource-management/folder'
3940
import systemResourceMappingApi from '@/api/system-shared/resource-mapping'
4041
import resourceManageMappingApi from '@/api/system-resource-management/resource-mapping'
42+
import resourceTriggerApi from '@/api/system-resource-management/trigger'
43+
4144

4245
// 普通 API
4346
const workspaceApiMap = {
@@ -56,6 +59,7 @@ const workspaceApiMap = {
5659
resourceAuthorization: resourceAuthorizationWorkspaceApi,
5760
folder: folderWorkspaceApi,
5861
resourceMapping: resourceMappingApi,
62+
trigger: triggerApi,
5963
} as any
6064

6165
// 系统分享 API
@@ -87,6 +91,7 @@ const systemManageApiMap = {
8791
resourceAuthorization: resourceAuthorizationResourceApi,
8892
folder: folderResourceApi,
8993
resourceMapping: resourceManageMappingApi,
94+
trigger: resourceTriggerApi,
9095
} as any
9196

9297
const data = {

ui/src/views/application/ApplicationSetting.vue

Lines changed: 52 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -760,11 +760,30 @@
760760
</el-button>
761761
</div>
762762
</template>
763-
<el-card shadow="never" class="card-never" style="--el-card-padding: 12px">
764-
<div class="w-full">
765-
<!-- TO DO -->
766-
</div>
767-
</el-card>
763+
<div v-if="triggerList.length > 0" class="w-full">
764+
<template v-for="(item, index) in triggerList" :key="index">
765+
<div
766+
class="flex-between border border-r-6 white-bg mb-8"
767+
style="padding: 2px 8px"
768+
>
769+
<div class="flex align-center">
770+
<TriggerIcon :type="item.trigger_type" class="mr-8" :size="20" />
771+
<span class="ellipsis-1"> {{ item.name }}</span>
772+
</div>
773+
<div>
774+
<span class="mr-4">
775+
<el-button text @click="openEditTriggerDrawer(item)">
776+
<AppIcon iconName="app-edit" class="color-secondary"></AppIcon>
777+
</el-button>
778+
</span>
779+
780+
<el-button text @click="removeTrigger(item)">
781+
<el-icon><Close /></el-icon>
782+
</el-button>
783+
</div>
784+
</div>
785+
</template>
786+
</div>
768787
</el-form-item>
769788
</el-form>
770789
</el-scrollbar>
@@ -808,6 +827,7 @@
808827
ref="triggerDrawerRef"
809828
:create-trigger="createTrigger"
810829
:edit-trigger="editTrigger"
830+
resourceType="APPLICATION"
811831
></TriggerDrawer>
812832
</div>
813833
</template>
@@ -855,12 +875,6 @@ const apiType = computed(() => {
855875
const permissionPrecise = computed(() => {
856876
return permissionMap['application'][apiType.value]
857877
})
858-
const createTrigger = (trigger: any) => {
859-
return triggerAPI.postResourceTrigger('APPLICATION', id, trigger)
860-
}
861-
const editTrigger = (trigger_id: string, trigger: any) => {
862-
return triggerAPI.putResourceTrigger('APPLICATION', id, trigger_id, trigger)
863-
}
864878
const toolPermissionPrecise = computed(() => {
865879
return permissionMap['tool'][apiType.value]
866880
})
@@ -939,7 +953,6 @@ const applicationForm = ref<ApplicationFormType>({
939953
tool_ids: [],
940954
mcp_output_enable: false,
941955
})
942-
const themeDetail = ref({})
943956
944957
const rules = reactive<FormRules<ApplicationFormType>>({
945958
name: [
@@ -955,6 +968,8 @@ const knowledgeList = ref<Array<any>>([])
955968
const sttModelOptions = ref<any>(null)
956969
const ttsModelOptions = ref<any>(null)
957970
971+
const triggerList = ref<Array<any>>([])
972+
958973
const triggerDrawerRef = ref<InstanceType<typeof TriggerDrawer>>()
959974
960975
const openCreateTriggerDrawer = () => {
@@ -964,8 +979,31 @@ const openEditTriggerDrawer = (trigger: any) => {
964979
triggerDrawerRef.value?.open(trigger.id)
965980
}
966981
982+
const createTrigger = (trigger: any) => {
983+
return triggerAPI.postResourceTrigger('APPLICATION', id, trigger)
984+
}
985+
const editTrigger = (trigger_id: string, trigger: any) => {
986+
return triggerAPI.putResourceTrigger('APPLICATION', id, trigger_id, trigger)
987+
}
988+
989+
function getTriggerList() {
990+
loadSharedApi({ type: 'trigger', systemType: apiType.value })
991+
.getResourceTriggerList('APPLICATION', id, loading)
992+
.then((res: any) => {
993+
triggerList.value = res.data
994+
})
995+
}
996+
967997
function refreshTrigger() {
968-
// do nothing, just to refresh the trigger list in the drawer
998+
getTriggerList()
999+
}
1000+
1001+
function removeTrigger(trigger: any) {
1002+
loadSharedApi({ type: 'trigger', systemType: apiType.value })
1003+
.deleteResourceTrigger('APPLICATION', id, trigger.id, loading)
1004+
.then((res: any) => {
1005+
getTriggerList()
1006+
})
9691007
}
9701008
9711009
function submitPrologueDialog(val: string) {
@@ -1352,6 +1390,7 @@ onMounted(() => {
13521390
getDetail()
13531391
getSTTModel()
13541392
getTTSModel()
1393+
getTriggerList()
13551394
if (toolPermissionPrecise.value.read()) {
13561395
getToolSelectOptions()
13571396
getMcpToolSelectOptions()

0 commit comments

Comments
 (0)