baidu / amis

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

希望“地址栏变化自动更新”这个整合amis-admin中 #10621

Closed lawbc closed 3 months ago

lawbc commented 4 months ago

实现场景:

想在amis-admin看到nav的使用,因为我使用amis-admin这个代码把示例里面的nav部分整合到site.js中后,地址栏可以改变但是页面不会自动刷新

存在的问题:

amis-admin中,把地址栏变化自动更新这个代码更新到amis-admin后,点击没有选中,没有更新页面

当前方案:

site.js

{
  "status": 0,
  "msg": "",
  "data": {
    "pages": [
      {
        "label": "Home",
        "url": "/",
        "redirect": "/index/1"
      },
      {
        "label": "示例",
        "children": [
          {
            "label": "页面A",
            "url": "index",
            "schema": {
              "type": "page",
              "title": "页面A",
              "body": "页面A"
            },
            "children": [
              {
                "label": "页面A-1",
                "url": "1",
                "schema": {
                  "type": "page",
                  "title": "地址栏变化自动更新",
                  "name": "page1",
                  "initApi": "https://aisuda.bce.baidu.com/amis/api/mock2/form/initData?id=${id}",
                  "initFetch": true,
                  "aside": {
                    "type": "wrapper",
                    "size": "xs",
                    "className": "",
                    "body": {
                      "type": "nav",
                      "stacked": true,
                      "links": [
                        {
                          "label": "页面1",
                          "to": "?id=1"
                        },
                        {
                          "label": "页面2",
                          "children": [
                            {
                              "label": "页面2-1",
                              "to": "?id=2-1"
                            },
                            {
                              "label": "页面2-2",
                              "to": "?id=2-2"
                            },
                            {
                              "label": "页面2-3(disabled)",
                              "to": "?id=2-3"
                            }
                          ]
                        },
                        {
                          "label": "页面3",
                          "to": "?id=3"
                        }
                      ]
                    }
                  },
                  "body": [
                    "<p><span class=\"text-danger\">注意 page 渲染器的 `initApi` 中有变量跟地址栏中变量关联,只要值发生了变化,就会重新拉取一次 initApi。</sapn></p>",
                    "<p>这些数据是通过 initApi 拉取到的数据。 `\\$infoId`: <span class=\"text-danger\">${infoId|default:空}</span></p>"
                  ]
                }
              },
              {
                "label": "页面A-2",
                "url": "2",
                "schema": {
                  "type": "page",
                  "title": "页面A-2",
                  "body": "页面A-2"
                }
              },
              {
                "label": "页面A-3",
                "url": "3",
                "schema": {
                  "type": "page",
                  "title": "页面A-3",
                  "body": "页面A-3"
                }
              }
            ]
          },
          {
            "label": "页面B",
            "badge": 3,
            "badgeClassName": "bg-info",
            "schema": {
              "type": "page",
              "title": "页面B",
              "body": "页面B"
            }
          },
          {
            "label": "页面C",
            "schema": {
              "type": "page",
              "title": "页面C",
              "body": "页面C"
            }
          },
          {
            "label": "列表示例",
            "url": "/crud",
            "rewrite": "/crud/list",
            "icon": "fa fa-cube",
            "children": [
              {
                "label": "列表",
                "url": "/crud/list",
                "icon": "fa fa-list",
                "schemaApi": "get:/pages/crud-list.json"
              },
              {
                "label": "新增",
                "url": "/crud/new",
                "icon": "fa fa-plus",
                "schemaApi": "get:/pages/crud-new.json"
              },
              {
                "label": "查看",
                "url": "/crud/:id",
                "schemaApi": "get:/pages/crud-view.json"
              },
              {
                "label": "修改",
                "url": "/crud/:id/edit",
                "schemaApi": "get:/pages/crud-edit.json"
              }
            ]
          }
        ]
      },
      {
        "label": "分组2",
        "children": [
          {
            "label": "用户管理",
            "schema": {
              "type": "page",
              "title": "用户管理",
              "body": "页面C"
            }
          },
          {
            "label": "外部链接",
            "link": "http://baidu.gitee.io/amis"
          },
          {
            "label": "部门管理",
            "schemaApi": "${API_HOST}/api/amis-mock/mock2/service/form?tpl=tpl3"
          },
          {
            "label": "jsonp 返回示例",
            "schemaApi": "jsonp:/pages/jsonp.js?callback=jsonpCallback"
          }
        ]
      }
    ]
  }
}
zizhuxuaner commented 2 months ago

演示里:${API_HOST}/api/amis-mock/mock2/service/form?tpl=tpl3中的${API_HOST}不生效是为什么?其他JSON文件里能生效就这个site.json中不生效