From 801770456ae3750a44e0989b0025a98ccbad24e6 Mon Sep 17 00:00:00 2001
From: bob <bob.zhang@highdatas.com>
Date: 星期四, 13 八月 2020 17:13:53 +0800
Subject: [PATCH] 最新

---
 src/components/popup/newProject.vue |  365 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 314 insertions(+), 51 deletions(-)

diff --git a/src/components/popup/newProject.vue b/src/components/popup/newProject.vue
index b365483..cfbd6f7 100644
--- a/src/components/popup/newProject.vue
+++ b/src/components/popup/newProject.vue
@@ -8,11 +8,36 @@
      <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">
-					  <el-form-item label="椤圭洰鍚嶇О:" prop="name" style="width: 50%;">
-					    <el-input v-model="ruleForm.name"></el-input>
+					<el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="120px" class="demo-ruleForm">
+						<el-form-item label="椤圭洰鍙�:" prop="code" style="width: 50%;">
+						  <el-input v-model="ruleForm.code"></el-input>
+						</el-form-item>
+					  <el-form-item label="椤圭洰鍚嶇О:" style="width: 50%;">
+					    <el-input v-model="ruleForm.name" disabled></el-input>
 					  </el-form-item>
-					  <el-form-item label="鐮旂┒鐩殑:" prop="objective" style="width: 50%;">
+						<el-form-item label="鐮旂┒绫诲瀷鍒嗙被:" prop="type_array" style="width: 50%;">
+							<el-select @change="typeArrayChange_" multiple  v-model="ruleForm.type_array" style="width: 100%;">
+								<el-option
+									v-for="(item,k) in options_type"
+									:key="k"
+									:label="item"
+									:value="item"
+								></el-option>
+							</el-select>
+						</el-form-item>
+						
+						<el-form-item label="鐮旂┒鐩殑鍒嗙被:" prop="order_type_array" style="width: 50%;">
+							<el-select @change="order_typeArrayChange_" multiple  v-model="ruleForm.order_type_array" style="width: 100%;">
+								<el-option
+									v-for="(item,k) in options_order_type"
+									:key="k"
+									:label="item"
+									:value="item"
+								></el-option>
+							</el-select>
+						</el-form-item>
+						
+					  <!-- <el-form-item label="鐮旂┒鐩殑:" prop="objective" style="width: 50%;">
 					    <el-select v-model="ruleForm.objective" placeholder="璇烽�夋嫨" style="width: 100%;">
 					      <el-option
 					      	v-for="item in options_objectives"
@@ -21,7 +46,7 @@
 					      	:value="item.value"
 					      ></el-option>
 					    </el-select>
-					  </el-form-item>
+					  </el-form-item> -->
 						
 					  <el-form-item label="璧锋鏃堕棿:" prop="items" style="width: 50%;">
 								<!-- :picker-options="pickerOptions01" -->
@@ -36,7 +61,7 @@
 							</el-date-picker>
 					  </el-form-item>
 						
-					  <el-form-item label="椤圭洰寮曡繘浜�:" prop="desp" style="width: 50%;">
+					  <el-form-item label="椤圭洰寮曡繘浜�:" prop="leadUserList" style="width: 50%;">
 							<el-cascader
 									style="width: 100%;"
 							    :options="options_leadUserId"
@@ -47,8 +72,29 @@
 							</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 label="椤圭洰璐熻矗浜�:" style="width: 50%;">
+							<el-cascader
+								style="width: 100%;"
+								:options="options_charge"
+								@change="chargeArrayChange_"
+								:props="{ expandTrigger: 'hover' }"
+								
+								v-model="ruleForm.charge_id_array"
+								placeholder="璇烽�夋嫨璐熻矗浜�"
+								>
+							</el-cascader>
+							<!-- <el-select @change="chargeArrayChange_" v-model="ruleForm.charge_id_array" style="width: 100%;">
+								<el-option
+									v-for="(item,k) in options_charge"
+									:key="k"
+									:label="item.label"
+									:value="item.value"
+								></el-option>
+							</el-select> -->
+						</el-form-item>
+						
+						<el-form-item label="椤圭洰鎻忚堪:" prop="desc" style="width: 50%;">
+						  <el-input type="textarea" v-model="ruleForm.desc"></el-input>
 						</el-form-item>
 					</el-form>
         </div>
