lsc 2 år sedan
förälder
incheckning
a7df437e90

+ 1 - 1
dist/index.html

@@ -25,4 +25,4 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.189c2123ffe6282dd666cd9a87c513f3.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.85f48b0184f614b2b8d9.js></script><script type=text/javascript src=./static/js/vendor.d797842b29c6f5dac7b7.js></script><script type=text/javascript src=./static/js/app.e343c16952c97e798e1a.js></script></body></html><script>document.domain = document.domain.split(".").slice(-2).join(".");</script>
+    }</style><link href=./static/css/app.52e48edad4c1aa5bc967cb1a0bdf2015.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.85f48b0184f614b2b8d9.js></script><script type=text/javascript src=./static/js/vendor.0d145886fb72e6a24c6b.js></script><script type=text/javascript src=./static/js/app.6ca53257dcd04ef9b76e.js></script></body></html><script>document.domain = document.domain.split(".").slice(-2).join(".");</script>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.189c2123ffe6282dd666cd9a87c513f3.css.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.52e48edad4c1aa5bc967cb1a0bdf2015.css


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/css/app.52e48edad4c1aa5bc967cb1a0bdf2015.css.map


BIN
dist/static/img/left_coin.61793fb.png


BIN
dist/static/img/right_coin.1b77ab6.png


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.6ca53257dcd04ef9b76e.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.6ca53257dcd04ef9b76e.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.e343c16952c97e798e1a.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/app.e343c16952c97e798e1a.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/manifest.85f48b0184f614b2b8d9.js.map


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/vendor.0d145886fb72e6a24c6b.js


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
dist/static/js/vendor.0d145886fb72e6a24c6b.js.map


BIN
src/assets/report/left_coin.png


BIN
src/assets/report/right_coin.png


+ 21 - 20
src/components/pages/components/report.vue

