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 | 236 +++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 207 insertions(+), 29 deletions(-) diff --git a/src/components/popup/newProject.vue b/src/components/popup/newProject.vue index 3f62450..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: 45vh; 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,9 +36,20 @@ </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> @@ -45,7 +57,8 @@ <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,7 +87,40 @@ 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 { + props_: {multiple: true}, userId: undefined, assign: undefined, add_Step: 0, @@ -88,6 +134,8 @@ totalItems: null, showData_: null, form_objs: null, + + options_leadUserId: [], options_objectives: [ { value: "骞查鎬х郴缁熻瘎浠�", @@ -124,9 +172,10 @@ items: [ { type: "array", + validator: validateTtems, required: true, - message: "涓嶈兘涓虹┖", - trigger: ["change", "blur"] + //message: "涓嶈兘涓虹┖", + trigger: ["change"] } ] @@ -134,15 +183,81 @@ } }, + + created() { + this.getUsers(); + }, mounted() { if(this.rowData.id) { 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 =>{ + + }) + } - this.ruleForm = this.rowData; + 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 = "涓嬩竴姝�"; @@ -173,8 +288,8 @@ } }); if(is_null1) { + this.loading_nextStep = true; this.saveStep1(); - this.loading_save = true; } // this.xmId = "c3b7f55c800e4726b53fdc18dd994603"; @@ -191,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"; - let me = this; - this.$axios.get(url,{ - params: { - reseachType: ruleForm_.objective, - name: ruleForm_.name, - startTime: items1, - endTime: items2, - id: me.xmId, - desp:ruleForm_.desp, - userId: me.userId - } - }).then(data_ => { - me.xmId = data_.data.data; - me.totalItems = ruleForm_.items; - me.add_Step = 1; - }).catch(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() { @@ -250,6 +399,21 @@ 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.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.parttimeUser = parttimeUser_; + } + if (form_obj.userIds) { let leng = form_obj.userIds.length; @@ -267,12 +431,10 @@ 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); }) } }, @@ -287,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