浏览代码

项目立项申请完成

yuanyiming 2 年之前
父节点
当前提交
0204ee0926

+ 11 - 8
src/App.vue

@@ -389,13 +389,7 @@
               text-align-last: justify;
               transform: translate(0,22%);
             }
-            input::-webkit-outer-spin-button,
-            input::-webkit-inner-spin-button {
-              -webkit-appearance: none !important;
-            }
-            input[type='number'] {
-              -moz-appearance: textfield;
-            }
+            
           }
         .footer{
           width: 100%;
@@ -495,7 +489,16 @@
         }
       }
     
-
+      .inputNumber{
+        /* 普通IE浏览器 样式清除 */
+        input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{
+        -webkit-appearance: none !important;
+        }
+        /* 火狐浏览器样式清除 */
+        input[type="number"]{
+        -moz-appearance:textfield;
+        }
+      }
 
 
 

+ 1 - 0
src/config/config.js

@@ -24,6 +24,7 @@ const store = new Vuex.Store({
         // socket: "https://poll.cocorobo.cn",
         // socket: "http://localhost:1473",
         api: 'http://10.3.16.226:7003/api',
+        // api: 'http://127.0.0.1:7003/api',
         // api: 'http://localhost:5005',
 
     },

+ 7 - 2
src/views/projectApply/projectApplication.vue

@@ -97,7 +97,7 @@
           prop="title"
           label="项目名称"
           align="center"
-          min-width="8%">
+          min-width="10%">
         </el-table-column>
         <el-table-column
           prop="pro_leader"
@@ -115,7 +115,7 @@
           prop="money"
           label="预算(万)"
           align="center"
-          min-width="6%">
+          min-width="8%">
         </el-table-column>
         <el-table-column
           prop="time"
@@ -433,6 +433,7 @@
             tid:this.selectInp.sort,    //分类
             leader:this.selectInp.person,  //负责人
             st:this.selectInp.state,  //审核状态
+            textInp:'',
             page:this.table.currentPage,  //当前页
             lim:this.table.packageSize  //限制获取几条数据
           }
