浏览代码

Merge branch 'master' of https://git.cocorobo.cn/CocoRoboLabs/pbl-teacher-table

zengyicheng 2 年之前
父节点
当前提交
0a2c0dd575

+ 1 - 1
dist/index.html

@@ -25,4 +25,4 @@
       height: 100%;
       width: 100%;
       background: #e6eaf0;
-    }</style><link href=./static/css/app.ac1a865a0c4d6c1a4ad3f7c4ac6976da.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.e8eb4c1cc481dbb543fc.js></script><script type=text/javascript src=./static/js/app.6fea68eeda074a2133ae.js></script></body></html><script>document.domain = document.domain.split(".").slice(-2).join(".");</script>
+    }</style><link href=./static/css/app.655cf8479befa1886df182305f427536.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.e8eb4c1cc481dbb543fc.js></script><script type=text/javascript src=./static/js/app.e3f7dc3ebb21b8541072.js></script></body></html><script>document.domain = document.domain.split(".").slice(-2).join(".");</script>

文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.655cf8479befa1886df182305f427536.css


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.655cf8479befa1886df182305f427536.css.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/css/app.ac1a865a0c4d6c1a4ad3f7c4ac6976da.css.map


二进制
dist/static/img/noBanner.8b0b738.jpg


二进制
dist/static/img/ttitle.430109e.png


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.6fea68eeda074a2133ae.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.e3f7dc3ebb21b8541072.js


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/app.e3f7dc3ebb21b8541072.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/manifest.85f48b0184f614b2b8d9.js.map


文件差异内容过多而无法显示
+ 0 - 0
dist/static/js/vendor.e8eb4c1cc481dbb543fc.js.map


二进制
src/assets/icon/race/infoBook.png


二进制
src/assets/icon/race/progress.png


二进制
src/assets/icon/race/progress2.png


二进制
src/assets/icon/race/right.png


二进制
src/assets/icon/race/ttitle.png


+ 109 - 7
src/components/pages/addCourse.vue

@@ -902,6 +902,34 @@
                         添加链接
                       </button>
                     </div>
+                    <div
+                      v-if="
+                        unitJson[unitIndex].chapterInfo[0].taskJson[
+                          itemTaskIndex
+                        ].proVisible
+                      "
+                      class="mask"
+                    >
+                      <div class="progressBox">
+                        <div class="lbox">
+                          <img src="../../assets/loading.gif" />上传中,请稍后
+                        </div>
+                        <el-progress
+                          :text-inside="true"
+                          :stroke-width="20"
+                          :percentage="
+                            unitJson[unitIndex].chapterInfo[0].taskJson[
+                              itemTaskIndex
+                            ].progress
+                              ? unitJson[unitIndex].chapterInfo[0].taskJson[
+                                  itemTaskIndex
+                                ].progress
+                              : 0
+                          "
+                          style="width: 80%"
+                        ></el-progress>
+                      </div>
+                    </div>
                   </div>
                   <div
                     style="
@@ -3941,7 +3969,7 @@ export default {
       this.$message.error("项目封面仅支持上传一张,请删除后再进行上传");
     },
     beforeUpload2(event, unitIndex, type, itemTaskIndex) {
-      const loading = this.openLoading();
+      // const loading = this.openLoading();
       var file = event.target.files[0];
       this.inputShow = false;
       var credentials = {
@@ -3981,7 +4009,7 @@ export default {
             this.$message.error("上传文件大于10兆,请重新选择文件!");
             var a = _this.$refs.upload1.uploadFiles;
             a.splice(a.length - 1, a.length);
-            loading.close();
+            // loading.close();
             return;
           }
         } else if (
@@ -3993,12 +4021,18 @@ export default {
             this.$message.error("添加成上传文件大于5兆,请重新选择文件!");
             var a = _this.$refs.upload1.uploadFiles;
             a.splice(a.length - 1, a.length);
-            loading.close();
+            // loading.close();
             return;
           }
         }
       }
 