@@ -88,7 +134,7 @@
 	},
   data () {
 		var validateTtems = (rule, value, callback) => {
-					if (value.length > 1) {
+					if (value && value.length > 1) {
 						let a1 = new Date(value[0]);
 						let a2 = new Date(this.ruleForm.items[1]);
 						
@@ -118,7 +164,37 @@
 						}
 						callback();
 					}
+					else {
+						callback(new Error('閫夋嫨寮�濮嬫椂闂村拰缁撴潫鏃堕棿'));
+					}
 		  };
+		var validateOrder_type_array = (rule, value, callback) => {
+			if (this.isRules) {
+				if (value && value.length > 0) {
+					callback();
+				}
+				else {
+					callback(new Error('涓嶈兘涓虹┖'));
+				}
+			}
+			else {
+				callback();
+			}
+		};
+		var validateType_array = (rule, value, callback) => {
+			if (this.isRules) {
+				if (value && value.length > 0) {
+					callback();
+				}
+				else {
+					callback(new Error('涓嶈兘涓虹┖'));
+				}
+			}
+			else {
+				callback();
+			}
+		};
+			
     return {
 		props_: {multiple: true},
 		userId: undefined,
@@ -129,6 +205,7 @@
 			loading_cancel: false,
 			cancelName: "鍏� 闂�",
 			
+			//disabled_code: true,
 			ruleForm: {},
 			xmId: null,
 			totalItems: null,
@@ -137,6 +214,27 @@
 			parttimeLists: null,
 			
 			options_leadUserId: [],
+			options_charge: [],
+			options_type:[
+				"Health technology assessment (HTA)",
+				"Clinical practice guideline (CPG)",
+				"Evidence mapping",
+				"Overview of review",
+				"Scoping review",
+				"Rapid review",
+				"Systematic review",
+				"Rapid review",
+				"Randomised controlled trial (RCT)",
+				"Other"
+			],
+			options_order_type: [
+				"娌荤枟",
+				"棰勯槻",
+				"璇婃柇涓庨壌鍒瘖鏂�",
+				"棰勫悗",
+				"鐥呭洜",
+				"鐤剧梾绛涙煡"
+			],
 			options_objectives: [
 			  {
 			    value: "骞查鎬х郴缁熻瘎浠�",
@@ -155,11 +253,35 @@
 				  label: "鐩稿叧鎬х郴缁熻瘎浠�"
 				}
 			],
+			isRules: false,
 			rules: {
+				code: [
+				  {
+				    required: true,
+				    message: "涓嶈兘涓虹┖",
+				    trigger: ["change", "blur"]
+				  }
+				],
 				name: [
 				  {
 				    required: true,
 				    message: "涓嶈兘涓虹┖",
+				    trigger: ["change", "blur"]
+				  }
+				],
+				type_array: [
+				  {
+				    required: true,
+				    //message: "涓嶈兘涓虹┖",
+						validator: validateType_array,
+				    trigger: ["change", "blur"]
+				  }
+				],
+				order_type_array: [
+				  {
+				    required: true,
+				    //message: "涓嶈兘涓虹┖",
+						validator: validateOrder_type_array,
 				    trigger: ["change", "blur"]
 				  }
 				],
@@ -187,6 +309,7 @@
 	
 	created() {
 	  this.getUsers();
+		this.getUserCharge();
 	},
 mounted() {
 	if(this.rowData.id) {
@@ -195,18 +318,27 @@
 		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')]
+			if (selected_) {
+				this.ruleForm = {
+					id:selected_.id,
+					desc:selected_.desc,
+					name: selected_.name,
+					beginDate: selected_.beginDate,
+					endDate: selected_.endDate,
+					objective:selected_.reseachType,
+					leadUserId: selected_.leadUserId,
+					leadUserList: selected_.leadUserList,
+					code: selected_.code,
+					type: selected_.type,
+					orderType: selected_.orderType,
+					chargeId: selected_.chargeId,
+					charge_id_array: selected_.chargeId ? selected_.chargeId.split(";") : [],
+					type_array: selected_.type ? selected_.type.split(";") : [],
+					order_type_array: selected_.orderType ? selected_.orderType.split(";") : [],
+					items:[this.$moment(selected_.startTime).format('YYYY-MM-DD'),this.$moment(selected_.endTime).format('YYYY-MM-DD')]
+				}
 			}
-			
+			//this.$refs.ruleForm.clearValidate();
 		}).catch(error =>{
 				
 		})
@@ -262,6 +394,45 @@
 		  })
 		},
 		
