lsc 1 year ago
parent
commit
4e2f270710
2 changed files with 1092 additions and 2 deletions
  1. 176 0
      js/Common/jietu2E.js
  2. 916 2
      js/Desktop/DeskTop.js

+ 176 - 0
js/Common/jietu2E.js

@@ -0,0 +1,176 @@
+//  let _loading = document.createElement('div')
+//  _loading.style = "width:100%;height:100%;background:#0000008f;position:fixed;top:0;left:0;z-index:99999999999999;display: flex;justify-content: center;align-items: center;"
+//  let _lchild = document.createElement('div')
+//  let _limg = document.createElement('img')
+//  _limg.src = 'https://pbl.cocorobo.cn/pbl-student-table/dist/js/loading.gif'
+//  _limg.style = "width: 26px;margin-right: 10px;"
+//  _lchild.appendChild(_limg)
+//  let _lspan = document.createElement('span')
+//  _lspan.innerHTML = "上传中..."
+//  _lchild.appendChild(_lspan)
+//  _lchild.style = "color: #fff;padding: 15px;background: #00000070;border-radius: 5px;font-size: 18px;display:flex;align-items:center;"
+//  _loading.appendChild(_lchild)
+//  document.body.appendChild(_loading)
+let $jq = '';
+$jq = $
+var $180 = $.noConflict();
+function jietu_shishi(uid, cid, stage, task, tool) {
+  html2canvas($jq("body")[0]).then(function (canvas) {
+    //获取截取图片路径
+
+    var base64Url = canvas.toDataURL('image/png');
+    //后台操作处理
+
+    var base64 = "<img src=" + base64Url + " />"
+    var file = dataURLtoFile_shishi(base64Url, "截图")
+    beforeUpload_shishi(file, uid, cid, stage, task, tool)
+    // $jq("body")[0].innerHTML = base64
+  });
+}
+
+function dataURLtoFile_shishi(dataurl, filename) {
+  let arr = dataurl.split(","),
+    mime = arr[0].match(/:(.*?);/)[1],
+    bstr = atob(arr[1]),
+    n = bstr.length,
+    u8arr = new Uint8Array(n);
+  while (n--) {
+    u8arr[n] = bstr.charCodeAt(n);
+  }
+  return new File([u8arr], filename, {
+    type: mime
+  });
+}
+
+
+function beforeUpload_shishi(nfile, uid, cid, stage, task, tool, loading, atool, text) {
+  // loading.style.display = 'flex'
+  // top.document.getElementById(loading);
+  //  document.body.appendChild(_loading)
+  var file = nfile;
+  var credentials = {
+    accessKeyId: "AKIATLPEDU37QV5CHLMH",
+    secretAccessKey: "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",
+  }; //秘钥形式的登录上传
+  window.AWS.config.update(credentials);
+  window.AWS.config.region = "cn-northwest-1"; //设置区域
+
+  var bucket = new window.AWS.S3({
+    params: {
+      Bucket: "ccrb"
+    }
+  }); //选择桶
+
+  if (file) {
+    var params = {
+      Key: file.name.split(".")[0] + new Date().getTime() + "." + "png",
+      ContentType: file.type,
+      Body: file,
+      "Access-Control-Allow-Credentials": "*",
+      ACL: "public-read",
+    }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
+    var options = {
+      partSize: 2048 * 1024 * 1024,
+      queueSize: 2,
+      leavePartsOnError: true,
+    };
+    bucket.upload(params, options)
+      .on("httpUploadProgress", function (evt) {
+        //这里可以写进度条
+        // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
+      }).send(function (err, data) {
+        if (data) {
+          console.log(data.Location);
+          var a = {
+            name: file.name,
+            url: data.Location,
+            uid: file.uid,
+          }
+          addSWork_shishi(uid, cid, stage, task, tool, data.Location, loading, atool, text)
+        } else {
+          var _a = document.getElementsByTagName("img")
+          for (var i = 0; i < _a.length; i++) {
+            _a[i].removeAttribute("crossorigin")
+          }
+          top.document.getElementById(loading).children[0].style.display = "none"
+          let _div = document.createElement('div')
+          _div.style = "width:100%;height:100%;background:#0000008f;position:fixed;top:0;left:0;z-index:99999999999999;display: flex;justify-content: center;align-items: center;"
+          let _inner = document.createElement('div')
+          _inner.style = "color: #fff;padding: 15px;background: #00000070;border-radius: 5px;font-size: 18px;"
+          _inner.innerHTML = "上传失败,网络错误"
+          _div.appendChild(_inner)
+          document.body.appendChild(_div)
+          setTimeout(() => {
+            document.body.removeChild(_div)
+          }, 1000);
+        }
+
+      });
+  }
+}
+
+function addSWork_shishi(uid, cid, stage, task, tool, a, loading, atool, text) {
+  let params = {
+    uid: uid,
+    cid: cid,
+    stage: stage,
+    task: task,
+    tool: tool,
+    content: a,
+    type: 1,
+    atool: atool,
+    text: text
+    // upload: JSON.stringify(this.imgFileUp),
+  };
+  if (!$jq) {
+    $jq = $
+    var $180 = $.noConflict();
+  }
+  $jq.ajax({
+    type: 'POST',
+    url: 'https://pbl.cocorobo.cn/api/pbl/addCourseWorks4E',
+    data: params,
+    dataType: "json",
+    error: (XMLHttpRequest, textStatus, errorThrown) => {
+      var _a = document.getElementsByTagName("img")
+      for (var i = 0; i < _a.length; i++) {
+        _a[i].removeAttribute("crossorigin")
+      }
+      top.document.getElementById(loading).children[0].style.display = "none"
+      let _div = document.createElement('div')
+      _div.style = "width:100%;height:100%;background:#0000008f;position:fixed;top:0;left:0;z-index:99999999999999;display: flex;justify-content: center;align-items: center;"
+      let _inner = document.createElement('div')
+      _inner.style = "color: #fff;padding: 15px;background: #00000070;border-radius: 5px;font-size: 18px;"
+      _inner.innerHTML = "上传失败,网络错误"
+      _div.appendChild(_inner)
+      document.body.appendChild(_div)
+      setTimeout(() => {
+        document.body.removeChild(_div)
+      }, 1000);
+    },
+    success: (data) => {
+      setTimeout(() => {
+        var _a = document.getElementsByTagName("img")
+        for (var i = 0; i < _a.length; i++) {
+          _a[i].removeAttribute("crossorigin")
+        }
+        top.document.getElementById(loading).children[0].style.display = "none"
+        let _div = document.createElement('div')
+        _div.style = "width:100%;height:100%;background:#0000008f;position:fixed;top:0;left:0;z-index:99999999999999;display: flex;justify-content: center;align-items: center;"
+        let _inner = document.createElement('div')
+        _inner.style = "color: #fff;padding: 15px;background: #00000070;border-radius: 5px;font-size: 18px;"
+        _inner.innerHTML = "截图上传成功"
+        _div.appendChild(_inner)
+        document.body.appendChild(_div)
+        _div.onclick = () => {
+          document.body.removeChild(_div)
+        }
+        setTimeout(() => {
+          //  document.body.removeChild(_loading)
+          document.body.removeChild(_div)
+        }, 1000);
+        console.log("截图上传成功");
+      }, 3000)
+    }
+  })
+}

