| | |
| | | </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" |
| | |
| | | </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="请输入被检查/对接单位" |
| | | > |
| | |
| | | </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="请输入项目地点" |
| | | > |
| | |
| | | </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="请输入处室带队人员" |
| | | > |
| | |
| | | </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="请输入概况描述" |
| | | > |
| | |
| | | </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: { |
| | | deptName:'危险化学品监督管理处', |
| | | 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 formRef = 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) |
| | | let valid = null |
| | | if(type === 'add' || type === 'clickEdit'){ |
| | | valid = await formRef.value.validate(); |
| | | } |
| | | if(type === 'add'){ |
| | | state.formData.startTime = searchTime.value[0] |
| | | state.formData.endTime = searchTime.value[1] |
| | | //保存按钮 |
| | | //成功后自动到下一步 项目id |
| | | emit('getNextStatus', 1); |
| | | reset() |
| | | |
| | | if(valid){ |
| | | //保存按钮 |
| | | 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'){ |
| | | //变更按钮 |
| | | |
| | | if(valid){ |
| | | //变更按钮 |
| | | 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 = { |
| | | id:null, |
| | | 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({ |