+		//options_charge
+		getUserCharge() {
+			let me = this;
+			let url = "/api/sysRoleMapping/detail";
+			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_charge = result;
+		
+			}).catch(error =>{
+			})
+		},
 		Cancel() {
 			this.add_Step = 0;
 			this.nextStepName = "涓嬩竴姝�";
@@ -283,6 +454,7 @@
 		
 		NextStep() {
 			if (this.add_Step == 0) {
+				this.isRules = true;
 				let is_null1 = false;
 				this.$refs['ruleForm'].validate((valid) => {
 				  if (valid) {
@@ -292,6 +464,7 @@
 				  }
 				});
 				if(is_null1) {
+					this.isRules = false;
 				  this.loading_nextStep = true;
 					this.saveStep1();
 				}
@@ -311,6 +484,7 @@
 		
 		saveStep1() {
 			let me = this;
+			//me.disabled_code = true;
 			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');
@@ -319,13 +493,17 @@
 			let listId = "";
 			let params_ = {
 				reseachType: ruleForm_.objective,
+				code: ruleForm_.code,
 				name: ruleForm_.name,
 				startTime: items1,
 				endTime: items2,
 				id: me.xmId,
-				desp:ruleForm_.desp,
+				desc:ruleForm_.desc,
 				userId: me.userId,
-				leadUserId: ruleForm_.leadUserId
+				leadUserId: ruleForm_.leadUserId,
+				type: ruleForm_.type,
+				orderType: ruleForm_.orderType,
+				chargeId: ruleForm_.chargeId
 			};
 			
 			if (this.rowData.parentid) {
@@ -334,37 +512,61 @@
 			
 			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
+				this.$axios.post(url_,
+				  params_
+				).then(data_ => {
+					if(data_.data.success) {
+						me.xmId = data_.data.data;
+						me.totalItems = ruleForm_.items;
+						let url = "/api/topic/exam/" + listId;
+						me.$axios.get(url,{
+							params: {
+								projectId: me.xmId
+							}
+						}).then(data_1 => {
+							if(data_1.data.success) {
+								me.loading_nextStep = false;
+								me.add_Step = 1;
+							}else {
+								me.$message({message:'鍒涘缓椤圭洰澶辫触', type: 'warning'});
+							}
+						}).catch(error => {
+						})
+					}
+					else {
+						me.loading_nextStep = false;
+						if (data_.data.status == "2004") {
+							//me.disabled_code = false;
+							me.$message({message:"椤圭洰鍙峰凡瀛樺湪", type: 'warning'});
 						}
-					}).then(data_1 => {
-						if(data_1.data.success) {
-							me.add_Step = 1;
-							me.loading_nextStep = false;
-						}else {
-							this.$message({message:'鍒涘缓椤圭洰澶辫触', type: 'warning'});
+						else {
+							me.$message({message:data_.data.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;
+				this.$axios.post(url_,
+				  params_
+				).then(data_ => {
+					if(data_.data.success) {
+						me.xmId = data_.data.data;
+						me.totalItems = ruleForm_.items;
+						me.add_Step = 1;
+						me.loading_nextStep = false;
+					}
+					else {
+						me.loading_nextStep = false;
+						if (data_.data.status == "2004") {
+							me.$message({message:"椤圭洰鍙峰凡瀛樺湪", type: 'warning'});
+						}
+						else {
+							me.$message({message:data_.data.message, type: 'warning'});
+						}
+					}
 				}).catch(error =>{
 				})
 			}
@@ -377,7 +579,7 @@
 			
 			let form_array = [];
 			let is_null1 = true;
-			
+			let me = this;
 			for (let itm_k in this.showData_) {
 				let ref_k = "ref_" + itm_k;
 				this.$refs.substep_zj.$refs[ref_k].validate((valid) => {
@@ -439,13 +641,26 @@
 			}
 			
 			if (is_null1) {
-				let datas = "?datas=" + encodeURI(JSON.stringify(form_array));
+				this.loading_nextStep = true;
+			//	let datas = "?datas=" + encodeURI(JSON.stringify(form_array));
 				let url = "/api/detail/updates";
-				this.$axios.get(url + datas).then(data_ => {
+				this.$axios.post(url,
+				{
+					schemeId: me.xmId,
+					datas: form_array
+				}).then(data_ => {
 					window.console.log(data_);
-					this.add_Step = 2;
-					this.nextStepName = "瀹� 鎴�";
+					me.loading_nextStep = false;
+					if (data_.data.success) {
+						me.add_Step = 2;
+						me.nextStepName = "瀹� 鎴�";
+					}
+					else {
+						me.$message.error(data_.data.message);
+					}
 				}).catch(error =>{
+					me.$message.error("鎺ュ彛閿欒");
+					me.loading_nextStep = false;
 				})
 			}
 		},
@@ -479,6 +694,54 @@
 			this.ruleForm.leadUserId = s_;
 		},
 		
+		typeArrayChange_(val) {
+			if (val.length > 0) {
+			  for (let i = 0; i< val.length; i++) {
+					if (i == 0) {
+					  this.ruleForm.type = val[i];
+					}
+					else {
+						this.ruleForm.type += ";" + val[i];
+					}
+			  }
+			}
+			else {
+				this.ruleForm.type = "";
+			}
+		},
+		
+		order_typeArrayChange_(val) {
+			if (val.length > 0) {
+			  for (let i = 0; i< val.length; i++) {
+					if (i == 0) {
+					  this.ruleForm.orderType = val[i];
+					}
+					else {
+						this.ruleForm.orderType += ";" + val[i];
+					}
+			  }
+			}
+			else {
+				this.ruleForm.orderType = "";
+			}
+		},
+		
+		chargeArrayChange_(val) {
+			if (val.length > 0) {
+			  for (let i = 0; i< val.length; i++) {
+					if (i == 0) {
+					  this.ruleForm.chargeId = val[i];
+					}
+					else {
+						this.ruleForm.chargeId += ";" + val[i];
+					}
+			  }
+			}
+			else {
+				this.ruleForm.chargeId = "";
+			}
+		},
+		
   }
 }
 </script>

--
Gitblit v1.8.0