Parcourir la source

Merge branch 'master' of https://git.cocorobo.cn/CocoRoboLabs/ssti-CollegeManage

yuanyiming il y a 2 ans
Parent
commit
ec980ac11a

+ 13 - 6
src/App.vue

@@ -151,14 +151,21 @@
         border-radius: 5px;
         position: relative;
         justify-content: space-between;
+        align-items: flex-end;
         div{
-          position: relative;
+          position: absolute;
+          left: 0;
+          bottom: 0;
+          text-align: left;
+          display: flex;
+          align-items: flex-end;
           p{
-            position: absolute;
-            width: 200px;
-            text-align: left;
-            left: 0;
-            bottom: 0;
+            position: relative;
+            width: auto;
+          }
+          span{
+            font-size: 14px;
+            color: gray;
           }
         }
         [type='button']{

+ 13 - 21
src/views/projectApply/projectApplicationApplyMain.vue

@@ -59,7 +59,7 @@
           :close-on-press-escape="false"
           >
           <!-- <div class="addDialogLogo">LOGO</div> -->
-          <div class="" style="display: flex;align-items: center;justify-content: center;">
+          <div class="" style="display: flex;align-items: center;justify-content: center;margin-top: 10px;">
               <div style="margin-right: 10px;">选择分类</div>
               <el-cascader v-model="pageType" :options="projectApplicationApply1.sortOptions" clearable></el-cascader>
           </div>
@@ -100,27 +100,20 @@
             MakerSpace:{
               amendMemberDialog:false,  //修改人员对话框显示判断
                 dialogImageUrl:"",  //封面
-                telVerify:true,
-                telVerify2:true,  //添加修改成员电话判断
                 select:{    //基本信息数据框
-                  projectName:'', 
-                  person:'',
-                  Data:'',
+                  projectName:'', //项目名称
+                  person:'',  //项目负责人
+                  Data:[],  //项目时间
                   value:"",   //部门
-                  fund:'',
-                  tel:'',
-                  value1:"",
+                  fund:'',  //预算总经费
+                  leader:"",//学院牵头领导
+                  // tel:'',   //联系人电话
+                  // value1:"",
                 },
                 options: [],  //部门下拉框
                 textarea:'',   //项目简介
-                Member:{    //添加成员
-                    name:'',
-                    class:'',
-                    phone:'',
-                    score:'0'
-                },
-                tableData:[ //成员列表
-                ]
+                teacherData:[],//教师组
+                studentData:[],//学生组
             },
             //创客空间建设项目立项申报项目内容数据
             MakerSpace2:{
@@ -140,7 +133,7 @@
                 select:{    //基本信息数据框
                   projectName:'', 
                   person:'',
-                  Data:'',
+                  Data:"",
                   value:"",   //部门
                   fund:'',
                   tel:'',
@@ -342,8 +335,8 @@
                         // console.log(res.data[0]);
                         let p=res.data[0]
                         let a=this.projectApplicationApply1
-                        a.departmentOptions=p
-                        // console.log(this.projectApplicationApply1.options);
+                        a.options=p
+                        this.MakerSpace.options = p;
                       },err=>{
                         console.log(err);
                       })
@@ -436,7 +429,6 @@
                 imgsrc:a.dialogImageUrl,
                 beginTime:a.select.value1
               }
