Q-ABAB 1 年之前
父節點
當前提交
e093fa1d27
共有 4 個文件被更改,包括 511 次插入267 次删除
  1. 22 37
      src/components/MakerSpaceWord.vue
  2. 2 2
      src/components/markerFundWord.vue
  3. 481 225
      src/components/markeractivityWord.vue
  4. 6 3
      src/views/test.vue

+ 22 - 37
src/components/MakerSpaceWord.vue

@@ -411,10 +411,9 @@
                   <div class="fundDataValue">材料费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       placeholder="材料费"
                       v-model.number="wordData['fund']['Material']"
                       @change="getTotal"></el-input>
@@ -426,10 +425,9 @@
                   <div class="fundDataValue">测试化验加工费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       placeholder="测试化验加工费"
                       v-model.number="wordData['fund']['processing']"
                       @change="getTotal"></el-input>
@@ -441,10 +439,9 @@
                   <div class="fundDataValue">项目协作费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       placeholder="项目协作费"
                       v-model.number="wordData['fund']['Collaboration']"
                       @change="getTotal"></el-input>
@@ -462,7 +459,7 @@
                   <div class="fundDataValue">项目成果鉴定费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
                       placeholder="项目成果鉴定费"
@@ -476,11 +473,10 @@
                   <div class="fundDataValue">参展参赛费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
                       placeholder="参展参赛费"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       v-model.number="wordData['fund']['entery']"
                       @change="getTotal"></el-input>
                   </div>
@@ -491,10 +487,9 @@
                   <div class="fundDataValue">创客交流活动费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       placeholder="创客交流活动费"
                       v-model.number="wordData['fund']['activities']"
                       @change="getTotal"></el-input>
@@ -506,10 +501,9 @@
                   <div class="fundDataValue">知识产权事务费</div>
                   <div class="fundDataValue">
                     <el-input
-                      type="textarea"
+                      type="number"
                       autosize
                       resize="none"
-                      onkeyup="value=value.replace(/[^\d]/g,'')"
                       placeholder="知识产权事务费"
                       v-model.number="wordData['fund']['Transaction']"
                       @change="getTotal">
@@ -1135,16 +1129,7 @@ import {getNowDate} from '@/components/tool/Date.js'
         }
       }
     }
-    // .fundTable{
-    //   tr{
-    //     td{
-    //       height: 50px;
-    //     }
-    //     &:nth-child(1){
-    //       flex: 1;
-    //     }
-    //   }
-    // }
+
     .opinion{
       display: flex;
       .opinionLabel{
@@ -1199,6 +1184,12 @@ import {getNowDate} from '@/components/tool/Date.js'
     box-sizing: border-box;
     border: none;
     outline: none;
+    &::-webkit-outer-spin-button,&::-webkit-inner-spin-button{
+      -webkit-appearance: none !important;
+    }
+    &[type='number'] {
+      -moz-appearance: textfield;
+    }
   }
   :deep(.el-textarea__inner){
     height: 100%;
@@ -1224,20 +1215,14 @@ import {getNowDate} from '@/components/tool/Date.js'
   :deep(.el-input__suffix){
     display:none;
   }
-  // .InputDiv{
-  //   width: 100%;
-  //   height: 100%;
-  //   word-break: break-all;
-  //   display: flex;
-  //   justify-content: center;
-  //   align-items: center;
-  //   box-sizing: border-box;
-  //   padding: 10px;
-  //   outline: none;
-  //   &:focus{
-  //     border:solid 1px #409eff ;
-  //   }
-  // }
+  //去除input number样式
+  input::-webkit-outer-spin-button,
+  input::-webkit-inner-spin-button {
+    -webkit-appearance: none !important;
+  }
+  input[type='number'] {
+    -moz-appearance: textfield;
+  }
   .fontBold{
     font-weight:bold;
   }

+ 2 - 2
src/components/markerFundWord.vue

@@ -201,12 +201,12 @@
                 <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;">
                   <el-input
-                    type="text"
+                    type="number"
                     autosize
                     style="width: 100%;"
                     resize="none"

+ 481 - 225
src/components/markeractivityWord.vue

@@ -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%;">年&nbsp;&nbsp;&nbsp; 月 &nbsp;&nbsp;&nbsp;日</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;

+ 6 - 3
src/views/test.vue

@@ -2,10 +2,11 @@
   <!-- 测试上传组件 -->
   <div v-loading="loading" id="test">
     <div class="word">
-      <MakerSpaceWord/>
-      <MakerSpaceWordShow/>
+      <!-- <MakerSpaceWord/> -->
+      <!-- <MakerSpaceWordShow/> -->
       <!-- 创客专项资金及项目申请表(个人创客) -->
-      <markerFundWord/>        
+      <!-- <markerFundWord/> -->
+      <markeractivityWord/>   
     </div>
 
     <!-- <div>
@@ -31,12 +32,14 @@ import getExcel from "@/components/tool/getExcel";
 import MakerSpaceWord from '@/components/MakerSpaceWord.vue'
 import MakerSpaceWordShow from '@/components/MakerSpaceWordShow.vue'
 import markerFundWord from '@/components/markerFundWord.vue'
+import markeractivityWord from '@/components/markeractivityWord.vue'
 export default {
   components: {
     BeUpload,
     MakerSpaceWord,
     MakerSpaceWordShow,
     markerFundWord,
+    markeractivityWord,
   },
   data() {
     return {