From 25988ffefd8448c6ea770489b77c89a07d00190d Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 09 八月 2024 16:10:12 +0800
Subject: [PATCH] bug修改

---
 src/views/safetyReview/projectManage/components/evaluatePlan.vue |  164 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 130 insertions(+), 34 deletions(-)

diff --git a/src/views/safetyReview/projectManage/components/evaluatePlan.vue b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
index 2f62a3d..0d42458 100644
--- a/src/views/safetyReview/projectManage/components/evaluatePlan.vue
+++ b/src/views/safetyReview/projectManage/components/evaluatePlan.vue
@@ -43,13 +43,13 @@
       </el-row>
       <el-row>
         <el-col :span="18">
-          <div style="display: flex;align-items: center">评价日程安排</div>
+          <div style="display: flex;align-items: center">评价日程安排<el-icon style="margin-left: 10px;margin-right: 4px"><InfoFilled /></el-icon><span style="font-size: 13px">不涉及的日程安排日期可不填</span></div>
         </el-col>
       </el-row>
       <el-table :data="state.formData.estimateSchedules" :border="true" style="margin: 20px 0">
         <el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
-        <el-table-column label="评价日程安排" prop="name" header-align="center" :show-overflow-tooltip="true"/>
-        <el-table-column label="开始时间" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="评价日程安排" prop="name" align="center" :show-overflow-tooltip="true"/>
+        <el-table-column label="开始时间" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-date-picker
                 style="width: 100%"
@@ -61,7 +61,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column label="结束时间" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="结束时间" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-date-picker
                 style="width: 100%"
@@ -80,30 +80,35 @@
         </el-col>
         <el-col :span="6">
           <div style="width: 100%;display: flex;justify-content: right">
-            <el-button type="primary" icon="Plus" @click="openWorksDialog('add',{})">添加成员</el-button>
+            <el-button type="primary" icon="Plus" @click="openWorksDialog('add',{})" :disabled="projectType==='view' || isEnd">添加成员</el-button>
           </div>
         </el-col>
       </el-row>
       <el-table  :data="state.planPersons" :border="true" style="margin: 20px 0">
         <el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
