yangyuxuan hace 1 mes
padre
commit
713fae9b45

+ 7 - 4
src/types/components.d.ts

@@ -29,10 +29,13 @@ declare module 'vue' {
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElCol: typeof import('element-plus/es')['ElCol']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
+    ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
+    ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
     ElDialog: typeof import('element-plus/es')['ElDialog']
     ElDivider: typeof import('element-plus/es')['ElDivider']
     ElDrawer: typeof import('element-plus/es')['ElDrawer']
@@ -43,9 +46,9 @@ declare module 'vue' {
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
     ElIcon: typeof import('element-plus/es')['ElIcon']
+    ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
     ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
-    ElLink: typeof import('element-plus/es')['ElLink']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElOption: typeof import('element-plus/es')['ElOption']
@@ -56,14 +59,15 @@ declare module 'vue' {
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElSelect: typeof import('element-plus/es')['ElSelect']
+    ElSlider: typeof import('element-plus/es')['ElSlider']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
     ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
-    ElTabPane: typeof import('element-plus/es')['ElTabPane']
-    ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
     ElText: typeof import('element-plus/es')['ElText']
+    ElTimeline: typeof import('element-plus/es')['ElTimeline']
+    ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
     ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
@@ -81,7 +85,6 @@ declare module 'vue' {
     IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
     IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
     IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
-    IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
     IFrame: typeof import('./../components/iFrame/index.vue')['default']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']

+ 1 - 1
src/views/comprehensiveGuarantee/materialReserves/materialsDeclaration.vue

@@ -7,7 +7,7 @@
         </el-col>
       </el-row>
       <!-- 表格组件 -->
-      <el-table ref="multipleTable" v-loading="loading" :data="tableData" style="width: 100%" :max-height="400">
+      <el-table ref="multipleTable" v-loading="loading" :data="tableData" style="width: 100%" :max-height="600">
         <el-table-column label="序号" align="center" width="55" fixed="left">
           <template #default="scope">
             {{ (queryParams.page - 1) * queryParams.pageSize + scope.$index + 1 }}

+ 1 - 1
src/views/comprehensiveGuarantee/reliefResourceManagement/hydraulicEngineeringAdd.vue

@@ -209,7 +209,7 @@ const rules = ref({
   jssj: [{ required: true, message: '建设时间不能为空', trigger: 'blur' }],
   jdgljg: [{ required: true, message: '监督管理机关不能为空', trigger: 'blur' }],
   jingdu: [{ required: true, message: '经度不能为空', trigger: 'blur' }],
-  weidu: [{ required: true, message: '纬度不能为空', trigger: 'blur' }]
+  latitude: [{ required: true, message: '纬度不能为空', trigger: 'blur' }]
 });
 
 const form = ref(null); // 定义 form 变量

+ 52 - 26
src/views/comprehensiveGuarantee/reliefResourceManagement/hydraulicEngineeringEdit.vue

@@ -8,19 +8,19 @@
         <el-form ref="form" :model="formData" :rules="rules" label-width="auto">
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="水利设施和水利工程名称:" prop="gcmc">
+              <el-form-item label="水利设施和水利工程名称:" prop="slsshslgcmc">
                 <el-input v-model="formData.slsshslgcmc" placeholder="请输入水利设施和水利工程名称" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="建设单位名称:" prop="jsdw">
+              <el-form-item label="建设单位名称:" prop="jsdwmc">
                 <el-input v-model="formData.jsdwmc" placeholder="请输入建设单位名称" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="水利设施和水利工程地点:" prop="whdw">
+              <el-form-item label="水利设施和水利工程地点:" prop="slsshslgcdd">
                 <el-input v-model="formData.slsshslgcdd" placeholder="请输入水利设施和水利工程地点" style="width: 468px !important" readonly>
                   <template #append>
                     <el-button type="primary" @click="openMapDialog">地图定位</el-button>
@@ -29,74 +29,74 @@
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="建设单位证件类型:" prop="rfzyjlgcs">
+              <el-form-item label="建设单位证件类型:" prop="jsdwzjlx">
                 <el-input v-model="formData.jsdwzjlx" placeholder="请输入建设单位证件类型" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="联系方式:" prop="jsdd">
+              <el-form-item label="联系方式:" prop="lxfs">
                 <el-input v-model="formData.lxfs" placeholder="请输入联系方式" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="数据提供部门统一社会信用代码:" prop="cd_operation">
+              <el-form-item label="数据提供部门统一社会信用代码:" prop="sjtgbmtyshxydm">
                 <el-input v-model="formData.sjtgbmtyshxydm" placeholder="请输入数据提供部门统一社会信用代码" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="监督管理机关编码:" prop="yjrfdxsmj">
+              <el-form-item label="监督管理机关编码:" prop="jdgljgbm">
                 <el-input v-model="formData.jdgljgbm" placeholder="请输入监督管理机关编码" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="监督管理机关:" prop="ybrs">
+              <el-form-item label="监督管理机关:" prop="jdgljg">
                 <el-input v-model="formData.jdgljg" placeholder="请输入监督管理机关" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="数据提供部门名称:" prop="cs_time">
+              <el-form-item label="数据提供部门名称:" prop="sjtgbmmc">
                 <el-input v-model="formData.sjtgbmmc" placeholder="请输入数据提供部门名称" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="灌溉面积:" prop="add_time">
+              <el-form-item label="灌溉面积:" prop="ggmj">
                 <el-input v-model="formData.ggmj" placeholder="请输入灌溉面积" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="数据提供部门行政区划代码:" prop="jldw">
+              <el-form-item label="数据提供部门行政区划代码:" prop="sjtgbmxzqhdm">
                 <el-input v-model="formData.sjtgbmxzqhdm" placeholder="请输入数据提供部门行政区划代码" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="建设单位证件号码:" prop="jsdwdm">
+              <el-form-item label="建设单位证件号码:" prop="jsdwzjhm">
                 <el-input v-model="formData.jsdwzjhm" placeholder="请输入建设单位证件号码" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="水利设施和水利工程所在地行政区划代码:" prop="kgsj">
+              <el-form-item label="水利设施和水利工程所在地行政区划代码:" prop="xzqhdm">
                 <el-input v-model="formData.xzqhdm" placeholder="请输入水利设施和水利工程所在地行政区划代码" style="width: 468px !important" />
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="占地面积:" prop="stdw">
+              <el-form-item label="占地面积:" prop="zdmj">
                 <el-input v-model="formData.zdmj" placeholder="请输入占地面积" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="建设时间:" prop="rfsjdwdm">
+              <el-form-item label="建设时间:" prop="jssj">
                 <el-date-picker
                   v-model="formData.jssj"
                   type="datetime"
@@ -106,14 +106,14 @@
               </el-form-item>
             </el-col>
             <el-col :span="10">
-              <el-form-item label="纬度:" prop="latitude">
+              <el-form-item label="纬度:" prop="weidu">
                 <el-input v-model="formData.weidu" placeholder="请输入纬度" style="width: 468px !important" />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
-              <el-form-item label="经度:" prop="longitude">
+              <el-form-item label="经度:" prop="jingdu">
                 <el-input v-model="formData.jingdu" placeholder="请输入经度" style="width: 468px !important" />
               </el-form-item>
             </el-col>
@@ -133,13 +133,18 @@
 <script setup lang="ts">
 import { ref, onMounted } from 'vue';
 import { ElMessage } from 'element-plus';
-import { getHydraulic, uploadHydraulic } from '@/api/comprehensiveGuarantee/reliefResourceManagement/hydraulicEngineering';
+import {
+  addHydraulic,
+  getHydraulic,
+  uploadHydraulic
+} from '@/api/comprehensiveGuarantee/reliefResourceManagement/hydraulicEngineering';
+import { parseTime } from '@/utils/ruoyi';
 
 const emits = defineEmits(['close']);
 const props = defineProps<{
   eventId: string | number;
 }>();
-
+const form = ref(null);
 const formData = ref({
   id: '',
   slsshslgcmc: '',
@@ -212,14 +217,35 @@ const fetchHydraulicData = async () => {
   }
 };
 const submitForm = async () => {
+
   // 假设表单已经通过验证
-  const response = await uploadHydraulic(props.eventId, formData.value);
-  if (response.code === 200) {
-    ElMessage.success('提交成功');
-    closeDialog();
-    emits('refresh');
-  } else {
-    ElMessage.error(response.msg);
+  // const response = await uploadHydraulic(props.eventId, formData.value);
+  // if (response.code === 200) {
+  //   ElMessage.success('提交成功');
+  //   closeDialog();
+  //   emits('refresh');
+  // } else {
+  //   ElMessage.error(response.msg);
+  // }
+
+  try {
+    await form.value.validate();
+    formData.value.cd_time = parseTime(formData.value.cd_time)
+    formData.value.etl_time = parseTime(formData.value.etl_time)
+    formData.value.jssj = parseTime(formData.value.jssj)
+    const payload = {
+      projects: [formData.value]
+    };
+    const response = await uploadHydraulic(props.eventId, formData.value);
+    if (response.code === 200) {
+      ElMessage.success('提交成功');
+      closeDialog();
+      emits('refresh');
+    } else {
+      ElMessage.error(response.msg || '提交失败,请稍后再试');
+    }
+  } catch (error) {
+    ElMessage.error('表单验证失败,请检查输入');
   }
 };
 onMounted(() => {

+ 19 - 19
src/views/comprehensiveGuarantee/reliefResourceManagement/hydraulicEngineeringView.vue

@@ -9,48 +9,48 @@
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="水利设施和水利工程名称:" prop="slsshslgcmc">
-                <el-input v-model="formData.slsshslgcmc" style="width: 468px !important" disabled />
+                <el-input v-model="formData.slsshslgcmc" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="建设单位名称:" prop="jsdwmc">
-                <el-input v-model="formData.jsdwmc" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jsdwmc" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="水利设施和水利工程地点:" prop="slsshslgcdd">
-                <el-input v-model="formData.slsshslgcdd" style="width: 468px !important" disabled />
+                <el-input v-model="formData.slsshslgcdd" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="建设单位证件类型:" prop="jsdwzjlx">
-                <el-input v-model="formData.jsdwzjlx" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jsdwzjlx" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="联系方式:" prop="lxfs">
-                <el-input v-model="formData.lxfs" style="width: 468px !important" disabled />
+                <el-input v-model="formData.lxfs" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="数据提供部门统一社会信用代码:" prop="sjtgbmtyshxydm">
-                <el-input v-model="formData.sjtgbmtyshxydm" style="width: 468px !important" disabled />
+                <el-input v-model="formData.sjtgbmtyshxydm" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="监督管理机关编码:" prop="jdgljgbm">
-                <el-input v-model="formData.jdgljgbm" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jdgljgbm" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="监督管理机关:" prop="jdgljg">
-                <el-input v-model="formData.jdgljg" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jdgljg" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
 <!--            <el-col :span="10">-->
@@ -62,36 +62,36 @@
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="数据提供部门名称:" prop="sjtgbmmc">
-                <el-input v-model="formData.sjtgbmmc" style="width: 468px !important" disabled />
+                <el-input v-model="formData.sjtgbmmc" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="灌溉面积:" prop="ggmj">
-                <el-input v-model="formData.ggmj" style="width: 468px !important" disabled />
+                <el-input v-model="formData.ggmj" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="数据提供部门行政区划代码:" prop="sjtgbmxzqhdm">
-                <el-input v-model="formData.sjtgbmxzqhdm" style="width: 468px !important" disabled />
+                <el-input v-model="formData.sjtgbmxzqhdm" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="建设单位证件号码:" prop="jsdwzjhm">
-                <el-input v-model="formData.jsdwzjhm" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jsdwzjhm" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="水利设施和水利工程所在地行政区划代码:" prop="xzqhdm">
-                <el-input v-model="formData.xzqhdm" style="width: 468px !important" disabled />
+                <el-input v-model="formData.xzqhdm" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="占地面积:" prop="zdmj">
-                <el-input v-model="formData.zdmj" style="width: 468px !important" disabled />
+                <el-input v-model="formData.zdmj" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
@@ -103,12 +103,12 @@
 <!--            </el-col>-->
             <el-col :span="10">
               <el-form-item label="建设时间:" prop="jssj">
-                <el-input v-model="formData.jssj" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jssj" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
             <el-col :span="10">
               <el-form-item label="纬度:" prop="weidu">
-                <el-input v-model="formData.weidu" style="width: 468px !important" disabled />
+                <el-input v-model="formData.weidu" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
           </el-row>
@@ -123,7 +123,7 @@
           <el-row :gutter="20" class="mb8">
             <el-col :span="10">
               <el-form-item label="经度:" prop="jingdu">
-                <el-input v-model="formData.jingdu" style="width: 468px !important" disabled />
+                <el-input v-model="formData.jingdu" style="width: 468px !important" type="textarea" autosize disabled />
               </el-form-item>
             </el-col>
 
@@ -194,11 +194,11 @@ onMounted(() => {
 <style scoped>
 .custom-disabled {
   :deep(.el-select__wrapper.is-disabled),
-  :deep(.el-input__wrapper) {
+  :deep(.el-textarea__inner) {
     background-color: #ffffff !important;
   }
   :deep(.el-select__wrapper.is-disabled .el-select__selected-item),
-  :deep(.el-input__inner) {
+  :deep(.el-textarea__inner) {
     color: rgba(0, 0, 0, 0.85) !important;
     -webkit-text-fill-color: rgba(0, 0, 0, 0.85) !important;
   }

+ 39 - 32
src/views/inspectionWork/patrolSubTasks.vue

@@ -9,15 +9,15 @@
             返回上一级
           </div>
         </el-form-item>
-        <el-row :span="24" :gutter="10">
-          <el-col :span="20" label="任务名称">
+        <el-row :span="24" :gutter="10" style="align-items: center">
+          <el-col :span="19" label="任务名称">
             <h2 key="business" style="font-weight: bolder">{{ detailData.business }}</h2>
           </el-col>
           <el-col :span="1.5">
             <el-button type="primary" @click="handleUpdate()"> 编辑 </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="primary" @click="handlefinal()"> 完成任务 </el-button>
+            <el-button type="primary" @click="handlefinal()" v-if="detailData.task_status !== '已完结'"> 完成任务 </el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="danger" @click="handleDelete()"> 删除 </el-button>
@@ -32,7 +32,7 @@
             <el-descriptions-item key="create_by" label="创建人:">{{ detailData.create_by }}</el-descriptions-item>
             <el-descriptions-item key="create_time" label="创建时间:">{{ detailData.create_time }}</el-descriptions-item>
             <el-descriptions-item key="task_time" label="巡查时间范围:">{{ detailData.task_time }}</el-descriptions-item>
-            <el-descriptions-item key="cycle" label="巡查周期:">{{ detailData.cycle }}</el-descriptions-item>
+            <el-descriptions-item key="cycle" label="巡查周期:">{{ detailData.cycle }}({{detailData.corn_query}})</el-descriptions-item>
             <el-descriptions-item key="inspection_range" label="巡查范围:">{{ detailData.inspection_range }}</el-descriptions-item>
             <el-descriptions-item key="task_status" label="任务状态:">{{ detailData.task_status }}</el-descriptions-item>
           </el-descriptions>
@@ -88,6 +88,7 @@ import PatrolTaskEdit from './patrolTaskEdit.vue';
 import Completed from './completed.vue';
 import Incompleted from './incompleted.vue';
 import { to } from 'await-to-js';
+import { parseTime } from '@/utils/ruoyi';
 const props = defineProps<{ eventId: string }>();
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const total = ref(0);
@@ -95,12 +96,13 @@ const tableData = ref([]);
 const multiple = ref(true);
 const ids = ref<Array<number | string>>([]);
 const single = ref(true);
-const emits = defineEmits(['close']);
+const emits = defineEmits(['close', 'refreshsub']);
 const detailData = ref({
   task_number: '',
   business: '',
   task_time: '',
   cycle: '',
+  corn_query: '',
   id: '',
   inspection_range: '',
   task_status: '',
@@ -141,6 +143,16 @@ const cycleMap = {
   4: '一次'
 };
 
+const weekMap = {
+  1: '一',
+  2: '二',
+  3: '三',
+  4: '四',
+  5: '五',
+  6: '六',
+  7: '七',
+};
+
 const inspectionRangeMap = {
   0: '市级',
   1: '区县级',
@@ -213,6 +225,14 @@ const fetchWorkDetail = () => {
         data.inspection_range = inspectionRangeMap[data.inspection_range] || '未知';
         // 转换task_status
         data.task_status = taskStatusMap[data.task_status] || '未知';
+        // 转换corn_query
+        if (data.cycle === "每年") {
+          data.corn_query = parseTime(data.corn_query, '{m}月{d}日');
+        } else if (data.cycle === "每月") {
+          data.corn_query = parseTime(data.corn_query, '{d}日');
+        } else if (data.cycle === "每周") {
+          data.corn_query = weekMap[data.corn_query] || '未知';
+        }
 
         detailData.value = data; // 将转换后的数据赋值给detailData
       } else {
@@ -239,13 +259,13 @@ const fetchSubTasks = () => {
     });
 };
 const handleDelete = async () => {
-  const [err] = await to(proxy?.$modal.confirm('是否确认删除?') as any);
-  if (!err) {
-    await deleteRisk([props.eventId]);
-    proxy?.$modal.msgSuccess('删除成功');
-    emits('close');
-    emits('refreshsub');
-  }
+  proxy?.$modal.confirm('是否确认删除?').then(() => {
+    deleteRisk([props.eventId]).then(() => {
+      proxy?.$modal.msgSuccess('删除成功');
+      emits('close');
+      emits('refreshsub');
+    })
+  })
 };
 const handleSelectionChange = (selection) => {
   ids.value = selection.map((item) => item.id);
@@ -253,26 +273,13 @@ const handleSelectionChange = (selection) => {
   multiple.value = !selection.length;
 };
 const handlefinal = async () => {
-  try {
-    const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    });
-    if (confirmed) {
-      try {
-        await updatetask({ id: props.eventId, task_status: '3' });
-        console.log(`任务 ${props.eventId} 已完结`);
-        fetchWorkDetail();
-      } catch (error) {
-        console.error(`任务 ${props.eventId} 完结失败:`, error);
-      }
-    } else {
-      console.log(`任务 ${props.eventId} 未完结`);
-    }
-  } catch (error) {
-    console.error('确认对话框处理失败:', error);
-  }
+  proxy?.$modal.confirm('确定要完结任务吗?').then(() => {
+    updatetask({ id: props.eventId, task_status: '3' }).then(() => {
+      proxy.$modal.msgSuccess('任务已完结');
+      fetchWorkDetail();
+      emits('refreshsub');
+    })
+  })
 };
 const goBack = () => {
   emits('close');

+ 1 - 1
src/views/inspectionWork/patrolTask.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div v-show="!patrolSubTasksState.show && !patrolTaskAddState.show" class="app-container">
+    <div v-show="!patrolSubTasksState.show && !patrolTaskAddState.show && !patrolTaskEditState.show" class="app-container">
       <div>
         <transition name="fade">
           <div v-show="showSearch">

+ 29 - 5
src/views/inspectionWork/patrolTaskAdd.vue

@@ -15,9 +15,23 @@
               </el-select>
             </el-form-item>
             <el-form-item label="排查时间范围:" prop="publish">
-              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>
-              <span class="separator">至</span>
-              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>
+<!--              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              <div v-if="form.cycle !== '4'">-->
+<!--                <span class="separator">至</span>-->
+<!--                <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              </div>-->
+              <el-date-picker
+                v-model="timeFrame"
+                type="datetimerange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                format="YYYY-MM-DD HH:mm:ss"
+                date-format="YYYY/MM/DD ddd"
+                time-format="A hh:mm:ss"
+                v-if="form.cycle !== '3' && form.cycle !== '4'"
+              />
+              <el-date-picker v-if="form.cycle === '3' || form.cycle === '4'" v-model="form.start_time" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" style="width: 400px"></el-date-picker>
+
             </el-form-item>
             <el-form-item label="巡查周期:" prop="cycle">
               <el-radio-group v-model="form.cycle">
@@ -29,10 +43,10 @@
               </el-radio-group>
             </el-form-item>
             <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">
               <div class="weekday-selector">
@@ -68,10 +82,12 @@
 <script setup lang="ts">
 import { updatetask, addtask } from '@/api/inspectionWork/inspector';
 import { ref } from 'vue';
+import { parseTime } from '@/utils/ruoyi';
 const demoFormRef = ref(null);
 const buttonLoading = ref(false);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const emits = defineEmits(['close']);
+const timeFrame = ref('');
 let form = ref({
   id: '',
   business: '',
@@ -102,10 +118,18 @@ const rules = ref({
 });
 // 提交表单
 const submitForm = () => {
+  if (!!timeFrame.value) {
+    form.value.start_time = parseTime(timeFrame.value[0], '{y}-{m}-{d}');
+    form.value.end_time = parseTime(timeFrame.value[1], '{y}-{m}-{d}');
+  }
   demoFormRef.value?.validate(async (valid) => {
+
     if (valid) {
       try {
         buttonLoading.value = true;
+        if (form.value.cycle === '4') {
+          form.value.end_time = form.value.start_time
+        }
         form.value.task_number ? await updatetask(form.value) : await addtask(form.value); //根据 form.value.planId 是否存在,调用 updateReport 或 addReport 方法
         proxy?.$modal.msgSuccess(form.value.task_number ? '修改成功' : '新增成功');
         emits('refresh'); // 提交成功后通知父组件刷新

+ 48 - 9
src/views/inspectionWork/patrolTaskEdit.vue

@@ -15,11 +15,26 @@
               </el-select>
             </el-form-item>
             <el-form-item label="排查时间范围:" prop="publish">
-              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>
-              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>
+<!--              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              <div v-if="form.cycle !== '4'">-->
+<!--                &nbsp&nbsp至&nbsp&nbsp-->
+<!--                <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              </div>-->
+              <el-date-picker
+                v-model="timeFrame2"
+                type="datetimerange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                format="YYYY-MM-DD"
+                date-format="YYYY/MM/DD ddd"
+                v-if="form.cycle !== '3' && form.cycle !== '4'"
+                disabled
+              />
+              <el-date-picker v-if="form.cycle === '3' || form.cycle === '4'" v-model="form.start_time" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" style="width: 400px" disabled />
+
             </el-form-item>
             <el-form-item label="巡查周期:" prop="cycle">
-              <el-radio-group v-model="form.cycle">
+              <el-radio-group v-model="form.cycle" disabled>
                 <el-radio value="0" size="large">每年</el-radio>
                 <el-radio value="1" size="large">每月</el-radio>
                 <el-radio value="2" size="large">每周</el-radio>
@@ -27,15 +42,12 @@
                 <el-radio value="4" size="large">一次</el-radio>
               </el-radio-group>
             </el-form-item>
-            <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>
-            </el-form-item>
-            <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>
+            <el-form-item v-if="form.cycle === '0' || form.cycle === '1'" label="选择时间:" prop="corn_query">
+              <el-input  v-model="form.corn_query" disabled />
             </el-form-item>
             <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">
               <div class="weekday-selector">
-                <el-radio-group v-model="form.corn_query">
+                <el-radio-group v-model="form.corn_query" disabled>
                   <el-radio label="1">周一</el-radio>
                   <el-radio label="2">周二</el-radio>
                   <el-radio label="3">周三</el-radio>
@@ -46,6 +58,25 @@
                 </el-radio-group>
               </div>
             </el-form-item>
+<!--            <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">-->
+<!--              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" disabled> </el-date-picker>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">-->
+<!--              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" disabled> </el-date-picker>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">-->
+<!--              <div class="weekday-selector">-->
+<!--                <el-radio-group v-model="form.corn_query">-->
+<!--                  <el-radio label="1">周一</el-radio>-->
+<!--                  <el-radio label="2">周二</el-radio>-->
+<!--                  <el-radio label="3">周三</el-radio>-->
+<!--                  <el-radio label="4">周四</el-radio>-->
+<!--                  <el-radio label="5">周五</el-radio>-->
+<!--                  <el-radio label="6">周六</el-radio>-->
+<!--                  <el-radio label="7">周日</el-radio>-->
+<!--                </el-radio-group>-->
+<!--              </div>-->
+<!--            </el-form-item>-->
             <el-form-item label="巡查范围:" prop="inspection_range">
               <el-radio-group v-model="form.inspection_range">
                 <el-radio value="0" size="large">市级</el-radio>
@@ -68,11 +99,13 @@
 import { workDetail, updatetask } from '@/api/inspectionWork/inspector';
 import { ref, watch } from 'vue';
 import { ElMessage } from 'element-plus';
+import { parseTime } from '@/utils/ruoyi';
 const demoFormRef = ref(null);
 const buttonLoading = ref(false);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const emit = defineEmits(['close']);
 const props = defineProps<{ eventId: string }>();
+const timeFrame = ref('');
 let form = ref({
   id: '',
   business: '',
@@ -101,10 +134,12 @@ const rules = ref({
   corn_query_day: [],
   corn_query_weekday: [] // 添加用于每周的选择的验证
 });
+const timeFrame2 = ref([]);
 const fetchDetail = async () => {
   const response = await workDetail(props.eventId);
   if (response.code === 200) {
     form.value = response.data;
+    timeFrame2.value = [form.value.start_time, form.value.end_time];
   } else {
     ElMessage.error(response.msg);
   }
@@ -119,6 +154,10 @@ watch(
   { immediate: true }
 );
 const submitForm = async () => {
+  if (!!timeFrame.value) {
+    form.value.start_time = parseTime(timeFrame.value[0], '{y}-{m}-{d}');
+    form.value.end_time = parseTime(timeFrame.value[0], '{y}-{m}-{d}');
+  }
   // 假设表单已经通过验证
   const response = await updatetask(form.value);
   if (response.code === 200) {

+ 15 - 29
src/views/inspectionWork/rescueResources.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <div v-show="!rescueResourcesDetailState.show && !rescueResourcesAddState.show" class="app-container">
+    <div v-show="!rescueResourcesDetailState.show && !rescueResourcesAddState.show && !rescueResourcesEditState.show" class="app-container">
       <div>
         <transition name="fade">
           <div v-show="showSearch">
@@ -218,19 +218,19 @@ const handleUpdate = (row) => {
     rescueResourcesEditState.show = true;
   }
 };
-const handleDelete = async (row) => {
+const handleDelete = (row) => {
   let id = [];
   if (row) {
     id = [row.id];
   } else {
     id = ids.value;
   }
-  const [err] = await to(proxy?.$modal.confirm('是否确认删除选择的数据项?') as any);
-  if (!err) {
-    await workDelete(id);
-    proxy.$modal.msgSuccess('删除成功');
-    fetchWorkrData();
-  }
+  proxy?.$modal.confirm('是否确认删除选择的数据项?').then(() => {
+    workDelete(id).then(() => {
+      proxy.$modal.msgSuccess('删除成功');
+      fetchWorkrData();
+    });
+  })
 };
 
 const fetchWorkrData = () => {
@@ -259,27 +259,13 @@ const handleSelectionChange = (selection) => {
   single.value = selection.length != 1;
   multiple.value = !selection.length;
 };
-const handleWork = async (row) => {
-  try {
-    const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    });
-    if (confirmed) {
-      try {
-        await updatetask({ id: row.id, task_status: '3' });
-        console.log(`任务 ${row.id} 已完结`);
-        fetchWorkrData();
-      } catch (error) {
-        console.error(`任务 ${row.id} 完结失败:`, error);
-      }
-    } else {
-      console.log(`任务 ${row.id} 未完结`);
-    }
-  } catch (error) {
-    console.error('确认对话框处理失败:', error);
-  }
+const handleWork = (row) => {
+  proxy?.$modal.confirm('确定要完结任务吗?').then(() => {
+    updatetask({ id: row.id, task_status: '3' }).then(() => {
+      proxy.$modal.msgSuccess('任务已完结');
+      fetchWorkrData();
+    })
+  })
 };
 onMounted(() => {
   fetchWorkrData();

+ 21 - 4
src/views/inspectionWork/rescueResourcesAdd.vue

@@ -15,8 +15,19 @@
               </el-select>
             </el-form-item>
             <el-form-item label="排查时间范围:" prop="publish">
-              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>
-              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>
+              <el-date-picker
+                v-model="timeFrame"
+                type="datetimerange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                format="YYYY-MM-DD HH:mm:ss"
+                date-format="YYYY/MM/DD ddd"
+                time-format="A hh:mm:ss"
+                v-if="form.cycle !== '3' && form.cycle !== '4'"
+              />
+              <el-date-picker v-if="form.cycle === '3' || form.cycle === '4'" v-model="form.start_time" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" style="width: 400px"></el-date-picker>
+<!--              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>至-->
+<!--              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>-->
             </el-form-item>
             <el-form-item label="排查周期:" prop="cycle">
               <el-radio-group v-model="form.cycle">
@@ -28,10 +39,10 @@
               </el-radio-group>
             </el-form-item>
             <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">
               <div class="weekday-selector">
@@ -67,10 +78,12 @@
 <script setup lang="ts">
 import { updatetask, addtask } from '@/api/inspectionWork/rescueResources';
 import { ref } from 'vue';
+import { parseTime } from '@/utils/ruoyi';
 const demoFormRef = ref(null);
 const buttonLoading = ref(false);
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const emits = defineEmits(['close']);
+const timeFrame = ref('');
 let form = ref({
   id: '',
   type: '',
@@ -100,6 +113,10 @@ const rules = ref({
 });
 // 提交表单
 const submitForm = () => {
+  if (!!timeFrame.value) {
+    form.value.start_time = parseTime(timeFrame.value[0], '{y}-{m}-{d}');
+    form.value.end_time = parseTime(timeFrame.value[1], '{y}-{m}-{d}');
+  }
   demoFormRef.value?.validate(async (valid) => {
     if (valid) {
       try {

+ 31 - 34
src/views/inspectionWork/rescueResourcesDetail.vue

@@ -9,15 +9,15 @@
             返回上一级
           </div>
         </el-form-item>
-        <el-row :span="24" :gutter="10">
-          <el-col :span="20" label="任务名称">
+        <el-row :span="24" :gutter="10" style="align-items: center">
+          <el-col :span="19" label="任务名称">
             <h2 key="type" style="font-weight: bolder">{{ detailData.type }}</h2>
           </el-col>
           <el-col :span="1.5">
             <el-button type="primary" @click="handleUpdate()"> 编辑 </el-button>
           </el-col>
           <el-col :span="1.5">
-            <el-button type="primary" @click="handlefinal()"> 完成任务 </el-button>
+            <el-button type="primary" @click="handlefinal()" v-if="detailData.task_status  !== '已完结'"> 完成任务 </el-button>
           </el-col>
           <el-col :span="1.5">
             <el-button type="danger" @click="handleDelete()"> 删除 </el-button>
@@ -32,7 +32,7 @@
             <el-descriptions-item key="create_by" label="创建人:">{{ detailData.create_by }}</el-descriptions-item>
             <el-descriptions-item key="create_time" label="创建时间:">{{ detailData.create_time }}</el-descriptions-item>
             <el-descriptions-item key="task_time" label="巡查时间范围:">{{ detailData.task_time }}</el-descriptions-item>
-            <el-descriptions-item key="cycle" label="巡查周期:">{{ detailData.cycle }}</el-descriptions-item>
+            <el-descriptions-item key="cycle" label="巡查周期:">{{ detailData.cycle }}({{detailData.corn_query}})</el-descriptions-item>
             <el-descriptions-item key="task_range" label="巡查范围:">{{ detailData.task_range }}</el-descriptions-item>
             <el-descriptions-item key="task_status" label="任务状态:">{{ detailData.task_status }}</el-descriptions-item>
           </el-descriptions>
@@ -93,6 +93,7 @@ import RescueResourcesEdit from './rescueResourcesEdit.vue';
 import RescueResourcesCompleted from './rescueResourcesCompleted.vue';
 import RescueResourcesIncomplete from './rescueResourcesIncomplete.vue';
 import { to } from 'await-to-js';
+import { parseTime } from '@/utils/ruoyi';
 const props = defineProps<{ eventId: string }>();
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const total = ref(0);
@@ -100,12 +101,13 @@ const tableData = ref([]);
 const multiple = ref(true);
 const ids = ref<Array<number | string>>([]);
 const single = ref(true);
-const emits = defineEmits(['close']);
+const emits = defineEmits(['close', 'refreshsub']);
 const detailData = ref({
   task_number: '',
   type: '',
   task_time: '',
   cycle: '',
+  corn_query: '',
   id: '',
   task_range: '',
   task_status: '',
@@ -217,6 +219,14 @@ const fetchWorkDetail = () => {
         data.task_range = taskRangeMap[data.task_range] || '未知';
         // 转换task_status
         data.task_status = taskStatusMap[data.task_status] || '未知';
+        // 转换corn_query
+        if (data.cycle === "每年") {
+          data.corn_query = parseTime(data.corn_query, '{m}月{d}日');
+        } else if (data.cycle === "每月") {
+          data.corn_query = parseTime(data.corn_query, '{d}日');
+        } else if (data.cycle === "每周") {
+          data.corn_query = weekMap[data.corn_query] || '未知';
+        }
 
         detailData.value = data; // 将转换后的数据赋值给detailData
       } else {
@@ -242,41 +252,28 @@ const fetchSubTasks = () => {
       console.error('Error fetching sub tasks:', error);
     });
 };
-const handleDelete = async () => {
-  const [err] = await to(proxy?.$modal.confirm('是否确认删除?') as any);
-  if (!err) {
-    await deleteRisk([props.eventId]);
-    proxy?.$modal.msgSuccess('删除成功');
-    emits('close');
-    emits('refreshsub');
-  }
+const handleDelete = () => {
+  proxy?.$modal.confirm('是否确认删除?').then(() => {
+    deleteRisk([props.eventId]).then(() => {
+      proxy?.$modal.msgSuccess('删除成功');
+      emits('close');
+      emits('refreshsub');
+    })
+  })
 };
 const handleSelectionChange = (selection) => {
   ids.value = selection.map((item) => item.id);
   single.value = selection.length != 1;
   multiple.value = !selection.length;
 };
-const handlefinal = async () => {
-  try {
-    const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    });
-    if (confirmed) {
-      try {
-        await updatetask({ id: props.eventId, task_status: '3' });
-        console.log(`任务 ${props.eventId} 已完结`);
-        fetchWorkDetail();
-      } catch (error) {
-        console.error(`任务 ${props.eventId} 完结失败:`, error);
-      }
-    } else {
-      console.log(`任务 ${props.eventId} 未完结`);
-    }
-  } catch (error) {
-    console.error('确认对话框处理失败:', error);
-  }
+const handlefinal = () => {
+  proxy?.$modal.confirm('确定要完结任务吗?').then(() => {
+    updatetask({ id: props.eventId, task_status: '3' }).then(() => {
+      proxy.$modal.msgSuccess('任务已完结');
+      fetchWorkDetail();
+      emits('refreshsub');
+    })
+  })
 };
 const goBack = () => {
   emits('close');

+ 39 - 9
src/views/inspectionWork/rescueResourcesEdit.vue

@@ -15,11 +15,23 @@
               </el-select>
             </el-form-item>
             <el-form-item label="排查时间范围:" prop="publish">
-              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>
-              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>
+              <el-date-picker
+                v-model="timeFrame2"
+                type="datetimerange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                format="YYYY-MM-DD"
+                date-format="YYYY/MM/DD ddd"
+                v-if="form.cycle !== '3' && form.cycle !== '4'"
+                disabled
+              />
+              <el-date-picker v-if="form.cycle === '3' || form.cycle === '4'" v-model="form.start_time" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" style="width: 400px" disabled />
+
+              <!--              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>-->
             </el-form-item>
             <el-form-item label="排查周期:" prop="cycle">
-              <el-radio-group v-model="form.cycle">
+              <el-radio-group v-model="form.cycle" disabled>
                 <el-radio value="0" size="large">每年</el-radio>
                 <el-radio value="1" size="large">每月</el-radio>
                 <el-radio value="2" size="large">每周</el-radio>
@@ -27,15 +39,12 @@
                 <el-radio value="4" size="large">一次</el-radio>
               </el-radio-group>
             </el-form-item>
-            <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>
-            </el-form-item>
-            <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>
+            <el-form-item v-if="form.cycle === '0' || form.cycle === '1'" label="选择时间:" prop="corn_query">
+              <el-input  v-model="form.corn_query" disabled />
             </el-form-item>
             <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">
               <div class="weekday-selector">
-                <el-radio-group v-model="form.corn_query">
+                <el-radio-group v-model="form.corn_query" disabled>
                   <el-radio label="1">周一</el-radio>
                   <el-radio label="2">周二</el-radio>
                   <el-radio label="3">周三</el-radio>
@@ -46,6 +55,25 @@
                 </el-radio-group>
               </div>
             </el-form-item>
+<!--            <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">-->
+<!--              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">-->
+<!--              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>-->
+<!--            </el-form-item>-->
+<!--            <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">-->
+<!--              <div class="weekday-selector">-->
+<!--                <el-radio-group v-model="form.corn_query">-->
+<!--                  <el-radio label="1">周一</el-radio>-->
+<!--                  <el-radio label="2">周二</el-radio>-->
+<!--                  <el-radio label="3">周三</el-radio>-->
+<!--                  <el-radio label="4">周四</el-radio>-->
+<!--                  <el-radio label="5">周五</el-radio>-->
+<!--                  <el-radio label="6">周六</el-radio>-->
+<!--                  <el-radio label="7">周日</el-radio>-->
+<!--                </el-radio-group>-->
+<!--              </div>-->
+<!--            </el-form-item>-->
             <el-form-item label="排查范围:" prop="inspection_range">
               <el-radio-group v-model="form.inspection_range">
                 <el-radio value="0" size="large">市级</el-radio>
@@ -88,10 +116,12 @@ const typeOptions = [
   { value: '1', label: '救援队伍' },
   { value: '2', label: '救援设备' }
 ];
+const timeFrame2 = ref([]);
 const fetchDetail = async () => {
   const response = await workDetail(props.eventId);
   if (response.code === 200) {
     form.value = response.data;
+    timeFrame2.value = [form.value.start_time, form.value.end_time];
   } else {
     ElMessage.error(response.msg);
   }

+ 36 - 32
src/views/inspectionWork/riskManagement.vue

@@ -84,8 +84,20 @@
               </el-select>
             </el-form-item>
             <el-form-item label="排查时间范围:" prop="publish">
-              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>
-              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>
+<!--              <el-date-picker v-model="form.start_time" type="date" placeholder="选择开始日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+<!--              <el-date-picker v-model="form.end_time" type="date" placeholder="选择结束日期" value-format="YYYY-MM-DD"></el-date-picker>-->
+              <el-date-picker
+                v-model="timeFrame"
+                type="datetimerange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                format="YYYY-MM-DD HH:mm:ss"
+                date-format="YYYY/MM/DD ddd"
+                time-format="A hh:mm:ss"
+                v-if="form.cycle !== '3' && form.cycle !== '4'"
+              />
+              <el-date-picker v-if="form.cycle === '3' || form.cycle === '4'" v-model="form.start_time" type="date" placeholder="选择日期" value-format="YYYY-MM-DD" style="width: 400px"></el-date-picker>
+
             </el-form-item>
             <el-form-item label="排查周期:" prop="cycle">
               <el-radio-group v-model="form.cycle">
@@ -97,10 +109,10 @@
               </el-radio-group>
             </el-form-item>
             <el-form-item v-if="form.cycle === '0'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="MM-DD" value-format="MM-DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '1'" label="选择时间:" prop="corn_query">
-              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD"> </el-date-picker>
+              <el-date-picker v-model="form.corn_query" type="date" placeholder="选择日期时间" format="DD" value-format="DD" style="width: 400px"> </el-date-picker>
             </el-form-item>
             <el-form-item v-if="form.cycle === '2'" label="选择时间:" prop="corn_query">
               <div class="weekday-selector">
@@ -151,8 +163,10 @@ import { ElMessageBox } from 'element-plus';
 import { addtask, deleteRisk, getRiskDetail, risklist, updatetask } from '@/api/inspectionWork/riskManagement';
 import EventDetails from '@/views/duty/eventing/eventDetails.vue';
 import EventEditDialog from '@/views/duty/eventing/EventEditDialog.vue';
+import { workDelete } from '@/api/inspectionWork/inspector';
 
 const router = useRouter();
+const timeFrame = ref('');
 const demoFormRef = ref(null);
 const demoList = ref<RiskVO[]>([]);
 const buttonLoading = ref(false);
@@ -194,27 +208,13 @@ let form = ref({
   task_range: ''
 });
 
-const handlefinal = async (row) => {
-  try {
-    const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    });
-    if (confirmed) {
-      try {
-        await updatetask({ id: row.id, task_status: '3' });
-        console.log(`任务 ${row.id} 已完结`);
-        getList();
-      } catch (error) {
-        console.error(`任务 ${row.id} 完结失败:`, error);
-      }
-    } else {
-      console.log(`任务 ${row.id} 未完结`);
-    }
-  } catch (error) {
-    console.error('确认对话框处理失败:', error);
-  }
+const handlefinal = (row) => {
+  proxy?.$modal.confirm('确定要完结任务吗?').then(() => {
+    updatetask({ id: row.id, task_status: '3' }).then(() => {
+      proxy.$modal.msgSuccess('任务已完结');
+      getList();
+    })
+  })
 };
 
 //获取风险源类型
@@ -276,15 +276,15 @@ const handleUpdate = async (row: RiskVO) => {
   }
 };
 //删除
-const handleDelete = async (row) => {
+const handleDelete = (row) => {
   // debugger
   const riskUid = row && row.id ? [row?.id] : ids.value; //planUid 转换为 riskUid
-  const [err] = await to(proxy?.$modal.confirm('是否确认删除选择的数据项?') as any);
-  if (!err) {
-    await deleteRisk(riskUid);
-    getList();
-    proxy?.$modal.msgSuccess('删除成功');
-  }
+  proxy?.$modal.confirm('是否确认删除选择的数据项?').then(() => {
+    deleteRisk(riskUid).then(() => {
+      proxy.$modal.msgSuccess('删除成功');
+      getList();
+    });
+  })
 };
 // 查看详情
 const handleView = (row: RiskVO) => {
@@ -295,6 +295,10 @@ const handleView = (row: RiskVO) => {
 };
 // 提交表单
 const submitForm = () => {
+  if (!!timeFrame.value) {
+    form.value.start_time = parseTime(timeFrame.value[0], '{y}-{m}-{d}');
+    form.value.end_time = parseTime(timeFrame.value[1], '{y}-{m}-{d}');
+  }
   demoFormRef.value?.validate(async (valid) => {
     if (valid) {
       try {

+ 58 - 23
src/views/inspectionWork/riskdetails.vue

@@ -45,7 +45,8 @@
             <div class="common-info-item"  >创建人:{{ detailData.create_by }}</div>
             <div class="common-info-item"  >排查时间范围:{{ detailData.task_time }}</div>
             <div class="common-info-item"  >排查周期:
-              <dict-tag :options="risk_cycle" :value="detailData.cycle" style="display: inline-block" />
+              {{ detailData.cycle }}({{detailData.corn_query}})
+<!--              <dict-tag :options="risk_cycle" :value="detailData.cycle" style="display: inline-block" />-->
             </div>
             <div class="common-info-item" >排查范围:
               <dict-tag :options="risk_range" :value="detailData.task_range" style="display: inline-block" />
@@ -170,6 +171,7 @@ import { reactive, ref } from 'vue';
 import RiskResult from './riskResult.vue';
 import RiskCompleted from './risk_completed.vue';
 import RiskIncomplete from './risk_incomplete.vue';
+import { parseTime } from '@/utils/ruoyi';
 const divisionSelectedId = ref(null);
 const formattedDivisionData = ref([]);
 const onDivisionChange = (value) => {
@@ -236,6 +238,22 @@ let visible = ref(false);
 const demoFormRef = ref(null);
 const buttonLoading = ref(false);
 
+const cycleMap = {
+  0: '每年',
+  1: '每月',
+  2: '每周',
+  3: '每日',
+  4: '一次'
+};
+const weekMap = {
+  1: '一',
+  2: '二',
+  3: '三',
+  4: '四',
+  5: '五',
+  6: '六',
+  7: '七',
+};
 let form = ref({
   id: '',
   task_number: '',
@@ -289,27 +307,32 @@ const planUpdate = async () => {
   visible.value = true;
 };
 
-const handlefinal = async () => {
-  try {
-    const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    });
-    if (confirmed) {
-      try {
-        await updatetask({ id: route.query.id, task_status: '3' });
-        console.log(`任务 ${route.query.id} 已完结`);
-        // getList();
-      } catch (error) {
-        console.error(`任务 ${route.query.id} 完结失败:`, error);
-      }
-    } else {
-      console.log(`任务 ${route.query.id} 未完结`);
-    }
-  } catch (error) {
-    console.error('确认对话框处理失败:', error);
-  }
+const handlefinal = () => {
+  proxy?.$modal.confirm('确定要完结任务吗?').then(() => {
+    updatetask({ id: route.query.id, task_status: '3' }).then(() => {
+      proxy.$modal.msgSuccess('任务已完结');
+    })
+  })
+  // try {
+  //   const confirmed = await ElMessageBox.confirm('确定要完结任务吗?', '提示', {
+  //     confirmButtonText: '确定',
+  //     cancelButtonText: '取消',
+  //     type: 'warning'
+  //   });
+  //   if (confirmed) {
+  //     try {
+  //       await updatetask({ id: route.query.id, task_status: '3' });
+  //       console.log(`任务 ${route.query.id} 已完结`);
+  //       // getList();
+  //     } catch (error) {
+  //       console.error(`任务 ${route.query.id} 完结失败:`, error);
+  //     }
+  //   } else {
+  //     console.log(`任务 ${route.query.id} 未完结`);
+  //   }
+  // } catch (error) {
+  //   console.error('确认对话框处理失败:', error);
+  // }
 };
 
 const resetForm = () => {
@@ -360,7 +383,19 @@ const submitForm = () => {
 onMounted(() => {
   task_number.value = route.query.id;
   getRiskDetail(task_number.value).then((res) => {
-    detailData.value = res.data;
+    let data = res.data;
+    // 转换cycle
+    data.cycle = cycleMap[data.cycle] || '未知';
+    // 转换corn_query
+    if (data.cycle === "每年") {
+      data.corn_query = parseTime(data.corn_query, '{m}月{d}日');
+    } else if (data.cycle === "每月") {
+      data.corn_query = parseTime(data.corn_query, '{d}日');
+    } else if (data.cycle === "每周") {
+      data.corn_query = weekMap[data.corn_query] || '未知';
+    }
+
+    detailData.value = data;
   });
   getSubtaskList(task_number.value).then((res) => {
     subtaskData.value = res.data;