From 8e5874a30ae9b194968393b2399bbba193eaa313 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 20 Nov 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