YaoApp/yao

[Form表单使用actions] 在Form表单使用actions获取表单参数需求

QJAutumn opened this issue · 1 comments

需求背景

1672906348826

用户在【新增页面】提交表单的时候,有两个按钮,一个是:【保存】,一个是【提交审核】,分別对应两个不同的状态。
保存按鈕:直接保存表单的数据【此时的状态为:已保存】。
提交审核按钮:先保存数据,然后提交审核【此时的状态为:提交审核】

遇到的问题

如果使用 Form.submit,保存和提交审核都会请求save接口,后端接口不能分辨他是保存还是提交审核

我尝试解决方案

1.尝试使用Service.*云函数,发现【新增】的时候,引用的变量【 "args": ["{{name}}","{{user}}","{{age}}"]】好像获取不到,都为空,【编辑页面】可以获取到,可能是因为【编辑页面】有调用了find接口,这是我的actions里面的审核按钮

{
        "title": "审核",
        "icon": "icon-check",
        "showWhenAdd": true,
        "showWhenView": true,
        "style": "primary",
        "action": [
          {
            "name": "submit",
            "type": "Form.submit",
            "payload": {}
          },
          {
            "name": "audit",
            "type": "Service.project",
            "payload": {
              "method": "Save",
              "args": ["{{name}}","{{user}}","{{age}}"] // 使用引用变量
            }
          },
          {
            "name": "Back",
            "type": "Common.closeModal",
            "payload": {}
          }
        ]
}

2.尝试先保存,然后再提交审核,发现无法获取上一步Form.submit保存的【 "args": ["{{id}}"]

{
        "title": "审核",
        "icon": "icon-check",

        "showWhenAdd": true,
        "showWhenView": true,
        "style": "primary",
        "action": [
          {
            "name": "submit",
            "type": "Form.submit",
            "payload": {}
          },
          {
            "name": "audit",
            "type": "Service.project",
            "payload": {
              "method": "Save",
              "args": ["{{id}}"]  // 获取上一步返回的参数id
            }
          },

          {
            "name": "Back",
            "type": "Common.closeModal",
            "payload": {}
          }
        ]
 }

提案

1.Form表单actions里面是否可以获取到上一步返回的参数给到下一步的接口使用或者传递参数?

 {
        "title": "审核",
        "icon": "icon-check",

        "showWhenAdd": true,
        "showWhenView": true,
        "style": "primary",
        "action": [
          {
            "name": "submit",
            "type": "Form.submit",
            "payload": {}
          },
          {
            "name": "audit",
            "type": "Service.project",
            "payload": {
              "method": "Save",
              "args": ["{{id}}"]  // 获取上一步返回的参数id
            }
          },

          {
            "name": "Back",
            "type": "Common.closeModal",
            "payload": {}
          }
        ]
  }

2.Form表单【新增页面】新增的時候是否可以获取到表单的所有参数,类似引用变量的这样的写法{{name}},或者在Form表单新增的時候是否可以定义一个全局变量用来保存当前的表单字段内容,这样我第二步使用云函数传参数的时候就可以【"args": ["{{全部表单数据}}"]

{
        "title": "审核",
        "icon": "icon-check",
        "showWhenAdd": true,
        "showWhenView": true,
        "style": "primary",
        "action": [
          {
            "name": "submit",
            "type": "Form.submit",
            "payload": {}
          },
          {
            "name": "audit",
            "type": "Service.project",
            "payload": {
              "method": "Save",
              "args": ["{{全部表单数据}}","{{name}}"] // 使用全局表单字段或者部分表单数据
            }
          },
          {
            "name": "Back",
            "type": "Common.closeModal",
            "payload": {}
          }
        ]
 }

3.或者在【添加页面】能够让我带着Form的参数请求apis里面的某个接口也行

额外补充

或者有什么其他的解决方案和建议。

ok