From 5346354c8b6685d4c111041a8c5a4d61dae13050 Mon Sep 17 00:00:00 2001 From: zhangyanpeng <bob.zhang@highdatas.com> Date: 星期四, 28 五月 2020 10:31:46 +0800 Subject: [PATCH] 添加任务总揽菜单 --- src/components/popup/newProject.vue | 366 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 315 insertions(+), 51 deletions(-) diff --git a/src/components/popup/newProject.vue b/src/components/popup/newProject.vue index b365483..ec09335 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,27 @@ } 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 +695,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