From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 04 三月 2025 08:39:55 +0800
Subject: [PATCH] 修改作业等级名称

---
 src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue |  174 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 131 insertions(+), 43 deletions(-)

diff --git a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
index 008e90c..0134bf9 100644
--- a/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
+++ b/src/views/intellectInspect/inspectRecordManage/inspectRecord/index.vue
@@ -1,12 +1,19 @@
 <template>
     <div class="home-container">
-        <div style="height: 100%">
+        <div style="height: 100%;display: flex;flex-direction: column;align-items: stretch;">
             <el-row class="homeCard">
                 <div class="basic-line">
                     <span>任务类型:</span>
                     <el-select v-model="tableData.params.taskType" clearable filterable class="input-box" placeholder="任务类型">
                         <el-option v-for="item in workTypeList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
+                </div>
+                <div class="basic-line">
+                    <span>部门:</span>
+                    <el-cascader class="input-box" :options="departmentList" :props="{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }"
+                                 placeholder="请选择部门" clearable v-model="tableData.params.execDepId"
+                                 @change="changeGroup"
+                    > </el-cascader>
                 </div>
                 <div class="basic-line">
                     <span>执行班组:</span>
@@ -16,7 +23,7 @@
                 </div>
                 <div class="basic-line">
                     <span>任务状态:</span>
-                    <el-select v-model="tableData.params.taskStatus" clearable filterable class="input-box" placeholder="执行班组">
+                    <el-select v-model="tableData.params.taskStatus" clearable filterable class="input-box" placeholder="任务状态">
                         <el-option v-for="item in taskStatusList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
                 </div>
@@ -31,7 +38,13 @@
                         <el-button type="primary" :icon="Refresh" size="default" />
                     </el-row>
                     <el-table ref="multipleTableRef" :data="tableData.inspectRecordData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
-                        <el-table-column property="taskName" label="任务名称" />
+                        <el-table-column property="taskName" label="任务名称">
+                            <template #default="scope">
+                                <div :class="hasJump == true && scope.row.startTime.slice(0, 10) == date && (tableData.params.taskStatus == 4 || tableData.params.taskStatus == 5) ? 'redTit' : ''">
+                                    {{ scope.row.taskName }}
+                                </div>
+                            </template>
+                        </el-table-column>
                         <el-table-column property="taskType" label="任务类型">
                             <template #default="scope">
                                 <span>
@@ -39,13 +52,7 @@
                                 </span>
                             </template>
                         </el-table-column>
-                        <el-table-column property="execClassgroupId" label="巡检班组">
-                            <template #default="scope">
-                                <span>
-                                    {{ parseNumber(scope.row.execClassgroupId, '巡检班组') }}
-                                </span>
-                            </template>
-                        </el-table-column>
+                        <el-table-column property="execClassgroupName" label="巡检班组"/>
                         <el-table-column property="frequency" label="检查频次">
                             <template #default="scope">
                                 <span>
@@ -58,15 +65,30 @@
                         </el-table-column>
                         <el-table-column property="startTime" label="任务开始时间" />
                         <el-table-column prop="execUserName" label="执行人" show-overflow-tooltip></el-table-column>
-                        <el-table-column property="taskStatus" label="任务状态">
+                        <el-table-column property="taskStatus" label="任务状态" width="180">
                             <template #default="scope">
-                                <el-tag :type="scope.row.taskStatus === 1 ? 'info' : scope.row.taskStatus === 2 ? 'primary' : scope.row.taskStatus === 3 ? 'success' : 'danger'">
+                                <el-tag :type="scope.row.resultStatus === 1 ? 'danger' : scope.row.taskStatus === 1 ? 'info' : scope.row.taskStatus === 2 ? '' : scope.row.taskStatus === 3 ? 'success' : 'danger'">
                                     <span>
-                                        {{ parseNumber(scope.row.taskStatus, '任务状态') }}
+                                        {{ scope.row.resultStatus === 1 ? '已巡检存在异常' : parseNumber(scope.row.taskStatus, '任务状态') }}
                                     </span>
                                 </el-tag>
                             </template>
                         </el-table-column>
