From 54051120c1b27732f05b8c2f4a0112ac02323696 Mon Sep 17 00:00:00 2001
From: Your Name <123456>
Date: 星期三, 14 九月 2022 17:36:40 +0800
Subject: [PATCH] Merge branch 'master' of https://sinanoaq.cn:8888/r/gtqt

---
 src/views/riskWarningSys/warningBigScreen/components/message.vue               |    1 
 src/views/riskWarningSys/warningBigScreen/indexs/index.vue                     |   97 -
 src/views/riskWarningSys/warningBigScreen/components/SPI.vue                   |  190 ++
 src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue      |    2 
 src/views/specialWorkSystem/workPlan/reserveSum/index.vue                      |  415 +++++
 src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue     |    2 
 src/api/specialWorkSystem/workPlan/workAppoint/index.ts                        |   50 
 src/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue     |    2 
 src/router/route.ts                                                            |    8 
 src/views/specialWorkSystem/workPlan/workAppoint/index.vue                     |  616 ++++++++
 src/views/riskWarningSys/warningBigScreen/index.vue                            |  298 ---
 src/api/specialWorkSystem/workProcess/index.ts                                 |   59 
 src/views/riskWarningSys/warningBigScreen/components/risk.vue                  |  172 ++
 src/api/specialWorkSystem/workPlan/workReservation/index.ts                    |   41 
 src/layout/navBars/breadcrumb/user.vue                                         |    1 
 src/utils/request.ts                                                           |    1 
 src/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue     |    2 
 src/views/specialWorkSystem/workProcess/gasCheck/index.vue                     |  256 +--
 src/views/specialWorkSystem/workPlan/workReservation/index.vue                 |  775 ++++++----
 /dev/null                                                                      |  672 ---------
 src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue     |    2 
 src/views/riskWarningSys/warningBigScreen/components/accident.vue              |    1 
 src/views/specialWorkSystem/workAlert/alertRecord/index.vue                    |  172 -
 src/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue          |  225 +++
 src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue |    3 
 src/views/riskWarningSys/warningBigScreen/indexs/msgDetail.vue                 |   12 
 src/views/specialWorkSystem/workProcess/workCheck/index.vue                    |  240 +-
 src/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue      |    2 
 28 files changed, 2,575 insertions(+), 1,742 deletions(-)

diff --git a/src/api/specialWorkSystem/workPlan/workAppoint/index.ts b/src/api/specialWorkSystem/workPlan/workAppoint/index.ts
new file mode 100644
index 0000000..9d44e51
--- /dev/null
+++ b/src/api/specialWorkSystem/workPlan/workAppoint/index.ts
@@ -0,0 +1,50 @@
+import request from '/@/utils/request';
+
+export function workAppointApi() {
+    return {
+        // 分页获取列表
+        getAppointListPage: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/listAll`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 新增列表
+        addRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/save`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        //修改列表
+        editRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/update`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        //删除列表
+        deleteRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/delete`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        //获取各部门各作业的数量
+        getAllRecords: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/statistics`,
+                method: 'post',
+                data: data
+            });
+        }
+    };
+}
diff --git a/src/api/specialWorkSystem/workPlan/workReservation/index.ts b/src/api/specialWorkSystem/workPlan/workReservation/index.ts
new file mode 100644
index 0000000..d432b75
--- /dev/null
+++ b/src/api/specialWorkSystem/workPlan/workReservation/index.ts
@@ -0,0 +1,41 @@
+import request from '/@/utils/request';
+
+export function workReserveApi() {
+    return {
+        // 分页获取列表
+        getReserveListPage: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/listByDep`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 新增列表
+        addRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/save`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        //修改列表
+        editRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/update`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        //删除列表
+        deleteRecord: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/specialWork/appointment/delete`,
+                method: 'post',
+                data: data
+            });
+        }
+    };
+}
diff --git a/src/api/specialWorkSystem/workProcess/index.ts b/src/api/specialWorkSystem/workProcess/index.ts
new file mode 100644
index 0000000..0cd1ff0
--- /dev/null
+++ b/src/api/specialWorkSystem/workProcess/index.ts
@@ -0,0 +1,59 @@
+import request from '/@/utils/request';
+
+export function workProcessApi() {
+    return {
+        // 分页获取检测列表
+        getDetectionListPage: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/detection/page/list`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 分页获取检查列表
+        getCheckListPage: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/check/page/list`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 检测上报
+        postDetectionReport: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/detection/report`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 检查上报
+        postCheckReport: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/check/report`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 获取可上报作业列表
+        postReportList: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/workApply/list`,
+                method: 'post',
+                data: data
+            });
+        },
+
+        // 获取预警记录
+        postAlertList: (data: object) => {
+            return request({
+                url: import.meta.env.VITE_API_URL + `/work/process/warning/page/list`,
+                method: 'post',
+                data: data
+            });
+        },
+    };
+}
diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue
index 36efe42..993fbd9 100644
--- a/src/layout/navBars/breadcrumb/user.vue
+++ b/src/layout/navBars/breadcrumb/user.vue
@@ -264,7 +264,6 @@
         };
         const backToMenu = () => {
             router.push({ path: 'newMenu' }).then(()=>{
-                debugger
                 routeList.routesList.value = []
                 console.log(routeList);
             });
diff --git a/src/router/route.ts b/src/router/route.ts
index f88647d..b45a04a 100644
--- a/src/router/route.ts
+++ b/src/router/route.ts
@@ -127,5 +127,13 @@
         meta: {
             title: 'spi报告详情'
         }
+    },
+    {
+        path: '/workReservation',
+        name: 'workReservation',
+        component: () => import('/@/views/specialWorkSystem/workPlan/workReservation/index.vue'),
+        meta: {
+            title: '作业预约'
+        }
     }
 ];
diff --git a/src/utils/request.ts b/src/utils/request.ts
index 712c188..05e9b36 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -46,7 +46,6 @@
         // };
         return JSONbig.parse(data);
         } catch (err) {
-            console.log(err);
             // 转换失败返回一个空对象
         return data
         }
diff --git a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
index 7568be8..cb42132 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/SPI.vue
@@ -1,5 +1,17 @@
 <template>
 	<div class="charts-cont">
+		<div :class="spiChart">
+			<el-cascader
+				class="spiSe"
+				:teleported="false"
+				v-model="spiValue"
+				:options="spiOptions"
+				:props="spiProps"
+				:show-all-levels="false"
+				@change="handleChange"
+			/>
+		</div>
+
 		<div class="spi" :id="spi">
 
 		</div>
@@ -7,7 +19,7 @@
 </template>
 
 <script lang="ts">
-	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, watchEffect} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
@@ -18,22 +30,76 @@
 	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
 	import * as echarts from 'echarts';
 	import '/@/theme/bigScreen.css'