@@ -509,6 +510,10 @@
 <style lang="less">
 .projectApplication{
 
+
+  .el-table::before{
+    height: 0;
+  }
   .pagination{
     float: right;
     margin: 20px 35px 10px;

+ 3 - 3
src/views/projectApply/projectApplicationApply.vue

@@ -71,7 +71,7 @@
                           </div>
                           <div class="inpBlock" style="position: relative;">
                               <div class="label">预算总经费</div>
-                              <el-input type="number" v-model="data.select.fund" placeholder="请输入内容"></el-input>
+                              <el-input type="number"  v-model="data.select.fund" placeholder="请输入内容"></el-input>
                               <div style="position: absolute;right: -30px;top: 10px;">(万)</div>
                           </div>
                           <div class="inpBlock">
@@ -226,7 +226,7 @@
             <div class="littleBlock">
               <div class="dialogLabel">电话</div>
               <div>
-                <el-input type="number" v-model="data.Member.phone" @blur="getText(data.Member.phone)" ></el-input>
+                <el-input type="number" class="inputNumber" v-model="data.Member.phone" @blur="getText(data.Member.phone)" ></el-input>
               </div>
             </div>
             <div slot="footer" class="footer">
@@ -262,7 +262,7 @@
             <div class="littleBlock">
               <div class="dialogLabel">电话</div>
               <div>
-                <el-input type="number" v-model="data.Member2.phone" @blur="getText(data.Member2.phone)" ></el-input>
+                <el-input type="number" class="inputNumber" v-model="data.Member2.phone" @blur="getText(data.Member2.phone)" ></el-input>
               </div>
             </div>
             <div slot="footer" class="footer">

+ 178 - 46
src/views/projectApply/projectApplicationApply3.vue

@@ -26,20 +26,22 @@
           <hr>
           <div class="totalFund">
             <div class="totalFundLabel">预算总经费</div>
-            <el-input v-model="data2.select.fund" style="width: 180px;" placeholder="请输入内容"></el-input>
+            <el-input type="number" class="inputNumber" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" v-model.number="data2.select.fund" style="width: 180px;" placeholder="请输入内容"></el-input>
             <div style="line-height: 38px;margin-left: 5px;">(万)</div>
           </div>
           <!-- 预算经费金额结束 -->
 
           <!-- 设置经费和表格开始 -->
             <div class="tabTit">
-              <div><p>经费月支出计划</p></div>
+              <div><p>经费月支出计划(元)</p></div>
               <el-button @click="setFundBtn" type="primary">设置经费</el-button>
             </div>
+            <div class="monthFund">
             <el-table
               :data="data.tableData"
               tooltip-effect="dark"
               stripe
+              show-overflow-tooltip="true"
               :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
               >             
               <el-table-column
@@ -51,6 +53,8 @@
                 >
               </el-table-column>
             </el-table>
+          </div>
+
           <!-- 设置经费和表格结束 -->
 
 
@@ -64,7 +68,7 @@
               :data="data.tableData2"
               tooltip-effect="dark"
               stripe
-              height="320px"
+              style="height: 300px;"
               class="fontSize"
               :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
               >
@@ -90,9 +94,21 @@
                 prop="textarea"
                 label="备注"
                 align="center"
-                width="300">
+                width="150">
+              </el-table-column>
+              <el-table-column
+                  align="center"
+                  prop="operation"
+                  width="200"
+                  label="操作"
+                  >
+                  <template #default="scope">
+                      <div class="operations">
+                              <el-button type="primary" @click="amendDialogData(scope.row)" size="mini">修改</el-button>
+                              <el-button type="primary" @click="del(scope.row)"  size="mini">删除</el-button>
+                      </div>
+                  </template>
               </el-table-column>
-             
             </el-table>
           <!-- 经费明细和表格结束 -->
 
@@ -117,7 +133,7 @@
       <div class="dialogTop">
           <div class="dagSpan">项目名称</div>
           <!-- <el-input v-model="data2.projectName" disabled placeholder="请输入内容"></el-input> -->
-          <el-select v-model="data2.select.value" disabled style="width: 100%;" placeholder="请选择">
+          <el-select v-model="data2.select.projectName" disabled style="width: 100%;" placeholder="请选择">
             <el-option
               v-for="item in data2.options"
               :key="item.id"
@@ -154,7 +170,7 @@
         </div>
         <div class="dagInpS1">
           <div class="dagSpan">金额(元)</div>
-          <el-input v-model.number="data.dialog.fund" placeholder="请输入内容"></el-input>
+          <el-input type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" class="inputNumber" v-model.number="data.dialog.fund" placeholder="请输入内容"></el-input>
         </div>
       </div>
 
@@ -188,7 +204,7 @@
             <div class="littleBlock">
               <div class="dialogLabel">一月</div>
               <div>
-                <el-input type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" v-model="data.items.one"></el-input>
+                <el-input type="number" onkeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" class="inputNumber" v-model.number="data.items.one"></el-input>
               </div>
             </div>
             <div class="littleBlock">
@@ -258,17 +274,38 @@
               </div>
             </div>
             <div class="littleBlock" style="width: 100%;">
-              <div class="dialogLabel">备注</div>
+              <div class="dialogLabel" style="position: relative;top: -20px;">备注</div>
               <div style="width: 86%;">
-                <el-input v-model="data.items.remark" style="width: 100%;"></el-input>
+                <!-- <el-input type="textarea" :row="6" resize="none" v-model="data.items.remark" style="width: 100%;"></el-input> -->
+                <el-input
+                  type="textarea"
+                  :rows="3"
+                  resize="none"
+                  v-model="data.items.remark">
+                </el-input>
+
               </div>
             </div>
             <div slot="footer" class="footer">
               <el-button type="primary" @click="commit" class="diaBtn" >确认提交</el-button>
-              <el-button @click="setFund=false" class="diaBtn">取消</el-button>
+              <el-button @click="init" class="diaBtn">取消</el-button>
             </div>
       </el-dialog>
       <!--设置经费dialog对话框结束 -->
+
+      <!-- 删除成员对话框开始 -->
+      <el-dialog
+              title="删除经费明细"
+              :visible.sync="delFundDetail"
+              width="600px"
+              class="delMemberDialog">
+              <span class="deleteContent">确定删除此经费明细?</span>
+              <span slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="commitDel" class="btn5">确认删除</el-button>
+                <el-button @click="init" class="btn5" >取消</el-button>
+              </span>
+            </el-dialog>
+      <!-- 删除成员对话框结束 -->
   </div>
     
 </template>
@@ -283,8 +320,17 @@ import { VueEditor } from "vue2-editor";
       },
       data() {
         return {
-          addFundDialog:false,
-          setFund:false,
+          iid:[],
+          delFundDetail:false,   //删除经费明细对话框
+          addFundDialog:false,       //经费明细对话框
+          setFund:false,        
+          recompose:0,             //判断是否是修改
+          projectFundDetailInput:{
+                fund:'',
+                type:'',
+                disburseProject:'',
+                textarea:''
+          },
           mouthItems:[      //表格基础
             {prop:'one',label:'一月'},
             {prop:'two',label:'二月'},
@@ -309,38 +355,54 @@ import { VueEditor } from "vue2-editor";
         init(){
           this.addFundDialog=false
           this.setFund=false;
+          this.delFundDetail=false;
         },
         finish(){    //添加经费明细对话框完成按钮
+            if(this.recompose){
+              console.log('修改');
+                  this.data.tableData2.forEach((e,i,arr) => {
+                      if (e.id == this.iid.id) {
+                        if(this.data2.select.fund == '' || this.data2.select.fund==undefined )return this.$message.error('请输入项目预算总经费')
+                        if (this.data.dialog.type=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入支类别')
+                        if (this.data.dialog.disburseProject=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入支出项目')
+                        if (this.data.dialog.fund=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入金额')
+
+                        let oldMoney = this.data.tableData2.reduce((prev,cur)=>{   //默认第一次为0,
+                          console.log(prev,cur["fund"]);
+                          return prev+cur["fund"]
+                        },0);  //默认值第一次运算为0
+                        // console.log(oldMoney);     第一次0  
+                        oldMoney+=this.data.dialog.fund;   //因为本次的数据还未添加到列表中,所以直接在这里进行相加判断
+                        if(oldMoney>(this.data2.select.fund)*10000) return this.$message.error('经费明细超出预算总金额');
+                        arr.splice(i,1,this.data.dialog)
+                        this.data.dialog={}
+                        this.recompose=0   
+                        return this.init()
+                      }
+                  });
+                  return false
+            }
+
+
             if(this.data2.select.fund == '' || this.data2.select.fund==undefined )return this.$message.error('请输入项目预算总经费')
-            let oldMoney = this.data.tableData2.reduce((prev,cur)=>prev=prev+cur["fund"],0)
-            oldMoney+=this.data.dialog.fund;
+            if (this.data.dialog.type=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入支类别')
+            if (this.data.dialog.disburseProject=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入支出项目')
+            if (this.data.dialog.fund=="" || this.data2.select.fund==undefined ) return this.$message.error('请输入金额')
+
+
+            // let oldMoney = this.data.tableData2.reduce((prev,cur)=>prev=prev+cur["fund"],0)
+            let oldMoney = this.data.tableData2.reduce((prev,cur)=>{   //默认第一次为0,
+              console.log(prev,cur["fund"]);
+              return prev+cur["fund"]
+            },0);  //默认值第一次运算为0
+            console.log(oldMoney);
+
+            oldMoney+=this.data.dialog.fund;   //因为本次的数据还未添加到列表中,所以直接在这里进行相加判断
+
             if(oldMoney>(this.data2.select.fund)*10000)return this.$message.error('经费明细超出预算总金额');
             this.addFundDetail();
             this.init();
-          // let p=0;
           
-          //   if(this.data2.select.fund == '' || this.data2.select.fund==undefined ){   //判断总金额是否为空
-          //     return this.$message.error('请输入项目预算总经费')
-          //   }
-          //   let val=this.data.tableData2.length
-          //   console.log(val);
-          //   if ( val < 1) {
-          //       if (this.data.dialog.fund > (this.data2.select.fund)*10000) {
-          //         return this.$message.error('经费明细超出预算总金额')
-          //       }
-          //   }else{
-          //     console.log(this.data.tableData2);
-          //     this.data.tableData2.forEach((e,i,arr)=>{
-          //       console.log(arr);
-          //       p=p+(e.fund)*1
-          //     })
-          //     console.log(p);
-          //     if(p>(this.data2.select.fund)*10000) return this.$message.error('经费明细超出预算总金额')
-          //   }
-              
-
-          //   this.addFundDetail()
-          //   this.init();
         },
         backBtn1(){    //上一步
           this.back();
@@ -360,18 +422,36 @@ import { VueEditor } from "vue2-editor";
           for(let key in this.data.items){
               if ( this.data.items[key] !== '' && this.data.items[key]!='-') {
                   if (key != 'remark') {
-                    console.log(this.data.items[key])
+                    // console.log(this.data.items[key])
                     p+=Number(this.data.items[key])
                   }
                 }
           }
-          // console.log(p);
-          console.log(p)
-          if(p > Number(this.data2.fund)*10000){
-              return this.$message.error('金额大于预算')
-          }
+          // console.log(p)
+          // console.log(this.data2.select.fund);
+          if(p > this.data2.select.fund*10000) return this.$message.error('金额大于总预算')
           this.confirmSetFund()
           this.init()
+        },
+        amendDialogData(val){   //修改经费明细数据对话框显示
+          this.recompose=1   
+          console.log(val);
+          this.addFundDialog=true;      
+          this.data.dialog=val
+          this.iid=val
+        },
+        del(val){                     //删除经费明细对话框显示
+          this.delFundDetail=true;
+          console.log(111);
+          this.iid=val
+        },
+        commitDel(){
+          this.data.tableData2.forEach((e,i,arr)=>{
+                if (e.id == this.iid.id) {
+                    arr.splice(i,1)
+                    this.delFundDetail=false;
+                }
+            })
         }
       }
     }
@@ -518,6 +598,58 @@ import { VueEditor } from "vue2-editor";
         }
     }
   }
-
-
+  .delMemberDialog{    //删除经费明细对话框样式
+            font-size: 18px;
+            .el-dialog{
+              border-radius: 5px;
+              overflow: hidden;
+            }
+            .deleteContent{
+              margin: 30px 0;
+              font-size: 22px;
+              color: #000;
+            }
+            .el-dialog__header{
+              background: #32455b;
+              display: flex;
+              justify-content: center;
+            }
+            .el-dialog__title{
+              color:#fff;
+              font-size: 22px;
+            }
+            .el-dialog__body{
+              display: flex;
+              justify-content: center;
+            }
+            // .addDialogMid{
+            //   box-sizing: border-box;
+            //   padding:0 60px 0 10px;
+            //   .addDialogTit{
+            //     display: flex;
+            //     span{
+            //       width: 80px;
+            //       font-size: 16px;
+            //       line-height: 40px;
+            //       text-align: left;
+                  
+            //     }
+            //   }
+ 
+            // }
+            .dialog-footer{
+              display: flex;
+              justify-content: center;
+              box-sizing: border-box;
+              .btn5{
+                font-size: 16px;
+              }
+            }
+          }
+.monthFund{
+  .el-table .cell{
+        // 不换行
+        white-space:nowrap !important;
+    }
+  }
 </style>

+ 9 - 7
src/views/projectApply/projectApplicationApplyMain.vue

@@ -137,7 +137,8 @@
                 tableData2:[],// 经费明细列表数据
                
                 dialog:{     //经费明细添加对话框
-                  fund:0,  //金额
+                  id:'',
+                  fund:'',  //金额
                   type:'',  //支出类别
                   disburseProject:'',  //支出项目
                   textarea:'',  //备注
@@ -218,7 +219,6 @@
             },
             confirmSetFund(){   //预算经费设置经费对话框提交
               let data=this.projectApplicationApply3;
-              let ccc=this.projectApplicationApply1;
 
              
               for(let key in data.items){
@@ -226,17 +226,19 @@
                   data.items[key]='-'
                 }
               }
-              data.items2=data.items;   //如果提交后不用清除数据的话,这句不用写也行的,直接添加data.items
-              
-              data.tableData.splice(0,1,data.items2)
+              // data.items2=data.items;   
+              // Object.assign(data.items2,data.items)   //如果提交后不用清除数据的话,这句不用写也行的,直接添加data.items
+               Object.assign(data.tableData[0],data.items) 
+              // data.tableData.splice(0,1,data.items)
              
 
               // data.items={}   解开就是点击确定后清空
               },
             addFundDetail(){    //预算经费页面经费添加按钮
               let p=this.projectApplicationApply3;
-              p.tableData2.push(p.dialog)
-              p.dialog={}
+              p.dialog.id=uuid.v1();
+              p.tableData2.push(p.dialog);
+              p.dialog={};
             },
             submitBtn(){   //预算经费页面提交按钮
                 console.log("提交啦");

+ 21 - 23
src/views/projectManage/ProjectManagement.vue

@@ -12,7 +12,7 @@
       <div class="manageSelects">
       <div class="selectsBlock">
         <span class="selectLabel">项目筛选</span>
-        <el-select v-model="selectInp.filter" placeholder="我的项目">
+        <el-select v-model="selectInp.filter" @change="getData" placeholder="我的项目">
           <el-option label="所有项目"  :value="0"></el-option>
           <el-option
             v-for="item in options.projectFilter"
@@ -25,7 +25,7 @@
 
       <div class="selectsBlock">
         <span class="selectLabel">部门</span>
-        <el-select v-model="selectInp.department" placeholder="请选择">
+        <el-select v-model="selectInp.department" @change="getData" placeholder="请选择">
           <el-option label="所有部门" :value="0"></el-option>
           <el-option
             v-for="item in options.department"
@@ -38,7 +38,7 @@
 
       <div class="selectsBlock">
         <span class="selectLabel">分类</span>
-        <el-select v-model="selectInp.sort" placeholder="请选择">
+        <el-select v-model="selectInp.sort" @change="getData" placeholder="请选择">
           <el-option label="所有分类" :value="0"></el-option>
           <el-option
             v-for="item in options.sort"
@@ -51,7 +51,7 @@
 
       <div class="selectsBlock">
         <span class="selectLabel">结题状态</span>
-        <el-select v-model="selectInp.state" placeholder="请选择">
+        <el-select v-model="selectInp.state" @change="getData" placeholder="请选择">
           <el-option
             v-for="item in options.state"
             :key="item.value"
@@ -63,7 +63,7 @@
 
       <div class="selectsBlock">
         <span class="selectLabel">负责人</span>
-        <el-select v-model="selectInp.leader" placeholder="请选择">
+        <el-select v-model="selectInp.leader" @change="getData" placeholder="请选择">
           <el-option label="所有负责人" :value="''"></el-option>
           <el-option
             v-for="(item,index) in options.person"
@@ -75,7 +75,7 @@
       </div>
       </div>
       <div class="ProjectManagementQuery">
-        <el-input v-model="input" style="340px" placeholder="请输入内容"></el-input>
+        <el-input v-model="selectText" style="340px" placeholder="请输入项目名称"></el-input>
         <el-button type="primary" class="btn" size="mini">查询</el-button>
       </div>
     </div>
@@ -131,18 +131,8 @@
     export default {
       data() {
         return {
-          input:'',
-          items:[      //项目列表数据
-              {
-                finish:'已结题',
-                pic:require('@/assets/img/cocoClass.png'),
-                projectName:'濠江可可派社团课',
-                person:'刘丹璐',
-                school:'深圳技师学院',
-                blogs:'个人博客',
-                num:'JK123245679'
-              },
-          ],
+          selectText:'',
+          items:[],      //项目列表数据
           table:{         // 分页数据
             total:0,
             packageSize:4,
@@ -207,22 +197,21 @@
             tid:this.selectInp.sort,    //分类
             leader:this.selectInp.leader,  //负责人
             st:this.selectInp.state,  //审核状态
+            textInp:this.selectText,
             page:this.table.currentPage,  //当前页
-            // lim:this.table.packageSize  //限制获取几条数据
-            lim:4  //限制获取几条数据
-
+            lim:this.table.packageSize,  //限制获取几条数据
           }
           // return console.log(param);
           // console.log(param)
           this.ajax    
             .get(this.$store.state.api+'/SelectAllProject',param)
               .then(res=>{
-                // console.log(res.data);
+                console.log(res);
                 let data=res.data;
                 // console.log(res);
                 let a=this.options;
                 this.items=data[0];
-                console.log(this.items);
+                // console.log(this.items);
                 a.projectFilter=data[1];
                 a.department=data[2];
                 a.sort=data[3];
@@ -233,6 +222,15 @@
               })  
         }
      },
+     watch:{    //监视选择框的变化,实施刷新表格数据
+      selectText:{
+            handler(){
+              immediate:true
+              deep:true
+              this.getData()
+            }
+          }
+      },
      mounted(){
       this.getData()   //页面加载完成后自动获取渲染数据
      }

+ 11 - 10
src/views/projectManage/ProjectManagement1.vue

@@ -63,7 +63,17 @@
                         <div class="label">预算总经费</div>
                         <el-input v-model="input" placeholder="请输入内容"></el-input>
                     </div>
-                    
+                    <div class="inpBlock">
+                        <div class="label">选择分类</div>
+                        <el-select v-model="input" style="width: 100%;" placeholder="请选择">
+                          <el-option
+                            v-for="item in options"
+                            :key="item.id"
+                            :label="item.name"
+                            :value="item.id">
+                          </el-option>
+                        </el-select>
+                    </div>
                 </div>
               </div>
               
@@ -142,15 +152,6 @@
       </el-input>
     </div>
     <!-- 项目简介区域结束 -->
-
-    <div class="pm1footer">
-      <el-pagination
-        background
-        layout="prev, pager, next"
-        :total="1">
-      </el-pagination>
-    </div>
-
   </div>
 </template>