Browse Source

代办公文

SanHQin 2 months ago
parent
commit
2333cba9d7

+ 29 - 11
src/views/commission/commission.vue

@@ -52,14 +52,22 @@
             @change="getData"
             placeholder="请选择"
           >
-            <el-option label="所有分类" value="" />
+            <el-option label="所有审批" value="" />
             <el-option
+              v-for="item in options2"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+
+            <!-- <el-option
               v-for="item in options2"
               :key="item.typeid"
               :label="item.name"
               :value="item.typeid"
             >
-            </el-option>
+            </el-option> -->
           </el-select>
         </div>
 
@@ -201,7 +209,9 @@
 				<template #default="scope">
 					<div>
 						<!-- {{ scope.row.isupload+"-"+scope.row.isReturn }} -->
-						<span>{{ (scope.row.isupload==classType[$store.state.userInfo.type] && scope.row.isReturn!=classType[$store.state.userInfo.type])?'待审核':'审核完成' }}</span>
+						<span v-show="[5,6,7,2].includes(scope.row.isupload)">{{ (scope.row.isupload==classType[$store.state.userInfo.type] && scope.row.isReturn!=classType[$store.state.userInfo.type])?'待审核':'审核完成' }}</span>
+            <span v-show="[3,8,9,4].includes(scope.row.isupload)">{{ (scope.row.isupload==classType2[$store.state.userInfo.type] && scope.row.isReturn!=classType2[$store.state.userInfo.type])?'待审核':'审核完成' }}</span>
+
               <!-- <span v-if="scope.row.isupload == 0">未审核</span>
               <span v-if="scope.row.isupload == 1">审核中</span>
               <span v-if="scope.row.isupload == 2">进行中</span>
@@ -254,7 +264,7 @@
             <div class="operations" style="justify-content: center">
               <el-button
                 type="primary"
-                @click="rsBtn(scope.row['courseId'], scope.row['typeid'])"
+                @click="rsBtn(scope.row['courseId'], scope.row['typeid'],scope.row['isupload'])"
                 >查看详情</el-button
               >
             </div>
@@ -277,7 +287,7 @@
     <!-- 分页结束 -->
   </div>
 </template>
