|
@@ -6,6 +6,19 @@
|
|
|
<div class="date">申请日期:{{wordData.applicationDate}}</div>
|
|
|
</div>
|
|
|
<table border="1" cellspacing="0" class="table">
|
|
|
+ <tr>
|
|
|
+ <td colspan="4">关联项目</td>
|
|
|
+ <td colspan="12">
|
|
|
+ <el-select v-model="wordData['associatedProjects']" @change="checkProjectMoney()" style="width: 100%;" placeholder="请选择关联项目(无关联项目可为空)">
|
|
|
+ <el-option
|
|
|
+ v-for="item in ProjectData"
|
|
|
+ :key="item.courseId"
|
|
|
+ :label="item.title"
|
|
|
+ :value="item.courseId">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
<tr>
|
|
|
<td colspan="4">活动名称</td>
|
|
|
<td colspan="5">
|
|
@@ -13,8 +26,8 @@
|
|
|
type="textarea"
|
|
|
autosize
|
|
|
resize="none"
|
|
|
- placeholder="请输入项目名称"
|
|
|
- v-model="input">
|
|
|
+ placeholder="请输入活动名称"
|
|
|
+ v-model="wordData['activityName']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
<td colspan="3">预算经费</td>
|
|
@@ -24,7 +37,7 @@
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入预算经费"
|
|
|
- v-model="input">
|
|
|
+ v-model="total">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
@@ -35,60 +48,78 @@
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入负责人"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['pro_leader']">
|
|
|
</el-input>
|
|
|
</td><td colspan="2">所在部门</td><td colspan="3">
|
|
|
- <el-input
|
|
|
+ <!-- <el-input
|
|
|
type="textarea"
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入所在部门"
|
|
|
- v-model="input">
|
|
|
- </el-input>
|
|
|
+ v-model="wordData['college']">
|
|
|
+ </el-input> -->
|
|
|
+ <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 colspan="2">联系电话</td><td colspan="3">
|
|
|
<el-input
|
|
|
type="textarea"
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入联系电话"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['tel']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td colspan="4">活动时间</td>
|
|
|
<td colspan="5">
|
|
|
- <el-date-picker
|
|
|
- v-model="wordData.endTime"
|
|
|
+ <el-date-picker
|
|
|
+ v-model="wordData['activityTime']"
|
|
|
+ type="daterange"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ range-separator="至"
|
|
|
+ prefix-icon="none"
|
|
|
+ start-placeholder="项目起始时间"
|
|
|
+ end-placeholder="项目完成时间">
|
|
|
+ </el-date-picker>
|
|
|
+ <!-- <el-date-picker
|
|
|
+ v-model="wordData['']"
|
|
|
type="date"
|
|
|
placeholder="请选择活动时间"
|
|
|
prefix-icon="none"
|
|
|
value-format="yyyy-MM-dd HH:mm:ss">
|
|
|
- </el-date-picker>
|
|
|
+ </el-date-picker> -->
|
|
|
</td>
|
|
|
<td colspan="3">参与学生人数</td><td colspan="5">
|
|
|
<el-input
|
|
|
type="number"
|
|
|
autosize
|
|
|
+ :min="0"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- placeholder=""
|
|
|
- v-model="input">
|
|
|
+ placeholder="请输入参与学生人数"
|
|
|
+ v-model="wordData['student']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
|
|
|
|
<tr>
|
|
|
- <td colspan="2" rowspan="6"><p>活</p> <p>动</p> <p>指</p> <p>导</p> <p>老</p> <p>师</p></td><td colspan="2">姓名</td><td colspan="3">工作单位/部门</td><td colspan="9">项目分工</td>
|
|
|
+ <td colspan="2" :rowspan="wordData['member'].length+1"><p>活</p> <p>动</p> <p>指</p> <p>导</p> <p>老</p> <p>师</p></td><td colspan="2">姓名</td><td colspan="3">工作单位/部门</td><td colspan="9">项目分工</td>
|
|
|
</tr>
|
|
|
- <tr v-for="(item,index) in wordData.member" :key="index+'b'">
|
|
|
+ <tr v-for="(item,index) in wordData['member']" :key="index+'b'">
|
|
|
<td colspan="2" style="border-left: none;">
|
|
|
<el-input
|
|
|
type="textarea"
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入姓名"
|
|
|
- v-model="input">
|
|
|
+ v-model="item['name']">
|
|
|
</el-input>
|
|
|
</td><td colspan="3">
|
|
|
<el-input
|
|
@@ -96,7 +127,7 @@
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入工作单位/部门"
|
|
|
- v-model="input">
|
|
|
+ v-model="item['collage']">
|
|
|
</el-input>
|
|
|
</td><td colspan="10">
|
|
|
<el-input
|
|
@@ -104,9 +135,13 @@
|
|
|
autosize
|
|
|
resize="none"
|
|
|
placeholder="请输入项目分工"
|
|
|
- v-model="input">
|
|
|
+ v-model="item['work']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
+ <div class="operate">
|
|
|
+ <el-button @click="addPerson" v-if="wordData['member'].length-1==index" type="primary" size="mini">添加</el-button>
|
|
|
+ <el-button @click="DelPerson(index)" type="primary" size="mini">删除</el-button>
|
|
|
+ </div>
|
|
|
</tr>
|
|
|
<tr class="textLeft">
|
|
|
<td colspan="2"><p>活动</p><br> <p>计划</p></td><td style="text-align: left;" colspan="15">
|
|
@@ -115,7 +150,7 @@
|
|
|
:rows="12"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['activityPlan']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
@@ -126,7 +161,7 @@
|
|
|
:rows="10"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['expectations']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
@@ -138,7 +173,7 @@
|
|
|
:rows="12"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['eventAudience']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
@@ -163,37 +198,149 @@
|
|
|
:rows="10"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- v-model="input">
|
|
|
+ v-model="wordData['fundingPlan']">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td rowspan="11"><p>预</p> <p>算</p> <p>经</p> <p>费</p></td>
|
|
|
+ <td rowspan="14"><p>预</p> <p>算</p> <p>经</p> <p>费</p></td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td rowspan="4" style="border-left: none;">总经费</td><td rowspan="4" colspan="2" >元</td>
|
|
|
+ <td rowspan="4" style="border-left: none;">总经费</td><td rowspan="4" colspan="2" >{{total}}元</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td colspan="12" style="border-left: none;">经费月支出计划</td>
|
|
|
+ <td colspan="12" style="border-left: none;">经费月支出计划 (元)</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td style="border-left: none;">1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td><td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td>
|
|
|
+ <td style="border-left: none;">第1个月</td><td>第2个月</td><td>第3个月</td><td>第4个月</td><td>第5个月</td><td>第6个月</td><td>第7个月</td><td>第8个月</td><td>第9个月</td><td>第10个月</td><td>第11个月</td><td>第12个月</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td v-for="(item,index) in 12" :key="index+'a'" style="border-left: none;">
|
|
|
+ <td v-for="(item,index) in wordData['expenditureMothPlan']" :key="index" style="border-left: none;">
|
|
|
<el-input
|
|
|
type="number"
|
|
|
autosize
|
|
|
+ min="0"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
- v-model="input">
|
|
|
+ v-model.number="wordData['expenditureMothPlan'][index]"
|
|
|
+ @input="checkExpenditureMothPlan(index)">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
- <td colspan="4" style="border-left: none;">支出类别</td><td colspan="5">支出项目</td><td colspan="4">金额(元)</td><td colspan="2">备注</td>
|
|
|
+ <td colspan="4" style="border-left: none;">支出类别</td><td colspan="4">支出项目</td><td colspan="2">金额(元)</td><td colspan="5">备注</td>
|
|
|
</tr>
|
|
|
- <tr v-for="(item,index) in wordData.member" :key="index">
|
|
|
+ <tr>
|
|
|
+ <td rowspan="4" colspan="4" style="border-left: none;">直接经费</td>
|
|
|
+ <td colspan="4">小型仪器设备费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="小型仪器设备费"
|
|
|
+ v-model.number="wordData['fund']['device']"
|
|
|
+ @change="checkProjectFund(device)"
|
|
|
+ ></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">
|
|
|
+ 项目开展所需的小型专用仪器设备、工具、配件购置或租赁费用。
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">材料费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="材料费"
|
|
|
+ v-model.number="wordData['fund']['Material']"
|
|
|
+ @change="checkProjectFund('Material')"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">项目开展需消耗的各种原材料、辅助材料等低值易耗品的采购费用。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">测试化验加工费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="测试化验加工费"
|
|
|
+ @change="checkProjectFund('processing')"
|
|
|
+ v-model.number="wordData['fund']['processing']"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">项目开展过程中支付给外单位的检验、测试、化验、计算、分析及加工费等费用。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">项目协作费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="项目协作费"
|
|
|
+ @change="checkProjectFund('Collaboration')"
|
|
|
+ v-model.number="wordData['fund']['Collaboration']"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">按合同规定支付给协作单位的费用</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td rowspan="4" colspan="4" style="border-left: none;">间接经费</td>
|
|
|
+ <td colspan="4">项目成果鉴定费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="项目成果鉴定费"
|
|
|
+ @change="checkProjectFund('APPRAISAL')"
|
|
|
+ v-model.number="wordData['fund']['APPRAISAL']"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">学术会务费、评审费、鉴定费、成果集制作费等费用。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">参展参赛费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="参展参赛费"
|
|
|
+ @change="checkProjectFund('entery')"
|
|
|
+ v-model.number="wordData['fund']['entery']"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">参加创客展会、竞赛等所需的报名费、展位费、布展费、宣传推广费及差旅费等费用。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">创客交流活动费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="创客交流活动费"
|
|
|
+ @change="checkProjectFund('activities')"
|
|
|
+ v-model.number="wordData['fund']['activities']"></el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">创客交流活动中支付给校外专家的指导费、咨询费、授课费等费用。</td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td colspan="4" style="border-left: none;">知识产权事务费</td>
|
|
|
+ <td colspan="2">
|
|
|
+ <el-input
|
|
|
+ type="number"
|
|
|
+ autosize
|
|
|
+ resize="none"
|
|
|
+ placeholder="知识产权事务费"
|
|
|
+ @change="checkProjectFund('Transaction')"
|
|
|
+ v-model.number="wordData['fund']['Transaction']">
|
|
|
+ </el-input>
|
|
|
+ </td>
|
|
|
+ <td colspan="5">论文版面费、专利及其他知识产权事务等费用。</td>
|
|
|
+ </tr>
|
|
|
+ <!-- <tr v-for="(item,index) in wordData.member" :key="index">
|
|
|
<td colspan="4" style="border-left: none;">
|
|
|
<el-input
|
|
|
type="textarea"
|
|
@@ -228,18 +375,18 @@
|
|
|
v-model="input">
|
|
|
</el-input>
|
|
|
</td>
|
|
|
- </tr>
|
|
|
+ </tr> -->
|
|
|
|
|
|
|
|
|
<tr class="textLeft">
|
|
|
- <td><p>所在部</p> <p>门意见</p></td><td colspan="15">
|
|
|
- <el-input
|
|
|
+ <td><p>所在部</p> <p>门意见</p></td><td colspan="15" style="height: 200px;">
|
|
|
+ <!-- <el-input
|
|
|
type="textarea"
|
|
|
:rows="10"
|
|
|
style="width: 100%;"
|
|
|
resize="none"
|
|
|
v-model="input">
|
|
|
- </el-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>
|
|
@@ -265,7 +412,7 @@
|
|
|
<span>备注:</span>
|
|
|
<span>如表格不够可顺延或另附页。</span>
|
|
|
<div style="width: 300px;margin: 20px auto;display: flex;justify-content: space-between;">
|
|
|
- <el-button style="width: 120px;margin: 20px auto;" type="primary">提交项目</el-button>
|
|
|
+ <el-button @click="applyButton" style="width: 120px;margin: 20px auto;" type="primary">提交项目</el-button>
|
|
|
<el-button style="width: 120px;margin: 20px auto;" type="primary">下载表单</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -281,62 +428,43 @@
|
|
|
return {
|
|
|
// teacher:[],
|
|
|
// student:[],
|
|
|
- allFund:'',
|
|
|
- input:"",
|
|
|
+ allFund:2000,
|
|
|
DepartmentData:[],
|
|
|
-
|
|
|
+ ProjectData:[],
|
|
|
wordData:{
|
|
|
applicationDate:getNowDate(1),//申请日期
|
|
|
- projectName:'',
|
|
|
- radio: '',
|
|
|
- checkList:[],
|
|
|
- schoolRadio:'',
|
|
|
- applyParsonRadio:'',
|
|
|
- applyParsonName:'',
|
|
|
- college:'',
|
|
|
- tel:'',
|
|
|
- beginTime:'',
|
|
|
- endTime:'',
|
|
|
+ associatedProjects:"",//关联项目
|
|
|
+ activityName:'',//项目名称
|
|
|
+ // money:"",//预算经费
|
|
|
+ pro_leader:"",//活动负责人
|
|
|
+ college: '',//所在学院
|
|
|
+ tel:'',//联系电话
|
|
|
+ activityTime:"",//活动时间
|
|
|
+ student:0,//参与学生人数
|
|
|
member:[
|
|
|
- {sort:'',project:'',fund:''},
|
|
|
- {sort:'',project:'',fund:''},
|
|
|
- {sort:'',project:'',fund:''},
|
|
|
- {sort:'',project:'',fund:''},
|
|
|
- {sort:'',project:'',fund:''},
|
|
|
-
|
|
|
-
|
|
|
+ {name:"",collage:"",work:""},
|
|
|
+ {name:"",collage:"",work:""},
|
|
|
+ {name:"",collage:"",work:""},
|
|
|
+ {name:"",collage:"",work:""},
|
|
|
+ {name:"",collage:"",work:""},
|
|
|
],
|
|
|
- fund:[
|
|
|
- {name:'',collage:'',work:''},
|
|
|
- {name:'',collage:'',work:''},
|
|
|
- ],
|
|
|
- brief:'',
|
|
|
- introduce:{
|
|
|
- back:'',
|
|
|
- innovate:'',
|
|
|
- path:'',
|
|
|
- scene:'',
|
|
|
- worth:'',
|
|
|
- team:'',
|
|
|
- cost:'',
|
|
|
- expectResults:'',
|
|
|
- expectResultsTeacher:'',
|
|
|
- expectConversion:'',
|
|
|
- plan:''
|
|
|
- },
|
|
|
- // fund:{
|
|
|
- // facility:'',
|
|
|
- // materials:'',
|
|
|
- // process:'',
|
|
|
- // assist:'',
|
|
|
- // authenticate:'',
|
|
|
- // match:'',
|
|
|
- // activity:'',
|
|
|
- // affair:''
|
|
|
- // }
|
|
|
+ activityPlan:"",//活动计划
|
|
|
+ expectations:"",//预期目标
|
|
|
+ eventAudience:"",//活动受众面
|
|
|
+ fundingPlan:"",//经费支出计划
|
|
|
+ expenditureMothPlan:['','','','','','','','','','','',''],
|
|
|
+ fund:{
|
|
|
+ total:0,
|
|
|
+ device:"",
|
|
|
+ Material:"",
|
|
|
+ processing:"",
|
|
|
+ Collaboration:"",
|
|
|
+ APPRAISAL:"",
|
|
|
+ entery:"",
|
|
|
+ activities:"",
|
|
|
+ Transaction:"",
|
|
|
+ },//预算经费
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
//total:总经费
|
|
|
//小型仪器设备费:device deviceRemarks
|
|
|
//材料费:Material MaterialRemarks
|
|
@@ -353,12 +481,12 @@
|
|
|
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('请输入正确联系号码格式')
|
|
|
- },
|
|
|
- addStudent(){ //添加学生
|
|
|
- this.wordData.studentS.push({name:"",collage:"",work:""});
|
|
|
},
|
|
|
- DelStudent(index){ //删除学生
|
|
|
- this.wordData.studentS.splice(index,1)
|
|
|
+ addPerson(){ //添加学生
|
|
|
+ this.wordData['member'].push({name:"",collage:"",work:""});
|
|
|
+ },
|
|
|
+ DelPerson(index){ //删除学生
|
|
|
+ this.wordData['member'].splice(index,1)
|
|
|
},
|
|
|
getProjectDepartmentData(){ //获取项目立项申请基础信息页面所在部门数据
|
|
|
this.ajax.get(this.$store.state.api+'/SelectAllDepartment',{
|
|
@@ -369,157 +497,276 @@
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
- submitWord(){
|
|
|
+ getProjectData(){//获取未完结的项目
|
|
|
+ this.ajax.get(this.$store.state.api+"/GetAllProjectName",{
|
|
|
+ uid:this.$store.state.userInfo.userid,
|
|
|
+ }).then(res=>{
|
|
|
+ this.ProjectData = res.data[0].filter(item=>item.isupload!=3 && item.isupload!=4 );
|
|
|
+ }).catch(err=>{
|
|
|
+ this.$message.error(err.message)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ checkProjectFund(index){
|
|
|
+ if(this.wordData['associatedProjects']==''){
|
|
|
+ for(let i in this.wordData['fund'])this.wordData['fund'][i]='';
|
|
|
+ return this.$message.error("请先选择关联项目");
|
|
|
+ }
|
|
|
+ if(this.total>this.allFund){
|
|
|
+ this.wordData['fund'][index]=0;
|
|
|
+ return this.$message.error("活动总经费不能超过项目剩余总预算")
|
|
|
+ }
|
|
|
+ },
|
|
|
+ applyButton(){
|
|
|
const cEmpty = /^\s*$/g;
|
|
|
- for (let i in this.wordData){
|
|
|
- // console.log(this.wordData[i],i);
|
|
|
+ for(let i in this.wordData){
|
|
|
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
|
|
|
- }
|
|
|
+ case "associatedProjects":
|
|
|
+ if(cEmpty.test(this.wordData[i])){
|
|
|
+ this.$message.error("请选择关联项目")
|
|
|
+ return false;
|
|
|
+ }
|
|
|
break;
|
|
|
- case 'radio':
|
|
|
- if (cEmpty.test(this.wordData[i])) {
|
|
|
- this.$message.error('请选择项目分组')
|
|
|
- document.querySelector('#radio').scrollIntoView({ behavior: "smooth" });
|
|
|
- return false
|
|
|
- }
|
|
|
+ case "activityName":
|
|
|
+ if(cEmpty.test(this.wordData[i])){
|
|
|
+ this.$message.error("请输入活动名称")
|
|
|
+ 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':
|
|
|
- // if(this.wordData[i].length<5){
|
|
|
- // this.$message.error('学生团队应5人以上')
|
|
|
- // document.querySelector('#studentS').scrollIntoView({ behavior: "smooth" });
|
|
|
- // return false;
|
|
|
- // }else{
|
|
|
- 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++;
|
|
|
- }
|
|
|
+ case "pro_leader":
|
|
|
+ if(cEmpty.test(this.wordData[i])){
|
|
|
+ this.$message.error("请输入活动负责人")
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "college":
|
|
|
+ if(cEmpty.test(this.wordData[i])){
|
|
|
+ this.$message.error("请选择所在学院")
|
|
|
+ return false;;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "tel":
|
|
|
+ if(cEmpty.test(this.wordData[i])){
|
|
|
+ this.$message.error("请输入联系电话")
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "activityTime":
|
|
|
+ if(cEmpty.test(this.wordData[i][0])){
|
|
|
+ this.$message.error("请选择活动时间")
|
|
|
+ return false;;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "member":
|
|
|
+ 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('请填写项目简介')
|
|
|
- // this.$refs.brief.style.background='rgb(236, 141, 141)'
|
|
|
- // setTimeout(() => {
|
|
|
- // this.$refs.brief.style.background='#ffffff'
|
|
|
- // }, 2000);
|
|
|
- document.querySelector('#brief').scrollIntoView({ behavior: "smooth" });
|
|
|
- return false
|
|
|
+
|
|
|
+ })
|
|
|
+ if(num>0){
|
|
|
+ this.$message.error("请填完指导老师信息");
|
|
|
+ // document.querySelector('#five').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.input*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;
|
|
|
+ break;
|
|
|
+ case "activityPlan":
|
|
|
+ if(cEmpty.test(this.wordData[i][0])){
|
|
|
+ this.$message.error("请输入活动计划");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "expectations":
|
|
|
+ if(cEmpty.test(this.wordData[i][0])){
|
|
|
+ this.$message.error("预期目标");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "eventAudience":
|
|
|
+ if(cEmpty.test(this.wordData[i][0])){
|
|
|
+ this.$message.error("活动受众面")
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "fundingPlan":
|
|
|
+ if(cEmpty.test(this.wordData[i][0])){
|
|
|
+ this.$message.error("经费支出计划")
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
- // let param={
|
|
|
- // projectName
|
|
|
+ },
|
|
|
+ // submitWord(){
|
|
|
+ // 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':
|
|
|
+ // // if(this.wordData[i].length<5){
|
|
|
+ // // this.$message.error('学生团队应5人以上')
|
|
|
+ // // document.querySelector('#studentS').scrollIntoView({ behavior: "smooth" });
|
|
|
+ // // return false;
|
|
|
+ // // }else{
|
|
|
+ // 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('请填写项目简介')
|
|
|
+ // // this.$refs.brief.style.background='rgb(236, 141, 141)'
|
|
|
+ // // setTimeout(() => {
|
|
|
+ // // this.$refs.brief.style.background='#ffffff'
|
|
|
+ // // }, 2000);
|
|
|
+ // 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.input*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.ajax
|
|
|
- // .post(this.$store.state.api+'/SelectAllType',param)
|
|
|
- // .then(err,res)
|
|
|
+ // // let param={
|
|
|
+ // // projectName
|
|
|
+ // // }
|
|
|
+ // // this.ajax
|
|
|
+ // // .post(this.$store.state.api+'/SelectAllType',param)
|
|
|
+ // // .then(err,res)
|
|
|
+ // },
|
|
|
+ checkExpenditureMothPlan(index){
|
|
|
+ let count = 0;
|
|
|
+ this.wordData['expenditureMothPlan'].forEach(item=>count+=Number(item))
|
|
|
+ if(count>this.total){
|
|
|
+ this.$message.error("总经费月支出计划不能大于总经费");
|
|
|
+ this.wordData['expenditureMothPlan'][index]=0;
|
|
|
+ }
|
|
|
},
|
|
|
+ checkProjectMoney(){
|
|
|
+ this.$message.info("切换项目")
|
|
|
+ }
|
|
|
|
|
|
},
|
|
|
computed:{ //经费总合
|
|
|
- reversedMessage: function () {
|
|
|
- return (this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.input*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1)/10000
|
|
|
+ total() {
|
|
|
+ let num = 0;
|
|
|
+ for(let i in this.wordData['fund'])num += Number(this.wordData['fund'][i]);
|
|
|
+ return num;
|
|
|
+ // return (this.wordData.fund.facility*1 + this.wordData.fund.materials*1+this.wordData.fund.process*1+ this.input*1+this.wordData.fund.authenticate*1+ this.wordData.fund.match*1+this.wordData.fund.activity*1+this.wordData.fund.affair*1)/10000
|
|
|
}
|
|
|
},
|
|
|
mounted(){
|
|
|
- this.getProjectDepartmentData()
|
|
|
+ this.getProjectDepartmentData();
|
|
|
+ this.getProjectData();
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -566,7 +813,9 @@
|
|
|
border: none;
|
|
|
border-top: solid 1px black;
|
|
|
|
|
|
- tr td{
|
|
|
+ tr{
|
|
|
+ position: relative;
|
|
|
+ td{
|
|
|
border: none;
|
|
|
border-bottom: solid 1px black;
|
|
|
border-right: solid 1px black;
|
|
@@ -592,6 +841,12 @@
|
|
|
}
|
|
|
:deep(.el-input__inner){
|
|
|
border: none ;
|
|
|
+ &::-webkit-outer-spin-button,&::-webkit-inner-spin-button{
|
|
|
+ -webkit-appearance: none !important;
|
|
|
+ }
|
|
|
+ &[type='number'] {
|
|
|
+ -moz-appearance: textfield;
|
|
|
+ }
|
|
|
|
|
|
border-radius: 0px;
|
|
|
text-align: center;
|
|
@@ -599,6 +854,7 @@
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ }
|
|
|
.textLeft{
|
|
|
:deep(.el-textarea__inner){
|
|
|
// padding: 0;
|