From 8e5874a30ae9b194968393b2399bbba193eaa313 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 20 十一月 2024 17:14:00 +0800 Subject: [PATCH] 项目管理 --- src/views/safetyReview/projectManage/components/basicInfo.vue | 113 +++++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 86 insertions(+), 27 deletions(-) diff --git a/src/views/safetyReview/projectManage/components/basicInfo.vue b/src/views/safetyReview/projectManage/components/basicInfo.vue index 5f36145..03649ea 100644 --- a/src/views/safetyReview/projectManage/components/basicInfo.vue +++ b/src/views/safetyReview/projectManage/components/basicInfo.vue @@ -22,7 +22,7 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item prop="projectName" label="项目预计时间区间"> + <el-form-item prop="projectDateStart" label="项目预计时间区间"> <el-date-picker v-model="searchTime" type="daterange" @@ -36,9 +36,9 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item prop="unit" label="被检查/对接单位"> + <el-form-item prop="companyName" label="被检查/对接单位"> <el-input - v-model.trim="state.formData.unit" + v-model.trim="state.formData.companyName" size="large" placeholder="请输入被检查/对接单位" > @@ -46,9 +46,9 @@ </el-form-item> </el-col> <el-col :span="6"> - <el-form-item prop="place" label="项目地点"> + <el-form-item prop="projectAddress" label="项目地点"> <el-input - v-model.trim="state.formData.place" + v-model.trim="state.formData.projectAddress" size="large" placeholder="请输入项目地点" > @@ -58,9 +58,9 @@ </el-row> <el-row :gutter="24"> <el-col :span="6"> - <el-form-item prop="people" label="处室带队人员"> + <el-form-item prop="deptUserName" label="处室带队人员"> <el-input - v-model.trim="state.formData.projectName" + v-model.trim="state.formData.deptUserName" size="large" placeholder="请输入处室带队人员" > @@ -70,11 +70,11 @@ </el-row> <el-row :gutter="24"> <el-col :span="24"> - <el-form-item prop="description" label="概况描述"> + <el-form-item prop="remark" label="概况描述"> <el-input type="textarea" :rows="6" - v-model.trim="state.formData.description" + v-model.trim="state.formData.remark" size="large" placeholder="请输入概况描述" > @@ -87,49 +87,108 @@ </template> <script setup> -import {reactive, ref} from "vue"; +import {onMounted, reactive, ref} from "vue"; +import Cookies from "js-cookie"; +import {addProject, getProjectInfo, getProjectList} from "@/api/projectManage"; +import {ElMessage} from "element-plus"; +const searchTime = ref([]); const emit = defineEmits(["getNextStatus"]); const state = reactive({ formData: { + id:null, + deptId: null, deptName:'危险化学品监督管理处', projectName: '', - startTime: '', - endTime: '', - unit: '', - place: '', - people: '', - description: '' + projectDateStart: '', + projectDateEnd: '', + companyName: '', + projectAddress: '', + deptUserName: '', + remark: '' }, rules: { - + projectName: [{ required: true, message: "项目名称不能为空", trigger: "blur" }], + projectDateStart: [{ required: true, message: "项目预计时间不能为空", trigger: "change" }], + projectAddress: [{ required: true, message: "项目地点不能为空", trigger: "blur" }], + deptUserName: [{ required: true, message: "处室带队人员不能为空", trigger: "blur" }], + remark: [{ required: true, message: "概况描述不能为空", trigger: "blur" }], } }) -const searchTime = ref([]); + +const userInfo = ref() +onMounted(() => { + userInfo.value = JSON.parse(Cookies.get('userInfo')) + state.formData.deptName = userInfo.value.dept.deptName + state.formData.deptId = userInfo.value.deptId +}) + + const riskOpen = async (type,val) => { console.log("type",type,val) if(type === 'add'){ - state.formData.startTime = searchTime.value[0] - state.formData.endTime = searchTime.value[1] //保存按钮 - //成功后自动到下一步 项目id - emit('getNextStatus', 1); - reset() - + const {id,...data} = state.formData + const res = await addProject(data); + if(res.code == 200){ + ElMessage.success('新增成功') + emit('getNextStatus', res.data); + reset() + }else{ + ElMessage.warning(res.message) + } }else if(type === 'clickEdit'){ //变更按钮 + const {...data} = state.formData + const res = await addProject(data); + if(res.code == 200){ + ElMessage.success('修改成功') + }else{ + ElMessage.warning(res.message) + } }else if(type === 'detail'){ - console.log("view111111111111111",type,val) + const res = await getProjectInfo(val) + if(res.code == 200){ + if(res.data) { + const val = res.data + for(let i in state.formData) { + if (validKey(i, val)) { + state.formData[i] = val[i] + } + } + searchTime.value = [res.data.projectDateStart,res.data.projectDateEnd] + } + + }else{ + ElMessage.warning(res.message) + } } } +const validKey=(key,obj)=>{ + return key in obj +} const reset = () => { + state.formData = { + deptId: null, + deptName:'危险化学品监督管理处', + projectName: '', + projectDateStart: '', + projectDateEnd: '', + companyName: '', + projectAddress: '', + deptUserName: '', + remark: '' + } searchTime.value = []; } const changeTime=(value)=>{ if(!value){ - state.formData.startTime = "" - state.formData.endTime = "" + state.formData.projectDateStart = "" + state.formData.projectDateEnd = "" + }else { + state.formData.projectDateStart = searchTime.value[0] + state.formData.projectDateEnd = searchTime.value[1] } } defineExpose({ -- Gitblit v1.9.2