| | |
| | | <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" |
| | |
| | | :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" --> |
| | |
| | | </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" |
| | |
| | | </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> |
| | |
| | | }, |
| | | 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]); |
| | | |
| | |
| | | } |
| | | 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, |
| | |
| | | loading_cancel: false, |
| | | cancelName: "关 闭", |
| | | |
| | | //disabled_code: true, |
| | | ruleForm: {}, |
| | | xmId: null, |
| | | totalItems: null, |
| | |
| | | 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: "干预性系统评价", |
| | |
| | | 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"] |
| | | } |
| | | ], |
| | |
| | | |
| | | created() { |
| | | this.getUsers(); |
| | | this.getUserCharge(); |
| | | }, |
| | | mounted() { |
| | | if(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')] |
| | | 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 =>{ |
| | | |
| | | }) |
| | |
| | | }) |
| | | }, |
| | | |
| | | //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 = "下一步"; |
| | |
| | | |
| | | NextStep() { |
| | | if (this.add_Step == 0) { |
| | | this.isRules = true; |
| | | let is_null1 = false; |
| | | this.$refs['ruleForm'].validate((valid) => { |
| | | if (valid) { |
| | |
| | | } |
| | | }); |
| | | if(is_null1) { |
| | | this.isRules = false; |
| | | this.loading_nextStep = true; |
| | | this.saveStep1(); |
| | | } |
| | |
| | | |
| | | 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'); |
| | |
| | | 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) { |
| | |
| | | |
| | | 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 =>{ |
| | | }) |
| | | } |
| | |
| | | |
| | | 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) => { |
| | |
| | | } |
| | | |
| | | 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; |
| | | }) |
| | | } |
| | | }, |
| | |
| | | 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> |