worksReport.vue 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. <template>
  2. <div
  3. class="pb_content"
  4. style="
  5. background: unset;
  6. overflow: auto;
  7. padding: 20px;
  8. margin: 0;
  9. box-sizing: border-box;
  10. "
  11. >
  12. <div
  13. style="
  14. position: absolute;
  15. width: 100%;
  16. top: 0;
  17. height: 100%;
  18. overflow: auto;
  19. left: 50%;
  20. transform: translateX(-50%);
  21. "
  22. >
  23. <div
  24. class="pb_content_body"
  25. style="
  26. background: #fff;
  27. padding: 0px 21px;
  28. box-sizing: border-box;
  29. border-radius: 5px;
  30. "
  31. >
  32. <div class="pb_head">
  33. <!-- <span>备注:教师可以根据课程、班级条件筛选学生并查看该学生信息</span> -->
  34. <span
  35. @click="
  36. goTo('/works?userid=' + userid + '&oid=' + oid + '&org=' + org)
  37. "
  38. >评价管理</span
  39. >
  40. <span class="sub_head">数据报告</span>
  41. </div>
  42. <div class="pb_child_head">
  43. <div @click="wrType = 0" :class="{ iswrClick: wrType == 0 }">
  44. 学生报告
  45. </div>
  46. <div @click="wrType = 1" :class="{ iswrClick: wrType == 1 }">
  47. 班级报告
  48. </div>
  49. <div @click="wrType = 2" :class="{ iswrClick: wrType == 2 }">
  50. 课程报告
  51. </div>
  52. <div @click="wrType = 3" :class="{ iswrClick: wrType == 3 }">
  53. 目标评价
  54. </div>
  55. </div>
  56. <div>
  57. <StReport
  58. v-if="wrType == 0"
  59. :uuid="userid"
  60. :ooid="oid"
  61. :ccid="cid"
  62. :checkid="checkid"
  63. @getStReport="getOneReport"
  64. ></StReport>
  65. <ClassReport
  66. v-if="wrType == 1"
  67. :ooid="oid"
  68. :checkid="checkid"
  69. @getCStReport="getSecondReport"
  70. ></ClassReport>
  71. <CourseReport
  72. v-if="wrType == 2"
  73. :ooid="oid"
  74. :checkid="checkid"
  75. @getCourseReport="getThirdReport"
  76. ></CourseReport>
  77. <EvaReport v-if="wrType == 3" :ooid="oid" @getEvaReport="getFourReport"
  78. :checkid="checkid"
  79. ></EvaReport>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="report_box" v-if="reportVisible">
  84. <myReportLook
  85. :checkCourse="checkCourse"
  86. :checkStudent="checkStudent"
  87. :oid="oid"
  88. ></myReportLook>
  89. </div>
  90. <div class="cancelbox" v-if="reportVisible">
  91. <el-button @click="cancelR" type="primary" size="small">返回</el-button>
  92. </div>
  93. <div class="report_box" v-if="reportVisible1">
  94. <classStudentReport
  95. :checkCourse="checkCourse1"
  96. :checkStudent="checkStudent1"
  97. :oid="oid"
  98. ></classStudentReport>
  99. </div>
  100. <div class="cancelbox" v-if="reportVisible1">
  101. <el-button @click="cancelR1" type="primary" size="small">返回</el-button>
  102. </div>
  103. </div>
  104. </template>
  105. <script>
  106. import StReport from "./components/stReport";
  107. import ClassReport from "./components/classReport";
  108. import CourseReport from "./components/courseReport";
  109. import EvaReport from "./components/evaReport";
  110. import myReportLook from "./myReport/components/MyLookComponent/myReportLook";
  111. import classStudentReport from "./components/classStudentReport";
  112. export default {
  113. components: {
  114. StReport,
  115. ClassReport,
  116. CourseReport,
  117. EvaReport,
  118. myReportLook,
  119. classStudentReport,
  120. },
  121. data() {
  122. return {
  123. userid: this.$route.query.userid,
  124. org: this.$route.query.org,
  125. oid: this.$route.query.oid,
  126. cid: this.$route.query.classid,
  127. checkid: this.$route.query.checkid,
  128. wrType: 0,
  129. reportVisible: false,
  130. reportVisible1: false,
  131. checkCourse: [],
  132. checkStudent: "",
  133. checkCourse1: [],
  134. checkStudent1: "",
  135. };
  136. },
  137. methods: {
  138. goTo(path) {
  139. this.$router.push(path);
  140. },
  141. getOneReport(item, uid) {
  142. var a = [];
  143. for (var i = 0; i < item.length; i++) {
  144. a.push(item);
  145. }
  146. this.checkCourse = a.join(",");
  147. this.checkStudent = uid;
  148. this.reportVisible = true;
  149. },
  150. getSecondReport(item, cid) {
  151. this.checkCourse1 = cid;
  152. this.checkStudent1 = item.join(",");
  153. this.reportVisible1 = true;
  154. },
  155. getThirdReport(item, cid) {
  156. this.checkCourse1 = cid;
  157. this.checkStudent1 = item.join(",");
  158. this.reportVisible1 = true;
  159. },
  160. getFourReport(item, cid) {
  161. this.checkCourse1 = cid;
  162. this.checkStudent1 = item.join(",");
  163. this.reportVisible1 = true;
  164. },
  165. cancelR1() {
  166. this.checkCourse1 = "";
  167. this.checkStudent1 = "";
  168. this.reportVisible1 = false;
  169. },
  170. cancelR() {
  171. this.checkCourse = "";
  172. this.checkStudent = "";
  173. this.reportVisible = false;
  174. },
  175. },
  176. };
  177. </script>
  178. <style scoped>
  179. .sub_head {
  180. position: relative;
  181. margin-left: 10px;
  182. }
  183. .sub_head::after {
  184. content: "";
  185. width: 100%;
  186. background: #5a9cea;
  187. height: 2px;
  188. position: absolute;
  189. left: 0;
  190. bottom: -12px;
  191. }
  192. .pb_head > span:nth-child(1) {
  193. font-size: 26px;
  194. cursor: pointer;
  195. color: #999;
  196. }
  197. .pb_head > span:nth-child(1):hover {
  198. color: #000;
  199. }
  200. .pb_head {
  201. margin: 0 !important;
  202. width: 100% !important;
  203. }
  204. .pb_child_head {
  205. padding: 10px 0;
  206. display: flex;
  207. flex-direction: row;
  208. flex-wrap: nowrap;
  209. align-items: center;
  210. }
  211. .pb_child_head > div {
  212. margin-right: 20px;
  213. padding-bottom: 10px;
  214. cursor: pointer;
  215. }
  216. .iswrClick {
  217. border-bottom: 2px solid #238bfc;
  218. color: #1684fc;
  219. }
  220. .cancelbox {
  221. position: absolute;
  222. z-index: 2;
  223. left: 50%;
  224. top: 20px;
  225. width: 95%;
  226. transform: translateX(-50%);
  227. display: flex;
  228. justify-content: flex-end;
  229. padding: 0 90px 0px 0px;
  230. box-sizing: border-box;
  231. }
  232. .report_box {
  233. height: 100%;
  234. position: absolute;
  235. top: 0;
  236. /* background: #fff; */
  237. background: rgb(231, 242, 252);
  238. overflow: auto;
  239. z-index: 1;
  240. width: 100%;
  241. left: 50%;
  242. transform: translateX(-50%);
  243. padding: 20px;
  244. box-sizing: border-box;
  245. }
  246. </style>