import React, { Component } from 'react'; import axios from 'axios'; import { Dropdown, Menu } from 'antd'; import { getImageUrl } from 'educoder'; import PathCard from "./ShixunPathCard"; import UpgradeModals from '../modals/UpgradeModals'; import Pagination from '@icedesign/base/lib/pagination'; import '@icedesign/base/lib/pagination/style.js'; import './ShixunPaths.css'; import KeywordList from '../tpm/shixuns/shixun-keyword-list'; import btnUrl from '../tpm/shixuns/btn-new.png'; class ShixunPathSearch extends Component { constructor(props) { super(props) this.state = { order: "updated_at", select: undefined, search: "", page: 1, pathList: null, sortList: '', total_count: 0, sort: "desc", limit: 16, discipline_id: undefined, sub_discipline_id: undefined } } //适配器 onChangeLabel(value) { let rs = value === 'new' ? 'updated_at' : 'myshixuns_scount' let { discipline_id, sub_discipline_id } = this.state; this.setState({ order: rs, page: 1 }) this.getList(rs, discipline_id, sub_discipline_id, 1) } //选择页数 onChange = (pageNumber) => { let { order, discipline_id, sub_discipline_id } = this.state; this.setState({ page: pageNumber }) this.getList(order, discipline_id, sub_discipline_id, pageNumber); } //顶部分类 changeSelect = (e, tag_id, sum) => { this.setState({ order: "updated_at", discipline_id: tag_id, page: 1, sub_discipline_id: undefined }) let { order } = this.state; this.getList(order, tag_id, undefined, 1); e.stopPropagation(); } componentDidMount() { document.title = "实践课程"; const upsystem = `/users/system_update.json`; axios.get(upsystem).then((response) => { let updata = response.data; this.setState({ updata: updata }) }).catch((error) => { console.log(error); }) this.getdisciplines() let { order, discipline_id, sub_discipline_id, page } = this.state; this.getList(order, discipline_id, sub_discipline_id, page); } getdisciplines = () => { let url = '/disciplines.json'; axios.get(url, { params: { source: "subject" } }).then((result) => { if (result.status == 200) { // console.log(result.data.disciplines) this.setState({ sortList: result.data.disciplines }) } }).catch((error) => { console.log(error); }) } OnSearchInput = (value, type) => { this.setState({ search: value, page: 1 }) const { order, discipline_id, sub_discipline_id } = this.state this.getList(order, discipline_id, sub_discipline_id, 1, value) } getList = (order, discipline_id, sub_discipline_id, page, keyword = '') => { let url = '/paths.json'; axios.get(url, { params: { sort: "desc", limit: 16, order: order, keyword, page: page, discipline_id: discipline_id, sub_discipline_id: sub_discipline_id } }).then((result) => { if (result.status == 200) { this.setState({ pathList: result.data.subjects, total_count: result.data.total_count }) } }).catch((error) => { console.log(error); }) } //头部获取是否已经登录了 getUser = (url) => { if (this.props.checkIfLogin() === false) { this.props.showLoginDialog() return } if (this.props.checkIfProfileCompleted() === false) { this.props.showProfileCompleteDialog() return } if (url !== undefined || url !== "") { this.props.history.push(url); } } getshixunchildValues = (e, id, item) => { this.setState({ discipline_id: item.id, sub_discipline_id: id, }) let { order, page } = this.state; this.getList(order, item.id, id, page); e.stopPropagation(); } getmenu = (list, item) => { return (
{ list.map((tag, e) => { return ( this.getshixunchildValues(e, tag.id, item)}>{tag.name} ) }) }
) } render() { let { order, sortList, search, page, total_count, discipline_id } = this.state; let pathstype = false; if (this.props && this.props.mygetHelmetapi != null) { let paths = "/paths"; this.props.mygetHelmetapi.navbar.map((item, key) => { var reg = RegExp(item.link); if (paths.match(reg)) { if (item.hidden === true) { pathstype = true } } }) } return (
{this.state.updata === undefined ? "" : }
  • 0 ? "" : "active"}> this.changeSelect(e, undefined)}>全部
  • { sortList && sortList.map((item, key) => { return (
  • this.changeSelect(e, `${item.id}`, item.sub_disciplines.length)} key={key}> this.getmenu(item.sub_disciplines, item)} placement="bottomCenter"> {item.name}
  • ) }) }
{ this.state.pathList === null ? "" : total_count > 16 &&
}
) } } export default ShixunPathSearch;