SanHQin 11 månader sedan
förälder
incheckning
50bfbd4db6

+ 7 - 2
src/router/index.js

@@ -27,9 +27,14 @@ const routes = [{
         component: () =>
             import ('@/views/resultShow/resultShowDetail.vue'),
         meta: { isAuth: true, checkPower: false }
-
     },
-    { //成果展示
+		{//项目立项pdf右键打印展示
+			name:"projectPrint",
+			path:"/projectPrint",
+			component:()=>import("@/views/printView/projectPrint.vue"),
+			meta:{ isAuth: true, checkPower: false }
+		},
+    { //结题申报书
         name: 'Closingstatement1',
         path: '/Closingstatement1',
         component: () =>

+ 645 - 0
src/views/printView/components/studentProjectWordDetail.vue

@@ -0,0 +1,645 @@
+<template>
+  <div id="studentProjectWordDetail">
+    <studentProjectWordShow
+      ref="myChild"
+      :downWordData="downWordData"
+      :reversedMessage="reversedMessage"
+      :signData="signData"
+      @fileOption="fileOption"
+    />
+
+    <!-- 展示文件 -->
+    <el-dialog
+      title="展示文件"
+      :visible.sync="showFile"
+      top="1vh"
+      width="80vw"
+      append-to-body
+    >
+      <div class="showFileArea" style="height: 80vh">
+        <!-- <vpdf v-if="/^\s*$/g.test(showFileUrl)&&showFileUrl.split('.')[showFileUrl.split('.').length-1]=='pdf'" :pdfUrl="showFileUrl"></vpdf> -->
+        <div
+          class="workd_media"
+          style="width: 90%; height: 90%"
+          v-if="videoDetail.sources"
+        >
+          <video-player
+            class="video-player vjs-custom-skin"
+            :playsinline="true"
+            :options="videoDetail"
+            @play="onPlayerPlay($event)"
+            style="width: 90%; height: 90%; margin: 0 auto"
+          ></video-player>
+        </div>
+        <vword
+          style="width: 100%; height: 100%; overflow: auto"
+          class="fullStyle"
+          v-else-if="Wordss['type'] != 'pdf' && Wordss['name'] != '图片'"
+          :pdfUrl="
+            'https://view.officeapps.live.com/op/view.aspx?src=' + showFileUrl
+          "
+        ></vword>
+        <vpdf
+          style="width: 100%; height: 100%; overflow: auto"
+          class="fullStyle"
+          :pdfUrl="showFileUrl"
+          v-else-if="Wordss['type'] == 'pdf'"
+        ></vpdf>
+        <img
+          :src="showFileUrl"
+          alt="图片哦"
+          v-else-if="Wordss['name'] == '图片'"
+          style="width: auto; height: auto; max-width: 100%; max-height: 100%"
+        />
+      </div>
+      <!-- <el-button type="primary" size="mini" @click="downFile(showFileUrl)">下载文件</el-button> -->
+    </el-dialog>
+    <!-- 修改文件名称 -->
+    <el-dialog
+      title="修改名称"
+      :visible.sync="dialogVisibleUpdateFile"
+      :append-to-body="true"
+      width="500px"
+      class="dialog_diy"
+    >
+      <div
+        style="
+          width: 100%;
+          display: flex;
+          flex-direction: row;
+          flex-wrap: nowrap;
+          align-items: center;
+          justify-content: center;
+        "
+      >
+        <div style="min-width: fit-content">文件名称:</div>
+        <el-input
+          v-model="updateFile.fileName"
+          placeholder="请输入要修改的名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleUpdateFile = false">取 消</el-button>
+        <el-button type="primary" @click="updateFileName">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 修改文件名称2-->
+    <el-dialog
+      title="修改名称"
+      :visible.sync="dialogVisibleUpdateFile2"
+      :append-to-body="true"
+      width="500px"
+      class="dialog_diy"
+    >
+      <div
+        style="
+          width: 100%;
+          display: flex;
+          flex-direction: row;
+          flex-wrap: nowrap;
+          align-items: center;
+          justify-content: center;
+        "
+      >
+        <div style="min-width: fit-content">文件名称:</div>
+        <el-input
+          v-model="updateFile.fileName"
+          placeholder="请输入要修改的名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleUpdateFile2 = false">取 消</el-button>
+        <el-button type="primary" @click="updateFileName2">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getNowDate } from "@/components/tool/Date.js";
+import studentProjectWordShow from "./studentProjectWordShow.vue";
+import vpdf from "@/components/vpdf.vue";
+import vword from "@/components/vword.vue";
+
+export default {
+  components: { studentProjectWordShow, vword, vpdf },
+  data() {
+    return {
+      isupload: 1,
+      DepartmentData: [], //部门学院
+      loading: false,
+      downloadDig: false, //下载文档对话框
+      downloadWordDig: false,
+      updatedWordDig: false, //立即修改对话框
+      showFile: false, // 展示文件弹窗
+      dialogVisibleUpdateFile: false, //修改文件弹窗
+      dialogVisibleUpdateFile2: false, //修改文件弹窗2
+      downWordData: {
+        applicationDate: getNowDate(1), //申请日期
+        projectName: "",
+        radio: "",
+        checkList: [],
+        schoolRadio: [],
+        applyParsonRadio: [],
+        applyParsonName: "",
+        college: "",
+        tel: "",
+        beginTime: "",
+        endTime: "",
+        studentS: [
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+        ],
+        teacherS: [
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+        ],
+        brief: "",
+        introduce: {
+          back: "",
+          innovate: "",
+          path: "",
+          scene: "",
+          worth: "",
+          team: "",
+          cost: "",
+          expectResults: "",
+          expectResultsTeacher: "",
+          expectConversion: "",
+          plan: "",
+        },
+        total: 0,
+        fund: {
+          device: "",
+          Material: "",
+          processing: "",
+          APPRAISAL: "",
+          Collaboration: "",
+          Transaction: "",
+          activities: "",
+          entery: "",
+        },
+        opinion: [],
+      },
+      wordData: {
+        applicationDate: getNowDate(1), //申请日期
+        projectName: "",
+        radio: "",
+        checkList: [],
+        schoolRadio: [],
+        applyParsonRadio: [],
+        applyParsonName: "",
+        college: "",
+        tel: "",
+        beginTime: "",
+        endTime: "",
+        studentS: [
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+        ],
+        teacherS: [
+          { name: "", collage: "", work: "" },
+          { name: "", collage: "", work: "" },
+        ],
+        brief: "",
+        introduce: {
+          back: "",
+          innovate: "",
+          path: "",
+          scene: "",
+          worth: "",
+          team: "",
+          cost: "",
+          expectResults: "",
+          expectResultsTeacher: "",
+          expectConversion: "",
+          plan: "",
+        },
+        total: 0,
+        fund: {
+          device: "",
+          Material: "",
+          processing: "",
+          APPRAISAL: "",
+          Collaboration: "",
+          Transaction: "",
+          activities: "",
+          entery: "",
+        },
+        attachment: [], //附件上传
+        opinion: [],
+      },
+      signData: [],
+      word: [
+        "DOC",
+        "DOCX",
+        "DOCM",
+        "DOTM",
+        "DOTX",
+        "PPTX",
+        "PPSX",
+        "PPT",
+        "PPS",
+        "PPTM",
+        "POTM",
+        "PPAM",
+        "POTX",
+        "PPSM",
+        "XLSX",
+        "XLS",
+      ],
+      pdf: ["PDF"],
+      image: [
+        "BMP",
+        "PJP",
+        "APNG",
+        "PNG",
+        "JPG",
+        "GIF",
+        "SVG",
+        "JPEG",
+        "JPG",
+        "ICO",
+        "PGPEG",
+        "AVIF",
+      ],
+      vedio: [
+        "AVI",
+        "NAVI",
+        "MPEG",
+        "ASF",
+        "MOV",
+        "WMV",
+        "3GP",
+        "RM",
+        "RMVB",
+        "FLV",
+        "F4V",
+        "H.264",
+        "H.265",
+        "REAL VIDEO",
+        "MKV",
+        "WebM",
+        "HDDVD",
+        "MP4",
+        "MPG",
+        "M4V",
+        "MGV",
+        "OGV",
+        "QTM",
+        "STR",
+        "AMC",
+        "DVX",
+        "EVO",
+        "DAT",
+        "OGG",
+        "OGM",
+      ],
+      playerOptions: {
+        playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
+        autoplay: false, //如果true,浏览器准备好时开始回放。
+        muted: false, // 默认情况下将会消除任何音频。
+        loop: false, // 导致视频一结束就重新开始。
+        preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
+        language: "zh-CN",
+        aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
+        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
+        sources: [
+          {
+            type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目   || "video/ogg"|| "video/webm"
+            src: "", //url地址require("../../assets/media/aaa.mp4")
+          },
+        ],
+        // poster: require("../../assets/tu31.png"), //你的封面地址
+        // poster: dataRes.imgUrl, //你的封面地址
+        notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
+        controlBar: {
+          timeDivider: true, //当前时间和持续时间的分隔符
+          durationDisplay: true, //显示持续时间
+          remainingTimeDisplay: false, //是否显示剩余时间功能
+          fullscreenToggle: true, //全屏按钮
+        },
+      },
+      playerO: {},
+      videoDetail: {},
+      Wordss: {},
+      showFileUrl: "",
+      canonical: {
+        Image:
+          /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
+        File: /^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i,
+      },
+      updateFile: {
+        url: "",
+        fileName: "",
+      },
+    };
+  },
+  methods: {
+    getProjectDepartmentData() {
+      //获取项目立项申请基础信息页面所在部门数据
+      this.ajax
+        .post(this.$store.state.api + "/SelectAllDepartment", {
+          uid: this.$store.state.userInfo.userid,
+        })
+        .then(
+          (res) => {
+            this.DepartmentData = res.data[0];
+          },
+          (err) => {
+            console.log(err);
+          }
+        );
+    },
+    getData() {
+      if (this.loading) return;
+      this.loading = true;
+      let param = {
+        uid: this.$store.state.userInfo.userid,
+        cid: this.$route.query["pid"],
+      };
+
+      this.ajax.get(this.$store.state.api + "/studentProjectData", param).then(
+        (res) => {
+          let data = res.data[0][0];
+          this.wordData.projectName = data.title;
+          this.wordData.radio = data.typeName;
+          this.wordData.checkList = JSON.parse(data.multiSelectProject);
+          this.wordData.schoolRadio = JSON.parse(data.schoolRemould);
+          this.wordData.applyParsonRadio = JSON.parse(data.projectApplyperson);
+          this.wordData.applyParsonName = data.pro_leader;
+          this.wordData.college = data.classid;
+          this.wordData.tel = data.phone;
+          this.wordData.beginTime = data.bTime;
+          this.wordData.endTime = data.eTime;
+          this.wordData.studentS = JSON.parse(data.course_student);
+          this.wordData.teacherS = JSON.parse(data.course_teacher);
+          this.wordData.brief = data.brief;
+          this.wordData.introduce = JSON.parse(data.chapters);
+          this.wordData.fund = JSON.parse(data.money);
+          this.wordData.opinion = data.opinion ? JSON.parse(data.opinion) : [];
+          this.wordData.attachment = data.attachment
+            ? JSON.parse(data.attachment)
+            : [];
+          this.downWordData = {
+            ...this.wordData,
+            ...{ etime: data.eTime, btime: data.bTime, dp: data.className },
+          };
+          this.isupload = data["isupload"];
+          this.loading = false;
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    //  获取评审数据
+    getSignData() {
+      let params = {
+        pid: this.$route.query["pid"],
+      };
+      this.ajax
+        .get(this.$store.state.api + "/selectSign", params)
+        .then((res) => {
+          let signData = res.data[0];
+          signData.sort(
+            (a, b) => new Date(b.create_at) - new Date(a.create_at)
+          );
+          this.signData = signData;
+        });
+    },
+    // 上传专家文件
+    getFile(file) {
+      this.wordData.opinion.push(file);
+      this.saveFile();
+    },
+    // 对文件的操作
+    fileOption(file, index, opt) {
+      if (opt == "0") {
+        this.checkFile(file.url);
+      } else if (opt == "1") {
+        if (index == 0) return;
+        this.wordData.opinion.splice(
+          index - 1,
+          0,
+          this.wordData.opinion.splice(index, 1)[0]
+        );
+        this.saveFile();
+      } else if (opt == "2") {
+        if (index == this.wordData.opinion.length - 1) return;
+        this.wordData.opinion.splice(
+          index + 1,
+          0,
+          this.wordData.opinion.splice(index, 1)[0]
+        );
+        this.saveFile();
+      } else if (opt == "3") {
+        this.updateFile = { ...file, index: index };
+        this.dialogVisibleUpdateFile = true;
+      } else if (opt == "4") {
+        this.$confirm("确定删除该文件?", "提示", {
+          type: "error",
+          confirmButtonText: "确定删除",
+          cancelButtonText: "取消",
+        }).then((_) => {
+          this.wordData.opinion.splice(index, 1);
+          this.saveFile();
+        });
+      }
+    },
+    //上传附件
+    fileOption2(file, index, opt) {
+      if (opt == "0") {
+        this.checkFile(file.url);
+      } else if (opt == "1") {
+        if (index == 0) return;
+        this.wordData.attachment.splice(
+          index - 1,
+          0,
+          this.wordData.attachment.splice(index, 1)[0]
+        );
+      } else if (opt == "2") {
+        if (index == this.wordData.attachment.length - 1) return;
+        this.wordData.attachment.splice(
+          index + 1,
+          0,
+          this.wordData.attachment.splice(index, 1)[0]
+        );
+      } else if (opt == "3") {
+        this.updateFile = { ...file, index: index };
+        this.dialogVisibleUpdateFile2 = true;
+      } else if (opt == "4") {
+        this.$confirm("确定删除该文件?", "提示", {
+          type: "error",
+          confirmButtonText: "确定删除",
+          cancelButtonText: "取消",
+        }).then((_) => {
+          this.wordData.attachment.splice(index, 1);
+        });
+      }
+    },
+    // 上传专家文件
+    getFile2(file) {
+      this.wordData.attachment.push(file);
+    },
+    // 上传文件函数
+    saveFile() {
+      let params = {
+        uid: this.$store.state.userInfo.userid,
+        pid: this.$route.query["pid"],
+        file: encodeURIComponent(JSON.stringify(this.wordData.opinion)),
+      };
+      this.ajax
+        .post(this.$store.state.api + "/updateProjectOpinion", params)
+        .then((res) => {
+          if (res.data == 1) {
+            return this.getData();
+          }
+        });
+    },
+    //展示文件
+    checkFile(url) {
+      this.videoDetail = {};
+      if (
+        this.vedio.indexOf(
+          url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
+        ) != -1
+      ) {
+        this.playerOptions.sources[0].src = url;
+        this.videoDetail = this.playerOptions;
+        this.showFile = true;
+      } else {
+        if (
+          this.word.indexOf(
+            url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
+          ) == -1 &&
+          this.pdf.indexOf(
+            url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
+          ) == -1 &&
+          this.image.indexOf(
+            url.split(".")[url.split(".").length - 1].toLocaleUpperCase()
+          ) == -1
+        ) {
+          this.downFile(url);
+          return;
+        }
+        this.showFileUrl = url;
+        this.showFile = true;
+        if (typeof url == "undefined") return { type: "", name: "" };
+        let urlSplit = url.split(".");
+        const type = urlSplit[urlSplit.length - 1];
+        if (this.canonical.Image.test(url)) {
+          this.Wordss = { type: type, name: "图片" };
+          return console.log(this.Wordss);
+        }
+        if (this.canonical.File.test(url)) {
+          this.Wordss = { type: type, name: "文档" };
+          return console.log(this.Wordss);
+        }
+        if (this.canonical.vedio.test(url)) {
+          this.Wordss = { type: type, name: "视频" };
+          return console.log(this.Wordss);
+        } else return (this.Wordss = { type: type, name: type });
+      }
+    },
+    //下载文件
+    downFile(f) {
+      var credentials = {
+        accessKeyId: "AKIATLPEDU37QV5CHLMH",
+        secretAccessKey: "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",
+      }; //秘钥形式的登录上传
+      window.AWS.config.update(credentials);
+      window.AWS.config.region = "cn-northwest-1"; //设置区域
+      let url2 = f;
+      let _url2 = "";
+      if (
+        url2.indexOf("https://view.officeapps.live.com/op/view.aspx?src=") != -1
+      ) {
+        _url2 = url2.split(
+          "https://view.officeapps.live.com/op/view.aspx?src="
+        )[1];
+      } else {
+        _url2 = url2;
+      }
+      var s3 = new window.AWS.S3({ params: { Bucket: "ccrb" } });
+      let name = decodeURIComponent(
+        _url2.split("https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/")[1]
+      );
+      var params = {
+        Bucket: "ccrb",
+        Key: name,
+      };
+      s3.getObject(params, function (err, data) {
+        if (err) console.log(err, err.stack); // an error occurred
+        else {
+          let url = window.URL.createObjectURL(new Blob([data.Body]));
+          let a = document.createElement("a");
+          a.name = name;
+          a.href = url;
+          a.download = name;
+          a.click();
+          console.log(data);
+        } // sxuccessful response
+      });
+
+      return;
+    },
+    // 修改文件名称
+    updateFileName() {
+      if (!this.updateFile.fileName)
+        return this.$message.error("请输入文件名称");
+      this.wordData.opinion[this.updateFile.index].fileName =
+        this.updateFile.fileName;
+      this.dialogVisibleUpdateFile = false;
+      this.saveFile();
+    },
+    // 修改文件名称
+    updateFileName2() {
+      if (!this.updateFile.fileName)
+        return this.$message.error("请输入文件名称");
+      this.wordData.attachment[this.updateFile.index].fileName =
+        this.updateFile.fileName;
+      this.dialogVisibleUpdateFile2 = false;
+    },
+  },
+  computed: {
+    //经费总合
+    reversedMessage: function () {
+      return (
+        this.wordData.fund.device * 1 +
+        this.wordData.fund.Material * 1 +
+        this.wordData.fund.processing * 1 +
+        this.wordData.fund.Collaboration * 1 +
+        this.wordData.fund.APPRAISAL * 1 +
+        this.wordData.fund.entery * 1 +
+        this.wordData.fund.activities * 1 +
+        this.wordData.fund.Transaction * 1
+      );
+    },
+  },
+  mounted() {
+    this.getProjectDepartmentData();
+    this.getData();
+    this.getSignData();
+  },
+};
+</script>
+
+<style lang="less" scoped>
+#studentProjectWordDetail {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  position: relative;
+}
+</style>

+ 1190 - 0
src/views/printView/components/studentProjectWordShow.vue

@@ -0,0 +1,1190 @@
+<template>
+  <div id="studentProjectWord">
+    <table border="1" cellspacing="0" class="pdfTable" style="width: 80%;">
+      <div class="pdfTit">
+        <div class="school">深圳技师学院</div>
+        <div class="wordTitle">2024年校级学生创新创业训练计划项目申报书</div>
+        <div class="date">申请日期:{{ downWordData.applicationDate }}</div>
+      </div>
+      <tr id="projectName">
+        <td colspan="2" ref="projectName"><span class="jc">项目名称</span></td>
+        <td colspan="5" v-text="downWordData.projectName"></td>
+      </tr>
+      <tr id="radio">
+        <td rowspan="3" colspan="2" ref="radio">
+          <span class="jc">大创项目</span>
+        </td>
+        <td
+          v-text="
+            downWordData.radio == '4a4e2cfe-e1a1-11ee-81d4-00ff5c7a43f5'
+              ? '☑ 创新训练项目'
+              : '□ 创新训练项目'
+          "
+        ></td>
+        <td colspan="4">
+          学生个人或团队,在导师指导下,自主完成创新性研究项目设计、研究条件准备和项目实施、研究报告撰写、成果(学术)交流等工作。
+        </td>
+      </tr>
+      <tr>
+        <td
+          v-text="
+            downWordData.radio == '56f0ad8d-e1a1-11ee-81d4-00ff5c7a43f5'
+              ? '☑ 创业训练项目'
+              : '□ 创业训练项目'
+          "
+        ></td>
+        <td colspan="4">
+          学生团队在导师指导下,团队中每个学生在项目实施过程中扮演一个或多个具体角色,完成商业计划书编制、可行性研究、企业模拟运行、撰写创业报告等工作。
+        </td>
+      </tr>
+      <tr>
+        <td
+          v-text="
+            downWordData.radio == 'ed917c55-f51d-11ed-a3f6-509a4c5b67cf'
+              ? '☑ 创业实践项目'
+              : '□ 创业实践项目'
+          "
+        ></td>
+        <td colspan="4">
+          学生团队在学校导师和企业导师共同指导下,采用创新训练项目或创新性实验等成果,提出具有市场前景的创新性产品或服务,以此为基础开展创业实践活动。
+        </td>
+      </tr>
+      <tr id="checkList">
+        <td colspan="2" ref="checkList">
+          <span class="jc">特色项目美丽校园改造计划</span><br />
+        </td>
+        <td colspan="5">
+          <span class="checkAreaBlc"
+            ><span
+              v-text="
+                downWordData['schoolRadio'].indexOf('1') != -1 ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>校园安全项目</span></span
+          >
+          <span class="checkAreaBlc"
+            ><span
+              v-text="
+                downWordData['schoolRadio'].indexOf('2') != -1 ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>环境治理项目</span></span
+          >
+          <span class="checkAreaBlc"
+            ><span
+              v-text="
+                downWordData['schoolRadio'].indexOf('3') != -1 ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>校园服务项目</span></span
+          >
+          <span class="checkAreaBlc"
+            ><span
+              v-text="
+                downWordData['schoolRadio'].indexOf('4') != -1 ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>文创装置项目</span></span
+          >
+          <!-- <span  class="checkAreaBlc"><span v-text="downWordData['checkList'].indexOf('1')!=-1?'☑ ':'□ '"></span><span>大赛选拔项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['checkList'].indexOf('2')!=-1?'☑ ':'□ '"></span><span>落地注册项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['checkList'].indexOf('3')!=-1?'☑ ':'□ '"></span><span>社会征集项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['checkList'].indexOf('4')!=-1?'☑ ':'□ '"></span><span>产业命题项目</span></span> -->
+        </td>
+      </tr>
+      <tr id="schoolRadio">
+        <td colspan="2" ref="schoolRadio">
+          <span class="jc">优先支持项目(可多选)</span>
+        </td>
+        <td colspan="5" style="padding: 20px 0">
+          <div
+            style="
+              display: flex;
+              flex-direction: column;
+              align-items: flex-start;
+            "
+          >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('1') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span>团队合作项目、跨学科合作项目。</span></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('2') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span
+                >科技创新、低空经济、银发经济、乡村振兴、助残助学、非遗文创等新技术、新产业、新业态、新模式方面的项目。</span
+              ></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('3') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span>企业真实生产经营项目或外包服务项目。</span></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('4') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span>社会征集项目、产业命题项目。</span></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('5') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span>近两年内参与校级以上创新创业大赛并获奖的项目。</span></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('6') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span
+                >美丽校园改造计划中的校园智能产品及文创产品的研发项目。</span
+              ></span
+            >
+            <span class="checkAreaBlc"
+              ><span
+                v-text="
+                  downWordData['checkList'].indexOf('7') != -1 ? '☑ ' : '□ '
+                "
+              ></span
+              ><span
+                >企申报人为港澳籍、学校扶贫班及在校贫困生申报的项目</span
+              ></span
+            >
+          </div>
+
+          <!-- <span class="checkAreaBlc"><span v-text="downWordData['schoolRadio'].indexOf('1')!=-1?'☑ ':'□ '"></span><span>校园安全项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['schoolRadio'].indexOf('2')!=-1?'☑ ':'□ '"></span><span>环境治理项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['schoolRadio'].indexOf('3')!=-1?'☑ ':'□ '"></span><span>校园服务项目</span></span>
+              <span class="checkAreaBlc"><span v-text="downWordData['schoolRadio'].indexOf('4')!=-1?'☑ ':'□ '"></span><span>文创装置项目</span></span> -->
+        </td>
+      </tr>
+      <!-- <tr id="applyParsonRadio">
+            <td colspan="2" ref="applyParsonRadio" ><span class="jc">项目申请人</span></td>
+            <td colspan="3">
+              <span v-text="downWordData['applyParsonRadio'].indexOf('1')!=-1?'☑ ':'□ '"></span><span>在校学生</span>
+            </td><td colspan="3">
+              <span v-text="downWordData['applyParsonRadio'].indexOf('2')!=-1?'☑ ':'□ '"></span><span>入驻学校孵化基地的初创企业法人</span>
+            </td>
+          </tr> -->
+      <tr id="applyParsonName">
+        <td colspan="2" ref="applyParsonName">
+          <span class="jc">申 请 人 姓 名</span>
+        </td>
+        <td colspan="1" v-text="downWordData.applyParsonName"></td>
+        <td ref="college"><span class="jc">所在学院/班级</span></td>
+        <td v-text="downWordData.dp"></td>
+        <td ref="tel"><span class="jc">联系电话</span></td>
+        <td v-text="downWordData.tel"></td>
+      </tr>
+      <tr id="beginTime">
+        <td colspan="2" ref="beginTime">
+          <span class="jc">项 目 起 始 时 间</span>
+        </td>
+        <td colspan="2" v-text="downWordData.beginTime.split(' ')[0]"></td>
+        <td ref="endTime"><span class="jc">计划完成时间</span></td>
+        <td colspan="2" v-text="downWordData.endTime.split(' ')[0]"></td>
+      </tr>
+      <tr>
+        <td colspan="2"><span class="jc">项 目 组 人 数</span></td>
+        <td
+          v-text="
+            downWordData.studentS.filter((i) => i.name != '').length +
+            downWordData.teacherS.filter((i) => i.name != '').length
+          "
+        ></td>
+        <td class="jc">参与学生人数</td>
+        <td
+          v-text="downWordData.studentS.filter((i) => i.name != '').length"
+        ></td>
+        <td class="jc">参与教师人数</td>
+        <td
+          v-text="downWordData.teacherS.filter((i) => i.name != '').length"
+        ></td>
+      </tr>
+      <tr id="studentS">
+        <!-- <td :rowspan="downWordData.studentS.length+1" ref="studentS"><span class="jc">项目组</span><br><span class="jc">学生成员</span><br> (至少2 <br>个学院以上<br> 学生构成<br>,团队 5人以上)</td><td>姓名</td><td colspan="2">所在学院/部门/专业</td><td colspan="3">项目组角色分工</td> -->
+        <td
+          :rowspan="downWordData.studentS.length + 1"
+          ref="studentS"
+          style="padding: 20px 30px"
+        >
+          <span class="jc">项目学生成员</span><br />
+          (至少2个学院以上学生构成,其中:
+          1.创新项目、创业训练项目人数为5+3组成,其中不超过5名学生为项目主要成员,由初起二、三、四年级(高起一、二年级)学生组成,3名学生作为后备成员由一、二年级学生组成。
+          2.创业实践项目人数为6+3组成,其中不超过6名学生为初起三、四、五年级(高起二、三年级)学生,3名学生作为后备成员由一、二年级学生组成。
+        </td>
+        <td>姓名</td>
+        <td colspan="2">所在学院/部门/专业</td>
+        <td colspan="3">项目组角色分工</td>
+      </tr>
+      <tr
+        style="position: relative"
+        v-for="(item, index) in downWordData.studentS"
+        :key="index + 'a'"
+      >
+        <td v-html="item.name.replace(/\n/g, '<br>')"></td>
+        <td colspan="2" v-html="item.collage.replace(/\n/g, '<br>')"></td>
+        <td colspan="3" v-html="item.work.replace(/\n/g, '<br>')"></td>
+      </tr>
+      <tr id="teacherS">
+        <!-- <td :rowspan="downWordData.teacherS.length+1" ref="teacherS"><span class="jc">项目组</span><br><span class="jc"> 指导教师</span><br> (2个学院以上, <br>团队2-3人)</td><td>姓名</td><td colspan="2">所在学院/部门/专业</td><td colspan="3">项目组角色分工</td> -->
+        <td
+          :rowspan="downWordData.teacherS.length + 1"
+          ref="teacherS"
+          style="padding: 20px 30px"
+        >
+          <span class="jc">项目组指导教师</span><br />
+          (2个学院以上,
+          2-4名指导教师,指导教师须有中级以上职称或研究生以上学历,创业实践项目除配备2名以上校内指导教师外,还须配备1名企业指导教师。)
+        </td>
+        <td>姓名</td>
+        <td colspan="2">所在学院/部门/专业</td>
+        <td colspan="3">项目组角色分工</td>
+      </tr>
+      <tr
+        style="position: relative !important"
+        v-for="(item, index) in downWordData.teacherS"
+        :key="index + 'b'"
+      >
+        <td v-html="item.name.replace(/\n/g, '<br>')"></td>
+        <td colspan="2" v-html="item.collage.replace(/\n/g, '<br>')"></td>
+        <td colspan="3" v-html="item.work.replace(/\n/g, '<br>')"></td>
+      </tr>
+      <tr id="brief">
+        <td rowspan="5" ref="brief">
+          <span class="jc">研发</span><br /><br />
+          <span class="jc">内容</span>
+        </td>
+        <td colspan="6" class="textLeft">
+          <p>项目简介(200-300字)</p>
+          <div
+            style="word-wrap: break-word; word-break: break-all"
+            v-text="downWordData.brief"
+          ></div>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>项目研发背景</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="back"
+            v-html="downWordData.introduce.back"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>项目创新点</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="innovate"
+            v-html="downWordData.introduce.innovate"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>技术研发路线</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="path"
+            v-html="downWordData.introduce.path"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>项目应用场景</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="scene"
+            v-html="downWordData.introduce.scene"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">商业模式</span><br /><br />
+          <span class="jc">及社会价值</span>
+        </td>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>项目商业模式/社会价值</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="worth"
+            v-html="downWordData.introduce.worth"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">团队</span><br /><br />
+          <span class="jc">优势</span>
+        </td>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>团队构成及优势</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="team"
+            v-html="downWordData.introduce.team"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">研发</span><br /><br />
+          <span class="jc">成本</span>
+        </td>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>研发成本来源及构成</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="cost"
+            v-html="downWordData.introduce.cost"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td rowspan="3">
+          <span class="jc">预期</span><br /><br />
+          <span class="jc">成果</span>
+        </td>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <p>
+            项目预期成果、数量及形式(产品原型/发明专利/双创竞赛/成果转化/社会效益)
+          </p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="expectResults"
+            v-html="downWordData.introduce.expectResults"
+          ></span>
+        </td>
+      </tr>
+      <tr class="textLeft">
+        <td style="text-align: left" colspan="6">
+          <p>学生创客人才培养预期成果、数量(教师填写)</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="expectResultsTeacher"
+            v-html="downWordData.introduce.expectResultsTeacher"
+          ></span>
+        </td>
+      </tr>
+      <tr class="textLeft">
+        <td style="text-align: left" colspan="6">
+          <p>项目预期孵化、转化创业项目情况</p>
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="expectConversion"
+            v-html="downWordData.introduce.expectConversion"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">实施</span><br /><br />
+          <span class="jc">计划</span>
+        </td>
+        <td style="text-align: left" colspan="6" class="textLeft">
+          <span
+            :class="['downImage', download ? 'downloadClass' : '']"
+            tag="plan"
+            v-html="downWordData.introduce.plan"
+          ></span>
+        </td>
+      </tr>
+      <tr>
+        <td><span class="jc">附件上传</span></td>
+        <td colspan="6" class="textLeft">
+          <!-- <el-button type="primary" style="position: absolute; right: 130px; top: 5px" v-if="![1,2].includes($store.state.userInfo.type)" @click="$emit('saveFile')">保存</el-button> -->
+
+          <div
+            style="margin: 0"
+            :class="
+              downWordData.attachment.length > 0 ? 'bigBlock' : 'noFileBox'
+            "
+          >
+            <div
+              class="fileBlock"
+              v-for="(item, index) in downWordData.attachment"
+              :key="index + 'l'"
+            >
+              <div class="fileBox">
+                <div
+                  class="fileBoxLeft"
+                  @click="$emit('fileOption', item, index, '0')"
+                >
+                  <div class="chapter_upload_l_i3"></div>
+                  <div class="titName">{{ item.fileName }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </td>
+      </tr>
+      <tr id="fund">
+        <td rowspan="12" ref="fund">
+          <span class="jc">预算</span><br /><br />
+          <span class="jc">经费</span>
+        </td>
+        <td>总经费</td>
+        <td
+          colspan="5"
+          v-text="reversedMessage == 0 ? '' : reversedMessage + '元'"
+        ></td>
+      </tr>
+      <tr>
+        <td>支出类别</td>
+        <td colspan="2">支出项目</td>
+        <td>金额(元)</td>
+        <td colspan="4">备 注</td>
+      </tr>
+      <tr>
+        <td rowspan="5">直接费用</td>
+      </tr>
+      <tr>
+        <td colspan="2">小型仪器设备费</td>
+        <td v-text="downWordData.fund.device"></td>
+        <td colspan="2">
+          项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用(固定资产除外)。
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">材料费</td>
+        <td v-text="downWordData.fund.Material"></td>
+        <td colspan="2">
+          项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">测试化验加工费</td>
+        <td v-text="downWordData.fund.processing"></td>
+        <td colspan="2">
+          项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">项目协作费</td>
+        <td v-text="downWordData.fund.Collaboration"></td>
+        <td colspan="2">按合同规定支付给协作单位的费用</td>
+      </tr>
+
+      <tr>
+        <td rowspan="5">间接费用</td>
+      </tr>
+      <tr>
+        <td colspan="2">项目成果鉴定费</td>
+        <td v-text="downWordData.fund.APPRAISAL"></td>
+        <td colspan="2">学术会务费、评审费、鉴定费、成果集制作费等费用。</td>
+      </tr>
+      <tr>
+        <td colspan="2">参展参赛费</td>
+        <td v-text="downWordData.fund.entery"></td>
+        <td colspan="2">
+          参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">创客交流活动费</td>
+        <td v-text="downWordData.fund.activities"></td>
+        <td colspan="2">
+          创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">知识产权事务费</td>
+        <td v-text="downWordData.fund.Transaction"></td>
+        <td colspan="2">论文版面费、专利及其他知识产权事务等费用。</td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">所在学院/</span><br /><br />
+          <span class="jc">部门初审意见</span>
+        </td>
+        <td colspan="6" class="textLeft">
+          <div
+            class="reviewComments"
+            v-if="signData && signData.filter((i) => i.type == 4).length > 0"
+          >
+            {{ signData.filter((i) => i.type == 4)[0].text }}
+          </div>
+          <div style="position: absolute; bottom: 20px; right: 100px">
+            <div style="transform: translate(-100px)">
+              负责人签章:{{
+                signData && signData.filter((i) => i.type == 4).length
+                  ? signData.filter((i) => i.type == 4)[0].username
+                  : ""
+              }}
+            </div>
+            <div v-if="signData && signData.filter((i) => i.type == 4).length">
+              {{ signData.filter((i) => i.type == 4)[0].time }}
+            </div>
+            <div v-else>年&nbsp;&nbsp;&nbsp; 月 &nbsp;&nbsp;&nbsp;日</div>
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <td>
+          <span class="jc">创新创业学院</span><br /><br />
+          <span class="jc">审核意见</span>
+        </td>
+        <td colspan="6" class="textLeft">
+          <div
+            class="reviewComments"
+            v-if="signData && signData.filter((i) => i.type == 0).length > 0"
+          >
+            {{ signData.filter((i) => i.type == 0)[0].text }}
+          </div>
+          <div style="position: absolute; bottom: 20px; right: 100px">
+            <div style="transform: translate(-100px)">
+              负责人签章:{{
+                signData && signData.filter((i) => i.type == 0).length
+                  ? signData.filter((i) => i.type == 0)[0].username
+                  : ""
+              }}
+            </div>
+            <div v-if="signData && signData.filter((i) => i.type == 0).length">
+              {{ signData.filter((i) => i.type == 0)[0].time }}
+            </div>
+            <div v-else>年&nbsp;&nbsp;&nbsp; 月 &nbsp;&nbsp;&nbsp;日</div>
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <td><span class="jc">专家意见</span></td>
+        <td colspan="6" class="textLeft">
+          <!-- <el-button type="primary" style="position: absolute; right: 130px; top: 5px" v-if="![1,2].includes($store.state.userInfo.type)" @click="$emit('saveFile')">保存</el-button> -->
+          <!-- <beUpload
+            v-if="![1, 2].includes($store.state.userInfo.type)"
+            style="position: absolute; right: 10px; top: 5px"
+            @getFile="getFile"
+            :navName="'上传文件'"
+            :accept="accept"
+            :progress="progress"
+          ></beUpload>
+          <el-progress
+            v-if="progress.show"
+            :percentage="progress.value"
+            :format="ProgressFormat"
+            style="width: 80%"
+          ></el-progress> -->
+          <div
+            :class="downWordData.opinion.length > 0 ? 'bigBlock' : 'noFileBox'"
+          >
+            <div
+              class="fileBlock"
+              v-for="(item, index) in downWordData.opinion"
+              :key="index + 'l'"
+            >
+              <div class="fileBox">
+                <div
+                  class="fileBoxLeft"
+                  @click="$emit('fileOption', item, index, '0')"
+                >
+                  <!--  @click="checkFile(item.url)" -->
+                  <div class="chapter_upload_l_i3"></div>
+                  <div class="titName">{{ item.fileName }}</div>
+                </div>
+                <!-- <div
+                  class="fileBoxRight"
+                  v-if="![1, 2].includes($store.state.userInfo.type)"
+                >
+                  <div class="chapter_upload_ud" style="z-index: 99">
+                    <div
+                      class="chapter_upload_up"
+                      @click="$emit('fileOption', item, index, '1')"
+                    ></div>
+                    <div
+                      class="chapter_upload_down"
+                      @click="$emit('fileOption', item, index, '2')"
+                    ></div>
+                  </div>
+                  <div
+                    class="chapter_upload_ic_edit"
+                    @click="$emit('fileOption', item, index, '3')"
+                  ></div>
+                  <div
+                    class="chapter_upload_ic_r"
+                    @click="$emit('fileOption', item, index, '4')"
+                  ></div>
+                </div> -->
+              </div>
+            </div>
+          </div>
+        </td>
+      </tr>
+      <tr>
+        <td><span class="jc">学校终审意见</span></td>
+        <td colspan="6" class="textLeft">
+          <div
+            class="reviewComments"
+            v-if="signData && signData.filter((i) => i.type == 3).length > 0"
+          >
+            {{ signData.filter((i) => i.type == 3)[0].text }}
+          </div>
+          <div style="position: absolute; bottom: 20px; right: 100px">
+            <div style="transform: translate(-100px)">
+              负责人签章:{{
+                signData && signData.filter((i) => i.type == 3).length
+                  ? signData.filter((i) => i.type == 3)[0].username
+                  : ""
+              }}
+            </div>
+            <div v-if="signData && signData.filter((i) => i.type == 3).length">
+              {{ signData.filter((i) => i.type == 3)[0].time }}
+            </div>
+            <div v-else>年&nbsp;&nbsp;&nbsp; 月 &nbsp;&nbsp;&nbsp;日</div>
+          </div>
+        </td>
+      </tr>
+      <div class="notes">
+        <span>备注:</span>
+        <span>1.表格可顺延或另附页。</span>
+        <span>2.优先支持项目需提供与研发项目相关的实证材料并查看原件。</span>
+      </div>
+    </table>
+
+    <!-- <button @click="downpdf">pdf</button> -->
+  </div>
+</template>
+
+<script>
+import beUpload from "@/components/tool/beUpload";
+
+// import {downloadPDF} from '@/components/tool/pdf'
+
+export default {
+  emit: ["getFile", "fileOption", "saveFile"],
+  props: ["reversedMessage", "downWordData", "signData", "download"],
+  components: {
+    beUpload,
+  },
+  data() {
+    return {
+      accept: "*",
+      progress: {
+        value: 0,
+        show: false,
+      },
+    };
+  },
+  methods: {
+    getFile(file) {
+      this.$emit("getFile", file);
+      this.progress.show = false;
+    },
+    ProgressFormat(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    // downpdf(){
+    //     downloadPDF(this.$refs.pdf)
+    // },
+  },
+  computed: {
+    //经费总合
+  },
+  mounted() {
+		// 调用window的打印
+		this.$nextTick(()=>{
+			setTimeout(()=>{
+				window.print();
+			},1000)
+			
+		})
+	},
+};
+</script>
+
+<style lang="less" scoped>
+#studentProjectWord {
+  width: 100%;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  background-color: #ffff;
+  margin: 0;
+	box-sizing: border-box;
+	// padding: 0 40px;
+  font-size: 18px !important;
+  // font-family: 'FangSong';
+  
+  #title {
+    width: 100%;
+    line-height: 40px;
+    height: 150px;
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    position: relative;
+    // margin-top: 40px;
+    .school {
+      font-size: 2.5em;
+      font-weight: bold;
+      letter-spacing: 20px;
+      margin-bottom: 10px;
+    }
+    .wordTitle {
+      font-size: 2em;
+      letter-spacing: 0.15em;
+      // margin-bottom: 40px;
+    }
+    .date {
+      font-size: 1em;
+      position: absolute;
+      bottom: 0;
+      right: 100px;
+      font-weight: bold;
+    }
+  }
+	
+	.pdfTable {
+    //查看详情已完结页面的下载pdf的table样式
+    border: none;
+    border-top: solid 1px black;
+    // border-right:  solid 1px black;
+    border-left: solid 1px black;
+    position: relative;
+
+    font-size: 20px;
+    width: 100% !important;
+		min-width: auto;
+		max-width: auto;
+		position: relative;
+  color: black;
+  width: 90%;
+  margin: 0 auto;
+	margin-top: 150px;
+  margin-bottom: 20px;
+  // font-size: 19px;
+  // font-family: \5b8b\4f53;
+    .jc {
+      font-weight: 600;
+    }
+    .pdfTit {
+      position: absolute;
+      top: -140px;
+      left: 50%;
+      width: 100%;
+      transform: translate(-50%);
+      display: flex;
+      justify-content: center;
+      flex-wrap: wrap;
+      .school {
+        font-weight: 600;
+        font-size: 44px;
+        letter-spacing: 10px;
+      }
+      .wordTitle {
+        font-weight: 500;
+        font-size: 32px;
+        width: 100%;
+        text-align: center;
+        letter-spacing: 5px;
+        margin-bottom: 10px;
+      }
+      .date {
+        font-weight: bold;
+        font-size: 20px;
+        transform: translate(400px);
+      }
+    }
+
+    .notes {
+      position: absolute;
+      width: 100%;
+      display: flex;
+      flex-direction: column;
+    }
+    .checkAreaBlc {
+      text-align: left;
+      margin: 5px 0 5px 40px;
+    }
+    .textLeft {
+      text-align: left;
+      vertical-align: top;
+      position: relative;
+      max-width: 300px;
+      height: 300px;
+      .reviewComments {
+        margin: 30px 30px 80px 30px;
+      }
+      // white-space: nowrap;
+      p:first-child {
+        font-weight: 600;
+      }
+      div > p {
+        font-weight: unset !important;
+      }
+      span > p {
+        font-weight: unset !important;
+      }
+      span {
+        // white-space: nowrap
+        word-wrap: break-word;
+        word-break: break-all;
+      }
+      :deep(.el-textarea__inner) {
+        border: none;
+        border-radius: 0px;
+        text-align: left !important;
+        font-size: 16px;
+      }
+    }
+    tr {
+      // position: relative;
+      // height: 80px;
+      td {
+        border: none;
+        border-bottom: solid 1px black;
+        border-right: solid 1px black;
+        height: 50px;
+        text-align: center;
+        line-height: 30px;
+        min-width: 160px;
+        max-width: 250px;
+        box-sizing: border-box;
+        padding: 5px;
+        :deep(.el-select .el-input .el-select__caret) {
+          display: none;
+        }
+        :deep(.el-textarea__inner) {
+          // padding: 0;
+          border: none;
+          border-radius: 0px;
+          text-align: center;
+          font-size: 16px;
+        }
+        :deep(.el-input__inner) {
+          border: none;
+          border-radius: 0px;
+          text-align: center;
+          font-size: 16px;
+        }
+        :deep(input)::-webkit-outer-spin-button,
+        :deep(input)::-webkit-inner-spin-button {
+          -webkit-appearance: none;
+        }
+        :deep(input)[type="number"] {
+          -moz-appearance: textfield;
+        }
+      }
+    }
+  }
+  tr td {
+    // border: none;
+    // border-top: solid 1px black;
+    // // border-left: solid 1px black;
+
+    font-size: 18px;
+    height: 50px;
+    text-align: center;
+    line-height: 30px;
+    width: 14.3%;
+  }
+  // .table{
+  //     border: none;
+  //     border-top: solid 1px black;
+  //     border-right:  solid 1px black;
+  //     border-left:  solid 1px black;
+  .textLeft {
+    text-align: left;
+    vertical-align: top;
+    position: relative;
+    max-width: 100%;
+    height: 200px;
+  }
+  //       :deep(.el-textarea__inner){
+  //         border: none ;
+  //         border-radius: 0px;
+  //         text-align: left !important;
+  //         font-size: 16px;
+  //       }
+  //     }
+  //     tr{
+  //       position: relative;
+  // td{
+  //   border: none;
+  //   border-bottom: solid 1px black;
+  //   border-right: solid 1px black;
+  //   height: 50px;
+  //   text-align: center;
+  //   line-height: 30px;
+  //   min-width: 80px;
+  //   box-sizing: border-box;
+  //   padding: 5px;
+  // }
+  //       p{
+  //         font-weight: 600;
+  //       }
+  //       :deep(.el-select .el-input .el-select__caret){
+  //         display: none;
+  //       }
+  //       :deep(.el-textarea__inner){
+  //         // padding: 0;
+  //         border: none ;
+  //         border-radius: 0px;
+  //         text-align: center;
+  //         font-size: 16px;
+  //       }
+  //       :deep(.el-input__inner){
+  //         border: none ;
+  //         border-radius: 0px;
+  //         text-align: center;
+  //         font-size: 16px;
+  //       }
+  //       :deep(input)::-webkit-outer-spin-button,
+  //       :deep(input)::-webkit-inner-spin-button {
+  //         -webkit-appearance: none;
+  //       }
+  //       :deep(input)[type="number"]{
+  //           -moz-appearance: textfield;
+  //       }
+  //     }
+  //   }
+
+  // }
+  // .notes{
+  //   width: 100%;
+  //   display: flex;
+  //   flex-direction:column;
+  // }
+}
+// .checkArea{
+//     span{margin-left: 50px;}
+// }
+.jc {
+  font-weight: 600;
+}
+.noFileBox {
+  width: 98%;
+  min-height: 200px;
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+}
+.bigBlock {
+  width: 98%;
+  min-height: 200px;
+  display: flex;
+  flex-direction: column;
+  flex-wrap: nowrap;
+  align-items: flex-start;
+  border: 1px solid #cad1dc;
+  border-radius: 4px;
+  padding: 10px;
+  margin: 50px 0 0 0;
+  .fileBlock {
+    width: 98%;
+    margin-right: 20px;
+    position: relative;
+    border-radius: 5%;
+    padding: 5px 0 5px 0;
+    border-bottom: 1px solid #cad1dc;
+    .fileBox {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      justify-content: space-between;
+      align-items: center;
+
+      .fileBoxLeft {
+        cursor: pointer;
+        display: flex;
+        flex-direction: row;
+        flex-wrap: nowrap;
+        align-items: center;
+        .chapter_upload_l_i3 {
+          width: 15px;
+          height: 15px;
+          background-repeat: no-repeat;
+          background-size: 100% 100%;
+          background-image: url("../../../assets/img/u_video.png");
+        }
+        .titName {
+          width: calc(100% - 15px);
+          white-space: nowrap;
+          overflow: hidden;
+          text-overflow: ellipsis;
+          word-break: break-word;
+          text-align: left;
+          margin-left: 10px;
+          max-width: 800px;
+        }
+      }
+      .fileBoxRight {
+        cursor: pointer;
+        display: flex;
+        flex-direction: row;
+        flex-wrap: nowrap;
+        align-items: center;
+        .chapter_upload_ud {
+          display: flex;
+          flex-direction: row;
+          justify-content: center;
+          margin: 0 10px 0 0;
+          .chapter_upload_up {
+            margin-right: 10px !important;
+          }
+          .chapter_upload_down,
+          .chapter_upload_up {
+            width: 20px;
+            height: 20px;
+            background: #e4eaf2;
+            cursor: pointer;
+            margin: 0 auto;
+            border-radius: 5px;
+            display: flex;
+            justify-content: center;
+            align-items: center;
+          }
+        }
+        .chapter_upload_up::after,
+        .chapter_upload_down::after {
+          content: "";
+          background-image: url("../../../assets/img/downBtn.png");
+          width: 13px;
+          height: 13px;
+          background-size: 100% 100%;
+          display: block;
+        }
+
+        .chapter_upload_up::after {
+          background-image: url("../../../assets/img/upBtn.png") !important;
+        }
+        .chapter_upload_ic_edit {
+          width: 18px;
+          height: 18px;
+          background-repeat: no-repeat;
+          background-size: 100% 100%;
+          margin-right: 10px;
+          background-image: url("../../../assets/img/edit_u.png");
+        }
+        .chapter_upload_ic_r {
+          width: 18px;
+          height: 18px;
+          background-repeat: no-repeat;
+          background-size: 100% 100%;
+          background-image: url("../../../assets/img/delete_u.png");
+        }
+      }
+    }
+  }
+  .masking-out {
+    width: 100px;
+    height: 135px;
+    position: absolute;
+    top: 0;
+    left: 0;
+    display: none;
+    border-radius: 5%;
+    background: #00000053;
+    .delete {
+      cursor: pointer;
+      margin-left: 50%;
+      margin-top: 50%;
+      transform: translate(-50%, -50%);
+    }
+    .delete:hover {
+      color: #fff;
+    }
+  }
+  .fileBlock:hover .masking-out {
+    display: block;
+  }
+}
+.downloadClass {
+  font-size: 23.5pt !important;
+  font-family: "FangSong" !important;
+  color: black !important;
+  line-height: 30pt !important;
+}
+
+@media print {
+  @page {
+    margin: 20px;
+    /* 设置页边距 */
+  }
+
+  // body {
+  //   padding: 50px 0;
+  //   /* 留出页脚空间 */
+  // }
+  // header {
+  //   position: fixed;
+  //   /* 固定页脚位置 */
+  //   top: 0;
+  //   /* 置于页面底部 */
+  //   width: 100%;
+  //   /* 宽度占满整个页面 */
+  //   height: 50px;
+  //   /* 设置页脚高度 */
+  //   text-align: center;
+  //   /* 居中对齐 */
+  //   font-size: 20px;
+  //   /* 设置字号 */
+  //   display: block;
+  //   line-height: 50px;
+  // }
+  // footer {
+  //   position: fixed;
+  //   /* 固定页脚位置 */
+  //   bottom: 0;
+  //   /* 置于页面底部 */
+  //   width: 100%;
+  //   /* 宽度占满整个页面 */
+  //   height: 50px;
+  //   /* 设置页脚高度 */
+  //   text-align: center;
+  //   /* 居中对齐 */
+  //   font-size: 20px;
+  //   /* 设置字号 */
+  //   display: block;
+  //   line-height: 50px;
+  // }
+}
+html,
+body {
+  overflow: unset;
+  .dialog_diy {
+    /deep/.el-dialog__header {
+      background: #3c3c3c !important;
+      padding: 15px 20px;
+    }
+    /deep/.el-dialog__title {
+      color: #fff;
+    }
+    /deep/.el-dialog__headerbtn {
+      top: 19px;
+    }
+    /deep/.el-dialog__headerbtn .el-dialog__close {
+      color: #fff;
+    }
+    /deep/.el-dialog__headerbtn .el-dialog__close:hover {
+      color: #fff;
+    }
+    /deep/.el-dialog__body,
+    /deep/.el-dialog__footer {
+      background: #fafafa;
+    }
+  }
+}
+</style>

+ 25 - 0
src/views/printView/projectPrint.vue

@@ -0,0 +1,25 @@
+<template>
+  <div>
+    <!-- 特色创客空间建设项目 -->
+    <!-- <MakerSpaceWordDetail
+      v-if="$route.query['tid'] == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+    /> -->
+
+    <!-- 学生创客项目 -->
+    <studentProjectWordDetail
+      v-if="$route.query['tid'] == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+    />
+  </div>
+</template>
+
+<script>
+// import MakerSpaceWordDetail from "./components/MakerSpaceWordDetail.vue";
+import studentProjectWordDetail from "./components/studentProjectWordDetail.vue";
+export default {
+  components: { 
+		// MakerSpaceWordDetail, 
+		studentProjectWordDetail },
+};
+</script>
+
+<style lang="less"></style>

+ 8 - 4
src/views/projectApply/components/studentProjectWordDetail.vue

@@ -30,12 +30,12 @@
         type="primary"
         >下载文件</el-button
       >
-      <!-- <el-button
+      <el-button
         style="width: 140px; margin: 1cqh"
-        @click="downloadDig = true"
+        @click="downloadPDFOpen()"
         type="primary"
         >下载PDF</el-button
-      > -->
+      >
       <el-button
         style="width: 120px; margin: 10px"
         @click="test"
@@ -1205,7 +1205,11 @@ export default {
 			if(!this.updateFile.fileName)return this.$message.error("请输入文件名称");
 			this.wordData.attachment[this.updateFile.index].fileName = this.updateFile.fileName;
 			this.dialogVisibleUpdateFile2 = false;
-		}
+		},
+		//打开下载pdf弹窗
+		downloadPDFOpen(){
+			window.open(`/projectPrint?tid=${this.$route.query['tid']}&pid=${this.$route.query['pid']}`);
+		},
 		// downloadWord2() {
     //   // downloadPDF(
     //   //   this.$refs.myChild.$refs.pdfShow,

+ 1 - 0
src/views/projectApply/projectApplication.vue

@@ -1047,6 +1047,7 @@ export default {
             st: this.selectInp.state, //审核状态
             year: this.selectInp.year,
             textInp: encodeURIComponent(this.input),
+						promotion: this.isPromotion,
             page: 1, //当前页
             lim: 99999999, //限制获取几条数据
           };