+                      <el-table-column property="taskClaimTime" label="认领时间">
+                        <template #default="scope">
+                          {{scope.row.taskClaimTime?scope.row.taskClaimTime:'--'}}
+                        </template>
+                      </el-table-column>
+                      <el-table-column property="reportTime" label="填报时间">
+                        <template #default="scope">
+                          {{scope.row.reportTime?scope.row.reportTime:'--'}}
+                        </template>
+                      </el-table-column>
+                      <el-table-column property="taskTimeConsuming" label="巡检耗时">
+                        <template #default="scope">
+                          {{scope.row.taskTimeConsuming?scope.row.taskTimeConsuming:'--'}}
+                        </template>
+                      </el-table-column>
                         <el-table-column property="resultStatus" label="巡检结果">
                             <template #default="scope">
                                 <span>
@@ -95,11 +117,12 @@
 import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
 import { ElTable, ElMessage } from 'element-plus';
 import { inspectRecordApi } from '/@/api/intellectInspectSystem/inspectRecord';
-import inspectRecordDialog from './components/inspectRecordDialog.vue';
+import inspectRecordDialog from '../../inspectIndex/components/inspectRecordDialog.vue';
 import { departmentApi } from '/@/api/systemManage/department';
 import { teamManageApi } from '/@/api/systemManage/personShiftManage/teamManage';
 import { inspectPointApi } from '/@/api/intellectInspectSystem/inspectPointManage';
 import { inspectTaskApi } from '/@/api/intellectInspectSystem/inspectTask';
+import { useRoute } from 'vue-router';
 let global: any = {
     homeChartOne: null,
     homeChartTwo: null,
@@ -108,6 +131,9 @@
 };
 
 interface stateType {
+    isRed: boolean;
+    hasJump: boolean;
+    date: string;
     tableData: {
         inspectRecordData: [];
         total: number;
@@ -125,6 +151,7 @@
             validTime: string | null;
             createUserId: number | null;
             reportTime: string | null;
+            resultStatus: number | null;
         };
     };
     workTypeList: Array<type>;
@@ -144,12 +171,15 @@
     id: number;
     groupName: string;
 }
