zhangyanpeng
2020-03-18 37a6ace3b51bc1d7bb562242c8a70b51ba3b6680
src/components/popup/newProject.vue
@@ -5,7 +5,7 @@
       <el-step title="方案设计" description="确立方案"></el-step>
       <el-step title="预览" description=""></el-step>
     </el-steps>
     <div style="height: 55vh; padding:0px; box-sizing:boder-box; overflow: auto;">
     <div style="height: 45vh; padding:0px; box-sizing:boder-box; overflow: auto;">
       <div v-if="add_Step == 0" style="width: 100%; height: 100%;" align="center">
        <div style="padding-top: 5%; box-sizing:boder-box">
               <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
@@ -24,6 +24,7 @@
                 </el-form-item>
                  
                 <el-form-item label="起止时间:" prop="items" style="width: 50%;">
                        <!-- :picker-options="pickerOptions01" -->
                     <el-date-picker
                        v-model="ruleForm.items"
                        type="daterange"
@@ -42,10 +43,11 @@
        </div>
      </div>
      <div v-if="add_Step == 1" style="width: 100%; height: 100%;" align="center">
            <substep ref="substep_zj" v-bind:xmId="xmId"></substep>
            <substep ref="substep_zj" v-bind:xmId="xmId" v-bind:totalItems="totalItems"></substep>
      </div>
      <div v-if="add_Step == 2" style="width: 100%; height: 100%;" align="center">
        <substepReadOnly v-bind:form_objs="form_objs" v-bind:showData_="showData_"></substepReadOnly>
        <!-- <substepReadOnly v-bind:form_objs="form_objs" v-bind:showData_="showData_"></substepReadOnly> -->
        <substepReadOnly v-bind:xmId="xmId"></substepReadOnly>
      </div>
    </div>
       
