From 0f49a23a9d4dc7d3eb9a7309f8cd85a316cd4d97 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期四, 30 四月 2020 17:39:22 +0800
Subject: [PATCH] 功能调整

---
 src/components/popup/newProject.vue |  262 +++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 225 insertions(+), 37 deletions(-)

diff --git a/src/components/popup/newProject.vue b/src/components/popup/newProject.vue
index 82368da..4ba4b18 100644
--- a/src/components/popup/newProject.vue
+++ b/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: 400px; 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"
@@ -35,17 +36,29 @@
 							</el-date-picker>
 					  </el-form-item>
 						
-					  <el-form-item label="椤圭洰鎻忚堪:" prop="desp" style="width: 50%;">
-					    <el-input type="textarea" v-model="ruleForm.desp"></el-input>
+					  <el-form-item label="椤圭洰寮曡繘浜�:" prop="desp" style="width: 50%;">
+							<el-cascader
+									style="width: 100%;"
+							    :options="options_leadUserId"
+							    :props="props_"
+									@change="leadUserIdChange"
+									v-model="ruleForm.leadUserList"
+							    clearable>
+							</el-cascader>
 					  </el-form-item>
+						
+						<el-form-item label="椤圭洰鎻忚堪:" prop="desp" style="width: 50%;">
+						  <el-input type="textarea" v-model="ruleForm.desp"></el-input>
+						</el-form-item>
 					</el-form>
         </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 +87,43 @@
 		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,
+		props_: {multiple: true},
+		userId: undefined,
+		assign: undefined,
+		add_Step: 0,
 			loading_nextStep: false,
 			nextStepName: "涓嬩竴姝�",
 			loading_cancel: false,
@@ -83,8 +131,11 @@
 			
 			ruleForm: {},
 			xmId: null,
+			totalItems: null,
 			showData_: null,
 			form_objs: null,
+			
+			options_leadUserId: [],
 			options_objectives: [
 			  {
 			    value: "骞查鎬х郴缁熻瘎浠�",
@@ -121,9 +172,10 @@
 				items: [
 					{
 						type: "array",
+						validator: validateTtems,
 						required: true,
-						message: "涓嶈兘涓虹┖",
-						trigger: ["change", "blur"]
+						//message: "涓嶈兘涓虹┖",
+						trigger: ["change"]
 					}
 				]
 				
@@ -131,13 +183,81 @@
 			
 		}
   },
+	
+	created() {
+	  this.getUsers();
+	},
 mounted() {
 	if(this.rowData.id) {
-		this.ruleForm = this.rowData;
 		this.xmId = this.rowData.id;
+		let url = "/api/scheme/get/" + this.rowData.id;
+		this.$axios.get(url).then(data_ => {
+			window.console.log(data_);
+			let selected_ = data_.data.data;
+			this.ruleForm = {
+				id:selected_.id,
+				desp:selected_.desp,
+				name: selected_.name,
+				beginDate: selected_.beginDate,
+				endDate: selected_.endDate,
+				objective:selected_.reseachType,
+				leadUserId: selected_.leadUserId,
+				leadUserList: selected_.leadUserList,
+				items:[this.$moment(selected_.startTime).format('YYYY-MM-DD'),this.$moment(selected_.endTime).format('YYYY-MM-DD')]
+			}
+			
+		}).catch(error =>{
+				
+		})
+		
 	}
+	else {
+		this.ruleForm = this.rowData;
+	}
+	
+	this.userId = localStorage.getItem('userId');
+	this.assign = localStorage.getItem('assign');
 },
   methods:{
+		getUsers() {
+		  let me = this;
+		  let url = "/api/sysRoleMapping/all";
+		  this.$axios.get(url)
+		  .then(data_ => {
+		    let list = data_.data.data;
+		    let parId = "";
+		    let obj = {};
+		    let result = [];
+		
+		    list.map(el => {
+		        obj[el.id] = el;
+		    })
+		    for(let i=0, len = list.length; i < len; i++) {
+		        let id = list[i].roleName;
+		        //璁剧疆鏄剧ず瀛楁
+		        list[i].value = list[i].id;
+		        list[i].label = list[i].name;
+		
+		        if(id == parId || !id) {
+		            if(!obj[list[i].id].children) {
+		              obj[list[i].id].children = [];
+		            }
+		            result.push(list[i]);
+		            continue;
+		        }
+		        if(obj[id].children) {
+		            obj[id].children.push(list[i]);
+		        } else {
+		            obj[id].children = [list[i]];
+		        }
+		    }
+			
+		    me.options_leadUserId = result;
+		  }).catch(error =>{
+				
+		  })
+		},
+		
 		Cancel() {
 			this.add_Step = 0;
 			this.nextStepName = "涓嬩竴姝�";
@@ -164,13 +284,12 @@
 				  if (valid) {
 				    is_null1 = true;
 				  } else {
-				    console.log('error submit!!');
 				    return false;
 				  }
 				});
 				if(is_null1) {
+				  this.loading_nextStep = true;
 					this.saveStep1();
-				  this.loading_save = true;
 				}
 				
 			//	this.xmId = "c3b7f55c800e4726b53fdc18dd994603";