+interface timeType {}
 export default {
     name: 'index',
     components: { inspectRecordDialog },
     setup() {
         const inspectRecordDialogRef = ref();
+        const route = useRoute();
         const state = reactive<stateType>({
+            hasJump: false,
             tableData: {
                 inspectRecordData: [],
                 total: 0,
@@ -159,29 +189,34 @@
                     pageSize: 10,
                     taskName: null,
                     taskType: null,
-                    taskStatus: 2,
+                    taskStatus: null,
                     execUserId: null,
                     execClassgroupId: null,
                     execDepId: null,
                     startTime: null,
                     validTime: null,
                     createUserId: null,
-                    reportTime: null
+                    reportTime: null,
+                    resultStatus: null
                 }
             },
+            isRed: false,
+            date: '',
             workTypeList: [
-                { id: 1, name: '日常任务' },
-                { id: 2, name: '周期任务' }
+                { id: 1, name: '周期任务' },
+                { id: 2, name: '单次任务' }
             ],
             resultStatusList: [
                 { id: 0, name: '正常' },
-                { id: 1, name: '异常' }
+                { id: 1, name: '存在异常' },
+                { id: 2, name: '备' }
             ],
             taskStatusList: [
                 { id: 1, name: '待巡检' },
                 { id: 2, name: '巡检中' },
-                { id: 3, name: '已巡检' },
-                { id: 4, name: '超时未巡检' }
+                { id: 3, name: '已巡检正常' },
+                { id: 5, name: '已巡检存在异常' },
+                { id: 4, name: '超时未完成巡检' }
             ],
             quotaList: [],
             departmentList: [],
@@ -198,9 +233,19 @@
 
         //获取巡检记录数据
         const getInspectRecord = async () => {
-            let res = await inspectRecordApi().getInspectRecordList(state.tableData.params);
+            const data = JSON.parse(JSON.stringify(state.tableData.params));
+            if (state.tableData.params.taskStatus == 3) {
+                data.taskStatus = 3;
+                data.resultStatus = 0;
+            }
+            if (state.tableData.params.taskStatus == 5) {
+                data.taskStatus = 3;
+                data.resultStatus = 1;
+            }
+            console.log(state.tableData.params.taskStatus, data.taskStatus, 'data');
+            let res = await inspectRecordApi().getInspectRecordList(data);
             if (res.data.code === '200') {
-                state.tableData.inspectRecordData = res.data.data.records;
+                state.tableData.inspectRecordData = JSON.parse(JSON.stringify(res.data.data.records));
                 state.tableData.total = res.data.data.total;
             } else {
                 ElMessage({
@@ -249,18 +294,22 @@
             }
         };
 
-        //获取班组
-        const getClassGroupData = async () => {
-            let res = await teamManageApi().getRecord({ depIp: null, groupName: null, containGroupMemberEnable: null });
-            if (res.data.code === '200') {
-                state.classGroupList = res.data.data;
-            } else {
-                ElMessage({
-                    type: 'warning',
-                    message: res.data.msg
-                });
+        const changeGroup = async () => {
+            if(state.tableData.params.execDepId === null) {
+                state.classGroupList = []
+            }else{
+                let res = await departmentApi().getByDepId({depId:state.tableData.params.execDepId})
+                if(res.data.code === '200'){
+                    state.classGroupList = res.data.data
+                }else{
+
+                }
             }
         };
+
+        // const turnRed =()=>{
+        //     date
+        // }
 
         const openInspectRecordDialog = (type: string, value: {}) => {
             inspectRecordDialogRef.value.showInspectRecordDialog(type, value, state.workTypeList, state.departmentList, state.timeType, state.classGroupList, state.quotaList, state.inspectPointAllList);
@@ -289,8 +338,18 @@
         const onHandleCurrentChange = (val: number) => {
             state.tableData.params.pageIndex = val;
             getInspectRecord();
+            state.isRed = false;
         };
-
+        // 时间格式化
+        const timeForm: timeType = {
+            hour12: false,
+            year: 'numeric',
+            month: '2-digit',
+            day: '2-digit',
+            hour: '2-digit',
+            minute: '2-digit',
+            second: '2-digit'
+        };
         const reset = () => {
             state.tableData.params = {
                 pageIndex: 1,
@@ -304,17 +363,32 @@
                 startTime: null,
                 validTime: null,
                 createUserId: null,
+                resultStatus: null,
                 reportTime: null
             };
         };
-
+        // 当前时间
+        const getDateTime = () => {
+            const curTime = new Date().toLocaleString('zh', timeForm).replace(/\//g, '-');
+            state.date = curTime.slice(0, 10);
+        };
         // 页面加载时
         onMounted(() => {
-            getInspectRecord();
-            getQuotaList();
-            getDepartmentData();
-            getClassGroupData();
-            getInspectTaskPoint();
+            getDateTime();
+            if (route.query.id) {
+                state.hasJump = true;
+                state.tableData.params.taskStatus = Number(route.query.id);
+                state.isRed = true;
+                getInspectRecord();
+                getQuotaList();
+                getDepartmentData();
+                getInspectTaskPoint();
+            } else {
+                getInspectRecord();
+                getQuotaList();
+                getDepartmentData();
+                getInspectTaskPoint();
+            }
         });
 
         return {
@@ -325,6 +399,7 @@
             Plus,
             reset,
             parseNumber,
+            changeGroup,
             getInspectRecord,
             onHandleSizeChange,
             onHandleCurrentChange,
@@ -339,15 +414,17 @@
 <style scoped lang="scss">
 $homeNavLengh: 8;
 .home-container {
-    height: calc(100vh - 114px);
+    height: calc(100vh - 144px);
     box-sizing: border-box;
     overflow: hidden;
+    position: relative;
     .homeCard {
         width: 100%;
         padding: 20px;
         box-sizing: border-box;
         background: #fff;
         border-radius: 4px;
+        flex: 0 auto;
 
         .main-card {
             width: 100%;
@@ -362,7 +439,15 @@
                 }
             }
             .pageBtn {
+                position: absolute;
+                width: 100%;
+                z-index: 99;
+                bottom: 0;
+                right: 0;
                 height: 60px;
+                border-radius: 0 0 4px 4px;
+                padding-right: 20px;
+                background: #fff;
                 display: flex;
                 align-items: center;
                 justify-content: right;
@@ -375,8 +460,8 @@
                 }
             }
         }
-        &:last-of-type {
-            height: calc(100% - 100px);
+        &:last-of-type{
+          flex: 1;
         }
     }
     .el-row {
@@ -462,6 +547,9 @@
         color: #0098f5;
     }
 }
+.redTit {
+    color: red;
+}
 .el-input {
     width: 100% !important;
 }

--
Gitblit v1.9.2