一些联动树形数据组装

这篇具有很好参考价值的文章主要介绍了一些联动树形数据组装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

export const pieselectdata = [
  {
    entrustOrganization: '智慧法院电子诉讼平台',
    entrustOrganizationId: 161,
    productNames: [
      {
        batchCodes: [],
        productName: 'CL测试调解产品',
      },
      {
        batchCodes: [
          '2022927_001',
          '2022927_003',
          '2022927_004',
          '2022927_005',
          '2022927_006',
          '2022927_008',
          '2022927_009',
          '2022927_011',
          '2022927_012',
          '2022927_013',
          '2022927_014',
          '2022927_015',
          '2022927_016',
          '2022927_017',
          '2022927_018',
          '2022927_019',
          '2022927_020',
          '33',
          '999',
        ],
        productName: 'oneProductName',
      },
      {
        batchCodes: ['多'],
        productName: 'twoProductName',
      },
      {
        batchCodes: ['测试第一批', '第一批'],
        productName: '宁波测试',
      },
      {
        batchCodes: [],
        productName: '测试产品',
      },
      {
        batchCodes: ['测试批次号123456'],
        productName: '测试产品名称123456',
      },
      {
        batchCodes: ['测试批次号12345678'],
        productName: '测试产品名称12345678',
      },
      {
        batchCodes: [],
        productName: '默认产品',
      },
    ],
  },
  {
    entrustOrganization: '共道测试调解中心调解平台',
    entrustOrganizationId: 11009,
    productNames: [
      {
        batchCodes: ['1212'],
        productName: '我的测试调解产品',
      },
    ],
  },
];

 文章来源地址https://www.toymoban.com/news/detail-610107.html

  const [selectOne, setSelectOne] = useState([]);
  const [selectTwo, setSelectTwo] = useState([]);
  const [selectTwoData, setSelectTwoData] = useState([]); //下拉框数据
  const [selectThree, setSelectThree] = useState([]);
  const [selectThreeData, setSelectThreeData] = useState([]); //下拉框数据
  const [batchCode, setBatchCode] = useState(null);
  const [entrustOrganizationId, setEntrustOrganizationId] = useState(null);
  const [productName, setProductName] = useState(null);

 

  useEffect(() => {
    getselect(pieselectdata);
  }, []);
  const getselect = (v) => {
    const selectO = [];
    const selectT = [];
    const selectTh = [];
    v.map((item, i) => {
      console.log(item);
      if (item.productNames?.length > 0) {
        item.productNames?.map((a, b) => {
          selectT.push({
            label: a.productName,
            value: a.productName,
            father: item.entrustOrganizationId,
          });
          selectTh.push({
            data: a.batchCodes,
            father: a.productName,
            Organ: item.entrustOrganizationId,
          });
        });
      }
      selectO.push({ label: item.entrustOrganization, value: item.entrustOrganizationId });
    });
    setSelectOne([...selectO]);
    setSelectTwo([...selectT]);
    setSelectThree([...selectTh]);
    console.log(selectO, selectT, selectTh);
  };
  useEffect(() => {
    if (selectOne && selectOne.length > 0) {
      if (entrustOrganizationId) {
        //选委派法院,产品、批次显示该法院下的数据
        const two = selectTwo.filter((item) => item.father === entrustOrganizationId);
        const three = selectTwo.filter((item) => item.Organ === entrustOrganizationId);
        setSelectTwoData([...two]);
        setSelectThreeData([...three]);
      } else {
        //没选委派法院,产品、批次显示全部数据
        const three = [];
        selectThree.map((item) => {
          three.push(...item.data);
        });
        setSelectTwoData([...selectTwo]);
        setSelectThreeData([...three]);
      }
      if (productName) {
        //选产品,批次显示产品下的数据
        const three = selectThree.filter((item) => item.father === productName);
        setSelectThreeData(three[0]?.data);
      }
    }
    //请求饼图数据
    const params = { entrustOrganizationId, productName, batchCode };
    setSelectData(params);
    console.log(entrustOrganizationId, productName, batchCode, '饼图下拉框');
  }, [selectOne, entrustOrganizationId, productName, batchCode]);
 const options = [
    {
      label: '近30天',
      value: '30',
    },
    {
      label: '近3个月',
      value: '90',
    },
    {
      label: '近6个月',
      value: '180',
    },
  ];
  const [dateValue, setDateValue] = useState('30');
  const onChangeDate = ({ target: { value } }) => {
    setDateValue(value);
  };
  useEffect(() => {
    console.log(dateValue, '888');
  }, [dateValue]);

 

 <div className={style.filter_content}>
              <div className={style.search}>
                <div style={{ width: '33%' }}>
                  <Select
                    allowClear
                    style={{ width: '95%' }}
                    placeholder="委派法院"
                    onChange={(v) => {
                      setProductName(null);
                      setBatchCode(null);
                      setEntrustOrganizationId(v);
                    }}
                  >
                    {selectOne?.map((item, i) => {
                      return (
                        <Option key={i} value={item.value}>
                          {item.label}
                        </Option>
                      );
                    })}
                  </Select>
                </div>
                <div style={{ width: '33%' }}>
                  <Select
                    allowClear
                    style={{ width: '95%' }}
                    placeholder="产品名称"
                    value={productName}
                    onChange={(v) => {
                      setBatchCode(null);
                      setProductName(v);
                    }}
                  >
                    {selectTwoData?.map((item, i) => {
                      return (
                        <Option key={i} value={item.value}>
                          {item.label}
                        </Option>
                      );
                    })}
                  </Select>
                </div>
                <div style={{ width: '33%' }}>
                  <Select
                    allowClear
                    style={{ width: '95%' }}
                    placeholder="批次号"
                    value={batchCode}
                    onChange={(v) => {
                      setBatchCode(v);
                    }}
                  >
                    {selectThreeData?.map((item, i) => {
                      return (
                        <Option key={i} value={item}>
                          {item}
                        </Option>
                      );
                    })}
                  </Select>
                </div>
              </div>
              <div>
                <Radio.Group
                  optionType="button"
                  buttonStyle="solid"
                  options={options}
                  onChange={onChangeDate}
                  value={dateValue}
                />
              </div>
            </div>

 

 console.log(selectO, selectT, selectTh);