-              console.log(param);
                 this.ajax
                       .post(this.$store.state.api+'/CreateProject',param)
                       .then(res=>{

+ 287 - 93
src/views/projectApply/projectApplicationApplyMakerSpace.vue

@@ -51,22 +51,20 @@
                               </el-select>
                           </div>
                           <div class="inpBlock">
-                              <div class="label">联系电话</div>
-                              <el-input type="number" v-model="data.select.tel"  @blur="getText(data.select.tel)" placeholder="请输入联系方式"></el-input>
+                            <div class="label">学院牵头领导</div>
+                            <el-input v-model="data.select.leader" placeholder="请输入学院牵头领导"></el-input>
                           </div>
-                          <!-- <div v-if="!isPhoneValid" class="error-message">电话号码格式不正确</div> -->
-
                       </div>
 
                       <div class="selectRight">
                         <div class="inpBlock">
-                              <div class="label">项目开始时间</div>
+                              <div class="label">项目时间</div>
                               <el-date-picker
-                                v-model="data.select.value1"
-                                type="datetime"
-                                style="width: 100%;"
-                                value-format="yyyy-MM-dd HH:mm:ss"
-                                placeholder="选择日期">
+                                v-model="data.select.Data"
+                                type="daterange"
+                                range-separator="至"
+                                start-placeholder="项目起始时间"
+                                end-placeholder="项目完成时间">
                               </el-date-picker>
                           </div>
                           <div class="inpBlock" style="position: relative;">
@@ -74,10 +72,6 @@
                               <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">
-                              <div class="label">选择分类</div>
-                              <el-cascader v-model="data.select.sort" :options="data.sortOptions" clearable></el-cascader>
-                          </div> -->
                       </div>
                     </div>
                    
@@ -86,7 +80,7 @@
 
           <!-- 项目封面上传开始 -->
           <div style="height: 260px;">
-              <div id="two" class="tabTit">
+              <div id="three" class="tabTit">
                 <div><p>封面上传</p></div>
               </div>
               <hr>
@@ -113,12 +107,12 @@
             <!-- <div> -->
   <!-- 项目成员表格开始 -->
               <div id="two" class="tabTit">
-                <div><p>项目成员</p></div>
+                <div><p>项目组-教师团队</p><span>(团队3人以上,至少应包含1名教研室主任)</span></div>
                 <el-button type="primary" @click="addMember"  size="mini">添加成员</el-button>
               </div>
               <hr>
               <el-table
-                :data="data.tableData"
+                :data="data.teacherData"
                 tooltip-effect="dark"
                 stripe
                 :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
@@ -132,15 +126,36 @@
                   >
                 </el-table-column>
                 <el-table-column
-                  prop="class"
-                  label="班级"
+                  prop="speciality"
+                  label="专业"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  prop="title"
+                  label="职称"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  prop="education"
+                  label="学历"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  prop="section"
+                  label="所在教研室"
                   align="center"
                   >
                 </el-table-column>
 
                 <el-table-column
-                  prop="phone"
-                  label="电话"
+                  prop="work"
+                  label="项目组角色分工"
                   align="center"
                   >
                 </el-table-column>
@@ -162,6 +177,62 @@
                   </template>
                 </el-table-column>
               </el-table>
+
+              <div id="four" class="tabTit">
+                <div><p>项目组-学生团队</p></div>
+                <el-button type="primary" @click="addMemberStudent"  size="mini">添加成员</el-button>
+              </div>
+              <hr>
+              <el-table
+                :data="data.studentData"
+                tooltip-effect="dark"
+                stripe
+                :header-cell-style="{ background: '#f2f2f2',color:'#000' }"
+                class="fontSize"
+                >
+              
+                <el-table-column
+                  prop="name"
+                  label="姓名"
+                  align="center"
+                  >
+                </el-table-column>
+                <el-table-column
+                  prop="class"
+                  label="班级"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  prop="age"
+                  label="年龄"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  prop="work"
+                  label="项目组任务分工"
+                  align="center"
+                  >
+                </el-table-column>
+
+                <el-table-column
+                  align="center"
+                  prop="operation"
+                  label="操作"
+                  >
+                  <template #default="scope">
+                      <div class="operations">
+                          <!-- <el-button type="primary" > -->
+                              <el-button type="primary" @click="updateStudent(scope.$index)" size="mini">修改</el-button>
+                              <el-button type="primary" @click="DelStudent(scope.$index)" size="mini">删除</el-button>
+                          <!-- </el-button> -->
+                      </div>
+                  </template>
+                </el-table-column>
+              </el-table>
   <!-- 项目成员表格结束 -->
 
 
@@ -180,7 +251,7 @@
               </el-input>
   <!-- 项目简介结束 -->
  <!-- 结束按钮开始 -->
-         <div id="four" class="baseBtn">
+         <div id="five" 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>
@@ -195,7 +266,7 @@
 
       <!--添加成员dialog对话框开始 -->
       <el-dialog
-          :title= "isAddMember==1?'添加成员':'修改成员'"
+          :title= "isAddMember==1?'添加教师':'修改教师'"
           :visible.sync="addMemberDialog"
           :modal="true"
           :close-on-click-modal="true"
@@ -204,23 +275,46 @@
             <div class="littleBlock">
               <div class="dialogLabel">姓名</div>
               <div>
-                <el-input v-model="data.Member.name"></el-input>
+                <el-input v-model="teacher.name" placeholder="请输入教师姓名"></el-input>
               </div>
             </div>
 
             <div class="littleBlock">
-              <div class="dialogLabel">班级</div>
+              <div class="dialogLabel">专业</div>
+              <div>
+                <el-input v-model="teacher.speciality" placeholder="请输入教师专业"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel">职称</div>
+              <div>
+                <el-input v-model="teacher.title" placeholder="请输入教师职称"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel">学历</div>
+              <div>
+                <el-input v-model="teacher.education" placeholder="请输入教师学历"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel" style="transform: translate(0,0);">所在教研室</div>
               <div>
-                <el-input v-model="data.Member.class"></el-input>
+                <el-input v-model="teacher.section" placeholder="请输入所在教研室"></el-input>
               </div>
             </div>
 
             <div class="littleBlock">
-              <div class="dialogLabel">电话</div>
+              <div class="dialogLabel" style="transform: translate(0,0);">项目组角色分工</div>
               <div>
-                <el-input type="number" class="inputNumber" v-model="data.Member.phone" @blur="getText(data.Member.phone)" ></el-input>
+                <el-input v-model="teacher.work" placeholder="请输入项目组角色分工"></el-input>
               </div>
             </div>
+
+
             <div slot="footer" class="footer">
               <el-button v-show="isAddMember==1" type="primary" @click="commit" class="AllDialogBtn" >确认提交</el-button>
               <el-button v-show="isAddMember==2" type="primary" @click="commit2" class="AllDialogBtn" >确认修改</el-button>
@@ -230,25 +324,86 @@
       </el-dialog>
       <!--添加成员dialog对话框结束 -->
 
-      <!-- 删除成员对话框开始 -->
+      <!--添加学生成员dialog对话框开始 -->
+      <el-dialog
+          :title= "isAddStudent==1?'添加学生':'修改学生'"
+          :visible.sync="addStudentDialog"
+          :modal="true"
+          :close-on-click-modal="true"
+          class="AddMember"
+          :before-close="init">
+            <div class="littleBlock">
+              <div class="dialogLabel">姓名</div>
+              <div>
+                <el-input v-model="student.name" placeholder="请输入学生姓名"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel">班级</div>
+              <div>
+                <el-input v-model="student.class" placeholder="请输入学生班级"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel">年龄</div>
+              <div>
+                <el-input v-model="student.age" placeholder="请输入学生年龄"></el-input>
+              </div>
+            </div>
+
+            <div class="littleBlock">
+              <div class="dialogLabel" style="transform: translate(0,0);">项目组角色分工</div>
+              <div>
+                <el-input v-model="student.work" placeholder="请输入项目组角色分工"></el-input>
+              </div>
+            </div>
+
+
+            <div slot="footer" class="footer">
+              <el-button v-show="isAddStudent==1" type="primary" @click="commitStudent" class="AllDialogBtn" >确认提交</el-button>
+              <el-button v-show="isAddStudent==2" type="primary" @click="commitStudent2" class="AllDialogBtn" >确认修改</el-button>
+
+              <el-button @click="init" class="AllDialogBtn">取消</el-button>
+            </div>
+      </el-dialog>
+      <!--添加学生成员dialog对话框结束 -->
+
+      <!-- 删除教师成员对话框开始 -->
             <el-dialog
-              title="删除成员"
+              title="删除教师成员"
               :visible.sync="delMember"
               width="600px"
               class="delMemberDialog">
-              <span class="deleteContent">确定删除成员?</span>
+              <span class="deleteContent">确定删除该教师成员?</span>
               <span slot="footer" class="dialog-footer">
                 <el-button type="primary" @click="commitDelMember" class="AllDialogBtn">确认删除</el-button>
                 <el-button @click="init" class="AllDialogBtn" >取消</el-button>
               </span>
             </el-dialog>
-      <!-- 删除成员对话框结束 -->
+      <!-- 删除教师成员对话框结束 -->
+
+      <!-- 删除学生成员对话框开始 -->
+      <el-dialog
+              title="删除学生成员"
+              :visible.sync="DelStudentDialog"
+              width="600px"
+              class="delMemberDialog">
+              <span class="deleteContent">确定删除该学生成员?</span>
+              <span slot="footer" class="dialog-footer">
+                <el-button type="primary" @click="commitDelStudent" class="AllDialogBtn">确认删除</el-button>
+                <el-button @click="init" class="AllDialogBtn" >取消</el-button>
+              </span>
+            </el-dialog>
+      <!-- 删除学生成员对话框结束 -->
     </div>
   
 </template>
 
 <script>
-    import BeUpload from "../../components/tool/beUpload.vue";
+    import { Dropdown } from "element-ui";
+import BeUpload from "../../components/tool/beUpload.vue";
     export default { 
       props:["data","next",'back','addPerson'],
       components: {
@@ -259,6 +414,7 @@
           // dialogImageUrl: '',
           accept:"image/*",
           isAddMember:1,
+          isAddStudent:1,
           progress:{   //进度条
                 value:0,
                 show:false
@@ -266,9 +422,25 @@
           // fileList: [],
           dialogVisible: false,
           addMemberDialog:false,
+          addStudentDialog:false,
           // amendMemberDialog:false,
           delMember:false,
-          index:''
+          DelStudentDialog:false,
+          index:'',
+          teacher:{ //添加老师团队表
+            name:"",  //姓名
+            speciality:"",//专业
+            title:"",//职称
+            education:"",//学历
+            section:"",//所在教研室
+            work:"",//项目组角色分工
+          },
+          student:{ //添加学生团队表
+            name:"",//姓名
+            class:"",//班级
+            age:"",//年龄
+            work:'',//项目组任务分工
+          }
         }
       },
       
@@ -292,70 +464,81 @@
             this.dialogImageUrl = file.url;
             this.dialogVisible = true;
         },
-        getText(value) {     //电话验证
-          let verify = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/; //获取正则表达式 存放到verify变量中
-          let result = verify.test(value.trim()); //判断输入框内容是否符合 正则表达式
-          // if(!result && value != "") {
-            // debugger
-          if(!result) {
-            if (value == this.data.select.tel) {
-                this.$message.error('请输入正确联系号码格式')
-                return  this.data.telVerify=false;
-            }
-            if (value == this.data.Member.phone) {
-                return  this.data.telVerify2=false;
-            }
-          }else{
-            if (value == this.data.select.tel) {
-                 this.data.telVerify=true;
-            }
-            if (value == this.data.Member.phone) {
-              return  this.data.telVerify2=true;
-            }
-          }
-        },
+        // getText(value) {     //电话验证
+        //   let verify = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/; //获取正则表达式 存放到verify变量中
+        //   let result = verify.test(value.trim()); //判断输入框内容是否符合 正则表达式
+        //   // if(!result && value != "") {
+        //     // debugger
+        //   if(!result) {
+        //     if (value == this.data.select.tel) {
+        //         this.$message.error('请输入正确联系号码格式')
+        //         return  this.data.telVerify=false;
+        //     }
+        //     if (value == this.data.Member.phone) {
+        //         return  this.data.telVerify2=false;
+        //     }
+        //   }else{
+        //     if (value == this.data.select.tel) {
+        //          this.data.telVerify=true;
+        //     }
+        //     if (value == this.data.Member.phone) {
+        //       return  this.data.telVerify2=true;
+        //     }
+        //   }
+        // },
         
         init(){
           this.addMemberDialog=false;
-          // this.data.amendMemberDialog=false
-          this.delMember=false
-
+          this.delMember=false;
+          this.addStudentDialog = false;
+          this.DelStudentDialog = false;
         },
-        addMember(){   //添加项目成员
-          this.addMemberDialog=true
-          for(let i in this.data.Member){
-            if(i=='score')this.data.Member[i] = "0"
-            else this.data.Member[i] = "";
-          }
+        addMember(){   //添加项目组-教师成员
           this.isAddMember=1;
+          this.addMemberDialog=true
+        },
+        addMemberStudent(){//添加项目组-学生成员
+          this.isAddStudent=1;
+          this.addStudentDialog = true;
         },
         amendDialogData(val){   //修改项目成员信息对话框显示
-          Object.assign(this.data.Member,this.data.tableData[val])
+          Object.assign(this.teacher,this.data.teacherData[val])
           this.isAddMember=2;
-          this.data.Member['index']=val
-          // console.log(this.data.Member['index']);
-          this.addMemberDialog=true
+          this.index=val;
+          this.addMemberDialog=true;
+        },
+        updateStudent(val){
+          Object.assign(this.student,this.data.studentData[val]);
+          this.isAddStudent=2;
+          this.index=val;
+          this.addStudentDialog = true;
         },
         commit2(){   //确定修改成员
-              if (!this.data.telVerify2) return this.$message.error('请输入正确联系号码格式')
-              Object.assign(this.data.tableData[this.data.Member['index']],this.data.Member)
-              for(let k in this.data.Member) this.data.Member[k]=''
-              this.addMemberDialog=false;
-              this.$message.success('修改成功')
-
-              console.log(this.data.tableData);
+            Object.assign(this.data.teacherData[this.index],this.teacher)
+            for(let k in this.teacher) this.teacher[k]=''
+            this.addMemberDialog=false;
+            this.$message.success('修改成功')
         },
         Del(val){    //删除对话框显示
           this.delMember=true;
           this.index=val
         },
-        commitDelMember(){   //对话框确定删除成员
+        DelStudent(val){//删除学生对话框
+          this.index = val;
+          this.DelStudentDialog=true;
+        },
+        commitDelMember(){   //对话框确定删除教师成员
           let a=this.index;
-          this.data.tableData.splice(a,1);
+          this.data.teacherData.splice(a,1);
           this.$message.success('删除成功');
           this.delMember=false;
         
         },
+        commitDelStudent(){ //对话框确定删除学生成员
+          this.data.studentData.splice(this.index,1);
+          this.$message.success('删除成功');
+          this.DelStudentDialog=false;
+        },
         backBtn1(){  // 上一步
           this.$router.push('/projectApplication')
         },
@@ -363,23 +546,31 @@
         backBtn(){   // 下一步
             this.next();
         },
-        commit(){   //确定添加成员  
-              if (this.data.Member.name =="" ||this.data.Member.name==undefined) return this.$message.error('请输入姓名')
-              if (this.data.Member.class=="" ||this.data.Member.class==undefined) return this.$message.error('请输入班级')
-              if (!this.data.telVerify2) return this.$message.error('请输入正确联系电话格式')
-              // this.addPerson();
+        commit(){   //确定添加教师
+              for(let i in this.teacher){if(this.teacher[i]==''||this.teacher[i]==undefined)return this.$message.error("请填完所有内容");}
               let newData = {};
-              for(let j in this.data.Member)newData[j] = this.data.Member[j];
-              this.data.tableData.push(newData);
-              this.$message.success('添加成功')
-              for(let i in this.data.Member){      
-                if(i=='score')this.data.Member[i] = "0"
-                else this.data.Member[i] = "";
-              }
-              console.log(this.data.tableData)
-              this.init()
+              for(let a in this.teacher)newData[a] = this.teacher[a];
+              this.data.teacherData.push(newData);
+              this.$message.success('添加成功');
+              this.init();
+              for(let j in this.teacher)this.teacher[j]='';
+        },
+        commitStudent(){//确定添加学生
+            for(let i in this.student){if(this.student[i]==''||this.student[i]==undefined)return this.$message.error("请填完所有内容");}
+            let newData={};
+            for(let a in this.student)newData[a] = this.student[a];
+            this.data.studentData.push(newData);
+            this.$message.success("添加成功");
+            this.init();
+            //清空表单
+            for(let j in this.student)this.student[j]='';
+        },
+        commitStudent2(){//确定修改学生
+            Object.assign(this.data.studentData[this.index],this.student)
+            this.addStudentDialog=false;
+            for(let k in this.student) this.student[k]=''
+            this.$message.success('修改成功')
         },
-       
         toPage(val){
             if (val==1) {
               document.getElementById("one").scrollIntoView({ behavior: "smooth" });
@@ -522,4 +713,7 @@
             }
           }
 }
+#four{
+  margin-top: 60px;
+}
 </style>