关于javascript:antd-Cascader-联动选择框-选过之后保存-再选刚刚选择的数据重置为不可选-disabled

成果

1. 代码
加以下办法的判断 lastLevelResetNull可管制是否展现或不展现数据

init = () => {
    // 楼层会议室配置-大厦接口
    FloorguideAction.floorGuideMeetingBuildListTo({}).then((results) => {
      if (!results.success) {
        message.error("接口谬误", 0.5);
        return;
      }
      let { data = [] } = results;
      this.setState({
        data: this.lastLevelResetNull(data),
      });
    });
  };
  // 用来解决抉择完的大厦和楼层 再次新增就不可选的性能   lastLevelResetNull--> 最初一级重置为空
  lastLevelResetNull = (data = []) => {
    let result = [..._.cloneDeep(data)];
    const loop = (re) =>
      re.map((item) => {
                // 判断每一项的disabled的属性is_save是否是true 如果是true就不能抉择
        item.disabled = item.is_save === "true";
        if (!_.isEmpty(item.children)) {
          loop(item.children);
        } else {
          item.children = void 0;
        }
      });
    if (!_.isEmpty(result)) {
      loop(result);
    }
    return result;
  };
  render() {
    let { data = [] } = this.state;
    return (
      <Cascader
        options={data}
        notFoundContent={null}
        allowClear={true}
        {...this.props}
      />
    );
  }

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理