Browse Source

ADD:完成三级页面特殊情况的检索

wjj 3 years ago
parent
commit
ba76ac3e12
2 changed files with 59 additions and 51 deletions
  1. 0 3
      src/pages/bugs/components/BugDetailModal/index.jsx
  2. 59 48
      src/pages/bugs/index.jsx

+ 0 - 3
src/pages/bugs/components/BugDetailModal/index.jsx

@@ -78,13 +78,10 @@ const BugItemDetail = (props) => {
         });
       }
     }
-
-
   };
 
   useEffect(() => {
     if (JSON.stringify(bugItemDetail) !== '{}') {
-      console.log(bugItemDetail);
       let { detail } = bugItemDetail;
       detail['originArr'] = detail.img_url ? detail.img_url.split(',') : [];
       if (detail['originArr'].length >= 3) {

+ 59 - 48
src/pages/bugs/index.jsx

@@ -1,4 +1,4 @@
-import React, { useState, useEffect } from 'react';
+import React, { useState, useEffect, useRef } from 'react';
 import { Select, Radio, Card, Row, Col, Input } from 'antd';
 import { PageContainer } from '@ant-design/pro-layout';
 import { connect } from 'umi';
@@ -20,9 +20,9 @@ const AllBugs = (props) => {
   const [status, setStatus] = useState('tree');
   const [page2List, setPage2List] = useState([]);
   const [page3List, setPage3List] = useState([]);
-  const [page1,setPage1] = useState('')
-  const [page2,setPage2] = useState('')
-  const [page3,setPage3] = useState('')
+  const [page1, setPage1] = useState('');
+  const [page2, setPage2] = useState('');
+  const [page3, setPage3] = useState('');
   const [page, setPage] = useState('null');
 
   const onChange = e => {
@@ -31,29 +31,34 @@ const AllBugs = (props) => {
   };
 
   const handlePage1Change = (val) => {
-    if(val !== page1){
-      setPage1(val)
+    if (val !== page1) {
+      setPage3('');
+      setPage2('');
+      setPage1(val);
       let item = categories.find(x => x.item === val);
       setPage2List(item.children);
     }
   };
 
   const handlePage2Change = (val) => {
-    setPage2(val)
-    let item = page2List.find(x => x.item === val);
-    setPage3List(item.children);
+    if (val !== page2) {
+      setPage3('');
+      setPage2(val);
+      let item = page2List.find(x => x.item === val);
+      setPage3List(item.children);
+    }
   };
+
   const handlePage3Change = val => {
-    setPage3(val)
+    setPage3(val);
   };
 
-  useEffect(()=>{
-    if(page1){
-      const newPage = `${page1}${page2?'-'+page2:''}${page3?'-'+page3:''}`
-      console.log(newPage);
+  useEffect(() => {
+    if (page1) {
+      const newPage = `${page1}${page2 ? '-' + page2 : ''}${page3 ? '-' + page3 : ''}`;
       setPage(newPage);
     }
-  },[page1,page2,page3])
+  }, [page1, page2, page3]);
 
   const getReportReview = () => {
     dispatch({
@@ -66,7 +71,7 @@ const AllBugs = (props) => {
   };
 
   useEffect(() => {
-    if(categories&&categories.length){
+    if (!categories.length) {
       dispatch({
         type: 'editReport/getCategories',
         payload: { examId: commonId.examId },
@@ -86,7 +91,6 @@ const AllBugs = (props) => {
     }
   }, [dispatch]);
 
-
   return (
     <Card bordered={false} className={styles.allBugs}>
       <>
@@ -101,36 +105,43 @@ const AllBugs = (props) => {
               <Radio.Button value="single"><MoreOutlined /> 单一</Radio.Button>
             </Radio.Group>
           </Col>
-            <Col span={11}>
-              {/*三级菜单*/}
-              <div className={styles.pageSelectors}>
-                <span>三级菜单:</span>
-                <Select
-                        placeholder="请选择一级界面"
-                        onSelect={(val) => {handlePage1Change(val);
-                        }}>
-                  {categories.map((item) => {
-                    return <Select.Option value={item.item} key={item.item}>{item.item}
-                    </Select.Option>;
-                  })}
-                </Select>
-                <Select placeholder="请选择二级界面"
-
-                        onSelect={(val) => {
-                          handlePage2Change(val)}}>
-                  {page2List.map((item) => {
-                    return <Select.Option value={item.item} key={item.item}>{item.item}</Select.Option>;
-                  })}
-                </Select>
-                <Select
-                        placeholder="请选择三级界面"
-                onSelect={(val)=>{handlePage3Change(val)}}>
-                  {page3List.map((item) => {
-                    return <Select.Option value={item.item} key={item.item}>{item.item}</Select.Option>;
-                  })}
-                </Select>
-              </div>
-            </Col>
+          <Col span={11}>
+            {/*三级菜单*/}
+            <div className={styles.pageSelectors}>
+              <span>三级菜单:</span>
+              <Select
+                value={page1}
+                placeholder="请选择一级界面"
+                onSelect={(val) => {
+                  handlePage1Change(val);
+                }}>
+                {categories.map((item) => {
+                  return <Select.Option value={item.item} key={item.item}>{item.item}
+                  </Select.Option>;
+                })}
+              </Select>
+              <Select
+                value={page2}
+                placeholder="请选择二级界面"
+                onSelect={(val) => {
+                  handlePage2Change(val);
+                }}>
+                {page2List.map((item) => {
+                  return <Select.Option value={item.item} key={item.item}>{item.item}</Select.Option>;
+                })}
+              </Select>
+              <Select
+                value={page3}
+                placeholder="请选择三级界面"
+                onSelect={(val) => {
+                  handlePage3Change(val);
+                }}>
+                {page3List.map((item) => {
+                  return <Select.Option value={item.item} key={item.item}>{item.item}</Select.Option>;
+                })}
+              </Select>
+            </div>
+          </Col>
 
           <Col span={8}>
             <span className={styles.bugInfoCount}>已点赞:{reportReview.thumsup}</span>
@@ -140,7 +151,7 @@ const AllBugs = (props) => {
         </Row>
         <Row>
           <Col span={8}>
-            {status === 'tree' ? <BugTreeList page={page}/> : <BugSingleList page={page}/>}
+            {status === 'tree' ? <BugTreeList page={page} /> : <BugSingleList page={page} />}
 
           </Col>
           <Col span={8}>