CzRger 1 月之前
父節點
當前提交
da131d76e6

+ 2 - 2
src/api/modules/workflow/chart.ts

@@ -5,5 +5,5 @@ const proxy = (import.meta as any).env.VITE_WORKFLOW_API_PROXY
 export const workflowDraftDetail = (id) =>
   get(`/workflow/draft/${id}`, {}, {}, proxy)
 // 自动保存
-export const workflowDraftSave = (id) =>
-  post(`/workflow/draft/${id}`, {}, {}, proxy)
+export const workflowDraftSave = (id, params) =>
+  post(`/workflow/draft/${id}`, params, {}, proxy)

+ 3 - 0
src/api/modules/workflow/meta.ts

@@ -10,6 +10,9 @@ export const workflowMetaAdd = (params) =>
 // 工作流-编辑
 export const workflowMetaEdit = (id, params) =>
   patch(`/workflow/meta/${id}`, params, {}, proxy)
+// 工作流-删除
+export const workflowMetaDel = (id) =>
+  del(`/workflow/meta/${id}`, {}, {}, proxy)
 // 工作流-详情
 export const workflowMetaDetail = (id) =>
   get(`/workflow/meta/${id}`, {}, {}, proxy)

+ 23 - 1
src/views/manage/app/make/workflow-select.vue

@@ -62,6 +62,12 @@
                     >
                       查看
                     </div>
+                    <div
+                      class="__hover text-xs text-[var(--czr-error-color)]"
+                      @click.capture.stop="onDel(row)"
+                    >
+                      删除
+                    </div>
                   </div>
                 </div>
               </div>
@@ -104,7 +110,7 @@ import { pluginGetInstanceList } from '@/api/modules/model'
 import { YMDHms } from '@/utils/czr-util'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import detailCom from '@/views/workflow/detail/index.vue'
-import { workflowMetaPage } from '@/api/modules/workflow/meta'
+import { workflowMetaDel, workflowMetaPage } from '@/api/modules/workflow/meta'
 import { useRouter } from 'vue-router'
 
 const DialogStore = useDialogStore()
@@ -230,6 +236,22 @@ const onAdd = () => {
   }
   state.detail.show = true
 }
+const onDel = (row) => {
+  DialogStore.confirm({
+    title: '删除确认',
+    content: `请确认是否删除 ${row.name} ?`,
+    onSubmit: () => {
+      workflowMetaDel(row.id)
+        .then(() => {
+          ElMessage.success('删除成功!')
+        })
+        .catch(() => {})
+        .finally(() => {
+          onSearch()
+        })
+    },
+  })
+}
 onMounted(() => {
   initDictionary()
 })

+ 0 - 1
src/views/manage/center/user/index.vue