@@ -323,7 +323,8 @@ export default {
     },
     setHtml(workJson) {
       var _title =
-        "<div style='display:flex;align-items:center'>" +
+      // style='display:flex;align-items:center'
+        "<div >" +
         "<h2>" +
         workJson.chapName +
         "-" +
@@ -419,25 +420,25 @@ export default {
       </html>`;
       // debugger
       //生成报告
-      // const link = document.createElement("a");
-      // link.download = "报告.html"; // 文件名
-      // link.style.display = "none";
-      // // 创建文件流
-      // // 创建bolb实例时,内容一定要放在[]中
-      // const blob = new Blob([content], {
-      //   type: "text/plain;charset='utf-8'",
-      // });
-      // link.href = window.URL.createObjectURL(blob);
-      // document.body.appendChild(link);
-      // link.click();
-      // document.body.removeChild(link);
-      saveAs(
-        htmlDocx.asBlob(content, {
-          orientation: "landscape", //跨域设置
-        }),
-        //文件名
-        "报告.doc"
-      );
+      const link = document.createElement("a");
+      link.download = "报告.html"; // 文件名
+      link.style.display = "none";
+      // 创建文件流
+      // 创建bolb实例时,内容一定要放在[]中
+      const blob = new Blob([content], {
+        type: "text/plain;charset='utf-8'",
+      });
+      link.href = window.URL.createObjectURL(blob);
+      document.body.appendChild(link);
+      link.click();
+      document.body.removeChild(link);
+      // saveAs(
+      //   htmlDocx.asBlob(content, {
+      //     orientation: "landscape", //跨域设置
+      //   }),
+      //   //文件名
+      //   "报告.doc"
+      // );
     },
     changeChap() {
       let _dyList = this.dyList;

+ 143 - 0
src/components/pages/components/studentReport.vue

@@ -0,0 +1,143 @@
+<template>
+  <div style="width: 100%; height: 100%">
+    <div class="sr_head">学生成长报告</div>
+    <div class="sr_body">
+      <div class="sr_box">
+        <div class="sr_first">
+          <div class="first">
+            <div class="sub_title"><span>学生基本信息</span></div>
+          </div>
+          <div class="second">
+            <div class="sub_title"><span>项目基本信息</span></div>
+          </div>
+        </div>
+        <div class="sr_second">
+          <div class="first">
+            <div class="sub_title"><span>学生综合能力评估</span></div>
+          </div>
+          <div class="second">
+            <div class="sub_title"><span>项目详细报告</span></div>
+          </div>
+        </div>
+        <div class="sr_third">
+          <div class="first">
+            <div class="sub_title"><span>项目概况</span></div>
+          </div>
+          <div class="second">
+            <div class="sub_title"><span>学习活动分配图</span></div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  props: ["checkCourse", "checkStudent"],
+  data() {
+    return {};
+  },
+};
+</script>
+
+<style>
+.sr_head {
+  color: rgb(21, 80, 183);
+  font-size: 30px;
+  font-weight: bolder;
+  text-align: center;
+  margin-bottom: 15px;
+}
+.sr_body {
+  width: 100%;
+  height: calc(100% - 55px);
+  overflow: auto;
+}
+
+.sr_box {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  min-width: 1300px;
+  min-height: 700px;
+}
+
+.sr_first {
+  width: calc(100% / 3.75);
+  height: 100%;
+}
+
+.sr_second {
+  width: calc(100% / 3.75 * 2);
+  height: 100%;
+}
+.sr_third {
+  width: calc(100% / 3.75 * 0.75);
+  height: 100%;
+}
+.sr_first,
+.sr_second,
+.sr_third {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+.sr_first .first,
+.sr_first .second,
+.sr_second .first,
+.sr_second .second,
+.sr_third .first,
+.sr_third .second {
+  background: #fff;
+  border-radius: 10px;
+  width: 98%;
+}
+.sr_first .first {
+  height: calc(100% / 2.25);
+  margin-bottom: 20px;
+}
+.sr_first .second {
+  height: calc(100% / 2.25 * 1.25);
+}
+
+.sr_second .first {
+  height: calc(100% / 3.5 * 2);
+  margin-bottom: 20px;
+}
+.sr_second .second {
+  height: calc(100% / 3.5 * 1.5);
+}
+.sr_third .first {
+  height: calc(100% / 2);
+  margin-bottom: 20px;
+}
+.sr_third .second {
+  height: calc(100% / 2);
+}
+.sub_title {
+  display: flex;
+  color: rgb(0, 107, 180);
+  align-items: center;
+  justify-content: space-between;
+  height: 40px;
+  width: 200px;
+  margin: 0 auto;
+}
+.sub_title span {
+}
+.sub_title::after {
+  content: "";
+  width: 20px;
+  height: 20px;
+  background-image: url(../../../assets/report/left_coin.png);
+  background-size: 100% 100%;
+}
+.sub_title::before {
+  content: "";
+  width: 20px;
+  height: 20px;
+  background-image: url(../../../assets/report/right_coin.png);
+  background-size: 100% 100%;
+}
+</style>

+ 20 - 20
src/components/pages/components/worksDetail2.vue

@@ -1720,26 +1720,26 @@ export default {
       </body>
       </html>`;
       // debugger
-      //生成报告
-      // const link = document.createElement("a");
-      // link.download = "报告.html"; // 文件名
-      // link.style.display = "none";
-      // // 创建文件流
-      // // 创建bolb实例时,内容一定要放在[]中
-      // const blob = new Blob([content], {
-      //   type: "text/plain;charset='utf-8'",
-      // });
-      // link.href = window.URL.createObjectURL(blob);
-      // document.body.appendChild(link);
-      // link.click();
-      // document.body.removeChild(link);
-      saveAs(
-        htmlDocx.asBlob(content, {
-          orientation: "landscape", //跨域设置
-        }),
-        //文件名
-        "报告.doc"
-      );
+      // 生成报告
+      const link = document.createElement("a");
+      link.download = "报告.html"; // 文件名
+      link.style.display = "none";
+      // 创建文件流
+      // 创建bolb实例时,内容一定要放在[]中
+      const blob = new Blob([content], {
+        type: "text/plain;charset='utf-8'",
+      });
+      link.href = window.URL.createObjectURL(blob);
+      document.body.appendChild(link);
+      link.click();
+      document.body.removeChild(link);
+      // saveAs(
+      //   htmlDocx.asBlob(content, {
+      //     orientation: "landscape", //跨域设置
+      //   }),
+      //   //文件名
+      //   "报告.doc"
+      // );
     },
   },
   created() {

+ 132 - 1
src/components/pages/works.vue

@@ -102,6 +102,12 @@
                   @click="getWorkData(scope.row)"
                   >查看课程</el-button
                 >
+                <!-- <el-button
+                  type="primary"
+                  size="small"
+                  @click="getStudnet(scope.row)"
+                  >查看报告</el-button
+                > -->
               </template>
             </el-table-column>
           </el-table>
@@ -179,16 +185,78 @@
       </div>
       <span slot="footer" class="dialog-footer"> </span>
     </el-dialog>
+    <el-dialog
+      title="选择学生"
+      :visible.sync="signDialog"
+      width="500px"
+      :before-close="handleClose"
+      class="dialog_diy check_diy"
+    >
+      <div>
+        <div>
+          <el-table
+            v-loading="isLoading2"
+            ref="table"
+            :data="res2"
+            border
+            :height="400"
+            :fit="true"
+            style="width: 100%"
+            :row-class-name="tableRowClassName"
+            :header-cell-style="{ background: 'rgb(238,238,238)' }"
+          >
+            <el-table-column
+              prop="sName"
+              label="姓名"
+              min-width="20"
+            ></el-table-column>
+            <el-table-column label="操作" min-width="20">
+              <template slot-scope="scope">
+                <el-button
+                  type="primary"
+                  size="small"
+                  @click="getReport(scope.row)"
+                  >查看报告</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+          <div style="margin-top: 10px">
+            <el-pagination
+              background
+              layout="prev, pager, next"
+              :page-size="10"
+              :total="total2"
+              @current-change="handleCurrentChange2"
+            ></el-pagination>
+          </div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="signDialog = false">关闭</el-button>
+      </span>
+    </el-dialog>
+    <div class="report_box" v-if="reportVisible">
+      <studentReport
+        :checkCourse="checkCourse"
+        :checkStudent="checkStudent"
+      ></studentReport>
+    </div>
+    <div class="cancelbox" v-if="reportVisible">
+      <el-button @click="cancelR" type="primary" size="small">返回</el-button>
+    </div>
   </div>
 </template>
 
 <script>
 import WorkDate from "./components/workData";
 import Report from "./components/report";
+import studentReport from "./components/studentReport";
 export default {
   components: {
     WorkDate,
     Report,
+    studentReport,
   },
   data() {
     return {
@@ -211,6 +279,14 @@ export default {
       dialogVisible: false,
       dialogVisibleBao: false,
       dataJson: {},
+      signDialog: false,
+      isLoading2: false,
+      page2: 1,
+      total2: 0,
+      res2: [],
+      checkCourse: "",
+      reportVisible: false,
+      checkStudent: "",
     };
   },
   mounted() {
@@ -249,6 +325,10 @@ export default {
       this.page = val;
       this.getProject();
     },
+    handleCurrentChange2(val) {
+      this.page2 = val;
+      this.getStudnet();
+    },
     //获取班级列表
     getClass() {
       this.isLoading = true;
@@ -301,6 +381,38 @@ export default {
       this.dataJson = "";
       this.dialogVisible = false;
     },
+    cancelR(row) {
+      this.checkStudent = row.userid
+      this.reportVisible = false;
+    },
+    getStudnet(row) {
+      //获取作业
+      this.signDialog = true;
+      this.isLoading2 = true;
+      this.checkCourse = row.courseId;
+      let params = {
+        cid: row.courseId,
+        uname: "",
+        stage: "",
+        task: "",
+        page: this.page2,
+      };
+      this.ajax
+        .get(this.$store.state.api + "getCourseWorks3", params)
+        .then((res) => {
+          this.isLoading2 = false;
+          this.total2 = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.res2 = res.data[0];
+        })
+        .catch((err) => {
+          this.isLoading2 = false;
+          console.error(err);
+        });
+    },
+    getReport() {
+      this.reportVisible = true;
+      this.signDialog = false;
+    },
   },
   created() {
     this.page = 1;
@@ -351,7 +463,8 @@ export default {
   margin-top: 10px;
 }
 
-.student_table >>> .el-table,.student_table >>> .el-table__body-wrapper{
+.student_table >>> .el-table,
+.student_table >>> .el-table__body-wrapper {
   height: auto !important;
 }
 
@@ -376,6 +489,9 @@ export default {
 .dialog_diy >>> .el-dialog__headerbtn .el-dialog__close:hover {
   color: #fff;
 }
+.check_diy >>> .el-dialog__body {
+  padding-bottom: 0;
+}
 .dialog_diy >>> .el-dialog__body,
 .dialog_diy >>> .el-dialog__footer {
   background: #fafafa;
@@ -412,4 +528,19 @@ export default {
   padding: 0 90px 0px 0px;
   box-sizing: border-box;
 }
+
+.report_box {
+  height: 100%;
+  position: absolute;
+  top: 0;
+  /* background: #fff; */
+  background: rgb(231, 242, 252);
+  overflow: auto;
+  z-index: 1;
+  width: 100%;
+  left: 50%;
+  transform: translateX(-50%);
+  padding: 20px;
+  box-sizing: border-box;
+}
 </style>

Vissa filer visades inte eftersom för många filer har ändrats