|
@@ -0,0 +1,988 @@
|
|
|
+<template>
|
|
|
+ <div id="studentProjectWord">
|
|
|
+ <div id="title">
|
|
|
+ <div class="school">深圳技师学院</div>
|
|
|
+ <div class="wordTitle">学 生 创 客 项 目 申 报 书</div>
|
|
|
+ <div class="date">申请日期:{{wordData.applicationDate}}</div>
|
|
|
+ </div>
|
|
|
+ <table border="1" cellspacing="0" class="table">
|
|
|
+
|
|
|
+ <tr id="projectName">
|
|
|
+ <td colspan="2" ref="projectName">项目名称</td><td colspan="5" >
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+
|
|
|
+ placeholder="请输入项目名称"
|
|
|
+ v-model="wordData.projectName">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="radio">
|
|
|
+ <td rowspan="2" colspan="2" ref="radio">项目分组</td><td>
|
|
|
+ <el-radio v-model="wordData.radio" label="ed917c55-f51d-11ed-a3f6-509a4c5b67cf">创意组</el-radio>
|
|
|
+ </td>
|
|
|
+ <td colspan="4">立项项目为新立项项目,项目成果应具有较好的创意和较为成型的产品原型或能提供较好的商业模式,产生较好的社会效益。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>
|
|
|
+ <el-radio v-model="wordData.radio" label="f3068e26-f51d-11ed-a3f6-509a4c5b67cf">初创组</el-radio>
|
|
|
+ </td>
|
|
|
+ <td colspan="4">立项项目为学校已结题学生创客项目或已入驻学校创业孵化基地的学生初创企业项目(毕业两年内),项目成果应为原结题项目基础上的技术升级、企业注册、规模扩张。</td>
|
|
|
+ </tr>
|
|
|
+ <tr id="checkList">
|
|
|
+ <td colspan="2" ref="checkList">优先支持项目(可多选)</td> <td colspan="5">
|
|
|
+ <el-checkbox-group v-model="wordData.checkList">
|
|
|
+ <el-checkbox label="1">大赛选拔项目</el-checkbox>
|
|
|
+ <el-checkbox label="2">大赛选拔项目</el-checkbox>
|
|
|
+ <el-checkbox label="3">社会征集项目</el-checkbox>
|
|
|
+ <el-checkbox label="4">产业命题项目</el-checkbox>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="schoolRadio">
|
|
|
+ <td colspan="2" ref="schoolRadio">美丽校园改造项目(特色项目)</td> <td colspan="5">
|
|
|
+ <el-radio v-model="wordData.schoolRadio" label="1">校园安全项目</el-radio>
|
|
|
+ <el-radio v-model="wordData.schoolRadio" label="2">环境治理项目</el-radio>
|
|
|
+ <el-radio v-model="wordData.schoolRadio" label="3">校园服务项目</el-radio>
|
|
|
+ <el-radio v-model="wordData.schoolRadio" label="4">文创装置项目</el-radio>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="applyParsonRadio">
|
|
|
+ <td colspan="2" ref="applyParsonRadio" >项 目 申 请 人</td><td colspan="2">
|
|
|
+ <el-radio v-model="wordData.applyParsonRadio" label="1">在校学生</el-radio>
|
|
|
+ </td><td colspan="3">
|
|
|
+ <el-radio v-model="wordData.applyParsonRadio" label="2">入驻学校孵化基地的初创企业法人</el-radio>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="applyParsonName">
|
|
|
+ <td colspan="2" ref="applyParsonName">申 请 人 姓 名</td><td colspan="1">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ v-model="wordData.applyParsonName">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td ref="college">参与学院/公司</td>
|
|
|
+ <td>
|
|
|
+ <el-select v-model="wordData.college" style="width: 100%;" placeholder="请选择所在学院">
|
|
|
+ <el-option
|
|
|
+ v-for="item in DepartmentData"
|
|
|
+ :key="item.id"
|
|
|
+ :label="item.name"
|
|
|
+ :value="item.id">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </td><td ref="tel">联系电话</td><td>
|
|
|
+ <el-input type="number" v-model="wordData.tel" @blur="getText(wordData.tel)" placeholder="请输入联系方式"></el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="beginTime">
|
|
|
+ <td colspan="2" ref="beginTime">项 目 起 始 时 间</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="wordData.beginTime"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择项目计划完成时间"
|
|
|
+ prefix-icon="none"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ <!-- value-format="yyyy-MM-dd HH:mm:ss"> -->
|
|
|
+
|
|
|
+ </el-date-picker></td>
|
|
|
+ <td ref="endTime">计划完成时间</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="wordData.endTime"
|
|
|
+ type="date"
|
|
|
+ placeholder="请选择项目计划完成时间"
|
|
|
+ prefix-icon="none"
|
|
|
+ value-format="yyyy-MM-dd">
|
|
|
+ <!-- value-format="yyyy-MM-dd HH:mm:ss"> -->
|
|
|
+
|
|
|
+ </el-date-picker>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">项 目 组 人 数</td>
|
|
|
+ <td>
|
|
|
+
|
|
|
+ {{ wordData.studentS.length + wordData.teacherS.length }}
|
|
|
+
|
|
|
+ </td>
|
|
|
+ <td>参与学生人数</td>
|
|
|
+ <td>
|
|
|
+
|
|
|
+ {{ wordData.studentS.length }}
|
|
|
+ </td>
|
|
|
+ <td>参与教师人数</td>
|
|
|
+ <td>
|
|
|
+ {{ wordData.teacherS.length }}
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="studentS">
|
|
|
+ <td :rowspan="wordData.studentS.length+1" ref="studentS">项目组学生成员(至少2个学院以上学生构成,团队5人以上)</td><td>姓名</td><td colspan="2">所在学院/部门/专业</td><td colspan="3">项目组角色分工</td>
|
|
|
+ </tr>
|
|
|
+ <tr style="position: relative;" v-for="(item,index) in wordData.studentS" :key="index+'a'">
|
|
|
+ <td>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ v-model="item.name">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入所在学院/部门/专业"
|
|
|
+ v-model="item.collage">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="3">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入项目组角色分工"
|
|
|
+ v-model="item.work">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <div class="operate">
|
|
|
+ <el-button @click="addStudent" v-if="wordData.studentS.length==index+1" type="primary" size="mini">添加</el-button>
|
|
|
+ <el-button v-if="wordData.studentS.length>6" @click="DelStudent(index)" type="primary" size="mini">删除</el-button>
|
|
|
+ </div>
|
|
|
+ </tr>
|
|
|
+ <tr id="teacherS">
|
|
|
+ <td :rowspan="wordData.teacherS.length+1" ref="teacherS">项目组指导教师(2个学院以上,团队2-3人)</td><td>姓名</td><td colspan="2">所在学院/部门/专业</td><td colspan="3">项目组角色分工</td>
|
|
|
+ </tr>
|
|
|
+ <tr style="position: relative !important;" v-for="(item,index) in wordData.teacherS" :key="index+'b'">
|
|
|
+ <td>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ v-model="item.name">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入所在学院/部门/专业"
|
|
|
+ v-model="item.collage">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="3">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入项目组角色分工"
|
|
|
+ v-model="item.work">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <div class="operate">
|
|
|
+ <el-button @click="addTeacher" v-if="wordData.teacherS.length==index+1" type="primary" size="mini">添加</el-button>
|
|
|
+ <el-button v-if="wordData.teacherS.length!=2" @click="DelTeacher(index)" type="primary" size="mini">删除</el-button>
|
|
|
+ </div>
|
|
|
+ <!-- <div style="position: absolute;">
|
|
|
+ <div>+</div>
|
|
|
+ <div>_</div>
|
|
|
+ </div> -->
|
|
|
+ </tr>
|
|
|
+ <tr id="brief">
|
|
|
+ <td rowspan="5" ref="brief">研发内容</td><td style="text-align: left;position: relative;" colspan="6" class="textLeft">
|
|
|
+ <p>项目简介(200-300字)</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="6"
|
|
|
+ resize="none"
|
|
|
+ placeholder="请输入项目简介"
|
|
|
+ style="width: 100%;"
|
|
|
+ v-model="wordData.brief">
|
|
|
+ </el-input>
|
|
|
+ <div style="color: #ccc;position: absolute;right: 60px;bottom: 10px;">{{ wordData.brief.length }}/300</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>项目研发背景</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.back">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>项目创新点</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.innovate">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>技术研发路线</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.path">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>项目应用场景 </p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.scene">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>商业模式及社会价值</td>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>项目商业模式/社会价值</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.worth">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>团队优势</td>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>团队构成及优势</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.team">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>研发成本</td>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>研发成本来源及构成</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.cost">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="3">预期成果</td>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <p>项目预期成果、数量及形式(产品原型/发明专利/双创竞赛/成果转化/社会效益)</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.expectResults">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr class="textLeft">
|
|
|
+ <td style="text-align: left;" colspan="6">
|
|
|
+ <p>学生创客人才培养预期成果、数量(教师填写)</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.expectResultsTeacher">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr class="textLeft">
|
|
|
+ <td style="text-align: left;" colspan="6">
|
|
|
+ <p>项目预期孵化、转化创业项目情况</p>
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.expectConversion">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>实施计划</td>
|
|
|
+ <td style="text-align: left;" colspan="6" class="textLeft">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :autosize="{ minRows: 6, maxRows: 20}"
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ v-model="wordData.introduce.plan">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr id="fund">
|
|
|
+ <td rowspan="12" ref="fund">预算经费</td><td>总经费</td><td colspan="5">
|
|
|
+ {{ reversedMessage==0?'':reversedMessage}}元
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>支出类别</td><td colspan="2">支出项目</td><td>金额(元)</td><td colspan="4">备 注</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="5">直接费用</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">小型仪器设备费</td>
|
|
|
+ <td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="小型仪器设备费"
|
|
|
+ v-model="wordData.fund.facility">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">材料费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="材料费"
|
|
|
+ v-model="wordData.fund.materials">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">测试化验加工费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="测试化验加工费"
|
|
|
+ v-model="wordData.fund.process">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">项目协作费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="项目协作费"
|
|
|
+ v-model="wordData.fund.assist">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 按合同规定支付给协作单位的费用
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td rowspan="5">间接费用</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">项目成果鉴定费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="项目成果鉴定费"
|
|
|
+ v-model="wordData.fund.authenticate">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 学术会务费、评审费、鉴定费、成果集制作费等费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">参展参赛费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="参展参赛费"
|
|
|
+ v-model="wordData.fund.match">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">创客交流活动费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="创客交流活动费"
|
|
|
+ v-model="wordData.fund.activity">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="2">知识产权事务费</td><td>
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ style="width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ placeholder="知识产权事务费"
|
|
|
+ v-model="wordData.fund.affair">
|
|
|
+ </el-input>
|
|
|
+ </td><td colspan="2">
|
|
|
+ 论文版面费、专利及其他知识产权事务等费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>所在学院/部门意见</td><td colspan="6" class="textLeft">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="7"
|
|
|
+ resize="none"
|
|
|
+ disabled
|
|
|
+ style="width: 100%;"
|
|
|
+ v-model="input">
|
|
|
+ </el-input>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 80%;margin-bottom: 20px;">负责人签章:</div>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 90%;">年 月 日</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>财务部门意见</td><td colspan="6" class="textLeft">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="7"
|
|
|
+ resize="none"
|
|
|
+ disabled
|
|
|
+ style="width: 100%;"
|
|
|
+ v-model="input">
|
|
|
+ </el-input>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 80%;margin-bottom: 20px;">负责人签章:</div>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 90%;">年 月 日</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td>创新创业学院审核意见</td><td colspan="6" class="textLeft">
|
|
|
+ <el-input
|
|
|
+ type="textarea"
|
|
|
+ :rows="7"
|
|
|
+ style="background-color: #fff;width: 100%;"
|
|
|
+ resize="none"
|
|
|
+ disabled
|
|
|
+ v-model="input">
|
|
|
+ </el-input>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 80%;margin-bottom: 20px;">负责人签章:</div>
|
|
|
+ <div style="text-align: right;font-size: 18px;width: 90%;">年 月 日</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ </table>
|
|
|
+ <div class="notes">
|
|
|
+ <span>备注:</span>
|
|
|
+ <span>1.表格可顺延或另附页。</span>
|
|
|
+ <span>2.优先支持项目需提供与研发项目相关的实证材料并查看原件。</span>
|
|
|
+ <span>3.初创组已结题项目申请需提供结题验收证明、初创企业申请需提供入驻学校孵化基地协议书及公司营业执照。</span>
|
|
|
+ <div style="width: 300px;margin: 20px auto;display: flex;justify-content: space-between;">
|
|
|
+ <el-button style="width: 120px;margin: 20px auto;" @click="test" type="primary">立即修改</el-button>
|
|
|
+ <el-button style="width: 120px;margin: 20px auto;" @click="downloadDig=true" type="primary">下载文档</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <!-- 立即修改开始 -->
|
|
|
+ <el-dialog
|
|
|
+ title="立即修改"
|
|
|
+ :visible.sync="updatedWordDig"
|
|
|
+ width="600px"
|
|
|
+ class="pageSubmitData">
|
|
|
+ <div class="addDialogLogo">LOGO</div>
|
|
|
+ <div class="deleteContent">确定提交修改?</div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="updatedWord" class="AllDialogBtn">确认</el-button>
|
|
|
+ <el-button @click="updatedWordDig=false" class="AllDialogBtn" >取消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 立即修改结束-->
|
|
|
+
|
|
|
+ <!-- 立即修改开始 -->
|
|
|
+ <el-dialog
|
|
|
+ title="下载文档"
|
|
|
+ :visible.sync="downloadDig"
|
|
|
+ width="600px"
|
|
|
+ class="pageSubmitData">
|
|
|
+ <div class="addDialogLogo">LOGO</div>
|
|
|
+ <div class="deleteContent">确定下载文档?</div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="downloadWord" class="AllDialogBtn">确认</el-button>
|
|
|
+ <el-button @click="downloadDig=false" class="AllDialogBtn" >取消</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+ <!-- 立即修改结束-->
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <script>
|
|
|
+ import {getNowDate} from '@/components/tool/Date.js'
|
|
|
+ import { getWord } from '@/components/tool/getWord';
|
|
|
+ export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+
|
|
|
+ input:"",
|
|
|
+ DepartmentData:[], //部门学院
|
|
|
+ downloadDig:false, //下载文档对话框
|
|
|
+ updatedWordDig:false, //立即修改对话框
|
|
|
+ downWordData:{},
|
|
|
+ wordData:{
|
|
|
+ applicationDate:getNowDate(1),//申请日期
|
|
|
+ projectName:'',
|
|
|
+ radio:'',
|
|
|
+ checkList:[],
|
|
|
+ schoolRadio:'',
|
|
|
+ applyParsonRadio:'',
|
|
|
+ applyParsonName:'',
|
|
|
+ college:'',
|
|
|
+ tel:'',
|
|
|
+ beginTime:'',
|
|
|
+ endTime:'',
|
|
|
+ studentS:[
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ ],
|
|
|
+ teacherS:[
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ {name:'',collage:'',work:''},
|
|
|
+ ],
|
|
|
+ brief:'',
|
|
|
+ introduce:{
|
|
|
+ back:'',
|
|
|
+ innovate:'',
|
|
|
+ path:'',
|
|
|
+ scene:'',
|
|
|
+ worth:'',
|
|
|
+ team:'',
|
|
|
+ cost:'',
|
|
|
+ expectResults:'',
|
|
|
+ expectResultsTeacher:'',
|
|
|
+ expectConversion:'',
|
|
|
+ plan:''
|
|
|
+ },
|
|
|
+ total:'',
|
|
|
+ fund:{
|
|
|
+ facility:'',
|
|
|
+ materials:'',
|
|
|
+ process:'',
|
|
|
+ assist:'',
|
|
|
+ authenticate:'',
|
|
|
+ match:'',
|
|
|
+ activity:'',
|
|
|
+ affair:''
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ getText(value) { //电话验证
|
|
|
+ let verify = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/; //获取正则表达式 存放到verify变量中
|
|
|
+ let result = verify.test(value.trim()); //判断输入框内容是否符合 正则表达式
|
|
|
+ if(!result) return this.$message.error('请输入正确联系号码格式')
|
|
|
+ },
|
|
|
+ addTeacher(){ //添加老师
|
|
|
+ if (this.wordData.teacherS.length>=3) return this.$message.error('指导老师最多三人')
|
|
|
+ this.wordData.teacherS.push({name:"",collage:"",work:""});
|
|
|
+ },
|
|
|
+ DelTeacher(index){ //删除老师
|
|
|
+ this.wordData.teacherS.splice(index,1)
|
|
|
+ },
|
|
|
+ addStudent(){ //添加学生
|
|
|
+ this.wordData.studentS.push({name:"",collage:"",work:""});
|
|
|
+ },
|
|
|
+ DelStudent(index){ //删除学生
|
|
|
+ this.wordData.studentS.splice(index,1)
|
|
|
+ },
|
|
|
+ getProjectDepartmentData(){ //获取项目立项申请基础信息页面所在部门数据
|
|
|
+ this.ajax.get(this.$store.state.api+'/SelectAllDepartment',{
|
|
|
+ uid:this.$store.state.userInfo.userid
|
|
|
+ }).then(res=>{
|
|
|
+ this.DepartmentData = res.data[0]
|
|
|
+ },err=>{
|
|
|
+ console.log(err);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getData(){
|
|
|
+ let param={
|
|
|
+ uid:this.$store.state.userInfo.userid,
|
|
|
+ cid:this.$route.query['pid']
|
|
|
+ }
|
|
|
+
|
|
|
+ this.ajax
|
|
|
+ .get(this.$store.state.api+'/studentProjectData',param)
|
|
|
+ .then(res=>{
|
|
|
+ let data=res.data[0][0];
|
|
|
+ // console.log(data);
|
|
|
+ this.wordData.projectName=data.title;
|
|
|
+ this.wordData.radio=data.typeName;
|
|
|
+ this.wordData.checkList=JSON.parse(data.multiSelectProject);
|
|
|
+ this.wordData.schoolRadio=data.schoolRemould;
|
|
|
+ this.wordData.applyParsonRadio=data.projectApplyperson;
|
|
|
+ this.wordData.applyParsonName=data.pro_leader;
|
|
|
+ this.wordData.college=data.classid;
|
|
|
+ this.wordData.tel=data.phone;
|
|
|
+ this.wordData.beginTime=data.begin_at;
|
|
|
+ this.wordData.endTime=data.plannedEnd_at;
|
|
|
+ this.wordData.studentS=JSON.parse(data.course_student);
|
|
|
+ this.wordData.teacherS=JSON.parse(data.course_teacher);
|
|
|
+ this.wordData.brief=data.brief;
|
|
|
+ this.wordData.introduce=JSON.parse(data.chapters)
|
|
|
+ this.wordData.fund=JSON.parse(data.money)
|
|
|
+ this.downWordData={...this.wordData,...{etime:data.eTime,btime:data.bTime,dp:data.className}}
|
|
|
+ },err=>{
|
|
|
+ console.log(err);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ test(){
|
|
|
+ const cEmpty = /^\s*$/g;
|
|
|
+ for (let i in this.wordData){
|
|
|
+ // console.log(this.wordData[i],i);
|
|
|
+ switch(i){
|
|
|
+ case 'projectName':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请输入项目名称')
|
|
|
+ // this.$refs.projectName.style.background='rgb(236, 141, 141)'
|
|
|
+ // setTimeout(() => {
|
|
|
+ // this.$refs.projectName.style.background='#ffffff'
|
|
|
+ // }, 2000);
|
|
|
+ document.querySelector('#projectName').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'radio':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择项目分组')
|
|
|
+ document.querySelector('#radio').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'checkList':
|
|
|
+ if (this.wordData[i].length==0) {
|
|
|
+ this.$message.error('优先支持项目')
|
|
|
+ document.querySelector('#checkList').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'schoolRadio':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择美丽校园改造项目')
|
|
|
+ document.querySelector('#schoolRadio').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'applyParsonRadio':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择项目申请人')
|
|
|
+ document.querySelector('#applyParsonRadio').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'applyParsonName':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请填写申请人姓名')
|
|
|
+ document.querySelector('#applyParsonName').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'college':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择所在学院')
|
|
|
+ document.querySelector('#applyParsonName').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'tel':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请填写联系方式')
|
|
|
+ document.querySelector('#applyParsonName').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'beginTime':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择项目起始时间')
|
|
|
+ document.querySelector('#beginTime').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'endTime':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请选择计划完成时间')
|
|
|
+ document.querySelector('#beginTime').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'studentS':
|
|
|
+ let snum = 0;
|
|
|
+ this.wordData[i].forEach(item=>{
|
|
|
+ for(let j in item){
|
|
|
+ if(cEmpty.test(item[j])){
|
|
|
+ snum++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if(snum>0){
|
|
|
+ this.$message.error("请填完学生信息");
|
|
|
+ document.querySelector('#studentS').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ // }
|
|
|
+ break;
|
|
|
+ case 'teacherS':
|
|
|
+ let num = 0;
|
|
|
+ this.wordData[i].forEach(item=>{
|
|
|
+ for(let j in item){
|
|
|
+ if(cEmpty.test(item[j])){
|
|
|
+ num++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ if(num>0){
|
|
|
+ this.$message.error("请填完老师信息");
|
|
|
+ document.querySelector('#teacherS').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'brief':
|
|
|
+ if (cEmpty.test(this.wordData[i])) {
|
|
|
+ this.$message.error('请填写项目简介')
|
|
|
+ document.querySelector('#brief').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'fund':
|
|
|
+ let mon=this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.wordData.fund.assist*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1
|
|
|
+ if(mon==0){
|
|
|
+ document.querySelector('#fund').scrollIntoView({ behavior: "smooth" });
|
|
|
+ return this.$message.error('请输入经费')
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.wordData['total']=this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.wordData.fund.assist*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1
|
|
|
+ this.updatedWordDig=true
|
|
|
+
|
|
|
+ },
|
|
|
+ updatedWord(){
|
|
|
+ let param={
|
|
|
+ uid:this.$store.state.userInfo.userid,//用户ID
|
|
|
+ cid:this.$route.query['pid'],
|
|
|
+ tid:"5e21b204-c206-11ed-a4cd-509a4c5b67cf",//特色创客空间建设项目分类ID
|
|
|
+ tit:this.wordData['projectName'],//项目名称
|
|
|
+ radio:this.wordData['radio'],//项目分组
|
|
|
+ checkList:JSON.stringify(this.wordData['checkList']),//优先支持项目
|
|
|
+ schoolRadio:this.wordData['schoolRadio'],//美丽校园改造项目
|
|
|
+ applyParsonRadio:this.wordData['applyParsonRadio'],//项 目 申 请 人
|
|
|
+ applyParsonName:this.wordData['applyParsonName'],//申请人姓名
|
|
|
+ coid:this.wordData['college'],//学院ID,
|
|
|
+ tel:this.wordData['tel'],//联系电话
|
|
|
+ beh:this.wordData['beginTime'],//项目开始时间,
|
|
|
+ planEnd:this.wordData['endTime'],//计划完成时间,
|
|
|
+ cs:JSON.stringify(this.wordData['studentS']),//学生组,
|
|
|
+ ct:JSON.stringify(this.wordData['teacherS']),//教师组,
|
|
|
+ bf:this.wordData['brief'],//项目简介
|
|
|
+ introduce:JSON.stringify(this.wordData['introduce']),//项目详细
|
|
|
+ mon:JSON.stringify(this.wordData['fund']),//预算经费
|
|
|
+ f:this.wordData['total'],//总经费
|
|
|
+ apply:this.wordData['applicationDate'],//申请日期
|
|
|
+ }
|
|
|
+ console.log(param);
|
|
|
+ // return console.log(param);
|
|
|
+ this.ajax
|
|
|
+ .post(this.$store.state.api+'/updateStudentProjectData',param)
|
|
|
+ .then(res=>{
|
|
|
+ console.log(res);
|
|
|
+ },err=>{
|
|
|
+ console.log(err);
|
|
|
+ })
|
|
|
+ },
|
|
|
+ downloadWord(){
|
|
|
+ this.wordData['total']=this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.wordData.fund.assist*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1
|
|
|
+ getWord(this.downWordData)
|
|
|
+ this.downloadDig=false;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ computed:{ //经费总合
|
|
|
+ reversedMessage: function () {
|
|
|
+ return (this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.wordData.fund.assist*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mounted(){
|
|
|
+ this.getProjectDepartmentData()
|
|
|
+ this.getData()
|
|
|
+ // console.log(this.$route.query['pid']);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ </script>
|
|
|
+
|
|
|
+ <style lang="less" scoped>
|
|
|
+ #studentProjectWord{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ background-color: #ffff;
|
|
|
+ margin: 0;
|
|
|
+ padding:40px 100px;
|
|
|
+ box-sizing:border-box;
|
|
|
+ #title{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction: column;
|
|
|
+ align-items: center;
|
|
|
+ position: relative;
|
|
|
+ // margin-top: 40px;
|
|
|
+ .school{
|
|
|
+ font-size: 2.5em;
|
|
|
+ font-weight: bold;
|
|
|
+ letter-spacing: 20px;
|
|
|
+ }
|
|
|
+ .wordTitle{
|
|
|
+ font-size: 2em;
|
|
|
+ letter-spacing: .15em;
|
|
|
+ margin-bottom:40px ;
|
|
|
+ }
|
|
|
+ .date{
|
|
|
+
|
|
|
+ font-size: 1em;
|
|
|
+ position: absolute;
|
|
|
+ bottom: 0;
|
|
|
+ right: 100px;
|
|
|
+ font-weight: bold;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .table{
|
|
|
+ border: none;
|
|
|
+ border-top: solid 1px black;
|
|
|
+ border-right: solid 1px black;
|
|
|
+ .textLeft{
|
|
|
+ :deep(.el-textarea__inner){
|
|
|
+ border: none ;
|
|
|
+ border-radius: 0px;
|
|
|
+ text-align: left !important;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tr td{
|
|
|
+ border: none;
|
|
|
+ border-bottom: solid 1px black;
|
|
|
+ border-left: solid 1px black;
|
|
|
+ height: 50px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 30px;
|
|
|
+ width: 14.3%;
|
|
|
+ p{
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+ :deep(.el-select .el-input .el-select__caret){
|
|
|
+ display: none;
|
|
|
+ }
|
|
|
+ :deep(.el-textarea__inner){
|
|
|
+ // padding: 0;
|
|
|
+ border: none ;
|
|
|
+ border-radius: 0px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ :deep(.el-input__inner){
|
|
|
+ border: none ;
|
|
|
+ border-radius: 0px;
|
|
|
+ text-align: center;
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ :deep(input)::-webkit-outer-spin-button,
|
|
|
+ :deep(input)::-webkit-inner-spin-button {
|
|
|
+ -webkit-appearance: none;
|
|
|
+ }
|
|
|
+ :deep(input)[type="number"]{
|
|
|
+ -moz-appearance: textfield;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ .notes{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ flex-direction:column;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ .operate{
|
|
|
+ right:-85px;
|
|
|
+ width:85px;
|
|
|
+ height: 50px;
|
|
|
+ display:flex;
|
|
|
+ justify-content:space-between;
|
|
|
+ align-items:center;
|
|
|
+ position:absolute;
|
|
|
+ .el-button{
|
|
|
+ max-width:10px;
|
|
|
+ display:flex;
|
|
|
+ justify-content:center;
|
|
|
+ align-items:center;
|
|
|
+ margin-left:10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ </style>
|