-  
+
   <script>
 export default {
   data() {
@@ -286,7 +296,10 @@ export default {
       items: [], //项目展示小方块
       options: [],
       options1: [],
-      options2: [],
+      options2: [
+        {value:1,label:"申报"},
+        {value:2,label:"结项"},
+      ],
       options3: [],
       options4: [],
 			options5:[//状态
@@ -315,6 +328,11 @@ export default {
 				'3':7,
 				'4':5
 			},
+      classType2:{
+        '0':8,
+        '3':9,
+        '4':3
+      },
       loading: false,
       pavalues: {
         value: "",
@@ -337,7 +355,7 @@ export default {
 		// 单元格被点击
 		cellProjectClick(row, column, cell, event){
 			if(column.property!="operation"){
-				this.rsBtn(row.courseId,row.typeid)
+				this.rsBtn(row.courseId,row.typeid,row.isupload)
 			}
 		},
     handleCurrentChange(val) {
@@ -346,8 +364,8 @@ export default {
       this.Page.currentPage = val;
       this.getData();
     },
-    rsBtn(pid, tid) {
-      this.$router.push(`/commissionDetailMain?pid=${pid}&tid=${tid}`);
+    rsBtn(pid, tid,isupload) {
+      this.$router.push(`/commissionDetailMain?pid=${pid}&tid=${tid}&isupload=${isupload}`);
     },
     getData() {
 			if(this.loading)return
@@ -382,7 +400,7 @@ export default {
             this.items = data[0];
             this.options = data[1];
             this.options1 = data[2];
-            this.options2 = data[3];
+            // this.options2 = data[3];
             this.options3 = data[4];
             this.options4 = data[6];
             if (
@@ -415,7 +433,7 @@ export default {
 	}
 };
 </script>
-  
+
   <style lang="less" scoped>
 	/deep/.el-table__row{
 		.el-table__cell{

+ 34 - 16
src/views/commission/commissionDetailMain.vue

@@ -8,45 +8,59 @@
 
     <!-- 跳转导航开始 -->
         <div class="AppBar">
-            <div v-for="(item,index) in items" :key="index" @click="goto(index)" class="AppBarActive">
+            <div v-for="(item,index) in items" :key="index" @click="goto(index)" v-if="item.show.includes(isupload)" class="AppBarActive">
                 {{ item.tit }}
                 <div :class="index==show?item.cl:''"></div>
             </div>
         </div>
-        <!-- 项目查看学生 -->
-        <projectLookstudnt v-if="this.show==1 && this.$route.query['tid']=='5e21b204-c206-11ed-a4cd-509a4c5b67cf'"></projectLookstudnt>
+        <!-- 项目申报查看学生 -->
+        <projectLookstudnt v-if="this.show==2 && this.$route.query['tid']=='5e21b204-c206-11ed-a4cd-509a4c5b67cf' && Declaration.includes(isupload)"></projectLookstudnt>
 
-        <!-- 项目查看创客空间 -->
-        <projectLookSpace v-if="this.show==1 && this.$route.query['tid']=='5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"></projectLookSpace>
+        <!-- 项目申报查看创客空间 -->
+        <projectLookSpace v-if="this.show==2 && this.$route.query['tid']=='5f7a66d5-c206-11ed-a4cd-509a4c5b67cf' && Declaration.includes(isupload)"></projectLookSpace>
         <!-- 项目下载 -->
-        <projectDownload v-if="this.show==2"></projectDownload>
+        <!-- <projectDownload v-if="this.show==2"></projectDownload> -->
 
-        <!-- 项目结项书 -->
+        <!-- 项目申报审批 -->
         <projectBook v-if="this.show==0"></projectBook>
+
+        <!-- 项目结项审批 -->
+        <projectBookCompletion v-if="this.show == 1"></projectBookCompletion>
+
+        <!-- 项目申报查看学生 -->
+        <Closingstatement1 v-if="this.show==2 && this.$route.query['tid']=='5e21b204-c206-11ed-a4cd-509a4c5b67cf' && completion.includes(isupload)"/>
     </div>
 </template>
 
 
 <script>
 import projectBook from './components/projectBook.vue'
-import projectDownload from './components/projectDownload.vue'
+import projectBookCompletion from './components/projectBookCompletion.vue'
+// import projectDownload from './components/projectDownload.vue'
 import projectLookstudnt from './components/projectLookstudnt.vue'
 import projectLookSpace from './components/projectLookSpace.vue'
+import Closingstatement1 from './components/Closingstatement1.vue'
     export default {
         components:{
             projectBook,
-            projectDownload,
+            // projectDownload,
             projectLookstudnt,
-            projectLookSpace
+            projectLookSpace,
+            projectBookCompletion,
+            Closingstatement1
         },
         data() {
             return {
                 show:0,
                 items:[
-                    {tit:'项目申报书',cl:'pr1TitBass'},
-                    {tit:'项目查看',cl:'pr1TitBass'},
+                    {tit:'项目申报审批',cl:'pr1TitBass',show:[6,7,5,2]},
+                    {tit:'项目结项审批',cl:'pr1TitBass',show:[3,8,9,4]},
+                    {tit:'项目查看',cl:'pr1TitBass',show:[2,3,4,5,6,7,8,9]},
                     // {tit:'项目下载',cl:'pr1TitBass'},
-                ]
+                ],
+                Declaration:[6,7,5,2],
+                completion:[3,8,9,4],
+                isupload:null
             }
         },
         methods:{
@@ -56,15 +70,19 @@ import projectLookSpace from './components/projectLookSpace.vue'
             },
         },
         mounted() {
-            console.log(this.$route.query['tid']);
+          this.isupload = parseInt(this.$route.query['isupload'])
+					if(this.Declaration.includes(this.isupload))this.show = 0;
+          if(this.completion.includes(this.isupload))this.show = 1;
         },
 				activated(){
-					this.show = 0;
+          this.isupload = parseInt(this.$route.query['isupload'])
+					if(this.Declaration.includes(this.isupload))this.show = 0;
+          if(this.completion.includes(this.isupload))this.show = 1;
 				}
     }
 </script>
 
-<style lang="less" scoped> 
+<style lang="less" scoped>
 #commissionDetailMain{
     display: flex;
     flex-direction: column;

+ 2640 - 0
src/views/commission/components/Closingstatement.vue

@@ -0,0 +1,2640 @@
+<template>
+  <!-- 结项书组件 -->
+  <div ref="downPDF" v-if="myArrayProp.length">
+    <!-- <header>创新创业学院管理系统</header> -->
+    <!-- <div class="ProNumber">项目编号:{{ myArrayProp[0].ProjectNo }}</div> -->
+
+    <div class="onePage">
+      <div class="titSchool">深圳城市职业学院(深圳技师学院)</div>
+      <div class="title">校级创客项目结题申请书</div>
+      <div class="basicInformation">
+        <span>项目名称</span>
+        <div class="line">{{ myArrayProp[0].title }}</div>
+      </div>
+      <div class="basicInformation">
+        <span>负责人</span>
+        <div class="line">{{ myArrayProp[0].pro_leader }}</div>
+      </div>
+      <div class="basicInformation">
+        <span>指导教师</span>
+        <div class="line" style="position: relative">
+          <span
+            v-for="(item, index) in myArrayProp[0].course_teacher"
+            :key="index"
+            >{{ item.name }}</span
+          >
+          <span style="position: absolute; right: -100px"
+            >{{
+              myArrayProp[0].course_teacher.filter((i) => i.name != "").length
+            }}(人)</span
+          >
+        </div>
+      </div>
+      <div class="basicInformation">
+        <span>申请部门</span>
+        <div class="line">{{ myArrayProp[0].name }}</div>
+      </div>
+      <div class="basicInformation">
+        <span>申请日期</span>
+        <div class="line">{{ myArrayProp[0].applyProjectTime }}</div>
+      </div>
+
+      <div
+        style="
+          font-size: 22px;
+          font-family: \4eff\5b8b;
+          font-weight: bold;
+          margin-bottom: 10px;
+        "
+      >
+        创新创业学院制
+      </div>
+      <div style="font-size: 22px; font-family: \4eff\5b8b; font-weight: bold">
+        {{ nowTime }}
+      </div>
+    </div>
+    <!-- <table border="1" cellspacing="0" ref="tableBox" v-show="!isDownPdf"> -->
+    <table border="1" cellspacing="0" ref="tableBox">
+      <!-- <tr v-if="false">
+        <td v-for="i in 8" :key="i">i</td>
+      </tr> -->
+      <tr>
+        <td colspan="2">项目名称</td>
+        <td colspan="6">
+          {{ myArrayProp[0].title }}
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">大创项目</td>
+        <td>学生申报</td>
+        <td colspan="2" style="padding: 0 30px; box-sizing: border-box">
+          <span style="margin-right: 10px"
+            >{{
+              myArrayProp[0].typeName == "4a4e2cfe-e1a1-11ee-81d4-00ff5c7a43f5"
+                ? "☑"
+                : "□"
+            }}创新训练项目</span
+          >
+          <span style="margin-right: 10px"
+            >{{
+              myArrayProp[0].typeName == "56f0ad8d-e1a1-11ee-81d4-00ff5c7a43f5"
+                ? "☑"
+                : "□"
+            }}创业训练项目</span
+          >
+          <span style="margin-right: 10px"
+            >{{
+              myArrayProp[0].typeName == "ed917c55-f51d-11ed-a3f6-509a4c5b67cf"
+                ? "☑"
+                : "□"
+            }}创业实践项目</span
+          >
+          <!-- <span
+            >{{
+              (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
+                ? "☑"
+                : "□")
+            }}创意组</span
+          >
+          <span style="margin-left: 15px"
+            >{{
+              (myArrayProp[0].typeName = "f3068e26-f51d-11ed-a3f6-509a4c5b67cf"
+                ? "□"
+                : "☑")
+            }}初创组</span
+          > -->
+        </td>
+        <td>学院申报</td>
+        <td colspan="2"><span>□创客空间建设</span></td>
+      </tr>
+      <tr>
+        <td colspan="2">项目级别</td>
+        <td colspan="8">
+          □ 一般资助项目   □ 重点资助项目    □ 特别申报项目
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">项目类别</td>
+        <td colspan="8">
+          □技术创新项目  □ 公益创新项目  □ 非遗文创项目  □ 乡村振兴项目
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">优先支持项目 <br />(可多选)</td>
+        <td
+          colspan="8"
+          v-if="myArrayProp[0].multiSelectProject != null"
+          style="height: auto; text-align: left"
+        >
+          <!-- {{
+            myArrayProp[0].multiSelectProject.includes("1") ? "☑" : "□"
+          }}大赛选拔项目
+          {{ myArrayProp[0].multiSelectProject.includes("2") ? "☑" : "□" }}
+          落地注册项目
+          {{ myArrayProp[0].multiSelectProject.includes("3") ? "☑" : "□" }}
+          社会征集项目
+          {{ myArrayProp[0].multiSelectProject.includes("4") ? "☑" : "□" }}
+          产业命题项目 -->
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('1') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>团队合作项目、跨学科合作项目。</span>
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('2') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span
+              >科技创新、低空经济、银发经济、乡村振兴、助残助学、非遗文创等新技术、新产业、新业态、新模式方面的项目。</span
+            >
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('3') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>企业真实生产经营项目或外包服务项目。</span>
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('4') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>社会征集项目、产业命题项目。</span>
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('5') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>近两年内参与校级以上创新创业大赛并获奖的项目。</span>
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('6') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>美丽校园改造计划中的校园智能产品及文创产品的研发项目。</span>
+          </div>
+          <div class="checkAreaBlc">
+            <span
+              v-text="
+                myArrayProp[0]['multiSelectProject'].includes('7') ? '☑ ' : '□ '
+              "
+            ></span
+            ><span>申报人为港澳籍、学校扶贫班及在校贫困生申报的项目</span>
+          </div>
+        </td>
+        <td colspan="8" v-if="myArrayProp[0].multiSelectProject == null">
+          □大赛选拔项目 □落地注册项目 □ 社会征集项目 □产业命题项目
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">美丽校园改造项目 <br />(单选)</td>
+        <td colspan="8">
+          {{
+            myArrayProp[0].schoolRemould.includes("1") ? "☑" : "□"
+          }}校园安全项目
+          {{
+            myArrayProp[0].schoolRemould.includes("2") ? "☑" : "□"
+          }}环境治理项目
+          {{ myArrayProp[0].schoolRemould.includes("3") ? "☑" : "□" }}
+          校园服务项目
+          {{ myArrayProp[0].schoolRemould.includes("4") ? "☑" : "□" }}
+          文创装置项目
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">项目负责人身份 <br />(单选)</td>
+        <td colspan="8">□在校学生 □ 孵化基地创业学生 □ 二级学院项目负责人</td>
+      </tr>
+      <tr>
+        <td colspan="2">项目负责人信息</td>
+        <td>姓名</td>
+        <td>
+          {{ myArrayProp[0].pro_leader }}
+        </td>
+        <td>所在学院</td>
+        <td>
+          <div v-html="myArrayProp[0].name"></div>
+          <!-- <el-input
+            type="textarea"
+            autosize
+            style="width: 100%"
+            resize="none"
+            placeholder=""
+            v-model="myArrayProp[0].name"
+          >
+          </el-input> -->
+        </td>
+        <td>联系电话</td>
+        <td>
+          <!-- 16625153232 -->
+          {{ myArrayProp[0].phone }}
+        </td>
+      </tr>
+      <tr>
+        <td colspan="2">项目组人数</td>
+        <td colspan="2">
+          {{
+            myArrayProp[0].course_student.filter((i) => i.name != "").length +
+            myArrayProp[0].course_teacher.filter((i) => i.name != "").length
+          }}人
+        </td>
+        <td>学生人数</td>
+        <td>
+          {{ myArrayProp[0].course_student.filter((i) => i.name != "").length }}
+        </td>
+        <td>教师人数</td>
+        <td>
+          {{ myArrayProp[0].course_teacher.filter((i) => i.name != "").length }}
+        </td>
+      </tr>
+      <tr>
+        <td style="font-size: 21px">项目起始时间</td>
+        <td colspan="2">{{ myArrayProp[0].begin_at }}</td>
+        <td style="font-size: 21px">项目完成时间</td>
+        <td colspan="2">{{ myArrayProp[0].plannedEnd_at }}</td>
+        <td>预算经费</td>
+        <td>{{ myArrayProp[0].fund }}元</td>
+      </tr>
+      <!-- 学生创客项目 -->
+      <tbody>
+        <tr
+          v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td
+            class="vertical"
+            :rowspan="myArrayProp[0].course_student.length + 1"
+          >
+            学生团队成员
+          </td>
+          <td>姓名</td>
+          <td colspan="2">所在学院及专业</td>
+          <td colspan="4">项目分工</td>
+        </tr>
+        <tr
+          v-for="(item, index) in myArrayProp[0].course_student"
+          :key="index + 'a'"
+          v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td><span v-text="item.name"></span></td>
+          <td colspan="2"><span v-html="item.collage"></span></td>
+          <td colspan="4"><span v-text="item.work"></span></td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr
+          v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td
+            class="vertical"
+            :rowspan="myArrayProp[0].course_teacher.length + 1"
+          >
+            项目指导教师
+          </td>
+          <td>姓名</td>
+          <td colspan="2">所在学院及专业</td>
+          <td colspan="4">项目分工</td>
+        </tr>
+        <tr
+          v-for="(item, index) in myArrayProp[0].course_teacher"
+          :key="index + 'b'"
+          v-if="myArrayProp[0].typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td><span v-text="item.name"></span></td>
+          <td colspan="2"><span v-html="item.collage"></span></td>
+          <td colspan="4"><span v-text="item.work"></span></td>
+        </tr>
+      </tbody>
+      <tbody>
+        <!-- 特色创客空间建设项目 -->
+        <tr
+          v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td
+            class="vertical"
+            :rowspan="myArrayProp[0].course_student.length + 1"
+          >
+            学生团队成员
+          </td>
+          <td>姓名</td>
+          <td>所在学院及专业</td>
+          <td>年龄</td>
+          <td colspan="5">项目组任务分工</td>
+        </tr>
+        <tr
+          v-for="(item, index) in myArrayProp[0].course_student"
+          :key="index + 'c'"
+          v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td><span v-text="item.name"></span></td>
+          <td><span v-html="item.class"></span></td>
+          <td><span v-html="item.age"></span></td>
+          <td colspan="5"><span v-text="item.work"></span></td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr
+          v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td
+            class="vertical"
+            :rowspan="myArrayProp[0].course_teacher.length + 1"
+          >
+            项目指导教师
+          </td>
+          <td>姓名</td>
+          <td>专业</td>
+          <td>职称</td>
+          <td>学历</td>
+          <td>所在教研室</td>
+          <td colspan="5">项目角色分工</td>
+        </tr>
+        <tr
+          v-for="(item, index) in myArrayProp[0].course_teacher"
+          :key="index + 'd'"
+          v-if="myArrayProp[0].typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          <td><span v-text="item.name"></span></td>
+          <td><span v-html="item.speciality"></span></td>
+          <td><span v-html="item.title"></span></td>
+          <td><span v-html="item.education"></span></td>
+          <td><span v-html="item.section"></span></td>
+          <td colspan="5"><span v-text="item.work"></span></td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr>
+          <td class="vertical" rowspan="6">项目研发内容及目标</td>
+        </tr>
+        <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>一、项目研发内容简介(200字以内)</p>
+            <div
+              class="textCss"
+              v-html="myArrayProp[0].brief.replace(/ /g, '&nbsp;')"
+            ></div>
+            <!-- <el-input
+            type="textarea"
+            maxlength="200"
+            show-word-limit
+            :autosize="{ minRows: 6 }"
+            placeholder="请输入内容"
+            v-model="myArrayProp[0].brief"
+          >
+          </el-input> -->
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>目标计划:</p>
+            <div
+              v-if="isDownPdf"
+              class="textCss"
+              v-html="
+                myArrayProp[0]['ClosingstatementData'].plan.replace(
+                  / /g,
+                  '&nbsp;'
+                )
+              "
+            ></div>
+            <el-input
+              v-else
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              v-model="myArrayProp[0]['ClosingstatementData'].plan"
+            >
+            </el-input>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>二、拟解决的关键技术问题</p>
+            <div
+              v-if="isDownPdf"
+              class="textCss"
+              v-html="
+                myArrayProp[0]['ClosingstatementData'].technology.replace(
+                  / /g,
+                  '&nbsp;'
+                )
+              "
+            ></div>
+            <el-input
+              v-else
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              v-model="myArrayProp[0]['ClosingstatementData'].technology"
+            >
+            </el-input>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>三、项目的商业(公益)价值评估</p>
+            <div
+              v-if="isDownPdf"
+              class="textCss"
+              v-html="
+                myArrayProp[0]['ClosingstatementData'].business.replace(
+                  / /g,
+                  '&nbsp;'
+                )
+              "
+            ></div>
+            <el-input
+              v-else
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              v-model="myArrayProp[0]['ClosingstatementData'].business"
+            >
+            </el-input>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>四、项目创新点评估</p>
+            <div
+              v-if="isDownPdf"
+              class="textCss"
+              v-html="
+                myArrayProp[0]['ClosingstatementData'].innovate.replace(
+                  / /g,
+                  '&nbsp;'
+                )
+              "
+            ></div>
+            <el-input
+              v-else
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              v-model="myArrayProp[0]['ClosingstatementData'].innovate"
+            >
+            </el-input>
+          </td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr>
+          <td class="vertical" rowspan="10">成果及社会价值</td>
+        </tr>
+        <tr>
+          <td colspan="7">
+            <p>一、成果(名称、数量及形式,开发产品及取得的专利等)</p>
+            <p>专利证书获得(提供专利申请或成果证书附件):</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="getFile"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress7"
+            ></beUpload>
+            <el-progress
+              v-if="progress7.show"
+              :percentage="progress7.value"
+              :format="ProgressFormatresultAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].resultAccessory.length >
+                0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .resultAccessory"
+                :key="index + 'e'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 1)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 1)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 1)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 1)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!-- <el-input
+                    type="textarea"
+                    :autosize="{minRows: 6}"
+                    placeholder="请输入内容"
+                    v-model="myArrayProp[0].brief">
+                </el-input> -->
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="height: 200px">
+            <p>企业应用实证(提供企业证明或合作协议证明等附件):</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="getfirmAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress1"
+            ></beUpload>
+            <el-progress
+              v-if="progress1.show"
+              :percentage="progress1.value"
+              :format="ProgressFormatfirmAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].firmAccessory.length > 0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .firmAccessory"
+                :key="index + 'f'"
+                style="cursor: pointer"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 2)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 2)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 2)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 2)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <!-- <el-input
+                    type="textarea"
+                    :autosize="{minRows: 6}"
+                    placeholder="请输入内容"
+                    v-model="myArrayProp[0].brief">
+                </el-input> -->
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="height: 200px">
+            <p>双创竞赛成绩(提供参加师生名单、比赛取得的成绩等附件):</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="getcompetitionAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress2"
+            ></beUpload>
+            <el-progress
+              v-if="progress2.show"
+              :percentage="progress2.value"
+              :format="ProgressFormatcompetitionAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].competitionAccessory
+                  .length > 0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .competitionAccessory"
+                :key="index + 'g'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 3)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 3)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 3)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 3)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="height: 200px">
+            <p>参展或交流活动(提供参加师生名单、活动方案及照片等附件):</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="getexchangeAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress3"
+            ></beUpload>
+            <el-progress
+              v-if="progress3.show"
+              :percentage="progress3.value"
+              :format="ProgressFormatexchangeAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].exchangeAccessory
+                  .length > 0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .exchangeAccessory"
+                :key="index + 'h'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 4)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 4)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 4)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 4)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="height: 200px">
+            <p>创业公司转化(提供公司注册资料、营业执照等附件):</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="getconversionAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress4"
+            ></beUpload>
+            <el-progress
+              v-if="progress4.show"
+              :percentage="progress4.value"
+              :format="ProgressFormatconversionAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].conversionAccessory
+                  .length > 0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .conversionAccessory"
+                :key="index + 'j'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 5)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 5)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 5)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 5)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" style="height: 200px">
+            <p>二、创客人才培养(提供成果、数量、学生名单等附件)</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="gettalentsAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress5"
+            ></beUpload>
+            <el-progress
+              v-if="progress5.show"
+              :percentage="progress5.value"
+              :format="ProgressFormattalentsAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].talentsAccessory.length >
+                0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .talentsAccessory"
+                :key="index + 'k'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 6)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 6)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 6)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 6)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+        <!-- <tr>
+          <td colspan="7" style="text-align: left; height: auto">
+            <p>目标计划:</p>
+            <div
+              v-if="isDownPdf"
+              class="textCss"
+              v-html="
+                myArrayProp[0]['ClosingstatementData'].targetPlan.replace(
+                  / /g,
+                  '&nbsp;'
+                )
+              "
+            ></div>
+            <el-input
+              v-else
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              v-model="myArrayProp[0]['ClosingstatementData'].targetPlan"
+            >
+            </el-input>
+          </td>
+        </tr> -->
+        <tr>
+          <td colspan="7" :style="{ height: isDownPdf ? 'auto' : '200px' }">
+            <p>三、实际结果:</p>
+            <el-input
+              v-if="!isDownPdf"
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              @change="changeInput"
+              v-model="myArrayProp[0]['ClosingstatementData'].realityResult"
+            >
+            </el-input>
+            <div v-else style="min-height: 100px">
+              {{ myArrayProp[0]["ClosingstatementData"].realityResult }}
+            </div>
+          </td>
+        </tr>
+        <tr>
+          <td colspan="7" :style="{ height: isDownPdf ? 'auto' : '200px' }">
+            <p>四、社会价值(项目实践运用情况及效果评价)</p>
+            <!--实际运用情况及效果评价-->
+            <el-input
+              v-if="!isDownPdf"
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              placeholder="请输入内容"
+              @change="changeInput"
+              v-model="myArrayProp[0]['ClosingstatementData'].socialValue"
+            >
+            </el-input>
+            <div v-else style="min-height: 100px">
+              {{ myArrayProp[0]["ClosingstatementData"].socialValue }}
+            </div>
+          </td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr>
+          <td class="vertical">附件</td>
+          <td colspan="7" style="height: 200px">
+            <p>附:课题研究报告、用户评价意见或专家鉴定意见、其它附件等等</p>
+            <beUpload
+              v-if="!isDownPdf"
+              style="position: absolute; right: 10px; top: 5px"
+              @getFile="gettaskAccessory"
+              :navName="'上传文件'"
+              :accept="accept"
+              :progress="progress6"
+            ></beUpload>
+            <el-progress
+              v-if="progress6.show"
+              :percentage="progress6.value"
+              :format="ProgressFormattaskAccessory"
+              style="width: 80%"
+            ></el-progress>
+
+            <div
+              :class="
+                myArrayProp[0]['ClosingstatementData'].taskAccessory.length > 0
+                  ? 'bigBlock'
+                  : 'noFileBox'
+              "
+            >
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0]['ClosingstatementData']
+                  .taskAccessory"
+                :key="index + 'l'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                  <div class="fileBoxRight" v-if="!isDownPdf">
+                    <div class="chapter_upload_ud" style="z-index: 99">
+                      <div
+                        class="chapter_upload_up"
+                        @click="upCd($event, index, 7)"
+                      ></div>
+                      <div
+                        class="chapter_upload_down"
+                        @click="downCd($event, index, 7)"
+                      ></div>
+                    </div>
+                    <div
+                      class="chapter_upload_ic_edit"
+                      @click="updataVideoT($event, index, 7)"
+                    ></div>
+                    <div
+                      class="chapter_upload_ic_r"
+                      @click="deleteFile(index, 7)"
+                    ></div>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr>
+          <td class="vertical" rowspan="12">经费使用</td>
+          <td colspan="2">预算总经费</td>
+          <td colspan="2">{{ myArrayProp[0].fund }}元</td>
+          <td>实际使用</td>
+          <td colspan="2">{{ myArrayProp[0].actualuse }}元</td>
+        </tr>
+        <tr>
+          <td>经费大类</td>
+          <td>经费小类</td>
+          <td>预算经费(元)</td>
+          <td>实际使用经费(元)</td>
+          <td colspan="3">计算依据及理由</td>
+        </tr>
+        <tr>
+          <td rowspan="5">直接经费</td>
+        </tr>
+        <!-- total:总经费
+              小型仪器设备费:device        deviceRemarks
+              材料费:Material             MaterialRemarks
+              测试化验加工费:processing    processingRemarks
+              项目协作费:Collaboration     CollaborationRemarks
+              项目成果鉴定费:APPRAISAL     APPRAISALRemarks
+              参展参赛费:entery            enteryRemarks
+              创客交流活动费:activities    activitiesRemarks
+              知识产权事务费:Transaction   TransactionRemarks -->
+        <tr>
+          <td>小型仪器设备费</td>
+          <td>{{ myArrayProp[0]["budget"].device }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].device"
+              :min="0"
+              :controls="false"
+              :precision="2"
+              @change="getPrice"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].device }}</div>
+          </td>
+          <td colspan="3">
+            项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用。
+          </td>
+        </tr>
+        <tr>
+          <td>材料费</td>
+          <td>{{myArrayProp[0]["budget"].Material}}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].Material"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].Material }}</div>
+          </td>
+          <td colspan="3">
+            项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。
+          </td>
+        </tr>
+        <tr>
+          <td>测试化验加工费</td>
+          <td>{{ myArrayProp[0]["budget"].processing }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].processing"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].processing }}</div>
+          </td>
+          <td colspan="3">
+            项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。
+          </td>
+        </tr>
+        <tr>
+          <td>项目协作费</td>
+          <td>{{ myArrayProp[0]["budget"].Collaboration }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].Collaboration"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].Collaboration }}</div>
+          </td>
+          <td colspan="3">按合同规定支付给协作单位的费用</td>
+        </tr>
+        <tr>
+          <td rowspan="5">间接经费</td>
+        </tr>
+        <tr>
+          <td>项目成果鉴定费</td>
+          <td>{{ myArrayProp[0]["budget"].APPRAISAL}}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].APPRAISAL"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].APPRAISAL }}</div>
+          </td>
+          <td colspan="3">学术会务费、评审费、鉴定费、成果集制作费等费用。</td>
+        </tr>
+        <tr>
+          <td>参展参赛费</td>
+          <td>{{ myArrayProp[0]["budget"].entery }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].entery"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].entery }}</div>
+          </td>
+          <td colspan="3">
+            参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。
+          </td>
+        </tr>
+        <tr>
+          <td>创客交流活动费</td>
+          <td>{{ myArrayProp[0]["budget"].activities }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].activities"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].activities }}</div>
+          </td>
+          <td colspan="3">
+            创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。
+          </td>
+        </tr>
+        <tr>
+          <td>论文版面费</td>
+          <td>{{ myArrayProp[0]["budget"].Transaction }}</td>
+          <td>
+            <el-input-number
+              v-if="!isDownPdf"
+              v-model="myArrayProp[0]['money'].Transaction"
+              @change="getPrice"
+              :min="0"
+              :controls="false"
+              :precision="2"
+            ></el-input-number>
+            <div v-else>{{ myArrayProp[0]["money"].Transaction }}</div>
+          </td>
+          <td colspan="3">论文版面费、专利及其他知识产权事务等费用。</td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr style="height: 350px">
+          <td class="vertical">所在学院初审意见</td>
+          <td colspan="7" style="position: relative">
+            <template v-for="(item,index) in qpList.filter((i) => i.type == 8)" v-if="index==0">
+              <div
+                :key="item.id"
+                class="qpText"
+                v-html="item.text"
+              ></div>
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:<span>{{ item.username }} </span>
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                日期:{{ item.time }}
+              </div>
+            </template>
+            <template  v-if="qpList.filter((i) => i.type == 8).length = 0">
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                年 月 日
+              </div>
+            </template>
+            <!-- <div
+              v-if="qpList.length && qpList[2] && qpList[2].type == 4"
+              class="qpText"
+              v-html="qpList[2].text"
+            ></div>
+            <div
+              style="
+                width: 200px;
+                position: absolute;
+                right: 80px;
+                bottom: 50px;
+              "
+            >
+              负责人签章:<span
+                v-if="qpList.length && qpList[2] && qpList[2].type == 4"
+                >{{ qpList[2].username }}
+              </span>
+            </div>
+            <div
+              v-if="qpList.length && qpList[2] && qpList[2].type == 4"
+              style="width: 300px; position: absolute; right: 0px; bottom: 15px"
+            >
+              日期:{{ qpList[2].time }}
+            </div>
+            <div
+              style="width: 300px; position: absolute; right: 0px; bottom: 15px"
+              v-else
+            >
+              年 月 日
+            </div> -->
+          </td>
+        </tr>
+      </tbody>
+      <!-- <tr>
+        <td>专 <br />家 <br />验 <br />收 <br />结 <br />论</td>
+        <td colspan="7">
+          <div style="width: 200px; float: right; margin: 10px 300px">
+            负责人签章:
+          </div>
+          <div style="width: 200px; float: right; margin: 10px 100px">
+            年 月 日
+          </div>
+        </td>
+      </tr> -->
+      <tbody>
+        <tr style="height: 350px">
+          <td class="vertical">创新创业学院审核意见</td>
+          <td colspan="7" style="position: relative">
+            <template v-for="(item,index) in qpList.filter((i) => i.type == 9)" v-if="index==0">
+              <div
+                :key="item.id"
+                class="qpText"
+                v-html="item.text"
+              ></div>
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:<span>{{ item.username }} </span>
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                日期:{{ item.time }}
+              </div>
+            </template>
+            <template  v-if="qpList.filter((i) => i.type == 9).length = 0">
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                年 月 日
+              </div>
+            </template>
+          </td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr style="height: 350px">
+          <td class="vertical">专家意见</td>
+          <td colspan="7" style="position: relative">
+            <span
+              v-if="myArrayProp[0].opinion && myArrayProp[0].opinion.find(i=>i.type==2)"
+              style="position: absolute; left: 15px; top: 15px"
+              >{{ myArrayProp[0].opinion.find(i=>i.type==2).text}}</span
+            >
+            <div :class="!!myArrayProp[0].opinion ? 'bigBlock' : 'noFileBox'">
+              <div
+                class="fileBlock"
+                v-for="(item, index) in myArrayProp[0].opinion"
+                v-show="item.type==2"
+                :key="index + 'l'"
+              >
+                <div class="fileBox">
+                  <div class="fileBoxLeft" @click="checkFile(item.url)">
+                    <div class="chapter_upload_l_i3"></div>
+                    <div class="titName">{{ item.fileName }}</div>
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div
+              v-if="myArrayProp[0]['promotion'] != -1"
+              style="
+                width: 95%;
+                margin: 10px 0;
+                display: flex;
+                justify-content: end;
+              "
+            >
+              2024年4月16日
+            </div>
+          </td>
+        </tr>
+      </tbody>
+      <tbody>
+        <tr style="height: 350px">
+          <td class="vertical" style="height: 350px">学校终审意见</td>
+          <td colspan="7">
+            <template v-for="(item,index) in qpList.filter((i) => i.type == 10)" v-if="index==0">
+              <div
+                :key="item.id"
+                class="qpText"
+                v-html="item.text"
+              ></div>
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:<span>{{ item.username }} </span>
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                日期:{{ item.time }}
+              </div>
+            </template>
+            <template  v-if="qpList.filter((i) => i.type == 10).length = 0">
+              <div
+                style="
+                  width: 200px;
+                  position: absolute;
+                  right: 80px;
+                  bottom: 50px;
+                "
+              >
+                负责人签章:
+              </div>
+              <div
+                style="
+                  width: 300px;
+                  position: absolute;
+                  right: 0px;
+                  bottom: 15px;
+                "
+              >
+                年 月 日
+              </div>
+            </template>
+          </td>
+        </tr>
+      </tbody>
+    </table>
+    <!-- <div v-show="isDownPdf" ref="tableBox2">
+
+    </div> -->
+    <div class="ending">
+      <p>备注:1、本表一式三份,专家验收后交双创学院</p>
+      <p style="text-indent: 3em">
+        2、各栏目若不够填写,可自行加页,加页需紧附该栏目之后。
+      </p>
+    </div>
+    <!-- <footer>https://cxcy.ssti.net.cn/</footer> -->
+    <!-- 展示文档开始 -->
+    <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="dialogVisibleupdataVideoT"
+      :append-to-body="true"
+      width="500px"
+      :before-close="handleClose"
+      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="fileName"
+          placeholder="请输入要修改的名称"
+        ></el-input>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisibleupdataVideoT = false">取 消</el-button>
+        <el-button type="primary" @click="updataVideoC">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getNowDate } from "@/components/tool/Date.js";
+import beUpload from "@/components/tool/beUpload";
+import vpdf from "@/components/vpdf.vue";
+import vword from "@/components/vword.vue";
+export default {
+  props: {
+    myArrayProp2: {
+      type: Array,
+      required: true,
+    },
+    pid: {
+      type: String,
+      required: true,
+    },
+    isDownPdf: {
+      type: Boolean,
+      required: true,
+    },
+  },
+  components: { beUpload, vpdf, vword },
+  data() {
+    return {
+      myArrayProp: [],
+      accept: "*",
+      nowTime: getNowDate(1),
+      file: "",
+      progress1: {
+        value: 0,
+        show: false,
+      },
+      progress2: {
+        value: 0,
+        show: false,
+      },
+      progress3: {
+        value: 0,
+        show: false,
+      },
+      progress4: {
+        value: 0,
+        show: false,
+      },
+      progress5: {
+        value: 0,
+        show: false,
+      },
+      progress6: {
+        value: 0,
+        show: false,
+      },
+      progress7: {
+        value: 0,
+        show: false,
+      },
+      showFile: false,
+      showFileUrl: "",
+      Wordss: { type: "", name: "" },
+      canonical: {
+        Image:
+          /^https?:\/\/(.+\/)+.+(\.(gif|png|jpg|jpeg|webp|svg|psd|bmp|tif))$/i,
+        File: /^https?:\/\/(.+\/)+.+(\.(docx|xlsx|ppt|pdf))$/i,
+      },
+      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: {},
+      qpList: [],
+      fileName: "",
+      fileIndex: 0,
+      fileType: 0,
+      dialogVisibleupdataVideoT: false,
+    };
+  },
+  methods: {
+    handleClose(done) {
+      done();
+    },
+    getFile(val) {
+      //上传成果文件
+      console.log(val);
+      this.progress7.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].resultAccessory.push(val);
+      this.setFile();
+    },
+    deleteFile(val, t) {
+      this.$confirm("确定删除此文件吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          console.log(val);
+          if (t == 1) {
+            this.myArrayProp[0]["ClosingstatementData"].resultAccessory.splice(
+              val,
+              1
+            );
+          } else if (t == 2) {
+            this.myArrayProp[0]["ClosingstatementData"].firmAccessory.splice(
+              val,
+              1
+            );
+          } else if (t == 3) {
+            this.myArrayProp[0][
+              "ClosingstatementData"
+            ].competitionAccessory.splice(val, 1);
+          } else if (t == 4) {
+            this.myArrayProp[0][
+              "ClosingstatementData"
+            ].exchangeAccessory.splice(val, 1);
+          } else if (t == 5) {
+            this.myArrayProp[0][
+              "ClosingstatementData"
+            ].conversionAccessory.splice(val, 1);
+          } else if (t == 6) {
+            this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.splice(
+              val,
+              1
+            );
+          } else {
+            this.myArrayProp[0]["ClosingstatementData"].taskAccessory.splice(
+              val,
+              1
+            );
+          }
+          this.setFile();
+        })
+        .catch(() => {});
+    },
+    getfirmAccessory(val) {
+      //上传企业应用实证
+      this.progress1.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].firmAccessory.push(val);
+      this.setFile();
+    },
+    getcompetitionAccessory(val) {
+      //双创竞赛成绩
+      this.progress2.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].competitionAccessory.push(
+        val
+      );
+      this.setFile();
+    },
+    getexchangeAccessory(val) {
+      //参展或交流活动
+      this.progress3.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory.push(val);
+      this.setFile();
+    },
+    getconversionAccessory(val) {
+      //创业公司转化
+      this.progress4.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].conversionAccessory.push(val);
+      this.setFile();
+    },
+    gettalentsAccessory(val) {
+      //创客人才培养
+      this.progress5.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].talentsAccessory.push(val);
+      this.setFile();
+    },
+    gettaskAccessory(val) {
+      //
+      this.progress6.show = false;
+      this.myArrayProp[0]["ClosingstatementData"].taskAccessory.push(val);
+      this.setFile();
+    },
+
+    ProgressFormattaskAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormattalentsAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormatconversionAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormatexchangeAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormatcompetitionAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormatfirmAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    ProgressFormatresultAccessory(value) {
+      //进度条
+      return value == 100 ? "100%" : `${value}%`;
+    },
+    //展示文件
+    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;
+    },
+    getPrice(t) {
+      if (this.myArrayProp && this.myArrayProp.length == 0) {
+        return;
+      }
+      var a =
+        this.myArrayProp[0]["money"].device != ""
+          ? parseFloat(this.myArrayProp[0]["money"].device)
+          : 0;
+      var b =
+        this.myArrayProp[0]["money"].Material != ""
+          ? parseFloat(this.myArrayProp[0]["money"].Material)
+          : 0;
+      var c =
+        this.myArrayProp[0]["money"].processing != ""
+          ? parseFloat(this.myArrayProp[0]["money"].processing)
+          : 0;
+      var d =
+        this.myArrayProp[0]["money"].Collaboration != ""
+          ? parseFloat(this.myArrayProp[0]["money"].Collaboration)
+          : 0;
+      var e =
+        this.myArrayProp[0]["money"].APPRAISAL != ""
+          ? parseFloat(this.myArrayProp[0]["money"].APPRAISAL)
+          : 0;
+      var f =
+        this.myArrayProp[0]["money"].entery != ""
+          ? parseFloat(this.myArrayProp[0]["money"].entery)
+          : 0;
+      var g =
+        this.myArrayProp[0]["money"].activities != ""
+          ? parseFloat(this.myArrayProp[0]["money"].activities)
+          : 0;
+      var h =
+        this.myArrayProp[0]["money"].Transaction != ""
+          ? parseFloat(this.myArrayProp[0]["money"].Transaction)
+          : 0;
+      this.myArrayProp[0].actualuse = (a + b + c + d + e + f + g + h).toFixed(2);
+      if (t != 1) {
+        // this.$parent.myArrayProp = this.myArrayProp
+        this.$emit("myArrayPropFn", this.myArrayProp);
+        console.log(this.myArrayProp);
+      }
+      this.$forceUpdate();
+    },
+    onPlayerPlay() {},
+    setFile() {
+      // console.log(this.myArrayProp[0]["money"], "👈");
+      return;
+      this.ajax
+        .post(this.$store.state.api + "/updateClosingstatementData", {
+          uid: this.$store.state.userInfo.userid,
+          pid: this.iid,
+          cdata: encodeURIComponent(
+            JSON.stringify(this.myArrayProp[0]["ClosingstatementData"])
+          ),
+          mData: encodeURIComponent(
+            JSON.stringify(this.myArrayProp[0]["money"])
+          ),
+          sta: 2,
+        })
+        .then(
+          (res) => {
+            console.log(res);
+            this.$emit("myArrayPropFn", this.myArrayProp);
+            this.$forceUpdate();
+          },
+          (err) => {
+            console.log(err);
+          }
+        );
+    },
+    changeInput() {
+      this.$emit("myArrayPropFn", this.myArrayProp);
+    },
+    // 获取代办公文审批
+    getSign() {
+      let param = {
+        pid: this.pid,
+      };
+      // return console.log(param);
+      // console.log(param)
+      this.ajax.get(this.$store.state.api + "/selectSign", param).then(
+        (res) => {
+          this.qpList = res.data[0];
+          this.$forceUpdate()
+          // console.log('this.qpList',this.qpList);
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    upCd(e, i, t) {
+      e.stopPropagation();
+      if (i == 0) {
+        return;
+      }
+      if (t == 1) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i - 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i] = a;
+      } else if (t == 2) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i - 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i] = a;
+      } else if (t == 3) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+              i - 1
+            ]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+          i - 1
+        ] = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i] = a;
+      } else if (t == 4) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i - 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i] = a;
+      } else if (t == 5) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
+              i - 1
+            ]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i] = a;
+      } else if (t == 6) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i - 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i] = a;
+      } else {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i - 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i - 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i] = a;
+      }
+      this.$forceUpdate();
+      this.setFile();
+    },
+    downCd(e, i, t) {
+      e.stopPropagation();
+      if (t == 1) {
+        if (
+          i ==
+          this.myArrayProp[0]["ClosingstatementData"].resultAccessory.length - 1
+        ) {
+          return;
+        }
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i + 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].resultAccessory[i] = a;
+      } else if (t == 2) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i + 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i] = a;
+      } else if (t == 3) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+              i + 1
+            ]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+          i + 1
+        ] = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[i] = a;
+      } else if (t == 4) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i + 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[i] = a;
+      } else if (t == 5) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
+              i + 1
+            ]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[i] = a;
+      } else if (t == 6) {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i + 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[i] = a;
+      } else {
+        var a = JSON.parse(
+          JSON.stringify(
+            this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i + 1]
+          )
+        );
+        this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i + 1] =
+          JSON.parse(
+            JSON.stringify(
+              this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i]
+            )
+          );
+        this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i] = a;
+      }
+      this.$forceUpdate();
+      this.setFile();
+    },
+    updataVideoT(e, i, t) {
+      if (t == 1) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].resultAccessory[
+            i
+          ].fileName;
+      } else if (t == 2) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].firmAccessory[i].fileName;
+      } else if (t == 3) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+            i
+          ].fileName;
+      } else if (t == 4) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[
+            i
+          ].fileName;
+      } else if (t == 5) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
+            i
+          ].fileName;
+      } else if (t == 6) {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[
+            i
+          ].fileName;
+      } else {
+        this.fileName =
+          this.myArrayProp[0]["ClosingstatementData"].taskAccessory[i].fileName;
+      }
+      this.fileIndex = i;
+      this.fileType = t;
+      this.dialogVisibleupdataVideoT = true;
+      this.$forceUpdate();
+    },
+    updataVideoC() {
+      if (this.fileType == 1) {
+        this.myArrayProp[0]["ClosingstatementData"].resultAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else if (this.fileType == 2) {
+        this.myArrayProp[0]["ClosingstatementData"].firmAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else if (this.fileType == 3) {
+        this.myArrayProp[0]["ClosingstatementData"].competitionAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else if (this.fileType == 4) {
+        this.myArrayProp[0]["ClosingstatementData"].exchangeAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else if (this.fileType == 5) {
+        this.myArrayProp[0]["ClosingstatementData"].conversionAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else if (this.fileType == 6) {
+        this.myArrayProp[0]["ClosingstatementData"].talentsAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      } else {
+        this.myArrayProp[0]["ClosingstatementData"].taskAccessory[
+          this.fileIndex
+        ].fileName = JSON.parse(JSON.stringify(this.fileName));
+      }
+      this.dialogVisibleupdataVideoT = false;
+      this.$forceUpdate();
+      this.setFile();
+    },
+  },
+  watch: {
+    isDownPdf: {
+      handler(newVal) {
+        if (newVal) {
+          this.isDownPdf = newVal;
+        }
+      },
+      deep: true,
+    },
+    myArrayProp2: {
+      handler(newVal) {
+        if (newVal) {
+          this.myArrayProp = JSON.parse(JSON.stringify(newVal));
+          this.getPrice(1);
+        }
+      },
+      deep: true,
+    },
+  },
+  created() {
+    // console.log(this.myArrayProp);
+    //    this.getData();
+    this.myArrayProp = JSON.parse(JSON.stringify(this.myArrayProp2));
+    // console.log('this.myArrayProp',this.myArrayProp);
+    this.getPrice(1);
+    this.getSign();
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.vertical {
+  writing-mode: vertical-rl; /*从右到左竖直书写*/
+  // letter-spacing: 4px;
+}
+@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;
+    }
+  }
+}
+.ProNumber {
+  position: absolute;
+  right: 60px;
+  top: 30px;
+  // font-size: 25px;
+  text-align: right;
+  margin: auto 0;
+  // width: 80% !important;
+}
+.onePage {
+  width: 100%;
+  // height: 1000px;
+  box-sizing: border-box;
+  padding: 200px 0;
+  text-align: center;
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  // width: 100%;
+  // height: 1820px;
+  // text-align: center;
+  // // margin: 20px auto;
+  // display: flex;
+  // flex-direction: column;
+  // justify-content: center;
+  // border: 1px solid #000;
+  .titSchool {
+    font-weight: 600;
+    font-size: 28px;
+    margin-bottom: 30px;
+    font-family: \6977\4f53;
+  }
+  .title {
+    font-weight: 600;
+    font-size: 34px;
+    margin-bottom: 30px;
+    font-family: \9ed1\4f53;
+    margin-bottom: 100px;
+  }
+  .line {
+    width: 300px;
+    border-bottom: 1px black solid;
+  }
+  .basicInformation {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    font-size: 22px;
+    font-family: \4eff\5b8b;
+    font-weight: bold;
+    margin-bottom: 50px;
+
+    span {
+      width: 100px;
+      text-align: justify;
+      text-align-last: justify;
+      /*兼容ie*/
+      text-justify: distribute-all-lines;
+      margin-right: 10px;
+    }
+  }
+}
+table {
+  position: relative;
+  color: black;
+  width: 95%;
+  margin: 0 auto;
+  margin-bottom: 20px;
+  font-size: 19px;
+  font-family: \5b8b\4f53;
+  tr {
+    width: 100%;
+    border: none;
+  }
+  tr td {
+    height: 60px;
+    width: 10%;
+    // width: 200px;
+    text-align: center;
+    box-sizing: border-box;
+    padding: 10px;
+    position: relative;
+    &>div{
+      text-align: left;
+    }
+    .textCss {
+      word-break: break-word;
+      white-space: pre-line;
+      line-height: 40px;
+    }
+    // :deep(.el-textarea.is-disabled .el-textarea__inner) {
+    //   background-color: unset;
+    //   border-color: unset;
+    //   color: rgb(0, 0, 0);
+    //   cursor: unset;
+    // }
+    .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: 20px 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 {
+          width: 98%;
+          display: flex;
+          flex-direction: row;
+          flex-wrap: nowrap;
+          justify-content: space-between;
+          align-items: center;
+
+          .fileBoxLeft {
+            width: 100%;
+            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% - 40px);
+              white-space: nowrap;
+              overflow: hidden;
+              text-overflow: ellipsis;
+              word-break: break-word;
+              text-align: left;
+              margin-left: 10px;
+              // max-width: calc(50vw / 2);
+            }
+          }
+          .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;
+      }
+    }
+    p {
+      text-align: left;
+    }
+    :deep(.el-textarea__inner) {
+      border: none;
+      resize: none;
+      font-size: 18px;
+    }
+  }
+}
+.ending {
+  margin-left: 30px;
+  p {
+    line-height: 1.5em;
+  }
+}
+.qpText {
+  position: absolute;
+  top: 10px;
+  left: 10px;
+  max-height: 260px;
+  text-align: left;
+  overflow: auto;
+}
+
+.qpText::-webkit-scrollbar-track-piece {
+  background-color: #f8f8f800;
+}
+.qpText::-webkit-scrollbar {
+  width: 6px;
+  transition: all 2s;
+}
+.qpText::-webkit-scrollbar-thumb {
+  background-color: #929292;
+  border-radius: 100px;
+}
+.qpText::-webkit-scrollbar-thumb:hover {
+  background-color: #bbb;
+}
+.qpText::-webkit-scrollbar-corner {
+  background-color: rgba(255, 255, 255, 0);
+}
+</style>

