This commit is contained in:
yumoqing 2026-03-15 17:58:10 +08:00
parent 5e809613fe
commit db57af9fed
7 changed files with 166 additions and 42 deletions

View File

@ -515,6 +515,17 @@ async def get_exists_workflows(request):
recs = await sor.sqlExe(sql, {'orgids': orgids}) recs = await sor.sqlExe(sql, {'orgids': orgids})
return recs return recs
return [] return []
async def new_instance(request, flow_def_id, params_kw):
env = request._run_ns
orgid = await env.get_userorgid()
async with get_sor_context(env, 'dagflow') as sor:
engine = get_engine()
fiid = await engine.create_instance(sor, orgid,
flow_def_id, ctx=params_kw)
return fiid
return None
async def add_new_workflow(request, params_kw={}): async def add_new_workflow(request, params_kw={}):
name = params_kw.name name = params_kw.name
dsl = params_kw.dsl dsl = params_kw.dsl
@ -530,3 +541,13 @@ async def add_new_workflow(request, params_kw={}):
'dagflow_id': id 'dagflow_id': id
} }
} }
async def get_org_flow_definition(request):
env = request._run_ns
orgids = await env.get_userorgid()
async with get_sor_context(env, 'dagflow') as sor:
sql = """select * from flow_definition where org_id in ${orids}$"""
recs = sor.sqlExe(sql, {'orgids': ['0', orgid]})
return recs
return []

View File

@ -3,7 +3,11 @@ from functools import partial
from appPublic.jsonConfig import getConfig from appPublic.jsonConfig import getConfig
from ahserver.serverenv import ServerEnv from ahserver.serverenv import ServerEnv
from ahserver.configuredServer import add_cleanupctx from ahserver.configuredServer import add_cleanupctx
from .dagflow import FlowEngine, add_new_workflow from .dagflow import (
FlowEngine,
get_org_flow_definition
add_new_workflow
}
async def dagbacktask(engines, app): async def dagbacktask(engines, app):
tasks = [] tasks = []
@ -27,4 +31,5 @@ def load_dagflow():
env = ServerEnv() env = ServerEnv()
env.flow_engines = flow_engines env.flow_engines = flow_engines
env.add_new_workflow = add_new_workflow env.add_new_workflow = add_new_workflow
env.get_org_flow_definition = get_org_flow_definition

View File

@ -0,0 +1,58 @@
{% set definitions = get_org_flow_definition(request) %}
{% if definitions %}
{
"widgettype": "VScrollPanel",
"options": {
"width": "100%",
"height": "100%",
},
"subwidgets": [
{% for d in definitions %}
{
"widgettype": "Text",
"options": {
"css": "clickable",
"i18n": true,
"otext": "{{d.title}}",
"tip": "{{d.description}}",
"wrap": true,
"valign": "left"
},
"binds": [
{
"wid": "self",
"event": "click",
"actiontype": "urlwidget",
"target": "root.ai_x_area",
"options": {
"url": "{{entire_url('new_instance.ui')}}",
"params": {
"id": "{{d.id}}"
}
}
}
]
}
{% if not loop.last %},{% endif %}
{% endfor %}
]
}
{% else %}
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 15,
"height": 10
},
"subwidgets": [
{
"widget": "text",
"options": {
"i18n": true,
"otext": "没有流程"
}
}
]
}
{% endif %}

View File

@ -0,0 +1,30 @@
{
"widgettype":"HBox",
"options": {
"width": "100%",
"heigit": "100%"
},
"subwidgets":[
{
"widgettype": "VBox",
"options": {
"cwidth": 12
},
"subwidgets": [
{
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('tabpanel.ui')}}"
}
}
]
},
{
"widgettype": "VBox",
"id": "ai_x_area",
"options": {
"css": "filler"
}
}
]
}

View File

@ -1,41 +0,0 @@
{% set definitions = get_org_flow_definition() %}
{% if definitions %}
{
"widgettype": "DynamicColumn",
"options": {
"width": "100%",
"height": "100%",
},
"subwidgets": [
{% for d in definitions %}
{
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('brief_definition.ui')}}",
"params": {{json.dumps(d)}}
}
}
{% if not loop.last %},{% endif %}
{% endfor %}
]
}
{% else %}
{
"widgettype": "VBox",
"options": {
"css": "card",
"cwidth": 15,
"height": 10
},
"subwidgets": [
{
"widget": "text",
"options": {
"i18n": true,
"otext": "没有流程"
}
}
]
}
{% endif %}
"url": "{{entire_url('show_e

View File

@ -0,0 +1,2 @@
{
}

View File

@ -0,0 +1,49 @@
{
"widgettytp": "TabPanel",
"options": {
"tab_long": "100%",
"tab_pos": "top",
"items": [
{
"name": "definition",
"label": "流程",
"icon": "{{entire_url('/bricks/imgs/workflow.svg')}}",
"removable": false,
"refresh": true,
"content": {
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('definition.ui')}}"
}
}
},
{
"name": "instance",
"label": "项目",
"icon": "{{entire_url('/bricks/imgs/flowinstance.svg')}}",
"removable": false,
"refresh": true,
"content": {
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('instance.ui')}}"
}
}
},
{
"name": "work",
"label": "工作",
"icon": "{{entire_url('/bricks/imgs/work.svg')}}",
"removable": false,
"refresh": true,
"content": {
"widgettype": "urlwidget",
"options": {
"url": "{{entire_url('work.ui')}}"
}
}
}
]
}
}