diff --git a/workflow/workflow.go b/workflow/workflow.go index 41aeda0c..a2c48899 100644 --- a/workflow/workflow.go +++ b/workflow/workflow.go @@ -10,6 +10,7 @@ import ( "github.com/yaoapp/kun/any" "github.com/yaoapp/kun/exception" "github.com/yaoapp/kun/maps" + "github.com/yaoapp/kun/str" "github.com/yaoapp/xiang/config" "github.com/yaoapp/xiang/helper" "github.com/yaoapp/xiang/share" @@ -169,8 +170,11 @@ func (workflow *WorkFlow) Setting(uid int, id interface{}) map[string]interface{ } nodes := workflow.FlowNodes(data.Dot()) + _, idx := workflow.pickNode(string(str.Of(wflow["node_name"]))) return map[string]interface{}{ "nodes": nodes, + "node": nodes[idx], + "node_index": idx, "read": true, "write": any.Of(wflow["user_id"]).CInt() == uid, "actions": workflow.Actions, diff --git a/workflow/workflow_test.go b/workflow/workflow_test.go index ba71dfde..271dbe09 100644 --- a/workflow/workflow_test.go +++ b/workflow/workflow_test.go @@ -7,7 +7,6 @@ import ( "github.com/stretchr/testify/assert" "github.com/yaoapp/kun/any" "github.com/yaoapp/kun/maps" - "github.com/yaoapp/kun/utils" "github.com/yaoapp/xiang/config" "github.com/yaoapp/xiang/flow" "github.com/yaoapp/xiang/model" @@ -70,8 +69,6 @@ func TestSaveUpdate(t *testing.T) { Form: map[string]interface{}{"biz_id": 1, "name": "李明博"}, }) - utils.Dump(wflow) - data := maps.Of(wflow).Dot() assert.Equal(t, int64(1), data.Get("id")) assert.Equal(t, "assign", data.Get("name")) @@ -279,6 +276,7 @@ func TestSetting(t *testing.T) { setting := assignFlow.Setting(1, 1) data := maps.Of(setting).Dot() assert.Equal(t, true, data.Get("read")) + assert.Equal(t, "选择商务负责人", data.Get("node.label")) assert.Equal(t, true, data.Get("write")) id := any.Of(wflow["id"]).CInt() @@ -291,6 +289,7 @@ func TestSetting(t *testing.T) { data = maps.Of(setting).Dot() assert.Equal(t, true, data.Get("read")) assert.Equal(t, false, data.Get("write")) + assert.Equal(t, "项目负责人审批", data.Get("node.label")) assert.Equal(t, 2, data.Get("nodes.2.source")) assert.Equal(t, 2, data.Get("nodes.3.source")) assert.Equal(t, "assign", data.Get("name"))