baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
17.22k stars 2.5k forks source link

更新到3.2及后续版本 api 中带有变量从上级组件获取数据异常 #8304

Closed phantooom closed 1 year ago

phantooom commented 1 year ago

描述问题:


{
  "type": "page",
  "title": "列表",
  "remark": null,
  "name": "admin-dev-list",
  "body": {
    "type": "service",
    "data":{
      "machine-list-api":"api/v1/admin/machines"
    },
    "schemaApi": "get:pages/machine-list.json"
  }
}

// 下边这段是  pages/machine-list.json
{
  "type": "crud",
  "name": "get-machine-list",
  "api": "${machine-list-api}?page=${page}&perPage=${perPage}&orderBy=${orderBy}&orderDir=${orderDir}&name=${name}&status=${status}",
  "syncLocation": false,
  "interval": 10000,
  "silentPolling": true,
  "filter": {
    "title": "",
    "mode": "inline",
    "wrapWithPanel": false,
    "submitText": "",
    "className": "m-b-sm"
  },
  "columns": [
    {
      "name": "id",
      "label": "ID",
      "width": 20,
      "sortable": true
    }
  ]
}

machine-list-api 这个变量在3.2.0->3.4.2 的版本会被替换到0,而3.1.1 及之前版本会被替换成 api/v1/admin/machines

截图或视频:

正常的版本3.1.1 及以前的版本 image

异常的版本(3.2.0 之后的版本) image

如何复现(请务必完整填写下面内容):

  1. 你是如何使用 amis 的? sdk

  2. amis 版本是什么?请先在最新 beta 版本测试问题是否存在

存在

  1. 操作步骤 amis 的json贴上去了
2betop commented 1 year ago

因为变量规则问题,你这个 case 变量名中有 -,和操作符减号冲突,所以需要修改配置方法,请修改成这样

api: '${&["machine-list-api"]}?page=${page}&perPage=${perPage}&orderBy=${orderBy}&orderDir=${orderDir}&name=${name}&status=${status}',

phantooom commented 1 year ago

感谢,按照你的说明已经成功了。

还有一个问题困扰了比较久了,能否指点一下呐。https://github.com/baidu/amis/issues/8012