@@ -187,30 +306,64 @@
 		},
 		
 		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,
+				leadUserId: ruleForm_.leadUserId
+			};
 			
-			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 +386,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();
@@ -241,10 +399,26 @@
 					form_obj.endTime = this.$moment(form_obj.endTime).format('YYYY-MM-DD');
 				//	form_obj.endTime = new Date(form_obj.endTime).Format("yyyy-MM-dd").toLocaleString();
 				}
-				if (form_obj.userId) {
-					let leng = form_obj.userId.length;
+				
+				if (form_obj.parttimeUser && form_obj.parttimeUser.length>0) {
+					let parttimeUser_ = "";
+					for (let i = 0; i<form_obj.parttimeUser.length; i++) {
+						if (parttimeUser_ == "") {
+							parttimeUser_ = form_obj.parttimeUser[i];
+						}
+						else {
+							parttimeUser_ = parttimeUser_ + ";" + form_obj.parttimeUser[i];
+						}
+					}
 					
-					form_obj.userId = form_obj.userId[leng-1];
+					form_obj.parttimeUser = parttimeUser_;
+				}
+				
+				if (form_obj.userIds) {
+					let leng = form_obj.userIds.length;
+					
+					form_obj.roleName = form_obj.userIds[leng-2];
+					form_obj.userId = form_obj.userIds[leng-1];
 				}
 				form_obj.type = itm_k;
 				form_obj.parentId = this.xmId;
@@ -257,18 +431,16 @@
 				let datas = "?datas=" + encodeURI(JSON.stringify(form_array));
 				let url = "/api/detail/updates";
 				this.$axios.get(url + datas).then(data_ => {
-					console.log(data_);
 					
 					this.add_Step = 2;
 					this.nextStepName = "瀹� 鎴�";
 				}).catch(error =>{
-						console.log(error);
 				})
 			}
 		},
 		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();
@@ -277,9 +449,25 @@
 					this.$message({message:'椤圭洰鍚姩澶辫触', type: 'warning'});
 				}
 			}).catch(error =>{
-					console.log(error);
 			})
 		},
+		
+		leadUserIdChange(val) {
+			let aa = val;
+			let s_ = "";
+			for (let i=0; i<val.length; i++) {
+				if (i == 0) {
+					let val_ = val[i];
+					s_ = val_[val_.length - 1];
+				}
+				else {
+					let val_ = val[i];
+					s_ = s_ + ";" + val_[val_.length - 1];
+				}
+			}
+			this.ruleForm.leadUserId = s_;
+		},
+		
   }
 }
 </script>

--
Gitblit v1.8.0