+      _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+        itemTaskIndex
+      ].progress = 0;
+      _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+        itemTaskIndex
+      ].proVisible = true;
       if (file) {
         var params = {
           Key:
@@ -4021,9 +4055,20 @@ export default {
           .on("httpUploadProgress", function (evt) {
             //这里可以写进度条
             // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
+            _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+              itemTaskIndex
+            ].progress = parseInt((evt.loaded * 80) / evt.total);
           })
           .send(function (err, data) {
-            loading.close();
+            // loading.close();
+            _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+              itemTaskIndex
+            ].progress = 100;
+            setTimeout(() => {
+              _this.unitJson[unitIndex].chapterInfo[0].taskJson[
+                itemTaskIndex
+              ].proVisible = false;
+            }, 1000);
             _this.inputShow = true;
             if (err) {
               var a = _this.$refs.upload1.uploadFiles;
@@ -4330,7 +4375,7 @@ export default {
       let params = [
         {
           uid: this.userid,
-          title: this.courseName,
+          title: this.courseName.replace(/%/g, "%25"),
           brief: this.courseText.replace(/%/g, "%25"),
           cover:
             this.cover.length > 0
@@ -4488,7 +4533,7 @@ export default {
       let params = [
         {
           cid: this.cid,
-          title: this.courseName,
+          title: this.courseName.replace(/%/g, "%25"),
           brief: this.courseText.replace(/%/g, "%25"),
           cover:
             this.cover.length > 0
@@ -5257,7 +5302,10 @@ export default {
               this.$message.error("填写了的题目,选项至少要有两项!");
               return;
             }
-            if ((aj[i].type == '2' && !aj[i].answer.length) || (aj[i].type == '1' &&  aj[i].answer !== 0 && !aj[i].answer)) {
+            if (
+              (aj[i].type == "2" && !aj[i].answer.length) ||
+              (aj[i].type == "1" && aj[i].answer !== 0 && !aj[i].answer)
+            ) {
               this.$message.error("有题目未选择答案请选择答案");
               return;
             }
@@ -8033,4 +8081,58 @@ ol {
   font-size: 18px;
   color: #8e8e8e;
 }
+
+.mask {
+  background-color: rgb(0 0 0 / 30%);
+  /* position: fixed; */
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  z-index: 20000;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.progressBox {
+  width: 300px;
+  height: 150px;
+  background: #fff;
+  border-radius: 10px;
+  box-shadow: 0 0 6px 1px #bfbfbf;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+}
+
+.progressBox .lbox {
+  height: 100px;
+  font-size: 16px;
+  display: flex;
+  align-items: center;
+}
+
+.progressBox .lbox img {
+  width: 40px;
+  margin-right: 20px;
+}
+
+.progressBox >>> .el-progress-bar__outer {
+  background-color: #d1dfff !important;
+}
+
+.progressBox .lbox {
+  height: 100px;
+  font-size: 19px;
+  display: flex;
+  align-items: center;
+}
+
+.progressBox .lbox img {
+  width: 40px;
+  margin-right: 20px;
+}
 </style>

+ 233 - 2
src/components/pages/race/eventCenter/eventMessage.vue

@@ -1,9 +1,159 @@
 <template>
-  <div class="center_content">赛事信息</div>
+  <div class="center_content">
+    <div class="center_nav">
+      <div>
+        <img
+          :style="{ top: top }"
+          src="../../../../assets/icon/race/progress2.png"
+          alt=""
+        />
+        <span @click="checkType(1)" :class="{ active: atype == 1 }"
+          >活动目标</span
+        >
+        <span @click="checkType(2)" :class="{ active: atype == 2 }"
+          >征集与报送要求</span
+        >
+        <span @click="checkType(3)" :class="{ active: atype == 3 }"
+          >报送材料清单及要求</span
+        >
+        <span @click="checkType(4)" :class="{ active: atype == 4 }"
+          >组织作品推荐参考指标</span
+        >
+        <span @click="checkType(5)" :class="{ active: atype == 5 }"
+          >联系我们</span
+        >
+      </div>
+    </div>
+    <div class="center_body" ref="box" @scroll.passive="allScrollTop($event)">
+      <div class="center_box" ref="box1">
+        <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>
+          <div>
+            <span
+              >(三)搭建教师专业成长与交流活动平台,汇聚中小学信息化教学创新应用的典型优秀案例和经验成果,扩大教学成果的辐射影响,促进学校均衡可持续发展,推动基础教育高质量发展。</span
+            >
+          </div>
+        </div>
+      </div>
+      <div class="center_box" ref="box2">
+        <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
+              >各地市面向学校征集作品时间为2022年6月至8月中句,其间5月中下旬将开放平台支持地级市教育局为单位征集作品;9月10日前各地市向省完成优秀作品的推送。
+            </span>
+          </div>
+          <div>
+            <span>(二)征集要求 </span>
+          </div>
+          <div>
+            <span
+              >每位教师一个子项目限报1个作品,参加子项目不超过2个。各组织单位须严格按照项目要求、数量(见表1)报送作品,并对报送信息和作品的准确性、完整性负责,逾期提交的作品不纳入评审范围。</span
+            >
+          </div>
+        </div>
+      </div>
+      <div class="center_box" ref="box3">
+        <div class="center_title">
+          <img src="../../../../assets/icon/race/infoBook.png" alt="" />
+          <span>报送材料清单及要求</span>
+        </div>
+        <div class="center_detail"></div>
+      </div>
+      <div class="center_box" ref="box4">
+        <div class="center_title">
+          <img src="../../../../assets/icon/race/infoBook.png" alt="" />
+          <span>组织作品推荐参考指标</span>
+        </div>
+        <div class="center_detail"></div>
+      </div>
+      <div class="center_box" ref="box5">
+        <div class="center_title">
+          <img src="../../../../assets/icon/race/infoBook.png" alt="" />
+          <span>联系我们</span>
+        </div>
+        <div class="center_detail"></div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-export default {};
+export default {
+  data() {
+    return {
+      atype: 1,
+    };
+  },
+  computed: {
+    top() {
+      return 12 + (this.atype - 1) * 28 + "px";
+    },
+  },
+  methods: {
+    checkType(type) {
+      this.atype = type;
+      let _top = 0;
+
+      for (var i = 1; i < type; i++) {
+        _top += this.$refs["box" + i].offsetHeight;
+      }
+      this.$refs.box.scrollTop = type === 1 ? 0 : _top;
+      console.log("1-------1", this.$refs["box" + 1].offsetHeight);
+      console.log("2-------2", this.$refs["box" + 2].offsetHeight);
+      console.log("3-------3", this.$refs["box" + 3].offsetHeight);
+      console.log("4-------4", this.$refs["box" + 4].offsetHeight);
+      console.log("5-------5", this.$refs["box" + 5].offsetHeight);
+      console.log(_top);
+    },
+    allScrollTop(ev) {
+      console.log(ev.target.scrollTop);
+      const scrollTop = this.$refs["box"].scrollTop;
+      const clientHeight = this.$refs["box"].clientHeight;
+      const scrollHeight = this.$refs["box"].scrollHeight;
+
+      for (var i = 5; i > 0; i--) {
+        let _top = 0;
+
+        for (var k = 1; k < i; k++) {
+          _top += this.$refs["box" + k].offsetHeight;
+        }
+        if (
+          i > 1 &&
+          (Math.round(ev.target.scrollTop) >= _top ||
+          Math.round(ev.target.scrollTop) + clientHeight >= scrollHeight)
+        ) {
+          this.atype = i;
+          break;
+        } else if (
+          i == 1 &&
+          Math.round(ev.target.scrollTop) < this.$refs["box" + i].offsetHeight
+        ) {
+          this.atype = 1;
+        }
+      }
+    },
+  },
+};
 </script>
 
 <style scoped>
@@ -11,4 +161,85 @@ export default {};
   width: 100%;
   height: 100%;
 }
+
+.center_body {
+  width: 70%;
+  margin: 0 auto 20px;
+  height: 100%;
+  overflow: auto;
+  max-width: calc(100% - (200px * 2));
+}
+.center_box {
+  margin-top: 25px;
+}
+.center_title {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.center_title img {
+  margin-right: 5px;
+}
+.center_title span {
+  font-size: 19px;
+  position: relative;
+  height: 38px;
+}
+.center_title span::before {
+  content: "";
+  background-image: url("../../../../assets/icon/race/ttitle.png");
+  position: absolute;
+  width: 75px;
+  height: 13px;
+  background-size: 100% 100%;
+  bottom: 0px;
+  right: -2px;
+}
+.center_detail {
+  display: flex;
+  background: #fff;
+  border-radius: 5px;
+  padding: 20px;
+  box-sizing: border-box;
+  flex-direction: column;
+  margin-top: 20px;
+  color: rgb(28, 28, 28);
+  min-height: 200px;
+}
+.center_detail div {
+  line-height: 1.5;
+}
+.center_detail div + div {
+  margin-top: 15px;
+}
+
+.center_nav {
+  position: absolute;
+  left: 20px;
+}
+
+.center_nav div {
+  display: flex;
+  flex-direction: column;
+  border-left: 1px solid #c5c5c5;
+  padding: 10px 0px 10px 20px;
+}
+.center_nav div img {
+  width: 15px;
+  position: absolute;
+  left: -6px;
+  transition: all 0.5s;
+}
+.center_nav div span {
+  font-size: 14px;
+  cursor: pointer;
+  color: rgb(28, 28, 28);
+}
+
+.center_nav div .active {
+  color: #e7b95a;
+}
+.center_nav div span + span {
+  margin-top: 10px;
+}
 </style>

+ 211 - 1
src/components/pages/race/eventCenter/projectJd.vue

@@ -1,5 +1,93 @@
 <template>
-  <div class="center_content">项目进度</div>
+  <div class="center_content">
+    <div class="jd_body">
+      <div class="jd_title">项目信息</div>
+      <div class="jd_content">
+        <div class="jd_table">
+          <div class="jd_th">
+            <div class="th"><span>时间</span></div>
+            <div class="th"><span>项目流程</span></div>
+            <div class="th"><span>项目详情</span></div>
+            <div class="th"><span>项目状态</span></div>
+          </div>
+          <div class="jd_tr">
+            <div class="td">
+              <div class="time">
+                <div class="active">
+                  <span>2023-04-15</span> <span>10:46</span>
+                </div>
+              </div>
+              <div class="time">
+                <div><span>2023-04-15</span> <span>10:46</span></div>
+              </div>
+              <div class="time">
+                <div><span>2023-04-15</span> <span>10:46</span></div>
+              </div>
+              <div class="time">
+                <div><span>2023-04-15</span> <span>10:46</span></div>
+              </div>
+            </div>
+            <div class="td">
+              <div class="progress">
+                <div>
+                  <img src="../../../../assets/icon/race/progress.png" alt="" />
+                  <span>项目填写</span>
+                </div>
+                <div>
+                  <img src="../../../../assets/icon/race/progress.png" alt="" />
+                  <span>项目提交</span>
+                </div>
+                <div>
+                  <img src="../../../../assets/icon/race/progress.png" alt="" />
+                  <span>项目评审</span>
+                </div>
+                <div>
+                  <img src="../../../../assets/icon/race/progress.png" alt="" />
+                  <span>比赛结果</span>
+                </div>
+              </div>
+            </div>
+            <div class="td">
+              <div class="detail">
+                <span
+                  >广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明</span
+                >
+              </div>
+              <div class="detail">
+                <span
+                  >广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明</span
+                >
+              </div>
+              <div class="detail">
+                <span
+                  >广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明</span
+                >
+              </div>
+              <div class="detail">
+                <span
+                  >广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明广东省案例征集说明</span
+                >
+              </div>
+            </div>
+            <div class="td">
+              <div class="state">
+                <span class="active">已完成</span>
+              </div>
+              <div class="state">
+                <span class="active">已完成</span>
+              </div>
+              <div class="state">
+                <span>进行中</span>
+              </div>
+              <div class="state">
+                <span>暂无</span>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
@@ -11,4 +99,126 @@ export default {};
   width: 100%;
   height: 100%;
 }
+
+.jd_body {
+  width: 70%;
+  margin: 0 auto 20px;
+  height: 100%;
+  overflow: auto;
+  min-width: 600px;
+}
+
+.jd_title {
+  width: 100%;
+  height: 200px;
+  padding: 20px;
+  box-sizing: border-box;
+  border-radius: 5px;
+  background: #fff;
+}
+
+.jd_content {
+  margin-top: 20px;
+  background: #fff;
+  border-radius: 5px;
+  overflow: hidden;
+}
+.jd_table {
+}
+.jd_th {
+  display: flex;
+  align-items: center;
+  background: rgb(24 143 209);
+  color: #fff;
+  height: 50px;
+}
+.jd_th .th,
+.jd_tr .td {
+  width: calc(100% / 4);
+  display: flex;
+  justify-content: center;
+}
+.jd_tr {
+  display: flex;
+}
+
+.jd_tr .td {
+  flex-direction: column;
+  align-items: center;
+}
+
+.jd_tr .td .time,
+.jd_tr .td .progress div,
+.jd_tr .td .detail,
+.jd_tr .td .state {
+  height: 170px;
+  /* overflow: auto; */
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  position: relative;
+}
+.jd_tr .td .time div {
+  display: flex;
+  flex-direction: column;
+  align-items: flex-end;
+  font-size: 18px;
+  color: rgb(117, 117, 117);
+}
+.jd_tr .td .time div span + span {
+  margin-top: 5px;
+}
+.jd_tr .td .time .active {
+  background: rgb(50, 173, 241);
+  color: #fff;
+  padding: 10px 20px;
+  border-radius: 50px;
+}
+.jd_tr .td .progress {
+}
+.jd_tr .td .progress div {
+}
+.jd_tr .td .progress img {
+  position: absolute;
+  left: -15px;
+  z-index: 99;
+}
+.jd_tr .td .progress span {
+  padding: 0 0 0 25px;
+}
+.jd_tr .td .progress div + div::after {
+  content: "";
+  height: 100%;
+  background: #eee;
+  width: 4px;
+  position: absolute;
+  left: 0;
+  transform: translateY(-50%);
+}
+.jd_tr .td .detail {
+  overflow: auto;
+  padding: 10px;
+  margin: 10px 0;
+  height: 150px;
+  box-sizing: border-box;
+}
+.jd_tr .td .state {
+  color: rgb(205, 205, 205);
+}
+
+.jd_tr .td .state  .active{
+  color: rgb(106, 106, 106);
+}
+
+.jd_tr .td .state  .active::after{
+  content: '';
+  background-image: url(../../../../assets/icon/race/right.png);
+  width: 25px;
+  height: 25px;
+  position: absolute;
+  background-size: 100% 100%;
+  right: -30px;
+  top: 50%;
+  transform: translateY(-50%);
+}
 </style>

部分文件因为文件数量过多而无法显示