+	import {useScreenTheme} from "/@/stores/screenTheme";
 
 	interface stateType {
+		spiValue: number;
+		spiOptions: Array<any>;
+		spiChart: string
 	}
 	export default defineComponent({
-		name: 'accident',
+		name: 'SPI',
 		components: {},
 		props:{
 			size: Number,
+			theme: Boolean
 		},
 		setup(props) {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
+			const screenThemes = useScreenTheme()
+			const { screenTheme }  = storeToRefs(screenThemes);
 			const spi = ref("eChartSpi" + Date.now() + Math.random())
 			const state = reactive<stateType>({
-
+				spiValue: 0,
+				spiOptions: [
+					{
+						value: 0,
+						label: '公司级别SPI'
+					},
+					{
+						value: 1,
+						label: 'A事业部SPI',
+						children: [
+							{
+								value: 11,
+								label: 'A车间SPI'
+							},
+							{
+								value: 12,
+								label: 'B车间SPI'
+							},
+							{
+								value: 13,
+								label: 'C车间SPI'
+							}
+						]
+					},
+					{
+						value: 2,
+						label: 'B事业部SPI',
+						children: [
+							{
+								value: 21,
+								label: 'D车间SPI'
+							},
+							{
+								value: 22,
+								label: 'E车间SPI'
+							},
+							{
+								value: 23,
+								label: 'F车间SPI'
+							}
+						]
+					}
+				],
+				spiChart: 'spi-dark'
 			})
+			const spiProps = {
+				expandTrigger: 'hover',
+				checkStrictly: true
+			}
 			type EChartsOption = echarts.EChartsOption
 			// 隐患整改情况
 			const initSpi =()=>{
@@ -222,6 +288,23 @@
 					myChart.resize();
 				});
 			}
+
+			const getTheme =()=>{
+				if(screenTheme.value.isDark){
+					state.spiChart =  'spi-dark'
+				}else{
+					state.spiChart =  'spi-light'
+				}
+			}
+
+			watchEffect(() => {
+				if(props.theme){
+					state.spiChart =  'spi-dark'
+				}else{
+					state.spiChart =  'spi-light'
+				}
+			})
+
 			function fontSize(val){
 				let nowClientWidth = document.documentElement.clientWidth;
 				return val * (nowClientWidth/1920) * Number(props.size);
@@ -230,11 +313,13 @@
 			// 页面载入时执行方法
 			onMounted(() => {
 				initSpi();
+				getTheme();
 			});
 
 			return {
 				spi,
 				Search,
+				spiProps,
 				fontSize,
 				...toRefs(state)
 			};
@@ -249,6 +334,105 @@
 		padding: 2%;
 		position: relative;
 
+		.spi-dark{
+			position: absolute;
+			width: 25% !important;
+			top: 0;
+			left: 2rem;
+			z-index: 99999;
+
+			::v-deep(.el-cascader){
+				width: 100% !important;
+			}
+			::v-deep(.el-popper){
+				background-color: rgba(10,31,92,1);
+				border: 1px solid rgba(17,254,238,.4);
+				color: #11FEEE;
+				.el-cascader-node__label{
+					color: #11FEEE;
+				}
+				.el-icon{
+					color: #11FEEE;
+				}
+				.el-cascader-node{
+					&:hover{
+						background: #0049af;
+					}
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: rgba(10,31,92,.6) !important;
+					border: 1px solid rgba(17,254,238,.4);
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				width: 20%;
+				box-shadow: none;
+				border: 1px solid rgba(17,254,238,.2);
+				background: rgba(10,31,92,.6) !important;
+				height: 2.5rem;
+				color: #11FEEE;
+
+				input{
+					font-size: 1.25rem;
+					color: #11FEEE;
+				}
+				.el-icon{
+					color: #11FEEE;
+				}
+			}
+		}
+
+		.spi-light{
+			position: absolute;
+			width: 25% !important;
+			top: 0;
+			left: 2rem;
+			z-index: 99999;
+
+			::v-deep(.el-cascader){
+				width: 100% !important;
+			}
+			::v-deep(.el-popper){
+				background-color: #fff;
+				border: 1px solid #ccc;
+				color: #000;
+				.el-cascader-node__label{
+					color: #000;
+				}
+				.el-icon{
+					color: #000;
+				}
+				.el-cascader-node{
+					&:hover{
+						background: #ccc;
+					}
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: #fff !important;
+					border: 1px solid #ccc;
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				width: 20%;
+				box-shadow: none;
+				border: 1px solid #ccc;
+				background: #fff !important;
+				height: 2.5rem;
+				color: #000;
+
+				input{
+					font-size: 1.25rem;
+					color: #000;
+				}
+				.el-icon{
+					color: #000;
+				}
+			}
+		}
 		.spi{
 			width: 100%;
 			height: 100%;
diff --git a/src/views/riskWarningSys/warningBigScreen/components/accident.vue b/src/views/riskWarningSys/warningBigScreen/components/accident.vue
index ef12e23..2f15dfe 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/accident.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/accident.vue
@@ -221,6 +221,7 @@
 			});
 
 			onUnmounted(() =>{
+
 			})
 
 			return {
diff --git a/src/views/riskWarningSys/warningBigScreen/components/message.vue b/src/views/riskWarningSys/warningBigScreen/components/message.vue
index 7a8327a..5bcbabc 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/message.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/message.vue
@@ -22,6 +22,7 @@
 	import {useScreenTheme} from "/@/stores/screenTheme"
 
 	interface stateType {
+		config: object
 	}
 	export default defineComponent({
 		name: 'message',
diff --git a/src/views/riskWarningSys/warningBigScreen/components/risk.vue b/src/views/riskWarningSys/warningBigScreen/components/risk.vue
index 9423bda..038699b 100644
--- a/src/views/riskWarningSys/warningBigScreen/components/risk.vue
+++ b/src/views/riskWarningSys/warningBigScreen/components/risk.vue
@@ -1,12 +1,20 @@
 <template>
 	<div class="charts-cont">
+		<el-select :class="selector" v-model="month" placeholder="Select" :teleported="false" size="default">
+			<el-option
+					v-for="item in optionList"
+					:key="item.value"
+					:label="item.label"
+					:value="item.value"
+			/>
+		</el-select>
 		<div v-show="curValue===true" class="risk" :id="risk1"></div>
 		<div v-show="curValue===false" class="risk" :id="risk2"></div>
 	</div>
 </template>
 
 <script lang="ts">
-	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, nextTick, onBeforeUnmount} from 'vue';
+	import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, nextTick, onBeforeUnmount, watchEffect } from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import {useUserInfo} from "/@/stores/userInfo";
@@ -17,25 +25,79 @@
 	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
 	import * as echarts from 'echarts';
 	import '/@/theme/bigScreen.css'
+	import {useScreenTheme} from "/@/stores/screenTheme";
 
 
 	interface stateType {
-		curValue: boolean
+		curValue: boolean,
+		month: number,
+		optionList: Array<any>,
+		selector: string
 	}
 	export default defineComponent({
 		name: 'risk',
 		components: {},
 		props:{
 			size: Number,
-			month: Number
+			theme: Boolean
 		},
 		setup(props) {
 			const userInfo = useUserInfo()
 			const { userInfos } = storeToRefs(userInfo);
+			const screenThemes = useScreenTheme()
+			const { screenTheme }  = storeToRefs(screenThemes);
 			const risk1 = ref("eChartRisk1" + Date.now() + Math.random())
 			const risk2 = ref("eChartRisk2" + Date.now() + Math.random())
 			const state = reactive<stateType>({
-				curValue: true
+				curValue: true,
+				month: 0,
+				optionList: [
+					{
+						label: '年度',
+						value: 0
+					},
+					{
+						label: '一月',
+						value: 1
+					},
+					{
+						label: '二月',
+						value: 2
+					},
+					{
+						label: '三月',
+						value: 3
+					},
+					{
+						label: '四月',
+						value: 4
+					},
+					{
+						label: '五月',
+						value: 5
+					},
+					{
+						label: '六月',
+						value: 6
+					},
+					{
+						label: '七月',
+						value: 7
+					},
+					{
+						label: '八月',
+						value: 8
+					},
+					{
+						label: '九月',
+						value: 9
+					},
+					{
+						label: '十月',
+						value: 10
+					}
+				],
+				selector: 'select-dark'
 			})
 
 			const swi = setInterval(()=>{
@@ -278,6 +340,22 @@
 				echarts.init(document.getElementById(risk1.value)).dispose()
 			}
 
+			const getTheme =()=>{
+				if(screenTheme.value.isDark){
+					state.selector =  'select-dark'
+				}else{
+					state.selector =  'select-light'
+				}
+			}
+
+			watchEffect(() => {
+				if(props.theme){
+					state.selector =  'select-dark'
+				}else{
+					state.selector =  'select-light'
+				}
+			})
+
 			function fontSize(val){
 				let nowClientWidth = document.documentElement.clientWidth;
 				return val * (nowClientWidth/1920) * Number(props.size);
@@ -286,6 +364,7 @@
 			// 页面载入时执行方法
 			onMounted(() => {
 				initRisk1();
+				getTheme();
 			});
 
 			onBeforeUnmount(() =>{
@@ -309,6 +388,91 @@
 		height: 100%;
 		padding: 5% 5% 2%;
 		position: relative;
+		.select-dark{
+			position: absolute;
+			z-index: 999;
+			top: -20px;
+			right: 1.6rem;
+			width: 30%;
+			height: 20px;
+			margin-right: 0.8rem;
+
+			::v-deep(.el-popper){
+				background-color: rgba(10,31,92,1);
+				border: 1px solid rgba(17,254,238,.4);
+				color: #11FEEE;
+				.el-select-dropdown__item{
+					color: #11FEEE;
+				}
+				.el-select-dropdown__item.hover{
+					background: #0049af;
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: rgba(10,31,92,.6) !important;
+					border: 1px solid rgba(17,254,238,.4);
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				box-shadow: none;
+				border: 1px solid rgba(17,254,238,.2);
+				background: rgba(10,31,92,.6) !important;
+				height: 1.5rem;
+				color: #11FEEE;
+
+				input{
+					font-size: 0.8rem;
+					color: #11FEEE;
+				}
+				.el-icon{
+					color: #11FEEE;
+				}
+			}
+		}
+
+		.select-light{
+			position: absolute;
+			z-index: 999;
+			top: -20px;
+			right: 1.6rem;
+			width: 30%;
+			height: 20px;
+			margin-right: 0.8rem;
+
+			::v-deep(.el-popper){
+				background-color: rgba(255,255,255,1);
+				border: 1px solid #ccc;
+				color: #fff;
+				.el-select-dropdown__item{
+					color: #000;
+				}
+				.el-select-dropdown__item.hover{
+					background: #ccc;
+				}
+			}
+			::v-deep(.el-popper__arrow){
+				&::before{
+					background-color: rgba(255,255,255,.6) !important;
+					border: 1px solid #ccc;
+				}
+			}
+			::v-deep(.el-input__wrapper){
+				box-shadow: none;
+				border: 1px solid #ccc;
+				background: #fff !important;
+				height: 1.5rem;
+				color: #fff;
+
+				input{
+					font-size: 0.8rem;
+					color: #000;
+				}
+				.el-icon{
+					color: #000;
+				}
+			}
+		}
 
 		.risk{
 			width: 100%;
diff --git a/src/views/riskWarningSys/warningBigScreen/index.vue b/src/views/riskWarningSys/warningBigScreen/index.vue
index b8cd4d4..d8744f2 100644
--- a/src/views/riskWarningSys/warningBigScreen/index.vue
+++ b/src/views/riskWarningSys/warningBigScreen/index.vue
@@ -50,51 +50,29 @@
                     </div>
                     <div class="chart-box">
                         <span class="train-tip">距上次演练结束 5 天</span>
-                        <training :size="1"></training>
+                        <training class="train-chart" :size="1"></training>
                     </div>
                 </div>
                 <div class="left-bottom">
                     <dv-border-box-13 :backgroundColor="boxBg" :color="boxColor" class="box-bg"></dv-border-box-13>
                     <div class="part-tit">
                         <span>| 隐患等级数量分布</span>
-                        <div>
-                            <el-select class="selector" v-model="month" placeholder="Select" :teleported="false" size="default">
-                                <el-option
-                                        v-for="item in optionList"
-                                        :key="item.value"
-                                        :label="item.label"
-                                        :value="item.value"
-                                />
-                            </el-select>
-<!--                            <img @click="jumpPage(3)" src="../../../assets/warningScreen/small-full.png">-->
-                            <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(3)"/>
-                        </div>
-
+                        <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(3)"/>
                     </div>
                     <div class="chart-box">
-                        <risk :size="1" :month="month"></risk>
+                        <risk :size="1" :theme="screenTheme.isDark"></risk>
                     </div>
                 </div>
             </div>
             <div class="main-middle">
                 <div class="mid-top">
                     <dv-border-box-11 title="SPI数据分析" :backgroundColor="boxBg" :color="boxBigColor" class="box-bg"></dv-border-box-11>
-                    <div class="part-tit" style="position: absolute;top: 12%;padding: 0 4%">
-                        <el-cascader
-                                class="spiSe"
-                                :teleported="false"
-                                v-model="spiValue"
-                                :options="spiOptions"
-                                :props="props"
-                                :show-all-levels="false"
-                                @change="handleChange"
-                        />
-<!--                        <span>SPI数据分析</span>-->
-<!--                        <img @click="jumpPage(4)" src="../../../assets/warningScreen/small-full.png">-->
+                    <div class="part-tit" style="position: absolute;top: 8%;padding: 0 4%">
+                        <div></div>
                         <Switch style="width: 1.2rem;height: 1.2rem;cursor: pointer" @click="jumpPage(4)"/>
                     </div>
-                    <div class="chart-box">
-                        <spi :size="1"></spi>
+                    <div class="chart-box" style="top: 60px;height: calc(100% - 70px)">
+                        <spi :size="1" :theme="screenTheme.isDark"></spi>
                     </div>
                 </div>
                 <div class="mid-bottom">
@@ -191,9 +169,7 @@
         boxBigColor: Array<string>;
         isScreenfull: boolean;
         currentTime: string;
-        month: number;
         spiValue: number;
-        optionList: Array<any>;
         spiOptions: Array<any>
     }
     export default defineComponent({
@@ -224,54 +200,7 @@
                 boxBigColor: [],
                 isScreenfull: false,
                 currentTime: '',
-                month: 0,
                 spiValue: 0,
-                optionList: [
-                    {
-                        label: '年度',
-                        value: 0
-                    },
-                    {
-                        label: '一月',
-                        value: 1
-                    },
-                    {
-                        label: '二月',
-                        value: 2
-                    },
-                    {
-                        label: '三月',
-                        value: 3
-                    },
-                    {
-                        label: '四月',
-                        value: 4
-                    },
-                    {
-                        label: '五月',
-                        value: 5
-                    },
-                    {
-                        label: '六月',
-                        value: 6
-                    },
-                    {
-                        label: '七月',
-                        value: 7
-                    },
-                    {
-                        label: '八月',
-                        value: 8
-                    },
-                    {
-                        label: '九月',
-                        value: 9
-                    },
-                    {
-                        label: '十月',
-                        value: 10
-                    }
-                ],
                 spiOptions: [
                     {
                         value: 0,
@@ -555,94 +484,11 @@
                         justify-content: space-between;
                         align-items: center;
                         z-index: 9999;
-                        div{
-                            width: 40%;
-                            display: flex;
-                            align-items: center;
-                            justify-content: end;
-                        }
+
                         span{
                             font-size: 1.25rem;
                             font-weight: bolder;
                             color: #11feee;
-                        }
-                        ::v-deep(.el-cascader){
-                            width: 25% !important;
-                        }
-                        ::v-deep(.el-popper){
-                            background-color: rgba(10,31,92,1);
-                            border: 1px solid rgba(17,254,238,.4);
-                            color: #11FEEE;
-                            .el-cascader-node__label{
-                                color: #11FEEE;
-                            }
-                            .el-icon{
-                                color: #11FEEE;
-                            }
-                            .el-cascader-node{
-                                &:hover{
-                                    background: #0049af;
-                                }
-                            }
-                        }
-                        ::v-deep(.el-popper__arrow){
-                            &::before{
-                                background-color: rgba(10,31,92,.6) !important;
-                                border: 1px solid rgba(17,254,238,.4);
-                            }
-                        }
-                        ::v-deep(.el-input__wrapper){
-                            width: 20%;
-                            box-shadow: none;
-                            border: 1px solid rgba(17,254,238,.2);
-                            background: rgba(10,31,92,.6) !important;
-                            height: 2.5rem;
-                            color: #11FEEE;
-
-                            input{
-                                font-size: 1.25rem;
-                                color: #11FEEE;
-                            }
-                            .el-icon{
-                                color: #11FEEE;
-                            }
-                        }
-                        .selector{
-                            width: calc(100% - 1.25rem);
-                            margin-right: 0.8rem;
-
-                            ::v-deep(.el-popper){
-                                background-color: rgba(10,31,92,1);
-                                border: 1px solid rgba(17,254,238,.4);
-                                color: #11FEEE;
-                                .el-select-dropdown__item{
-                                    color: #11FEEE;
-                                }
-                                .el-select-dropdown__item.hover{
-                                    background: #0049af;
-                                }
-                            }
-                            ::v-deep(.el-popper__arrow){
-                                &::before{
-                                    background-color: rgba(10,31,92,.6) !important;
-                                    border: 1px solid rgba(17,254,238,.4);
-                                }
-                            }
-                            ::v-deep(.el-input__wrapper){
-                                box-shadow: none;
-                                border: 1px solid rgba(17,254,238,.2);
-                                background: rgba(10,31,92,.6) !important;
-                                height: 1.5rem;
-                                color: #11FEEE;
-
-                                input{
-                                    font-size: 0.8rem;
-                                    color: #11FEEE;
-                                }
-                                .el-icon{
-                                    color: #11FEEE;
-                                }
-                            }
                         }
 
                         img{
@@ -652,24 +498,26 @@
                         }
                     }
                     .chart-box{
+                        position: absolute;
+                        top: 40px;
+                        bottom: 0;
+                        left: 0;
+                        right: 0;
                         width: 100%;
-                        height: calc(100% - 20px);
-                        margin-top: 20px;
+                        height: calc(100% - 50px);
+                        z-index: 99999;
                         .train-tip{
                             display: block;
                             font-size: 0.8rem;
-                            margin-top: 5%;
-                            margin-left: 2%;
+                            margin-top: 2%;
+                            margin-left: 5%;
                             color: #fff;
-                        }
-                        accident{
-                            width: 100%;
-                            height: 100%;
+                            height: 1rem;
                         }
 
-                        training{
+                        .train-chart{
                             width: 100%;
-                            height: 100%;
+                            height: calc(100% - 1rem);
                         }
                     }
                 }
@@ -855,94 +703,10 @@
                         justify-content: space-between;
                         align-items: center;
                         z-index: 9999;
-                        div{
-                            width: 40%;
-                            display: flex;
-                            align-items: center;
-                            justify-content: end;
-                        }
                         span{
                             font-size: 1.25rem;
                             font-weight: bolder;
                             color: #000;
-                        }
-                        ::v-deep(.el-cascader){
-                            width: 25% !important;
-                        }
-                        ::v-deep(.el-popper){
-                            background-color: #fff;
-                            border: 1px solid #ccc;
-                            color: #000;
-                            .el-cascader-node__label{
-                                color: #000;
-                            }
-                            .el-icon{
-                                color: #000;
-                            }
-                            .el-cascader-node{
-                                &:hover{
-                                    background: #ccc;
-                                }
-                            }
-                        }
-                        ::v-deep(.el-popper__arrow){
-                            &::before{
-                                background-color: #fff !important;
-                                border: 1px solid #ccc;
-                            }
-                        }
-                        ::v-deep(.el-input__wrapper){
-                            width: 20%;
-                            box-shadow: none;
-                            border: 1px solid #ccc;
-                            background: #fff !important;
-                            height: 2.5rem;
-                            color: #000;
-
-                            input{
-                                font-size: 1.25rem;
-                                color: #000;
-                            }
-                            .el-icon{
-                                color: #000;
-                            }
-                        }
-                        .selector{
-                            width: calc(100% - 1.25rem);
-                            margin-right: 0.8rem;
-
-                            ::v-deep(.el-popper){
-                                background-color: rgba(255,255,255,1);
-                                border: 1px solid #ccc;
-                                color: #fff;
-                                .el-select-dropdown__item{
-                                    color: #000;
-                                }
-                                .el-select-dropdown__item.hover{
-                                    background: #ccc;
-                                }
-                            }
-                            ::v-deep(.el-popper__arrow){
-                                &::before{
-                                    background-color: rgba(255,255,255,.6) !important;
-                                    border: 1px solid #ccc;
-                                }
-                            }
-                            ::v-deep(.el-input__wrapper){
-                                box-shadow: none;
-                                border: 1px solid #ccc;
-                                background: #fff !important;
-                                height: 1.5rem;
-                                color: #fff;
-
-                                input{
-                                    font-size: 0.8rem;
-                                    color: #000;
-                                }
-                                .el-icon{
-                                    color: #000;
-                                }
-                            }
                         }
 
                         img{
@@ -952,24 +716,26 @@
                         }
                     }
                     .chart-box{
+                        position: absolute;
+                        top: 40px;
+                        bottom: 0;
+                        left: 0;
+                        right: 0;
                         width: 100%;
-                        height: calc(100% - 20px);
-                        margin-top: 20px;
+                        height: calc(100% - 50px);
+                        z-index: 99999;
                         .train-tip{
                             display: block;
                             font-size: 0.8rem;
-                            margin-top: 5%;
-                            margin-left: 2%;
+                            margin-top: 2%;
+                            margin-left: 5%;
                             color: #333;
-                        }
-                        accident{
-                            width: 100%;
-                            height: 100%;
+                            height: 1rem;
                         }
 
-                        training{
+                        .train-chart{
                             width: 100%;
-                            height: 100%;
+                            height: calc(100% - 1rem);
                         }
                     }
                 }
diff --git a/src/views/riskWarningSys/warningBigScreen/indexs/index.vue b/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
index 570d38d..c037e1c 100644
--- a/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
+++ b/src/views/riskWarningSys/warningBigScreen/indexs/index.vue
@@ -9,19 +9,11 @@
     </div>
 
     <div class="tit">
-      <div class="title">{{curChart===1?'事故等级分布':curChart===2?'应急演练次数':curChart===3?'年度隐患等级数量分布':curChart===4?'SPI数据分析':curChart===5?'教育培训分析':curChart===6?'隐患等级':curChart===7?'人员专业度分布':curChart===8?'预警消息报告':curChart===9?'特殊作业实时监控':'风险应急物资储备'}}</div>
+      <div class="title">{{curChart===1?'事故等级分布':curChart===2?'应急演练次数':curChart===3?'隐患等级数量分布':curChart===4?'SPI数据分析':curChart===5?'教育培训分析':curChart===6?'隐患等级':curChart===7?'人员专业度分布':curChart===8?'预警消息报告':curChart===9?'特殊作业实时监控':'风险应急物资储备'}}</div>
     </div>
     <div class="chart-cont">
       <div class="chart">
         <div v-show="curChart===2" class="selector-2">距上次演练结束5天</div>
-        <el-select v-show="curChart===3" class="selector-3" v-model="month" placeholder="Select" size="default">
-          <el-option
-                  v-for="item in optionList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-          />
-        </el-select>
         <accident v-if="curChart===1" :size="2.5"></accident>
         <training v-else-if="curChart===2" :size="2.5"></training>
         <risk v-else-if="curChart===3" :month="month" :size="2.5"></risk>
@@ -91,8 +83,6 @@
   interface stateType {
     isScreenfull: boolean;
     curChart: number | null;
-    month: number;
-    optionList: Array<any>;
     lineColor: Array<string>;
     accidentDesc: Array<any>;
     trainDesc: Object;
@@ -118,54 +108,7 @@
       const state = reactive<stateType>({
         isScreenfull: false,
         curChart: null,
-        month: 0,
         lineColor: ['#11FEEE'],
-        optionList: [
-          {
-            label: '年度',
-            value: 0
-          },
-          {
-            label: '一月',
-            value: 1
-          },
-          {
-            label: '二月',
-            value: 2
-          },
-          {
-            label: '三月',
-            value: 3
-          },
-          {
-            label: '四月',
-            value: 4
-          },
-          {
-            label: '五月',
-            value: 5
-          },
-          {
-            label: '六月',
-            value: 6
-          },
-          {
-            label: '七月',
-            value: 7
-          },
-          {
-            label: '八月',
-            value: 8
-          },
-          {
-            label: '九月',
-            value: 9
-          },
-          {
-            label: '十月',
-            value: 10
-          }
-        ],
         accidentDesc:[
           {
             title: '特别重大事故',
@@ -343,25 +286,6 @@
           font-size: 1.25rem;
           color: #fff;
         }
-        .selector-3{
-          position: absolute;
-          top: 5%;
-          right: 10%;
-          width: 20%;
-
-          ::v-deep(.el-input__wrapper){
-            background: none !important;
-            box-shadow: none;
-            color: #11FEEE;
-
-            input{
-              color: #11FEEE;
-            }
-            .el-icon{
-              color: #11FEEE;
-            }
-          }
-        }
         .main-chart{
           width: 100%;
           height: 100%;
@@ -482,25 +406,6 @@
           width: 20%;
           font-size: 1.25rem;
           color: #fff;
-        }
-        .selector-3{
-          position: absolute;
-          top: 5%;
-          right: 10%;
-          width: 20%;
-
-          ::v-deep(.el-input__wrapper){
-            background: none !important;
-            box-shadow: none;
-            color: #11FEEE;
-
-            input{
-              color: #11FEEE;
-            }
-            .el-icon{
-              color: #11FEEE;
-            }
-          }
         }
         .main-chart{
           width: 100%;
diff --git a/src/views/riskWarningSys/warningBigScreen/indexs/msgDetail.vue b/src/views/riskWarningSys/warningBigScreen/indexs/msgDetail.vue
index 96018d9..c30b03e 100644
--- a/src/views/riskWarningSys/warningBigScreen/indexs/msgDetail.vue
+++ b/src/views/riskWarningSys/warningBigScreen/indexs/msgDetail.vue
@@ -9,7 +9,7 @@
     </div>
     <dv-decoration7 :color="lineColor" style="width:100%;height:6%;margin-bottom: 20px">
       <div class="msgTit">
-        Decoration
+        {{title}}
       </div>
     </dv-decoration7>
     <dv-border-box1 :color="lineColor" style="width: 100%;height: calc(100% - 20px)">
@@ -33,7 +33,8 @@
 
   // 定义接口来定义对象的类型
   interface stateType {
-
+    lineColor: Array<string>,
+    title: string | null
   }
   export default defineComponent({
     name: 'msgDetail',
@@ -46,13 +47,14 @@
       const route = useRoute();
       const state = reactive<stateType>({
         lineColor: ['#11FEEE'],
+        title: ''
       });
 
       // 页面载入时执行方法
       onMounted(() => {
-        // if (route.query.row) {
-        //   state.row = route.query.num
-        // }
+        if (route.query.row) {
+          state.title = route.query.row[1]
+        }
         getTheme()
       });
 
diff --git a/src/views/specialWorkSystem/workAlert/alertRecord/index.vue b/src/views/specialWorkSystem/workAlert/alertRecord/index.vue
index 7ce10ae..f9059d6 100644
--- a/src/views/specialWorkSystem/workAlert/alertRecord/index.vue
+++ b/src/views/specialWorkSystem/workAlert/alertRecord/index.vue
@@ -24,7 +24,7 @@
 				<el-col :span="6" style="display:flex;align-items: center">
 					<span style="white-space: nowrap">预警类型:</span>
 					<div class="grid-content topInfo">
-						<el-select v-model="searchAlert" placeholder="请选择预警类型">
+						<el-select v-model="warningType" placeholder="请选择预警类型">
 							<el-option
 									v-for="item in alertTypeList"
 									:key="item.id"
@@ -43,7 +43,7 @@
 <!--						<el-col :span="12" class="mainCardBtn">-->
 <!--							<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>-->
 <!--						</el-col>-->
-<!--						<el-button type="primary" :icon="Refresh" size="default"/>-->
+<!--						<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>-->
 <!--					</el-row>-->
 					<el-table
 							ref="multipleTableRef"
@@ -52,14 +52,14 @@
 							height="calc(100% - 48px)"
 							:header-cell-style="{background: '#fafafa'}"
 					>
-						<el-table-column type="index" label="序号" width="200"/>
-						<el-table-column property="id" label="作业证编号" width="200"/>
-						<el-table-column property="workType" label="作业类型" width="200"/>
-						<el-table-column property="alertInfo" label="预警信息"/>
-						<el-table-column property="alertType" label="预警类型"/>
-						<el-table-column property="desc" label="描述" width="200"/>
-						<el-table-column property="name" label="上报人"/>
-						<el-table-column property="updateTime" label="上报时间"/>
+						<el-table-column type="index" label="序号" width="80"/>
+						<el-table-column property="workPermitNo" label="作业证编号"/>
+						<el-table-column property="workTypeDesc" label="作业类型"/>
+						<el-table-column property="warningContent" show-overflow-tooltip label="预警信息"/>
+						<el-table-column property="warningTypeDesc" label="预警类型"/>
+						<el-table-column property="warningInfo" show-overflow-tooltip label="描述" width="200"/>
+						<el-table-column property="operatorUname" label="上报人"/>
+						<el-table-column property="operationTime" label="上报时间" width="180"/>
 						<el-table-column fixed="right" label="操作" align="center" width="250">
 							<template #default="scope">
 								<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
@@ -74,7 +74,7 @@
 								small=false
 								background
 								layout="total, sizes, prev, pager, next, jumper"
-								:total="100"
+								:total="totalSize"
 								@size-change="handleSizeChange"
 								@current-change="handleCurrentChange"
 						/>
@@ -85,25 +85,28 @@
 		<el-dialog v-model="dialogDetails" title="作业预警记录">
 			<el-form :model="details" label-width="120px">
 				<el-form-item label="作业证编号">
-					<el-input v-model="details.id" readonly/>
+					<el-input v-model="details.workPermitNo" readonly/>
 				</el-form-item>
 				<el-form-item label="作业类型">
-					<el-input v-model="details.workType" readonly/>
+					<el-input v-model="details.workTypeDesc" readonly/>
 				</el-form-item>
 				<el-form-item label="预警信息">
-					<el-input v-model="details.alertInfo" readonly/>
+					<el-input v-model="details.warningContent" readonly/>
 				</el-form-item>
 				<el-form-item label="预警类型">
-					<el-input v-model="details.alertType" readonly/>
+					<el-input v-model="details.warningTypeDesc" readonly/>
+				</el-form-item>
+				<el-form-item label="图片" v-if="details.imagePaths && details.imagePaths.length>0">
+					<el-image v-for="item in details.imagePaths" :preview-src-list="details.imagePaths" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 				</el-form-item>
 				<el-form-item label="描述">
-					<el-input v-model="details.desc" type="textarea" readonly/>
+					<el-input v-model="details.warningInfo" type="textarea" readonly/>
 				</el-form-item>
 				<el-form-item label="上报人">
-					<el-input v-model="details.name" readonly/>
+					<el-input v-model="details.operatorUname" readonly/>
 				</el-form-item>
 				<el-form-item label="上报时间">
-					<el-input v-model="details.updateTime" readonly/>
+					<el-input v-model="details.operationTime" readonly/>
 				</el-form-item>
 				<el-form-item>
 					<el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
@@ -122,7 +125,7 @@
 	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
 	import { ElTable } from 'element-plus';
 	import { FormInstance, FormRules, ElMessage } from 'element-plus';
-	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
+	import { workProcessApi } from '/@/api/specialWorkSystem/workProcess';
 
 	// 定义接口来定义对象的类型
 	interface stateType {
@@ -130,7 +133,6 @@
 		departmentList: Array<any>;
 		department:string;
 		workerList: Array<string>;
-		casProps: {};
 		multipleSelection: Array<any>;
 		deleteArr: Array<any>;
 		dialogDetails: boolean;
@@ -142,12 +144,9 @@
 		chosenIndex: null | number;
 		deleteId: null | number;
 		searchWord: string;
-		searchType: number | null;
-		searchAlert: number | null;
+		searchType: string;
+		warningType: string;
 		totalSize: number;
-		addRecord: {
-
-		};
 		details: {
 
 		};
@@ -168,94 +167,47 @@
 				totalSize: 0,
 				chosenIndex: null,
 				searchWord: '',
-				searchType: null,
-				searchAlert: null,
-				tableData: [
-					{
-						id: 'GTXH-0000001',
-						workType: '动火作业',
-						alertInfo: '可燃气检查超标',
-						alertType: '气体分析',
-						desc: 'A车间动火作业过程检查',
-						name: '李羽飞',
-						updateTime: '2022-08-31 12:00:00'
-					},
-					{
-						id: 'GTXH-0000002',
-						workType: '动火作业',
-						alertInfo: '作业现场检查异常',
-						alertType: '作业检查',
-						desc: 'B车间动火作业过程气体检查',
-						name: '李羽飞',
-						updateTime: '2022-08-31 16:31:44'
-					},
-					{
-						id: 'GTXH-0000003',
-						workType: '动火作业',
-						alertInfo: '可燃气检查超标',
-						alertType: '气体分析',
-						desc: '',
-						name: '李羽飞',
-						updateTime: '2022-08-31 17:05:20'
-					}
-				],
+				searchType: '',
+				warningType: '',
+				tableData: [],
 				departmentList: [],
 				department: '',
 				workerList: [],
-				casProps: {
-					expandTrigger: 'hover',
-					emitPath: false,
-					value: 'depId',
-					label: 'depName'
-				},
 				multipleSelection: [],
 				dialogDetails: false,
 				dialogAddRecord: false,
 				deleteDialog: false,
 				deleteSetDialog: false,
-				addRecord: {
-
-				},
-				details: {
-
-				},
+				details: {},
 				deleteId: null,
 				deleteArr: [],
 				workTypeList: [
-					{ id: 1, name: '动火作业' },
-					{ id: 2, name: '受限空间作业' },
-					{ id: 3, name: '吊装作业' },
-					{ id: 4, name: '动土作业' },
-					{ id: 5, name: '断路作业' },
-					{ id: 6, name: '高处作业' },
-					{ id: 7, name: '临时用电作业' },
-					{ id: 8, name: '盲板抽堵作业' }
+					{ id: '1', name: '动火作业' },
+					{ id: '2', name: '受限空间作业' },
+					{ id: '3', name: '吊装作业' },
+					{ id: '4', name: '动土作业' },
+					{ id: '5', name: '断路作业' },
+					{ id: '6', name: '高处作业' },
+					{ id: '7', name: '临时用电作业' },
+					{ id: '8', name: '盲板抽堵作业' }
 				],
 				alertTypeList: [
-					{ id: 1, name: '气体分析' },
-					{ id: 2, name: '作业检查' }
+					{ id: '1', name: '检查' },
+					{ id: '2', name: '检测' }
 				]
 			});
 
 			// 页面载入时执行方法
 			onMounted(() => {
-				// getListByPage();
-				// getAllDepartment();
+				getListByPage();
 			});
 
 			// 分页获取班组管理列表
 			const getListByPage = async () => {
-				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { groupName: state.searchWord, containGroupMemberEnable: true } };
-				let res = await teamManageApi().getRecordPage(data);
+				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.searchType, workPermitNo: state.searchWord,warningType: state.warningType } };
+				let res = await workProcessApi().postAlertList(data);
 				if (res.data.code === '200') {
-					state.tableData = res.data.data.map((item) => {
-						if (!item.groupMembers || item.groupMembers == null) {
-							item.groupMembers = [];
-						} else {
-							item.groupMembers = Array.from(item.groupMembers, ({ username }) => username);
-						}
-						return item;
-					});
+					state.tableData = JSON.parse(JSON.stringify(res.data.data))
 					state.totalSize = res.data.total;
 				} else {
 					ElMessage({
@@ -265,36 +217,9 @@
 				}
 			};
 
-			// 获取部门列表
-			const getAllDepartment = async () => {
-				let res = await teamManageApi().getAllDepartment();
-				if (res.data.code === '200') {
-					state.departmentList = res.data.data;
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
-			};
-
-			const handleChange = async (value) => {
-				state.addRecord.depId = value;
-				console.log(state.addRecord.department, 'de');
-				let res = await teamManageApi().getAllMember(value);
-				if (res.data.code === '200') {
-					state.workerList = res.data.data;
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
-			};
-
 			// 关键词查询记录
-			const searchRecord = async () => {
-				if (state.searchWord == '') {
+			const searchRecord = () => {
+				if (state.searchWord == ''&& state.searchType == ''&& state.warningType == '') {
 					ElMessage({
 						type: 'warning',
 						message: '请输入查询关键词'
@@ -304,9 +229,11 @@
 				}
 			};
 
-			const clearSearch = async () => {
-				state.searchWord = '';
-				getListByPage();
+			const clearSearch = () => {
+				state.searchWord = ''
+				state.searchType = ''
+				state.warningType = ''
+				getListByPage()
 			};
 
 			const handleSizeChange = (val: number) => {
@@ -343,7 +270,6 @@
 				Delete,
 				Refresh,
 				Plus,
-				handleChange,
 				searchRecord,
 				clearSearch,
 				viewRecord,
diff --git a/src/views/specialWorkSystem/workPlan/reserveSum/index.vue b/src/views/specialWorkSystem/workPlan/reserveSum/index.vue
new file mode 100644
index 0000000..09fcc2d
--- /dev/null
+++ b/src/views/specialWorkSystem/workPlan/reserveSum/index.vue
@@ -0,0 +1,415 @@
+<template>
+	<div class="home-container">
+		<div style="height: 100%">
+			<el-row class="homeCard">
+				<el-col :span="8" style="display:flex;align-items: center">
+					<span style="white-space: nowrap">选择时间段:</span>
+					<div class="grid-content topInfo">
+						<el-date-picker
+								v-model="searchDates"
+								type="daterange"
+								unlink-panels
+								range-separator="至"
+								start-placeholder="开始日期"
+								end-placeholder="结束日期"
+								value-format="YYYY-MM-DD"
+								:shortcuts="shortcuts"
+						/>
+					</div>
+				</el-col>
+				<el-button style="margin-left: 20px" type="primary" @click="searchRecord">查询</el-button>
+				<el-button plain @click="clearSearch">重置</el-button>
+			</el-row>
+			<div class="homeCard">
+				<div :id="chartName" style="width: 100%;height: 100%"></div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script lang="ts">
+	import {toRefs, reactive, ref, onMounted, defineAsyncComponent, nextTick} from 'vue';
+	import { storeToRefs } from 'pinia';
+	import { initBackEndControlRoutes } from '/@/router/backEnd';
+	import { useUserInfo } from '/@/stores/userInfo';
+	import { Session } from '/@/utils/storage';
+	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+	import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
+	import { workAppointApi } from '/@/api/specialWorkSystem/workPlan/workAppoint';
+	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
+	import * as echarts from "echarts";
+
+	// 定义接口来定义对象的类型
+	interface stateType {
+		tableData: [],
+		departmentList: [],
+		hotCount: [],
+		confinedSpaceCount: [],
+		liftingCount: [],
+		groundBreakingCount: [],
+		openCircuitCout: [],
+		heightCount: [],
+		temporaryPowerCount: [],
+		blindPlatePluggingCount: [],
+		searchDates: Array<any>,
+		startTime: String,
+		endTime: String
+	}
+
+	export default {
+		name: 'workReservation',
+		components: {},
+		setup() {
+			const userInfo = useUserInfo();
+			const { userInfos } = storeToRefs(userInfo);
+			const state = reactive<stateType>({
+				tableData: [],
+				departmentList: [],
+				hotCount: [],
+				confinedSpaceCount: [],
+				liftingCount: [],
+				groundBreakingCount: [],
+				openCircuitCout: [],
+				heightCount: [],
+				temporaryPowerCount: [],
+				blindPlatePluggingCount: [],
+				searchDates: '',
+				startTime: '',
+				endTime: ''
+			});
+			const chartName = ref("eChart" + Date.now() + Math.random())
+			const shortcuts = [
+				{
+					text: '上周',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
+						return [start, end]
+					},
+				},
+				{
+					text: '上个月',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
+						return [start, end]
+					},
+				},
+				{
+					text: '上个季度',
+					value: () => {
+						const end = new Date()
+						const start = new Date()
+						start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
+						return [start, end]
+					},
+				},
+			]
+
+			// 页面载入时执行方法
+			onMounted(() => {
+				getListByPage()
+				// getAllDepartment()
+			});
+
+			// 获取列表
+			const getListByPage = async () => {
+				console.log(state.searchDates)
+				const data = { startTime: state.searchDates[0], endTime: state.searchDates[1] };
+				let res = await workAppointApi().getAllRecords(data);
+				if (res.data.code === '200') {
+					if(JSON.parse(JSON.stringify(res.data.data)).length>0){
+						state.tableData = JSON.parse(JSON.stringify(res.data.data))
+						state.departmentList = Array.from(state.tableData, ({ applyDepName }) => applyDepName);
+						state.hotCount = Array.from(state.tableData, ({ hotCount }) => hotCount);
+						state.confinedSpaceCount = Array.from(state.tableData, ({ confinedSpaceCount }) => confinedSpaceCount);
+						state.liftingCount = Array.from(state.tableData, ({ liftingCount }) => liftingCount);
+						state.groundBreakingCount = Array.from(state.tableData, ({ groundBreakingCount }) => groundBreakingCount);
+						state.openCircuitCout = Array.from(state.tableData, ({ openCircuitCout }) => openCircuitCout);
+						state.heightCount = Array.from(state.tableData, ({ heightCount }) => heightCount);
+						state.temporaryPowerCount = Array.from(state.tableData, ({ temporaryPowerCount }) => temporaryPowerCount);
+						state.blindPlatePluggingCount = Array.from(state.tableData, ({ blindPlatePluggingCount }) => blindPlatePluggingCount);
+						initCharts()
+					}else{
+						ElMessage({
+							type: 'warning',
+							message: '该时段暂无数据'
+						});
+					}
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			const initCharts =()=>{
+				let dom = document.getElementById(chartName.value);
+				let myChart = echarts.init(dom);
+
+				type EChartsOption = echarts.EChartsOption
+				let option: EChartsOption;
+
+				option = {
+					tooltip: {
+						trigger: 'axis',
+						axisPointer: {
+							type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+						}
+					},
+					legend: {},
+					grid: {
+						left: '3%',
+						right: '3%',
+						bottom: '3%',
+						containLabel: true
+					},
+					xAxis: {
+						type: 'value'
+					},
+					yAxis: {
+						type: 'category',
+						data: state.departmentList
+					},
+					series: [
+						{
+							name: '动火作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.hotCount
+						},
+						{
+							name: '受限空间作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.confinedSpaceCount
+						},
+						{
+							name: '吊装作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.liftingCount
+						},
+						{
+							name: '动土作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.groundBreakingCount
+						},
+						{
+							name: '断路作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.openCircuitCout
+						},
+						{
+							name: '高处作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.heightCount
+						},
+						{
+							name: '临时用电作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.temporaryPowerCount
+						},
+						{
+							name: '盲板抽堵作业',
+							type: 'bar',
+							stack: 'total',
+							label: {
+								show: true
+							},
+							emphasis: {
+								focus: 'series'
+							},
+							data: state.blindPlatePluggingCount
+						}
+					]
+				};
+
+				option && myChart.setOption(option);
+
+				window.addEventListener("resize",function (){
+					myChart.resize();
+				});
+			}
+
+			// 关键词查询记录
+			const searchRecord = async () => {
+				if (state.searchDates == []) {
+					ElMessage({
+						type: 'warning',
+						message: '请选择时间段'
+					});
+				} else {
+					getListByPage();
+				}
+			};
+
+			const clearSearch = async () => {
+				state.searchDates = [];
+				getListByPage();
+			};
+
+			// 刷新
+			const reLoadData = async () => {
+				getListByPage();
+			};
+
+			// 折线图
+			const renderMenu = async (value: string) => {
+				Session.set('projectId', value);
+				userInfos.value.projectId = value;
+				await initBackEndControlRoutes();
+			};
+			return {
+				View,
+				Edit,
+				Delete,
+				Refresh,
+				Plus,
+				Search,
+				shortcuts,
+				chartName,
+				searchRecord,
+				clearSearch,
+				getListByPage,
+				reLoadData,
+				...toRefs(state)
+			};
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	$homeNavLengh: 8;
+	.red{
+		color: red;
+	}
+	.home-container {
+		height: calc(100vh - 144px);
+		box-sizing: border-box;
+		overflow: hidden;
+		.homeCard {
+			width: 100%;
+			padding: 20px;
+			box-sizing: border-box;
+			background: #fff;
+			border-radius: 4px;
+
+			.main-card {
+				width: 100%;
+				height: 100%;
+				.cardTop {
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					margin-bottom: 20px;
+					.mainCardBtn {
+						margin: 0;
+					}
+				}
+				.pageBtn {
+					height: 60px;
+					display: flex;
+					align-items: center;
+					justify-content: right;
+
+					.demo-pagination-block + .demo-pagination-block {
+						margin-top: 10px;
+					}
+					.demo-pagination-block .demonstration {
+						margin-bottom: 16px;
+					}
+				}
+			}
+			&:last-of-type {
+				height: calc(100% - 100px);
+			}
+		}
+		.el-row {
+			display: flex;
+			align-items: center;
+			margin-bottom: 20px;
+			&:last-child {
+				margin-bottom: 0;
+			}
+			.grid-content {
+				align-items: center;
+				min-height: 36px;
+			}
+
+			.topInfo {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				font-size: 16px;
+				font-weight: bold;
+
+				& > div {
+					white-space: nowrap;
+					margin-right: 20px;
+				}
+			}
+		}
+	}
+	.el-input{
+		width: 100% !important;
+	}
+	::v-deep(.el-date-editor){
+		width: 100%;
+	}
+	.el-select{
+		width: 100%;
+	}
+	:deep(.el-cascader){
+		width: 100% !important;
+	}
+</style>
diff --git a/src/views/specialWorkSystem/workPlan/workAppoint/index.vue b/src/views/specialWorkSystem/workPlan/workAppoint/index.vue
new file mode 100644
index 0000000..6430e3a
--- /dev/null
+++ b/src/views/specialWorkSystem/workPlan/workAppoint/index.vue
@@ -0,0 +1,616 @@
+<template>
+	<div class="home-container">
+		<div style="height: 100%">
+			<el-row class="homeCard">
+				<el-col :span="6" style="display:flex;align-items: center">
+					<span style="white-space: nowrap">申请部门:</span>
+					<div class="grid-content topInfo">
+						<el-cascader v-model="searchDep" :options="departmentList" :props="casProps" :show-all-levels="false"/>
+					</div>
+				</el-col>
+				<el-col :span="6" style="display:flex;align-items: center;">
+					<span style="white-space: nowrap;margin-left: 20px">预约日期:</span>
+					<div class="grid-content topInfo">
+						<el-date-picker
+								v-model="searchDate"
+								type="date"
+								format="YYYY-MM-DD" value-format="YYYY-MM-DD"
+						/>
+					</div>
+				</el-col>
+				<el-button style="margin-left: 20px" type="primary" @click="searchRecord">查询</el-button>
+				<el-button plain @click="clearSearch">重置</el-button>
+			</el-row>
+			<div class="homeCard">
+				<div class="main-card">
+<!--					<el-row class="cardTop">-->
+<!--						<el-col :span="12" class="mainCardBtn">-->
+<!--							<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>-->
+<!--						</el-col>-->
+<!--						<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>-->
+<!--					</el-row>-->
+					<el-table
+							:data="tableData"
+							style="width: 100%"
+							height="calc(100% - 48px)"
+							:header-cell-style="{background: '#fafafa'}"
+					>
+<!--						<el-table-column type="selection" width="55" />-->
+						<el-table-column type="index" label="序号" width="80" />
+						<el-table-column prop="applyDepName" align="center" label="申请部门"/>
+						<el-table-column prop="appointmentTime" align="center" label="预约时间"/>
+						<el-table-column prop="hotWork" align="center" label="动火作业"/>
+						<el-table-column prop="confinedSpaceOper" align="center" label="受限空间作业"/>
+						<el-table-column prop="liftingOper" align="center" label="吊装作业"/>
+						<el-table-column prop="groundBreakingOper" align="center" label="动土作业"/>
+						<el-table-column prop="openCircuitOper" align="center" label="断路作业"/>
+						<el-table-column prop="workAtHeight" align="center" label="高处作业" />
+						<el-table-column prop="temporaryPowerOper" align="center" label="临时用电作业"/>
+						<el-table-column prop="blindPlatePluggingOper" align="center" label="盲板抽堵作业"/>
+<!--						<el-table-column fixed="right" label="操作" align="center" width="250">-->
+<!--							<template #default="scope">-->
+<!--								<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>-->
+<!--								<el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index, scope.row)">修改</el-button>-->
+<!--								<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>-->
+<!--							</template>-->
+<!--						</el-table-column>-->
+					</el-table>
+					<div class="pageBtn">
+						<el-pagination
+								v-model:currentPage="currentPage"
+								v-model:page-size="pageSize"
+								:page-sizes="[10, 15]"
+								small=false
+								background
+								layout="total, sizes, prev, pager, next, jumper"
+								:total="totalSize"
+								@size-change="handleSizeChange"
+								@current-change="handleCurrentChange"
+						/>
+					</div>
+				</div>
+			</div>
+		</div>
+		<el-dialog v-model="dialogDetails" title="作业预约">
+			<el-form :model="details" label-width="120px">
+				<el-form-item label="申请部门">
+					<el-input
+							v-model="details.applyDepName"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="预约时间">
+					<el-input
+							v-model="details.appointmentTime"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="动火作业">
+					<el-input
+							v-model="details.hotWork"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="受限空间作业">
+					<el-input
+							v-model="details.confinedSpaceOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="吊装作业">
+					<el-input
+							v-model="details.liftingOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="动土作业">
+					<el-input
+							v-model="details.groundBreakingOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="断路作业">
+					<el-input
+							v-model="details.openCircuitOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="高处作业">
+					<el-input
+							v-model="details.workAtHeight"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="临时用电作业">
+					<el-input
+							v-model="details.temporaryPowerOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="盲板抽堵作业">
+					<el-input
+							v-model="details.blindPlatePluggingOper"
+							readonly
+					/>
+				</el-form-item>
+			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="primary" @click="dialogDetails = false">确认</el-button>
+			  </span>
+			</template>
+		</el-dialog>
+		<el-dialog v-model="dialogAddRecord" title="作业预约编辑" @close="closeAdd">
+			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
+				<el-form-item label="申请部门" prop="applyDepId">
+					<el-cascader :disabled = isDisabled v-model="addRecord.applyDepId" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+				</el-form-item>
+				<el-form-item label="预约时间" prop="appointmentTime">
+					<el-date-picker
+							v-model="addRecord.appointmentTime"
+							type="date"
+							format="YYYY-MM-DD" value-format="YYYY-MM-DD"
+							:disabled = isDisabled
+					/>
+				</el-form-item>
+				<el-form-item label="动火作业" prop="hotWork">
+					<el-input
+							v-model="addRecord.hotWork"
+					/>
+				</el-form-item>
+				<el-form-item label="受限空间作业" prop="confinedSpaceOper">
+					<el-input
+							v-model="addRecord.confinedSpaceOper"
+					/>
+				</el-form-item>
+				<el-form-item label="吊装作业" prop="liftingOper">
+					<el-input
+							v-model="addRecord.liftingOper"
+					/>
+				</el-form-item>
+				<el-form-item label="动土作业" prop="groundBreakingOper">
+					<el-input
+							v-model="addRecord.groundBreakingOper"
+					/>
+				</el-form-item>
+				<el-form-item label="断路作业" prop="openCircuitOper">
+					<el-input
+							v-model="addRecord.openCircuitOper"
+					/>
+				</el-form-item>
+				<el-form-item label="高处作业" prop="workAtHeight">
+					<el-input
+							v-model="addRecord.workAtHeight"
+					/>
+				</el-form-item>
+				<el-form-item label="临时用电作业" prop="temporaryPowerOper">
+					<el-input
+							v-model="addRecord.temporaryPowerOper"
+					/>
+				</el-form-item>
+				<el-form-item label="盲板抽堵作业" prop="blindPlatePluggingOper">
+					<el-input
+							v-model="addRecord.blindPlatePluggingOper"
+					/>
+				</el-form-item>
+			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
+				<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+			  </span>
+			</template>
+		</el-dialog>
+		<el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
+			<span>您确定要删除该条记录吗?</span>
+			<template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="deleteDialog = false" size="default">取消</el-button>
+                    <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
+                </span>
+			</template>
+		</el-dialog>
+	</div>
+</template>
+
+<script lang="ts">
+	import {toRefs, reactive, ref, onMounted, defineAsyncComponent} from 'vue';
+	import { storeToRefs } from 'pinia';
+	import { initBackEndControlRoutes } from '/@/router/backEnd';
+	import { useUserInfo } from '/@/stores/userInfo';
+	import { Session } from '/@/utils/storage';
+	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+	import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
+	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+	import { workAppointApi } from '/@/api/specialWorkSystem/workPlan/workAppoint';
+	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
+
+	// 定义接口来定义对象的类型
+	interface stateType {
+		tableData: Array<any>;
+		departmentList: Array<any>;
+		casProps: {};
+		multipleSelection: Array<any>;
+		deleteArr: Array<any>;
+		dialogDetails: boolean;
+		dialogAddRecord: boolean;
+		deleteDialog: boolean;
+		deleteSetDialog: boolean;
+		pageIndex: number;
+		pageSize: number;
+		chosenIndex: null | number;
+		deleteId: null | number;
+		searchDep: number | null;
+		searchDate: string;
+		isDisabled:boolean;
+		totalSize: number;
+		addRecord: {
+
+		};
+		details: {
+
+		};
+		workTypeList: Array<any>
+	}
+
+	export default {
+		name: 'workReservation',
+		components: {},
+		setup() {
+			const userInfo = useUserInfo();
+			const { userInfos } = storeToRefs(userInfo);
+			const state = reactive<stateType>({
+				pageIndex: 1,
+				pageSize: 10,
+				totalSize: 0,
+				chosenIndex: null,
+				searchDep: null,
+				searchDate: '',
+				isDisabled: false,
+				tableData: [],
+				departmentList: [],
+				casProps: {
+					expandTrigger: 'hover',
+					emitPath: false,
+					value: 'depId',
+					label: 'depName',
+					checkStrictly: true
+				},
+				multipleSelection: [],
+				dialogDetails: false,
+				dialogAddRecord: false,
+				deleteDialog: false,
+				deleteSetDialog: false,
+				addRecord: {},
+				details: {},
+				deleteId: null,
+				deleteArr: [],
+				workTypeList: [
+					{ id: 1, name: '动火作业' },
+					{ id: 2, name: '受限空间作业' },
+					{ id: 3, name: '吊装作业' },
+					{ id: 4, name: '动土作业' },
+					{ id: 5, name: '断路作业' },
+					{ id: 6, name: '高处作业' },
+					{ id: 7, name: '临时用电作业' },
+					{ id: 8, name: '盲板抽堵作业' }
+				]
+			});
+
+			const addRef = ref<FormInstance>();
+			const addRules = reactive<FormRules>({
+				applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				appointmentTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				hotWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				groundBreakingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				blindPlatePluggingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				temporaryPowerOper	: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				workAtHeight: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				openCircuitOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				liftingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				confinedSpaceOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+			});
+
+			// 页面载入时执行方法
+			onMounted(() => {
+				getListByPage()
+				getAllDepartment()
+			});
+
+			// 获取部门列表
+			const getAllDepartment = async () => {
+				let res = await teamManageApi().getAllDepartment();
+				if (res.data.code === '200') {
+					state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 分页获取气体检测列表
+			const getListByPage = async () => {
+				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { applyDepId: state.searchDep, appointmentTime: state.searchDate } };
+				let res = await workAppointApi().getAppointListPage(data);
+				if (res.data.code === '200') {
+					state.tableData = JSON.parse(JSON.stringify(res.data.data))
+					state.totalSize = res.data.total;
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 关键词查询记录
+			const searchRecord = async () => {
+				if (state.searchDep == null && state.searchDate == '') {
+					ElMessage({
+						type: 'warning',
+						message: '请输入查询关键词'
+					});
+				} else {
+					getListByPage();
+				}
+			};
+
+			const clearSearch = async () => {
+				state.searchDep = null;
+				state.searchDate = '';
+				getListByPage();
+			};
+
+			// 添加记录方法
+			const addRecord = async (data: any) => {
+				let res = await workAppointApi().addRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 修改记录方法
+			const editRecord = async (data: any) => {
+				let res = await workAppointApi().editRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 点击修改
+			const editRecordBtn = (index, row) => {
+				state.dialogAddRecord = true;
+				state.chosenIndex = index;
+				state.addRecord = JSON.parse(JSON.stringify(row));
+				state.isDisabled = true
+			};
+
+			// 新增修改记录
+			const confirmAddRecord = async (formEl: FormInstance | undefined) => {
+				if (!formEl) return;
+				await formEl.validate(async (valid, fields) => {
+					if (valid) {
+						const data = {
+							applyDepId: state.addRecord.applyDepId,
+							appointmentTime: state.addRecord.appointmentTime,
+							hotWork: Number(state.addRecord.hotWork),
+							groundBreakingOper: Number(state.addRecord.groundBreakingOper),
+							blindPlatePluggingOper: Number(state.addRecord.blindPlatePluggingOper),
+							temporaryPowerOper: Number(state.addRecord.temporaryPowerOper),
+							workAtHeight: Number(state.addRecord.workAtHeight),
+							openCircuitOper: Number(state.addRecord.openCircuitOper),
+							liftingOper: Number(state.addRecord.liftingOper),
+							confinedSpaceOper: Number(state.addRecord.confinedSpaceOper),
+						};
+						if (state.chosenIndex == null) {
+							await addRecord(data);
+						} else {
+							data.id = state.addRecord.id
+							await editRecord(data);
+						}
+						state.dialogAddRecord = false;
+						getListByPage();
+					} else {
+						console.log('error submit!', fields);
+					}
+				});
+			};
+
+			const handleSizeChange = (val: number) => {
+				state.pageSize = val;
+				getListByPage();
+			};
+			const handleCurrentChange = (val: number) => {
+				state.pageIndex = val;
+				getListByPage();
+			};
+
+			// 查看记录
+			const viewRecord = (row) => {
+				state.details = JSON.parse(JSON.stringify(row));
+				state.dialogDetails = true;
+			};
+
+			// 刷新
+			const reLoadData = async () => {
+				getListByPage();
+			};
+
+
+			// 删除方法
+			const deleteRecord = async (data: any) => {
+				let res = await workAppointApi().deleteRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			const deleteRecordBtn = (row) => {
+				state.deleteId = row.id;
+				state.deleteDialog = true;
+			};
+
+			const conFirmDelete = () => {
+				deleteRecord({ id: state.deleteId });
+				state.deleteDialog = false;
+			};
+
+
+			const closeAdd = () => {
+				state.addRecord = {};
+				state.chosenIndex = null;
+				state.isDisabled = false
+			};
+
+			const indexClear = () => {
+				state.deleteId = null;
+			};
+
+			// 折线图
+			const renderMenu = async (value: string) => {
+				Session.set('projectId', value);
+				userInfos.value.projectId = value;
+				await initBackEndControlRoutes();
+			};
+			return {
+				addRef,
+				addRules,
+				View,
+				Edit,
+				Delete,
+				Refresh,
+				Plus,
+				Search,
+				searchRecord,
+				clearSearch,
+				viewRecord,
+				editRecordBtn,
+				deleteRecordBtn,
+				conFirmDelete,
+				getListByPage,
+				reLoadData,
+				handleSizeChange,
+				handleCurrentChange,
+				confirmAddRecord,
+				closeAdd,
+				indexClear,
+				...toRefs(state)
+			};
+		}
+	};
+</script>
+
+<style scoped lang="scss">
+	$homeNavLengh: 8;
+	.red{
+		color: red;
+	}
+	.home-container {
+		height: calc(100vh - 144px);
+		box-sizing: border-box;
+		overflow: hidden;
+		.homeCard {
+			width: 100%;
+			padding: 20px;
+			box-sizing: border-box;
+			background: #fff;
+			border-radius: 4px;
+
+			.main-card {
+				width: 100%;
+				height: 100%;
+				.cardTop {
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					margin-bottom: 20px;
+					.mainCardBtn {
+						margin: 0;
+					}
+				}
+				.pageBtn {
+					height: 60px;
+					display: flex;
+					align-items: center;
+					justify-content: right;
+
+					.demo-pagination-block + .demo-pagination-block {
+						margin-top: 10px;
+					}
+					.demo-pagination-block .demonstration {
+						margin-bottom: 16px;
+					}
+				}
+			}
+			&:last-of-type {
+				height: calc(100% - 100px);
+			}
+		}
+		.el-row {
+			display: flex;
+			align-items: center;
+			margin-bottom: 20px;
+			&:last-child {
+				margin-bottom: 0;
+			}
+			.grid-content {
+				align-items: center;
+				min-height: 36px;
+			}
+
+			.topInfo {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				font-size: 16px;
+				font-weight: bold;
+
+				& > div {
+					white-space: nowrap;
+					margin-right: 20px;
+				}
+			}
+		}
+	}
+	.el-input{
+		width: 100% !important;
+	}
+	::v-deep(.el-date-editor){
+		width: 100%;
+	}
+	.el-select{
+		width: 100%;
+	}
+	:deep(.el-cascader){
+		width: 100% !important;
+	}
+</style>
diff --git a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue b/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
deleted file mode 100644
index b9f54fa..0000000
--- a/src/views/specialWorkSystem/workPlan/workAppointSummary/index.vue
+++ /dev/null
@@ -1,672 +0,0 @@
-<template>
-	<div class="home-container">
-		<el-scrollbar height="100%">
-		<el-row class="homeCard">
-			<el-col :span="12">
-				<div class="grid-content topInfo">
-					<el-date-picker
-							v-model="searchTime"
-							type="datetime"
-							placeholder="预约时间"
-							size="large"
-							style="width: 100%;white-space: nowrap;margin-right: 20px"
-					/>
-					<el-select v-model="typeValue" placeholder="请选择预约类型" style="width: 100%">
-						<el-option label="类型1" value="类型1"/>
-						<el-option label="类型2" value="类型2"/>
-						<el-option label="类型3" value="类型3"/>
-					</el-select>
-					<el-button type="primary">查询历史</el-button>
-					<el-button plain>重置</el-button>
-					<el-button type="primary" @click="dialogChartsVisible = true">查看统计图表</el-button>
-				</div>
-			</el-col>
-		</el-row>
-		<div class="homeCard">
-			<div class="main-card">
-				<el-row class="cardTop">
-					<el-col :span="12" class="mainCardBtn">
-						<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button>
-<!--						<el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
-						<el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
-					</el-col>
-					<el-button type="primary" :icon="Refresh" size="default"/>
-				</el-row>
-				<el-table
-						ref="multipleTableRef"
-						:data="tableData"
-						style="width: 100%"
-						:header-cell-style="{background: '#fafafa'}"
-						@selection-change="handleSelectionChange"
-				>
-					<el-table-column type="selection" width="55" />
-					<el-table-column type="index" label="序号" width="120" />
-					<el-table-column prop="time" label="预约时间" width="150" />
-					<el-table-column prop="department" label="预约部门" width="180" />
-					<el-table-column prop="dirtyWork" label="动土作业" width="100" />
-					<el-table-column prop="fireWork" label="动火作业" width="100" />
-					<el-table-column prop="hangWork" label="吊装作业" width="100" />
-					<el-table-column prop="spaceWork" label="受限空间作业"/>
-					<el-table-column prop="cut" label="断路作业"/>
-					<el-table-column prop="high" label="高处作业" />
-					<el-table-column prop="block" label="盲板抽堵作业"/>
-					<el-table-column prop="tempUse" label="临时用电作业"/>
-					<el-table-column fixed="right" label="操作" align="center" width="250">
-						<template #default="scope">
-							<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
-							<el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
-							<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
-						</template>
-					</el-table-column>
-				</el-table>
-			</div>
-			<div class="pageBtn">
-				<el-pagination
-						v-model:currentPage="currentPage"
-						v-model:page-size="pageSize"
-						:page-sizes="[10, 15]"
-						small=false
-						background
-						layout="total, sizes, prev, pager, next, jumper"
-						:total="100"
-						@size-change="handleSizeChange"
-						@current-change="handleCurrentChange"
-				/>
-			</div>
-		</div>
-		</el-scrollbar>
-		<el-dialog v-model="dialogChartsVisible" title="统计图表" @opened="openChart">
-			<el-row>
-				<div class="grid-content">
-					<div style="margin-bottom: 10px">日期查询:</div>
-					<div class="block">
-						<el-date-picker
-								v-model="dateRange"
-								type="daterange"
-								unlink-panels
-								range-separator="至"
-								start-placeholder="开始日期"
-								end-placeholder="截止日期"
-								:shortcuts="shortcuts"
-								size="large"
-						/>
-					</div>
-				</div>
-			</el-row>
-			<el-row>
-				<div class="grid-content">
-					<div style="margin-bottom: 10px">部门查询:</div>
-					<div>
-						<el-cascader
-								v-model="departmentName"
-								:options="departmentOptions"
-								:props="{expandTrigger: 'hover'}"
-								@change="handleChange"
-						/>
-					</div>
-				</div>
-			</el-row>
-			<div ref="myChart" style="width: 100%;height:400px;"></div>
-		</el-dialog>
-		<el-dialog v-model="dialogDetails" title="作业预约">
-			<el-form :model="details" label-width="120px">
-				<el-form-item label="预约时间">
-					<el-input
-							v-model="details.time"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="预约部门">
-					<el-input
-							v-model="details.department"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="动土作业">
-					<el-input
-							v-model="details.dirtyWork"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="动火作业">
-					<el-input
-							v-model="details.fireWork"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="吊装作业">
-					<el-input
-							v-model="details.hangWork"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="受限空间作业">
-					<el-input
-							v-model="details.spaceWork"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="断路作业">
-					<el-input
-							v-model="details.cut"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="高处作业">
-					<el-input
-							v-model="details.high"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="盲板抽堵作业">
-					<el-input
-							v-model="details.block"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="临时用电作业">
-					<el-input
-							v-model="details.tempUse"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
-				</el-form-item>
-			</el-form>
-		</el-dialog>
-		<el-dialog v-model="dialogAddRecord" title="作业预约编辑" @close="closeAdd">
-			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="预约时间" prop="time">
-					<el-date-picker
-							v-model="addRecord.time"
-							type="datetime"
-							format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
-					/>
-				</el-form-item>
-				<el-form-item label="预约部门" prop="department">
-					<el-select v-model="addRecord.department" placeholder="请选择">
-						<el-option label="部门一" value="部门一" />
-						<el-option label="部门二" value="部门二" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="动土作业">
-					<el-input
-							v-model="addRecord.dirtyWork"
-					/>
-				</el-form-item>
-				<el-form-item label="动火作业">
-					<el-input
-							v-model="addRecord.fireWork"
-					/>
-				</el-form-item>
-				<el-form-item label="吊装作业">
-					<el-input
-							v-model="addRecord.hangWork"
-					/>
-				</el-form-item>
-				<el-form-item label="受限空间作业">
-					<el-input
-							v-model="addRecord.spaceWork"
-					/>
-				</el-form-item>
-				<el-form-item label="断路作业">
-					<el-input
-							v-model="addRecord.cut"
-					/>
-				</el-form-item>
-				<el-form-item label="高处作业">
-					<el-input
-							v-model="addRecord.high"
-					/>
-				</el-form-item>
-				<el-form-item label="盲板抽堵作业">
-					<el-input
-							v-model="addRecord.block"
-					/>
-				</el-form-item>
-				<el-form-item label="临时用电作业">
-					<el-input
-							v-model="addRecord.tempUse"
-					/>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
-					<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
-				</el-form-item>
-			</el-form>
-		</el-dialog>
-		<el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
-			<span>您确定要删除该条记录吗?</span>
-			<template #footer>
-		  <span class="dialog-footer">
-			  <el-button @click="deleteDialog = false" size="default">取消</el-button>
-			<el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
-		  </span>
-			</template>
-		</el-dialog>
-	</div>
-</template>
-
-<script lang="ts" setup>
-	import { toRefs, reactive, ref } from 'vue';
-	import { storeToRefs } from 'pinia';
-	import { initBackEndControlRoutes } from '/@/router/backEnd';
-	import {useUserInfo} from "/@/stores/userInfo";
-	import { Session } from '/@/utils/storage';
-	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
-	import { ElTable } from 'element-plus'
-	import { FormInstance, FormRules } from 'element-plus'
-	import * as echarts from 'echarts/core';
-	import { TooltipComponent, TooltipComponentOption, GridComponent, GridComponentOption, LegendComponent, LegendComponentOption } from 'echarts/components';
-	import { BarChart, BarSeriesOption } from 'echarts/charts';
-	import { CanvasRenderer } from 'echarts/renderers';
-	echarts.use([
-		TooltipComponent,
-		GridComponent,
-		LegendComponent,
-		BarChart,
-		CanvasRenderer
-	]);
-	let global: any = {
-		homeChartOne: null,
-		homeChartTwo: null,
-		homeCharThree: null,
-		dispose: [null, '', undefined],
-	};
-
-	interface stateType {
-		homeOne: Array <type>
-	}
-	interface type {
-
-	}
-	// export default defineComponent({
-	// 	name: 'workCheckinRecord',
-	// 	setup() {
-			const userInfo = useUserInfo()
-			const { userInfos } = storeToRefs(userInfo);
-			const typeValue = ref('')
-			const dialogChartsVisible = ref(false);
-			const dateRange = ref('')
-			const departmentName = ref('')
-			const departmentOptions = [
-				{
-					value: 'guide',
-					label: 'Guide',
-					children: [
-						{
-							value: 'disciplines',
-							label: 'Disciplines',
-							children: [
-								{
-									value: 'consistency',
-									label: 'Consistency',
-								},
-								{
-									value: 'feedback',
-									label: 'Feedback',
-								}
-							],
-						},
-						{
-							value: 'navigation',
-							label: 'Navigation',
-							children: [
-								{
-									value: 'side nav',
-									label: 'Side Navigation',
-								},
-								{
-									value: 'top nav',
-									label: 'Top Navigation',
-								},
-							],
-						},
-					],
-				},
-				{
-					value: 'component',
-					label: 'Component',
-				},
-				{
-					value: 'resource',
-					label: 'Resource',
-					children: [
-						{
-							value: 'axure',
-							label: 'Axure Components',
-						},
-						{
-							value: 'sketch',
-							label: 'Sketch Templates',
-						},
-						{
-							value: 'docs',
-							label: 'Design Documentation',
-						},
-					],
-				},
-			]
-			const handleChange = (value) => {
-				console.log(value)
-			}
-			const currentPage = ref(1)
-			const pageSize = ref(10)
-			const chosenIndex = ref(-1)
-			const handleSizeChange = (val: number) => {
-				console.log(`${val} items per page`)
-			}
-			const handleCurrentChange = (val: number) => {
-				console.log(`current page: ${val}`)
-			}
-			const tableData = reactive(
-					[
-						{
-							time: '2022-06-29 12:32:52',
-							department: '电工部',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						},
-						{
-							time: '2022-06-29 12:32:52',
-							department: '电工部',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						},
-						{
-							time: '2022-06-29 12:32:52',
-							department: '土木',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						}
-				]
-			)
-			const addRef = ref<FormInstance>()
-			const addRules = reactive<FormRules>({
-				time:[{required: true, message: '该内容不能为空',trigger:'blur'}],
-				department:[{required: true, message: '该内容不能为空',trigger:'blur'}]
-			})
-			const dialogDetails = ref(false)
-			const dialogAddRecord = ref(false)
-			const deleteDialog = ref(false)
-			const addRecord = ref({})
-			const details = ref({})
-			const viewRecord = (row) =>{
-				details.value = JSON.parse(JSON.stringify(row))
-				dialogDetails.value = true
-			}
-			const deleteRecord = (index) =>{
-				chosenIndex.value = index
-				deleteDialog.value = true
-			}
-			const conFirmDelete = ()=> {
-				tableData.splice(chosenIndex.value,1)
-				deleteDialog.value = false
-			}
-			const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
-				if (!formEl) return
-				await formEl.validate((valid, fields) => {
-					if (valid) {
-						if(chosenIndex.value == -1){
-							tableData.unshift(addRecord.value)
-						}else{
-							tableData[chosenIndex.value] = addRecord.value
-						}
-						dialogAddRecord.value =false
-					} else {
-						console.log('error submit!', fields)
-					}
-				})
-
-			}
-			const closeAdd =()=>{
-				addRecord.value={}
-				chosenIndex.value = -1
-			}
-			const indexClear = ()=>{
-				chosenIndex.value = -1
-			}
-			const editRecord =(index, row)=>{
-				dialogAddRecord.value = true
-				chosenIndex.value = index
-				addRecord.value = JSON.parse(JSON.stringify(row))
-			}
-			const myChart = ref<HTMLElement>()
-			const myCharts = ref<any>()
-			const openChart =()=>{
-				type EChartsOption = echarts.ComposeOption<
-						| TooltipComponentOption
-						| GridComponentOption
-						| LegendComponentOption
-						| BarSeriesOption
-						>;
-				myCharts.value = echarts.init(myChart.value!);
-				const option: EChartsOption = {
-					tooltip: {
-						trigger: 'axis',
-						axisPointer: {
-							// Use axis to trigger tooltip
-							type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
-						}
-					},
-					legend: {},
-					grid: {
-						left: '3%',
-						right: '3%',
-						bottom: '3%',
-						containLabel: true
-					},
-					xAxis: {
-						type: 'value'
-					},
-					yAxis: {
-						type: 'category',
-						data: ['部门A', '部门B', '部门C', '部门D', '部门E', '部门F', '部门G']
-					},
-					series: [
-						{
-							name: '动火作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [320, 302, 301, 334, 390, 330, 320]
-						},
-						{
-							name: '受限空间作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [120, 132, 101, 134, 90, 230, 210]
-						},
-						{
-							name: '吊装作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [220, 182, 191, 234, 290, 330, 310]
-						},
-						{
-							name: '动土作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [150, 212, 201, 154, 190, 330, 410]
-						},
-						{
-							name: '断路作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [820, 832, 901, 934, 1290, 1330, 1320]
-						},
-						{
-							name: '高处作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [820, 832, 901, 934, 1290, 1330, 1320]
-						},
-						{
-							name: '临时用电作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [820, 832, 901, 934, 1290, 1330, 1320]
-						},
-						{
-							name: '盲板抽堵作业',
-							type: 'bar',
-							stack: 'total',
-							label: {
-								show: true
-							},
-							emphasis: {
-								focus: 'series'
-							},
-							data: [820, 832, 901, 934, 1290, 1330, 1320]
-						}
-					]
-				};
-
-				option && myCharts.value.setOption(option);
-			}
-			// 折线图
-			const renderMenu = async (value: string) => {
-				Session.set('projectId',value)
-				userInfos.value.projectId = value
-				await initBackEndControlRoutes();
-			};
-</script>
-
-<style scoped lang="scss">
-	$homeNavLengh: 8;
-	.home-container {
-		height: 100%;
-		overflow: hidden;
-		padding: 20px;
-		.homeCard{
-			width: 100%;
-			padding: 20px;
-			background: #fff;
-			border-radius: 4px;
-		}
-		.el-row{
-			display: flex;
-			align-items: center;
-			margin-bottom: 20px;
-			&:last-child {
-				margin-bottom: 0;
-			}
-			.grid-content{
-				align-items: center;
-				min-height: 36px;
-			}
-
-			.topInfo {
-				display: flex;
-				align-items: center;
-				font-size: 16px;
-				font-weight: bold;
-
-				&>div{
-					white-space: nowrap;
-					margin-right: 20px;
-				}
-			}
-		}
-		.mainPages{
-			height: 100%;
-			display: flex;
-			flex-direction: column;
-			justify-content: space-between;
-		}
-		.main-card{
-			width: 100%;
-			.cardTop{
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				margin-bottom: 20px;
-				.mainCardBtn{
-					margin: 0;
-				}
-			}
-		}
-		.pageBtn{
-			display: flex;
-			align-items: center;
-			justify-content: right;
-			margin-top: 20px;
-
-			.demo-pagination-block + .demo-pagination-block {
-				margin-top: 10px;
-			}
-			.demo-pagination-block .demonstration {
-				margin-bottom: 16px;
-			}
-		}
-	}
-	.el-input{
-		width: 100% !important;
-	}
-	.el-date-editor::v-deep{
-		width: 100%;
-	}
-	.el-select{
-		width: 100%;
-	}
-</style>
diff --git a/src/views/specialWorkSystem/workPlan/workReservation/index.vue b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
index 7c89a19..8e696b2 100644
--- a/src/views/specialWorkSystem/workPlan/workReservation/index.vue
+++ b/src/views/specialWorkSystem/workPlan/workReservation/index.vue
@@ -1,429 +1,616 @@
 <template>
 	<div class="home-container">
-		<el-scrollbar height="100%">
-		<el-row class="homeCard">
-			<el-col :span="14">
-				<div class="grid-content topInfo">
-					<div>当前所属部门:<span>电工部</span></div>
-					<el-date-picker
-							v-model="searchTime"
-							type="datetime"
-							placeholder="预约时间"
-							size="large"
-							style="width: 100%;white-space: nowrap;margin-right: 20px"
-					/>
-					<el-select v-model="typeValue" placeholder="请选择预约类型" style="width: 100%">
-						<el-option label="类型1" value="类型1"/>
-						<el-option label="类型2" value="类型2"/>
-						<el-option label="类型3" value="类型3"/>
-					</el-select>
-					<el-button type="primary">查询</el-button>
-					<el-button plain>重置</el-button>
+		<div style="height: 100%">
+			<el-row class="homeCard">
+				<el-col :span="6" style="display:flex;align-items: center">
+					<span style="white-space: nowrap">申请部门:</span>
+					<div class="grid-content topInfo">
+						<el-cascader v-model="searchDep" :options="departmentList" :props="casProps" :show-all-levels="false"/>
+					</div>
+				</el-col>
+				<el-col :span="6" style="display:flex;align-items: center;">
+					<span style="white-space: nowrap;margin-left: 20px">预约日期:</span>
+					<div class="grid-content topInfo">
+						<el-date-picker
+								v-model="searchDate"
+								type="date"
+								format="YYYY-MM-DD" value-format="YYYY-MM-DD"
+						/>
+					</div>
+				</el-col>
+				<el-button style="margin-left: 20px" type="primary" @click="searchRecord">查询</el-button>
+				<el-button plain @click="clearSearch">重置</el-button>
+			</el-row>
+			<div class="homeCard">
+				<div class="main-card">
+					<el-row class="cardTop">
+						<el-col :span="12" class="mainCardBtn">
+							<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>
+						</el-col>
+						<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>
+					</el-row>
+					<el-table
+							:data="tableData"
+							style="width: 100%"
+							height="calc(100% - 100px)"
+							:header-cell-style="{background: '#fafafa'}"
+					>
+<!--						<el-table-column type="selection" width="55" />-->
+						<el-table-column type="index" label="序号" width="80" />
+						<el-table-column prop="applyDepName" align="center" label="申请部门"/>
+						<el-table-column prop="appointmentTime" align="center" label="预约时间"/>
+						<el-table-column prop="hotWork" align="center" label="动火作业"/>
+						<el-table-column prop="confinedSpaceOper" align="center" label="受限空间作业"/>
+						<el-table-column prop="liftingOper" align="center" label="吊装作业"/>
+						<el-table-column prop="groundBreakingOper" align="center" label="动土作业"/>
+						<el-table-column prop="openCircuitOper" align="center" label="断路作业"/>
+						<el-table-column prop="workAtHeight" align="center" label="高处作业" />
+						<el-table-column prop="temporaryPowerOper" align="center" label="临时用电作业"/>
+						<el-table-column prop="blindPlatePluggingOper" align="center" label="盲板抽堵作业"/>
+						<el-table-column fixed="right" label="操作" align="center" width="250">
+							<template #default="scope">
+								<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
+								<el-button link type="primary" size="small" :icon="Edit" @click="editRecordBtn(scope.$index, scope.row)">修改</el-button>
+								<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecordBtn(scope.row)">删除</el-button>
+							</template>
+						</el-table-column>
+					</el-table>
+					<div class="pageBtn">
+						<el-pagination
+								v-model:currentPage="currentPage"
+								v-model:page-size="pageSize"
+								:page-sizes="[10, 15]"
+								small=false
+								background
+								layout="total, sizes, prev, pager, next, jumper"
+								:total="totalSize"
+								@size-change="handleSizeChange"
+								@current-change="handleCurrentChange"
+						/>
+					</div>
 				</div>
-			</el-col>
-		</el-row>
-		<div class="homeCard">
-			<div class="main-card">
-				<el-row class="cardTop">
-					<el-col :span="12" class="mainCardBtn">
-						<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord=true">新增</el-button>
-<!--						<el-button type="warning" :icon="Edit" size="default" plain>修改</el-button>-->
-						<el-button type="danger" :icon="Delete" size="default" plain>删除</el-button>
-					</el-col>
-					<el-button type="primary" :icon="Refresh" size="default"/>
-				</el-row>
-				<el-table
-						ref="multipleTableRef"
-						:data="tableData"
-						style="width: 100%"
-						:header-cell-style="{background: '#fafafa'}"
-						@selection-change="handleSelectionChange"
-				>
-					<el-table-column type="selection" width="55" />
-					<el-table-column type="index" label="序号" width="120" />
-					<el-table-column prop="time" label="预约时间" width="150" />
-					<el-table-column prop="department" label="预约部门" width="180" />
-					<el-table-column prop="dirtyWork" label="动土作业" width="100" />
-					<el-table-column prop="fireWork" label="动火作业" width="100" />
-					<el-table-column prop="hangWork" label="吊装作业" width="100" />
-					<el-table-column prop="spaceWork" label="受限空间作业"/>
-					<el-table-column prop="cut" label="断路作业"/>
-					<el-table-column prop="high" label="高处作业" />
-					<el-table-column prop="block" label="盲板抽堵作业"/>
-					<el-table-column prop="tempUse" label="临时用电作业"/>
-					<el-table-column fixed="right" label="操作" align="center" width="250">
-						<template #default="scope">
-							<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
-							<el-button link type="primary" size="small" :icon="Edit" @click="editRecord(scope.$index ,scope.row)">修改</el-button>
-							<el-button link type="danger" size="small" :icon="Delete" @click="deleteRecord(scope.$index)">删除</el-button>
-						</template>
-					</el-table-column>
-				</el-table>
-			</div>
-			<div class="pageBtn">
-				<el-pagination
-						v-model:currentPage="currentPage"
-						v-model:page-size="pageSize"
-						:page-sizes="[10, 15]"
-						small=false
-						background
-						layout="total, sizes, prev, pager, next, jumper"
-						:total="100"
-						@size-change="handleSizeChange"
-						@current-change="handleCurrentChange"
-				/>
 			</div>
 		</div>
-		</el-scrollbar>
 		<el-dialog v-model="dialogDetails" title="作业预约">
 			<el-form :model="details" label-width="120px">
+				<el-form-item label="申请部门">
+					<el-input
+							v-model="details.applyDepName"
+							readonly
+					/>
+				</el-form-item>
 				<el-form-item label="预约时间">
 					<el-input
-							v-model="details.time"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="预约部门">
-					<el-input
-							v-model="details.department"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="动土作业">
-					<el-input
-							v-model="details.dirtyWork"
+							v-model="details.appointmentTime"
 							readonly
 					/>
 				</el-form-item>
 				<el-form-item label="动火作业">
 					<el-input
-							v-model="details.fireWork"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="吊装作业">
-					<el-input
-							v-model="details.hangWork"
+							v-model="details.hotWork"
 							readonly
 					/>
 				</el-form-item>
 				<el-form-item label="受限空间作业">
 					<el-input
-							v-model="details.spaceWork"
+							v-model="details.confinedSpaceOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="吊装作业">
+					<el-input
+							v-model="details.liftingOper"
+							readonly
+					/>
+				</el-form-item>
+				<el-form-item label="动土作业">
+					<el-input
+							v-model="details.groundBreakingOper"
 							readonly
 					/>
 				</el-form-item>
 				<el-form-item label="断路作业">
 					<el-input
-							v-model="details.cut"
+							v-model="details.openCircuitOper"
 							readonly
 					/>
 				</el-form-item>
 				<el-form-item label="高处作业">
 					<el-input
-							v-model="details.high"
-							readonly
-					/>
-				</el-form-item>
-				<el-form-item label="盲板抽堵作业">
-					<el-input
-							v-model="details.block"
+							v-model="details.workAtHeight"
 							readonly
 					/>
 				</el-form-item>
 				<el-form-item label="临时用电作业">
 					<el-input
-							v-model="details.tempUse"
+							v-model="details.temporaryPowerOper"
 							readonly
 					/>
 				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
+				<el-form-item label="盲板抽堵作业">
+					<el-input
+							v-model="details.blindPlatePluggingOper"
+							readonly
+					/>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="primary" @click="dialogDetails = false">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 		<el-dialog v-model="dialogAddRecord" title="作业预约编辑" @close="closeAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="预约时间" prop="time">
+				<el-form-item label="申请部门" prop="applyDepId">
+					<el-cascader placeholder="若选择部门非本人所在部门,则记录不会出现在该页面" :disabled = isDisabled v-model="addRecord.applyDepId" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+				</el-form-item>
+				<el-form-item label="预约时间" prop="appointmentTime">
 					<el-date-picker
-							v-model="addRecord.time"
-							type="datetime"
-							format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"
+							v-model="addRecord.appointmentTime"
+							type="date"
+							format="YYYY-MM-DD" value-format="YYYY-MM-DD"
+							:disabled = isDisabled
 					/>
 				</el-form-item>
-				<el-form-item label="预约部门" prop="department">
-					<el-select v-model="addRecord.department" placeholder="请选择">
-						<el-option label="部门一" value="部门一" />
-						<el-option label="部门二" value="部门二" />
-					</el-select>
-				</el-form-item>
-				<el-form-item label="动土作业">
+				<el-form-item label="动火作业" prop="hotWork">
 					<el-input
-							v-model="addRecord.dirtyWork"
+							v-model="addRecord.hotWork"
 					/>
 				</el-form-item>
-				<el-form-item label="动火作业">
+				<el-form-item label="受限空间作业" prop="confinedSpaceOper">
 					<el-input
-							v-model="addRecord.fireWork"
+							v-model="addRecord.confinedSpaceOper"
 					/>
 				</el-form-item>
-				<el-form-item label="吊装作业">
+				<el-form-item label="吊装作业" prop="liftingOper">
 					<el-input
-							v-model="addRecord.hangWork"
+							v-model="addRecord.liftingOper"
 					/>
 				</el-form-item>
-				<el-form-item label="受限空间作业">
+				<el-form-item label="动土作业" prop="groundBreakingOper">
 					<el-input
-							v-model="addRecord.spaceWork"
+							v-model="addRecord.groundBreakingOper"
 					/>
 				</el-form-item>
-				<el-form-item label="断路作业">
+				<el-form-item label="断路作业" prop="openCircuitOper">
 					<el-input
-							v-model="addRecord.cut"
+							v-model="addRecord.openCircuitOper"
 					/>
 				</el-form-item>
-				<el-form-item label="高处作业">
+				<el-form-item label="高处作业" prop="workAtHeight">
 					<el-input
-							v-model="addRecord.high"
+							v-model="addRecord.workAtHeight"
 					/>
 				</el-form-item>
-				<el-form-item label="盲板抽堵作业">
+				<el-form-item label="临时用电作业" prop="temporaryPowerOper">
 					<el-input
-							v-model="addRecord.block"
+							v-model="addRecord.temporaryPowerOper"
 					/>
 				</el-form-item>
-				<el-form-item label="临时用电作业">
+				<el-form-item label="盲板抽堵作业" prop="blindPlatePluggingOper">
 					<el-input
-							v-model="addRecord.tempUse"
+							v-model="addRecord.blindPlatePluggingOper"
 					/>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
-					<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
+				<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 		<el-dialog v-model="deleteDialog" title="提示" width="30%" center @close="indexClear">
 			<span>您确定要删除该条记录吗?</span>
 			<template #footer>
-		  <span class="dialog-footer">
-			  <el-button @click="deleteDialog = false" size="default">取消</el-button>
-			<el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
-		  </span>
+                <span class="dialog-footer">
+                    <el-button @click="deleteDialog = false" size="default">取消</el-button>
+                    <el-button type="primary" @click="conFirmDelete" size="default">确认</el-button>
+                </span>
 			</template>
 		</el-dialog>
 	</div>
 </template>
 
-<script lang="ts" setup>
-	import { toRefs, reactive, ref } from 'vue';
+<script lang="ts">
+	import {toRefs, reactive, ref, onMounted, defineAsyncComponent} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
-	import {useUserInfo} from "/@/stores/userInfo";
+	import { useUserInfo } from '/@/stores/userInfo';
 	import { Session } from '/@/utils/storage';
-	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue'
-	import { ElTable, FormInstance, FormRules } from 'element-plus'
-	let global: any = {
-		homeChartOne: null,
-		homeChartTwo: null,
-		homeCharThree: null,
-		dispose: [null, '', undefined],
-	};
+	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
+	import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
+	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+	import { workReserveApi } from '/@/api/specialWorkSystem/workPlan/workReservation';
+	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
 
+	// 定义接口来定义对象的类型
 	interface stateType {
-		homeOne: Array <type>
-	}
-	interface type {
+		tableData: Array<any>;
+		departmentList: Array<any>;
+		casProps: {};
+		multipleSelection: Array<any>;
+		deleteArr: Array<any>;
+		dialogDetails: boolean;
+		dialogAddRecord: boolean;
+		deleteDialog: boolean;
+		deleteSetDialog: boolean;
+		pageIndex: number;
+		pageSize: number;
+		chosenIndex: null | number;
+		deleteId: null | number;
+		searchDep: number | null;
+		searchDate: string;
+		isDisabled:boolean;
+		totalSize: number;
+		addRecord: {
 
+		};
+		details: {
+
+		};
+		workTypeList: Array<any>
 	}
-	// export default defineComponent({
-	// 	name: 'workCheckinRecord',
-	// 	setup() {
-			const userInfo = useUserInfo()
+
+	export default {
+		name: 'workReservation',
+		components: {},
+		setup() {
+			const userInfo = useUserInfo();
 			const { userInfos } = storeToRefs(userInfo);
-			const typeValue = ref('')
-			const currentPage = ref(1)
-			const pageSize = ref(10)
-			const chosenIndex = ref(-1)
-			const handleSizeChange = (val: number) => {
-				console.log(`${val} items per page`)
-			}
-			const handleCurrentChange = (val: number) => {
-				console.log(`current page: ${val}`)
-			}
-			const tableData = reactive(
-					[
-						{
-							time: '2022-06-29 12:32:52',
-							department: '电工部',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						},
-						{
-							time: '2022-06-29 12:32:52',
-							department: '电工部',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						},
-						{
-							time: '2022-06-29 12:32:52',
-							department: '土木',
-							dirtyWork: '',
-							fireWork: '',
-							hangWork: '',
-							spaceWork: '',
-							cut: '',
-							high: '',
-							block: '',
-							tempUse: ''
-						}
+			const state = reactive<stateType>({
+				pageIndex: 1,
+				pageSize: 10,
+				totalSize: 0,
+				chosenIndex: null,
+				searchDep: null,
+				searchDate: '',
+				isDisabled: false,
+				tableData: [],
+				departmentList: [],
+				casProps: {
+					expandTrigger: 'hover',
+					emitPath: false,
+					value: 'depId',
+					label: 'depName',
+					checkStrictly: true
+				},
+				multipleSelection: [],
+				dialogDetails: false,
+				dialogAddRecord: false,
+				deleteDialog: false,
+				deleteSetDialog: false,
+				addRecord: {},
+				details: {},
+				deleteId: null,
+				deleteArr: [],
+				workTypeList: [
+					{ id: 1, name: '动火作业' },
+					{ id: 2, name: '受限空间作业' },
+					{ id: 3, name: '吊装作业' },
+					{ id: 4, name: '动土作业' },
+					{ id: 5, name: '断路作业' },
+					{ id: 6, name: '高处作业' },
+					{ id: 7, name: '临时用电作业' },
+					{ id: 8, name: '盲板抽堵作业' }
 				]
-			)
-			const addRef = ref<FormInstance>()
-			const addRules = reactive<FormRules>({
-				time:[{required: true, message: '该内容不能为空',trigger:'blur'}],
-				department:[{required: true, message: '该内容不能为空',trigger:'blur'}]
-			})
-			const dialogDetails = ref(false)
-			const dialogAddRecord = ref(false)
-			const deleteDialog = ref(false)
-			const addRecord = ref({})
-			const details = ref({})
-			const viewRecord = (row) =>{
-				details.value = JSON.parse(JSON.stringify(row))
-				dialogDetails.value = true
-			}
-			const deleteRecord = (index) =>{
-				chosenIndex.value = index
-				deleteDialog.value = true
-			}
-			const conFirmDelete = ()=> {
-				tableData.splice(chosenIndex.value,1)
-				deleteDialog.value = false
-			}
-			const confirmAddRecord = async (formEl: FormInstance | undefined) =>{
-				if (!formEl) return
-				await formEl.validate((valid, fields) => {
-					if (valid) {
-						if(chosenIndex.value == -1){
-							tableData.unshift(addRecord.value)
-						}else{
-							tableData[chosenIndex.value] = addRecord.value
-						}
-						dialogAddRecord.value =false
-					} else {
-						console.log('error submit!', fields)
-					}
-				})
+			});
 
-			}
-			const closeAdd =()=>{
-				addRecord.value={}
-				chosenIndex.value = -1
-			}
-			const indexClear = ()=>{
-				chosenIndex.value = -1
-			}
-			const editRecord =(index, row)=>{
-				dialogAddRecord.value = true
-				chosenIndex.value = index
-				addRecord.value = JSON.parse(JSON.stringify(row))
-			}
+			const addRef = ref<FormInstance>();
+			const addRules = reactive<FormRules>({
+				applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				appointmentTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				hotWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				groundBreakingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				blindPlatePluggingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				temporaryPowerOper	: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				workAtHeight: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				openCircuitOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				liftingOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				confinedSpaceOper: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+			});
+
+			// 页面载入时执行方法
+			onMounted(() => {
+				getListByPage()
+				getAllDepartment()
+			});
+
+			// 获取部门列表
+			const getAllDepartment = async () => {
+				let res = await teamManageApi().getAllDepartment();
+				if (res.data.code === '200') {
+					state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 分页获取气体检测列表
+			const getListByPage = async () => {
+				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { applyDepId: state.searchDep, appointmentTime: state.searchDate } };
+				let res = await workReserveApi().getReserveListPage(data);
+				if (res.data.code === '200') {
+					state.tableData = JSON.parse(JSON.stringify(res.data.data))
+					state.totalSize = res.data.total;
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 关键词查询记录
+			const searchRecord = async () => {
+				if (state.searchDep == null && state.searchDate == '') {
+					ElMessage({
+						type: 'warning',
+						message: '请输入查询关键词'
+					});
+				} else {
+					getListByPage();
+				}
+			};
+
+			const clearSearch = async () => {
+				state.searchDep = null;
+				state.searchDate = '';
+				getListByPage();
+			};
+
+			// 添加记录方法
+			const addRecord = async (data: any) => {
+				let res = await workReserveApi().addRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 修改记录方法
+			const editRecord = async (data: any) => {
+				let res = await workReserveApi().editRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			// 点击修改
+			const editRecordBtn = (index, row) => {
+				state.dialogAddRecord = true;
+				state.chosenIndex = index;
+				state.addRecord = JSON.parse(JSON.stringify(row));
+				state.isDisabled = true
+			};
+
+			// 新增修改记录
+			const confirmAddRecord = async (formEl: FormInstance | undefined) => {
+				if (!formEl) return;
+				await formEl.validate(async (valid, fields) => {
+					if (valid) {
+						const data = {
+							applyDepId: state.addRecord.applyDepId,
+							appointmentTime: state.addRecord.appointmentTime,
+							hotWork: Number(state.addRecord.hotWork),
+							groundBreakingOper: Number(state.addRecord.groundBreakingOper),
+							blindPlatePluggingOper: Number(state.addRecord.blindPlatePluggingOper),
+							temporaryPowerOper: Number(state.addRecord.temporaryPowerOper),
+							workAtHeight: Number(state.addRecord.workAtHeight),
+							openCircuitOper: Number(state.addRecord.openCircuitOper),
+							liftingOper: Number(state.addRecord.liftingOper),
+							confinedSpaceOper: Number(state.addRecord.confinedSpaceOper),
+						};
+						if (state.chosenIndex == null) {
+							await addRecord(data);
+						} else {
+							data.id = state.addRecord.id
+							await editRecord(data);
+						}
+						state.dialogAddRecord = false;
+						getListByPage();
+					} else {
+						console.log('error submit!', fields);
+					}
+				});
+			};
+
+			const handleSizeChange = (val: number) => {
+				state.pageSize = val;
+				getListByPage();
+			};
+			const handleCurrentChange = (val: number) => {
+				state.pageIndex = val;
+				getListByPage();
+			};
+
+			// 查看记录
+			const viewRecord = (row) => {
+				state.details = JSON.parse(JSON.stringify(row));
+				state.dialogDetails = true;
+			};
+
+			// 刷新
+			const reLoadData = async () => {
+				getListByPage();
+			};
+
+
+			// 删除方法
+			const deleteRecord = async (data: any) => {
+				let res = await workReserveApi().deleteRecord(data);
+				if (res.data.code === '200') {
+					ElMessage({
+						type: 'success',
+						message: res.data.msg
+					});
+					getListByPage();
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+
+			const deleteRecordBtn = (row) => {
+				state.deleteId = row.id;
+				state.deleteDialog = true;
+			};
+
+			const conFirmDelete = () => {
+				deleteRecord({ id: state.deleteId });
+				state.deleteDialog = false;
+			};
+
+
+			const closeAdd = () => {
+				state.addRecord = {};
+				state.chosenIndex = null;
+				state.isDisabled = false
+			};
+
+			const indexClear = () => {
+				state.deleteId = null;
+			};
+
 			// 折线图
 			const renderMenu = async (value: string) => {
-				Session.set('projectId',value)
-				userInfos.value.projectId = value
+				Session.set('projectId', value);
+				userInfos.value.projectId = value;
 				await initBackEndControlRoutes();
 			};
+			return {
+				addRef,
+				addRules,
+				View,
+				Edit,
+				Delete,
+				Refresh,
+				Plus,
+				Search,
+				searchRecord,
+				clearSearch,
+				viewRecord,
+				editRecordBtn,
+				deleteRecordBtn,
+				conFirmDelete,
+				getListByPage,
+				reLoadData,
+				handleSizeChange,
+				handleCurrentChange,
+				confirmAddRecord,
+				closeAdd,
+				indexClear,
+				...toRefs(state)
+			};
+		}
+	};
 </script>
 
 <style scoped lang="scss">
 	$homeNavLengh: 8;
+	.red{
+		color: red;
+	}
 	.home-container {
-		height: 100%;
+		height: calc(100vh - 144px);
+		box-sizing: border-box;
 		overflow: hidden;
-		padding: 20px;
-		.homeCard{
+		.homeCard {
 			width: 100%;
 			padding: 20px;
+			box-sizing: border-box;
 			background: #fff;
 			border-radius: 4px;
+
+			.main-card {
+				width: 100%;
+				height: 100%;
+				.cardTop {
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					margin-bottom: 20px;
+					.mainCardBtn {
+						margin: 0;
+					}
+				}
+				.pageBtn {
+					height: 60px;
+					display: flex;
+					align-items: center;
+					justify-content: right;
+
+					.demo-pagination-block + .demo-pagination-block {
+						margin-top: 10px;
+					}
+					.demo-pagination-block .demonstration {
+						margin-bottom: 16px;
+					}
+				}
+			}
+			&:last-of-type {
+				height: calc(100% - 100px);
+			}
 		}
-		.el-row{
+		.el-row {
 			display: flex;
 			align-items: center;
 			margin-bottom: 20px;
 			&:last-child {
 				margin-bottom: 0;
 			}
-			.grid-content{
+			.grid-content {
 				align-items: center;
 				min-height: 36px;
 			}
 
 			.topInfo {
+				width: 100%;
 				display: flex;
 				align-items: center;
 				font-size: 16px;
 				font-weight: bold;
 
-				&>div{
+				& > div {
 					white-space: nowrap;
 					margin-right: 20px;
 				}
-			}
-		}
-		.mainPages{
-			height: 100%;
-			display: flex;
-			flex-direction: column;
-			justify-content: space-between;
-		}
-		.main-card{
-			width: 100%;
-			.cardTop{
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				margin-bottom: 20px;
-				.mainCardBtn{
-					margin: 0;
-				}
-			}
-		}
-		.pageBtn{
-			display: flex;
-			align-items: center;
-			justify-content: right;
-			margin-top: 20px;
-
-			.demo-pagination-block + .demo-pagination-block {
-				margin-top: 10px;
-			}
-			.demo-pagination-block .demonstration {
-				margin-bottom: 16px;
 			}
 		}
 	}
 	.el-input{
 		width: 100% !important;
 	}
-	.el-date-editor::v-deep{
+	::v-deep(.el-date-editor){
 		width: 100%;
 	}
 	.el-select{
 		width: 100%;
 	}
+	:deep(.el-cascader){
+		width: 100% !important;
+	}
 </style>
diff --git a/src/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue b/src/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue
new file mode 100644
index 0000000..9738408
--- /dev/null
+++ b/src/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue
@@ -0,0 +1,225 @@
+<template>
+	<div class="home-container">
+		<div style="height: 100%">
+		<el-row class="homeCard">
+			<el-col :span="8" style="display:flex;align-items: center">
+				<div class="grid-content topInfo">
+					<el-input v-model="searchNo" placeholder="请输入作业证编号"></el-input>
+				</div>
+			</el-col>
+			<el-col :span="8" style="display:flex;align-items: center">
+				<div class="grid-content topInfo">
+					<el-select v-model="workType" placeholder="请选择作业类型">
+						<el-option
+								v-for="item in workTypeList"
+								:key="item.value"
+								:label="item.label"
+								:value="item.value"
+						/>
+					</el-select>
+				</div>
+			</el-col>
+			<el-button type="primary" @click="searchRecord">查询</el-button>
+			<el-button plain @click="clearSearch">重置</el-button>
+		</el-row>
+			<div class="homeCard">
+				<div class="main-card">
+					<el-table
+							:data="tableData"
+							ref="singleTableRef"
+							highlight-current-row
+							style="width: 100%"
+							@current-change="handleCurrentChange"
+							:header-cell-style="{background: '#fafafa'}"
+					>
+						<el-table-column type="index" label="序号" width="80"/>
+						<el-table-column property="workPermitNo" label="作业证编号"/>
+						<el-table-column property="workTypeDesc" label="作业类型"/>
+					</el-table>
+<!--					<div class="pageBtn">-->
+<!--						<el-pagination-->
+<!--								v-model:currentPage="currentPage"-->
+<!--								v-model:page-size="pageSize"-->
+<!--								:page-sizes="[10, 15]"-->
+<!--								small=false-->
+<!--								background-->
+<!--								layout="total, sizes, prev, pager, next, jumper"-->
+<!--								:total="totalSize"-->
+<!--								@size-change="handleSizeChange"-->
+<!--								@current-change="handleCurrentChange"-->
+<!--						/>-->
+<!--					</div>-->
+				</div>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script lang="ts">
+	import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+	import { storeToRefs } from 'pinia';
+	import { initBackEndControlRoutes } from '/@/router/backEnd';
+	import {useUserInfo} from "/@/stores/userInfo";
+	import { Session } from '/@/utils/storage';
+	import { Search } from '@element-plus/icons-vue'
+	import { ElMessage,ElTable } from 'element-plus'
+	import type { FormInstance, FormRules } from 'element-plus'
+	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+	import {workProcessApi} from "/@/api/specialWorkSystem/workProcess";
+
+
+	interface stateType {
+		workPermitNo: string
+		searchNo: string
+		workType: number
+	}
+	export default defineComponent({
+		name: 'permitNo',
+		components: {},
+		props:[],
+		setup() {
+			const userInfo = useUserInfo()
+			const { userInfos } = storeToRefs(userInfo);
+			const currentRow = ref()
+			const singleTableRef = ref<InstanceType<typeof ElTable>>()
+			const state  = reactive<stateType>({
+				workPermitNo: '',
+				searchNo: '',
+				workType: null,
+				tableData: [],
+				workTypeList: [
+					{
+						label: "动火作业",
+						value: 1
+					},
+					{
+						label: "受限空间作业",
+						value: 2
+					},
+					{
+						label: "吊装作业",
+						value: 3
+					},
+					{
+						label: "动土作业",
+						value: 4
+					},
+					{
+						label: "断路作业",
+						value: 5
+					},
+					{
+						label: "高处作业",
+						value: 6
+					},
+					{
+						label: "临时用电作业",
+						value: 7
+					},
+					{
+						label: "盲板抽堵作业",
+						value: 8
+					}
+				]
+			});
+			const handleCurrentChange = (val: User | undefined) => {
+				currentRow.value = val
+				state.workPermitNo = currentRow.value.workPermitNo
+			}
+			// 获取作业编号列表
+			const getAllReport = async (data)=>{
+				const res = await workProcessApi().postReportList({workPermitNo: state.searchNo,workType: state.workType})
+				if (res.data.code === '200') {
+					state.tableData = JSON.parse(JSON.stringify(res.data.data))
+				} else {
+					ElMessage({
+						type: 'warning',
+						message: res.data.msg
+					});
+				}
+			};
+			// 关键词查询记录
+			const searchRecord = async () => {
+				if (state.searchNo == ''&& state.workType == null) {
+					ElMessage({
+						type: 'warning',
+						message: '请输入查询关键词'
+					});
+				} else {
+					getAllReport();
+				}
+			};
+
+			const clearSearch = async () => {
+				state.searchNo = '';
+				state.workType = null;
+				getAllReport();
+			};
+			// 页面载入时执行方法
+			onMounted(() => {
+				getAllReport()
+			});
+
+			// 折线图
+			const renderMenu = async (value: string) => {
+				Session.set('projectId',value)
+				userInfos.value.projectId = value
+				await initBackEndControlRoutes();
+			};
+			return {
+				renderMenu,
+				currentRow,
+				singleTableRef,
+				searchRecord,
+				clearSearch,
+				handleCurrentChange,
+				Search,
+				...toRefs(state),
+			};
+		},
+	});
+</script>
+
+<style scoped lang="scss">
+	.home-container {
+		height: 100%;
+		overflow: hidden;
+		position: relative;
+		.homeCard{
+			width: 100%;
+			padding: 20px;
+			box-sizing: border-box;
+			background: #fff;
+			border-radius: 4px;
+			margin-bottom: 20px;
+		}
+		.applyBtn{
+			width: 100%;
+			background: #fff;
+			padding-top: 15px;
+			z-index: 5;
+			box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+			display: flex;
+			align-items: center;
+			justify-content: center;
+		}
+		.el-row{
+			margin-bottom: 20px;
+		}
+		.el-row:last-child {
+			margin-bottom: 0;
+		}
+		.el-input{
+			width: 100% !important;
+		}
+		.el-date-editor::v-deep{
+			width: 100%;
+		}
+		.el-select{
+			width: 100%;
+		}
+		.el-cascader{
+			width: 100% !important;
+		}
+	}
+</style>
diff --git a/src/views/specialWorkSystem/workProcess/gasCheck/index.vue b/src/views/specialWorkSystem/workProcess/gasCheck/index.vue
index f8a0c36..4c44f17 100644
--- a/src/views/specialWorkSystem/workProcess/gasCheck/index.vue
+++ b/src/views/specialWorkSystem/workProcess/gasCheck/index.vue
@@ -5,15 +5,15 @@
 				<el-col :span="6" style="display:flex;align-items: center">
 					<span style="white-space: nowrap">作业证编号:</span>
 					<div class="grid-content topInfo">
-						<el-input v-model="searchWord"></el-input>
+						<el-input v-model="workPermitNo" placeholder="请输入作业证编号"></el-input>
 					</div>
 				</el-col>
 				<el-col :span="6" style="display:flex;align-items: center">
 					<span style="white-space: nowrap">作业类型:</span>
 					<div class="grid-content topInfo">
-						<el-select v-model="searchType" placeholder="请选择作业类型">
+						<el-select v-model="workType" placeholder="请选择作业类型">
 							<el-option
-									v-for="item in workType"
+									v-for="item in workTypeList"
 									:key="item.id"
 									:label="item.name"
 									:value="item.id"
@@ -30,30 +30,29 @@
 						<el-col :span="12" class="mainCardBtn">
 							<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>
 						</el-col>
-						<el-button type="primary" :icon="Refresh" size="default"/>
+						<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>
 					</el-row>
 					<el-table
-							ref="multipleTableRef"
 							:data="tableData"
 							style="width: 100%"
 							height="calc(100% - 100px)"
 							:header-cell-style="{background: '#fafafa'}"
 					>
-						<el-table-column type="index" label="序号" width="200"/>
-						<el-table-column property="id" label="作业证编号" width="200"/>
-						<el-table-column property="workType" label="作业类型" width="200"/>
-<!--						<el-table-column property="combustible" label="可燃气%"/>-->
-						<el-table-column property="combustible" label="可燃气%">
-							<template #default="scope">
-								<span :class="scope.row.combustible > 0 ? 'red': ''">{{ scope.row.combustible }}</span>
-							</template>
-						</el-table-column>
+						<el-table-column type="index" label="序号" width="80"/>
+						<el-table-column property="workPermitNo" label="作业证编号"/>
+						<el-table-column property="workTypeDesc" label="作业类型"/>
+						<el-table-column property="combustible" label="可燃气%"/>
+<!--						<el-table-column property="combustible" label="可燃气%">-->
+<!--							<template #default="scope">-->
+<!--								<span :class="scope.row.combustible > 0 ? 'red': ''">{{ scope.row.combustible }}</span>-->
+<!--							</template>-->
+<!--						</el-table-column>-->
 						<el-table-column property="oxygen" label="氧气%"/>
-						<el-table-column property="co" label="一氧化碳ppm"/>
-						<el-table-column property="hs" label="硫化氢ppm"/>
-						<el-table-column property="desc" label="描述" width="200"/>
-						<el-table-column property="name" label="分析人"/>
-						<el-table-column property="updateTime" label="分析时间"/>
+						<el-table-column property="carbonMonoxide" label="一氧化碳ppm"/>
+						<el-table-column property="hydrogenSulfide" label="硫化氢ppm"/>
+						<el-table-column property="info" label="描述" show-overflow-tooltip width="200"/>
+						<el-table-column property="operatorUname" label="分析人"/>
+						<el-table-column property="operationTime" label="分析时间" align="center" width="180"/>
 						<el-table-column fixed="right" label="操作" align="center" width="250">
 							<template #default="scope">
 								<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
@@ -68,7 +67,7 @@
 								small=false
 								background
 								layout="total, sizes, prev, pager, next, jumper"
-								:total="100"
+								:total="totalSize"
 								@size-change="handleSizeChange"
 								@current-change="handleCurrentChange"
 						/>
@@ -79,10 +78,10 @@
 		<el-dialog v-model="dialogDetails" title="检测记录">
 			<el-form :model="details" label-width="120px">
 				<el-form-item label="作业证编号">
-					<el-input v-model="details.id" readonly/>
+					<el-input v-model="details.workPermitNo" readonly/>
 				</el-form-item>
 				<el-form-item label="作业类型">
-					<el-input v-model="details.workType" readonly/>
+					<el-input v-model="details.workTypeDesc" readonly/>
 				</el-form-item>
 				<el-form-item label="可燃气%">
 					<el-input v-model="details.combustible" readonly/>
@@ -91,38 +90,40 @@
 					<el-input v-model="details.oxygen" readonly/>
 				</el-form-item>
 				<el-form-item label="一氧化碳ppm">
-					<el-input v-model="details.co" readonly/>
+					<el-input v-model="details.carbonMonoxide" readonly/>
 				</el-form-item>
 				<el-form-item label="硫化氢ppm">
-					<el-input v-model="details.hs" readonly/>
+					<el-input v-model="details.hydrogenSulfide" readonly/>
 				</el-form-item>
 				<el-form-item label="描述">
-					<el-input v-model="details.desc" type="textarea" readonly/>
+					<el-input v-model="details.info" type="textarea" readonly/>
 				</el-form-item>
 				<el-form-item label="分析人">
-					<el-input v-model="details.name" readonly/>
+					<el-input v-model="details.operatorUname" readonly/>
 				</el-form-item>
 				<el-form-item label="分析时间">
-					<el-input v-model="details.updateTime" readonly/>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
+					<el-input v-model="details.operationTime" readonly/>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="primary" @click="dialogDetails = false">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 		<el-dialog v-model="dialogAddRecord" title="新增" @close="closeAdd" @open="openAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="作业证编号" prop="id">
-					<el-input v-model="addRecord.id">
+				<el-form-item label="作业证编号" prop="workPermitNo">
+					<el-input v-model="addRecord.workPermitNo" placeholder="作业编号须为已审批作业的编号,可点击右方按钮查询">
 						<template #append>
-							<el-button :icon="Search" />
+							<el-button :icon="Search" @click="dialogPermitNo = true"/>
 						</template>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="作业类型" prop="groupMembers">
-					<el-select v-model="addRecord.groupMembers">
+				<el-form-item label="作业类型" prop="workType">
+					<el-select v-model="addRecord.workType">
 						<el-option
-								v-for="item in workType"
+								v-for="item in workTypeList"
 								:key="item.id"
 								:label="item.name"
 								:value="item.id"
@@ -135,34 +136,45 @@
 				<el-form-item label="氧气%" prop="oxygen">
 					<el-input v-model="addRecord.oxygen"/>
 				</el-form-item>
-				<el-form-item label="一氧化碳ppm" prop="combustible">
-					<el-input v-model="addRecord.co"/>
+				<el-form-item label="一氧化碳ppm" prop="carbonMonoxide">
+					<el-input v-model="addRecord.carbonMonoxide"/>
 				</el-form-item>
-				<el-form-item label="硫化氢ppm" prop="oxygen">
-					<el-input v-model="addRecord.hs"/>
+				<el-form-item label="硫化氢ppm" prop="hydrogenSulfide">
+					<el-input v-model="addRecord.hydrogenSulfide"/>
 				</el-form-item>
-				<el-form-item label="描述" prop="desc">
-					<el-input v-model="addRecord.desc" type="textarea"> </el-input>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
-					<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+				<el-form-item label="描述" prop="info">
+					<el-input v-model="addRecord.info" type="textarea"> </el-input>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
+				<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+			  </span>
+			</template>
+		</el-dialog>
+		<el-dialog v-model="dialogPermitNo" title="选择相应的作业编号">
+			<permit-no ref="permitNoInfo"></permit-no>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="warning" @click="dialogPermitNo = false" size="default" plain>取消</el-button>
+				<el-button type="primary" @click="confirmPermitNo" size="default">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 	</div>
 </template>
 
 <script lang="ts">
-	import { toRefs, reactive, ref, onMounted } from 'vue';
+	import {toRefs, reactive, ref, onMounted, defineAsyncComponent} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import { useUserInfo } from '/@/stores/userInfo';
 	import { Session } from '/@/utils/storage';
 	import { Edit, View, Plus, Delete, Refresh, Search, Download } from '@element-plus/icons-vue';
-	import { ElTable } from 'element-plus';
-	import type { FormInstance, FormRules } from 'element-plus'
-	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
+	import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
+	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
+	import { workProcessApi } from '/@/api/specialWorkSystem/workProcess';
 
 	// 定义接口来定义对象的类型
 	interface stateType {
@@ -175,14 +187,15 @@
 		deleteArr: Array<any>;
 		dialogDetails: boolean;
 		dialogAddRecord: boolean;
+		dialogPermitNo: boolean;
 		deleteDialog: boolean;
 		deleteSetDialog: boolean;
 		pageIndex: number;
 		pageSize: number;
 		chosenIndex: null | number;
 		deleteId: null | number;
-		searchWord: string;
-		searchType: number | null;
+		workPermitNo: string;
+		workType: number | null;
 		totalSize: number;
 		addRecord: {
 
@@ -190,58 +203,26 @@
 		details: {
 
 		};
-		workType: Array<any>
+		workTypeList: Array<any>
 	}
 
 	export default {
 		name: 'gasCheck',
-		components: {},
+		components: {
+			permitNo: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue'))
+		},
 		setup() {
 			const userInfo = useUserInfo();
 			const { userInfos } = storeToRefs(userInfo);
-
+			const permitNoInfo = ref()
 			const state = reactive<stateType>({
 				pageIndex: 1,
 				pageSize: 10,
 				totalSize: 0,
 				chosenIndex: null,
-				searchWord: '',
-				searchType: null,
-				tableData: [
-					{
-						id: 'GTXH-0000001',
-						workType: '动火作业',
-						combustible: 5,
-						oxygen: 20,
-						co: 0,
-						hs: 0,
-						desc: 'A车间动火作业过程气体检测异常',
-						name: '李羽飞',
-						updateTime: '2022-08-32 12:00:00'
-					},
-					{
-						id: 'GTXH-0000002',
-						workType: '动火作业',
-						combustible: 0,
-						oxygen: 20.8,
-						co: 0,
-						hs: 0,
-						desc: 'B车间动火作业过程气体检查',
-						name: '李羽飞',
-						updateTime: '2022-08-32 16:31:44'
-					},
-					{
-						id: 'GTXH-0000003',
-						workType: '动火作业',
-						combustible: 0,
-						oxygen: 21,
-						co: 0,
-						hs: 0,
-						desc: 'C车间动火作业过程气体检测异常',
-						name: '李羽飞',
-						updateTime: '2022-08-32 17:05:20'
-					}
-				],
+				workPermitNo: '',
+				workType: null,
+				tableData: [],
 				departmentList: [],
 				department: '',
 				workerList: [],
@@ -254,6 +235,7 @@
 				multipleSelection: [],
 				dialogDetails: false,
 				dialogAddRecord: false,
+				dialogPermitNo: false,
 				deleteDialog: false,
 				deleteSetDialog: false,
 				addRecord: {
@@ -264,7 +246,7 @@
 				},
 				deleteId: null,
 				deleteArr: [],
-				workType: [
+				workTypeList: [
 					{ id: 1, name: '动火作业' },
 					{ id: 2, name: '受限空间作业' },
 					{ id: 3, name: '吊装作业' },
@@ -278,36 +260,26 @@
 
 			const addRef = ref<FormInstance>();
 			const addRules = reactive<FormRules>({
-				id: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				workPermitNo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 				combustible: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 				oxygen: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				co: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				hs: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				desc: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				updateTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+				carbonMonoxide: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				hydrogenSulfide: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				info: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
 			});
 
 			// 页面载入时执行方法
 			onMounted(() => {
-				// getListByPage();
-				// getAllDepartment();
+				getListByPage()
 			});
 
-			// 分页获取班组管理列表
+			// 分页获取气体检测列表
 			const getListByPage = async () => {
-				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { groupName: state.searchWord, containGroupMemberEnable: true } };
-				let res = await teamManageApi().getRecordPage(data);
+				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.workType, workPermitNo: state.workPermitNo } };
+				let res = await workProcessApi().getDetectionListPage(data);
 				if (res.data.code === '200') {
-					state.tableData = res.data.data.map((item) => {
-						if (!item.groupMembers || item.groupMembers == null) {
-							item.groupMembers = [];
-						} else {
-							item.groupMembers = Array.from(item.groupMembers, ({ username }) => username);
-						}
-						return item;
-					});
+					state.tableData = JSON.parse(JSON.stringify(res.data.data))
 					state.totalSize = res.data.total;
 				} else {
 					ElMessage({
@@ -317,36 +289,21 @@
 				}
 			};
 
-			// 获取部门列表
-			const getAllDepartment = async () => {
-				let res = await teamManageApi().getAllDepartment();
-				if (res.data.code === '200') {
-					state.departmentList = res.data.data;
-				} else {
+			const confirmPermitNo = ()=>{
+				if(permitNoInfo.value.workPermitNo == ''){
 					ElMessage({
 						type: 'warning',
-						message: res.data.msg
+						message: '请选择相应的作业编码'
 					});
+				}else{
+					state.addRecord.workPermitNo = permitNoInfo.value.workPermitNo
+					state.dialogPermitNo = false
 				}
-			};
-
-			const handleChange = async (value) => {
-				state.addRecord.depId = value;
-				console.log(state.addRecord.department, 'de');
-				let res = await teamManageApi().getAllMember(value);
-				if (res.data.code === '200') {
-					state.workerList = res.data.data;
-				} else {
-					ElMessage({
-						type: 'warning',
-						message: res.data.msg
-					});
-				}
-			};
+			}
 
 			// 关键词查询记录
 			const searchRecord = async () => {
-				if (state.searchWord == '') {
+				if (state.workPermitNo == ''&& state.workType == null) {
 					ElMessage({
 						type: 'warning',
 						message: '请输入查询关键词'
@@ -357,13 +314,14 @@
 			};
 
 			const clearSearch = async () => {
-				state.searchWord = '';
+				state.workPermitNo = '';
+				state.workType = null;
 				getListByPage();
 			};
 
-			// 添加班组管理方法
+			// 添加气体检测方法
 			const addRecord = async (data: any) => {
-				let res = await teamManageApi().addRecord(data);
+				let res = await workProcessApi().postDetectionReport(data);
 				if (res.data.code === '200') {
 					ElMessage({
 						type: 'success',
@@ -384,18 +342,17 @@
 				await formEl.validate(async (valid, fields) => {
 					if (valid) {
 						const data = {
-							groupName: state.addRecord.groupName,
-							groupInfo: state.addRecord.groupInfo,
-							depId: state.addRecord.depId,
-							groupMemberIds: state.addRecord.groupMembers
+							workPermitNo: state.addRecord.workPermitNo,
+							info: state.addRecord.info,
+							combustible: Number(state.addRecord.combustible),
+							oxygen: Number(state.addRecord.oxygen),
+							carbonMonoxide: Number(state.addRecord.carbonMonoxide),
+							hydrogenSulfide: Number(state.addRecord.hydrogenSulfide),
+							source: 2,
 						};
-						if (state.chosenIndex == null) {
-							await addRecord(data);
-						} else {
-							data.groupId = JSON.stringify(state.addRecord.groupId);
-							await editRecord(data);
-						}
+						await addRecord(data);
 						state.dialogAddRecord = false;
+						getListByPage();
 					} else {
 						console.log('error submit!', fields);
 					}
@@ -451,7 +408,8 @@
 				Refresh,
 				Plus,
 				Search,
-				handleChange,
+				permitNoInfo,
+				confirmPermitNo,
 				searchRecord,
 				clearSearch,
 				viewRecord,
diff --git a/src/views/specialWorkSystem/workProcess/workCheck/index.vue b/src/views/specialWorkSystem/workProcess/workCheck/index.vue
index 282ed9d..79adf36 100644
--- a/src/views/specialWorkSystem/workProcess/workCheck/index.vue
+++ b/src/views/specialWorkSystem/workProcess/workCheck/index.vue
@@ -5,13 +5,13 @@
 				<el-col :span="6" style="display:flex;align-items: center">
 					<span style="white-space: nowrap">作业证编号:</span>
 					<div class="grid-content topInfo">
-						<el-input v-model="searchWord"></el-input>
+						<el-input v-model="workPermitNo" placeholder="请输入作业证编号"></el-input>
 					</div>
 				</el-col>
 				<el-col :span="6" style="display:flex;align-items: center">
 					<span style="white-space: nowrap">作业类型:</span>
 					<div class="grid-content topInfo">
-						<el-select v-model="searchType" placeholder="请选择作业类型">
+						<el-select v-model="workType" placeholder="请选择作业类型">
 							<el-option
 									v-for="item in workTypeList"
 									:key="item.id"
@@ -30,27 +30,26 @@
 						<el-col :span="12" class="mainCardBtn">
 							<el-button type="primary" :icon="Plus" size="default" @click="dialogAddRecord = true">新增</el-button>
 						</el-col>
-						<el-button type="primary" :icon="Refresh" size="default"/>
+						<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData"/>
 					</el-row>
 					<el-table
-							ref="multipleTableRef"
 							:data="tableData"
 							style="width: 100%"
 							height="calc(100% - 100px)"
 							:header-cell-style="{background: '#fafafa'}"
 					>
-						<el-table-column type="index" label="序号" width="200"/>
-						<el-table-column property="id" label="作业证编号" width="200"/>
-						<el-table-column property="workType" label="作业类型" width="200"/>
-						<el-table-column property="checkInfo" label="检查内容"/>
-						<el-table-column property="result" label="检查结果">
+						<el-table-column type="index" label="序号" width="80"/>
+						<el-table-column property="workPermitNo" label="作业证编号"/>
+						<el-table-column property="workTypeDesc" label="作业类型"/>
+						<el-table-column property="checkContent" label="检查内容"/>
+						<el-table-column property="checkResultDesc" label="检查结果">
 							<template #default="scope">
-								<span :class="scope.row.result == '异常' ? 'red': ''">{{ scope.row.result }}</span>
+								<span :class="scope.row.checkResultDesc == '异常' ? 'red': ''">{{ scope.row.checkResultDesc}}</span>
 							</template>
 						</el-table-column>
-						<el-table-column property="desc" label="描述" width="200"/>
-						<el-table-column property="name" label="分析人"/>
-						<el-table-column property="updateTime" label="分析时间"/>
+						<el-table-column property="info" label="描述" show-overflow-tooltip width="200"/>
+						<el-table-column property="operatorUname" label="分析人"/>
+						<el-table-column property="operationTime" label="分析时间" width="180"/>
 						<el-table-column fixed="right" label="操作" align="center" width="250">
 							<template #default="scope">
 								<el-button link type="primary" size="small" :icon="View" @click="viewRecord(scope.row)">查看</el-button>
@@ -65,7 +64,7 @@
 								small=false
 								background
 								layout="total, sizes, prev, pager, next, jumper"
-								:total="100"
+								:total="totalSize"
 								@size-change="handleSizeChange"
 								@current-change="handleCurrentChange"
 						/>
@@ -76,37 +75,42 @@
 		<el-dialog v-model="dialogDetails" title="检查记录">
 			<el-form :model="details" label-width="120px">
 				<el-form-item label="作业证编号">
-					<el-input v-model="details.id" readonly/>
+					<el-input v-model="details.workPermitNo" readonly/>
 				</el-form-item>
 				<el-form-item label="作业类型">
-					<el-input v-model="details.workType" readonly/>
+					<el-input v-model="details.workTypeDesc" readonly/>
 				</el-form-item>
 				<el-form-item label="检查内容">
-					<el-input v-model="details.checkInfo" readonly/>
+					<el-input v-model="details.checkContent" readonly/>
 				</el-form-item>
 				<el-form-item label="检查结果">
-					<el-input v-model="details.result" readonly/>
+					<el-input :class="details.checkResultDesc == '异常' ? 'red': ''" v-model="details.checkResultDesc" readonly/>
+				</el-form-item>
+				<el-form-item label="现场图片" v-if="details.imagePaths && details.imagePaths.length>0">
+					<el-image v-for="item in details.imagePaths" :preview-src-list="details.imagePaths" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 				</el-form-item>
 				<el-form-item label="描述">
-					<el-input v-model="details.desc" type="textarea" readonly/>
+					<el-input v-model="details.info" type="textarea" readonly/>
 				</el-form-item>
 				<el-form-item label="分析人">
-					<el-input v-model="details.name" readonly/>
+					<el-input v-model="details.operatorUname" readonly/>
 				</el-form-item>
 				<el-form-item label="分析时间">
-					<el-input v-model="details.updateTime" readonly/>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="primary" @click="dialogDetails = false" size="default">确认</el-button>
+					<el-input v-model="details.operationTime" readonly/>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="primary" @click="dialogDetails = false">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 		<el-dialog v-model="dialogAddRecord" title="新增" @close="closeAdd" @open="openAdd">
 			<el-form :model="addRecord" label-width="120px" ref="addRef" :rules="addRules">
-				<el-form-item label="作业证编号" prop="id">
-					<el-input v-model="addRecord.id">
+				<el-form-item label="作业证编号" prop="workPermitNo">
+					<el-input v-model="addRecord.workPermitNo" placeholder="作业编号须为已审批作业的编号,可点击右方按钮查询">
 						<template #append>
-							<el-button :icon="Search" />
+							<el-button :icon="Search" @click="dialogPermitNo = true"/>
 						</template>
 					</el-input>
 				</el-form-item>
@@ -120,16 +124,16 @@
 						/>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="检查内容" prop="checkInfo">
-					<el-input v-model="addRecord.checkInfo"> </el-input>
+				<el-form-item label="检查内容" prop="checkContent">
+					<el-input v-model="addRecord.checkContent"> </el-input>
 				</el-form-item>
-				<el-form-item label="检查结果" prop="result">
-					<el-select v-model="addRecord.result">
-						<el-option label="正常" value="0"/>
-						<el-option label="异常" value="1"/>
+				<el-form-item label="检查结果" prop="checkResult">
+					<el-select v-model="addRecord.checkResult">
+						<el-option label="正常" value="1"/>
+						<el-option label="异常" value="2"/>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="现场照片" prop="photos">
+				<el-form-item label="现场照片" prop="imagePaths">
 					<el-upload accept="image/*" :on-exceed="showTip" :on-preview="handlePictureCardPreview" :limit='imgLimit' v-model:file-list="fileList" :http-request="upload" :action="uploadUrl" list-type="picture-card" :on-remove="handleRemove" :before-remove="beforeRemove" :before-upload="getUploadUrl">
 						<el-icon><Plus /></el-icon>
 						<template #tip>
@@ -137,23 +141,34 @@
 						</template>
 					</el-upload>
 				</el-form-item>
-				<el-form-item label="描述" prop="desc">
-					<el-input v-model="addRecord.desc" type="textarea"> </el-input>
-				</el-form-item>
-				<el-form-item>
-					<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
-					<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+				<el-form-item label="描述" prop="info">
+					<el-input v-model="addRecord.info" type="textarea"> </el-input>
 				</el-form-item>
 			</el-form>
+			<template #footer>
+				  <span class="dialog-footer">
+					<el-button type="warning" @click="dialogAddRecord = false" size="default" plain>取消</el-button>
+					<el-button type="primary" @click="confirmAddRecord(addRef)" size="default">确认</el-button>
+				  </span>
+			</template>
 		</el-dialog>
 		<el-dialog v-model="dialogVisible">
 			<img w-full :src="dialogImageUrl" alt="Preview Image" />
+		</el-dialog>
+		<el-dialog v-model="dialogPermitNo" title="选择相应的作业编号">
+			<permit-no ref="permitNoInfo"></permit-no>
+			<template #footer>
+			  <span class="dialog-footer">
+				<el-button type="warning" @click="dialogPermitNo = false" size="default" plain>取消</el-button>
+				<el-button type="primary" @click="confirmPermitNo" size="default">确认</el-button>
+			  </span>
+			</template>
 		</el-dialog>
 	</div>
 </template>
 
 <script lang="ts">
-	import { toRefs, reactive, ref, onMounted } from 'vue';
+	import {toRefs, reactive, ref, onMounted, defineAsyncComponent} from 'vue';
 	import { storeToRefs } from 'pinia';
 	import { initBackEndControlRoutes } from '/@/router/backEnd';
 	import { useUserInfo } from '/@/stores/userInfo';
@@ -162,8 +177,9 @@
 	import { ElTable, ElMessage, ElMessageBox } from 'element-plus'
 	import type { FormInstance, FormRules, UploadProps, UploadUserFile } from 'element-plus'
 	import { teamManageApi } from '/@/api/systemManage/basicDateManage/personShiftManage/teamManage';
-	import {workApplyApi} from "/@/api/specialWorkSystem/workApply";
-	import axios from "axios";
+	import { workProcessApi } from '/@/api/specialWorkSystem/workProcess';
+	import { workApplyApi } from '/@/api/specialWorkSystem/workApply';
+	import axios from 'axios';
 
 	// 定义接口来定义对象的类型
 	interface stateType {
@@ -178,14 +194,15 @@
 		deleteArr: Array<any>;
 		dialogDetails: boolean;
 		dialogAddRecord: boolean;
+		dialogPermitNo: boolean;
 		deleteDialog: boolean;
 		deleteSetDialog: boolean;
 		pageIndex: number;
 		pageSize: number;
 		chosenIndex: null | number;
 		deleteId: null | number;
-		searchWord: string;
-		searchType: number | null
+		workPermitNo: string;
+		workType: number | null;
 		totalSize: number;
 		addRecord: {};
 		details: {};
@@ -196,64 +213,42 @@
 	}
 	export default {
 		name: 'workCheck',
-		components: {},
+		components: {
+			permitNo: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workProcess/components/dialogPermitNo.vue'))
+		},
 		setup() {
 			const userInfo = useUserInfo();
 			const { userInfos } = storeToRefs(userInfo);
-
+			const permitNoInfo = ref()
 			const state = reactive<stateType>({
 				pageIndex: 1,
 				pageSize: 10,
 				totalSize: 0,
 				chosenIndex: null,
-				searchWord: '',
-				searchType: null,
+				workPermitNo: '',
+				workType: null,
 				isOverSize: false,
 				fileList: [],
 				imgLimit: 3,
 				uploadUrl: '',
 				dialogVisible: false,
 				dialogImageUrl: null,
-				tableData: [
-					{
-						id: 'GTXH-0000001',
-						workType: '动火作业',
-						checkInfo: '动火作业检查',
-						result: '正常',
-						desc: 'A车间动火作业过程检查',
-						name: '李羽飞',
-						updateTime: '2022-08-31 12:00:00'
-					},
-					{
-						id: 'GTXH-0000002',
-						workType: '动火作业',
-						checkInfo: '动火作业检查',
-						result: '正常',
-						desc: 'B车间动火作业过程气体检查',
-						name: '李羽飞',
-						updateTime: '2022-08-31 16:31:44'
-					},
-					{
-						id: 'GTXH-0000003',
-						workType: '动火作业',
-						checkInfo: '动火作业检查',
-						result: '异常',
-						desc: '',
-						name: '李羽飞',
-						updateTime: '2022-08-31 17:05:20'
-					}
-				],
+				tableData: [],
 				multipleSelection: [],
 				dialogDetails: false,
 				dialogAddRecord: false,
+				dialogPermitNo: false,
 				deleteDialog: false,
 				deleteSetDialog: false,
 				addRecord: {
-
+					workPermitNo: '',
+					checkContent: '',
+					checkResult: '',
+					info: '',
+					source: 2,
+					imagePaths: []
 				},
-				details: {
-
-				},
+				details: {},
 				deleteId: null,
 				deleteArr: [],
 				workTypeList: [
@@ -270,34 +265,25 @@
 
 			const addRef = ref<FormInstance>();
 			const addRules = reactive<FormRules>({
-				id: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				workPermitNo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 				workType: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				checkInfo: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				result: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				photos: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				desc: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				name: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
-				updateTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
+				checkContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				checkResult: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				imagePaths: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+				info: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
 			});
 
 			// 页面载入时执行方法
 			onMounted(() => {
-				// getListByPage();
+				getListByPage();
 			});
 
-			// 分页获取班组管理列表
+			// 分页获取作业检查列表
 			const getListByPage = async () => {
-				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { groupName: state.searchWord, containGroupMemberEnable: true } };
-				let res = await teamManageApi().getRecordPage(data);
+				const data = { pageSize: state.pageSize, pageIndex: state.pageIndex, searchParams: { workType: state.workType, workPermitNo: state.workPermitNo } };
+				let res = await workProcessApi().getCheckListPage(data);
 				if (res.data.code === '200') {
-					state.tableData = res.data.data.map((item) => {
-						if (!item.groupMembers || item.groupMembers == null) {
-							item.groupMembers = [];
-						} else {
-							item.groupMembers = Array.from(item.groupMembers, ({ username }) => username);
-						}
-						return item;
-					});
+					state.tableData = res.data.data
 					state.totalSize = res.data.total;
 				} else {
 					ElMessage({
@@ -314,7 +300,17 @@
 					message: '超出文件上传数量'
 				});
 			}
-
+			const confirmPermitNo = ()=>{
+				if(permitNoInfo.value.workPermitNo == ''){
+					ElMessage({
+						type: 'warning',
+						message: '请选择相应的作业编码'
+					});
+				}else{
+					state.addRecord.workPermitNo = permitNoInfo.value.workPermitNo
+					state.dialogPermitNo = false
+				}
+			}
 			const handlePreview: UploadProps['onPreview'] = (uploadFile) => {
 				console.log(uploadFile);
 			};
@@ -335,12 +331,15 @@
 					return false
 				}else{
 					const res = await workApplyApi().getUploadUrl(rawFile.name);
-					state.addRecord.photos.push(res.data.data.fileName)
+					state.addRecord.imagePaths.push(res.data.data.fileName)
 					state.uploadUrl = res.data.data.uploadUrl;
+					console.log(state.addRecord.imagePaths,state.uploadUrl,6666666666666)
 				}
 			};
 
 			const upload = async (params: any) => {
+				// const formData = new FormData();
+				// formData.append('file', state.fileList[0].raw);
 				let reader = new FileReader();
 				reader.readAsArrayBuffer(params.file);
 				reader.onload = async () => {
@@ -367,7 +366,7 @@
 						})
 								.then(() => {
 									// console.log(state.workDetail.photos,'path')
-									const list = JSON.parse(JSON.stringify(state.addRecord.photos))
+									const list = JSON.parse(JSON.stringify(state.addRecord.imagePaths))
 									fileList.map((item,index)=>{
 										if(item.uid === file.uid){
 											fileList.splice(index,1)
@@ -381,7 +380,7 @@
 									reject(false);
 								});
 					}else{
-						const list = JSON.parse(JSON.stringify(state.addRecord.photos))
+						const list = JSON.parse(JSON.stringify(state.addRecord.imagePaths))
 						fileList.map((item,index)=>{
 							if(item.uid === file.uid){
 								fileList.splice(index,1)
@@ -414,7 +413,7 @@
 
 			// 关键词查询记录
 			const searchRecord = async () => {
-				if (state.searchWord == '') {
+				if (state.workPermitNo == ''&& state.workType == null) {
 					ElMessage({
 						type: 'warning',
 						message: '请输入查询关键词'
@@ -425,13 +424,15 @@
 			};
 
 			const clearSearch = async () => {
-				state.searchWord = '';
+				state.workPermitNo = '';
+				state.workType = null;
 				getListByPage();
 			};
 
-			// 添加班组管理方法
+
+			// 添加气体检测方法
 			const addRecord = async (data: any) => {
-				let res = await teamManageApi().addRecord(data);
+				let res = await workProcessApi().postCheckReport(data);
 				if (res.data.code === '200') {
 					ElMessage({
 						type: 'success',
@@ -446,24 +447,15 @@
 				}
 			};
 
+
 			// 新增修改记录
 			const confirmAddRecord = async (formEl: FormInstance | undefined) => {
 				if (!formEl) return;
 				await formEl.validate(async (valid, fields) => {
 					if (valid) {
-						const data = {
-							groupName: state.addRecord.groupName,
-							groupInfo: state.addRecord.groupInfo,
-							depId: state.addRecord.depId,
-							groupMemberIds: state.addRecord.groupMembers
-						};
-						if (state.chosenIndex == null) {
-							await addRecord(data);
-						} else {
-							data.groupId = JSON.stringify(state.addRecord.groupId);
-							await editRecord(data);
-						}
+						await addRecord(state.addRecord);
 						state.dialogAddRecord = false;
+						getListByPage();
 					} else {
 						console.log('error submit!', fields);
 					}
@@ -519,7 +511,9 @@
 				Refresh,
 				Plus,
 				Search,
+				permitNoInfo,
 				showTip,
+				confirmPermitNo,
 				handlePreview,
 				handlePictureCardPreview,
 				getUploadUrl,
@@ -546,6 +540,10 @@
 	$homeNavLengh: 8;
 	.red{
 		color: red;
+
+		::v-deep(input){
+			color: red;
+		}
 	}
 	.home-container {
 		height: calc(100vh - 144px);
diff --git a/src/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue b/src/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue
index 71e9cfc..dcb6adc 100644
--- a/src/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myApproval/components/brokenLog.vue
@@ -38,7 +38,7 @@
 				<el-input v-model="details.workDetail.involvedDepIds" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="图片">
-				<el-image v-for="item in details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.bcPath" :preview-src-list="details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue b/src/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue
index 0110338..244330e 100644
--- a/src/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myApproval/components/groundLog.vue
@@ -38,7 +38,7 @@
 				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="图片">
-				<el-image v-for="item in details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.gbPath" :preview-src-list="details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue b/src/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue
index 52604fd..f307fc0 100644
--- a/src/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myApproval/components/plateLog.vue
@@ -56,7 +56,7 @@
 				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="盲板位置图">
-				<el-image v-for="item in details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.bpLocationMapPath" :preview-src-list="details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue
index 986ab4b..b87725d 100644
--- a/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/brokenLog.vue
@@ -38,7 +38,7 @@
 				<el-input v-model="details.workDetail.involvedDepIds" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="图片">
-				<el-image v-for="item in details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.bcPath" :preview-src-list="details.workDetail.bcPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue
index d865b1e..e05a39b 100644
--- a/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/groundLog.vue
@@ -38,7 +38,7 @@
 				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="图片">
-				<el-image v-for="item in details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.gbPath" :preview-src-list="details.workDetail.gbPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue b/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue
index e45e298..142b69d 100644
--- a/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue
+++ b/src/views/specialWorkSystem/workTicket/myJobApply/components/plateLog.vue
@@ -56,7 +56,7 @@
 				<el-input v-model="details.workDetail.otherSpecialWork" readonly type="textarea"/>
 			</el-form-item>
 			<el-form-item label="盲板位置图">
-				<el-image v-for="item in details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
+				<el-image v-for="item in details.workDetail.bpLocationMapPath" :preview-src-list="details.workDetail.bpLocationMapPath" style="width: 150px; height: 150px;margin-right: 50px;margin-bottom: 20px" :src="item" fit="cover" />
 			</el-form-item>
 			<el-form-item label="期望开始时间">
 				<el-input v-model="details.expStartTime" readonly />
diff --git a/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue b/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
index e9e4e07..e834d40 100644
--- a/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
+++ b/src/views/system/personShiftManage/personTimeManage/holidayTimeGroup/index.vue
@@ -323,7 +323,8 @@
                     if (state.chosenIndex == null) {
                         await addRecord(data);
                     } else {
-                        (data.id = JSON.stringify(state.addRecord.id)), await editRecord(data);
+                        data.id = JSON.stringify(state.addRecord.id)
+                        await editRecord(data);
                     }
                     state.dialogAddRecord = false;
                 } else {

--
Gitblit v1.9.2