@@ -74,8 +76,42 @@
      substepReadOnly
   },
  data () {
      var validateTtems = (rule, value, callback) => {
               if (value.length > 1) {
                  let a1 = new Date(value[0]);
                  let a2 = new Date(this.ruleForm.items[1]);
                  if (this.rowData.beginDate && !this.rowData.endDate) {
                     let bb0 = new Date(this.rowData.beginDate);
                     let bb0str = this.$moment(bb0).format('YYYY-MM-DD');
                     if (a1 > bb0) {
                        callback(new Error('开始时间应小于' + bb0str));
                     }
                     else if (a2 < bb0) {
                        callback(new Error('结束时间应大于' + bb0str));
                     }
                  }
                  else if (this.rowData.beginDate && this.rowData.endDate) {
                     let bb0 = new Date(this.rowData.beginDate);
                     let bb1 = new Date(this.rowData.endDate);
                     let bb0str = this.$moment(bb0).format('YYYY-MM-DD');
                     let bb1str = this.$moment(bb1).format('YYYY-MM-DD');
                     if (a1 > bb0) {
                        callback(new Error('开始时间应小于' + bb0str));
                     }
                     else if (a2 < bb1) {
                        callback(new Error('结束时间应大于' + bb1str));
                     }
                  }
                  callback();
               }
        };
    return {
      add_Step: 0,
      userId: undefined,
      assign: undefined,
      add_Step: 0,
         loading_nextStep: false,
         nextStepName: "下一步",
         loading_cancel: false,
@@ -83,6 +119,7 @@
         
         ruleForm: {},
         xmId: null,
         totalItems: null,
         showData_: null,
         form_objs: null,
         options_objectives: [
@@ -121,9 +158,10 @@
            items: [
               {
                  type: "array",
                  validator: validateTtems,
                  required: true,
                  message: "不能为空",
                  trigger: ["change", "blur"]
                  //message: "不能为空",
                  trigger: ["change"]
               }
            ]
            
@@ -133,9 +171,11 @@
  },
mounted() {
   if(this.rowData.id) {
      this.ruleForm = this.rowData;
      this.xmId = this.rowData.id;
   }
   this.ruleForm = this.rowData;
   this.userId = localStorage.getItem('userId');
   this.assign = localStorage.getItem('assign');
},
  methods:{
      Cancel() {
@@ -164,13 +204,12 @@
              if (valid) {
                is_null1 = true;
              } else {
                console.log('error submit!!');
                return false;
              }
            });
            if(is_null1) {
               this.saveStep1();
              this.loading_save = true;
             // this.loading_nextStep = true;
            //   this.saveStep1();
            }
            
         //   this.xmId = "c3b7f55c800e4726b53fdc18dd994603";
@@ -187,30 +226,63 @@
      },
      
      saveStep1() {
         let me = this;
         let ruleForm_ = this.ruleForm;
         var items1 = this.$moment(ruleForm_.items[0]).format('YYYY-MM-DD');
         var items2 = this.$moment(ruleForm_.items[1]).format('YYYY-MM-DD');
         //let items1 = new Date(ruleForm_.items[0]).Format("yyyy-MM-dd").toLocaleString();
      //   let items2 = new Date(ruleForm_.items[1]).Format("yyyy-MM-dd").toLocaleString();
         let listId = "";
         let params_ = {
            reseachType: ruleForm_.objective,
            name: ruleForm_.name,
            startTime: items1,
            endTime: items2,
            id: me.xmId,
            desp:ruleForm_.desp,
            userId: me.userId
         };
         
         let url = "/api/scheme/addOrUpdate";
         this.$axios.get(url,{
           params: {
             reseachType: ruleForm_.objective,
             name: ruleForm_.name,
               startTime: items1,
               endTime: items2,
               id: this.xmId,
               desp:ruleForm_.desp
           }
         }).then(data_ => {
           console.log(data_);
            this.xmId = data_.data.data;
            this.add_Step = 1;
         }).catch(error =>{
             console.log(error);
         })
         if (this.rowData.parentid) {
            listId = this.rowData.parentid;
         }
         if (!me.xmId && this.rowData.parentid) {
            let url_ = "/api/scheme/addOrUpdate";
            this.$axios.get(url_,{
              params: params_
            }).then(data_ => {
               me.xmId = data_.data.data;
               me.totalItems = ruleForm_.items;
               let url = "/api/topic/exam/" + listId;
               this.$axios.get(url,{
                  params: {
                     projectId: me.xmId
                  }
               }).then(data_1 => {
                  if(data_1.data.success) {
                     me.add_Step = 1;
                     me.loading_nextStep = false;
                  }else {
                     this.$message({message:'创建项目失败', type: 'warning'});
                  }
               }).catch(error => {
               })
            }).catch(error =>{
            })
         }
         else {
            let url_ = "/api/scheme/addOrUpdate";
            this.$axios.get(url_,{
              params: params_
            }).then(data_ => {
               me.xmId = data_.data.data;
               me.totalItems = ruleForm_.items;
               me.add_Step = 1;
               me.loading_nextStep = false;
            }).catch(error =>{
            })
         }
      },
      
      saveStep2() {
@@ -233,6 +305,11 @@
            if (!form_obj.mustAttach) {
               form_obj.mustAttach = false;
            }
            /* if (form_obj.items_fz.length > 0) {
               form_obj.startTime = form_obj.items_fz[0];
               form_obj.endTime = form_obj.items_fz[1];
            } */
            if (form_obj.startTime) {
               form_obj.startTime = this.$moment(form_obj.startTime).format('YYYY-MM-DD');
         //      form_obj.startTime = new Date(form_obj.startTime).Format("yyyy-MM-dd").toLocaleString();
@@ -268,8 +345,8 @@
         }
      },
      saveStep3() {
         let url = "/api/scheme/working/" + this.ruleForm.id;
         this.$axios.get(url + datas).then(data_ => {
         let url = "/api/scheme/working/" + this.xmId;
         this.$axios.get(url).then(data_ => {
            if(data_.data.success) {
               this.$message('项目启动成功');
               this.Cancel();