瀏覽代碼

修改提交判断

yuanyiming 1 年之前
父節點
當前提交
9538bceb28

+ 6 - 3
src/views/projectApply/components/projectApplication2.vue

@@ -90,8 +90,8 @@
       <div class="baseBtn">
         <div class="blockWidth">
           <el-button type="primary" v-show="isUpload==0"  @click="audit">立即修改</el-button>
-          <el-button type="primary" v-show="isUpload==1"  @click="audit">立即修改</el-button>
-          <el-button type="primary" disabled style="background: #ccc !important;border: none;" v-show="isUpload==2"  @click="$message.error('项目已结项,不可再修改')">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==1" disabled style="background-color: #c8c9cc !important;border-color: #c8c9cc;cursor: no-drop;">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==2" disabled style="background: #ccc !important;border: none;" >立即修改</el-button>
 
         </div>
       </div>
@@ -123,6 +123,7 @@ import { VueEditor } from "vue2-editor";
         data() {
           return {
             isUpload:'',
+            endProject:'',
             data:[["","","","",""],[]],
             submitHint:false,
             customToolbar: [
@@ -187,7 +188,9 @@ import { VueEditor } from "vue2-editor";
                     .get(this.$store.state.api+'/SelectProjectApplyDetailStudent',param)
                     .then(res=>{
                         let data=res.data[0][0]
-                        console.log(data.chapters);
+                        console.log(data);
+                        this.isUpload=data.isupload
+                        this.endProject=data.endProject
                         this.content=JSON.parse(data.chapters)
                         console.log(this.content);
                     },err=>{

+ 19 - 13
src/views/projectApply/components/projectApplicationApply.vue

@@ -8,9 +8,11 @@
           </div>
           <div class="leftTits">
             <div  @click="toPage(1)">基本信息填写</div>
-            <div @click="toPage(2)">项目成员</div>
-            <div @click="toPage(3)">简介</div>
-            <div @click="toPage(4)">下一步</div>
+            <div @click="toPage(2)">封面上传</div>
+            <div @click="toPage(3)">教师项目成员</div>
+            <div @click="toPage(4)">学生项目成员</div>
+            <div @click="toPage(5)">简介</div>
+            <div @click="toPage(6)">下一步</div>
           </div>
         </div>
   <!-- 左边导航区结束 -->
@@ -26,7 +28,7 @@
             <hr>
 
                 <!-- 活动申请填写信息区域开始 -->
-                <div class="select">
+                <div id="1" class="select">
                     <div class="selectTop">
                       <div class="label">项目名称</div>
                       <el-input v-model="data.select.projectName" placeholder="请输入内容"></el-input>
@@ -115,7 +117,7 @@
               <!-- 活动申请填写信息区域结束 -->
 
           <!-- 项目封面上传开始 -->
-          <div style="height: 260px;">
+          <div id="2" style="height: 260px;">
               <div id="two" class="tabTit">
                 <div><p>封面上传</p></div>
               </div>
@@ -140,7 +142,7 @@
 
 
   <!-- 老师项目成员表格开始 -->
-              <div id="two" class="tabTit">
+              <div id="3" class="tabTit">
                 <div><p>项目组-老师成员<span>(2个学院以上,团队2-3人)</span> </p></div>
                 <el-button type="primary" @click="addTeacherMember"  size="mini">添加成员</el-button>
               </div>
@@ -249,7 +251,7 @@
 
 
   <!-- 学生项目成员表格开始 -->
-              <div id="two" class="tabTit">
+              <div id="4" class="tabTit">
                 <div><p>项目组-学生成员<span>(至少2个学院以上学生构成,团队5人以上)</span> </p></div>
                 <el-button type="primary" @click="addStudentMember"  size="mini">添加成员</el-button>
               </div>
@@ -354,7 +356,7 @@
 
 
   <!-- 项目简介开始 -->
-            <div id="three" class="tabTit">
+            <div id="5" class="tabTit">
                 <div><p>项目简介<span>(200-300字)</span></p></div>
             </div>
             <hr>
@@ -368,7 +370,7 @@
               </el-input>
   <!-- 项目简介结束 -->
  <!-- 结束按钮开始 -->
-         <div id="four" class="baseBtn">
+         <div id="6" class="baseBtn">
               <div class="blockWidth">
                 <el-button type="primary"  @click="backBtn1" size:small>上一步</el-button>
                 <el-button type="primary"  @click="backBtn" size:small>下一步</el-button>
@@ -621,13 +623,17 @@
        
         toPage(val){
             if (val==1) {
-              document.getElementById("one").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("1").scrollIntoView({ behavior: "smooth" });
             }else if(val==2){
-              document.getElementById("two").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("2").scrollIntoView({ behavior: "smooth" });
             }else if(val==3){
-              document.getElementById("three").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("3").scrollIntoView({ behavior: "smooth" });
             }else if(val==4){
-              document.getElementById("four").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("4").scrollIntoView({ behavior: "smooth" });
+            }else if(val==5){
+              document.getElementById("5").scrollIntoView({ behavior: "smooth" });
+            }else if(val==6){
+              document.getElementById("6").scrollIntoView({ behavior: "smooth" });
             }
         }
       },

+ 27 - 17
src/views/projectApply/components/projectApplicationApply2.vue

@@ -6,23 +6,27 @@
             <div class="qiu"></div>
           </div>
           <div class="leftTits">
-            <div @click="toPage(1)">项目创新点</div>
+            <div @click="toPage(1)">研发内容</div>
             <div @click="toPage(2)" style="position: relative;right: 5px;">
               <el-tooltip class="item" effect="light" content="预期取得的成果" placement="bottom-start">
-                <p>预期取得的成果</p>
+                <p>商业模式及社会价值</p>
               </el-tooltip>
             </div>
-            <div @click="toPage(3)">实施计划</div>
-            <div @click="toPage(4)">下一步</div>
+            <!-- <div @click="toPage(3)">商业模式及社会价值</div> -->
+            <div @click="toPage(3)">团队优势</div>
+            <div @click="toPage(4)">研发成本</div>
+            <div @click="toPage(5)">预期成果</div>
+            <div @click="toPage(6)">预期成果</div>
+            <div @click="toPage(7)">下一步</div>
           </div>
         </div>
         <div class="right">
-            <div id="q" class="vfpHeader">
+            <di class="vfpHeader">
               <div class="titleOne">项目立项申请</div>
               <el-button @click="backBtn1" type="primary" size="mini">返回</el-button>
-            </div>
+            </di>
             <hr>
-            <div id="w">
+            <div id="1">
               <p class="pTit">研发内容</p>
               <div>
                 <p class="pTit2">一、项目研发背景</p>
@@ -52,7 +56,7 @@
                 <vue-editor  :editorToolbar="customToolbar" v-model="data.contentOne"></vue-editor>
               </div> -->
             </div>
-            <div>
+            <div id="2">
               <p class="pTit">商业模式及社会价值</p>
               <div>
                 <p class="pTit2">一、项目商业模式/社会价值</p>
@@ -61,7 +65,7 @@
                 </div>
               </div>
             </div>
-            <div>
+            <div id="3">
               <p class="pTit">团队优势</p>
               <div>
                 <p class="pTit2">一、团队构成及优势</p>
@@ -71,7 +75,7 @@
               </div>
             </div>
 
-            <div>
+            <div id="4">
               <p class="pTit">研发成本</p>
               <div>
                 <p class="pTit2">一、研发成本来源及构成</p>
@@ -80,7 +84,7 @@
                 </div>
               </div>
             </div>
-            <div id="e">
+            <div id="5">
               <p class="pTit">预期成果</p>
               <div>
                 <p class="pTit2">一、项目预期成果、数量及形式(产品原型/发明专利/双创竞赛/成果转化/社会效益)</p>
@@ -101,13 +105,13 @@
                 </div>
               </div>
             </div>
-            <div>
+            <div id="6">
               <p class="pTit">实施计划</p>
               <div class="editor">
                 <vue-editor  :editorToolbar="customToolbar" v-model="data.plan"></vue-editor>
               </div>
             </div>
-            <div id="r" class="baseBtn">
+            <div id="7" class="baseBtn">
               <div class="blockWidth">
                 <el-button type="primary" class="backBtn" @click="backBtn1" size:small>上一步</el-button>
                 <el-button type="primary" class="backBtn" @click="backBtn" size:small>下一步</el-button>
@@ -143,13 +147,19 @@
           },
           toPage(val){
             if (val==1) {
-              document.getElementById("q").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("1").scrollIntoView({ behavior: "smooth" });
             }else if(val==2){
-              document.getElementById("w").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("2").scrollIntoView({ behavior: "smooth" });
             }else if(val==3){
-              document.getElementById("e").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("3").scrollIntoView({ behavior: "smooth" });
             }else if(val==4){
-              document.getElementById("r").scrollIntoView({ behavior: "smooth" });
+              document.getElementById("4").scrollIntoView({ behavior: "smooth" });
+            }else if(val==5){
+              document.getElementById("5").scrollIntoView({ behavior: "smooth" });
+            }else if(val==6){
+              document.getElementById("6").scrollIntoView({ behavior: "smooth" });
+            }else if(val==7){
+              document.getElementById("7").scrollIntoView({ behavior: "smooth" });
             }
           }
         }

+ 60 - 19
src/views/projectApply/components/projectApplicationDetails.vue

@@ -43,7 +43,7 @@
               <div class="inpBlock">
                 <div class="label">选择分类</div>
                 <!-- <el-cascader v-model="pageType" :options="projectApplicationApply1.sortOptions" clearable></el-cascader> -->
-                <el-cascader disabled v-model="pageType" :options="sortOptions" clearable></el-cascader>
+                <el-cascader disabled v-model="pageType" style="width: 100%;" :options="sortOptions" clearable></el-cascader>
               </div>
           </div>
 
@@ -54,6 +54,7 @@
                     v-model="content.select.projectDate"
                     type="daterange"
                     disabled
+                    style="width: 100%;"
                     value-format="yyyy-MM-dd HH:mm:ss"
                     range-separator="至"
                     start-placeholder="开始日期"
@@ -351,7 +352,10 @@
             
     <div class="baseBtn">
       <div class="blockWidth">
-        <el-button type="primary" class="backBtn" @click="audit">立即修改</el-button>
+        <el-button type="primary" class="backBtn" v-show="isupload==0" @click="audit">立即修改</el-button>
+        <el-button type="primary" class="backBtn" v-show="isupload==1" disabled style="background-color: #c8c9cc !important;border-color: #c8c9cc;cursor: no-drop;">立即修改</el-button>
+        <el-button type="primary" class="backBtn" v-show="isupload==2" disabled style="background-color: #c8c9cc !important;border-color: #c8c9cc;cursor: no-drop;">立即修改</el-button>
+
       </div>
     </div>
 
@@ -410,6 +414,9 @@
           textarea:'',   //项目简介
           tableData:[],   //成员列表数据
 
+          isupload:'',
+          endProject:'',
+
           content:{
             dialogImageUrl:"",  //封面!!!!!!!!
             tableStudentData:[],  //学生成员成员列表!!!!!!!!
@@ -512,14 +519,6 @@
             this.$message.error("请输入正确的手机号格式")
             return false;
           }
-          // if()
-          // return verify.test(value.trim())
-          // if(!result && value != "") {
-          // if(!result) {
-          //       return false;
-          // }else{
-          //   return true;
-          // }
         },
         ProgressFormat(value){        //进度条
           return value ==100?'100%':`${value}%`
@@ -665,7 +664,7 @@
                       // console.log(data.);
                         let data=res.data[0][0]
                         console.log(data);
-                        console.log(data.multiSelectProject);
+                        // console.log(data.multiSelectProject);
                         this.content.select.projectName=data.title
                         this.content.select.leader=data.leader
                         this.content.select.projectDate=[data.startTime,data.endTime]
@@ -681,7 +680,8 @@
                         this.content.textarea=data.brief
                         this.content.dialogImageUrl=data.image
                         this.pageType=[data.typeid,data.typeName]
-                        
+                        this.isupload=data.isupload
+                        this.endProject=data.endProject
                         // console.log(this.content);
                     },err=>{
                         console.log(err);
@@ -695,7 +695,7 @@
                 this.ajax
                       .get(this.$store.state.api+'/SelectAllType',param)
                       .then(res=>{
-                        console.log(res.data[0]);
+                        // console.log(res.data[0]);
                         let data=res.data[0]
                         this.sortOptions[0]['value']=data[0]['id']
                         this.sortOptions[0]['label']=data[0]['name']
@@ -715,20 +715,61 @@
             uid:this.$store.state.userInfo.userid,
             pid:JSON.parse(localStorage.getItem('pid')),
             tit:this.content.select.projectName,
-            bri:this.content.textarea,
             lea:this.content.select.leader,
-            pho:this.content.select.tel,
-            cos:JSON.stringify(this.content.tableStudentData),
-            cot:JSON.stringify(this.content.tableTeacherData),
-            img:this.content.dialogImageUrl,
             cla:this.content.select.department,
             mul:JSON.stringify(this.content.select.MultiSelectProjectNameS),
+            pho:this.content.select.tel,
             sch:this.content.select.schoolRemould,
+            per:this.content.select.projectApplyPerson,
+            img:this.content.dialogImageUrl,
+            cot:JSON.stringify(this.content.tableTeacherData),
+            cos:JSON.stringify(this.content.tableStudentData),
+            bri:this.content.textarea,
           }
+
+          const cEmpty = /^\s*$/g;
+              for(let i in param){
+                switch(i){
+                  case 'tit':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目名称不能为空")
+                    break;
+                  case 'lea':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目负责人不能为空")
+                    break;
+                  case 'cla':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目所属部门")
+                    break;
+                  case 'mul':
+                    console.log(111);
+                    if(!JSON.parse(param[i]).length) return this.$message.error("请选择优先支持项目")
+                    break;
+                  case 'sch':
+                    if(!param[i])return this.$message.error("请选择美丽校园改造项目")
+                    break;
+                  case "pho":
+                    if(cEmpty.test(param[i]))return this.$message.error("请输入联系方式")
+                    break;
+                  case 'person':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目申请人")
+                    break;
+                  case 'img':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目封面图片")
+                    break;
+                  case 'cot':
+                    if(JSON.parse(param[i]).length<2 || JSON.parse(param[i]).length>4)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
+                    break;
+                  case 'cos':
+                    if(JSON.parse(param[i]).length<5)return this.$message.error("需要学生团队5人以上")
+                    break;
+                  case 'bri':
+                    if(param[i].length<200 || param[i]>=300)return this.$message.error("项目简介需要200-300字")
+                    break;
+                }
+              }
             this.ajax
                   .post(this.$store.state.api+'/updateProjectApplyDetailStudent',param)
                   .then(res=>{
-                    // console.log(res);
+                    console.log(res);
                     if (res.data==1) {
                       this.$message.success('修改成功')
                       this.submitHint=false

+ 2 - 2
src/views/projectApply/projectApplicationApplyMain.vue

@@ -394,13 +394,13 @@
                     if(cEmpty.test(param[i]))return this.$message.error("请选择项目封面图片")
                     break;
                   case 'teacher':
-                    if(JSON.parse(param[i]).length>2 && JSON.parse(param[i]).length<4)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
+                    if(JSON.parse(param[i]).length<2 || JSON.parse(param[i]).length>4)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
                     break;
                   case 'student':
                     if(JSON.parse(param[i]).length<5)return this.$message.error("需要学生团队5人以上")
                     break;
                   case 'con':
-                    if(param[i].length<200&&param[i]<=300)return this.$message.error("项目简介需要200-300字")
+                    if(param[i].length<200 || param[i]>=300)return this.$message.error("项目简介需要200-300字")
                     break;
                 }
               }

+ 55 - 10
src/views/projectManage/components/ProjectManagement1.vue

@@ -351,7 +351,9 @@
             
     <div class="baseBtn">
       <div class="blockWidth">
-        <el-button type="primary" class="backBtn" @click="audit">立即修改</el-button>
+        <el-button type="primary" v-show="isUpload==0"  @click="audit">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==1" disabled style="background: #ccc !important;border: none;">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==2" disabled style="background: #ccc !important;border: none;" >立即修改</el-button>
       </div>
     </div>
 
@@ -403,7 +405,8 @@
 
           addStudentMemberDialog:false,   //添加学生对话框
           delStudentMember:false,      //删除学生对话框
-
+          isUpload:'',
+          endProject:'',
           textarea:'',   //项目简介
           tableData:[],   //成员列表数据
 
@@ -662,7 +665,7 @@
                       // console.log(data.);
                         let data=res.data[0][0]
                         console.log(data);
-                        console.log(data.multiSelectProject);
+                        // console.log(data.multiSelectProject);
                         this.content.select.projectName=data.title
                         this.content.select.leader=data.leader
                         this.content.select.projectDate=[data.startTime,data.endTime]
@@ -678,7 +681,8 @@
                         this.content.textarea=data.brief
                         this.content.dialogImageUrl=data.image
                         this.pageType=[data.typeid,data.typeName]
-
+                        this.isUpload=data.isupload
+                        this.endProject=data.endProject
                         
                         // console.log(this.content);
                     },err=>{
@@ -710,18 +714,59 @@
         submitAll(){   //提交修改数据
           let param={
             uid:this.$store.state.userInfo.userid,
-            pid:this.$route.query['pid'],
+            pid:JSON.parse(localStorage.getItem('pid')),
             tit:this.content.select.projectName,
-            bri:this.content.textarea,
             lea:this.content.select.leader,
-            pho:this.content.select.tel,
-            cos:JSON.stringify(this.content.tableStudentData),
-            cot:JSON.stringify(this.content.tableTeacherData),
-            img:this.content.dialogImageUrl,
             cla:this.content.select.department,
             mul:JSON.stringify(this.content.select.MultiSelectProjectNameS),
+            pho:this.content.select.tel,
             sch:this.content.select.schoolRemould,
+            per:this.content.select.projectApplyPerson,
+            img:this.content.dialogImageUrl,
+            cot:JSON.stringify(this.content.tableTeacherData),
+            cos:JSON.stringify(this.content.tableStudentData),
+            bri:this.content.textarea,
           }
+
+          const cEmpty = /^\s*$/g;
+              for(let i in param){
+                switch(i){
+                  case 'tit':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目名称不能为空")
+                    break;
+                  case 'lea':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目负责人不能为空")
+                    break;
+                  case 'cla':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目所属部门")
+                    break;
+                  case 'mul':
+                    console.log(111);
+                    if(!JSON.parse(param[i]).length) return this.$message.error("请选择优先支持项目")
+                    break;
+                  case 'sch':
+                    if(!param[i])return this.$message.error("请选择美丽校园改造项目")
+                    break;
+                  case "pho":
+                    if(cEmpty.test(param[i]))return this.$message.error("请输入联系方式")
+                    break;
+                  case 'person':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目申请人")
+                    break;
+                  case 'img':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目封面图片")
+                    break;
+                  case 'cot':
+                    if(JSON.parse(param[i]).length<2 || JSON.parse(param[i]).length>4)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
+                    break;
+                  case 'cos':
+                    if(JSON.parse(param[i]).length<5)return this.$message.error("需要学生团队5人以上")
+                    break;
+                  case 'bri':
+                    if(param[i].length<200 || param[i]>=300)return this.$message.error("项目简介需要200-300字")
+                    break;
+                }
+              }
             this.ajax
                   .post(this.$store.state.api+'/updateProjectApplyDetailStudent',param)
                   .then(res=>{

+ 5 - 4
src/views/projectManage/components/ProjectManagement2.vue

@@ -90,8 +90,8 @@
       <div class="baseBtn">
         <div class="blockWidth">
           <el-button type="primary" v-show="isUpload==0"  @click="audit">立即修改</el-button>
-          <el-button type="primary" v-show="isUpload==1"  @click="audit">立即修改</el-button>
-          <el-button type="primary" disabled style="background: #ccc !important;border: none;" v-show="isUpload==2"  @click="$message.error('项目已结项,不可再修改')">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==1" disabled style="background: #ccc !important;border: none;">立即修改</el-button>
+          <el-button type="primary" v-show="isUpload==2" disabled style="background: #ccc !important;border: none;" >立即修改</el-button>
 
         </div>
       </div>
@@ -187,9 +187,10 @@ import { VueEditor } from "vue2-editor";
                     .get(this.$store.state.api+'/SelectProjectApplyDetailStudent',param)
                     .then(res=>{
                         let data=res.data[0][0]
-                        console.log(data.chapters);
+                        this.isUpload=data.isupload
+                        // console.log(data.chapters);
                         this.content=JSON.parse(data.chapters)
-                        console.log(this.content);
+                        // console.log(this.content);
                     },err=>{
                         console.log(err);
                     })

+ 8 - 9
src/views/projectManage/components/ProjectManagement4.vue

@@ -4,12 +4,10 @@
 
       <div class="pmInp">
           <!-- <el-button type="primary" class="btn"  size="mini">上传文件</el-button> -->
-          <beUpload @getFile="getFile" v-show="state==0" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
-          <beUpload @getFile="getFile" v-show="state==1" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
-          <!-- <beUpload @getFile="getFile" v-show="state==2" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload> -->
-
-          <el-button v-show="state==2" style="background: #ccc !important;cursor: no-drop;color: #fff !important;border: 0;font-size: 16px;">上传文件</el-button>
 
+          <beUpload @getFile="getFile" v-show="state==0" class="btn"  :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
+          <beUpload @getFile="getFile" class="btn" v-show="state==1" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
+          <el-button v-show="state==2"  class="btn" style="background: #ccc !important;cursor: no-drop;color: #fff !important;border: 0;font-size: 16px;">上传文件</el-button>
 
         </div>
         <el-progress v-show="progress.show" :percentage="progress.value" :format="ProgressFormat"></el-progress>
@@ -121,7 +119,7 @@
             //   currentPage:1
             // }, 
             loading:false,
-            state:0,
+            state:'',
             showFile:false,
             showFileType: 0,
             showFileUrl: "",
@@ -357,11 +355,12 @@
       display: flex;
       margin: 10px 0 10px 0;
       justify-content: flex-end;
+
       .btn{
-        height: 30px;
-        width: 100px;
+        // height: 30px;
+        // background: blue;
+        width: 120px;
         font-size: 16px !important;
-        background: #477edd;
         margin-left: 10px;
       }
     }

+ 7 - 6
src/views/projectManage/components/ProjectManagement5.vue

@@ -4,9 +4,9 @@
 
       <div class="pmInp">
           <!-- <el-button type="primary" class="btn" @click="addFile" size="mini">上传文件</el-button> -->
-          <beUpload @getFile="getFile" v-show="state==0" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
-          <beUpload @getFile="getFile" v-show="state==1" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
-          <el-button v-show="state==2" style="background: #ccc !important;cursor: no-drop;color: #fff !important;border: 0;font-size: 16px;">上传文件</el-button>
+          <beUpload class="btn" @getFile="getFile" v-show="state==0" :navName="'上传文件'" :accept="accept" :progress="progress"></beUpload>
+          <el-button class="btn" v-show="state==2" style="background: #ccc !important;cursor: no-drop;color: #fff !important;border: 0;font-size: 16px;">上传文件</el-button>
+          <el-button class="btn" v-show="state==1" style="background: #ccc !important;cursor: no-drop;color: #fff !important;border: 0;font-size: 16px;">上传文件</el-button>
 
         </div>
         <el-progress v-show="progress.show" :percentage="progress.value" :format="ProgressFormat"></el-progress>
@@ -377,10 +377,11 @@
       display: flex;  
       justify-content: flex-end;
       .btn{
-        height: 30px;
-        width: 100px;
+        // height: 30px;
+        width: 120px;
         font-size: 16px;
-        background: #477edd;
+        border: none;
+
         // margin-left: 10px;
       }
     }

+ 62 - 18
src/views/projectSettlement/components/projectSettlementDetailBase_Student.vue

@@ -352,6 +352,9 @@
       <div class="baseBtn">
         <div class="blockWidth">
           <el-button type="primary" class="backBtn" @click="audit">立即修改</el-button>
+          <el-button type="primary" class="backBtn" v-show="isUpload==1" disabled style="background-color: #c8c9cc !important;border:none;">立即修改</el-button>
+          <el-button type="primary" class="backBtn" v-show="isUpload==2" disabled style="background-color: #c8c9cc !important;border:none;">立即修改</el-button>
+
         </div>
       </div>
   
@@ -407,7 +410,7 @@
   
             addStudentMemberDialog:false,   //添加学生对话框
             delStudentMember:false,      //删除学生对话框
-  
+            isUpload:'',
             textarea:'',   //项目简介
             tableData:[],   //成员列表数据
   
@@ -665,8 +668,8 @@
                       .then(res=>{
                         // console.log(data.);
                           let data=res.data[0][0]
-                          console.log(data);
-                          console.log(data.multiSelectProject);
+                          // console.log(data);
+                          // console.log(data.multiSelectProject);
                           this.content.select.projectName=data.title
                           this.content.select.leader=data.leader
                           this.content.select.projectDate=[data.startTime,data.endTime]
@@ -682,7 +685,7 @@
                           this.content.textarea=data.brief
                           this.content.dialogImageUrl=data.image
                           this.pageType=[data.typeid,data.typeName]
-  
+                          this.isUpload=data.isupload
                           
                           // console.log(this.content);
                       },err=>{
@@ -697,7 +700,7 @@
                   this.ajax
                         .get(this.$store.state.api+'/SelectAllType',param)
                         .then(res=>{
-                          console.log(res.data[0]);
+                          // console.log(res.data[0]);
                           let data=res.data[0]
                           this.sortOptions[0]['value']=data[0]['id']
                           this.sortOptions[0]['label']=data[0]['name']
@@ -713,19 +716,60 @@
   
           submitAll(){   //提交修改数据
             let param={
-              uid:this.$store.state.userInfo.userid,
-              pid:this.$route.query['pid'],
-              tit:this.content.select.projectName,
-              bri:this.content.textarea,
-              lea:this.content.select.leader,
-              pho:this.content.select.tel,
-              cos:JSON.stringify(this.content.tableStudentData),
-              cot:JSON.stringify(this.content.tableTeacherData),
-              img:this.content.dialogImageUrl,
-              cla:this.content.select.department,
-              mul:JSON.stringify(this.content.select.MultiSelectProjectNameS),
-              sch:this.content.select.schoolRemould,
-            }
+            uid:this.$store.state.userInfo.userid,
+            pid:JSON.parse(localStorage.getItem('pid')),
+            tit:this.content.select.projectName,
+            lea:this.content.select.leader,
+            cla:this.content.select.department,
+            mul:JSON.stringify(this.content.select.MultiSelectProjectNameS),
+            pho:this.content.select.tel,
+            sch:this.content.select.schoolRemould,
+            per:this.content.select.projectApplyPerson,
+            img:this.content.dialogImageUrl,
+            cot:JSON.stringify(this.content.tableTeacherData),
+            cos:JSON.stringify(this.content.tableStudentData),
+            bri:this.content.textarea,
+          }
+
+          const cEmpty = /^\s*$/g;
+              for(let i in param){
+                switch(i){
+                  case 'tit':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目名称不能为空")
+                    break;
+                  case 'lea':
+                    if(cEmpty.test(param[i]))return this.$message.error("项目负责人不能为空")
+                    break;
+                  case 'cla':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目所属部门")
+                    break;
+                  case 'mul':
+                    if(!JSON.parse(param[i]).length) return this.$message.error("请选择优先支持项目")
+                    break;
+                  case 'sch':
+                    if(!param[i])return this.$message.error("请选择美丽校园改造项目")
+                    break;
+                  case "pho":
+                    if(cEmpty.test(param[i]))return this.$message.error("请输入联系方式")
+                    break;
+                  case 'person':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目申请人")
+                    break;
+                  case 'img':
+                    if(cEmpty.test(param[i]))return this.$message.error("请选择项目封面图片")
+                    break;
+                  case 'cot':
+                    console.log(JSON.parse(param[i]).length);
+                    if(JSON.parse(param[i]).length<2 || JSON.parse(param[i]).length>4)return this.$message.error("需要教师团队3人以上,至少应包含1名教研室主任")
+                    break;
+                  case 'cos':
+                    if(JSON.parse(param[i]).length<5)return this.$message.error("需要学生团队5人以上")
+                    break;
+                  case 'bri':
+                    if(param[i].length<200 || param[i]>=300)return this.$message.error("项目简介需要200-300字")
+                    break;
+                }
+              }
               this.ajax
                     .post(this.$store.state.api+'/updateProjectApplyDetailStudent',param)
                     .then(res=>{

+ 5 - 4
src/views/projectSettlement/components/projectSettlementDetail_Student.vue

@@ -90,8 +90,8 @@
         <div class="baseBtn">
           <div class="blockWidth">
             <el-button type="primary" v-show="isUpload==0"  @click="audit">立即修改</el-button>
-            <el-button type="primary" v-show="isUpload==1"  @click="audit">立即修改</el-button>
-            <el-button type="primary" disabled style="background: #ccc !important;border: none;" v-show="isUpload==2"  @click="$message.error('项目已结项,不可再修改')">立即修改</el-button>
+            <el-button type="primary" v-show="isUpload==1" disabled style="background: #ccc !important;border: none;" >立即修改</el-button>
+            <el-button type="primary"  v-show="isUpload==2"  disabled style="background: #ccc !important;border: none;">立即修改</el-button>
   
           </div>
         </div>
@@ -187,9 +187,10 @@
                       .get(this.$store.state.api+'/SelectProjectApplyDetailStudent',param)
                       .then(res=>{
                           let data=res.data[0][0]
-                          console.log(data.chapters);
+                          // console.log(data.chapters);
+                          this.isUpload=data.isupload
                           this.content=JSON.parse(data.chapters)
-                          console.log(this.content);
+                          // console.log(this.content);
                       },err=>{
                           console.log(err);
                       })