Sfoglia il codice sorgente

Merge branch 'master' of https://git.cocorobo.cn/jack/EvenManage

lsc 2 anni fa
parent
commit
32311492d2

File diff suppressed because it is too large
+ 555 - 79
package-lock.json


+ 1 - 0
package.json

@@ -26,6 +26,7 @@
     "jsmind": "^0.4.8",
     "lamejs": "^1.2.1",
     "pdfjs-dist": "^2.5.207",
+    "pdfvuer": "^1.7.5",
     "qs": "^6.10.1",
     "v-viewer": "^1.6.4",
     "vant": "^2.12.10",

BIN
src/assets/autorUp.png


File diff suppressed because it is too large
+ 7487 - 0
src/common/pdf.worker.js


+ 243 - 0
src/components/pages/components/vpdf.vue

@@ -0,0 +1,243 @@
+<template>
+  <!--使用 pdfvuer 实现 滑动浏览 单印章-->
+  <div class="pdf">
+    <div class="loading" v-show="loading">
+      <span>pdf可能会加载时间有点长,请耐心等待...</span>
+    </div>
+    <div id="contentArea" class="show" v-if="!loading">
+      <pdf :scale.sync="scale" :resize="true" ref="wrapper" class="p-pdf" :src="pdfData" v-for="i in numPages" :key="i"
+        :id="i" :page="i" style="width: 100%">
+        <!-- <template slot="loading"> loading content here... </template> -->
+      </pdf>
+    </div>
+    <!-- <div class="rightArea">
+      <div class="toolGroup">
+        <div class="page">第 {{ page }} / {{ numPages }} 页</div>
+        <el-button type="primary" @click.stop="prePage">上一页</el-button>
+        <el-button type="primary" @click.stop="nextPage">下一页</el-button>
+      </div>
+    </div> -->
+  </div>
+</template>
+
+<script>
+import pdfvuer from "pdfvuer"; // pdfvuer 版本为@1.6.1
+import "pdfjs-dist/build/pdf.worker.entry";
+const PDF = require("pdfjs-dist");
+PDF.GlobalWorkerOptions.workerSrc = "../../../common/pdf.worker.js";
+
+export default {
+  name: "Pdfvuer",
+  components: {
+    pdf: pdfvuer,
+  },
+  props: {
+    // 当前pdf路径
+    pdfUrl: {
+      type: String,
+      default:
+        "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/0629%E5%AE%9E%E6%97%B6%E8%AF%BE%E5%A0%82%E6%A8%A1%E6%8B%9F%E6%BC%94%E7%A4%BA%E8%AF%BE%E4%BB%B61656920880446.pdf",
+    },
+    ppage: {
+      type: Number,
+      default: 1,
+    },
+  },
+  data() {
+    return {
+      page: 1, // 当前页
+      numPages: 0, // 总页数
+      pdfData: undefined,
+      inputPage: 1, // 输入的页码
+      loading: false,
+      scale: "page-width",
+    };
+  },
+  mounted() {
+    // this.loading = this.$loading.service({
+    //   background: "rgba(255, 255, 255, 0.7)",
+    //   target: document.querySelector(".loading"),
+    //   text: "加载中...",
+    //   spinner: "",
+    // });
+    this.loading = true;
+    this.getPdf();
+  },
+  beforeDestroy() { },
+  watch: {
+    pdfUrl: function (s) {
+      // this.loading = this.$loading.service({
+      //   background: "rgba(255, 255, 255, 0.7)",
+      //   target: document.querySelector(".loading"),
+      //   text: "加载中...",
+      //   spinner: "",
+      // });
+      this.loading = true;
+      this.getPdf();
+    },
+  },
+  methods: {
+    // 获取 pdf 信息
+    getPdf() {
+      this.pdfData = pdfvuer.createLoadingTask({
+        url: this.pdfUrl,
+        cMapUrl: "https://cdn.jsdelivr.net/npm/pdfjs-dist@2.16.105/cmaps/",
+        cMapPacked: true,
+      });
+      this.pdfData
+        .then((pdf) => {
+          // this.loading.close();
+          this.loading = false
+          this.numPages = pdf.numPages;
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 上一页
+    prePage() {
+      let page = this.page;
+      page = page > 1 ? page - 1 : 1;
+      this.page = page;
+    },
+    // 下一页
+    nextPage() {
+      let page = this.page;
+      page = page < this.numPages ? page + 1 : this.numPages;
+      this.page = page;
+    },
+  },
+};
+</script>
+<style scoped>
+.loading {
+  height: 100%;
+  width: 100%;
+  /* background: #000; */
+  position: absolute;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: rgba(255, 255, 255, 0.7);
+  z-index: 9;
+  font-size: 20px;
+  color: #007fff;
+}
+
+.pdf {
+  height: 100%;
+  width: 100%;
+  position: relative;
+  box-sizing: border-box;
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+
+.pdf .show {
+  margin: auto;
+  width: 100%;
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.pdf .show .p-pdf {
+  overflow: hidden;
+}
+
+.pdf .show .p-pdf .line {
+  position: absolute;
+  width: 50px;
+  right: -50px;
+  background: rgb(255, 186, 96);
+  height: 2px;
+}
+
+.pdf .show .p-pdf span {
+  width: 100%;
+  text-align: center;
+  color: #fff;
+}
+
+.pdf .show .p-pdf span+span {
+  margin-top: 10px;
+}
+
+.pdfbox {
+  /* border: 3px solid #000; */
+  /* box-sizing: border-box; */
+  /* border-radius: 4px; */
+  /* overflow: hidden; */
+}
+
+.pdf .pdf_footer {
+  position: sticky;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  padding: 10px 0;
+  width: 100%;
+  height: 75px;
+  background-color: rgba(255, 255, 255, 0.5);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+
+.pdf .pdf_footer .info {
+  display: flex;
+  flex-wrap: wrap;
+  width: 100%;
+  justify-content: center;
+}
+
+.pdf .p-pdf .viewerContainer {
+  width: 100%;
+}
+
+/* .pdf .pdf_footer .info div {
+  width: 30%;
+} */
+.pdf .pdf_footer .operate {
+  margin: 10px 0 0;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  width: 100%;
+}
+
+.pdf .pdf_footer .operate div {
+  text-align: center;
+  font-size: 15px;
+}
+
+.pdf .pdf_footer .operate .btn {
+  cursor: pointer;
+  margin: 5px 10px;
+  width: 100px;
+  border-radius: 10px;
+  padding: 5px;
+  color: #fff;
+  background-color: #066ebe;
+}
+
+.pdf::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 6px;
+  /*高宽分别对应横竖滚动条的尺寸*/
+  height: 6px;
+}
+
+/*定义滚动条轨道 内阴影+圆角*/
+.pdf::-webkit-scrollbar {
+  border-radius: 10px;
+  background-color: #b8bdc9;
+}
+
+/*定义滑块 内阴影+圆角*/
+.pdf::-webkit-scrollbar-thumb {
+  border-radius: 10px;
+  -webkit-box-shadow: inset 0 0 6px rgb(96, 125, 184);
+  background-color: #2c5ab3;
+}
+</style>

+ 4 - 1
src/components/pages/munAdmin/anliList.vue

@@ -63,7 +63,7 @@
           </div>
           <div class="anliButton">
             <div>
-              <el-button @click="goTo('/anliDetail?aid=' + a.id + '&type=1')"
+              <el-button @click="lookDetail(a.id)"
                 >查看</el-button
               >
             </div>
@@ -661,6 +661,9 @@ export default {
           console.error(err);
         });
     },
+    lookDetail(aid) {
+      window.open(window.origin + "/#/anliDetail?aid=" + aid);
+    },
   },
   created() {
     // this.getAnliList();

+ 16 - 9
src/components/pages/race/addRace.vue

@@ -115,7 +115,7 @@
         </div>
         <div class="cresteMessage">
           案例征集必填内容已完成,请在
-          <span>"赛事管理 > 我的案例"中查看。</span> 你可以点击
+          <span>"活动管理 > 我的案例"中查看。</span> 你可以点击
           <span>"平台实施填报入口"</span> ,提交选填内容。<span
             style="color: #9a9a9a"
             >(填报后可以运用平台进行教学,调用平台工具,收集过程性数据并生成数据报告。)</span
@@ -241,15 +241,22 @@ export default {
     nextSteps() {
       if (this.steps == 1) {
         if (this.raceInfo.title == "") {
-          this.$message.error("请将信息填写完整");
+          this.$message.error("请填写案例名称!");
+          return;
+        } else if(this.raceInfo.data.length == 0) {
+          this.$message.error("文件上传不能为空!");
           return;
         } else {
+          this.dialogVisible1 = true;
           this.steps++;
         }
-      } else if(2 <= this.steps < 6) {
-        this.dialogVisible1 = true;
+      }else{
         this.steps++;
       }
+      //  else if(2 <= this.steps < 6) {
+      //   this.dialogVisible1 = true;
+      //   this.steps++;
+      // }
       this.isAddOrUpRace1(3);
     },
     lastSteps() {
@@ -324,7 +331,7 @@ export default {
               type: "success",
             });
             this.goTo(
-              "/eventCenter?userid=" + this.userid + "&oid=" + this.oid
+              "/eventCenter?steps=" + '2'
             );
             this.dialogVisible1 = false;
           } else {
@@ -358,17 +365,17 @@ export default {
         .then((res) => {
           if (this.isJump == 0) {
             this.$message({
-              message: "新增成功",
+              message: "修改成功",
               type: "success",
             });
             this.dialogVisible = true;
           } else if (this.isJump == 1) {
             this.$message({
-              message: "新增成功",
+              message: "修改成功",
               type: "success",
             });
             this.goTo(
-              "/eventCenter?userid=" + this.userid + "&oid=" + this.oid
+              "/eventCenter?steps=" + '2'
             );
             this.dialogVisible1 = false;
           } else {
@@ -433,7 +440,7 @@ export default {
   margin: 10px auto;
   background: #fff;
   border-radius: 10px;
-  padding: 15px 0;
+  padding: 10px 0;
 }
 
 .race_nav span {

+ 10 - 8
src/components/pages/race/addRace/projectActpro.vue

@@ -227,16 +227,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -260,10 +262,10 @@ export default {
       } else {
         type1 = 2;
       }
-
+      
       _this.raceAct.stageBox[sindex].data.progress = 0;
       _this.raceAct.stageBox[sindex].data.proVisible = true;
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:
@@ -381,7 +383,7 @@ export default {
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: flex-start;
-  margin-left: 10px;
+  margin: 5px 0 0 10px;
   height: 50px;
   cursor: pointer;
 }

+ 9 - 7
src/components/pages/race/addRace/projectEffect.vue

@@ -204,16 +204,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -240,7 +242,7 @@ export default {
 
       _this.raceEff.data.progress = 0;
       _this.raceEff.data.proVisible = true;
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:
@@ -372,7 +374,7 @@ export default {
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: flex-start;
-  margin-left: 10px;
+  margin: 5px 0 0 10px;
   height: 50px;
   cursor: pointer;
 }

+ 9 - 7
src/components/pages/race/addRace/projectExceva.vue

@@ -204,16 +204,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -240,7 +242,7 @@ export default {
 
       _this.raceExc.data.progress = 0;
       _this.raceExc.data.proVisible = true;
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:
@@ -372,7 +374,7 @@ export default {
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: flex-start;
-  margin-left: 10px;
+  margin: 5px 0 0 10px;
   height: 50px;
   cursor: pointer;
 }

+ 13 - 11
src/components/pages/race/addRace/projectProcess.vue

@@ -35,7 +35,7 @@
                 <el-input
                   v-model="sa.allTime"
                   @input="upRacePro"
-                  placeholder="输入阶段总课时"
+                  placeholder="输入阶段总课时"
                 ></el-input>
               </div>
             </div>
@@ -70,14 +70,14 @@
                     <div style="min-width: 45px">课时</div>
                     <el-input
                       v-model="race.actTime"
-                      placeholder="输入任务名称"
+                      placeholder="输入任务课时"
                       @input="upRacePro"
                     ></el-input>
                   </div>
                   <div
                     class="remove"
                     v-if="racePro.stageBox[saIndex].actBox.length > 1"
-                    @click="deleteTask(raIndex)"
+                    @click="deleteTask(saIndex,raIndex)"
                     style="position: absolute; right: 0"
                   ></div>
                 </div>
@@ -729,16 +729,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -792,7 +794,7 @@ export default {
           index
         ].evaDesign.data.proVisible = true;
       }
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:
@@ -1048,7 +1050,7 @@ export default {
   flex-wrap: nowrap;
   justify-content: space-between;
   align-items: flex-start;
-  margin-left: 10px;
+  margin: 5px 0 0 10px;
   height: 50px;
   cursor: pointer;
 }
@@ -1347,7 +1349,7 @@ export default {
 }
 
 .addTaskBorder > div > img {
-  width: 100px;
+  width: 80px;
 }
 
 .addTaskBorder > div > span {

+ 73 - 27
src/components/pages/race/addRace/raceDetail.vue

@@ -167,6 +167,7 @@
               </div>
               <div class="raTable">
                 <el-table
+                  class="tableColor"
                   ref="table"
                   :data="raceDetail.tableData"
                   :height="tableHeight"
@@ -178,7 +179,7 @@
                   }"
                   :row-class-name="tableRowClassName"
                 >
-                  <el-table-column label="姓名" min-width="10" align="center">
+                  <el-table-column label="姓名" min-width="20" align="center">
                     <template slot-scope="scope">
                       <div class="userImg">
                         <div class="tx">
@@ -195,6 +196,7 @@
                         >
                           {{ scope.row.sn }}
                         </div>
+                        <div v-if="scope.$index == 0" class="lxr">联系人</div>
                       </div>
                     </template>
                   </el-table-column>
@@ -223,13 +225,20 @@
                   <el-table-column label="操作" min-width="20">
                     <template slot-scope="scope">
                       <div class="pb_buttonBox">
-                        <el-button
+                        <!-- <el-button
                           size="mini"
                           type="primary"
                           style="cursor: pointer"
                           @click="updateStudent(scope.row, scope.$index)"
                           >修改</el-button
+                        > -->
+                        <div
+                          class="delete"
+                          style="margin-left: 0"
+                          @click="updateStudent(scope.row, scope.$index)"
                         >
+                          <img src="../../../../assets/autorUp.png" alt />
+                        </div>
                         <div
                           class="delete"
                           @click="deleteStudent(scope.$index)"
@@ -257,7 +266,7 @@
                   v-model="raceDetail.courseText"
                   @input="updateTitle"
                   maxlength="200"
-                  placeholder="请填写项目简介,最多200字..."
+                  placeholder="200字以内,介绍项目背景,描述生活中的现象,引出要解决的核心问题,概述解决问题的思路及预期成果等"
                 ></textarea>
               </div>
             </div>
@@ -267,7 +276,7 @@
               <div class="right_title" id="fouth">文件上传</div>
               <div class="secondTop">
                 <div>
-                  <div class="basic_box1">
+                  <div class="basic_box1" style="width: 100%">
                     <div>
                       <div
                         class="add_chapters_box"
@@ -327,15 +336,24 @@
                       </div>
                     </div>
                     <div class="add_info_box">
-                      <button class="info_btn" @click="addImg($event)">
-                        上传附件
-                        <input
-                          type="file"
-                          accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,video/mp4, video/quicktime, video/x-msvideo,image/*"
-                          style="display: none"
-                          @change="beforeUpload($event, null, 0)"
-                        />
-                      </button>
+                      <div class="upTips">
+                        <button
+                          class="info_btn"
+                          @click="addImg($event)"
+                          style="min-width: 108px"
+                        >
+                          上传附件
+                          <input
+                            type="file"
+                            accept="application/pdf, application/.ppt, .ppt, .pptx, .xlsx, .xls, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document,video/mp4, video/quicktime, video/x-msvideo,image/*"
+                            style="display: none"
+                            @change="beforeUpload($event, null, 0)"
+                          />
+                        </button>
+                        <div>
+                          此处需要提交《项目式学习方案设计》、《项目式学习活动案例》,上传大小限制为10M,Excel、Word、PPT上传大小限制为5M。
+                        </div>
+                      </div>
                     </div>
                     <div v-if="raceDetail.data.proVisible" class="mask">
                       <div class="progressBox">
@@ -604,8 +622,13 @@ export default {
   },
   methods: {
     tableRowClassName({ row, rowIndex }) {
-      if ((rowIndex + 1) % 2 === 0) {
-        return "even_row";
+      // if ((rowIndex + 1) % 2 === 0) {
+      //   return "even_row";
+      // } else {
+      //   return "";
+      // }
+      if (rowIndex === 0) {
+        return "tr-red";
       } else {
         return "";
       }
@@ -775,16 +798,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -808,10 +833,9 @@ export default {
       } else {
         type1 = 2;
       }
-
       _this.raceDetail.data.progress = 0;
       _this.raceDetail.data.proVisible = true;
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:
@@ -873,13 +897,13 @@ export default {
         }
       } else {
         if (this.sName === "") {
-          this.$message.error("学生姓名不能为空");
+          this.$message.error("姓名不能为空");
           return;
         } else if (this.sSubject === "") {
-          this.$message.error("学生学科不能为空");
+          this.$message.error("学科不能为空");
           return;
         } else if (this.sSchool === "") {
-          this.$message.error("学生学校不能为空");
+          this.$message.error("学校不能为空");
         } else if (this.sPhone != "") {
           if (!/^[1][3,4,5,7,8][0-9]{9}$/.test(this.sPhone)) {
             this.$message.error("手机号格式不正确");
@@ -912,7 +936,6 @@ export default {
           ph: this.sPhone,
         });
       }
-
       this.sName = "";
       this.sSubject = "";
       this.sSchool = "";
@@ -992,6 +1015,9 @@ export default {
 
 <style scoped>
 @media screen and (max-width: 1280px) {
+  .upTips {
+    align-items: flex-start !important;
+  }
 }
 .dialog_diy >>> .el-dialog__header {
   background: #3c3c3c !important;
@@ -1090,7 +1116,7 @@ export default {
   height: 50px;
   cursor: pointer;
 }
-.stepRightNav:hover{
+.stepRightNav:hover {
   color: #999;
 }
 .line,
@@ -1747,4 +1773,24 @@ export default {
   width: 40px;
   margin-right: 20px;
 }
+.upTips {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: baseline;
+}
+.upTips > div {
+  margin-left: 10px;
+  color: #999;
+}
+.tableColor >>> .tr-red {
+  color: red !important;
+}
+.lxr {
+  color: #fff;
+  background: center center #4A54FF;
+  background-image: linear-gradient(315deg,#6772FF 0, #00f9e5 100%);
+  background-size: 104% 104%;
+  min-width: 50px;
+}
 </style>

+ 21 - 16
src/components/pages/race/addRace/raceOverview.vue

@@ -18,7 +18,7 @@
               <img src="../../../../assets/icon/race/progress.png" alt="" />
             </div>
             <div class="stepRightNav" @click="jump('first')">
-              <div>驱动说明</div>
+              <div>驱动问题</div>
               <div>说明</div>
             </div>
           </div>
@@ -27,7 +27,7 @@
               <img src="../../../../assets/icon/race/progress.png" alt="" />
             </div>
             <div class="stepRightNav" @click="jump('second')">
-              <div>学习说明</div>
+              <div>学习目标</div>
               <div>说明</div>
             </div>
           </div>
@@ -36,7 +36,7 @@
               <img src="../../../../assets/icon/race/progress.png" alt="" />
             </div>
             <div class="stepRightNav" @click="jump('third')">
-              <div>评价说明</div>
+              <div>评价设计</div>
               <div>说明</div>
             </div>
           </div>
@@ -63,15 +63,16 @@
           <div class="whiteBg">
             <div class="firstTop">
               <div class="right_title" id="first">驱动问题</div>
-              <div class="rightNav">
+              <!-- <div class="rightNav">
                 可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。
-              </div>
+              </div> -->
             </div>
             <div class="basic_box1">
               <div class="editorCss">
                 <editor-bar
                   v-model="raceOver.driQuestion.brief"
                   @change="upRaceOver"
+                  :placeholder="'可包括阶段性问题和学科问题:阶段性问题是指在核心问题解决的不同阶段,通过提出驱动性问题,明确阶段子任务。学科问题是指从不同学科的角度以及分解和提出要研究解决的主要问题。'"
                 ></editor-bar>
               </div>
               <div>
@@ -177,15 +178,16 @@
           <div class="whiteBg">
             <div class="firstTop">
               <div class="right_title" id="second">学习目标</div>
-              <div class="rightNav">
+              <!-- <div class="rightNav">
                 学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述
-              </div>
+              </div> -->
             </div>
             <div class="basic_box1">
               <div class="editorCss">
                 <editor-bar
                   v-model="raceOver.tarDesign.brief"
                   @change="upRaceOver"
+                  :placeholder="'学习目标提倡用核心素养来分类概括再描述,具体表述时应行为化、具体化、操作化,可以用“通过什么,达到什么,培养什么”的句式来进行表述'"
                 ></editor-bar>
               </div>
               <div>
@@ -290,15 +292,16 @@
           <div class="whiteBg">
             <div class="firstTop">
               <div class="right_title" id="third">评价设计</div>
-              <div class="rightNav">
+              <!-- <div class="rightNav">
                 项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。
-              </div>
+              </div> -->
             </div>
             <div class="basic_box1">
               <div class="editorCss">
                 <editor-bar
                   v-model="raceOver.actiDesign.brief"
                   @change="upRaceOver"
+                  :placeholder="'项目学习评价方式需要体现过程性评价与总结性评价相结合,积极使用表现性评价。本次征集案例中,需要将学生的作品和报告作为附件呈现作品评价。'"
                 ></editor-bar>
               </div>
               <div>
@@ -491,7 +494,7 @@ export default {
     jump(t) {
       var a = document.getElementById(t);
       var b = document.getElementsByClassName("right")[0];
-      b.scrollTop = a.offsetTop;
+      b.scrollTop = a.offsetTop - 30;
     },
     change1(val) {
       console.log(val);
@@ -572,16 +575,18 @@ export default {
         ) != -1
       ) {
         if (file.size / 1024 / 1024 > 10) {
-          this.$message.error("上传文件大于10兆,请重新选择文件!");
+          this.$message.error("上传文件大于10M,请重新选择文件!");
           return;
         }
       } else if (
-        file.name
-          .split(".")
-          [file.name.split(".").length - 1].toLocaleUpperCase() != "PDF"
+        c.indexOf(
+          file.name
+            .split(".")
+            [file.name.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
       ) {
         if (file.size / 1024 / 1024 > 5) {
-          this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
+          this.$message.error("添加的上传文件大于5M,请重新选择文件!");
           return;
         }
       }
@@ -616,7 +621,7 @@ export default {
         _this.raceOver.actiDesign.data.progress = 0;
         _this.raceOver.actiDesign.data.proVisible = true;
       }
-
+      _this.$forceUpdate();
       if (file) {
         var params = {
           Key:

+ 4 - 4
src/components/pages/race/eventCenter.vue

@@ -21,7 +21,7 @@
       <MyAnli :userid="userid" :oid="oid" v-if="steps == 2"></MyAnli>
       <!-- <ProjectJd v-if="steps == 3"></ProjectJd> -->
     </div>
-    <div class="center_btn">
+    <div class="center_btn" v-if="steps == 1">
       <el-button
         type="primary"
         style="background: rgb(112, 135, 228)"
@@ -50,11 +50,11 @@ export default {
   },
   data() {
     return {
-      steps: 1,
+      steps: this.$route.query.steps ? this.$route.query.steps : 1,
       userid: this.$store.state.userInfo.userid,
       oid: this.$store.state.userInfo.school,
       bannerList: [
-        "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/bg1667830734044.png",
+        "https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_202212121018311670811529640.png",
       ],
     };
   },
@@ -73,7 +73,7 @@ export default {
 
 <style scoped>
 .center_head {
-  height: 240px;
+  height: 160px;
   width: 100%;
 }
 

+ 99 - 48
src/components/pages/race/eventCenter/anliDetail.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="center_content">
+  <div class="center_content" ref="cenBox" @scroll.passive="allScrollTop($event)">
     <div class="detaBox">
       <div class="anliMiddle">
         <div class="anliBox">
@@ -30,18 +30,30 @@
                 }}
               </div>
             </div>
-            <div class="people">
-              <div class="man">
-                <img src="../../../../assets/people.png" alt />
+            <div class="personAndAutor">
+              <div class="people">
+                <div class="man">
+                  <img src="../../../../assets/people.png" alt />
+                </div>
+                <div class="person">
+                  {{ anliBox[0] ? anliBox[0].info.tableData.length : 0 }}人
+                </div>
               </div>
-              <div class="person">
-                {{ anliBox[0] ? anliBox[0].info.tableData.length : 0 }}人
+              <div class="autorBox" v-if="anliBox[0].info.tableData.length">
+                <div>协作者:</div>
+                <div
+                  class="Autor"
+                  v-for="(a, aIndex) in anliBox[0].info.tableData"
+                  :key="aIndex"
+                >
+                  {{ a.sn }}
+                </div>
               </div>
             </div>
           </div>
         </div>
       </div>
-      <div class="navBox">
+      <div class="navBox" :class="{ 'isNavBox' : isNavTop >= 300 } ">
         <div class="navTop" @click="jump('first')">
           <div class="navImg" style="width: 27px">
             <img src="../../../../assets/icon/anliDetail/proOver.png" alt="" />
@@ -83,7 +95,7 @@
         </div>
       </div>
 
-      <div class="messageBox" v-if="anliBox[0]">
+      <div class="messageBox" v-if="anliBox[0]" :class="{ 'isMessageBox' : isNavTop >= 300 } ">
         <div
           class="proOverCss"
           id="first"
@@ -179,12 +191,12 @@
                       <div @click="lookFile(f.url, f.type)">
                         {{ f.name }}
                       </div>
-                      <div class="downFile" @click="downloadFile(f.url)">
+                      <!-- <div class="downFile" @click="downloadFile(f.url)">
                         <img
                           src="../../../../assets/icon/anliDetail/down.png"
                           alt=""
                         />
-                      </div>
+                      </div> -->
                     </div>
                   </div>
                 </div>
@@ -298,12 +310,12 @@
                         <div @click="lookFile(f.url, f.type)">
                           {{ f.name }}
                         </div>
-                        <div class="downFile" @click="downloadFile(f.url)">
+                        <!-- <div class="downFile" @click="downloadFile(f.url)">
                           <img
                             src="../../../../assets/icon/anliDetail/down.png"
                             alt=""
                           />
-                        </div>
+                        </div> -->
                       </div>
                     </div>
                   </div>
@@ -415,12 +427,12 @@
                         <div @click="lookFile(f.url, f.type)">
                           {{ f.name }}
                         </div>
-                        <div class="downFile" @click="downloadFile(f.url)">
+                        <!-- <div class="downFile" @click="downloadFile(f.url)">
                           <img
                             src="../../../../assets/icon/anliDetail/down.png"
                             alt=""
                           />
-                        </div>
+                        </div> -->
                       </div>
                     </div>
                   </div>
@@ -532,12 +544,12 @@
                         <div @click="lookFile(f.url, f.type)">
                           {{ f.name }}
                         </div>
-                        <div class="downFile" @click="downloadFile(f.url)">
+                        <!-- <div class="downFile" @click="downloadFile(f.url)">
                           <img
                             src="../../../../assets/icon/anliDetail/down.png"
                             alt=""
                           />
-                        </div>
+                        </div> -->
                       </div>
                     </div>
                   </div>
@@ -695,12 +707,12 @@
                             <div @click="lookFile(f.url, f.type)">
                               {{ f.name }}
                             </div>
-                            <div class="downFile" @click="downloadFile(f.url)">
+                            <!-- <div class="downFile" @click="downloadFile(f.url)">
                               <img
                                 src="../../../../assets/icon/anliDetail/down.png"
                                 alt=""
                               />
-                            </div>
+                            </div> -->
                           </div>
                         </div>
                       </div>
@@ -806,12 +818,12 @@
                             <div @click="lookFile(f.url, f.type)">
                               {{ f.name }}
                             </div>
-                            <div class="downFile" @click="downloadFile(f.url)">
+                            <!-- <div class="downFile" @click="downloadFile(f.url)">
                               <img
                                 src="../../../../assets/icon/anliDetail/down.png"
                                 alt=""
                               />
-                            </div>
+                            </div> -->
                           </div>
                         </div>
                       </div>
@@ -918,12 +930,12 @@
                             <div @click="lookFile(f.url, f.type)">
                               {{ f.name }}
                             </div>
-                            <div class="downFile" @click="downloadFile(f.url)">
+                            <!-- <div class="downFile" @click="downloadFile(f.url)">
                               <img
                                 src="../../../../assets/icon/anliDetail/down.png"
                                 alt=""
                               />
-                            </div>
+                            </div> -->
                           </div>
                         </div>
                       </div>
@@ -1029,12 +1041,12 @@
                             <div @click="lookFile(f.url, f.type)">
                               {{ f.name }}
                             </div>
-                            <div class="downFile" @click="downloadFile(f.url)">
+                            <!-- <div class="downFile" @click="downloadFile(f.url)">
                               <img
                                 src="../../../../assets/icon/anliDetail/down.png"
                                 alt=""
                               />
-                            </div>
+                            </div> -->
                           </div>
                         </div>
                       </div>
@@ -1137,12 +1149,12 @@
                           <div @click="lookFile(f.url, f.type)">
                             {{ f.name }}
                           </div>
-                          <div class="downFile" @click="downloadFile(f.url)">
+                          <!-- <div class="downFile" @click="downloadFile(f.url)">
                             <img
                               src="../../../../assets/icon/anliDetail/down.png"
                               alt=""
                             />
-                          </div>
+                          </div> -->
                         </div>
                       </div>
                     </div>
@@ -1259,12 +1271,12 @@
                         <div @click="lookFile(f.url, f.type)">
                           {{ f.name }}
                         </div>
-                        <div class="downFile" @click="downloadFile(f.url)">
+                        <!-- <div class="downFile" @click="downloadFile(f.url)">
                           <img
                             src="../../../../assets/icon/anliDetail/down.png"
                             alt=""
                           />
-                        </div>
+                        </div> -->
                       </div>
                     </div>
                   </div>
@@ -1382,12 +1394,12 @@
                         <div @click="lookFile(f.url, f.type)">
                           {{ f.name }}
                         </div>
-                        <div class="downFile" @click="downloadFile(f.url)">
+                        <!-- <div class="downFile" @click="downloadFile(f.url)">
                           <img
                             src="../../../../assets/icon/anliDetail/down.png"
                             alt=""
                           />
-                        </div>
+                        </div> -->
                       </div>
                     </div>
                   </div>
@@ -1403,12 +1415,12 @@
           </div>
         </div>
       </div>
-      <div class="fixBottom">
-        <!-- <div class="returnAnLi" style="width: 100px" @click="goToX()">
+      <!-- <div class="fixBottom">
+        <div class="returnAnLi" style="width: 100px" @click="goToX()">
           前往评分
-        </div> -->
+        </div>
         <div class="returnAnLi" @click="returnWhere">返回</div>
-      </div>
+      </div> -->
     </div>
     <el-dialog
       title="查看详情"
@@ -1488,7 +1500,11 @@
 </template>
 
 <script>
+import pdf from "../../components/vpdf";
 export default {
+  components: {
+    pdf,
+  },
   data() {
     return {
       dialogVisibleBrief: false,
@@ -1501,7 +1517,6 @@ export default {
       userid: this.$store.state.userInfo.userid,
       oid: this.$store.state.userInfo.school,
       aid: this.$route.query.aid,
-      type: this.$route.query.type,
       anliBox: [],
       imgAnliBox: [],
       noBanner: require("../../../../assets/noBanner.jpg"),
@@ -1532,6 +1547,7 @@ export default {
         },
       },
       playerO: {},
+      isNavTop:0,
     };
   },
   methods: {
@@ -1551,13 +1567,13 @@ export default {
     fullTools() {
       this.full = !this.full;
     },
-    returnWhere() {
-      if (this.type == 0) {
-        this.goTo("/eventCenter");
-      } else {
-        this.goTo("/anliList");
-      }
-    },
+    // returnWhere() {
+    //   if (this.type == 0) {
+    //     this.goTo("/eventCenter?steps=" + "2");
+    //   } else {
+    //     this.goTo("/anliList");
+    //   }
+    // },
     selectAnLi() {
       let params = {
         id: this.aid,
@@ -1703,6 +1719,7 @@ export default {
     onPlayerPlay() {},
     lookFile(u, t) {
       //1文档2视频3图片
+      debugger;
       if (t == 1) {
         this.pptImgUrl = "";
         var a = ["PPT", "PPTX", "XLSX", "XLS", "DOC", "DOCX"];
@@ -1769,7 +1786,12 @@ export default {
     },
     jump(t) {
       var a = document.getElementById(t);
-      document.documentElement.scrollTop = a.offsetTop;
+      var b = this.$refs["cenBox"];
+      b.scrollTop = a.offsetTop;
+    },
+    allScrollTop(ev){
+      console.log(ev.target.scrollTop)
+      this.isNavTop = ev.target.scrollTop;
     },
   },
   created() {
@@ -1781,7 +1803,7 @@ export default {
 <style scoped>
 @media screen and (max-width: 1280px) {
   .file > div > div:nth-child(2) > div:nth-child(1) {
-    width: 90px !important;
+    width: 160px !important;
   }
   .leftImg {
     height: 230px !important;
@@ -1789,11 +1811,17 @@ export default {
   .navTop {
     margin: 0 5px !important;
   }
-  .navTop > div:nth-child(2) {
+  /* .navTop > div:nth-child(2) {
     width: 60px !important;
     white-space: nowrap;
     overflow: hidden;
     text-overflow: ellipsis;
+  } */
+  .navBox {
+    width: 95% !important;
+  }
+  .messageBox {
+    width: 95% !important;
   }
 }
 html,
@@ -1828,6 +1856,7 @@ body {
   width: 100%;
   height: 100%;
   background: #e1f1ff;
+  overflow: auto;
 }
 .detaBox {
   padding: 10px 0 0 0;
@@ -1900,11 +1929,20 @@ body {
   align-items: center;
   justify-content: center;
   background: #fff;
-  width: 70%;
+  width: 80%;
   margin: 0 auto;
   height: 70px;
   border-radius: 10px;
 }
+.isNavBox{
+  position: fixed;
+  left: 50%;
+  transform: translateX(-50%);
+  top: 7%;
+}
+.isMessageBox{
+  margin: 11% auto !important;
+}
 .navBox > div:nth-child(5) > div:nth-child(2) {
   width: 150px;
 }
@@ -1934,7 +1972,7 @@ body {
   height: 100%;
 }
 .messageBox {
-  width: 70%;
+  width: 80%;
   margin: 0 auto;
 }
 .whiteBg {
@@ -2072,7 +2110,7 @@ body {
   position: relative;
 }
 .file > div > div:nth-child(2) > div:nth-child(1) {
-  width: 100%;
+  width: 360px;
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
@@ -2300,4 +2338,17 @@ body {
   padding-right: 20px;
   color: #7e7e7e;
 }
+.personAndAutor {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: flex-end;
+}
+.autorBox {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: center;
+  margin-left: 10px;
+}
 </style>

+ 53 - 13
src/components/pages/race/eventCenter/eventMessage.vue

@@ -26,11 +26,32 @@
     </div>
     <div class="center_body" ref="box" @scroll.passive="allScrollTop($event)">
       <div class="center_box" ref="box1">
+        <div class="center_detail" style="margin-bottom: 20px">
+          <div style="text-align: center; font-weight: bold; font-size: 18px">
+            <span> 关于征集广东省中小学项目式学习案例的函 </span>
+          </div>
+          <div style="text-indent: 32px">
+            <span
+              >各地级以上市教育局教研室(教科院、教研中心),华南师大附属中学、广东实验中学、华南师大附属小学:</span
+            >
+          </div>
+          <div style="text-indent: 32px">
+            <span
+              >为贯彻落实《中共中央
+              国务院关于深化教育改革全面提高义务教育质量的意见》,推进义务教育课程方案和课程标准(2022年版)落地实施,进一步深化教学改革,探索大单元、主题化、项目式学习等综合性教学方式,将立德树人根本任务落实到具体教育教学活动中,总结我省项目式学习活动成果,宣传推广项目式学习典型经验,决定组织中小学项目式学习案例征集活动。有关事项如下。</span
+            >
+          </div>
+        </div>
         <div class="center_title">
           <img src="../../../../assets/icon/race/infoBook.png" alt="" />
           <span>案例类别</span>
         </div>
         <div class="center_detail">
+          <div>
+            <span
+              >此次案例征集活动面向聚焦学生的学习、生活和社会的真实问题,以真实问题引发学生学习实践与问题解决的案例。申报项目包括五类,说明如下。</span
+            >
+          </div>
           <div>
             <span> (一)“文化传承”类项目式学习案例 </span>
           </div>
@@ -117,7 +138,15 @@
           <div style="text-indent: 32px">
             <span
               >项目式学习活动案例报送内容主要反映学校或教师组织学生开展且已经完成的项目式学习的设计思路、活动过程与典型成果。报送材料由两部分组成。
+            </span>
+          </div>
+          <div style="text-indent: 32px">
+            <span>
               1.项目式学习方案设计。包括项目信息、项目简介、驱动问题与子问题、学习目标(核心概念界定)、预期学习成果、项目评价、项目活动设计等(见附件1)。
+            </span>
+          </div>
+          <div style="text-indent: 32px">
+            <span>
               2.项目式学习活动案例。对项目活动实施过程的完整描述,含不同阶段的实施过程、活动工具与支架开发、活动成果交流与展示、活动评价与反思等;以及支持以附件形式上传学生项目式学习的过程记录与成果作品(见附件2)。
             </span>
           </div>
@@ -127,6 +156,10 @@
           <div style="text-indent: 32px">
             <span
               >1.报送名额。以各地级以上市为单位统一报送。广州、深圳报送案例总数各不超过80项,其他地市选送案例总数各不超过60项,每校每类别案例限报一项。华南师大附属中学、广东实验中学、华南师大附属小学每校限报4项。每项的作者不超过6人。
+            </span>
+          </div>
+          <div style="text-indent: 32px">
+            <span>
               2.报送方式。填报者登陆广东省项目式学习案例征集活动中心(见附件5),根据平台的内容与提示进行填报。
             </span>
           </div>
@@ -142,10 +175,12 @@
             <span> (一)提交阶段 </span>
           </div>
           <div style="text-indent: 32px">
-            <span
-              >(1)通过参与地市组织的活动提交案例;
+            <span>(1)通过参与地市组织的活动提交案例; </span>
+          </div>
+          <div style="text-indent: 32px">
+            <span>
               (2)地市没有组织的,可自行通过在线方式提交。自通告发布之日起,可联系xxxx获取账号。
-              提交阶段截止2022年3月15日。
+              提交阶段截止xxxx年xx月xx日。
             </span>
           </div>
           <div>
@@ -192,7 +227,7 @@
               <div
                 @click="
                   downloadFile(
-                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670570711020.docx'
+                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670570711020.docx','地级以上市案例报送工作联系人回执'
                   )
                 "
               >
@@ -201,7 +236,7 @@
               <div
                 @click="
                   downloadFile(
-                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572187326.docx'
+                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572187326.docx','地级以上市项目式学习案例推荐名单一览表'
                   )
                 "
               >
@@ -210,7 +245,7 @@
               <div
                 @click="
                   downloadFile(
-                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572460682.docx'
+                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572460682.docx','项目式学习活动方案参考模板'
                   )
                 "
               >
@@ -219,7 +254,7 @@
               <div
                 @click="
                   downloadFile(
-                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572614832.docx'
+                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572614832.docx','项目式学习活动案例参考模板'
                   )
                 "
               >
@@ -228,11 +263,11 @@
               <div
                 @click="
                   downloadFile(
-                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/%E9%99%84%E4%BB%B611670572658255.docx'
+                    'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/2022_%E5%85%B3%E4%BA%8E%E5%BE%81%E9%9B%86%E5%B9%BF%E4%B8%9C%E7%9C%81%E4%B8%AD%E5%B0%8F%E5%AD%A6%E9%A1%B9%E7%9B%AE%E5%BC%8F%E5%AD%A6%E4%B9%A0%E6%A1%88%E4%BE%8B%E7%9A%84%E5%87%BD202212011670826525002.docx','其他'
                   )
                 "
               >
-                5.广东省项目式学习案例征集平台操作手册(案例提交者)
+                5.其他
               </div>
             </div>
           </div>
@@ -270,7 +305,7 @@ export default {
       console.log("5-------5", this.$refs["box" + 5].offsetHeight);
       console.log(_top);
     },
-    downloadFile(url) {
+    downloadFile(url,n) {
       let _url = "";
       if (
         url.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
@@ -294,9 +329,10 @@ export default {
         // a.remove();
         let content = x.response;
         let elink = document.createElement("a");
-        elink.download = decodeURI(
-          _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
-        );
+        // elink.download = decodeURI(
+        //   _url.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
+        // );
+        elink.download = n + ".docx";
         elink.style.display = "none";
         let blob = new Blob([content]);
         elink.href = URL.createObjectURL(blob);
@@ -433,4 +469,8 @@ export default {
 .down > div {
   cursor: pointer;
 }
+.down > div:hover {
+  color: blue;
+  text-decoration: underline;
+}
 </style>

+ 39 - 8
src/components/pages/race/eventCenter/myAnli.vue

@@ -28,12 +28,27 @@
               <div>
                 {{ JSON.parse(an.info).courseText }}
               </div>
-              <div class="people">
-                <div class="man">
-                  <img src="../../../../assets/people.png" alt />
+              <div class="personAndAutor">
+                <div class="people">
+                  <div class="man">
+                    <img src="../../../../assets/people.png" alt />
+                  </div>
+                  <div class="person">
+                    {{ an.info ? JSON.parse(an.info).tableData.length : 0 }}人
+                  </div>
                 </div>
-                <div class="person">
-                  {{ an.info ? JSON.parse(an.info).tableData.length : 0 }}人
+                <div
+                  class="autorBox"
+                  v-if="JSON.parse(an.info).tableData.length"
+                >
+                  <div>协作者:</div>
+                  <div
+                    class="Autor"
+                    v-for="(a, aIndex) in JSON.parse(an.info).tableData"
+                    :key="aIndex"
+                  >
+                    {{ a.sn }}
+                  </div>
                 </div>
               </div>
             </div>
@@ -47,16 +62,16 @@
           <div class="bottomRight">
             <div class="rightButton" @click="updateState(an.id)">提交</div>
             <div class="rightButton" @click="exportAnli(an)">导出</div>
-            <div class="rightButton" @click="goTo('/anliDetail?aid=' + an.id)">
+            <!-- <div class="rightButton" @click="goTo('/anliDetail?aid=' + an.id)">
               开始教学
-            </div>
+            </div> -->
             <div class="rightButton" @click="goTo('/addRace?aid=' + an.id)">
               编辑
             </div>
             <div
               class="rightButton"
               style="background: #225ac7"
-              @click="goTo('/anliDetail?aid=' + an.id + '&type=0')"
+              @click="lookDetail(an.id)"
             >
               查看详情
             </div>
@@ -285,6 +300,9 @@ export default {
       link.click();
       document.body.removeChild(link);
     },
+    lookDetail(aid) {
+      window.open(window.origin + "/#/anliDetail?aid=" + aid);
+    },
   },
   created() {
     this.selectAnLi();
@@ -430,4 +448,17 @@ export default {
   width: 100%;
   height: 100%;
 }
+.personAndAutor {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: flex-end;
+}
+.autorBox {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: center;
+  margin-left: 10px;
+}
 </style>

Some files were not shown because too many files changed in this diff