@@ -336,7 +336,6 @@ const onInvite = () => {
   accountGenerateFriendlyCode({
     userId: AppStore.userInfo?.id,
     tenantId: AppStore.tenantInfo?.id,
-    // tenantId: '1952283047189794816',
   })
     .then(({ data }: any) => {
       const routerUrl = router.resolve({

+ 3 - 2
src/views/workflow/chart/index.vue

@@ -338,9 +338,10 @@ Graph.registerHighlighter(
   true,
 )
 const WorkflowStore = useWorkflowStore()
-const emit = defineEmits([])
+const emit = defineEmits(['save'])
 const props = defineProps({
   data: <any>{},
+  ID: <any>{},
 })
 const { proxy }: any = getCurrentInstance()
 const state: any = reactive({
@@ -497,6 +498,7 @@ const initNodes = () => {
   if (props.data.nodes.length === 0) {
     const node = getNodeDefault(NodeType.Root)
     state.graph.addNode(handleNode(node))
+    emit('save')
   }
 }
 const initEdges = () => {
@@ -596,7 +598,6 @@ const initWatch = () => {
   })
   state.graph.on('history:change', ({ cmds, options }) => {
     if (state.isInitEdges) {
-      console.log(cmds, options)
       state.history.canRedo = state.graph.canRedo()
       state.history.canUndo = state.graph.canUndo()
       if (options.name) {

+ 15 - 4
src/views/workflow/detail/index.vue

@@ -44,6 +44,7 @@ import {
   workflowMetaDetail,
   workflowMetaEdit,
 } from '@/api/modules/workflow/meta'
+import { workflowDraftSave } from '@/api/modules/workflow/chart'
 
 const AppStore = useAppStore()
 const DictionaryStore = useDictionaryStore()
@@ -113,10 +114,20 @@ const onSubmit = () => {
           state.loading = true
           if (props.transfer.mode === 'add') {
             workflowMetaAdd(state.form)
-              .then(() => {
-                ElMessage.success(`${titleCpt.value}成功!`)
-                emit('update:show', false)
-                emit('refresh')
+              .then(({ data }: any) => {
+                workflowDraftSave(data.id, {
+                  graph: {},
+                  environmentVariables: [],
+                  conversationVariables: [],
+                  hash: '',
+                })
+                  .then(() => {
+                    ElMessage.success(`${titleCpt.value}成功!`)
+                    emit('update:show', false)
+                    emit('refresh')
+                  })
+                  .catch(() => {})
+                  .finally(() => {})
               })
               .catch(() => {})
               .finally(() => {

+ 36 - 5
src/views/workflow/index.vue

@@ -2,7 +2,12 @@
   <div class="workflow">
     <TeleportContainer />
     <div class="workflow-chart">
-      <workflowChart :data="state.workflowData" ref="ref_workflow" />
+      <workflowChart
+        :ID="ID"
+        :data="state.workflowData"
+        ref="ref_workflow"
+        @save="getJsonData"
+      />
     </div>
     <div class="operations">
       <div>
@@ -34,6 +39,7 @@ import {
   workflowDraftDetail,
   workflowDraftSave,
 } from '@/api/modules/workflow/chart'
+import { ElMessage } from 'element-plus'
 
 const TeleportContainer = getTeleport()
 const WorkflowStore = useWorkflowStore()
@@ -44,6 +50,7 @@ const props = defineProps({
 const { proxy }: any = getCurrentInstance()
 const state: any = reactive({
   workflowData: null,
+  uniqueHash: '',
 })
 const ref_workflow = ref()
 
@@ -51,7 +58,9 @@ const getJsonData = () => {
   const data = ref_workflow.value.toJSON()
   const offset = WorkflowStore.graph.translate()
   const res: any = {
-    envVars: WorkflowStore.envVars.vars,
+    conversationVariables: [],
+    environmentVariables: WorkflowStore.envVars.vars,
+    hash: state.uniqueHash,
     graph: {
       nodes: [],
       edges: [],
@@ -85,12 +94,34 @@ const getJsonData = () => {
     }
   })
   console.log(res)
+  workflowDraftSave(props.ID, res)
+    .then(({ data }: any) => {
+      state.uniqueHash = data.uniqueHash
+    })
+    .catch(() => {})
+    .finally(() => {})
 }
 const initData = () => {
   workflowDraftDetail(props.ID)
-  const d = data0
-  WorkflowStore.$patch((s: any) => (s.envVars.vars = d.envVars || []))
-  state.workflowData = d.graph
+    .then(({ data }: any) => {
+      state.uniqueHash = data.uniqueHash
+      WorkflowStore.$patch(
+        (s: any) => (s.envVars.vars = data.environmentVariables || []),
+      )
+      // if (data.graph.viewport) {
+      //   state.workflowData = data.graph
+      // } else {
+      state.workflowData = {
+        nodes: [],
+        edges: [],
+      }
+      // }
+    })
+    .catch(() => {})
+    .finally(() => {})
+  // const d = data0
+  // WorkflowStore.$patch((s: any) => (s.envVars.vars = d.envVars || []))
+  // state.workflowData = d.graph
 }
 onMounted(() => {
   initData()