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