一些联动树形数据组装,javascript,前端,react.js

 console.log(entrustOrganizationId, productName, batchCode, '饼图下拉框'); 

 一些联动树形数据组装,javascript,前端,react.js

 

一些联动树形数据组装,javascript,前端,react.js

 

到了这里,关于一些联动树形数据组装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 超大量数据,前端树形结构展示

    后端返回了50万数据,让前端一次性展示成树,之前用的ant-design-vue的tree插件,卡的死死的,经过大量实验,现发现三种树可以支持如此大数量的数据。 目录 第一种:vue-easy-tree 使用方式: 1.安装插件 2.引入插件 全局引入 组件引入 3.使用  在使用虚拟滚动时,必须设置 no

    2024年01月21日
    浏览(38)
  • 前端js常用的一些工具类

    ip 封装ajax工具类 日期工具类 数据工具类 时间工具类 上述工具类extends.js 工具类

    2024年02月16日
    浏览(44)
  • 从javascript到vue再到react:前端开发框架的演变

    目录 JavaScript: 动态语言的基础 JavaScript:Web开发的起点 Vue.js: 渐进式框架的兴起 Vue.js:简洁、高效的前端框架 React.js: 声明式UI的革新 React.js:强大、灵活的前端框架 演变之路与未来展望 演变过程 当提到前端开发中的框架时,JavaScript、Vue.js和React.js是三个最常见的名词。它

    2024年02月07日
    浏览(51)
  • 前端JS实用操作符,一些骚操作✨

             目录 0、!!  双重逻辑非操作符  📚 1、?? 操作符 空值合并/空判断  ✅ 2、?. 可选链运算符🔍 3、??= 操作符 逻辑空值赋值运算符 💚 4、三元运算符 📗 5、~~ 操作符 双位运算符 🔨 6、与 ||或 短路运算符 🚂 7、| 0 取整 🚁 8、 1 判断奇偶数 🎨 9、_ 数值分割

    2024年02月14日
    浏览(46)
  • element-ui el-table 树形结构 父子级联动

    el-table 表格 为 select 和 select-all 设置回调函数 简要数据格式 单选 全选 操作 ids 不再设置 selection-change 回调函数,直接监听ids 感谢 element-ui el-table 实现全选且父级子级联动 提供的思路 另附 el-table 文档

    2024年02月10日
    浏览(46)
  • Node.js和浏览器在JavaScript运行环境方面存在一些区别和联系

    Node.js和浏览器在JavaScript运行环境方面确实存在一些区别和联系。 首先,让我们理解一下Node.js和浏览器的运行环境。Node.js是一个基于Chrome的V8引擎的服务器端JavaScript运行环境,允许开发者在服务器端运行JavaScript代码,并且提供了一系列的内置模块,如fs模块用于文件系统操

    2024年03月14日
    浏览(48)
  • java返回前端树形结构数据(2种实现方式)

    0.思想 首先找到一级目录(类别),然后从一级目录(类别)递归获取所有子目录(类别),并组合成为一个“目录树” 1.普通实现:controller层传的是0层,就是一级目录层,从这里开始往下递归。 2.stream流实现: 3.实体类集合专VO类集合的工具类 入参为未知类型的实体集合

    2024年02月04日
    浏览(35)
  • JavaScript框架 Angular、React、Vue.js 的全栈解决方案比较

    在 Web 开发领域,JavaScript 提供大量技术栈可供选择。其中最典型的三套组合,分别是 MERN、MEAN 和 MEVN。前端框架(React、Angular 和 Vue)进行简化比较。 MERN 技术栈包含四大具体组件: MongoDB:一款强大的 NoSQL 数据库,以灵活的 JSON 格式存储数据。 Express.js:一套极简但强大的

    2024年02月03日
    浏览(54)
  • js递归遍历树形结构数据,获取所有数组id集合

    实现思路 可以使用递归遍历整个树形数组,将每个节点的id加入到一个数组中,最后返回这个数组即可。 数据准备 代码实现 方式一 获取结果 方式二 获取结果 方式三 获取结果 方法总结 这里的tree是树形数组,result是用来保存所有id的数组。 首先遍历当前层级的每个节点,

    2024年02月11日
    浏览(51)
  • 2023年最佳JavaScript框架:React、Vue、Angular和Node.js的比较

    🎉欢迎来到Java学习路线专栏~探索2023年最佳JavaScript框架:React、Vue、Angular和Node.js的比较 ☆* o(≧▽≦)o *☆嗨~我是IT·陈寒🍹 ✨博客主页:IT·陈寒的博客 🎈该系列文章专栏:Java学习路线 📜其他专栏:Java学习路线 Java面试技巧 Java实战项目 AIGC人工智能 🍹文章作者技术和水

    2024年02月11日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包