baidu / amis

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

Options 选择器表单项多选 multiple在联动时存在BUG,标签没被清除 #11210

Open 1532332928 opened 2 hours ago

1532332928 commented 2 hours ago

描述问题:

在x'z选择多选的时候,由于options下我添加了hiddenOn来控制是否显示的,当我选择好数据时,再修改联动的组件,是靠这个组件来控制options的,这时由于条件生效,多项的部分就被隐藏了,但是BUG就来了标签没被清除,而是变为了预设值

截图或视频:

type这个开始默认为1,select这时就是可选择1、4的,选择完后再重新选择type为4,这时候options就没可用的数据了 image

下面这个更加诡异,当手动清除完标签后,下拉选项直接显示被隐藏的预设值 image

开始我是想使用动作去对表单重置的,这个效果有一点点好用。但是,如果是通过API方式获取表单数据的时候,这个方法就不可行了

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

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

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

  3. 粘贴有问题的完整 amis schema 代码:

    ```javascript
    {
    "type": "page",
    "title": "Hello world",
    "body": [
    {
      "type": "button-group-select",
      "label": "类型",
      "inline": false,
      "options": [
        {
          "label": "个人",
          "value": "1"
        },
        {
          "label": "个体工商户",
          "value": "2"
        },
        {
          "label": "企业",
          "value": "3"
        },
        {
          "label": "其他",
          "value": "4"
        }
      ],
      "placeholder": "请选择主体进件类型",
      "required": true,
      "value": "1",
      "name": "type",
      "id": "type",
      "multiple": false
    },
    {
      "type": "select",
      "label": "平台",
      "multiple": true,
      "inline": false,
      "options": [
        {
          "value": 4,
          "label": "邮政",
          "hiddenOn": "${type != '1' && type != '2'}"
        },
        {
          "value": 3,
          "label": "农业",
          "hiddenOn": "${type != '2' && type != '3'}"
        },
        {
          "label": "中国",
          "value": "2",
          "hiddenOn": "${type != '2'}"
        },
        {
          "label": "建设",
          "value": "1",
          "hiddenOn": "${type != '1' && type != '3'}"
        }
      ],
      "placeholder": "请选择申请渠道平台",
      "joinValues": true,
      "required": true,
      "name": "platform",
      "id": "platform",
      "checkAll": false
    }
    ],
    "id": "u:81dc27953f1c",
    "asideResizor": false,
    "pullRefresh": {
    "disabled": true
    }
    }
  4. 操作步骤 在https://aisuda.github.io/amis-editor-demo/#/edit/0上测试的

github-actions[bot] commented 2 hours ago

👍 Thanks for this! 🏷 I have applied any labels matching special text in your issue.

Please review the labels and make any necessary changes.

1532332928 commented 2 hours ago

@2betop @TeCHiScy @luckyufei @weien601 解决一下