+ 151 - 0
src/views/commission/components/Closingstatement1.vue

@@ -0,0 +1,151 @@
+<template>
+  <div>
+    <Closingstatement
+      style="background: #fff"
+      ref="finalClo"
+      :myArrayProp2="myArrayProp"
+      :pid="pid"
+      :isDownPdf="isDownPdf"
+      :key="myArrayProp.toString()"
+    ></Closingstatement>
+<!--
+    <div
+      slot="footer"
+      class="dialog-footer"
+      style="display: flex; justify-content: center"
+    >
+      <el-button type="primary" @click="getWord" class="AllDialogBtn"
+        >下载表格</el-button
+      >
+    </div> -->
+  </div>
+</template>
+
+<script>
+import Closingstatement from "../components/Closingstatement.vue";
+//下载pdf
+import { downloadPDF } from "@/components/tool/pdf";
+export default {
+  components: { Closingstatement },
+  data() {
+    return {
+      myArrayProp: [], //结项书-后端获取的数据
+      pid: this.$route.query.pid,
+      isDownPdf: true,
+      submitData: {
+        //结项书要填写的数据
+        brief: "",
+        plan: "",
+        technology: "",
+        business: "",
+        innovate: "",
+        resultAccessory: [],
+        firmAccessory: [],
+        competitionAccessory: [],
+        exchangeAccessory: [],
+        conversionAccessory: [],
+        talentsAccessory: [],
+        targetPlan: "",
+        realityResult: "",
+        socialValue: "",
+        taskAccessory: [],
+      },
+    };
+  },
+  methods: {
+    getPrice() {
+      this.ajax
+        .get(this.$store.state.api + "/getClosingstatementData", {
+          uid: this.$store.state.userInfo.userid,
+          pid: this.pid,
+        })
+        .then((res) => {
+          let num = 0;
+          res.data[1].forEach((i) => {
+            //计算出已经使用过的金钱
+            // console.log(i);
+            i["actualuse"] = JSON.parse(i["actualuse"]);
+            for (let key in i["actualuse"]) {
+              if (i["actualuse"][key]) {
+                num = i["actualuse"][key] * 1 + num;
+              }
+            }
+          });
+          // console.log(num);
+
+          let data = res.data[0];
+
+          data[0].course_student = JSON.parse(data[0].course_student);
+          data[0].course_teacher = JSON.parse(data[0].course_teacher);
+          if (data[0].multiSelectProject != null) {
+            data[0].multiSelectProject = JSON.parse(data[0].multiSelectProject);
+          }
+
+					data[0].promotion = data[0].promotion.indexOf(data[0].ProjectNo);
+
+
+          data[0].budget = data[0].money?JSON.parse(data[0].money):{
+              "device": 0,
+              "Material": 0,
+              "processing": 0,
+              "Collaboration": 0,
+              "APPRAISAL": 0,
+              "entery": 0,
+              "activities": 0,
+              "Transaction": 0
+          };
+
+          data[0].money = data[0].money2?JSON.parse(data[0].money2):{
+              "device": 0,
+              "Material": 0,
+              "processing": 0,
+              "Collaboration": 0,
+              "APPRAISAL": 0,
+              "entery": 0,
+              "activities": 0,
+              "Transaction": 0
+          };
+
+
+          data[0].ClosingstatementData = data[0].ClosingstatementData
+            ? JSON.parse(data[0].ClosingstatementData)
+            : this.submitData;
+          if (data[0].opinion != null) {
+            data[0].opinion = JSON.parse(data[0].opinion);
+          }
+          data[0].actualuse = num; //添加已经使用过的经费
+
+          this.myArrayProp = data;
+          console.log('11111');
+          // console.log(this.myArrayProp);
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    getWord() {
+      this.isDownPdf = true;
+      this.$forceUpdate();
+      setTimeout(() => {
+        downloadPDF(
+          this.$refs.finalClo.$refs.downPDF,
+          this.myArrayProp[0].title + "申报书"
+        );
+        setTimeout(() => {
+          this.isDownPdf = false;
+          this.$forceUpdate();
+        }, 500);
+      }, 500);
+    },
+  },
+
+  mounted() {
+    // console.log(this.myArrayProp);
+    //    this.getData();
+    this.getPrice();
+  },
+};
+</script>
+
+<style lang="less" scoped>
+</style>

+ 1071 - 0
src/views/commission/components/projectBookCompletion.vue

@@ -0,0 +1,1071 @@
+<template>
+  <div class="pBookBox" v-loading="loading">
+    <!-- 项目申报书 -->
+    <table border="1" cellspacing="0">
+      <div class="onePage">
+        <div class="titSchool">深圳城市职业学院(深圳技师学院)</div>
+        <div
+          class="title"
+          v-if="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          二级学院特色创客空间建设项目立项结项书
+        </div>
+        <div
+          class="title"
+          v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+				{{bookData.createAt.includes("年")?bookData.createAt.split('年')[0]:new Date().getFullYear()}}年校级学生创新创业训练计划项目结项书
+        </div>
+        <div class="dateCss">申请日期:{{ bookData.createAt }}</div>
+      </div>
+
+      <tr>
+        <td colspan="2" class="bold"><span>*</span>项目名称</td>
+        <td colspan="2">{{ bookData.title }}</td>
+        <td colspan="2" class="bold"><span>*</span>所在学院</td>
+        <td colspan="2">{{ bookData.name }}</td>
+      </tr>
+      <tr>
+        <td :rowspan="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'?2:3" class="bold"><span>*</span>项目状态</td>
+        <td v-if="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'">
+          {{
+            bookData.typeName == "00a3aa2f-f51e-11ed-a3f6-509a4c5b67cf"
+              ? "☑"
+              : "□"
+          }}已建设
+        </td>
+        <td v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'">
+          {{
+            bookData.typeName == "4a4e2cfe-e1a1-11ee-81d4-00ff5c7a43f5"
+              ? "☑"
+              : "□"
+          }}创新训练项目
+        </td>
+        <td
+          colspan="6"
+          v-if="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          指二级学院已获得政府或学校资助( 例:设计学院、信通学院、珠宝学院
+          ),已有双创空间(
+          创客实践室场地、设备设施并已投入运营,需对空间环境优化、规章制度建设、小型设施设备添置、创客项目物料增补,需拓展创客项目培训、辅导,创客讲座、沙龙、论坛,创客路演、竞赛、集市及成果参评、参展等方面的工作而提出的资助申请。
+        </td>
+        <td
+          colspan="6"
+          v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+					学生个人或团队,在导师指导下,自主完成创新性研究项目设计、研究条件准备和项目实施、研究报告撰写、成果(学术)交流等工作。
+        </td>
+      </tr>
+      <tr>
+        <td v-if="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'">
+          {{
+            bookData.typeName == "04692ef6-f51e-11ed-a3f6-509a4c5b67cf"
+              ? "☑"
+              : "□"
+          }}
+          待建设
+        </td>
+        <td v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'">
+          {{
+            bookData.typeName == "56f0ad8d-e1a1-11ee-81d4-00ff5c7a43f5"
+              ? "☑"
+              : "□"
+          }}
+          创业训练项目
+        </td>
+        <td
+          colspan="6"
+          v-if="bookData.typeid == '5f7a66d5-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          指二级学院拟立项开展学院特色创客空间建设项目,需进行项目前期调研论证、场馆规划、空间图纸设计设备选型等方面的工作而进行的资助申请。
+        </td>
+        <td
+          colspan="6"
+          v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'"
+        >
+          立项项目为学校已结题学生创客项目或已入驻学校创业孵化基地的学生初创企业项目(毕业两年内),项目成果应为原结题项目基础上的技术升级、企业注册、规模扩张。
+        </td>
+				<tr v-if="bookData.typeid == '5e21b204-c206-11ed-a4cd-509a4c5b67cf'">
+					<td>{{
+            bookData.typeName == "ed917c55-f51d-11ed-a3f6-509a4c5b67cf"
+              ? "☑"
+              : "□"
+          }}
+          创业实践项目</td>
+					<td colspan="6">学生团队在学校导师和企业导师共同指导下,采用创新训练项目或创新性实验等成果,提出具有市场前景的创新性产品或服务,以此为基础开展创业实践活动。</td>
+				</tr>
+      </tr>
+
+      <tr>
+        <td colspan="2" class="bold"><span>*</span>项目起始时间</td>
+        <td colspan="2">{{ bookData.begin_at }}</td>
+        <td colspan="2" class="bold"><span>*</span>计划完成时间</td>
+        <td colspan="2">{{ bookData.plannedEnd_at }}</td>
+      </tr>
+      <tr>
+        <td colspan="2" class="bold"><span>*</span>项目负责人</td>
+        <td colspan="2">{{ bookData.pro_leader }}</td>
+        <td colspan="2" class="bold"><span>*</span>学院牵头领导</td>
+        <td colspan="2">
+          {{ bookData.lead_leader ? bookData.lead_leader : "暂无" }}
+        </td>
+      </tr>
+      <tr>
+        <td
+          colspan="8"
+          style="height: 200px; box-sizing: border-box; padding-bottom: 40px"
+        >
+
+          <div class="flexBox">
+            <div style="padding-top: 10px">项目简介:</div>
+            <el-input
+              type="textarea"
+              :autosize="{ minRows: 6 }"
+              v-model="bookData.brief"
+              disabled
+              class="disCss"
+            >
+            </el-input>
+          </div>
+          <div class="flexBox">
+            <div>总经费:</div>
+            <div>{{ bookData.fund }} 元</div>
+          </div>
+          <p style="position: absolute; right: 30px; bottom: 20px">
+            {{ bookData.bm?bookData.bm:'' }} {{ bookData.username }}
+            {{ bookData.createAt }}
+          </p>
+        </td>
+      </tr>
+      <tr v-if="bookData.isupload==3 || qpList.filter(i=>i.type==8).length>0">
+        <td colspan="8">
+					<div class="defaultHeight">
+						<p class="bold">所在学院审核意见:<el-button  v-if="!isQpButton && $store.state.userInfo.type==4 && showBtn" type="primary" size="small" @click="openQp">签批</el-button></p>
+          	<div v-for="(item, index) in qpList.filter(i=>i.type==8)" :key="index" class="qpItem">
+          	  <div>{{ item.text }}</div>
+          	  <div>{{ item.bm }} {{ item.username }} {{ item.time }}</div>
+          	</div>
+					</div>
+
+        </td>
+      </tr>
+			<tr v-if="bookData.isupload==8 || qpList.filter(i=>i.type==9).length>0">
+        <td colspan="8">
+					<div class="defaultHeight">
+          	<p class="bold">创新创业学院审核意见:<el-button  v-if="!isQpButton && $store.state.userInfo.type==0 && showBtn" type="primary" size="small" @click="openQp">签批</el-button></p>
+          	<div v-for="(item, index) in qpList.filter(i=>i.type==9)" :key="index" class="qpItem">
+          	  <div>{{ item.text }}</div>
+          	  <div>{{ item.bm }} {{ item.username }} {{ item.time }}</div>
+          	</div>
+					</div>
+        </td>
+      </tr>
+			<tr v-if="bookData.isupload==9 || qpList.filter(i=>i.type==10).length>0">
+        <td colspan="8">
+					<div class="defaultHeight">
+          	<p class="bold">学校终审意见:<el-button  v-if="!isQpButton && $store.state.userInfo.type==3 && showBtn" type="primary" size="small" @click="openQp">签批</el-button></p>
+          	<div v-for="(item, index) in qpList.filter(i=>i.type==10)" :key="index" class="qpItem">
+          	  <div>{{ item.text }}</div>
+          	  <div>{{ item.bm }} {{ item.username }} {{ item.time }}</div>
+          	</div>
+					</div>
+        </td>
+      </tr>
+      <tr>
+        <td style="display: none" v-for="i in 8" :key="i"></td>
+      </tr>
+    </table>
+    <div class="flowPath">
+      <!-- <div class="flowItem" v-if="showType < 5">
+        <div></div>
+        <div>评审委员会意见</div>
+      </div>
+      <div class="flowItem" v-if="showType < 4">
+        <div></div>
+        <div>所在学院部门</div>
+      </div>
+      <div class="flowItem" v-if="showType < 3">
+        <div></div>
+        <div>所在学院领导审核</div>
+      </div>
+      <div class="flowItem" v-if="showType < 0">
+        <div></div>
+        <div>创新创业综合审核-初审</div>
+      </div> -->
+      <!-- <div class="flowItem">
+        <div></div>
+        <div style="font-weight: unset">
+          {{ $store.state.userInfo.bm ? $store.state.userInfo.bm + "-" : ""
+          }}<span style="font-weight: bold"
+            >{{ $store.state.userInfo.username }}经办人发起</span
+          >
+        </div>
+      </div> -->
+      <!-- <div class="flowItem1" v-for="(qp, qpIndex) in qpList" :key="qpIndex">
+        <div class="isRight" v-if="qp.isAgree == 1"></div>
+        <div class="isWrong" v-if="qp.isAgree == 2"></div>
+        <div class="flowNavBox">
+          <div class="flowTop">
+            <div class="flowTime">{{ qp.lcTime }}</div>
+            <div class="flowPeople">{{ qp.bm }}{{ qp.username }}</div>
+          </div>
+          <div class="flowBottom">
+            <div class="flowText" v-if="qp.isAgree == 1">
+							{{typeListStatus[qp.type]}}审核,拟通过。
+            </div>
+            <div class="flowText" v-else>{{ qp.bm }}审核,不通过。</div>
+            <div class="flowReason" v-if="qp.isAgree == 2">{{ qp.text }}</div>
+          </div>
+        </div>
+      </div> -->
+			<div v-for="(item,index) in typeListStatus" :key="index">
+				<div class="flowItem" v-if="qpList.filter(i=>i.type==item.key).length<=0">
+        	<div></div>
+        	<div>{{item.tit}}</div>
+      	</div>
+				<div class="flowItem1" v-else >
+					<div class="isRight" v-if="qpList.filter(i=>i.type==item.key)[0].isAgree == 1"></div>
+        	<div class="isWrong" v-if="qpList.filter(i=>i.type==item.key)[0].isAgree == 2"></div>
+        	<div class="flowNavBox">
+
+        	  <div class="flowBottom">
+        	    <div class="flowText" v-if="qpList.filter(i=>i.type==item.key)[0].isAgree == 1">
+								{{ typeListStatus.find(i=>i.key==item.key).tit }}<br/>审核,拟通过
+								<!-- {{typeListStatus[qpList.filter(i=>i.type==item.key)[0].type]}}审核,拟通过。 -->
+        	    </div>
+        	    <div class="flowText" v-else>{{ typeListStatus.find(i=>i.key==item.key).tit }}<br/>审核,不通过。</div>
+        	    <div class="flowReason" v-if="qpList.filter(i=>i.type==item.key)[0].isAgree == 2">{{ qpList.filter(i=>i.type==item.key)[0].text }}</div>
+        	  </div>
+						<div class="flowTop">
+        	    <div class="flowTime">{{ qpList.filter(i=>i.type==item.key)[0].lcTime }}</div>
+        	    <div class="flowPeople">{{ qpList.filter(i=>i.type==item.key)[0].bm?qpList.filter(i=>i.type==item.key)[0].bm+'-':'' }}{{ qpList.filter(i=>i.type==item.key)[0].username }}</div>
+        	  </div>
+        	</div>
+				</div>
+			</div>
+      <div class="flowItem1">
+        <div class="firstRight"></div>
+        <div class="flowNavBox">
+          <div class="flowTop">
+            <div class="flowTime">{{ bookData.lcCreateAt }}</div>
+            <div class="flowPeople">
+              {{ bookData.bm ? bookData.bm + "-" : ""
+              }}{{ bookData.username }}
+            </div>
+          </div>
+          <div class="flowBottom">
+            <div class="flowText">经办人发起</div>
+          </div>
+        </div>
+      </div>
+    </div>
+    <el-dialog
+      title="签批意见"
+      :visible.sync="dialogVisible"
+      :append-to-body="true"
+      width="1200px"
+      :before-close="handleClose"
+      class="dialog_diy"
+    >
+      <div class="qpBox">
+        <div class="topBox">
+          <div @click="typeBtn(1)" class="topItem">
+            <div :class="ttype == 1 ? 'isYuan' : 'yuan'"></div>
+            <div>加入常用语</div>
+          </div>
+          <div @click="typeBtn(2)" class="topItem">
+            <div :class="ttype == 2 ? 'isYuan' : 'yuan'"></div>
+            <div>保存</div>
+          </div>
+          <div @click="typeBtn(3)" class="topItem">
+            <div :class="ttype == 3 ? 'isYuan' : 'yuan'"></div>
+            <div>删除</div>
+          </div>
+        </div>
+        <div class="qpPeople">
+          <div>签批人:</div>
+          <div>
+            <el-input
+              v-model="$store.state.userInfo.username"
+              disabled
+            ></el-input>
+          </div>
+        </div>
+        <div class="qpMessage">
+          <div class="qpLeft">
+            <textarea
+              rows="15"
+              class="qpTextArea"
+              cols
+              :placeholder="phType == 0?'请选择公共常用语是否同意!':''"
+              :disabled="phType == 0"
+              v-model="qpMessage"
+            ></textarea>
+          </div>
+          <div class="qpRight">
+            <div class="perPh">
+              <div>个人常用语</div>
+              <el-select
+                v-model="phrases"
+                placeholder=""
+                clearable
+                @change="getQpMessage(phrases)"
+              >
+                <el-option
+                  v-for="(item, index) in phList"
+                  :key="index"
+                  :label="item.text"
+                  :value="item.text"
+                ></el-option>
+              </el-select>
+            </div>
+            <div class="coPh">
+              <div>公共常用语</div>
+              <div @click="setQpMessage(1, '审核,拟通过。')" class="phItem">
+                <div :class="phType == 1 ? 'isYuan' : 'yuan'"></div>
+                <div>审核,拟通过。</div>
+              </div>
+              <div @click="setQpMessage(2, '审核,不通过。')" class="phItem">
+                <div :class="phType == 2 ? 'isYuan' : 'yuan'"></div>
+                <div>审核,不通过。</div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+
+export default {
+  data() {
+    return {
+      ttt: "",
+      bookData: {},
+			loading:false,
+      dialogVisible: false,
+      ttype: 0,
+      phType: 0,
+      qpMessage: "",
+      phrases: "",
+      phList: [],
+      qpList: [],
+      showType: -1,
+      isQpButton: false,
+      isAgree: 0,
+			typeListStatus:[
+				{tit:"学校终审意见",key:'10'},
+				// {tit:"专家意见",key:'5'},
+				{tit:"创新创业学院审核",key:'9'},
+				{tit:"所在学院审核",key:'8'},
+			],
+			typeListStatusNoShowBtn:{
+				'0':[8,9],
+				'3':[9],
+				'4':[3,8],
+			},
+      classType:{
+        '0':9,
+        '3':10,
+        '4':8
+      },
+    };
+  },
+  methods: {
+    getData() {
+			if(this.loading)return;
+			this.loading = true;
+      this.ajax
+        .get(this.$store.state.api + "/getProjectBookData", {
+          uid: this.$store.state.userInfo.userid,
+          pid: this.$route.query["pid"],
+        })
+        .then((res) => {
+          let data = res.data[0][0];
+          this.bookData = data;
+					this.loading = false;
+          console.log(data);
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    getPh() {
+      let param = {
+        uid: this.$store.state.userInfo.userid,
+      };
+      // return console.log(param);
+      // console.log(param)
+      this.ajax.get(this.$store.state.api + "/selectPhrases", param).then(
+        (res) => {
+					let defaultList = [{
+						text:"专家不同意结项",
+						userid:"default",
+					},{
+						text:"专家同意结项",
+						userid:"default"
+					},{
+						text:"资质审核不通过",
+						userid:"default"
+					},{
+						text:"资质审核通过",
+						userid:"default"
+					}]
+          let data = res.data;
+          if (data[0].length > 8) {
+            this.phList = data[0].slice(0, 8);
+          } else {
+            this.phList = data[0];
+          }
+					this.phList = [...defaultList,...this.phList]
+					this.loading = false;
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    addPh() {
+      if (this.qpMessage == "") {
+        this.$message.error("请添加签批意见!");
+        return;
+      }
+      let param = {
+        uid: this.$store.state.userInfo.userid,
+        t: encodeURIComponent(this.qpMessage),
+      };
+      // return console.log(param);
+      // console.log(param)
+      this.ajax.get(this.$store.state.api + "/insertPhrases", param).then(
+        (res) => {
+          this.$message.success("加入成功");
+          this.getPh();
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    handleClose(done) {
+      done();
+      this.clear();
+    },
+    clear() {
+      this.ttype = 0;
+      this.qpMessage = "";
+      this.phrases = "";
+      this.phType = 0;
+    },
+    typeBtn(t) {
+      this.ttype = t;
+      if (t == 1) {
+        this.addPh();
+      } else if (t == 2) {
+        if (this.phType == 0) {
+          this.$message.error("请选择公共常用语是否同意!");
+          return;
+        } else {
+          this.addSign();
+        }
+      } else if (t == 3) {
+        this.qpMessage = "";
+      }
+    },
+    setQpMessage(t, n) {
+      this.phType = t;
+      this.qpMessage = n;
+    },
+    getQpMessage(n) {
+      this.qpMessage = n;
+    },
+    openQp() {
+      this.dialogVisible = true;
+      this.ttype = 0;
+      this.qpMessage = "";
+      this.phType = 0;
+      this.phrases = "";
+    },
+    addSign() {
+      if (this.qpMessage == "") {
+        this.$message.error("请添加签批意见!");
+        return;
+      }
+      let param = {
+        pid: this.$route.query["pid"],
+        uid: this.$store.state.userInfo.userid,
+        t:  encodeURIComponent(this.qpMessage),
+        a: this.phType,
+        type:this.classType[this.$store.state.userInfo.type],
+      };
+      this.ajax.post(this.$store.state.api + "/insertSign", param).then(
+        (res) => {
+          // console.log(res);
+          this.$message.success("签批成功");
+          this.getSign();
+          this.sendTask();
+					this.getData()
+          this.dialogVisible = false;
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    getSign() {
+      let param = {
+        pid: this.$route.query["pid"],
+      };
+      // return console.log(param);
+      // console.log(param)
+      this.ajax.get(this.$store.state.api + "/selectSign", param).then(
+        (res) => {
+          this.isQpButton = false;
+          this.qpList = res.data[0];
+					this.qpList.sort((a,b)=>new Date(b.create_at)-new Date(a.create_at))
+					this.qpList.sort((a,b)=>b.type-a.type)
+          this.showType =
+            res.data[0].length > 0
+              ? Math.max(...res.data[0].map((obj) => obj.type))
+              : -1;
+
+
+          this.isAgree =
+            res.data[0].length > 0
+              ? Math.max(...res.data[0].map((obj) => obj.isAgree))
+              : 0;
+
+          console.log(res.data)
+          for (var i = 0; i < res.data[0].length; i++) {
+            if (
+              res.data[0][i].userid == this.$store.state.userInfo.userid &&
+              res.data[0][i].type == this.$store.state.userInfo.type &&
+
+              res.data[0][i].isAgree == 1 &&
+              this.typeListStatusNoShowBtn(this.$store.state.userInfo.type).includes(res.data[0][i])
+            ) {
+              this.isQpButton = true;
+            }
+          }
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+    getNowTimeByNumber() {
+      const now = new Date();
+
+      const year = now.getFullYear();
+      const month = String(now.getMonth() + 1).padStart(2, "0");
+      const day = String(now.getDate()).padStart(2, "0");
+
+      return `${year}${month}${day}`;
+    },
+    getRamDom2() {
+      const min = 1;
+      const max = 99;
+      const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
+      return String(randomNumber).padStart(2, "0");
+    },
+    getRamDom4() {
+      const min = 1;
+      const max = 9999;
+      const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
+      return String(randomNumber).padStart(4, "0");
+    },
+    getRamDom7() {
+      const min = 1;
+      const max = 9999999;
+      const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
+      return String(randomNumber).padStart(7, "0");
+    },
+    getRamDom10() {
+      const min = 1;
+      const max = 9999999999;
+      const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
+      return String(randomNumber).padStart(10, "0");
+    },
+    getRamDom16() {
+      const min = 1;
+      const max = 9999999999999999;
+      const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min;
+      return String(randomNumber).padStart(16, "0");
+    },
+    getNowTime() {
+      const date = new Date();
+
+      const year = date.getFullYear();
+      const month = String(date.getMonth() + 1).padStart(2, "0");
+      const day = String(date.getDate()).padStart(2, "0");
+      const hour = String(date.getHours()).padStart(2, "0");
+      const minute = String(date.getMinutes()).padStart(2, "0");
+      const second = String(date.getSeconds()).padStart(2, "0");
+
+      return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
+    },
+    sendTask() {
+      var tType =
+        this.$store.state.userInfo.type == 1
+          ? "老师"
+          : this.$store.state.userInfo.type == 2
+          ? "学生"
+          : this.$store.state.userInfo.type == 3
+          ? "二级学院领导"
+          : this.$store.state.userInfo.type == 4
+          ? "院长"
+          : this.$store.state.userInfo.type == 5
+          ? "学术委员会"
+          : this.$store.state.userInfo.type == 6
+          ? "科研办"
+          : "管理员";
+      var nid =
+        "SC" +
+        this.getNowTimeByNumber() +
+        this.getRamDom4() +
+        this.getRamDom2();
+      let param = [
+        {
+          taskInfo: JSON.stringify({
+            inserttasks: [
+              {
+                app_id: this.getRamDom16(),
+                assignments: [
+                  {
+                    assign_dept: this.$store.state.userInfo.bm,
+                    assign_id: this.$store.state.userInfo.userid,
+                    assign_name: this.$store.state.userInfo.username,
+                  },
+                ],
+                biz_domain: this.$store.state.userInfo.bm,
+                biz_key: "bizkey_" + this.getRamDom7(),
+                created_by_depts: this.$store.state.userInfo.bm,
+                created_by_ids: this.$store.state.userInfo.userid,
+                created_by_names: this.$store.state.userInfo.username,
+                created_on: this.getNowTime(),
+                form_url: "",
+                form_url_view: "",
+                node_id: nid,
+                node_name: tType + "审核",
+                priority: 3,
+                process_delete_flag: 0,
+                process_id: "SC_leave_" + this.getRamDom10(),
+                process_instance_form_view: "",
+                process_instance_id:
+                  "SC" + this.getNowTimeByNumber() + this.getRamDom4(),
+                process_instance_image_url: "",
+                process_instance_initiator: this.$store.state.userInfo.username,
+                process_instance_initiator_dp: this.$store.state.userInfo.bm,
+                process_instance_initiator_id: "ampadmin",
+                process_instance_start_date: this.getNowTime(),
+                process_instance_status: "RUNNING",
+                process_instance_subject:
+                  "代办公文流程:" + this.$store.state.userInfo.username,
+                process_name: "代办公文流程:",
+                process_version: "1.0",
+                status: "COMPLETE",
+                subject:
+                  this.$store.state.userInfo.username +
+                  "_已完成代办公文操作-" +
+                  this.bookData.title,//用户名称_已完成代办公文操作-项目名称
+                task_delete_flag: 0,
+                task_id: nid,
+              },
+            ],
+            updatetasks: [],
+          }),
+        },
+      ];
+      this.ajax.post(this.$store.state.api + "/getTest", param).then(
+        (res) => {
+          console.log(res);
+        },
+        (err) => {
+          console.log(err);
+        }
+      );
+    },
+  },
+	computed:{
+	  showBtn(){
+			return this.typeListStatusNoShowBtn[this.$store.state.userInfo.type].includes(this.bookData['isupload']);
+		}
+	},
+
+  mounted() {
+    this.getData();
+    this.getPh();
+    this.getSign();
+  },
+	activated(){
+		this.getData();
+    this.getPh();
+    this.getSign();
+	}
+};
+</script>
+
+<style lang="less" scoped>
+.pBookBox {
+  display: flex;
+  flex-direction: row;
+  flex-wrap: nowrap;
+  align-items: center;
+  table {
+    position: relative;
+    color: black;
+    width: 1350px;
+    margin: 0 auto;
+    margin-top: 250px;
+    margin-bottom: 100px;
+    font-size: 16px;
+    font-family: \5b8b\4f53;
+    .onePage {
+      height: 300px;
+      width: 100%;
+      position: absolute;
+      text-align: center;
+      top: -180px;
+      .titSchool {
+        font-weight: 600;
+        font-size: 35px;
+        margin-bottom: 30px;
+        font-family: \9ed1\4f53;
+        letter-spacing: 10px;
+      }
+      .title {
+        // font-weight: 600;
+        font-size: 32px;
+        margin-bottom: 30px;
+        font-family: \9ed1\4f53;
+        letter-spacing: 5px;
+        color: #333333;
+      }
+      .dateCss {
+        text-align: right;
+        font-size: 18px;
+        width: 90%;
+        font-weight: 600;
+        font-family: \9ed1\4f53;
+        // margin-bottom: 100px;
+        letter-spacing: 5px;
+        color: #333333;
+      }
+    }
+    tr {
+      width: 100%;
+    }
+    tr td {
+      height: 60px;
+      width: 10%;
+      text-align: center;
+      box-sizing: border-box;
+      padding: 10px;
+      position: relative;
+      span {
+        color: red;
+      }
+      p {
+        text-align: left;
+      }
+      :deep(.el-textarea__inner) {
+        border: none;
+        resize: none;
+        font-size: 18px;
+      }
+      .addMessage {
+        display: flex;
+        flex-direction: row;
+        flex-wrap: nowrap;
+        align-items: baseline;
+        /deep/.el-button {
+          width: 80px;
+          height: 30px;
+          padding: 0;
+        }
+      }
+      .flexBox {
+        display: flex;
+        flex-direction: row;
+        flex-wrap: nowrap;
+        align-items: flex-start;
+        > div:nth-child(1) {
+          min-width: 85px;
+          font-weight: 600;
+        }
+      }
+      .disCss {
+        /deep/.el-textarea__inner {
+          background: #fff;
+          color: #000;
+          cursor: auto;
+        }
+      }
+    }
+    .bold {
+      font-weight: 600;
+    }
+    .qpItem {
+      min-height: 100px;
+      box-sizing: border-box;
+      padding-bottom: 20px;
+      position: relative;
+      > div:first-child {
+        text-align: left;
+        padding: 5px 15px;
+        min-height: 172px;
+        height: 172px;
+      }
+      > div:last-child {
+        position: absolute;
+        right: 30px;
+        bottom: 20px;
+      }
+    }
+  }
+  .flowPath {
+    position: relative;
+    height: 100%;
+    margin-left: 20px;
+    max-width: 220px;
+    .flowItem {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      align-items: flex-start;
+      min-height: 60px;
+      max-height: 100px;
+      padding-bottom: 15px;
+      box-sizing: border-box;
+      > div:first-child {
+        min-width: 20px;
+        width: 20px;
+        height: 20px;
+        border-radius: 50%;
+        background: #fc0;
+        z-index: 99;
+      }
+      > div:last-child {
+        padding-left: 15px;
+        font-weight: bold;
+      }
+    }
+    .flowItem1 {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      align-items: flex-start;
+      min-height: 60px;
+      padding-bottom: 15px;
+      box-sizing: border-box;
+      .isRight,
+      .isWrong,
+      .firstRight {
+        width: 20px;
+        min-width: 20px;
+        height: 20px;
+        background-size: 100% 100%;
+        background-repeat: no-repeat;
+        z-index: 99;
+      }
+      .isRight,
+      .firstRight {
+        background-image: url("../../../assets/img/right.png") !important;
+      }
+      .isWrong {
+        background-image: url("../../../assets/img/wrong.png") !important;
+      }
+
+      .flowNavBox {
+        font-weight: unset;
+        padding-left: 15px;
+        .flowTop {
+          display: flex;
+          flex-direction: column;
+          flex-wrap: nowrap;
+          align-items: flex-start;
+          font-size: 14px;
+          margin-bottom: 10px;
+          .flowTime {
+            margin-bottom: 5px;
+          }
+        }
+        .flowBottom {
+          display: flex;
+          flex-direction: column;
+          flex-wrap: nowrap;
+          align-items: flex-start;
+          .flowText {
+            font-weight: bold;
+          }
+          .flowReason {
+            max-height: 500px;
+            overflow: auto;
+          }
+        }
+      }
+    }
+  }
+  .flowPath::before {
+    position: absolute;
+    content: "";
+    width: 2px;
+    height: calc(100% - 95px);
+    background: #848484;
+    left: 9px;
+    top: 10px;
+    display: block;
+    z-index: 1;
+  }
+}
+.dialog_diy {
+  /deep/.el-dialog__header {
+    background: #32455b !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,
+  .el-dialog__footer {
+    background: #f2f2f2;
+    padding: 0;
+  }
+  .qpBox {
+    .topBox {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      align-items: center;
+      width: 100%;
+      padding: 15px 20px;
+      box-sizing: border-box;
+      border-bottom: 1px solid #999;
+      .topItem {
+        display: flex;
+        flex-direction: row;
+        flex-wrap: nowrap;
+        align-items: center;
+        cursor: pointer;
+        height: 20px;
+        margin-right: 15px;
+        .yuan,
+        .isYuan {
+          width: 10px;
+          height: 10px;
+          border-radius: 50%;
+          background: #f2f2f2;
+          border: 1px solid #000;
+          margin-right: 5px;
+        }
+        .isYuan {
+          background: #000 !important;
+        }
+      }
+    }
+    .qpPeople {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      align-items: center;
+      padding: 15px 20px;
+      border-bottom: 1px solid #999;
+      box-sizing: border-box;
+      > div:nth-child(1) {
+        margin-right: 10px;
+      }
+      /deep/.el-input__inner {
+        border: 1px solid #000;
+        width: 150px;
+        outline: none;
+        color: #000;
+        background: #fff;
+      }
+    }
+    .qpMessage {
+      display: flex;
+      flex-direction: row;
+      flex-wrap: nowrap;
+      align-items: flex-start;
+      width: 100%;
+      padding: 15px 20px;
+      .qpLeft {
+        /deep/.qpTextArea {
+          width: 800px;
+          height: 500px;
+          resize: none;
+          padding: 5px;
+        }
+      }
+      .qpRight {
+        margin-left: 20px;
+        .perPh {
+          display: flex;
+          flex-direction: column;
+          flex-wrap: nowrap;
+          align-items: flex-start;
+          /deep/.el-input__inner {
+            height: 30px;
+            margin: 10px 0;
+          }
+        }
+        .coPh {
+          .phItem {
+            display: flex;
+            flex-direction: row;
+            flex-wrap: nowrap;
+            align-items: center;
+            cursor: pointer;
+            height: 20px;
+            margin-right: 15px;
+            .yuan,
+            .isYuan {
+              width: 10px;
+              height: 10px;
+              border-radius: 50%;
+              background: #f2f2f2;
+              border: 1px solid #000;
+              margin-right: 5px;
+            }
+            .isYuan {
+              background: #000 !important;
+            }
+          }
+        }
+      }
+    }
+  }
+}
+
+// 滚动条样式
+.flowReason::-webkit-scrollbar-track-piece {
+  background-color: #f8f8f800;
+}
+.flowReason::-webkit-scrollbar {
+  width: 6px;
+  transition: all 2s;
+}
+.flowReason::-webkit-scrollbar-thumb {
+  background-color: #929292;
+  border-radius: 100px;
+}
+.flowReason::-webkit-scrollbar-thumb:hover {
+  background-color: #bbb;
+}
+.flowReason::-webkit-scrollbar-corner {
+  background-color: rgba(255, 255, 255, 0);
+}
+.defaultHeight{
+	min-height: 200px !important;
+}
+</style>

+ 19 - 19
src/views/projectApply/projectApplication.vue

@@ -253,14 +253,12 @@
           <template #default="scope">
             <div>
               <!-- {{ scope.row.isupload+"-"+scope.row.isReturn }} -->
-              <span v-if="scope.row.isReturn != 0">{{
+              <!-- <span v-if="scope.row.isReturn != 0">{{
                 isReturnType[scope.row.isReturn]
-              }}</span>
+              }}</span> -->
               <!-- {{scope.row.name + (scope.row.status==0?"":"(已屏蔽)")}} -->
               <!-- {{ (scope.row.isupload==0?"未审核": scope.row.data==1?"正在审核":"已审核")  }} -->
-              <span v-else>{{
-                classType.find((i) => i.value == scope.row.isupload)["title"]
-              }}</span>
+              <span>{{ classType.find((i) => i.value == scope.row.isupload)?scope.row.isReturn==0?classType.find((i) => i.value == scope.row.isupload)["title"]:classType.find((i) => i.value == scope.row.isupload)["fail"]:"-" }}</span>
 
               <!-- <span v-if="scope.row.isupload == 0">未审核</span>
               <span v-if="scope.row.isupload == 1">审核中</span>
@@ -377,7 +375,7 @@
 
               <el-button
                 v-if="
-                  [3, 5, 6, 7].includes(scope.row.isupload) &&
+                  [3, 5, 6, 7,8,9].includes(scope.row.isupload) &&
                   [0, 3].includes($store.state.userInfo.type)
                 "
                 type="primary"
@@ -590,14 +588,16 @@ export default {
       },
       tableData: [], //列表数据
       classType: [
-        { index: 0, value: "0", title: "未提交" },
-        { index: 1, value: "1", title: "已提交" },
-        { index: 2, value: "5", title: "所在学院审核中" },
-        { index: 3, value: "6", title: "双创学院审核中" },
-        { index: 4, value: "7", title: "学校终审中" },
-        { index: 5, value: "2", title: "待结项" },
-        { index: 6, value: "3", title: "提交结项中" },
-        { index: 7, value: "4", title: "已结项" },
+        { index: 0, value: "0", title: "未提交",fail:"未提交"},
+        { index: 1, value: "1", title: "已提交",fail:"已提交"},
+        { index: 2, value: "5", title: "所在学院审核中",fail:"所在学院审核不通过" },
+        { index: 3, value: "6", title: "双创学院审核中",fail:"双创学院审核不通过" },
+        { index: 4, value: "7", title: "学校终审中",fail:"学校终审不通过"},
+        { index: 5, value: "2", title: "待结项",fail:"待结项"},
+        { index: 6, value: "3", title: "所在学院结项审核中",fail:"所在学院结项审核不通过"},
+        { index: 7, value: "4", title: "已结项",fail:"已结项"},
+        { index: 8, value: "8", title: "双创学院结项审核中",fail:"双创学院结项审核不通过"},
+        { index: 9, value: "9",title:"  学校结项终审中",fail:"学校结项终审不通过"}
       ],
       // "0":'未提交',
       // '1':"已提交",
@@ -607,11 +607,11 @@ export default {
       // '2':"待结项",
       // '3':"提交结项中",
       // '4':'已结项',
-      isReturnType: {
-        5: "所在学院审核驳回",
-        6: "双创学院审核驳回",
-        7: "学校终审驳回",
-      },
+      // isReturnType: {
+      //   5: "所在学院审核驳回",
+      //   6: "双创学院审核驳回",
+      //   7: "学校终审驳回",
+      // },
 
       selectInp: {
         // 头部搜索框的内容

+ 49 - 8
src/views/projectManage/ProjectManagement.vue

@@ -234,9 +234,10 @@
 
               <!-- <span v-if="scope.row.isupload == 0">未审核</span>
               <span v-if="scope.row.isupload == 1">审核中</span> -->
-              <span v-if="scope.row.isupload == 2">进行中</span>
+              <!-- <span v-if="scope.row.isupload == 2">进行中</span>
               <span v-if="scope.row.isupload == 3">待结项</span>
-              <span v-if="scope.row.isupload == 4">已结项</span>
+              <span v-if="scope.row.isupload == 4">已结项</span> -->
+              <span>{{ options.state.find(i=>i.value==scope.row.isupload)?scope.row.isReturn!=0?options.state.find(i=>i.value==scope.row.isupload).fail:options.state.find(i=>i.value==scope.row.isupload).label:"-" }}</span>
             </div>
           </template>
         </el-table-column>
@@ -262,24 +263,33 @@
               > -->
               <el-button
                 type="primary"
-                v-show="scope.row.isupload == 2"
+                v-show="[2].includes(scope.row.isupload)"
                 @click="finish(scope.row)"
                 size="mini"
                 >提交结项</el-button
               >
               <el-button
                 type="primary"
-                v-show="scope.row.isupload == 3"
+                v-show="[3,8,9].includes(scope.row.isupload)"
                 @click="amendFinish(scope.row)"
                 size="mini"
                 >修改结项</el-button
               >
+
               <!-- <el-button
                 type="primary"
                 v-show="scope.row.isupload == 3"
                 size="mini"
                 >待结项</el-button
               > -->
+              <!-- <el-button
+                type="primary"
+                v-show="[3,8,9].includes(scope.row.isupload)"
+                disabled
+                class="disa"
+                size="mini"
+                >审核中</el-button
+              > -->
               <el-button
                 type="primary"
                 v-show="scope.row.isupload == 4"
@@ -531,11 +541,22 @@ export default {
           },
           {
             value: 3,
-            label: "待结项",
+            label: "所在学院结项审核中",
+            fail:"所在学院结项审核未通过"
           },
           {
-            value: 4,
-            label: "已结项",
+            value: 8,
+            label: "双创学院结项审核中",
+            fail:"双创学院结项审核未通过"
+          },
+          {
+            value:9,
+            label:"学校结项终审中",
+            fail:"学校结项终审未通过"
+          },
+          {
+            value:4,
+            label:"已结项"
           },
         ],
         yearData: [],
@@ -751,6 +772,19 @@ export default {
                   data[0].opinion = JSON.parse(data[0].opinion);
                 }
                 // data[0].money = JSON.parse(data[0].money);
+
+
+                data[0].budget = data[0].money?JSON.parse(data[0].money):{
+                    "device": 0,
+                    "Material": 0,
+                    "processing": 0,
+                    "Collaboration": 0,
+                    "APPRAISAL": 0,
+                    "entery": 0,
+                    "activities": 0,
+                    "Transaction": 0
+                }
+
                 data[0].money = data[0].money2?JSON.parse(data[0].money2):{
                     "device": 0,
                     "Material": 0,
@@ -761,7 +795,10 @@ export default {
                     "activities": 0,
                     "Transaction": 0
                 }
-                console.log("👉",data[0])
+
+
+
+                // console.log("👉",data[0])
                 data[0].ClosingstatementData = data[0].ClosingstatementData
                   ? JSON.parse(data[0].ClosingstatementData)
                   : this.submitData;
@@ -860,6 +897,8 @@ export default {
             data[0].ClosingstatementData
           );
 
+          console.log("👉xxx",data)
+
           data[0].budget = data[0].money?JSON.parse(data[0].money):{
               "device": 0,
               "Material": 0,
@@ -882,6 +921,8 @@ export default {
               "Transaction": 0
           };
 
+          console.log(data)
+
 
           // data[0].multiSelectProject=JSON.parse(data[0].multiSelectProject)
           if (data[0].opinion != null) {

+ 4 - 2
src/views/projectManage/components/Closingstatement.vue

@@ -2479,6 +2479,7 @@ table {
         padding: 5px 0 5px 0;
         border-bottom: 1px solid #cad1dc;
         .fileBox {
+          width: 98%;
           display: flex;
           flex-direction: row;
           flex-wrap: nowrap;
@@ -2486,6 +2487,7 @@ table {
           align-items: center;
 
           .fileBoxLeft {
+            width: 100%;
             cursor: pointer;
             display: flex;
             flex-direction: row;
@@ -2499,14 +2501,14 @@ table {
               background-image: url("../../../assets/img/u_video.png");
             }
             .titName {
-              width: calc(100% - 15px);
+              width: calc(100% - 40px);
               white-space: nowrap;
               overflow: hidden;
               text-overflow: ellipsis;
               word-break: break-word;
               text-align: left;
               margin-left: 10px;
-              max-width: calc(50vw / 2);
+              // max-width: calc(50vw / 2);
             }
           }
           .fileBoxRight {

+ 32 - 7
src/views/projectSettlement/projectSettlement.vue

@@ -190,8 +190,9 @@
         >
           <template #default="scope">
             <div>
-              <span v-if="scope.row.isupload == 3">待结项</span>
-              <span v-if="scope.row.isupload == 4">已结项</span>
+              <span>{{ options.state.find(i=>i.value==scope.row.isupload)?options.state.find(i=>i.value==scope.row.isupload)?.label:'-' }}</span>
+              <!-- <span v-if="scope.row.isupload == 3">待结项</span>
+              <span v-if="scope.row.isupload == 4">已结项</span> -->
             </div>
           </template>
         </el-table-column>
@@ -207,14 +208,14 @@
                 >查看详情</el-button
               >
 
-              <el-button
+              <!-- <el-button
                 type="primary"
                 v-if="scope.row.isupload == 3"
                 style="width: 73.3px"
                 @click="audit(scope.row.courseId, scope.row.title)"
                 size="mini"
                 >确认结项</el-button
-              >
+              > -->
               <el-button
                 type="info"
                 disabled
@@ -227,6 +228,19 @@
                 size="mini"
                 >已完结</el-button
               >
+
+              <el-button
+                type="info"
+                disabled
+                v-if="[3,8,9].includes(scope.row.isupload)"
+                style="
+                  background-color: #c8c9cc;
+                  border-color: #c8c9cc;
+                  cursor: no-drop;
+                "
+                size="mini"
+                >审核中</el-button
+              >
               <!-- <el-button type="primary" disabled v-if="scope.row.isupload==0" style="width: 73.3px;background-color: #c8c9cc;border-color: #c8c9cc;cursor: no-drop;"  @click="audit(scope.row.courseId,scope.row.title)" size="mini">审核</el-button> -->
 
               <!-- <el-button  type="primary" size="mini" @click="edit(scope.row.courseId,scope.row.typeid)">成果查看</el-button> -->
@@ -307,11 +321,22 @@ export default {
           },
           {
             value: 3,
-            label: "待结项",
+            label: "所在学院结项审核中",
+            fail:"所在学院结项审核未通过"
+          },
+          {
+            value: 8,
+            label: "双创学院结项审核中",
+            fail:"双创学院结项审核未通过"
+          },
+          {
+            value:9,
+            label:"学校终审中",
+            fail:"学校终审未通过"
           },
           {
-            value: 4,
-            label: "已结项",
+            value:4,
+            label:"已结项"
           },
         ],
       },