

/* 

window.courseware.getData(callback,key);  //用于获取数据
window.courseware.setData(data,callback,key);  //用于存储数据
var uploadUrl = window.courseware.uploadUrl();  //上传文件的路径
var uploadData = window.courseware.uploadData();  //上传文件必须要的参数 

*/

//对应模板的名称，这个可以不写，但是最好是能写上，同时开发多个模板的情况下如果不写这个，本地缓存可能会存在混乱
var key = "JM-07";

class FormView {

  data;

  init() {

    this.initDefaultData();

    this.initView();
  }

  initDefaultData() {

    if (!this.data) {
      this.data = {title:'请同学们根据视频复述课文'};
      this.save();
    }

    
  }

  initView() {
    var _dom = $("#content");

    if (this.data.video) {
      _dom.find(".video").attr("src", this.data.video).show();
    }

    if(this.data.stuImage){
      _dom.find(".stu-image").attr("src", this.data.stuImage).show();
    }



    $("#keyWord").val(this.data.keyWord);
    $("#title").val(this.data.title);

    const _this = this;

    _dom.find("[name='video']").change(function () {
      const files = $(this).prop('files');
      $(this).attr("disabled", true);
      $(this).prev().text("上传中...");
      commonUploadFile(files[0], (data) => {
        $(this).attr("disabled", false);
        $(this).prev().text("上传视频");
        if (data) {
          const d = JSON.parse(data);
          $("#showVideo").attr("src", d.url).show();
          _this.data.video = d.url;
          _this.save();
        }
      });
    });

    _dom.find("[name='stuImage']").change(function () {
      const files = $(this).prop('files');
      $(this).attr("disabled", true);
      $(this).prev().text("上传中...");
      commonUploadFile(files[0], (data) => {
        $(this).attr("disabled", false);
        $(this).prev().text("上传图片");
        if (data) {
          const d = JSON.parse(data);
          $("#stuImage").attr("src", d.url).show();
          _this.data.stuImage = d.url;
          _this.save();
        }
      });
    });

    $("#keyWord").change(function(){
      _this.data.keyWord = $(this).val();
      _this.save();
    })

    $("#title").change(function(){
      _this.data.title = $(this).val();
      _this.save();
    });
  }

  saveTmsp = null;
  save() {
    if (this.saveTmsp) {
      return;
    }
    this.saveTmsp = setTimeout(() => {
      const saveData = this.data;
      console.log(saveData);
      window.courseware.setData(saveData, null, key);  //用于存储数据
      this.saveTmsp = null;
    }, 1000);
  }
}


$(function () {

  var formView = new FormView();

  window.courseware.getData(function (data) {


    console.log(data);

    formView.data = data;

    formView.init();
  }, key);


});

function commonUploadFile(file, callback) {
  const uploadUrl = window.courseware.uploadUrl();  //上传文件的路径
  const uploadData = window.courseware.uploadData();  //上传文件必须要的参数 

  const formData = new FormData();
  formData.append("file", file);
  for (const key in uploadData) {
    formData.append(key, uploadData[key]);
  }
  $.ajax({
    url: uploadUrl,
    type: "post",
    data: formData,
    dataType: 'text',
    contentType: false,
    processData: false,
    success: function (data) {
      callback && callback(data);
    },
    error: function (data) {
      console.error("文件上传失败", data);
      callback && callback(null);
    }
  });
}