| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package approve_former
- const signTemplate = `
- [[- $name := .name -]]
- [[- $upperNodeNames := .upper_node_names -]]
- - name: [[ $name ]]
- template: approval
- [[- if $upperNodeNames ]]
- [[- if eq (len $upperNodeNames) 1 ]]
- depends: "[[ index $upperNodeNames 0 ]].Succeeded"
- when: "{{ tasks.[[- index $upperNodeNames 0 -]].outputs.parameters.approve }} == 通过"
- [[- else -]]
- depends: "
- [[- range $index, $upper_node_name := $upperNodeNames -]]
- [[- if eq $index 0 -]]
- [[ $upper_node_name ]].Succeeded
- [[- else ]]
- && [[ $upper_node_name ]].Succeeded
- [[- end -]]
- [[- end -]]
- "
- when: "
- [[- range $index, $upper_node_name := $upperNodeNames -]]
- [[- if eq $index 0 -]]
- {{ tasks.[[ $upper_node_name ]].outputs.parameters.approve }} == 通过
- [[- else -]]
- && {{ tasks.[[ $upper_node_name ]].outputs.parameters.approve }} == 通过
- [[- end -]]
- [[- end -]]
- "
- [[- end -]]
- [[- end -]]
- `
- type Sign struct {
- Name string
- }
- func NewSign(name string) *Sign {
- return &Sign{
- Name: name,
- }
- }
- func (sign *Sign) GetName() string {
- return sign.Name
- }
- func (sign *Sign) GetChildNodes() []Node {
- return make([]Node, 0)
- }
- func (sign *Sign) Render(upperNodes ...Node) (string, error) {
- upperNodeNames := make([]string, 0)
- for _, upperNode := range upperNodes {
- upperNodeNames = append(upperNodeNames, upperNode.GetName())
- }
- return render("sign", signTemplate, map[string]any{
- "name": sign.Name,
- "upper_node_names": upperNodeNames,
- })
- }
|