+ 916 - 2
js/Desktop/DeskTop.js

@@ -1622,6 +1622,10 @@ window.addEventListener('message', function (e) { // 监听 message 事件
         U.MD.D.I.openApplicationJieTeacher("mind", e.data.cid, e.data.stage, e.data.task, e.data.tool, e.data.student)
     } else if (e.data.tools && e.data.tools == "7teacher") {
         U.MD.D.I.openApplicationJieTeacher("mindNetwork", e.data.cid, e.data.stage, e.data.task, e.data.tool, e.data.student)
+    } else if (e.data.tools && e.data.tools == "1teacherE") {
+        U.MD.D.I.openApplicationJieTeacherE("whiteboard", e.data.cid, e.data.stage, e.data.task, e.data.tool, e.data.student)
+    } else if (e.data.tools && e.data.tools == "1E") {
+        U.MD.D.I.openApplicationJieE("whiteboard", e.data.cid, e.data.stage, e.data.task, e.data.tool)
     }
 
 });
@@ -3968,8 +3972,917 @@ U.MD.D.I.openApplicationJie = function (str, cid, stage, task, tool) {
     // }
 
 }
+U.MD.D.I.openApplicationJieE = function (str, cid, stage, task, tool) {
+    var _taskbar, //_taskbar 作为任务栏显示的元素,包含图标和名字
+        _formdiv, //创建任务栏时同时弹出的窗体元素。
+        _userinfo = US.userInfo, //登录用户信息
+        _userid = US.userInfo.userid //登录用户id
+    let _iframe;
+    let _cid = cid,
+        _stage = stage,
+        _task = task,
+        _tool = tool;
+    var _jie = $$("div", {
+        "style": {
+            "position": "absolute",
+            "bottom": "50px",
+            "right": "50px",
+            "zIndex": "9999",
+            "backgroundColor": "#2268bc",
+            "color": "#fff",
+            "padding": "12px 20px",
+            "cursor": "pointer",
+            "borderRadius": "4px",
+        },
+        "innerHTML": "提交作业"
+    })
+    let aTool = ''
+    let _loading = document.createElement('div')
+    _loading.style = "width:100%;height:100%;background:#00000000;position:absolute;top:0;left:0;z-index:99999999999999;display: none;justify-content: center;align-items: center;"
+    //  _loading.id = "";
+    let _lchild = document.createElement('div')
+    let _limg = document.createElement('img')
+    _limg.src = US.Config.bpbl + '/pbl-student-table/dist/js/loading.gif'
+    _limg.style = "width: 26px;margin-right: 10px;"
+    _lchild.appendChild(_limg)
+    let _lspan = document.createElement('span')
+    _lspan.innerHTML = "上传中..."
+    _lchild.appendChild(_lspan)
+    _lchild.style = "color: rgb(255, 255, 255);padding: 15px;background: rgba(0, 0, 0, 0.44);font-size: 18px;display: flex;align-items: center;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);"
+    _loading.appendChild(_lchild)
+    var _box = $$('div', {
+        "style": {
+            "position": "relative",
+            "width": "100%",
+            "height": "100%",
+        },
+    })
+    _box.appendChild(_loading)
+    _box.id = str + '_loadLi'
+    switch (str) {
+        case "whiteboard":
+            aTool = 1;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "https://iwb.cocorobo.cn/"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "电子白板",
+                _box, {
+                "id": "whiteboard" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/whiteBoard.png)"
+                },
+                "name": "电子白板",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "mind":
+            aTool = 3;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "/kityminder-editor/dist/index.html"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维导图",
+                _box, { //"/jsmind/example/demo.html" 
+                "id": "mind" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindMapping.png)"
+                },
+                "name": "思维导图",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "MindMap":
+            aTool = 3;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "//cloud.cocorobo.cn/mind/"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维导图",
+                _box, { //"/jsmind/example/demo.html" 
+                "id": "mind" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindMapping.png)"
+                },
+                "name": "思维导图",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "doc":
+            aTool = 6;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "/Office/Word/WordEditArea.htm"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "协同文档",
+                _box, {
+                "id": "doc" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+
+            U.UF.DL.iframeLoad($("iframe", _formdiv)[0], function () {
+                $("iframe", _formdiv)[0].contentWindow.U.MD.O.W.load(cid, stage, task, tool);
+            })
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/doc.png)"
+                },
+                "name": "协同文档",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "mindNetwork": //好友打开
+            aTool = 7;
+            _iframe = $$("iframe", {
+                "webkitallowfullscreen": "",
+                "mozallowfullscreen": "",
+                "allowfullscreen": "",
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0; width:100%; height:100%;"
+                },
+                "src": US.Config.bpbl + "/pbl-teacher-table/dist/#/Grid?userid=" + _userid
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维网格",
+                _box, {
+                "id": "mindNetwork" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindNetwork.png)"
+                },
+                "name": "思维网格",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "courseDesign":
+            _iframe = $$("iframe", {
+                "webkitallowfullscreen": "",
+                "mozallowfullscreen": "",
+                "allowfullscreen": "",
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0; width:100%; height:100%;"
+                },
+                "src": "/course-design-vue"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "项目设计",
+                _box, {
+                "id": "courseDesign" + cid + stage + task + tool,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/courseDesign.png)"
+                },
+                "name": "项目设计",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+    }
+    const script1 = document.createElement("script");
+    script1.type = "text/javascript";
+    // script1.src = US.Config.bpbl + "/pbl-student-table/dist/js/jquery-3.6.0.min.js";
+    script1.src = "https://cloud.cocorobo.cn/js/Common/jquery-3.6.0.min.js";
+    const script2 = document.createElement("script");
+    script2.type = "text/javascript";
+    // script2.src = US.Config.bpbl + "/pbl-student-table/dist/js/aws-sdk-2.235.1.min.js";
+    script2.src = "https://cloud.cocorobo.cn/js/Common/aws-sdk-2.235.1.min.js";
+    const script3 = document.createElement("script");
+    script3.type = "text/javascript";
+    script3.charset = "UTF-8";
+    script3.src = "https://cloud.cocorobo.cn/js/Common/html2canvas.min.js";
+    const script4 = document.createElement("script");
+    script4.type = "text/javascript";
+    // script4.src = US.Config.bpbl + "/pbl-student-table/dist/js/jietu2.js";
+    script4.src = "https://cloud.cocorobo.cn/js/Common/jietu2E.js";
+
+    if (_iframe) {
+        if (str == 'doc') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = U.UF.DL.iframeLoad(_iframe, function () {
+                _iframe.contentWindow.U.MD.O.W.load(cid, stage, task, tool);
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                // _iframe.contentWindow.document.body.appendChild(script3);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            })
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else if (str == 'courseDesign') {
+            U.UF.DL.iframeLoad(_iframe, function () {
+                // _iframe.contentWindow.U.MD.O.W.load();
+                // _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            })
+        } else if (str == 'mind') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = U.UF.DL.iframeLoad(_iframe, function () {
+                // 
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+                U.MD.D.I.getContent(cid, stage, task, tool, _userid, '2', _iframe)
+            })
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else if (str == 'whiteboard') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = _iframe.onload = () => {
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+                U.MD.D.I.getContent(cid, stage, task, tool, _userid, '3', _iframe)
+            };
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else {
+            _iframe.onload = () => {
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                // _iframe.contentWindow.document.body.appendChild(script3);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            };
+        }
+        _jie.onclick = async () => {
+            let text = ''
+            if (aTool == 1) {
+                text = JSON.stringify(_iframe.contentWindow.h.app.scene.elements)
+            } else if (aTool == 6) {
+                text = _iframe.contentWindow.$("#U_MD_O_H_wordEditor")[0].innerHTML.escapeQuotes()
+            } else if (aTool == 3) {
+                text = await U.MD.D.I.getEditorContent(_iframe);
+            }
+
+            _loading.style.display = 'flex'
+            console.log(_loading);
+            var _ajs = _iframe.contentWindow.document.createElement("script");
+            _ajs.type = "text/javascript";
+            _ajs.innerHTML =
+                // 'console.log(' + _loading + ');\n' +
+                'var _js = document.createElement("script");\n' +
+                '_js.type="text/javascript";\n' +
+                '_js.charset="UTF-8";\n' +
+                '_js.src="https://cloud.cocorobo.cn/js/Common/html2canvas.min.js";\n' +
+                "_js.onload = function(){\n" +
+                ' var a = document.getElementsByTagName("img")\n' +
+                ' for(var i = 0;i<a.length;i++){a[i].crossOrigin="anonymous"}\n' +
+                " html2canvas(document.body,{allowTaint: true,useCORS: true,height: document.body.scrollHeight,windowHeight: document.body.scrollHeight}).then(canvas => {\n" +
+                '  var base64Url = canvas.toDataURL("image/png");\n' +
+                'var base64 = "<img src=" + base64Url + " />"\n' +
+                'var file = dataURLtoFile_shishi(base64Url, "截图")\n' +
+                "beforeUpload_shishi(file," +
+                "'" +
+                _userid +
+                "'" +
+                ", " +
+                "'" +
+                _cid +
+                "'" +
+                ", " +
+                "'" +
+                _stage +
+                "'" +
+                ", " +
+                "'" +
+                _task +
+                "'" +
+                ", " +
+                "'" +
+                _tool +
+                "'" +
+                ", " +
+                "'" +
+                str + '_loadLi' +
+                "'" +
+                ", " +
+                "'" +
+                aTool +
+                "'" +
+                ", " +
+                "`" +
+                text +
+                "`" +
+                ")\n" +
+                " });\n" +
+                "}\n" +
+                "document.head.appendChild(_js);\n";
+            _iframe.contentWindow.document.head.appendChild(_ajs);
+        }
+    }
+
+    //U.MD.D.I.openClick(str);
+    //如果有任务栏信息
+    // if (_taskbar) {
+    //     U.MD.D.T.taskbar(_taskbar); //创建任务处理
+    // }
+
+}
+U.MD.D.I.openApplicationJieTeacher = function (str, cid, stage, task, tool, student) {
+    var _taskbar, //_taskbar 作为任务栏显示的元素,包含图标和名字
+        _formdiv, //创建任务栏时同时弹出的窗体元素。
+        _userid = student.userid, //登录用户id
+        _username = student.student //用户名字
+    let _iframe;
+    let _cid = cid,
+        _stage = stage,
+        _task = task,
+        _tool = tool;
+    var _jie = $$("div", {
+        "style": {
+            "position": "absolute",
+            "bottom": "50px",
+            "right": "50px",
+            "zIndex": "9999",
+            "backgroundColor": "#2268bc",
+            "color": "#fff",
+            "padding": "12px 20px",
+            "cursor": "pointer",
+            "borderRadius": "4px",
+        },
+        "innerHTML": "提交作业"
+    })
+    let aTool = ''
+    let _loading = document.createElement('div')
+    _loading.style = "width:100%;height:100%;background:#00000000;position:absolute;top:0;left:0;z-index:99999999999999;display: none;justify-content: center;align-items: center;"
+    //  _loading.id = "";
+    let _lchild = document.createElement('div')
+    let _limg = document.createElement('img')
+    _limg.src = US.Config.bpbl + '/pbl-student-table/dist/js/loading.gif'
+    _limg.style = "width: 26px;margin-right: 10px;"
+    _lchild.appendChild(_limg)
+    let _lspan = document.createElement('span')
+    _lspan.innerHTML = "上传中..."
+    _lchild.appendChild(_lspan)
+    _lchild.style = "color: rgb(255, 255, 255);padding: 15px;background: rgba(0, 0, 0, 0.44);font-size: 18px;display: flex;align-items: center;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);"
+    _loading.appendChild(_lchild)
+    var _box = $$('div', {
+        "style": {
+            "position": "relative",
+            "width": "100%",
+            "height": "100%",
+        },
+    })
+    _box.appendChild(_loading)
+    _box.id = str + '_loadLi' + _userid
+    switch (str) {
+        case "whiteboard":
+            aTool = 1;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "https://iwb.cocorobo.cn/"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "电子白板-" + _username,
+                _box, {
+                "id": "whiteboard" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/whiteBoard.png)"
+                },
+                "name": "电子白板",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "mind":
+            aTool = 3;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "/kityminder-editor/dist/index.html"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维导图-" + _username,
+                _box, { //"/jsmind/example/demo.html" 
+                "id": "mind" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindMapping.png)"
+                },
+                "name": "思维导图",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "MindMap":
+            aTool = 3;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "//cloud.cocorobo.cn/mind/"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维导图-" + _username,
+                _box, { //"/jsmind/example/demo.html" 
+                "id": "mind" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindMapping.png)"
+                },
+                "name": "思维导图",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "doc":
+            aTool = 6;
+            _iframe = $$("iframe", {
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0;width:100%;height:100%"
+                },
+                "src": "/Office/Word/WordEditArea.htm"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "协同文档-" + _username,
+                _box, {
+                "id": "doc" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
 
-U.MD.D.I.openApplicationJieTeacher = function (str, cid, stage, task, tool, student) {
+            U.UF.DL.iframeLoad($("iframe", _formdiv)[0], function () {
+                $("iframe", _formdiv)[0].contentWindow.U.MD.O.W.load(cid, stage, task, tool);
+            })
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/doc.png)"
+                },
+                "name": "协同文档",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "mindNetwork": //好友打开
+            aTool = 7;
+            _iframe = $$("iframe", {
+                "webkitallowfullscreen": "",
+                "mozallowfullscreen": "",
+                "allowfullscreen": "",
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0; width:100%; height:100%;"
+                },
+                "src": US.Config.bpbl + "/pbl-teacher-table/dist/#/Grid?userid=" + _userid
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "思维网格-" + _username,
+                _box, {
+                "id": "mindNetwork" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/mindNetwork.png)"
+                },
+                "name": "思维网格",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+        case "courseDesign":
+            _iframe = $$("iframe", {
+                "webkitallowfullscreen": "",
+                "mozallowfullscreen": "",
+                "allowfullscreen": "",
+                "frameborder": "no",
+                "border": "0",
+                "scrolling ": "no",
+                "style": {
+                    "cssText": "border:0; width:100%; height:100%;"
+                },
+                "src": "/course-design-vue"
+            })
+            _box.appendChild(_iframe);
+            _box.appendChild(_jie);
+            _formdiv = new U.UF.UI.form(
+                "项目设计-" + _username,
+                _box, {
+                "id": "courseDesign" + cid + stage + task + tool + _userid,
+                "style": {
+                    "width": "90%",
+                    "height": "90%",
+                    "overflow": 'hidden'
+                },
+                "onresize": function () { }
+            }, {
+                closecallback: function () { }
+            }, {
+                "style": {
+                    "height": "36px"
+                }
+            }).form; //创建窗体
+            _taskbar = {
+                "id": str + _formdiv.id,
+                "style": {
+                    "backgroundImage": "url(/img/icon/courseDesign.png)"
+                },
+                "name": "项目设计",
+                "forms": _formdiv,
+                "click": function () {
+                    U.MD.D.I.openApplication(str, obj, info);
+                }
+            }
+            break;
+    }
+    const script1 = document.createElement("script");
+    script1.type = "text/javascript";
+    // script1.src = US.Config.bpbl + "/pbl-student-table/dist/js/jquery-3.6.0.min.js";
+    script1.src = "https://cloud.cocorobo.cn/js/Common/jquery-3.6.0.min.js";
+    const script2 = document.createElement("script");
+    script2.type = "text/javascript";
+    // script2.src = US.Config.bpbl + "/pbl-student-table/dist/js/aws-sdk-2.235.1.min.js";
+    script2.src = "https://cloud.cocorobo.cn/js/Common/aws-sdk-2.235.1.min.js";
+    const script3 = document.createElement("script");
+    script3.type = "text/javascript";
+    script3.charset = "UTF-8";
+    script3.src = "https://cloud.cocorobo.cn/js/Common/html2canvas.min.js";
+    const script4 = document.createElement("script");
+    script4.type = "text/javascript";
+    // script4.src = US.Config.bpbl + "/pbl-student-table/dist/js/jietu2.js";
+    script4.src = "https://cloud.cocorobo.cn/js/Common/jietu2.js";
+
+    if (_iframe) {
+        if (str == 'doc') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = U.UF.DL.iframeLoad(_iframe, function () {
+                _iframe.contentWindow.U.MD.O.W.load(cid, stage, task, tool);
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                // _iframe.contentWindow.document.body.appendChild(script3);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            })
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else if (str == 'courseDesign') {
+            U.UF.DL.iframeLoad(_iframe, function () {
+                // _iframe.contentWindow.U.MD.O.W.load();
+                // _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            })
+        } else if (str == 'mind') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = U.UF.DL.iframeLoad(_iframe, function () {
+                // 
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+                U.MD.D.I.getContent(cid, stage, task, tool, _userid, '2', _iframe)
+            })
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else if (str == 'whiteboard') {
+            _iframe = _formdiv.querySelector('iframe')
+            let onloadListener = _iframe.onload = () => {
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                _iframe.contentWindow.document.body.appendChild(script4);
+                U.MD.D.I.getContent(cid, stage, task, tool, _userid, '3', _iframe)
+            };
+            if (onloadListener) {
+                _iframe.contentDocument.location.reload()
+            } else {
+                _iframe.contentDocument.location.reload()
+            }
+        } else {
+            _iframe.onload = () => {
+                _iframe.contentWindow.document.body.appendChild(script1);
+                _iframe.contentWindow.document.body.appendChild(script2);
+                // _iframe.contentWindow.document.body.appendChild(script3);
+                _iframe.contentWindow.document.body.appendChild(script4);
+            };
+        }
+        _jie.onclick = async () => {
+            let text = ''
+            if (aTool == 1) {
+                text = JSON.stringify(_iframe.contentWindow.h.app.scene.elements)
+            } else if (aTool == 6) {
+                text = _iframe.contentWindow.$("#U_MD_O_H_wordEditor")[0].innerHTML.escapeQuotes()
+            } else if (aTool == 3) {
+                text = await U.MD.D.I.getEditorContent(_iframe);
+            }
+
+            _loading.style.display = 'flex'
+            console.log(_loading);
+            var _ajs = _iframe.contentWindow.document.createElement("script");
+            _ajs.type = "text/javascript";
+            _ajs.innerHTML =
+                // 'console.log(' + _loading + ');\n' +
+                'var _js = document.createElement("script");\n' +
+                '_js.type="text/javascript";\n' +
+                '_js.charset="UTF-8";\n' +
+                '_js.src="https://cloud.cocorobo.cn/js/Common/html2canvas.min.js";\n' +
+                "_js.onload = function(){\n" +
+                ' var a = document.getElementsByTagName("img")\n' +
+                ' for(var i = 0;i<a.length;i++){a[i].crossOrigin="anonymous"}\n' +
+                " html2canvas(document.body,{allowTaint: true,useCORS: true,height: document.body.scrollHeight,windowHeight: document.body.scrollHeight}).then(canvas => {\n" +
+                '  var base64Url = canvas.toDataURL("image/png");\n' +
+                'var base64 = "<img src=" + base64Url + " />"\n' +
+                'var file = dataURLtoFile_shishi(base64Url, "截图")\n' +
+                "beforeUpload_shishi(file," +
+                "'" +
+                _userid +
+                "'" +
+                ", " +
+                "'" +
+                _cid +
+                "'" +
+                ", " +
+                "'" +
+                _stage +
+                "'" +
+                ", " +
+                "'" +
+                _task +
+                "'" +
+                ", " +
+                "'" +
+                _tool +
+                "'" +
+                ", " +
+                "'" +
+                str + '_loadLi' + _userid +
+                "'" +
+                ", " +
+                "'" +
+                aTool +
+                "'" +
+                ", " +
+                "`" +
+                text +
+                "`" +
+                ")\n" +
+                " });\n" +
+                "}\n" +
+                "document.head.appendChild(_js);\n";
+            _iframe.contentWindow.document.head.appendChild(_ajs);
+        }
+    }
+}
+
+U.MD.D.I.openApplicationJieTeacherE = function (str, cid, stage, task, tool, student) {
     var _taskbar, //_taskbar 作为任务栏显示的元素,包含图标和名字
         _formdiv, //创建任务栏时同时弹出的窗体元素。
         _userid = student.userid, //登录用户id
@@ -4294,7 +5207,7 @@ U.MD.D.I.openApplicationJieTeacher = function (str, cid, stage, task, tool, stud
     const script4 = document.createElement("script");
     script4.type = "text/javascript";
     // script4.src = US.Config.bpbl + "/pbl-student-table/dist/js/jietu2.js";
-    script4.src = "https://cloud.cocorobo.cn/js/Common/jietu2.js";
+    script4.src = "https://cloud.cocorobo.cn/js/Common/jietu2E.js";
 
     if (_iframe) {
         if (str == 'doc') {
@@ -4421,6 +5334,7 @@ U.MD.D.I.openApplicationJieTeacher = function (str, cid, stage, task, tool, stud
     }
 }
 
+
 U.MD.D.I.getEditorContent = function (iframe) {
     return new Promise((resolve, reject) => {
         iframe.contentWindow.editor.minder.exportData('json').then(function (content) {