-        <el-table-column label="评价组成员" prop="person.name" header-align="center" :show-overflow-tooltip="true"/>
-        <el-table-column label="专业能力/资格证书" prop="person.certificateNo" header-align="center" :show-overflow-tooltip="true">
+        <el-table-column label="评价组成员" prop="person.name" align="center" :show-overflow-tooltip="true">
+          <template #default="scope">
+            <span v-if="scope.row.jobType === 2">{{ scope.row.person.name }} (组长)</span>
+            <span v-else>{{scope.row.person.name}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="专业能力/资格证书" prop="person.certificateNo" align="center" :show-overflow-tooltip="true">
           <template #default="scope">
             {{ getCertNo(scope.row) }}
           </template>
         </el-table-column>
 <!--        <el-table-column label="专业能力" header-align="center" :show-overflow-tooltip="true"></el-table-column>-->
-        <el-table-column label="承担工作" prop="work" header-align="center" class-name="small-padding fixed-width"></el-table-column>
-        <el-table-column label="承诺后期前往现场勘验" prop="laterPromise" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="承担工作" prop="work" align="center" class-name="small-padding fixed-width"></el-table-column>
+        <el-table-column label="承诺后期前往现场勘验" prop="laterPromise" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             {{(scope.row.laterPromise==1 || scope.row.laterPromise==true)?'是':'否'}}
           </template>
         </el-table-column>
-        <el-table-column label="未到现场勘验原因" prop="reason" header-align="center" class-name="small-padding fixed-width"></el-table-column>
-        <el-table-column label="操作" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="未到现场勘验原因" prop="reason" align="center" class-name="small-padding fixed-width"></el-table-column>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
-            <el-button link @click="openWorksDialog('edit',scope.row)">修改</el-button>
-            <el-button link type="danger" @click="delMember(scope.row)">删除</el-button>
+            <el-button link @click="openWorksDialog('edit',scope.row)" :disabled="projectType==='view' || isEnd">修改</el-button>
+            <el-button link type="danger" @click="delMember(scope.row)" :disabled="projectType==='view' || isEnd">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -113,27 +118,27 @@
         </el-col>
         <el-col :span="6">
           <div style="width: 100%;display: flex;justify-content: right">
-            <el-button type="primary" icon="Plus" @click="openDeviceDialog('add',{})">添加设备</el-button>
+            <el-button type="primary" icon="Plus" @click="openDeviceDialog('add',{})" :disabled="projectType==='view' || isEnd">添加设备</el-button>
           </div>
         </el-col>
       </el-row>
       <el-table  :data="state.devices" :border="true" style="margin: 20px 0">
         <el-table-column label="序号" width="60" align="center" type="index"></el-table-column>
-        <el-table-column label="设备名称" prop="deviceName" header-align="center" class-name="small-padding fixed-width"/>
-        <el-table-column label="开始时间" prop="startDate" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="设备名称" prop="deviceName" align="center" class-name="small-padding fixed-width"/>
+        <el-table-column label="开始时间" prop="startDate" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             {{scope.row.startDate.substring(0,10)}}
           </template>
         </el-table-column>
-        <el-table-column label="结束时间" prop="endDate" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="结束时间" prop="endDate" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
             {{scope.row.endDate.substring(0,10)}}
           </template>
         </el-table-column>
-        <el-table-column label="操作" header-align="center" class-name="small-padding fixed-width">
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
           <template #default="scope">
-            <el-button link @click="openDeviceDialog('edit',scope.row)">修改</el-button>
-            <el-button link type="danger" @click="delDeviceItem(scope.row)">删除</el-button>
+            <el-button link @click="openDeviceDialog('edit',scope.row)" :disabled="projectType==='view' || isEnd">修改</el-button>
+            <el-button link type="danger" @click="delDeviceItem(scope.row)" :disabled="projectType==='view' || isEnd">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -155,7 +160,8 @@
 import DeviceDialog from './deviceDialog'
 const props = defineProps(['projectId'])
 const emit = defineEmits(["getNextStatus"])
-
+import { useRoute } from 'vue-router'
+const route = useRoute()
 const state = reactive({
   formData: {
     id: null,
@@ -166,7 +172,7 @@
     auserId: null,
     estimateSchedules: [
       {
-        id: 1,
+        id: null,
         sort: 1,
         name: '勘验准备',
         startDate: '',
@@ -175,7 +181,7 @@
         projectId: null
       },
       {
-        id: 2,
+        id: null,
         sort: 2,
         name: '现场勘验',
         startDate: '',
@@ -184,7 +190,7 @@
         projectId: null
       },
       {
-        id: 3,
+        id: null,
         sort: 3,
         name: '材料分析整理',
         startDate: '',
@@ -193,7 +199,7 @@
         projectId: null
       },
       {
-        id: 4,
+        id: null,
         sort: 4,
         name: '评价报告编写',
         startDate: '',
@@ -202,7 +208,7 @@
         projectId: null
       },
       {
-        id: 5,
+        id: null,
         sort: 5,
         name: '整改情况现场确认',
         startDate: '',
@@ -211,7 +217,7 @@
         projectId: null
       },
       {
-        id: 6,
+        id: null,
         sort: 6,
         name: '整理评价报告',
         startDate: '',
@@ -220,7 +226,7 @@
         projectId: null
       },
       {
-        id: 7,
+        id: null,
         sort: 7,
         name: '报告审核',
         startDate: '',
@@ -229,7 +235,7 @@
         projectId: null
       },
       {
-        id: 8,
+        id: null,
         sort: 8,
         name: '报告修改',
         startDate: '',
@@ -268,21 +274,31 @@
 const expertsListRef = ref()
 const worksRef = ref()
 const deviceRef = ref()
-onMounted(() => {
+onMounted(async () => {
   const userInfo = JSON.parse(Cookies.get('userInfo'))
   if(userInfo.identity === 0){
     isAmin.value = true
   }
+  if(props.projectId){
+    await getWorksList(props.projectId)
+    await getDeviceList(props.projectId)
+  }
+  isEnd.value = Cookies.get('end')
+  projectType.value = route.query.type;
 })
 
+const projectType = ref('');
+const isEnd = ref('')
 const riskOpen = async (type,val) => {
   state.formData.projectId = val
+  isEnd.value = Cookies.get('end')
   state.projectId = val
+  projectType.value = route.query.type;
   for(let i of state.formData.estimateSchedules){
     i.projectId = val
   }
-  await getWorksList(val)
-  await getDeviceList(val)
+  // await getWorksList(val)
+  // await getDeviceList(val)
   if(type === 'detail' || type === 'edit' ){
     const res = await getDetail({projectId: val})
     if(res.code == 200){
@@ -300,18 +316,98 @@
       }
       if(type === 'add'){
         const {id, ...data} = JSON.parse(JSON.stringify(state.formData))
-        console.log(data)
+
+        const params = Object.assign({}, state.formData.estimateSchedules);
+        let i = 0
+
+        for (const key in params) {
+          if ((params[key].startDate == '' || params[key].startDate == null ) && (params[key].endDate == '' || params[key].endDate == null)) {
+            delete params[key].startDate;
+            delete params[key].endDate;
+            i++
+          }
+
+        }
+        console.log('data',params)
+        const finData =  Object.entries(params).map(([key, value]) => ({
+          ...value,
+        }));
+        if(i == finData.length){
+          ElMessage.warning("请选择至少一个的日程安排日期");
+          return;
+        }
+        try {
+          finData.forEach(item =>{
+            // debugger
+            console.log(item.endDate,'item.endDate')
+            if(item.startDate && (item.startDate !='' || item.startDate !=null)){
+              if(item.endDate =='' || item.endDate ==null){
+                ElMessage.warning("请完善涉及的日程安排结束日期");
+                throw new Error('Loop stopped')
+              }
+            }
+            if(item.endDate && (item.endDate !='' || item.endDate !=null)){
+              if(item.startDate =='' || item.startDate ==null){
+                ElMessage.warning("请完善涉及的日程安排开始日期");
+                throw new Error('Loop stopped')
+              }
+            }
+          })
+        }catch (e) {
+          throw new Error(e)
+        }
+
+        data.estimateSchedules = finData
+
         const res = await addRecord(data);
         if (res.code == 200) {
           ElMessage.success('保存成功')
           formRef.value.clearValidate();
-          emit('getNextStatus', res.data);
+          emit('getNextStatus', state.formData.projectId);
 
         } else {
           ElMessage.warning(res.message)
         }
       }else if(type === 'clickEdit'){
         const { ...data} = JSON.parse(JSON.stringify(state.formData))
+        const params = Object.assign({}, state.formData.estimateSchedules);
+        let i = 0
+        for (const key in params) {
+          if (params[key].startDate == '' && params[key].endDate == '') {
+            delete params[key].startDate;
+            delete params[key].endDate;
+            i++;
+          }
+        }
+        const finData =  Object.entries(params).map(([key, value]) => ({
+          ...value,
+        }));
+        if(i == finData.length){
+          ElMessage.warning("请选择至少一个的日程安排日期");
+          return;
+        }
+        try {
+          finData.forEach(item =>{
+            // debugger
+            console.log(item.endDate,'item.endDate')
+            if(item.startDate && (item.startDate !='' || item.startDate !=null)){
+              if(item.endDate =='' || item.endDate ==null){
+                ElMessage.warning("请完善涉及的日程安排结束日期");
+                throw new Error('Loop stopped')
+              }
+            }
+            if(item.endDate && (item.endDate !='' || item.endDate !=null)){
+              if(item.startDate =='' || item.startDate ==null){
+                ElMessage.warning("请完善涉及的日程安排开始日期");
+
+                throw new Error('Loop stopped')
+              }
+            }
+          })
+        }catch (e) {
+          throw new Error(e)
+        }
+        data.estimateSchedules = finData
         const res = await editRecord(data);
         if (res.code == 200) {
           ElMessage.success('变更成功')

--
Gitblit v1.9.2