任课教师或大学生课表并不是相同的,也不是满课的。后端返回给前端一个课程信息的列表,要求前端正确显示。

后端没有必要补齐空,凑一个完整的课表给前端,直接返回教师所有课程给前端。只要约定按节次排序或按星期排序就行了。

这里按节次排序。

import React from 'react';
import 'antd-mobile/dist/antd-mobile.css';
import style from './home.css';class CourseTable extends React.Component {constructor(props) {super(props);this.state = {courseInfos: [{}],tables: [[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],[0, 0, 0, 0, 0],],};}componentDidMount() {console.log(this.state.tables);//有点蠢了,好像都不需要动用dom 去修改节点标签的值,直接根据请求接口返回的数据修改tables就行了// let course = document.getElementById('course');// console.log(course);// course.childNodes.forEach((item,index)=>{//   console.log(index,item);//   item.childNodes.forEach((item,index)=>{//     console.log(index,item);//     item.value = '语文';//   })// })//请求返回的数据必须要保证按节次排序//如此不就需要前端拼凑完整的数据给前端了嘛//假如这个是教师课表,一般来说一个老师只教一科,//这里换不同的科目,科目不同颜色不同,这不是很容易??const data = [{ week: 1, segment: 1, course: '语文' },{ week: 2, segment: 1, course: '物理' },{ week: 2, segment: 2, course: '化学' },{ week: 5, segment: 2, course: '数学' },{ week: 4, segment: 4, course: '英语' },{ week: 3, segment: 5, course: '政治' },];let tables = this.state.tables;for (let i = 0; i < tables.length; i++) {for (let j = 0; j < 5; j++) {for (let k = 0; k < data.length; k++) {if (data[k].segment - 1 === i && data[k].week - 1 === j) {tables[i][j] = data[k].course;}if (tables[i][j] === 0) {tables[i][j] = '';}}}}//我好想并没有去setState,它的值就被改变了console.log(tables);}componentDidUpdate(prevState) {}render() {return (<div><div className={style['table-week']}><label>周一</label><label>周二</label><label>周三</label><label>周四</label><label>周五</label></div><div className={style['table-segment']}><label>1</label><label>2</label><label>3</label><label>4</label><label>5</label></div><div className={style.courseTable}>{this.state.tables.map((item, index) => (<div className={style.segment} key={index}>{item.map((item, index) => {switch (item) {case '语文':return (<labelstyle={{ backgroundColor: 'lightGreen' }}key={index}>{item}</label>);case '数学':return (<label style={{ backgroundColor: 'skyBlue' }} key={index}>{item}</label>);case '英语':return (<label style={{ backgroundColor: '#F66222' }} key={index}>{item}</label>);case '物理':return (<label style={{ backgroundColor: '#86CEA0' }} key={index}>{item}</label>);case '化学':return (<label style={{ backgroundColor: '#F7246C' }} key={index}>{item}</label>);case '政治':return (<label style={{ backgroundColor: '#24DEF7' }} key={index}>{item}</label>);case '':return <label key={index}>{item}</label>;}})}</div>))}</div><div className={style.courseTable}>{this.state.tables.map((item, index) => (<div className={style.segment} key={index}>{item.map((item, index) => {switch (item) {case '语文':return (<labelstyle={{ backgroundColor: 'lightGreen' }}key={index}>{item}</label>);case '数学':return (<label style={{ backgroundColor: 'skyBlue' }} key={index}>{item}</label>);case '英语':return (<label style={{ backgroundColor: '#F66222' }} key={index}>{item}</label>);case '物理':return (<label style={{ backgroundColor: '#86CEA0' }} key={index}>{item}</label>);case '化学':return (<label style={{ backgroundColor: '#F7246C' }} key={index}>{item}</label>);case '政治':return (<label style={{ backgroundColor: '#24DEF7' }} key={index}>{item}</label>);case '':return <label key={index}>{item}</label>;}})}</div>))}</div></div>);}
}export default CourseTable;
/**
课程表*/.courseTable{width:90%;border: solid 0 skyblue;border-left: 0 none;border-right: 0 none;padding: 0;margin: 2px 2px 40px 25px
}.table-week{width:100%;padding: 0;margin: 2px 2px 10px 25px
}.table-week label{display: inline-block;width: 58px;text-align: center;margin: 0 5px -14px 0;
}.table-segment{width: 6%;height: 420px ;float: left;text-align: center;margin-right: 2px;background-color: #E5E5E5;
}.table-segment label{width: 20px;height: 38px ;display: inline-block;padding: 9px 5px;
}.courseTable .segment{width:100%;height: 38px;border-top: dashed 1px skyblue;border-left: 0 none;border-right: 0 none;
}.courseTable .segment label{width: 58px;height: 36px;display: inline-block;padding:7px 5px;color: white;border-radius: 6px;text-align: center;margin: 0 5px -14px 0;
}

给定坐标(星期几、第几节)前端显示问题相关推荐

  1. 小唐开始学 Spring Boot——(5)前端显示集成

    文章目录 一.创建前端显示类 二.判断类 三.改写Service层 四.效果 上一节,我们说到,我们已经可以将我们数据库里面的内容,通过我们的mybatis去映射到我们的前端 这个时候,细心的同学就会 ...

  2. 将您的窗口最前端显示

    很多时候,我们用电脑同时并非只做一件事,像我就经常一边看视频,一边看网上的其它一些信息或者整理电脑上的东西之类的.只要这两者不是十分冲突的就行.以前都用KMPlayer看视频,它本身提供有前端显示的功 ...

  3. 建站四部曲之前端显示篇(React+上线)

    本系列分为四篇: 建站四部曲之后端接口篇(SpringBoot+上线) 建站四部曲之Python数据爬虫篇(selenium) 建站四部曲之前端显示篇(React+上线) 建站四部曲之移动端篇(And ...

  4. asp.net(c#)两时间段每天是星期几,周几(时间段日历显示)的问题解

    asp.net(c#)两时间段每天是星期几,周几(时间段日历显示)的问题解决 string   temp="<table width=\"560\" cellpad ...

  5. 解决SQL Server 2005数据库中datetime时间字段在前端显示时分秒的问题

    SQL Server 2005中时间类型datetime的格式是"年月日时分秒",直接读出来该字段,为了不让它在前端显示"时分秒"若是显示在dataGridVi ...

  6. MFC让窗口最前端显示

    基于对话框的MFC应用程序,环境:Win XP + VC2010.程序界面: 接着为IDC_CHECK1绑定一个BOOL类型的变量m_bShowTopmost,并添加BN_CLICKED事件响应函数: ...

  7. 关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案

    关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案 参考文章: (1)关于ArcGIS动态图层空间内栅格数据,JS前端显示颜色不正确的解决方案 (2)https://www.cn ...

  8. 前端显示文本时的格式设置

    有时,前端页面文字内容需要按照我们输入的格式显示,比如,我们输入换行.空格,这些在文字显示时都需要显示出来.这里有一个较为简单的解决方式 前端显示界面: 代码: <div class=" ...

  9. echarts 时间曲线图_web前端显示设备实时温度,ECharts实现温度折线图,实时动态温度曲线图生成...

    web前端显示设备实时温度, 具体步骤如下: 1.在页面中引入ECharts文件echarts-all.js 2.在body中为ECharts准备一个具备大小(宽高)的Dom 3.具体JS代码如下: ...

  10. 如何在前端显示后端返回的图片流(以Vue为例)

    我们在前端显示图片一般用法是这样的 <template><el-carousel :interval="4000" type="card" h ...

最新文章

  1. php html 变量,PHP与HTML混编,使用PHP变量代替数据--20190221
  2. 如何在asp.net mvc3中使用HttpStatusCode
  3. puppet最新源码包安装学习笔记
  4. Linux shell 编程入门 - 使用ubuntu-14.10
  5. 阿里打造全球首个纯机器人送货高校,22个物流机器人进入浙大备战双11
  6. Oracle表连接深入浅出
  7. 【MySQL】如何最大程度防止人为误操作MySQL数据库?这次我懂了!!
  8. Linux时间子系统之(四):timekeeping
  9. 单例模式之懒汉式(三种代码实现)
  10. 终极邮件搜索群发大师 v3.47 绿色
  11. vue不让双击执行单击事件
  12. RIGOL DS70000系列示波器在USB2.0一致性分析测试方案
  13. Python+scrapy+mysql实现爬取磁力链接
  14. 财务管理系统属于计算机应用领域中的,计算机基础套题及其答案.doc
  15. 华为关闭系统更新EMUI9.0禁止更新mate10降级EMUI9
  16. URL中“#” “?” “”号的作用
  17. 精通 Grails: 用 JSON 和 Ajax 实现异步 Grails
  18. 《漫画中国式项目管理》----蒋昕炜 ,读书笔记
  19. 数学建模之出租车数目估计
  20. tomcat URL简写案例:模拟网站www.baidu.com的访问

热门文章

  1. MySQL查询语句常用函数总结
  2. 从零开始的Unity萌导书#1:Hello,Unity!
  3. 关于高效找工作的几条建议
  4. [JarvisOj][XMAN]lTell Me Something
  5. 【转】POJ分类很好很有层次感
  6. Linux SMB和NFS文件共享
  7. 对通用查询组件初始化组织过滤条件
  8. oracle_dblink配置
  9. mongodb数据库命令操作(转)
  10. Spring3开发实战 之 第四章:对JDBC和ORM的支持