From 5eb6903bde0b9be730b35fc116eabf808f8f64e0 Mon Sep 17 00:00:00 2001
From: web <candymxq888@outlook.com>
Date: 星期二, 18 三月 2025 11:33:58 +0800
Subject: [PATCH] fix:简化项目模板&剔除无用部分

---
 src/permission.js                         |    3 
 src/views/system/role/index.vue           |    2 
 src/screen/flow.vue                       |    1 
 src/assets/images/login_icon.png          |    0 
 src/layout/components/Navbar.vue          |   12 
 src/utils/ruoyi.js                        |    6 
 src/components/RightToolbar/index.vue     |  134 +++++
 src/layout/components/TagsView/index.vue  |    2 
 src/api/facility/parameter.js             |    2 
 src/views/facility/facilityType/index.vue |  384 +++++++-------
 src/utils/validate.js                     |   23 
 .env.development                          |    2 
 /dev/null                                 |  157 ------
 src/store/modules/tagsView.js             |    1 
 src/views/system/menu/index.vue           |    2 
 src/views/system/user/index.vue           |    3 
 src/views/facility/facilityList/index.vue |    7 
 src/views/login.vue                       |    4 
 src/components/UploadIcons/index.vue      |  105 ++++
 src/main.js                               |    7 
 src/api/facility/supplier.js              |    0 
 src/layout/components/Sidebar/index.vue   |    6 
 src/utils/index.js                        |    2 
 src/views/system/dict/index.vue           |  665 +++++++++++++------------
 24 files changed, 823 insertions(+), 707 deletions(-)

diff --git a/.env.development b/.env.development
index c4c671d..7396d49 100644
--- a/.env.development
+++ b/.env.development
@@ -6,7 +6,7 @@
 VITE_APP_ENV = 'development'
 
 # 金川接口
-  #  VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8030'
+  # VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8030'
   # VITE_APP_PUBLIC_REQUEST_API = 'http://113.250.189.120:8036'
 #后端本地
     VITE_APP_PUBLIC_REQUEST_API = 'http://192.168.0.200:8036'
diff --git a/src/api/alarmApi/alarmHistory.js b/src/api/alarmApi/alarmHistory.js
deleted file mode 100644
index 9c53ff6..0000000
--- a/src/api/alarmApi/alarmHistory.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-09-30 09:17:48
- * @FilePath: \water-qinghe-web\src\api\alarmApi\alarmHistory.js
- * @Description: 历史记录api
- */
-import { publicRequest } from '@/utils/request'
-export default function alarmHistoryApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/alarmHistory/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/alarmHistory/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/alarmHistory/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/alarmHistory/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/alarmHistory/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/alarmHistory/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/alarmHistory/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		setSort: (data) => {
-			return publicRequest({
-				url: `/alarmHistory/setSort`,
-				method: 'post',
-				data,
-			});
-		}
-	};
-}
diff --git a/src/api/alarmApi/alarmScheme.js b/src/api/alarmApi/alarmScheme.js
deleted file mode 100644
index 985755a..0000000
--- a/src/api/alarmApi/alarmScheme.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-10 08:57:04
- * @FilePath: \water-qinghe-web\src\api\alarmApi\alarmHistory.js
- * @Description: 历史记录api
- */
-import { publicRequest } from '@/utils/request'
-export default function alarmSchemeApi() {
-    return {
-        create: (data) => {
-            return publicRequest({
-                url: '/alarmScheme/create',
-                method: 'post',
-                data,
-            });
-        },
-        modify: (data) => {
-            return publicRequest({
-                url: '/alarmScheme/modify',
-                method: 'post',
-                data,
-            });
-        },
-        remove: (data) => {
-            return publicRequest({
-                url: `/alarmScheme/remove?id=${data}`,
-                method: 'post',
-                data,
-            });
-        },
-        stop: (data) => {
-            return publicRequest({
-                url: `/alarmScheme/stop?id=${data}`,
-                method: 'post',
-                data,
-            });
-        },
-        enable: (data) => {
-            return publicRequest({
-                url: `/alarmScheme/enable?id=${data}`,
-                method: 'post',
-                data,
-            });
-        },
-        search: (data) => {
-            return publicRequest({
-                url: '/alarmScheme/search',
-                method: 'post',
-                data,
-            });
-        },
-        get: (data) => {
-            return publicRequest({
-                url: `/alarmScheme/get?id=${data}`,
-                method: 'get',
-                data,
-            });
-        },
-        setSort: (data) => {
-            return publicRequest({
-                url: `/alarmScheme/setSort`,
-                method: 'post',
-                data,
-            });
-        }
-    };
-}
diff --git a/src/api/archivesApi/index.js b/src/api/archivesApi/index.js
deleted file mode 100644
index cef101e..0000000
--- a/src/api/archivesApi/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-10 08:57:04
- * @FilePath: \water-qinghe-web\src\api\archivesApi\index.js
- * @Description: 用户档案api
- */
-import { publicRequest } from '@/utils/request'
-export default function archivesApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/archives/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/archives/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/archives/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/archives/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/archives/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/archives/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/archives/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		setSort: (data) => {
-			return publicRequest({
-				url: `/archives/setSort`,
-				method: 'post',
-				data,
-			});
-		}
-	};
-}
diff --git a/src/api/area/index.js b/src/api/area/index.js
deleted file mode 100644
index 96115b3..0000000
--- a/src/api/area/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-05-16 11:24:17
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-07-18 17:24:10
- * @FilePath: \wisdom-water-factory-web\src\api\configApi\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request'
-
-//区域管理
-export function areaApi() {
-    return {
-        //创建
-        create: (data) => {
-            return publicRequest({
-                url: '/waterArea/create',
-                method: 'post',
-                data
-            });
-        },   
-        //删除
-        remove: (data) => {
-            return publicRequest({
-                url: `/waterArea/remove?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //编辑
-        modify: (data) => {
-            return publicRequest({
-                url: '/waterArea/modify',
-                method: 'post',
-                data
-            });
-        },
-        //分页
-        search: (data) => {
-            return publicRequest({
-                url: '/waterArea/search',
-                method: 'post',
-                data
-            });
-        },
-        //查询树形结构
-        getTree: () => {
-            return publicRequest({
-                url: '/waterArea/getParentArea',
-                method: 'get'
-            });
-        },
-        //获取
-        get: (id) => {
-            return publicRequest({
-                url: `/waterArea/get?id=${id}`,
-                method: 'get'
-            });
-        },
-    };
-}
diff --git a/src/api/configuration/alarmDefinition/index.js b/src/api/configuration/alarmDefinition/index.js
deleted file mode 100644
index b61be2e..0000000
--- a/src/api/configuration/alarmDefinition/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-12 15:06:52
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-12 15:22:30
- * @FilePath: \water-qinghe-web\src\api\configuration\alarmDefinition\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-
-import { publicRequest } from '@/utils/request'
-//异常定义
-export default function alarmDefinition() {
-	return {
-        //创建异常定义
-		create: (data) => {
-			return publicRequest({
-				url: '/alarmDefinition/create',
-				method: 'post',
-				data,
-			});
-		},
-        //编辑异常定义
-        modify: (data) => {
-			return publicRequest({
-				url: '/alarmDefinition/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询异常定义
-        search: (data) => {
-			return publicRequest({
-				url: '/alarmDefinition/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取异常定义
-        get: (id) => {
-			return publicRequest({
-				url: `/alarmDefinition/get?id=${id}`,
-				method: 'get',
-			});
-		},
-        //删除
-        remove: (id) => {
-            return publicRequest({
-                    url: `/alarmDefinition/remove?id=${id}`,
-                    method: 'get'
-            });
-        },
-	};
-}
\ No newline at end of file
diff --git a/src/api/configuration/bussinessApi/index.js b/src/api/configuration/bussinessApi/index.js
deleted file mode 100644
index a3337ed..0000000
--- a/src/api/configuration/bussinessApi/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-14 10:48:03
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-14 15:33:09
- * @FilePath: \water-qinghe-web\src\api\configuration\bussinessApi\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-export default function salePlaceApi() {
-	return {
-        //创建营业网点
-		create: (data) => {
-			return publicRequest({
-				url: '/businessHall/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除营业网点
-		remove: (data) => {
-			return publicRequest({
-				url: `/businessHall/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //编辑营业网点
-        modify: (data) => {
-			return publicRequest({
-				url: '/businessHall/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询营业网点
-        search: (data) => {
-			return publicRequest({
-				url: '/businessHall/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取营业网点
-        get: (id) => {
-			return publicRequest({
-				url: `/businessHall/get?id=${id}`,
-				method: 'get'
-			});
-		},
-		//获取营业网点管理员
-		getByAccount: () => {
-			return publicRequest({
-				url: `/businessHall/getByAccount`,
-				method: 'get'
-			});
-		},
-		//营业网点绑定账号
-        bind: (data) => {
-			return publicRequest({
-				url: `/businessHall/bindAccount`,
-				method: 'post',
-				data,
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/configuration/companySetting/index.js b/src/api/configuration/companySetting/index.js
deleted file mode 100644
index 9527252..0000000
--- a/src/api/configuration/companySetting/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 15:42:27
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-13 15:45:58
- * @FilePath: \water-qinghe-web\src\api\configuration\companySetting\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-//公司配置信息
-export default function companySetting() {
-	return {
-		//创建公司配置信息
-		create: (data) => {
-			return publicRequest({
-				url: '/companySetting/create',
-				method: 'post',
-				data,
-			});
-		},
-		//删除公司配置信息
-		remove: (id) => {
-			return publicRequest({
-				url: `/companySetting/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-		//编辑公司配置信息
-		modify: (data) => {
-			return publicRequest({
-				url: '/companySetting/modify',
-				method: 'post',
-				data,
-			});
-		},
-		//分页查询公司配置信息
-		search: (data) => {
-			return publicRequest({
-				url: '/companySetting/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取公司配置信息
-		get: (id) => {
-			return publicRequest({
-				url: `/companySetting/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/configuration/defaultAmountSetting/index.js b/src/api/configuration/defaultAmountSetting/index.js
deleted file mode 100644
index 3538395..0000000
--- a/src/api/configuration/defaultAmountSetting/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-12 16:55:00
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-12 17:01:11
- * @FilePath: \water-qinghe-web\src\api\configuration\defaultAmountSetting\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function defaultAmountSetting() {
-    return {
-        //创建[违约金配置]
-        create: (data) => {
-            return publicRequest({
-                url: '/defaultAmountSetting/create',
-                method: 'post',
-                data,
-            });
-        },
-        //删除[违约金配置]
-        remove: (id) => {
-            return publicRequest({
-                url: `/defaultAmountSetting/remove?id=${id}`,
-                method: 'post',
-            });
-        },
-        //编辑[违约金配置]
-        modify: (data) => {
-            return publicRequest({
-                url: '/defaultAmountSetting/modify',
-                method: 'post',
-                data,
-            });
-        },
-        //查询[违约金配置]
-        search: (data) => {
-            return publicRequest({
-                url: '/defaultAmountSetting/search',
-                method: 'post',
-                data,
-            });
-        },
-        //获取[违约金配置]
-        getD: (id) => {
-            return publicRequest({
-                url: `/defaultAmountSetting/get?id=${id}`,
-                method: 'get',
-            });
-        },
-    };
-
-}
\ No newline at end of file
diff --git a/src/api/configuration/invoiceTitle/index.js b/src/api/configuration/invoiceTitle/index.js
deleted file mode 100644
index 97d9552..0000000
--- a/src/api/configuration/invoiceTitle/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 10:12:32
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 10:40:46
- * @FilePath: \water-qinghe-web\src\api\configuration\invoiceTitle\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-
-//发票抬头
-export default function invoiceTitle() {
-	return {
-        //创建发票抬头
-		create: (data) => {
-			return publicRequest({
-				url: '/invoiceTitle/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除发票抬头
-		remove: (data) => {
-			return publicRequest({
-				url: `/invoiceTitle/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //编辑发票抬头
-        modify: (data) => {
-			return publicRequest({
-				url: '/invoiceTitle/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //停用发票抬头
-        stop: (data) => {
-			return publicRequest({
-				url: `/invoiceTitle/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //启用发票抬头
-        enable: (data) => {
-			return publicRequest({
-				url: `/invoiceTitle/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询发票抬头
-        search: (data) => {
-			return publicRequest({
-				url: '/invoiceTitle/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取发票抬头
-        get: (id) => {
-			return publicRequest({
-				url: `/invoiceTitle/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/configuration/userClassify/index.js b/src/api/configuration/userClassify/index.js
deleted file mode 100644
index 2886077..0000000
--- a/src/api/configuration/userClassify/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-12 13:50:06
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-12 14:24:00
- * @FilePath: \water-qinghe-web\src\api\configuration\userClassify\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-//用户类型
-export default function userClassify() {
-	return {
-        //创建用户管理
-		create: (data) => {
-			return publicRequest({
-				url: '/userclassify/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除用户管理
-		remove: (id) => {
-			return publicRequest({
-				url: `/userclassify/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-        //编辑用户管理
-        modify: (data) => {
-			return publicRequest({
-				url: '/userclassify/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //停用用户管理
-        stop: (data) => {
-			return publicRequest({
-				url: `/userclassify/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询用户管理
-        search: (data) => {
-			return publicRequest({
-				url: '/userclassify/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取用户管理
-        get: (id) => {
-			return publicRequest({
-				url: `/userclassify/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
diff --git a/src/api/configuration/waterOtherFee/index.js b/src/api/configuration/waterOtherFee/index.js
deleted file mode 100644
index 521db6e..0000000
--- a/src/api/configuration/waterOtherFee/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-12 15:44:34
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-12 15:55:20
- * @FilePath: \water-qinghe-web\src\api\configuration\waterOtherFee\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-
-import { publicRequest } from '@/utils/request'
-//用水其他费用
-export default function waterOtherFee() {
-	return {
-        //创建用水其他费用
-		create: (data) => {
-			return publicRequest({
-				url: '/companyOtherFee/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除用水其他费用
-		remove: (id) => {
-			return publicRequest({
-				url: `/companyOtherFee/remove/${id}`,
-				method: 'post',
-			});
-		},
-        //停用用水其他费用
-        stop: (id) => {
-			return publicRequest({
-				url: `/companyOtherFee/stop/${id}`,
-				method: 'post',
-			});
-		},
-        //启用用水其他费用
-        enable: (id) => {
-			return publicRequest({
-				url: `/companyOtherFee/enable/${id}`,
-				method: 'post',
-			});
-		},
-        //编辑用水其他费用
-        modify: (data) => {
-			return publicRequest({
-				url: '/companyOtherFee/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询用水其他费用
-        search: (data) => {
-			return publicRequest({
-				url: '/companyOtherFee/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取用水其他费用
-        get: (data) => {
-			return publicRequest({
-				url: `/companyOtherFee/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/configuration/waterPrice/index.js b/src/api/configuration/waterPrice/index.js
deleted file mode 100644
index 8ee9a6f..0000000
--- a/src/api/configuration/waterPrice/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-//阶梯收费配置
-export default function TieredCharging() {
-	return {
-        //创建阶梯收费配置
-		create: (data) => {
-			return publicRequest({
-				url: '/tieredCharging/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除阶梯收费配置
-		remove: (id) => {
-			return publicRequest({
-				url: `/tieredCharging/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-        //编辑阶梯收费配置
-        modify: (data) => {
-			return publicRequest({
-				url: '/tieredCharging/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //停用阶梯收费配置
-        stop: (id) => {
-			return publicRequest({
-				url: `/tieredCharging/stop?id=${id}`,
-				method: 'post',
-			});
-		},
-        //启用阶梯收费配置
-        enable: (id) => {
-			return publicRequest({
-				url: `/tieredCharging/enable?id=${id}`,
-				method: 'post',
-			});
-		},
-        //分页查询阶梯收费配置
-        search: (data) => {
-			return publicRequest({
-				url: '/tieredCharging/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取阶梯收费配置
-        get: (id) => {
-			return publicRequest({
-				url: `/tieredCharging/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/examine/plan/index.js b/src/api/examine/plan/index.js
deleted file mode 100644
index 6145c63..0000000
--- a/src/api/examine/plan/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-05-17 17:11:53
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-10 17:52:11
- * @FilePath: \wisdom-water-factory-web\src\api\facilityExamine\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request.js'
-
-//巡检计划
-export function facilityExaminePlanApi() {
-    return {
-        //创建巡检计划
-        create: (data) => {
-            return publicRequest({
-                url: '/facilityExaminePlan/create',
-                method: 'post',
-                data
-            });
-        },
-
-        //删除巡检计划
-        remove: (id) => {
-            return publicRequest({
-                url: `/facilityExaminePlan/remove?id=${id}`,
-                method: 'post'
-            });
-        },
-        //编辑巡检计划
-        modify: (data) => {
-            return publicRequest({
-                url: '/facilityExaminePlan/modify',
-                method: 'post',
-                data
-            });
-        },
-        //停用巡检计划
-        stop: (data) => {
-            return publicRequest({
-                url: `/facilityExaminePlan/stop?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //启用巡检计划
-        enable: (data) => {
-            return publicRequest({
-                url: `/facilityExaminePlan/enable?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //分页查巡检计划
-        search: (data) => {
-            return publicRequest({
-                url: '/facilityExaminePlan/search',
-                method: 'post',
-                data
-            });
-        },
-        //获取巡检计划详情
-        get: (id) => {
-            return publicRequest({
-                url: `/facilityExaminePlan/get?id=${id}`,
-                method: 'get'
-            });
-        },
-        //修改执行状态
-        updateState: (id) => {
-            return publicRequest({
-                url: `/facilityExamine/updateState?facilityId=${id}`,
-                method: 'post'
-            });
-        },
-    };
-}
diff --git a/src/api/examine/record/index.js b/src/api/examine/record/index.js
deleted file mode 100644
index 19a4037..0000000
--- a/src/api/examine/record/index.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-05-17 17:11:53
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-05-29 14:50:30
- * @FilePath: \wisdom-water-factory-web\src\api\facilityExamine\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request.js'
-//巡检管理
-export function facilityExamineRecordApi() {
-    return {
-        //创建
-        create: (data) => {
-            return publicRequest({
-                url: '/facilityExamineRecord/create',
-                method: 'post',
-                data
-            });
-        },
-        //编辑
-        modify: (data) => {
-            return publicRequest({
-                url: '/facilityExamineRecord/modify',
-                method: 'post',
-                data
-            });
-        },
-        //停用
-        stop: (data) => {
-            return publicRequest({
-                url: `/facilityExamineRecord/stop?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //启用
-        enable: (data) => {
-            return publicRequest({
-                url: `/facilityExamineRecord/enable?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //分页查巡检
-        search: (data) => {
-            return publicRequest({
-                url: '/facilityExamineRecord/search',
-                method: 'post',
-                data
-            });
-        },
-        //获取详情
-        get: (id) => {
-            return publicRequest({
-                url: `/facilityExamineRecord/get?id=${id}`,
-                method: 'get'
-            });
-        },
-    };
-}
diff --git a/src/api/facility/collector.js b/src/api/facility/collector.js
deleted file mode 100644
index 53becf8..0000000
--- a/src/api/facility/collector.js
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 09:34:23
- * @FilePath: \water-qinghe-web\src\api\facility\collector.js
- * @Description: 集中器api
- */
-import { publicRequest } from '@/utils/request'
-export default function  collectorApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/collectorManagement/create',
-				method: 'post',
-				data
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/collectorManagement/modify',
-				method: 'post',
-				data
-			});
-		},
-		remove: (id) => {
-			return publicRequest({
-				url: `/collectorManagement/remove?id=${id}`,
-				method: 'post'
-			});
-		},
-        stop: (id) => {
-			return publicRequest({
-				url: `/collectorManagement/stop?id=${id}`,
-				method: 'post'
-			});
-		},
-        enable: (id) => {
-			return publicRequest({
-				url: `/collectorManagement/enable?id=${id}`,
-				method: 'post'
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/collectorManagement/search',
-				method: 'post',
-				data
-			});
-		},
-        getList: (data) => {
-			return publicRequest({
-				url: `/collectorManagement/getList`,
-				method: 'get',
-				data
-			});
-		},
-	};
-}
diff --git a/src/api/configuration/facilityParameter/index.js b/src/api/facility/parameter.js
similarity index 95%
rename from src/api/configuration/facilityParameter/index.js
rename to src/api/facility/parameter.js
index 75c54f8..f587ec9 100644
--- a/src/api/configuration/facilityParameter/index.js
+++ b/src/api/facility/parameter.js
@@ -7,7 +7,7 @@
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 
-import { publicRequest } from '@/utils/request'
+import { publicRequest } from '@/utils/request.js'
 
 //公司配置信息
 export default function waterFacilityParameter() {
diff --git a/src/api/facility/record.js b/src/api/facility/record.js
deleted file mode 100644
index 0306c49..0000000
--- a/src/api/facility/record.js
+++ /dev/null
@@ -1,13 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-export default function recordApi() {
-	return {
-		handleRecord: (data) => {
-			return publicRequest({
-				url: '/waterMeterOperationRecord/search',
-				method: 'post',
-				data
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/waterMeterApi/supplier.js b/src/api/facility/supplier.js
similarity index 100%
rename from src/api/waterMeterApi/supplier.js
rename to src/api/facility/supplier.js
diff --git a/src/api/facility/valveDevice.js b/src/api/facility/valveDevice.js
deleted file mode 100644
index 61be424..0000000
--- a/src/api/facility/valveDevice.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 09:04:16
- * @FilePath: \water-qinghe-web\src\api\facility\index.js
- * @Description: 阀门api
- */
-import { publicRequest } from '@/utils/request'
-export default function valveDeviceApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/valveDevice/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/valveDevice/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/valveDevice/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/valveDevice/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/valveDevice/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/valveDevice/search',
-				method: 'post',
-				data,
-			});
-		},
-        getList: (data) => {
-			return publicRequest({
-				url: `/valveDevice/getList`,
-				method: 'get',
-				data,
-			});
-		},
-	};
-}
diff --git a/src/api/financial/billRecord/index.js b/src/api/financial/billRecord/index.js
deleted file mode 100644
index 9c7f4de..0000000
--- a/src/api/financial/billRecord/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 15:31:57
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function billRecord() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/userWaterBill/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取应付
-		getUserWaterBill: (data) => {
-			return publicRequest({
-				url: `/userWaterBill/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//获取用户未支付金额
-		getMeterArrearsAmount: (data) => {
-			return publicRequest({
-				url: `/userWaterBill/getMeterArrearsAmount?meterSn=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//人工抄表
-		manualMeterReading: (data) => {
-			return publicRequest({
-				url: '/userWaterBill/manualMeterReading',
-				method: 'post',
-				data,
-			});
-		},
-		//调账
-		changeBillFee: (data) => {
-			return publicRequest({
-				url: '/userWaterBill/changeBillFee',
-				method: 'post',
-				data,
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/financial/invoice/index.js b/src/api/financial/invoice/index.js
deleted file mode 100644
index 24146ff..0000000
--- a/src/api/financial/invoice/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-15 14:49:55
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 14:13:30
- * @FilePath: \water-qinghe-web\src\api\financial\invoice\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-//发票
-export default function invoice(){
-	return {
-        //创建发票
-		create: (data) => {
-			return publicRequest({
-				url: '/invoice/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除发票
-		remove: (id) => {
-			return publicRequest({
-				url: `/invoice/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-        //编辑发票
-        modify: (data) => {
-			return publicRequest({
-				url: '/invoice/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //停用发票
-        stop: (data) => {
-			return publicRequest({
-				url: `/invoice/stop?id=${data}`,
-				method: 'post',
-			});
-		},
-        //启用发票
-        enable: (data) => {
-			return publicRequest({
-				url: `/invoice/enable?id=${data}`,
-				method: 'post',
-			});
-		},
-        //分页查询发票
-        search: (data) => {
-			return publicRequest({
-				url: '/invoice/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取发票
-        get: (id) => {
-			return publicRequest({
-				url: `/invoice/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
diff --git a/src/api/financial/payRecord/index.js b/src/api/financial/payRecord/index.js
deleted file mode 100644
index 5244e0d..0000000
--- a/src/api/financial/payRecord/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 15:33:33
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function payRecord() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/paymentRecords/search',
-				method: 'post',
-				data,
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/financial/payable/index.js b/src/api/financial/payable/index.js
deleted file mode 100644
index 8438a42..0000000
--- a/src/api/financial/payable/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-15 14:49:55
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 14:42:14
- * @FilePath: \water-qinghe-web\src\api\financial\invoice\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-//应付管理
-export default function payable() {
-	return {
-        //创建应付
-		create: (data) => {
-			return publicRequest({
-				url: '/payment/create',
-				method: 'post',
-				data,
-			});
-		},
-        //删除应付
-		remove: (id) => {
-			return publicRequest({
-				url: `/payment/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-        //编辑应付
-        modify: (data) => {
-			return publicRequest({
-				url: '/payment/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询应付
-        search: (data) => {
-			return publicRequest({
-				url: '/payment/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取应付
-        get: (id) => {
-			return publicRequest({
-				url: `/payment/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
diff --git a/src/api/financial/recharge/index.js b/src/api/financial/recharge/index.js
deleted file mode 100644
index 7e0946c..0000000
--- a/src/api/financial/recharge/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-21 09:22:18
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function recharge() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/recharge/search',
-				method: 'post',
-				data,
-			});
-		},
-		pay: (data) => {
-			return publicRequest({
-				url: '/recharge/fees',
-				method: 'post',
-				data,
-			});
-		},
-		//获取充值
-        get: (id) => {
-			return publicRequest({
-				url: `/recharge/get?id=${id}`,
-				method: 'get',
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/financial/tradeRecord/index.js b/src/api/financial/tradeRecord/index.js
deleted file mode 100644
index 5246643..0000000
--- a/src/api/financial/tradeRecord/index.js
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 15:33:33
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function tradeRecord() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/tradeRecord/search',
-				method: 'post',
-				data,
-			});
-		},
-		exportData: (data) => {
-			return publicRequest({
-				url: `/tradeRecord/exportData?createTimeRange=${data}`,
-				method: 'post',
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/financial/userBankAccount/index.js b/src/api/financial/userBankAccount/index.js
deleted file mode 100644
index d708a81..0000000
--- a/src/api/financial/userBankAccount/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 15:57:45
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-
-export default function userBankAccount() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/userBankAccount/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/userBankAccount/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (id) => {
-			return publicRequest({
-				url: `/userBankAccount/remove?id=${id}`,
-				method: 'post',
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/userBankAccount/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (id) => {
-			return publicRequest({
-				url: `/userBankAccount/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
\ No newline at end of file
diff --git a/src/api/financial/userCapitalChange/index.js b/src/api/financial/userCapitalChange/index.js
deleted file mode 100644
index 8d69ec3..0000000
--- a/src/api/financial/userCapitalChange/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export default function userCapitalChange() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/userCapitalChange/search',
-				method: 'post',
-				data,
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/financial/waterMeterTask/index.js b/src/api/financial/waterMeterTask/index.js
deleted file mode 100644
index 5bdc98f..0000000
--- a/src/api/financial/waterMeterTask/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-20 14:56:51
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-20 15:31:57
- * @FilePath: \water-qinghe-web\src\api\financial\payRecord\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function waterMeterTask() {
-	return {
-		search: (data) => {
-			return publicRequest({
-				url: '/waterMeterTask/search',
-				method: 'post',
-				data,
-			});
-		},
-    }
-}
\ No newline at end of file
diff --git a/src/api/knowledgeApi/index.js b/src/api/knowledgeApi/index.js
deleted file mode 100644
index 98ef13d..0000000
--- a/src/api/knowledgeApi/index.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-09 17:52:47
- * @FilePath: \water-qinghe-web\src\api\knowledgeApi\index.js
- * @Description: 知识库api
- */
-import { publicRequest } from '@/utils/request'
-export default function knowledgeApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/knowledgeBase/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/knowledgeBase/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/knowledgeBase/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/knowledgeBase/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/knowledgeBase/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/knowledgeBase/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/knowledgeBase/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		setSort: (data) => {
-			return publicRequest({
-				url: `/knowledgeBase/setSort`,
-				method: 'post',
-				data,
-			});
-		}
-	};
-}
diff --git a/src/api/maintain/plan/index.js b/src/api/maintain/plan/index.js
deleted file mode 100644
index 9a0d7a7..0000000
--- a/src/api/maintain/plan/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-05-17 17:11:53
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-05-29 14:50:30
- * @FilePath: \wisdom-water-factory-web\src\api\facilityExamine\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request.js'
-
-//巡检计划
-export function facilityMaintainPlanApi() {
-    return {
-        //创建维护计划
-        create: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainPlan/create',
-                method: 'post',
-                data
-            });
-        },
-
-        //删除维护计划
-        // remove: (id) => {
-        //     return publicRequest({
-        //         url: `/facilityMaintainPlan/remove?id=${id}`,
-        //         method: 'post'
-        //     });
-        // },
-        //编辑维护计划
-        modify: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainPlan/modify',
-                method: 'post',
-                data
-            });
-        },
-        //停用维护计划
-        stop: (data) => {
-            return publicRequest({
-                url: `/facilityMaintainPlan/stop?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //启用维护计划
-        enable: (data) => {
-            return publicRequest({
-                url: `/facilityMaintainPlan/enable?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //分页查维护计划
-        search: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainPlan/search',
-                method: 'post',
-                data
-            });
-        },
-        //获取维护计划详情
-        get: (id) => {
-            return publicRequest({
-                url: `/facilityMaintainPlan/get?id=${id}`,
-                method: 'get'
-            });
-        },
-        //修改执行状态
-        updateState: (id) => {
-            return publicRequest({
-                url: `/facilityMaintainPlan/updateState?facilityId=${id}`,
-                method: 'post'
-            });
-        },
-    };
-}
diff --git a/src/api/maintain/record/index.js b/src/api/maintain/record/index.js
deleted file mode 100644
index 3869850..0000000
--- a/src/api/maintain/record/index.js
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-05-17 17:11:53
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-05-29 14:50:30
- * @FilePath: \wisdom-water-factory-web\src\api\facilityExamine\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request.js'
-
-//巡检计划
-export function facilityMaintainRecordApi() {
-    return {
-        //创建巡检计划
-        create: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainRecord/create',
-                method: 'post',
-                data
-            });
-        },
-
-        //删除巡检计划
-        remove: (id) => {
-            return publicRequest({
-                url: `/facilityMaintainRecord/remove?id=${id}`,
-                method: 'post'
-            });
-        },
-        //编辑巡检计划
-        modify: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainRecord/modify',
-                method: 'post',
-                data
-            });
-        },
-        //停用巡检计划
-        stop: (data) => {
-            return publicRequest({
-                url: `/facilityMaintainRecord/stop?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //启用巡检计划
-        enable: (data) => {
-            return publicRequest({
-                url: `/facilityMaintainRecord/enable?id=${data}`,
-                method: 'post',
-                data
-            });
-        },
-        //分页查巡检计划
-        search: (data) => {
-            return publicRequest({
-                url: '/facilityMaintainRecord/search',
-                method: 'post',
-                data
-            });
-        },
-        //获取巡检计划详情
-        get: (id) => {
-            return publicRequest({
-                url: `/facilityMaintainRecord/get?id=${id}`,
-                method: 'get'
-            });
-        },
-        //修改执行状态
-        updateState: (id) => {
-            return publicRequest({
-                url: `/facilityMaintainRecord/updateState?facilityId=${id}`,
-                method: 'post'
-            });
-        },
-    };
-}
diff --git a/src/api/meterReadingApi/meterReadingRecord.js b/src/api/meterReadingApi/meterReadingRecord.js
deleted file mode 100644
index 4c81687..0000000
--- a/src/api/meterReadingApi/meterReadingRecord.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-10 09:46:35
- * @FilePath: \water-qinghe-web\src\api\meterReadingApi\meterReadingRecord.js
- * @Description: 自动抄表上报数据api
- */
-import { publicRequest } from '@/utils/request'
-export default function meterReadingRecordApi() {
-	return {
-		//抄表管理
-		create: (data) => {
-			return publicRequest({
-				url: '/meterReadingRecord/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/meterReadingRecord/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/meterReadingRecord/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/meterReadingRecord/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/meterReadingRecord/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/meterReadingRecord/search',
-				method: 'post',
-				data,
-			});
-		},
-		getByMonth: (data) => {
-			return publicRequest({
-				url: '/meterReadingRecord/getByMonth',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/meterReadingRecord/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//手动抄表
-		manualMeterReading: (data) => {
-			return publicRequest({
-				url: '/userWaterBill/manualMeterReading',
-				method: 'post',
-				data,
-			});
-		},
-	};
-}
diff --git a/src/api/screen/alarm/index.js b/src/api/screen/alarm/index.js
deleted file mode 100644
index 22c8c3b..0000000
--- a/src/api/screen/alarm/index.js
+++ /dev/null
@@ -1,19 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export default function alarm() {
-    return {
-        get: () => {
-            return publicRequest({
-                url: '/statistics/alarmAnalysis',
-                method: 'get',
-            })
-        },
-        getHandel: () => {
-            return publicRequest({
-                url: '/statistics/alarmCount',
-                method: 'post',
-            })
-        },
-    }
-}
\ No newline at end of file
diff --git a/src/api/screen/dma/index.js b/src/api/screen/dma/index.js
deleted file mode 100644
index ab56fb4..0000000
--- a/src/api/screen/dma/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export default function dma() {
-    return {
-        //获取压力-流量-液位-监测数据
-        searchMonitor: (data) => {
-            return publicRequest({
-                url: '/statistics/monitor',
-                method: 'post',
-                data
-            })
-        },
-        //获取夜间流量分析-监测数据
-        searchStatistic: (data) => {
-            return publicRequest({
-                url: '/statistics/flowAnalysis',
-                method: 'post',
-                data
-            })
-        },
-        //获取区域
-        getArea: () => {
-            return publicRequest({
-                url: '/waterArea/getParentArea',
-                method: 'get',
-            })
-        },
-        //首页分区用水数据统计
-        headWaterArea: (data) => {
-            return publicRequest({
-                url: '/statistics/headWaterArea',
-                method: 'post',
-                data
-            });
-        },
-        //实时报警
-        alarm: (data) => {
-            return publicRequest({
-                url: '/alarmHistory/search',
-                method: 'post',
-                data
-            });
-        },
-    }
-}
\ No newline at end of file
diff --git a/src/api/screen/overview/index.js b/src/api/screen/overview/index.js
deleted file mode 100644
index fe5b0d9..0000000
--- a/src/api/screen/overview/index.js
+++ /dev/null
@@ -1,14 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export default function overview() {
-    return {
-        //获取overview
-        getDataOverview: () => {
-            return publicRequest({
-                url: '/statistics/dataOverview',
-                method: 'post',
-            })
-        },
-    }
-}
\ No newline at end of file
diff --git a/src/api/screen/pupm/index.js b/src/api/screen/pupm/index.js
deleted file mode 100644
index 13ecc45..0000000
--- a/src/api/screen/pupm/index.js
+++ /dev/null
@@ -1,27 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export default function pump() {
-    return {
-        getPumpData: (id) => {
-            return publicRequest({
-                url: '/statistics/getPumpStatus',
-                method: 'get',
-            })
-        },
-        handelPump: (data) => {
-            return publicRequest({
-                url: 'waterFacility/openOrClose',
-                method: 'post',
-                data
-            })
-        },
-        handelPumpStatus: (data) => {
-            return publicRequest({
-                url: 'statistics/editPumpStatus',
-                method: 'post',
-                data
-            })
-        },
-    }
-}
\ No newline at end of file
diff --git a/src/api/screen/revenue/index.js b/src/api/screen/revenue/index.js
deleted file mode 100644
index ebf606c..0000000
--- a/src/api/screen/revenue/index.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-08 14:29:49
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-08 14:39:09
- * @FilePath: \water-qinghe-web\src\api\system\user.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export function revenue() {
-    return{
-        // 当年缴费趋势统计
-        searchPay:() =>{
-            return publicRequest({
-                url: '/statistics/yearStatistics',
-                method: 'post',
-            })
-        },
-        // 当年用水趋势统计
-        searchWater:() =>{
-            return publicRequest({
-                url: '/statistics/useWaterStatistics',
-                method: 'post',
-            })
-        },
-        // 缴费排行统计
-        getPayRank:() =>{
-            return publicRequest({
-                url: '/statistics/userPayStatistics',
-                method: 'post',
-            })
-        },
-        // 用水排行统计
-        getWaterRank:() =>{
-            return publicRequest({
-                url: '/statistics/yearUseWater',
-                method: 'post',
-            })
-        },
-        // 抄表记录
-        getMeterReading:() =>{
-            return publicRequest({
-                url: '/statistics/getMeterReading',
-                method: 'post',
-            })
-        },
-        // 用户类型
-        getUserClassify:() =>{
-            return publicRequest({
-                url: '/statistics/userClassify',
-                method: 'post',
-            })
-        },
-    // 用户缴费情况
-    getUserPayCondition:() =>{
-        return publicRequest({
-            url: '/statistics/userPayCondition',
-            method: 'post',
-        })
-    },
-    // (营收)营收统计
-    getEvenueStatistics:() =>{
-        return publicRequest({
-            url: '/statistics/revenueStatistics',
-            method: 'post',
-        })
-    },
-        // (营收)用户数量统计
-        getUserCount:() =>{
-            return publicRequest({
-                url: '/statistics/userCount',
-                method: 'post',
-            })
-        },
-}
-}
diff --git a/src/api/screen/statistics/index.js b/src/api/screen/statistics/index.js
deleted file mode 100644
index 960debb..0000000
--- a/src/api/screen/statistics/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-08 14:29:49
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-08 14:39:09
- * @FilePath: \water-qinghe-web\src\api\system\user.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function statistics() {
-    return{
-        search:(data) =>{
-            return publicRequest({
-                //(统计分析)根据监控点和时间获取数据
-                url: '/statistics/getDataByPoint',
-                method: 'post',
-                data
-            })
-        },
-    }
-}
diff --git a/src/api/waterMeterApi/index.js b/src/api/waterMeterApi/index.js
deleted file mode 100644
index bed2c12..0000000
--- a/src/api/waterMeterApi/index.js
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-15 16:10:59
- * @FilePath: \water-qinghe-web\src\api\system\user.js
- * @Description: 水表api
- */
-
-import {publicRequest} from '@/utils/request'
-
-export default function waterMeterApi() {
-	return {
-        //添加水表信息
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterInventory/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterInventory/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除
-        remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterInventory/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //停用
-        stop: (data) => {
-			return publicRequest({
-				url: `/waterMeterInventory/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //启用
-        enable: (data) => {
-			return publicRequest({
-				url: `/waterMeterInventory/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterInventory/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表信息
-    get: (data) => {
-			return publicRequest({
-				url: `/waterMeterInventory/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//获取水表信息,0未使用,1已使用
-    getIsUse: (isUse) => {
-			return publicRequest({
-				url: `/waterMeterInventory/getMeterByIsUse?isUse=${isUse}`,
-				method: 'get',
-			});
-		},
-        //根据用户获取所有水表
-        getByUser: (id) => {
-			return publicRequest({
-				url: `/useWaterMeter/list4User/${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
diff --git a/src/api/waterMeterApi/meterOperation.js b/src/api/waterMeterApi/meterOperation.js
deleted file mode 100644
index 18216fa..0000000
--- a/src/api/waterMeterApi/meterOperation.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 18:34:33
- * @FilePath: \water-qinghe-web\src\api\system\meterOperation.js
- * @Description: 水表操作api
- */
-import { publicRequest } from '@/utils/request'
-export default function meterOperationApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterOperationRecord/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterOperationRecord/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterOperationRecord/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/waterMeterOperationRecord/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/waterMeterOperationRecord/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterOperationRecord/search',
-				method: 'post',
-				data,
-			});
-		},
-        getList: (data) => {
-			return publicRequest({
-				url: `/waterMeterOperationRecord/getList`,
-				method: 'get',
-				data,
-			});
-		},
-	};
-}
diff --git a/src/api/waterMeterApi/useWaterMeter.js b/src/api/waterMeterApi/useWaterMeter.js
deleted file mode 100644
index c5e5ef8..0000000
--- a/src/api/waterMeterApi/useWaterMeter.js
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-10 08:42:47
- * @FilePath: \water-qinghe-web\src\api\waterMeterApi\useWaterMeter.js
- * @Description: 用户已绑水表api
- */
-import { publicRequest } from '@/utils/request'
-export default function useWaterMeterApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/useWaterMeter/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/useWaterMeter/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/useWaterMeter/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/useWaterMeter/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/useWaterMeter/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/useWaterMeter/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/useWaterMeter/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		setSort: (data) => {
-			return publicRequest({
-				url: `/useWaterMeter/setSort`,
-				method: 'post',
-				data,
-			});
-		},
-		open: (id) => {
-			return publicRequest({
-				url: `/useWaterMeter/open?id=${id}`,
-				method: 'get',
-			});
-		},
-		close: (id) => {
-			return publicRequest({
-				url: `/useWaterMeter/close?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
diff --git a/src/api/waterMeterApi/verification.js b/src/api/waterMeterApi/verification.js
deleted file mode 100644
index 083180a..0000000
--- a/src/api/waterMeterApi/verification.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-09 17:43:00
- * @FilePath: \water-qinghe-web\src\api\system\user.js
- * @Description: 检定api
- */
-import { publicRequest } from '@/utils/request'
-export default function verificationApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/VerificationRecords/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/VerificationRecords/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/VerificationRecords/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/VerificationRecords/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/VerificationRecords/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/VerificationRecords/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/VerificationRecords/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-	};
-}
diff --git a/src/api/waterMeterApi/waterModel.js b/src/api/waterMeterApi/waterModel.js
deleted file mode 100644
index 078fecd..0000000
--- a/src/api/waterMeterApi/waterModel.js
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * @Author: elkers
- * @Date: 2024-08-09 14:29:49
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-09 17:52:47
- * @FilePath: \water-qinghe-web\src\api\waterMeterApi\waterModel.js
- * @Description: 水表型号api
- */
-import { publicRequest } from '@/utils/request'
-export default function supplierApi() {
-	return {
-		create: (data) => {
-			return publicRequest({
-				url: '/watermodel/create',
-				method: 'post',
-				data,
-			});
-		},
-		modify: (data) => {
-			return publicRequest({
-				url: '/watermodel/modify',
-				method: 'post',
-				data,
-			});
-		},
-		remove: (data) => {
-			return publicRequest({
-				url: `/watermodel/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        stop: (data) => {
-			return publicRequest({
-				url: `/watermodel/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        enable: (data) => {
-			return publicRequest({
-				url: `/watermodel/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        search: (data) => {
-			return publicRequest({
-				url: '/watermodel/search',
-				method: 'post',
-				data,
-			});
-		},
-        get: (data) => {
-			return publicRequest({
-				url: `/watermodel/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		setSort: (data) => {
-			return publicRequest({
-				url: `/watermodel/setSort`,
-				method: 'post',
-				data,
-			});
-		}
-	};
-}
diff --git a/src/api/workOrderManage/meterConstructionApi/index.js b/src/api/workOrderManage/meterConstructionApi/index.js
deleted file mode 100644
index 5d26fec..0000000
--- a/src/api/workOrderManage/meterConstructionApi/index.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:51:13
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-16 15:25:38
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\meterConstructionApi\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export default function meterConstructionApi() {
-	return {
-        //添加水表施工记录
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterConstructionRecords/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改水表施工记录
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterConstructionRecords/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除水表施工记录
-		remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterConstructionRecords/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //停用水表施工记录
-        stop: (data) => {
-			return publicRequest({
-				url: `/waterMeterConstructionRecords/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //启用水表施工记录
-        enable: (data) => {
-			return publicRequest({
-				url: `/waterMeterConstructionRecords/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询水表施工记录
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterConstructionRecords/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表施工记录
-        get: (data) => {
-			return publicRequest({
-				url: `/waterMeterConstructionRecords/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-	};
-}
diff --git a/src/api/workOrderManage/waterMeterAlterationApi/index.js b/src/api/workOrderManage/waterMeterAlterationApi/index.js
deleted file mode 100644
index fd2ab80..0000000
--- a/src/api/workOrderManage/waterMeterAlterationApi/index.js
+++ /dev/null
@@ -1,37 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterAlterationApi(){
-    return{
-        // 创建[用户水表过户记录]
-        creatWaterMeterAlteration:(data) =>{
-            return publicRequest({
-                url:'/userWaterAlterationRecord/create',
-                method:'post',
-                data,
-            })
-        },
-        // 查询[用户水表过户记录]
-        searchWaterMeterAlteration:(data) =>{
-            return publicRequest({
-                url:'/userWaterAlterationRecord/search',
-                method:'post',
-                data,
-            })
-        },
-        // 获取[用户水表过户记录]
-        getWaterMeterAlteration:(id) =>{
-            return publicRequest({
-                url:`/userWaterAlterationRecord/get?id=${id}`,
-                method:'get',
-            })
-        },
-        // 执行工单
-        executeWaterMeterAlteration:(id,executeType) =>{
-            return publicRequest({
-                url:`/userWaterAlterationRecord/execute?id=${id}&executeType=${executeType}`,
-                method:'get',
-            })
-        },
-    }
-}
\ No newline at end of file
diff --git a/src/api/workOrderManage/waterMeterApplyApi/index.js b/src/api/workOrderManage/waterMeterApplyApi/index.js
deleted file mode 100644
index 9db08d5..0000000
--- a/src/api/workOrderManage/waterMeterApplyApi/index.js
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:49:03
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-13 17:55:54
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\waterMeterApplyApi\index.ts
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterApplyApi() {
-	return {
-        //创建水表开户申请表
-		createWaterMeterApply: (data) => {
-			return publicRequest({
-				url: '/waterMeterApply/create',
-				method: 'post',
-				data,
-			});
-		},
-		//搜索水表开户申请表
-		searchWaterMeterApply: (data) => {
-			return publicRequest({
-				url: '/waterMeterApply/search',
-				method: 'post',
-				data,
-			});
-		},
-		//执行工单
-		executeWaterMeterApply: (data) => {
-			return publicRequest({
-				url:'/waterMeterApply/execute',
-				method: 'post',
-				data
-
-			});
-		},
-		//编辑[水表开户申请表]
-		modifyWaterMeterApplyList: (data) => {
-			return publicRequest({
-				url: '/waterMeterApply/modify',
-				method: 'post',
-				data,
-			});
-		},        
-		//获取[水表开户申请表]
-		getWaterMeterApply: (id) => {
-			return publicRequest({
-				url: `/waterMeterApply/get?id=${id}`,
-				method: 'get'
-			});
-		},
-		//根据id批量获取[水表开户申请表]
-		searchWaterMeterApplyList: (data) => {
-			return publicRequest({
-				url: '/waterMeterApply/getList',
-				method: 'post',
-				data,
-			});
-		},   
-       }   
-    }
\ No newline at end of file
diff --git a/src/api/workOrderManage/waterMeterChangeApi/index.js b/src/api/workOrderManage/waterMeterChangeApi/index.js
deleted file mode 100644
index 966b8b0..0000000
--- a/src/api/workOrderManage/waterMeterChangeApi/index.js
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:47:53
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-16 11:58:10
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\waterMeterChangeApi\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterChangeApi() {
-	return {
-        //添加水表信息
-		create: (data) => {
-			return publicRequest({
-				url: '/userWaterMeterChange/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改水表信息
-		modify: (data) => {
-			return publicRequest({
-				url: '/userWaterMeterChange/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除水表信息
-		remove: (data) => {
-			return publicRequest({
-				url: `/userWaterMeterChange/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //停用水表信息
-        stop: (data) => {
-			return publicRequest({
-				url: `/userWaterMeterChange/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //启用水表信息
-        enable: (data) => {
-			return publicRequest({
-				url: `/userWaterMeterChange/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询水表信息
-        search: (data) => {
-			return publicRequest({
-				url: '/userWaterMeterChange/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表信息
-        get: (data) => {
-			return publicRequest({
-				url: `/userWaterMeterChange/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-        execute: (data) => {
-			return publicRequest({
-				url: '/userWaterMeterChange/execute',
-				method: 'post',
-				data
-			});
-		},
-	};
-}
-
-
diff --git a/src/api/workOrderManage/waterMeterCloseAccountApi/index.js b/src/api/workOrderManage/waterMeterCloseAccountApi/index.js
deleted file mode 100644
index 41604b6..0000000
--- a/src/api/workOrderManage/waterMeterCloseAccountApi/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:47:53
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-15 16:52:32
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\waterMeterCloseAccountApi\index.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterCloseAccountApi() {
-	return {
-        //添加水表信息
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterCloseAccount/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改水表信息
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterCloseAccount/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除水表信息
-		remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterCloseAccount/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询水表信息
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterCloseAccount/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表信息
-        get: (data) => {
-			return publicRequest({
-				url: `/waterMeterCloseAccount/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//执行工单
-        // executeWaterMeterCloseAccount: (id: Number,executeType:any) => {
-		// 	return publicRequest({
-		// 		url: `/waterMeterCloseAccount/execute?id=${id}&executeType=${executeType}`,
-		// 		method: 'get',
-		// 	});
-		// },
-		//执行工单
-        execute: (data) => {
-			return publicRequest({
-				url: '/waterMeterCloseAccount/execute',
-				method: 'post',
-				data
-			});
-		},
-	};
-}
-
-
diff --git a/src/api/workOrderManage/waterMeterMaintainRecordsApi/index.js b/src/api/workOrderManage/waterMeterMaintainRecordsApi/index.js
deleted file mode 100644
index ae00fca..0000000
--- a/src/api/workOrderManage/waterMeterMaintainRecordsApi/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:47:53
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-16 15:15:11
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\waterMeterMaintainRecordsApi\index.ts
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-import { publicRequest } from '@/utils/request'
- */
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterMaintainRecordsApi() {
-	return {
-        //添加水表信息
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterMaintainRecords/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改水表信息
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterMaintainRecords/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除水表信息
-		remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterMaintainRecords/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询水表信息
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterMaintainRecords/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表信息
-        get: (id) => {
-			return publicRequest({
-				url: `/waterMeterMaintainRecords/get?id=${id}`,
-				method: 'get',
-			});
-		},
-	};
-}
-
-
diff --git a/src/api/workOrderManage/waterMeterRepairApi/index.js b/src/api/workOrderManage/waterMeterRepairApi/index.js
deleted file mode 100644
index 602661a..0000000
--- a/src/api/workOrderManage/waterMeterRepairApi/index.js
+++ /dev/null
@@ -1,70 +0,0 @@
-
-import { publicRequest } from '@/utils/request'
-
-export function waterMeterRepairApi(){
-    return{
-        // 创建用户水表保修
-        creatWaterMeterRepairs:(data) =>{
-            return publicRequest({
-                url:'/waterMeterRepairs/create',
-                method:'post',
-                data,
-            })
-        },
-        // 查询[用户水表报修]
-        searchWaterMeterRepairs:(data) =>{
-            return publicRequest({
-                url:'/waterMeterRepairs/search',
-                method:'post',
-                data
-            })
-        },
-        // 编辑[用户水表报修]
-        modifyWaterMeterRepairs:(data) =>{
-            return publicRequest({
-                url:'/waterMeterRepairs/modify',
-                method:'post',
-                data
-            })
-        },
-        // 根据id批量获取[用户水表报修]
-        getListWaterMeterRepairs:(data) =>{
-            return publicRequest({
-                url:'/waterMeterRepairs/getList',
-                method:'post',
-                data
-            })
-        },
-        // 获取[用户水表报修]
-        getWaterMeterRepairs:(id) =>{
-            return publicRequest({
-                url:`/waterMeterRepairs/get?id=${id}`,
-                method:'get'
-            })
-        },
-        // 报修工状态扭转(1待维修 2维修中 3已维修 4关闭)
-        getStatusWaterMeterRepairs:(id,state) =>{
-            return publicRequest({
-                url:`/waterMeterRepairs/editState?id=${id}&state=${state}`,
-                method:'get'
-            })
-        },
-        // 执行工单get
-        // executeStatusWaterMeterRepairs:(id:number,state:any) =>{
-        //     return publicRequest({
-        //         url:`/waterMeterRepairs/execute?id=${id}&executeType=${state}`,
-        //         method:'get'
-        //     })
-        // },
-
-        // 执行工单post
-        executeStatusWaterMeterRepairs:(data) =>{
-            return publicRequest({
-                url:'/waterMeterRepairs/execute',
-                method:'post',
-                data
-            })
-        },
-
-    }
-}
\ No newline at end of file
diff --git a/src/api/workOrderManage/waterMeterStopAccountApi/index.js b/src/api/workOrderManage/waterMeterStopAccountApi/index.js
deleted file mode 100644
index 3e46766..0000000
--- a/src/api/workOrderManage/waterMeterStopAccountApi/index.js
+++ /dev/null
@@ -1,81 +0,0 @@
-
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-13 17:47:53
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-16 14:26:39
- * @FilePath: \water-qinghe-web\src\api\workOrderManage\waterMeterStopAccountApi\index.ts
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-
-import {publicRequest} from '@/utils/request'
-
-export function waterMeterStopAccountApi() {
-	return {
-        //添加水表信息
-		create: (data) => {
-			return publicRequest({
-				url: '/waterMeterStopAccount/create',
-				method: 'post',
-				data,
-			});
-		},
-		//修改水表信息
-		modify: (data) => {
-			return publicRequest({
-				url: '/waterMeterStopAccount/modify',
-				method: 'post',
-				data,
-			});
-		},
-        //删除水表信息
-		remove: (data) => {
-			return publicRequest({
-				url: `/waterMeterStopAccount/remove?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //停用水表信息
-        stop: (data) => {
-			return publicRequest({
-				url: `/waterMeterStopAccount/stop?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //启用水表信息
-        enable: (data) => {
-			return publicRequest({
-				url: `/waterMeterStopAccount/enable?id=${data}`,
-				method: 'post',
-				data,
-			});
-		},
-        //分页查询水表信息
-        search: (data) => {
-			return publicRequest({
-				url: '/waterMeterStopAccount/search',
-				method: 'post',
-				data,
-			});
-		},
-		//获取水表信息
-        get: (data) => {
-			return publicRequest({
-				url: `/waterMeterStopAccount/get?id=${data}`,
-				method: 'get',
-				data,
-			});
-		},
-		//执行工单
-        execute: (id,state) => {
-			return publicRequest({
-				url: `/waterMeterStopAccount/execute?id=${id}&state=${state}`,
-				method: 'get',
-			});
-		},
-	};
-}
-
-
diff --git a/src/assets/images/login_icon.png b/src/assets/images/login_icon.png
new file mode 100644
index 0000000..6f4e94d
--- /dev/null
+++ b/src/assets/images/login_icon.png
Binary files differ
diff --git a/src/components/Crontab/day.vue b/src/components/Crontab/day.vue
deleted file mode 100644
index 25c4f79..0000000
--- a/src/components/Crontab/day.vue
+++ /dev/null
@@ -1,174 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                日,允许的通配符[, - * ? / L W]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                不指定
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                周期从
-                <el-input-number v-model='cycle01' :min="1" :max="30" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="31" /> 日
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                从
-                <el-input-number v-model='average01' :min="1" :max="30" /> 号开始,每
-                <el-input-number v-model='average02' :min="1" :max="31 - average01" /> 日执行一次
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="5">
-                每月
-                <el-input-number v-model='workday' :min="1" :max="31" /> 号最近的那个工作日
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="6">
-                本月最后一天
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="7">
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
-                    <el-option v-for="item in 31" :key="item" :label="item" :value="item" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: "",
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(1)
-const cycle01 = ref(1)
-const cycle02 = ref(2)
-const average01 = ref(1)
-const average02 = ref(1)
-const workday = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([1])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 1, 30)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 31)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 1, 30)
-    average02.value = props.check(average02.value, 1, 31 - average01.value)
-    return average01.value + '/' + average02.value
-})
-const workdayTotal = computed(() => {
-    workday.value = props.check(workday.value, 1, 31)
-    return workday.value + 'W'
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.day, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, workdayTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === "*") {
-        radioValue.value = 1
-    } else if (value === "?") {
-        radioValue.value = 2
-    } else if (value.indexOf("-") > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else if (value.indexOf("/") > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[0])
-        average02.value = Number(indexArr[1])
-        radioValue.value = 4
-    } else if (value.indexOf("W") > -1) {
-        const indexArr = value.split("W")
-        workday.value = Number(indexArr[0])
-        radioValue.value = 5
-    } else if (value === "L") {
-        radioValue.value = 6
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 7
-    }
-}
-// 单选按钮值变化时
-function onRadioChange() {
-    if (radioValue.value === 2 && props.cron.week === '?') {
-        emit('update', 'week', '*', 'day')
-    }
-    if (radioValue.value !== 2 && props.cron.week !== '?') {
-        emit('update', 'week', '?', 'day')
-    }
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'day', '*', 'day')
-            break
-        case 2:
-            emit('update', 'day', '?', 'day')
-            break
-        case 3:
-            emit('update', 'day', cycleTotal.value, 'day')
-            break
-        case 4:
-            emit('update', 'day', averageTotal.value, 'day')
-            break
-        case 5:
-            emit('update', 'day', workdayTotal.value, 'day')
-            break
-        case 6:
-            emit('update', 'day', 'L', 'day')
-            break
-        case 7:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'day', checkboxString.value, 'day')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 18.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/hour.vue b/src/components/Crontab/hour.vue
deleted file mode 100644
index 9f052ad..0000000
--- a/src/components/Crontab/hour.vue
+++ /dev/null
@@ -1,127 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                小时,允许的通配符[, - * /]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                周期从
-                <el-input-number v-model='cycle01' :min="0" :max="22" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="23" /> 时
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                从
-                <el-input-number v-model='average01' :min="0" :max="22" /> 时开始,每
-                <el-input-number v-model='average02' :min="1" :max="23 - average01" /> 小时执行一次
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
-                    <el-option v-for="item in 24" :key="item" :label="item - 1" :value="item - 1" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: "",
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(1)
-const cycle01 = ref(0)
-const cycle02 = ref(1)
-const average01 = ref(0)
-const average02 = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([0])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 0, 22)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 23)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 0, 22)
-    average02.value = props.check(average02.value, 1, 23 - average01.value)
-    return average01.value + '/' + average02.value
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.hour, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === '*') {
-        radioValue.value = 1
-    } else if (value.indexOf('-') > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 2
-    } else if (value.indexOf('/') > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[0])
-        average02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 4
-    }
-}
-function onRadioChange() {
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'hour', '*', 'hour')
-            break
-        case 2:
-            emit('update', 'hour', cycleTotal.value, 'hour')
-            break
-        case 3:
-            emit('update', 'hour', averageTotal.value, 'hour')
-            break
-        case 4:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'hour', checkboxString.value, 'hour')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 18.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/index.vue b/src/components/Crontab/index.vue
deleted file mode 100644
index 910c9b3..0000000
--- a/src/components/Crontab/index.vue
+++ /dev/null
@@ -1,310 +0,0 @@
-<template>
-    <div>
-        <el-tabs type="border-card">
-            <el-tab-pane label="秒" v-if="shouldHide('second')">
-                <CrontabSecond
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronsecond"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="分钟" v-if="shouldHide('min')">
-                <CrontabMin
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronmin"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="小时" v-if="shouldHide('hour')">
-                <CrontabHour
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronhour"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="日" v-if="shouldHide('day')">
-                <CrontabDay
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronday"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="月" v-if="shouldHide('month')">
-                <CrontabMonth
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronmonth"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="周" v-if="shouldHide('week')">
-                <CrontabWeek
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronweek"
-                />
-            </el-tab-pane>
-
-            <el-tab-pane label="年" v-if="shouldHide('year')">
-                <CrontabYear
-                    @update="updateCrontabValue"
-                    :check="checkNumber"
-                    :cron="crontabValueObj"
-                    ref="cronyear"
-                />
-            </el-tab-pane>
-        </el-tabs>
-
-        <div class="popup-main">
-            <div class="popup-result">
-                <p class="title">时间表达式</p>
-                <table>
-                    <thead>
-                        <th v-for="item of tabTitles" :key="item">{{item}}</th>
-                        <th>Cron 表达式</th>
-                    </thead>
-                    <tbody>
-                        <td>
-                            <span v-if="crontabValueObj.second.length < 10">{{crontabValueObj.second}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.second" placement="top"><span>{{crontabValueObj.second}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.min.length < 10">{{crontabValueObj.min}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.min" placement="top"><span>{{crontabValueObj.min}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.hour.length < 10">{{crontabValueObj.hour}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.hour" placement="top"><span>{{crontabValueObj.hour}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.day.length < 10">{{crontabValueObj.day}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.day" placement="top"><span>{{crontabValueObj.day}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.month.length < 10">{{crontabValueObj.month}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.month" placement="top"><span>{{crontabValueObj.month}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.week.length < 10">{{crontabValueObj.week}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.week" placement="top"><span>{{crontabValueObj.week}}</span></el-tooltip>
-                        </td>
-                        <td>
-                            <span v-if="crontabValueObj.year.length < 10">{{crontabValueObj.year}}</span>
-                            <el-tooltip v-else :content="crontabValueObj.year" placement="top"><span>{{crontabValueObj.year}}</span></el-tooltip>
-                        </td>
-                        <td class="result">
-                            <span v-if="crontabValueString.length < 90">{{crontabValueString}}</span>
-                            <el-tooltip v-else :content="crontabValueString" placement="top"><span>{{crontabValueString}}</span></el-tooltip>
-                        </td>
-                    </tbody>
-                </table>
-            </div>
-            <CrontabResult :ex="crontabValueString"></CrontabResult>
-
-            <div class="pop_btn">
-                <el-button type="primary" @click="submitFill">确定</el-button>
-                <el-button type="warning" @click="clearCron">重置</el-button>
-                <el-button @click="hidePopup">取消</el-button>
-            </div>
-        </div>
-    </div>
-</template>
-
-<script setup>
-import CrontabSecond from "./second.vue"
-import CrontabMin from "./min.vue"
-import CrontabHour from "./hour.vue"
-import CrontabDay from "./day.vue"
-import CrontabMonth from "./month.vue"
-import CrontabWeek from "./week.vue"
-import CrontabYear from "./year.vue"
-import CrontabResult from "./result.vue"
-const { proxy } = getCurrentInstance()
-const emit = defineEmits(['hide', 'fill'])
-const props = defineProps({
-    hideComponent: {
-        type: Array,
-        default: () => [],
-    },
-    expression: {
-        type: String,
-        default: ""
-    }
-})
-const tabTitles = ref(["秒", "分钟", "小时", "日", "月", "周", "年"])
-const tabActive = ref(0)
-const hideComponent = ref([])
-const expression = ref('')
-const crontabValueObj = ref({
-    second: "*",
-    min: "*",
-    hour: "*",
-    day: "*",
-    month: "*",
-    week: "?",
-    year: "",
-})
-const crontabValueString = computed(() => {
-    const obj = crontabValueObj.value
-    return obj.second
-        + " "
-        + obj.min
-        + " "
-        + obj.hour
-        + " "
-        + obj.day
-        + " "
-        + obj.month
-        + " "
-        + obj.week
-        + (obj.year === "" ? "" : " " + obj.year)
-})
-watch(expression, () => resolveExp())
-function shouldHide(key) {
-    return !(hideComponent.value && hideComponent.value.includes(key))
-}
-function resolveExp() {
-    // 反解析 表达式
-    if (expression.value) {
-        const arr = expression.value.split(/\s+/)
-        if (arr.length >= 6) {
-            //6 位以上是合法表达式
-            let obj = {
-                second: arr[0],
-                min: arr[1],
-                hour: arr[2],
-                day: arr[3],
-                month: arr[4],
-                week: arr[5],
-                year: arr[6] ? arr[6] : ""
-            }
-            crontabValueObj.value = {
-                ...obj,
-            }
-        }
-    } else {
-        // 没有传入的表达式 则还原
-        clearCron()
-    }
-}
-// tab切换值
-function tabCheck(index) {
-    tabActive.value = index
-}
-// 由子组件触发,更改表达式组成的字段值
-function updateCrontabValue(name, value, from) {
-    crontabValueObj.value[name] = value
-}
-// 表单选项的子组件校验数字格式(通过-props传递)
-function checkNumber(value, minLimit, maxLimit) {
-    // 检查必须为整数
-    value = Math.floor(value)
-    if (value < minLimit) {
-        value = minLimit
-    } else if (value > maxLimit) {
-        value = maxLimit
-    }
-    return value
-}
-// 隐藏弹窗
-function hidePopup() {
-    emit("hide")
-}
-// 填充表达式
-function submitFill() {
-    emit("fill", crontabValueString.value)
-    hidePopup()
-}
-function clearCron() {
-    // 还原选择项
-    crontabValueObj.value = {
-        second: "*",
-        min: "*",
-        hour: "*",
-        day: "*",
-        month: "*",
-        week: "?",
-        year: "",
-    }
-}
-onMounted(() => {
-    expression.value = props.expression
-    hideComponent.value = props.hideComponent
-})
-</script>
-
-<style lang="scss" scoped>
-.pop_btn {
-    text-align: center;
-    margin-top: 20px;
-}
-.popup-main {
-    position: relative;
-    margin: 10px auto;
-    background: #fff;
-    border-radius: 5px;
-    font-size: 12px;
-    overflow: hidden;
-}
-.popup-title {
-    overflow: hidden;
-    line-height: 34px;
-    padding-top: 6px;
-    background: #f2f2f2;
-}
-.popup-result {
-    box-sizing: border-box;
-    line-height: 24px;
-    margin: 25px auto;
-    padding: 15px 10px 10px;
-    border: 1px solid #ccc;
-    position: relative;
-}
-.popup-result .title {
-    position: absolute;
-    top: -28px;
-    left: 50%;
-    width: 140px;
-    font-size: 14px;
-    margin-left: -70px;
-    text-align: center;
-    line-height: 30px;
-    background: #fff;
-}
-.popup-result table {
-    text-align: center;
-    width: 100%;
-    margin: 0 auto;
-}
-.popup-result table td:not(.result) {
-    width: 3.5rem;
-    min-width: 3.5rem;
-    max-width: 3.5rem;
-}
-.popup-result table span {
-    display: block;
-    width: 100%;
-    font-family: arial;
-    line-height: 30px;
-    height: 30px;
-    white-space: nowrap;
-    overflow: hidden;
-    border: 1px solid #e8e8e8;
-}
-.popup-result-scroll {
-    font-size: 12px;
-    line-height: 24px;
-    height: 10em;
-    overflow-y: auto;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/min.vue b/src/components/Crontab/min.vue
deleted file mode 100644
index 5d80cd2..0000000
--- a/src/components/Crontab/min.vue
+++ /dev/null
@@ -1,126 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                分钟,允许的通配符[, - * /]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                周期从
-                <el-input-number v-model='cycle01' :min="0" :max="58" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="59" /> 分钟
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                从
-                <el-input-number v-model='average01' :min="0" :max="58" /> 分钟开始, 每
-                <el-input-number v-model='average02' :min="1" :max="59 - average01" /> 分钟执行一次
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
-                    <el-option v-for="item in 60" :key="item" :label="item - 1" :value="item - 1" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: "",
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(1)
-const cycle01 = ref(0)
-const cycle02 = ref(1)
-const average01 = ref(0)
-const average02 = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([0])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 0, 58)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 59)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 0, 58)
-    average02.value = props.check(average02.value, 1, 59 - average01.value)
-    return average01.value + '/' + average02.value
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.min, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === '*') {
-        radioValue.value = 1
-    } else if (value.indexOf('-') > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 2
-    } else if (value.indexOf('/') > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[0])
-        average02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 4
-    }
-}
-function onRadioChange() {
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'min', '*', 'min')
-            break
-        case 2:
-            emit('update', 'min', cycleTotal.value, 'min')
-            break
-        case 3:
-            emit('update', 'min', averageTotal.value, 'min')
-            break
-        case 4:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'min', checkboxString.value, 'min')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 19.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/month.vue b/src/components/Crontab/month.vue
deleted file mode 100644
index 657d3f2..0000000
--- a/src/components/Crontab/month.vue
+++ /dev/null
@@ -1,141 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                月,允许的通配符[, - * /]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                周期从
-                <el-input-number v-model='cycle01' :min="1" :max="11" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="12" /> 月
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                从
-                <el-input-number v-model='average01' :min="1" :max="11" /> 月开始,每
-                <el-input-number v-model='average02' :min="1" :max="12 - average01" /> 月月执行一次
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="8">
-                    <el-option v-for="item in monthList" :key="item.key" :label="item.value" :value="item.key" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: "",
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(1)
-const cycle01 = ref(1)
-const cycle02 = ref(2)
-const average01 = ref(1)
-const average02 = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([1])
-const monthList = ref([
-    {key: 1, value: '一月'},
-    {key: 2, value: '二月'},
-    {key: 3, value: '三月'},
-    {key: 4, value: '四月'},
-    {key: 5, value: '五月'},
-    {key: 6, value: '六月'},
-    {key: 7, value: '七月'},
-    {key: 8, value: '八月'},
-    {key: 9, value: '九月'},
-    {key: 10, value: '十月'},
-    {key: 11, value: '十一月'},
-    {key: 12, value: '十二月'}
-])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 1, 11)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 12)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 1, 11)
-    average02.value = props.check(average02.value, 1, 12 - average01.value)
-    return average01.value + '/' + average02.value
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.month, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === '*') {
-        radioValue.value = 1
-    } else if (value.indexOf('-') > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 2
-    } else if (value.indexOf('/') > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[0])
-        average02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 4
-    }
-}
-function onRadioChange() {
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'month', '*', 'month')
-            break
-        case 2:
-            emit('update', 'month', cycleTotal.value, 'month')
-            break
-        case 3:
-            emit('update', 'month', averageTotal.value, 'month')
-            break
-        case 4:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'month', checkboxString.value, 'month')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 18.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/result.vue b/src/components/Crontab/result.vue
deleted file mode 100644
index 5a812ee..0000000
--- a/src/components/Crontab/result.vue
+++ /dev/null
@@ -1,540 +0,0 @@
-<template>
-	<div class="popup-result">
-		<p class="title">最近5次运行时间</p>
-		<ul class="popup-result-scroll">
-			<template v-if='isShow'>
-				<li v-for='item in resultList' :key="item">{{item}}</li>
-			</template>
-			<li v-else>计算结果中...</li>
-		</ul>
-	</div>
-</template>
-
-<script setup>
-const props = defineProps({
-    ex: {
-        type: String,
-        default: ''
-    }
-})
-const dayRule = ref('')
-const dayRuleSup = ref('')
-const dateArr = ref([])
-const resultList = ref([])
-const isShow = ref(false)
-watch(() => props.ex, () => expressionChange())
-// 表达式值变化时,开始去计算结果
-function expressionChange() {
-    // 计算开始-隐藏结果
-    isShow.value = false;
-    // 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
-    let ruleArr = props.ex.split(' ');
-    // 用于记录进入循环的次数
-    let nums = 0;
-    // 用于暂时存符号时间规则结果的数组
-    let resultArr = [];
-    // 获取当前时间精确至[年、月、日、时、分、秒]
-    let nTime = new Date();
-    let nYear = nTime.getFullYear();
-    let nMonth = nTime.getMonth() + 1;
-    let nDay = nTime.getDate();
-    let nHour = nTime.getHours();
-    let nMin = nTime.getMinutes();
-    let nSecond = nTime.getSeconds();
-    // 根据规则获取到近100年可能年数组、月数组等等
-    getSecondArr(ruleArr[0]);
-    getMinArr(ruleArr[1]);
-    getHourArr(ruleArr[2]);
-    getDayArr(ruleArr[3]);
-    getMonthArr(ruleArr[4]);
-    getWeekArr(ruleArr[5]);
-    getYearArr(ruleArr[6], nYear);
-    // 将获取到的数组赋值-方便使用
-    let sDate = dateArr.value[0];
-    let mDate = dateArr.value[1];
-    let hDate = dateArr.value[2];
-    let DDate = dateArr.value[3];
-    let MDate = dateArr.value[4];
-    let YDate = dateArr.value[5];
-    // 获取当前时间在数组中的索引
-    let sIdx = getIndex(sDate, nSecond);
-    let mIdx = getIndex(mDate, nMin);
-    let hIdx = getIndex(hDate, nHour);
-    let DIdx = getIndex(DDate, nDay);
-    let MIdx = getIndex(MDate, nMonth);
-    let YIdx = getIndex(YDate, nYear);
-    // 重置月日时分秒的函数(后面用的比较多)
-    const resetSecond = function () {
-        sIdx = 0;
-        nSecond = sDate[sIdx]
-    }
-    const resetMin = function () {
-        mIdx = 0;
-        nMin = mDate[mIdx]
-        resetSecond();
-    }
-    const resetHour = function () {
-        hIdx = 0;
-        nHour = hDate[hIdx]
-        resetMin();
-    }
-    const resetDay = function () {
-        DIdx = 0;
-        nDay = DDate[DIdx]
-        resetHour();
-    }
-    const resetMonth = function () {
-        MIdx = 0;
-        nMonth = MDate[MIdx]
-        resetDay();
-    }
-    // 如果当前年份不为数组中当前值
-    if (nYear !== YDate[YIdx]) {
-        resetMonth();
-    }
-    // 如果当前月份不为数组中当前值
-    if (nMonth !== MDate[MIdx]) {
-        resetDay();
-    }
-    // 如果当前“日”不为数组中当前值
-    if (nDay !== DDate[DIdx]) {
-        resetHour();
-    }
-    // 如果当前“时”不为数组中当前值
-    if (nHour !== hDate[hIdx]) {
-        resetMin();
-    }
-    // 如果当前“分”不为数组中当前值
-    if (nMin !== mDate[mIdx]) {
-        resetSecond();
-    }
-    // 循环年份数组
-    goYear: for (let Yi = YIdx; Yi < YDate.length; Yi++) {
-        let YY = YDate[Yi];
-        // 如果到达最大值时
-        if (nMonth > MDate[MDate.length - 1]) {
-            resetMonth();
-            continue;
-        }
-        // 循环月份数组
-        goMonth: for (let Mi = MIdx; Mi < MDate.length; Mi++) {
-            // 赋值、方便后面运算
-            let MM = MDate[Mi];
-            MM = MM < 10 ? '0' + MM : MM;
-            // 如果到达最大值时
-            if (nDay > DDate[DDate.length - 1]) {
-                resetDay();
-                if (Mi === MDate.length - 1) {
-                    resetMonth();
-                    continue goYear;
-                }
-                continue;
-            }
-            // 循环日期数组
-            goDay: for (let Di = DIdx; Di < DDate.length; Di++) {
-                // 赋值、方便后面运算
-                let DD = DDate[Di];
-                let thisDD = DD < 10 ? '0' + DD : DD;
-                // 如果到达最大值时
-                if (nHour > hDate[hDate.length - 1]) {
-                    resetHour();
-                    if (Di === DDate.length - 1) {
-                        resetDay();
-                        if (Mi === MDate.length - 1) {
-                            resetMonth();
-                            continue goYear;
-                        }
-                        continue goMonth;
-                    }
-                    continue;
-                }
-                // 判断日期的合法性,不合法的话也是跳出当前循环
-                if (checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true && dayRule.value !== 'workDay' && dayRule.value !== 'lastWeek' && dayRule.value !== 'lastDay') {
-                    resetDay();
-                    continue goMonth;
-                }
-                // 如果日期规则中有值时
-                if (dayRule.value === 'lastDay') {
-                    // 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
-                    if (checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                        while (DD > 0 && checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                            DD--;
-                            thisDD = DD < 10 ? '0' + DD : DD;
-                        }
-                    }
-                } else if (dayRule.value === 'workDay') {
-                    // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
-                    if (checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                        while (DD > 0 && checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                            DD--;
-                            thisDD = DD < 10 ? '0' + DD : DD;
-                        }
-                    }
-                    // 获取达到条件的日期是星期X
-                    let thisWeek = formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
-                    // 当星期日时
-                    if (thisWeek === 1) {
-                        // 先找下一个日,并判断是否为月底
-                        DD++;
-                        thisDD = DD < 10 ? '0' + DD : DD;
-                        // 判断下一日已经不是合法日期
-                        if (checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                            DD -= 3;
-                        }
-                    } else if (thisWeek === 7) {
-                        // 当星期6时只需判断不是1号就可进行操作
-                        if (dayRuleSup.value !== 1) {
-                            DD--;
-                        } else {
-                            DD += 2;
-                        }
-                    }
-                } else if (dayRule.value === 'weekDay') {
-                    // 如果指定了是星期几
-                    // 获取当前日期是属于星期几
-                    let thisWeek = formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
-                    // 校验当前星期是否在星期池(dayRuleSup)中
-                    if (dayRuleSup.value.indexOf(thisWeek) < 0) {
-                        // 如果到达最大值时
-                        if (Di === DDate.length - 1) {
-                            resetDay();
-                            if (Mi === MDate.length - 1) {
-                                resetMonth();
-                                continue goYear;
-                            }
-                            continue goMonth;
-                        }
-                        continue;
-                    }
-                } else if (dayRule.value === 'assWeek') {
-                    // 如果指定了是第几周的星期几
-                    // 获取每月1号是属于星期几
-                    let thisWeek = formatDate(new Date(YY + '-' + MM + '-' + DD + ' 00:00:00'), 'week');
-                    if (dayRuleSup.value[1] >= thisWeek) {
-                        DD = (dayRuleSup.value[0] - 1) * 7 + dayRuleSup.value[1] - thisWeek + 1;
-                    } else {
-                        DD = dayRuleSup.value[0] * 7 + dayRuleSup.value[1] - thisWeek + 1;
-                    }
-                } else if (dayRule.value === 'lastWeek') {
-                    // 如果指定了每月最后一个星期几
-                    // 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
-                    if (checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                        while (DD > 0 && checkDate(YY + '-' + MM + '-' + thisDD + ' 00:00:00') !== true) {
-                            DD--;
-                            thisDD = DD < 10 ? '0' + DD : DD;
-                        }
-                    }
-                    // 获取月末最后一天是星期几
-                    let thisWeek = formatDate(new Date(YY + '-' + MM + '-' + thisDD + ' 00:00:00'), 'week');
-                    // 找到要求中最近的那个星期几
-                    if (dayRuleSup.value < thisWeek) {
-                        DD -= thisWeek - dayRuleSup.value;
-                    } else if (dayRuleSup.value > thisWeek) {
-                        DD -= 7 - (dayRuleSup.value - thisWeek)
-                    }
-                }
-                // 判断时间值是否小于10置换成“05”这种格式
-                DD = DD < 10 ? '0' + DD : DD;
-                // 循环“时”数组
-                goHour: for (let hi = hIdx; hi < hDate.length; hi++) {
-                    let hh = hDate[hi] < 10 ? '0' + hDate[hi] : hDate[hi]
-                    // 如果到达最大值时
-                    if (nMin > mDate[mDate.length - 1]) {
-                        resetMin();
-                        if (hi === hDate.length - 1) {
-                            resetHour();
-                            if (Di === DDate.length - 1) {
-                                resetDay();
-                                if (Mi === MDate.length - 1) {
-                                    resetMonth();
-                                    continue goYear;
-                                }
-                                continue goMonth;
-                            }
-                            continue goDay;
-                        }
-                        continue;
-                    }
-                    // 循环"分"数组
-                    goMin: for (let mi = mIdx; mi < mDate.length; mi++) {
-                        let mm = mDate[mi] < 10 ? '0' + mDate[mi] : mDate[mi];
-                        // 如果到达最大值时
-                        if (nSecond > sDate[sDate.length - 1]) {
-                            resetSecond();
-                            if (mi === mDate.length - 1) {
-                                resetMin();
-                                if (hi === hDate.length - 1) {
-                                    resetHour();
-                                    if (Di === DDate.length - 1) {
-                                        resetDay();
-                                        if (Mi === MDate.length - 1) {
-                                            resetMonth();
-                                            continue goYear;
-                                        }
-                                        continue goMonth;
-                                    }
-                                    continue goDay;
-                                }
-                                continue goHour;
-                            }
-                            continue;
-                        }
-                        // 循环"秒"数组
-                        goSecond: for (let si = sIdx; si <= sDate.length - 1; si++) {
-                            let ss = sDate[si] < 10 ? '0' + sDate[si] : sDate[si];
-                            // 添加当前时间(时间合法性在日期循环时已经判断)
-                            if (MM !== '00' && DD !== '00') {
-                                resultArr.push(YY + '-' + MM + '-' + DD + ' ' + hh + ':' + mm + ':' + ss)
-                                nums++;
-                            }
-                            // 如果条数满了就退出循环
-                            if (nums === 5) break goYear;
-                            // 如果到达最大值时
-                            if (si === sDate.length - 1) {
-                                resetSecond();
-                                if (mi === mDate.length - 1) {
-                                    resetMin();
-                                    if (hi === hDate.length - 1) {
-                                        resetHour();
-                                        if (Di === DDate.length - 1) {
-                                            resetDay();
-                                            if (Mi === MDate.length - 1) {
-                                                resetMonth();
-                                                continue goYear;
-                                            }
-                                            continue goMonth;
-                                        }
-                                        continue goDay;
-                                    }
-                                    continue goHour;
-                                }
-                                continue goMin;
-                            }
-                        } //goSecond
-                    } //goMin
-                }//goHour
-            }//goDay
-        }//goMonth
-    }
-    // 判断100年内的结果条数
-    if (resultArr.length === 0) {
-        resultList.value = ['没有达到条件的结果!'];
-    } else {
-        resultList.value = resultArr;
-        if (resultArr.length !== 5) {
-            resultList.value.push('最近100年内只有上面' + resultArr.length + '条结果!')
-        }
-    }
-    // 计算完成-显示结果
-    isShow.value = true;
-}
-// 用于计算某位数字在数组中的索引
-function getIndex(arr, value) {
-    if (value <= arr[0] || value > arr[arr.length - 1]) {
-        return 0;
-    } else {
-        for (let i = 0; i < arr.length - 1; i++) {
-            if (value > arr[i] && value <= arr[i + 1]) {
-                return i + 1;
-            }
-        }
-    }
-}
-// 获取"年"数组
-function getYearArr(rule, year) {
-    dateArr.value[5] = getOrderArr(year, year + 100);
-    if (rule !== undefined) {
-        if (rule.indexOf('-') >= 0) {
-            dateArr.value[5] = getCycleArr(rule, year + 100, false)
-        } else if (rule.indexOf('/') >= 0) {
-            dateArr.value[5] = getAverageArr(rule, year + 100)
-        } else if (rule !== '*') {
-            dateArr.value[5] = getAssignArr(rule)
-        }
-    }
-}
-// 获取"月"数组
-function getMonthArr(rule) {
-    dateArr.value[4] = getOrderArr(1, 12);
-    if (rule.indexOf('-') >= 0) {
-        dateArr.value[4] = getCycleArr(rule, 12, false)
-    } else if (rule.indexOf('/') >= 0) {
-        dateArr.value[4] = getAverageArr(rule, 12)
-    } else if (rule !== '*') {
-        dateArr.value[4] = getAssignArr(rule)
-    }
-}
-// 获取"日"数组-主要为日期规则
-function getWeekArr(rule) {
-    // 只有当日期规则的两个值均为“”时则表达日期是有选项的
-    if (dayRule.value === '' && dayRuleSup.value === '') {
-        if (rule.indexOf('-') >= 0) {
-            dayRule.value = 'weekDay';
-            dayRuleSup.value = getCycleArr(rule, 7, false)
-        } else if (rule.indexOf('#') >= 0) {
-            dayRule.value = 'assWeek';
-            let matchRule = rule.match(/[0-9]{1}/g);
-            dayRuleSup.value = [Number(matchRule[1]), Number(matchRule[0])];
-            dateArr.value[3] = [1];
-            if (dayRuleSup.value[1] === 7) {
-                dayRuleSup.value[1] = 0;
-            }
-        } else if (rule.indexOf('L') >= 0) {
-            dayRule.value = 'lastWeek';
-            dayRuleSup.value = Number(rule.match(/[0-9]{1,2}/g)[0]);
-            dateArr.value[3] = [31];
-            if (dayRuleSup.value === 7) {
-                dayRuleSup.value = 0;
-            }
-        } else if (rule !== '*' && rule !== '?') {
-            dayRule.value = 'weekDay';
-            dayRuleSup.value = getAssignArr(rule)
-        }
-    }
-}
-// 获取"日"数组-少量为日期规则
-function getDayArr(rule) {
-    dateArr.value[3] = getOrderArr(1, 31);
-    dayRule.value = '';
-    dayRuleSup.value = '';
-    if (rule.indexOf('-') >= 0) {
-        dateArr.value[3] = getCycleArr(rule, 31, false)
-        dayRuleSup.value = 'null';
-    } else if (rule.indexOf('/') >= 0) {
-        dateArr.value[3] = getAverageArr(rule, 31)
-        dayRuleSup.value = 'null';
-    } else if (rule.indexOf('W') >= 0) {
-        dayRule.value = 'workDay';
-        dayRuleSup.value = Number(rule.match(/[0-9]{1,2}/g)[0]);
-        dateArr.value[3] = [dayRuleSup.value];
-    } else if (rule.indexOf('L') >= 0) {
-        dayRule.value = 'lastDay';
-        dayRuleSup.value = 'null';
-        dateArr.value[3] = [31];
-    } else if (rule !== '*' && rule !== '?') {
-        dateArr.value[3] = getAssignArr(rule)
-        dayRuleSup.value = 'null';
-    } else if (rule === '*') {
-        dayRuleSup.value = 'null';
-    }
-}
-// 获取"时"数组
-function getHourArr(rule) {
-    dateArr.value[2] = getOrderArr(0, 23);
-    if (rule.indexOf('-') >= 0) {
-        dateArr.value[2] = getCycleArr(rule, 24, true)
-    } else if (rule.indexOf('/') >= 0) {
-        dateArr.value[2] = getAverageArr(rule, 23)
-    } else if (rule !== '*') {
-        dateArr.value[2] = getAssignArr(rule)
-    }
-}
-// 获取"分"数组
-function getMinArr(rule) {
-    dateArr.value[1] = getOrderArr(0, 59);
-    if (rule.indexOf('-') >= 0) {
-        dateArr.value[1] = getCycleArr(rule, 60, true)
-    } else if (rule.indexOf('/') >= 0) {
-        dateArr.value[1] = getAverageArr(rule, 59)
-    } else if (rule !== '*') {
-        dateArr.value[1] = getAssignArr(rule)
-    }
-}
-// 获取"秒"数组
-function getSecondArr(rule) {
-    dateArr.value[0] = getOrderArr(0, 59);
-    if (rule.indexOf('-') >= 0) {
-        dateArr.value[0] = getCycleArr(rule, 60, true)
-    } else if (rule.indexOf('/') >= 0) {
-        dateArr.value[0] = getAverageArr(rule, 59)
-    } else if (rule !== '*') {
-        dateArr.value[0] = getAssignArr(rule)
-    }
-}
-// 根据传进来的min-max返回一个顺序的数组
-function getOrderArr(min, max) {
-    let arr = [];
-    for (let i = min; i <= max; i++) {
-        arr.push(i);
-    }
-    return arr;
-}
-// 根据规则中指定的零散值返回一个数组
-function getAssignArr(rule) {
-    let arr = [];
-    let assiginArr = rule.split(',');
-    for (let i = 0; i < assiginArr.length; i++) {
-        arr[i] = Number(assiginArr[i])
-    }
-    arr.sort(compare)
-    return arr;
-}
-// 根据一定算术规则计算返回一个数组
-function getAverageArr(rule, limit) {
-    let arr = [];
-    let agArr = rule.split('/');
-    let min = Number(agArr[0]);
-    let step = Number(agArr[1]);
-    while (min <= limit) {
-        arr.push(min);
-        min += step;
-    }
-    return arr;
-}
-// 根据规则返回一个具有周期性的数组
-function getCycleArr(rule, limit, status) {
-    // status--表示是否从0开始(则从1开始)
-    let arr = [];
-    let cycleArr = rule.split('-');
-    let min = Number(cycleArr[0]);
-    let max = Number(cycleArr[1]);
-    if (min > max) {
-        max += limit;
-    }
-    for (let i = min; i <= max; i++) {
-        let add = 0;
-        if (status === false && i % limit === 0) {
-            add = limit;
-        }
-        arr.push(Math.round(i % limit + add))
-    }
-    arr.sort(compare)
-    return arr;
-}
-// 比较数字大小(用于Array.sort)
-function compare(value1, value2) {
-    if (value2 - value1 > 0) {
-        return -1;
-    } else {
-        return 1;
-    }
-}
-// 格式化日期格式如:2017-9-19 18:04:33
-function formatDate(value, type) {
-    // 计算日期相关值
-    let time = typeof value == 'number' ? new Date(value) : value;
-    let Y = time.getFullYear();
-    let M = time.getMonth() + 1;
-    let D = time.getDate();
-    let h = time.getHours();
-    let m = time.getMinutes();
-    let s = time.getSeconds();
-    let week = time.getDay();
-    // 如果传递了type的话
-    if (type === undefined) {
-        return Y + '-' + (M < 10 ? '0' + M : M) + '-' + (D < 10 ? '0' + D : D) + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s);
-    } else if (type === 'week') {
-        // 在quartz中 1为星期日
-        return week + 1;
-    }
-}
-// 检查日期是否存在
-function checkDate(value) {
-    let time = new Date(value);
-    let format = formatDate(time)
-    return value === format;
-}
-onMounted(() => {
-    expressionChange()
-})
-</script>
\ No newline at end of file
diff --git a/src/components/Crontab/second.vue b/src/components/Crontab/second.vue
deleted file mode 100644
index a7e5798..0000000
--- a/src/components/Crontab/second.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                秒,允许的通配符[, - * /]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                周期从
-                <el-input-number v-model='cycle01' :min="0" :max="58" /> -
-                <el-input-number v-model='cycle02' :min="cycle01 + 1" :max="59" /> 秒
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                从
-                <el-input-number v-model='average01' :min="0" :max="58" /> 秒开始,每
-                <el-input-number v-model='average02' :min="1" :max="59 - average01" /> 秒执行一次
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="10">
-                    <el-option v-for="item in 60" :key="item" :label="item - 1" :value="item - 1" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: "",
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(1)
-const cycle01 = ref(0)
-const cycle02 = ref(1)
-const average01 = ref(0)
-const average02 = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([0])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 0, 58)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 59)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 0, 58)
-    average02.value = props.check(average02.value, 1, 59 - average01.value)
-    return average01.value + '/' + average02.value
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.second, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === '*') {
-        radioValue.value = 1
-    } else if (value.indexOf('-') > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 2
-    } else if (value.indexOf('/') > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[0])
-        average02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 4
-    }
-}
-// 单选按钮值变化时
-function onRadioChange() {
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'second', '*', 'second')
-            break
-        case 2:
-            emit('update', 'second', cycleTotal.value, 'second')
-            break
-        case 3:
-            emit('update', 'second', averageTotal.value, 'second')
-            break
-        case 4:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'second', checkboxString.value, 'second')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 18.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/week.vue b/src/components/Crontab/week.vue
deleted file mode 100644
index 105a3be..0000000
--- a/src/components/Crontab/week.vue
+++ /dev/null
@@ -1,197 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="1">
-                周,允许的通配符[, - * ? / L #]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="2">
-                不指定
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="3">
-                周期从
-                <el-select clearable v-model="cycle01">
-                    <el-option
-                        v-for="(item,index) of weekList"
-                        :key="index"
-                        :label="item.value"
-                        :value="item.key"
-                        :disabled="item.key === 7"
-                    >{{item.value}}</el-option>
-                </el-select>
-                -
-                <el-select clearable v-model="cycle02">
-                    <el-option
-                        v-for="(item,index) of weekList"
-                        :key="index"
-                        :label="item.value"
-                        :value="item.key"
-                        :disabled="item.key <= cycle01"
-                    >{{item.value}}</el-option>
-                </el-select>
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="4">
-                第
-                <el-input-number v-model='average01' :min="1" :max="4" /> 周的
-                <el-select clearable v-model="average02">
-                    <el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="5">
-                本月最后一个
-                <el-select clearable v-model="weekday">
-                    <el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio v-model='radioValue' :label="6">
-                指定
-                <el-select class="multiselect" clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="6">
-                    <el-option v-for="item in weekList" :key="item.key" :label="item.value" :value="item.key" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-
-    </el-form>
-</template>
-
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: ""
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const radioValue = ref(2)
-const cycle01 = ref(2)
-const cycle02 = ref(3)
-const average01 = ref(1)
-const average02 = ref(2)
-const weekday = ref(2)
-const checkboxList = ref([])
-const checkCopy = ref([2])
-const weekList = ref([
-    {key: 1, value: '星期日'},
-    {key: 2, value: '星期一'},
-    {key: 3, value: '星期二'},
-    {key: 4, value: '星期三'},
-    {key: 5, value: '星期四'},
-    {key: 6, value: '星期五'},
-    {key: 7, value: '星期六'}
-])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, 1, 6)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, 7)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, 1, 4)
-    average02.value = props.check(average02.value, 1, 7)
-    return average02.value + '#' + average01.value
-})
-const weekdayTotal = computed(() => {
-    weekday.value = props.check(weekday.value, 1, 7)
-    return weekday.value + 'L'
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.week, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, weekdayTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === "*") {
-        radioValue.value = 1
-    } else if (value === "?") {
-        radioValue.value = 2
-    } else if (value.indexOf("-") > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else if (value.indexOf("#") > -1) {
-        const indexArr = value.split('#')
-        average01.value = Number(indexArr[1])
-        average02.value = Number(indexArr[0])
-        radioValue.value = 4
-    } else if (value.indexOf("L") > -1) {
-        const indexArr = value.split("L")
-        weekday.value = Number(indexArr[0])
-        radioValue.value = 5
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 6
-    }
-}
-function onRadioChange() {
-    if (radioValue.value === 2 && props.cron.day === '?') {
-        emit('update', 'day', '*', 'week')
-    }
-    if (radioValue.value !== 2 && props.cron.day !== '?') {
-        emit('update', 'day', '?', 'week')
-    }
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'week', '*', 'week')
-            break
-        case 2:
-            emit('update', 'week', '?', 'week')
-            break
-        case 3:
-            emit('update', 'week', cycleTotal.value, 'week')
-            break
-        case 4:
-            emit('update', 'week', averageTotal.value, 'week')
-            break
-        case 5:
-            emit('update', 'week', weekdayTotal.value, 'week')
-            break
-        case 6:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'week', checkboxString.value, 'week')
-            break
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.5rem;
-}
-.el-select, .el-select--small {
-    width: 8rem;
-}
-.el-select.multiselect, .el-select--small.multiselect {
-    width: 17.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/Crontab/year.vue b/src/components/Crontab/year.vue
deleted file mode 100644
index b26bdae..0000000
--- a/src/components/Crontab/year.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
-    <el-form>
-        <el-form-item>
-            <el-radio :label="1" v-model='radioValue'>
-                不填,允许的通配符[, - * /]
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio :label="2" v-model='radioValue'>
-                每年
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio :label="3" v-model='radioValue'>
-                周期从
-                <el-input-number v-model='cycle01' :min='fullYear' :max="2098"/> -
-                <el-input-number v-model='cycle02' :min="cycle01 ? cycle01 + 1 : fullYear + 1" :max="2099"/>
-            </el-radio>
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio :label="4" v-model='radioValue'>
-                从
-                <el-input-number v-model='average01' :min='fullYear' :max="2098"/> 年开始,每
-                <el-input-number v-model='average02' :min="1" :max="2099 - average01 || fullYear"/> 年执行一次
-            </el-radio>
-
-        </el-form-item>
-
-        <el-form-item>
-            <el-radio :label="5" v-model='radioValue'>
-                指定
-                <el-select clearable v-model="checkboxList" placeholder="可多选" multiple :multiple-limit="8">
-                    <el-option v-for="item in 9" :key="item" :value="item - 1 + fullYear" :label="item -1 + fullYear" />
-                </el-select>
-            </el-radio>
-        </el-form-item>
-    </el-form>
-</template>
-
-<script setup>
-const emit = defineEmits(['update'])
-const props = defineProps({
-    cron: {
-        type: Object,
-        default: {
-            second: "*",
-            min: "*",
-            hour: "*",
-            day: "*",
-            month: "*",
-            week: "?",
-            year: ""
-        }
-    },
-    check: {
-        type: Function,
-        default: () => {
-        }
-    }
-})
-const fullYear = ref(0)
-const maxFullYear = ref(0)
-const radioValue = ref(1)
-const cycle01 = ref(0)
-const cycle02 = ref(0)
-const average01 = ref(0)
-const average02 = ref(1)
-const checkboxList = ref([])
-const checkCopy = ref([])
-const cycleTotal = computed(() => {
-    cycle01.value = props.check(cycle01.value, fullYear.value, maxFullYear.value - 1)
-    cycle02.value = props.check(cycle02.value, cycle01.value + 1, maxFullYear.value)
-    return cycle01.value + '-' + cycle02.value
-})
-const averageTotal = computed(() => {
-    average01.value = props.check(average01.value, fullYear.value, maxFullYear.value - 1)
-    average02.value = props.check(average02.value, 1, 10)
-    return average01.value + '/' + average02.value
-})
-const checkboxString = computed(() => {
-    return checkboxList.value.join(',')
-})
-watch(() => props.cron.year, value => changeRadioValue(value))
-watch([radioValue, cycleTotal, averageTotal, checkboxString], () => onRadioChange())
-function changeRadioValue(value) {
-    if (value === '') {
-        radioValue.value = 1
-    } else if (value === "*") {
-        radioValue.value = 2
-    } else if (value.indexOf("-") > -1) {
-        const indexArr = value.split('-')
-        cycle01.value = Number(indexArr[0])
-        cycle02.value = Number(indexArr[1])
-        radioValue.value = 3
-    } else if (value.indexOf("/") > -1) {
-        const indexArr = value.split('/')
-        average01.value = Number(indexArr[1])
-        average02.value = Number(indexArr[0])
-        radioValue.value = 4
-    } else {
-        checkboxList.value = [...new Set(value.split(',').map(item => Number(item)))]
-        radioValue.value = 5
-    }
-}
-function onRadioChange() {
-    switch (radioValue.value) {
-        case 1:
-            emit('update', 'year', '', 'year')
-            break
-        case 2:
-            emit('update', 'year', '*', 'year')
-            break
-        case 3:
-            emit('update', 'year', cycleTotal.value, 'year')
-            break
-        case 4:
-            emit('update', 'year', averageTotal.value, 'year')
-            break
-        case 5:
-            if (checkboxList.value.length === 0) {
-                checkboxList.value.push(checkCopy.value[0])
-            } else {
-                checkCopy.value = checkboxList.value
-            }
-            emit('update', 'year', checkboxString.value, 'year')
-            break
-    }
-}
-onMounted(() => {
-    fullYear.value = Number(new Date().getFullYear())
-    maxFullYear.value = fullYear.value + 10
-    cycle01.value = fullYear.value
-    cycle02.value = cycle01.value + 1
-    average01.value = fullYear.value
-    checkCopy.value = [fullYear.value]
-})
-</script>
-
-<style lang="scss" scoped>
-.el-input-number--small, .el-select, .el-select--small {
-    margin: 0 0.2rem;
-}
-.el-select, .el-select--small {
-    width: 18.8rem;
-}
-</style>
\ No newline at end of file
diff --git a/src/components/RightToolbar/index.vue b/src/components/RightToolbar/index.vue
new file mode 100644
index 0000000..5a53dd4
--- /dev/null
+++ b/src/components/RightToolbar/index.vue
@@ -0,0 +1,134 @@
+<template>
+  <div class="top-right-btn" :style="style">
+    <el-row>
+      <el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top" v-if="search">
+        <el-button circle icon="Search" @click="toggleSearch()" />
+      </el-tooltip>
+      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
+        <el-button circle icon="Refresh" @click="refresh()" />
+      </el-tooltip>
+      <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns">
+        <el-button circle icon="Menu" @click="showColumn()" v-if="showColumnsType == 'transfer'"/>
+        <el-dropdown trigger="click" :hide-on-click="false" style="padding-left: 12px" v-if="showColumnsType == 'checkbox'">
+          <el-button circle icon="Menu" />
+          <template #dropdown>
+            <el-dropdown-menu>
+              <template v-for="item in columns" :key="item.key">
+                <el-dropdown-item>
+                  <el-checkbox :checked="item.visible" @change="checkboxChange($event, item.label)" :label="item.label" />
+                </el-dropdown-item>
+              </template>
+            </el-dropdown-menu>
+          </template>
+        </el-dropdown>
+      </el-tooltip>
+    </el-row>
+    <el-dialog :title="title" v-model="open" append-to-body>
+      <el-transfer
+        :titles="['显示', '隐藏']"
+        v-model="value"
+        :data="columns"
+        @change="dataChange"
+      ></el-transfer>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup>
+const props = defineProps({
+  /* 是否显示检索条件 */
+  showSearch: {
+    type: Boolean,
+    default: true,
+  },
+  /* 显隐列信息 */
+  columns: {
+    type: Array,
+  },
+  /* 是否显示检索图标 */
+  search: {
+    type: Boolean,
+    default: true,
+  },
+  /* 显隐列类型(transfer穿梭框、checkbox复选框) */
+  showColumnsType: {
+    type: String,
+    default: "checkbox",
+  },
+  /* 右外边距 */
+  gutter: {
+    type: Number,
+    default: 10,
+  },
+})
+
+const emits = defineEmits(['update:showSearch', 'queryTable']);
+
+// 显隐数据
+const value = ref([]);
+// 弹出层标题
+const title = ref("显示/隐藏");
+// 是否显示弹出层
+const open = ref(false);
+
+const style = computed(() => {
+  const ret = {};
+  if (props.gutter) {
+    ret.marginRight = `${props.gutter / 2}px`;
+  }
+  return ret;
+});
+
+// 搜索
+function toggleSearch() {
+  emits("update:showSearch", !props.showSearch);
+}
+
+// 刷新
+function refresh() {
+  emits("queryTable");
+}
+
+// 右侧列表元素变化
+function dataChange(data) {
+  for (let item in props.columns) {
+    const key = props.columns[item].key;
+    props.columns[item].visible = !data.includes(key);
+  }
+}
+
+// 打开显隐列dialog
+function showColumn() {
+  open.value = true;
+}
+
+if (props.showColumnsType == 'transfer') {
+  // 显隐列初始默认隐藏列
+  for (let item in props.columns) {
+    if (props.columns[item].visible === false) {
+      value.value.push(parseInt(item));
+    }
+  }
+}
+
+// 勾选
+function checkboxChange(event, label) {
+  props.columns.filter(item => item.label == label)[0].visible = event;
+}
+
+</script>
+
+<style lang='scss' scoped>
+:deep(.el-transfer__button) {
+  border-radius: 50%;
+  display: block;
+  margin-left: 0px;
+}
+:deep(.el-transfer__button:first-child) {
+  margin-bottom: 10px;
+}
+:deep(.el-dropdown-menu__item) {
+  line-height: 30px;
+  padding: 0 17px;
+}
+</style>
diff --git a/src/components/UploadIcons/index.vue b/src/components/UploadIcons/index.vue
new file mode 100644
index 0000000..8c2d25c
--- /dev/null
+++ b/src/components/UploadIcons/index.vue
@@ -0,0 +1,105 @@
+<template>
+  <el-upload
+    v-model:file-list="fileList"
+    list-type="picture-card"
+    :on-preview="handlePictureCardPreview"
+    :on-remove="handleRemove"
+    :on-exceed="handleExceed"
+    :http-request="uploadImg"
+    :limit="props.limit"
+    :disabled="props.disabled"
+  >
+    <el-icon><Plus /></el-icon>
+  </el-upload>
+
+  <el-dialog v-model="dialogVisible">
+    <img w-full :src="dialogImageUrl" alt="Preview Image" />
+  </el-dialog>
+</template>
+
+<script  setup>
+  import { ref } from 'vue'
+  import { Plus } from '@element-plus/icons-vue'
+  
+  import { ElMessage } from 'element-plus'
+  import { upload } from '@/api/basicApi/index'
+
+  // import type { UploadProps } from 'element-plus'
+  import { getImage, setImage } from '@/utils/validate.js'
+  const props = defineProps({
+      imageList: {
+          type: String,
+          default: '',
+      },
+      limit: {
+          type: Number,
+      },
+      disabled:{
+          type: Boolean,
+          default:false,
+      },
+  })
+  const fileList = ref([])
+  const file = ref([])
+
+  const emit = defineEmits(['uploadData'])
+  //   const imageUrl = ref('')
+
+  const dialogImageUrl = ref('')
+  const dialogVisible = ref(false)
+
+  const handleRemove = (_, uploadFiles) => {
+    file.value = uploadFiles.map((item)=>{return item.url})
+    emit('uploadData', file.value)
+  }
+
+  const handlePictureCardPreview  = (uploadFile) => {
+    dialogImageUrl.value = uploadFile.url
+    dialogVisible.value = true
+  }
+  //超出限制
+  const handleExceed = () => {
+    ElMessage({ message: `只能上传${props.limit}张图片`, type: 'error' })
+  }
+  //上传图片调用接口
+  const uploadImg = async (params) => {
+      //建立表单,请求参数传表单形式
+      let form = new FormData();
+      form.append("file1", params.file);
+      form.append("fileId", params.file.lastModified);
+      form.append("path", 'operation');
+        //发出上传文件请求
+      let res = await upload().uploadFile(form)
+      if(res.code == 200){
+          //返回的图片网络地址传给form
+          ElMessage({ message: '上传图片成功', type: 'success' })
+          file.value.push(res.data.newFileName)
+          emit('uploadData', setImage(file.value))
+      }
+  }
+  //监听props.image
+  watch(props, (newvalue)=>{
+    let newList = ''
+    if(newvalue.imageList!='' && newvalue.imageList != null){
+      newList = getImage(newvalue.imageList).join(',')
+    }
+    if( newList != ''){
+      //判断是否加上PREURL前缀
+      if(file.value.join(',') != newList){
+        let list = []
+        newList.split(',').forEach((item)=>{
+          list.push({
+            url: item
+          })
+        })
+        fileList.value = list
+        console.log('回显',fileList.value)
+          
+        file.value = newList.split(',')
+      }
+    }else{
+      fileList.value = [] //父组件image从有值到空变化,也要清空一遍组件中的值
+      file.value = []
+    }
+  },{immediate:true})
+</script>
\ No newline at end of file
diff --git a/src/components/iFrame/index.vue b/src/components/iFrame/index.vue
deleted file mode 100644
index 091b1a2..0000000
--- a/src/components/iFrame/index.vue
+++ /dev/null
@@ -1,31 +0,0 @@
-<template>
-  <div v-loading="loading" :style="'height:' + height">
-    <iframe 
-      :src="url" 
-      frameborder="no" 
-      style="width: 100%; height: 100%" 
-      scrolling="auto" />
-  </div>
-</template>
-
-<script setup>
-const props = defineProps({
-  src: {
-    type: String,
-    required: true
-  }
-})
-
-const height = ref(document.documentElement.clientHeight - 94.5 + "px;")
-const loading = ref(true)
-const url = computed(() => props.src)
-
-onMounted(() => {
-  setTimeout(() => {
-    loading.value = false;
-  }, 300);
-  window.onresize = function temp() {
-    height.value = document.documentElement.clientHeight - 94.5 + "px;";
-  };
-})
-</script>
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index af0d39c..fe6e175 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -16,12 +16,12 @@
           </div>
           <template #dropdown>
             <el-dropdown-menu>
-              <router-link to="/userCenter">
-                <el-dropdown-item >个人中心</el-dropdown-item>
-              </router-link>
-              <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">
-                <span>布局设置</span>
-              </el-dropdown-item>
+<!--              <router-link to="/userCenter">-->
+<!--                <el-dropdown-item >个人中心</el-dropdown-item>-->
+<!--              </router-link>-->
+<!--              <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">-->
+<!--                <span>布局设置</span>-->
+<!--              </el-dropdown-item>-->
               <el-dropdown-item divided command="logout">
                 <span>退出登录</span>
               </el-dropdown-item>
diff --git a/src/layout/components/Sidebar/index.vue b/src/layout/components/Sidebar/index.vue
index a1a74bf..2bab073 100644
--- a/src/layout/components/Sidebar/index.vue
+++ b/src/layout/components/Sidebar/index.vue
@@ -51,12 +51,6 @@
           :item="route"
           :base-path="route.path"
         />
-      <app-link :to="'/userCenter'">
-        <el-menu-item :index="'/userCenter'" >
-          <svg-icon :icon-class="'PhUserCircleFill'" />
-          <template #title><span class="menu-title" :title="'个人中心'">个人中心</span></template>
-        </el-menu-item>
-      </app-link>
       </el-menu>
     </el-scrollbar>
   </div>
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index 167eb3e..e9404f2 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -61,7 +61,6 @@
 const router = useRouter();
 
 const visitedViews = computed(() => {
-  console.log('visitedViews',useTagsViewStore().visitedViews)
   return useTagsViewStore().visitedViews
 });
 const routes = computed(() => usePermissionStore().routes);
@@ -143,7 +142,6 @@
 }
 //添加tag
 function addTags() {
-  console.log('11111',route)
   const { name } = route
   if (name) {
     useTagsViewStore().addView(route)
diff --git a/src/main.js b/src/main.js
index 4385060..3ee2f7a 100644
--- a/src/main.js
+++ b/src/main.js
@@ -23,7 +23,6 @@
 
 // 注册指令
 import plugins from './plugins' // plugins
-// import { download } from '@/utils/request'
 
 // svg图标
 import 'virtual:svg-icons-register'
@@ -39,6 +38,10 @@
 import Pagination from '@/components/Pagination'
 // 自定义树选择组件
 import TreeSelect from '@/components/TreeSelect'
+// 自定义表格工具组件
+import RightToolbar from '@/components/RightToolbar'
+//多张图片上传
+import UploadIcons from "@/components/UploadIcons"
 
 
 //数据持久化
@@ -61,6 +64,8 @@
 // 全局组件挂载
 app.component('Pagination', Pagination)
 app.component('TreeSelect', TreeSelect)
+app.component('RightToolbar', RightToolbar)
+app.component('UploadIcons', UploadIcons)
 
 
 import { addActiveRoute } from '@/utils/index'
diff --git a/src/permission.js b/src/permission.js
index 89db57a..da5934d 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -7,12 +7,10 @@
  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
  */
 import router from './router'
-import { ElMessage } from 'element-plus'
 import NProgress from 'nprogress'
 import 'nprogress/nprogress.css'
 import { getToken } from '@/utils/auth'
 import useSettingsStore from '@/store/modules/settings'
-import usePermissionStore from '@/store/modules/permission'
 
 NProgress.configure({ showSpinner: false });
 
@@ -23,7 +21,6 @@
   NProgress.start()
   if (getToken()) {
     to.meta.title && useSettingsStore().setTitle(to.meta.title)
-    console.log(20,to.meta.title)
     /* has token*/
     if (to.path === '/login') {
       next({ path: '/overview' })
diff --git a/src/plugins/download.js b/src/plugins/download.js
deleted file mode 100644
index 0821007..0000000
--- a/src/plugins/download.js
+++ /dev/null
@@ -1,87 +0,0 @@
-// /*
-//  * @Author: hqs elkers@163.com
-//  * @Date: 2024-05-06 09:59:48
-//  * @LastEditors: hqs elkers@163.com
-//  * @LastEditTime: 2024-05-06 19:12:56
-//  * @FilePath: \RuoYi-Vue3\src\plugins\download.js
-//  * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-//  */
-// import axios from 'axios'
-// import { ElLoading, ElMessage } from 'element-plus'
-// import { saveAs } from 'file-saver'
-// import { getToken } from '@/utils/auth'
-// import errorCode from '@/utils/errorCode'
-// import { blobValidate } from '@/utils/ruoyi'
-//
-// const baseURL = import.meta.env.VITE_APP_BISIC_API
-// let downloadLoadingInstance;
-//
-// export default {
-//   name(name, isDelete = true) {
-//     var url = baseURL + "/common/download?fileName=" + encodeURIComponent(name) + "&delete=" + isDelete
-//     axios({
-//       method: 'get',
-//       url: url,
-//       responseType: 'blob',
-//       headers: { 'Authorization': 'Bearer ' + getToken() }
-//     }).then((res) => {
-//       const isBlob = blobValidate(res.data);
-//       if (isBlob) {
-//         const blob = new Blob([res.data])
-//         this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
-//       } else {
-//         this.printErrMsg(res.data);
-//       }
-//     })
-//   },
-//   resource(resource) {
-//     var url = baseURL + "/common/download/resource?resource=" + encodeURIComponent(resource);
-//     axios({
-//       method: 'get',
-//       url: url,
-//       responseType: 'blob',
-//       headers: { 'Authorization': 'Bearer ' + getToken() }
-//     }).then((res) => {
-//       const isBlob = blobValidate(res.data);
-//       if (isBlob) {
-//         const blob = new Blob([res.data])
-//         this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
-//       } else {
-//         this.printErrMsg(res.data);
-//       }
-//     })
-//   },
-//   zip(url, name) {
-//     var url = baseURL + url
-//     downloadLoadingInstance = ElLoading.service({ text: "正在下载数据,请稍候", background: "rgba(0, 0, 0, 0.7)", })
-//     axios({
-//       method: 'get',
-//       url: url,
-//       responseType: 'blob',
-//       headers: { 'Authorization': 'Bearer ' + getToken() }
-//     }).then((res) => {
-//       const isBlob = blobValidate(res.data);
-//       if (isBlob) {
-//         const blob = new Blob([res.data], { type: 'application/zip' })
-//         this.saveAs(blob, name)
-//       } else {
-//         this.printErrMsg(res.data);
-//       }
-//       downloadLoadingInstance.close();
-//     }).catch((r) => {
-//       console.error(r)
-//       ElMessage.error('下载文件出现错误,请联系管理员!')
-//       downloadLoadingInstance.close();
-//     })
-//   },
-//   saveAs(text, name, opts) {
-//     saveAs(text, name, opts);
-//   },
-//   async printErrMsg(data) {
-//     const resText = await data.text();
-//     const rspObj = JSON.parse(resText);
-//     const errMsg = errorCode[rspObj.code] || rspObj.msg || errorCode['default']
-//     ElMessage.error(errMsg);
-//   }
-// }
-//
diff --git a/src/screen/flow.vue b/src/screen/flow.vue
index e543a76..942f633 100644
--- a/src/screen/flow.vue
+++ b/src/screen/flow.vue
@@ -23,7 +23,6 @@
     {name:'设备管理',url:''},
     {name:'报警管理',url:''},
     {name:'报表管理',url:''},
-    {name:'系统管理',url:'/user'},
 ])
 const navTo = (item) =>{
     router.push(item.url)
diff --git a/src/store/modules/tagsView.js b/src/store/modules/tagsView.js
index c7984ad..9d07f33 100644
--- a/src/store/modules/tagsView.js
+++ b/src/store/modules/tagsView.js
@@ -21,7 +21,6 @@
       },
       addVisitedView(view) {
         if (this.visitedViews.some(v => v.path === view.path)) return
-        console.log('view',view,view.meta.title)
         this.visitedViews.push(
           Object.assign({}, view, {
             title: view.meta.title || 'no-name'
diff --git a/src/utils/color.js b/src/utils/color.js
deleted file mode 100644
index 4c4e27d..0000000
--- a/src/utils/color.js
+++ /dev/null
@@ -1,8 +0,0 @@
-export function romColor() {
-    let colors = ['#e7eccb','#54d6be','#57b6ae','#21565a','#37364a','#49566e','#3e839f','#2f8f6c','#f37b60','#f7f8ea','#74a995','#0d0944','#ee571e','#e7f3ff','#a4c0d8','#317460','#dbbd65','#20083a','#7e0d41','#ef3e50','#f2795e','#fcfee6','#f3db9f','#e49463','#4f7b88','#eeebdc','#eeebdc','#c7e4f2','#6098c9','#511112']
-    return colors
-}
-export function screenAlarmColor() {
-    let colors = ['#6cfeba','#fe7915','#c6f983','#ffe725','#fd6c96','#b5e8ff','#ffb5b6','#7be5ff','#ffdbf8','#ffb7ff','#c6ffc9','#a0ffa0','#ffe3ca','#fccc8a','#ffaa32','#b7ac92','#fbfe8a','#89e0d5','#55ffd5','#ff7927']
-    return colors
-}
diff --git a/src/utils/index.js b/src/utils/index.js
index 8e78dd2..35b043c 100644
--- a/src/utils/index.js
+++ b/src/utils/index.js
@@ -14,12 +14,10 @@
       let routesData = JSON.parse(JSON.stringify(menuStore.sidebarRouters));
       //定义路径模式
       const views = import.meta.glob('../views/**/*/index.vue');
-      // console.log('routesData',routesData)
       //组装成router需要的格式(加上component和meta)
       routesData = setActiveRoute(routesData, views) //设置路由
       // console.log('组装完成',routesData)
       routesData.forEach((item) => {
-          console.log(222222,router)
           //路由数据解析完成,开始添加到本地路由表中
          router.addRoute('/', item);
           // console.log('item',item)
diff --git a/src/utils/methods.js b/src/utils/methods.js
deleted file mode 100644
index 06fb75f..0000000
--- a/src/utils/methods.js
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-06 14:47:41
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-15 11:15:57
- * @FilePath: \water-qinghe-web\src\utils\methods.js
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
- */
-//将没有层级的对象列表传为树形,树形节点标识为parentId
-export const listToTree = (data) => {
-    const tree = {};
-    
-    // 遍历数据数组
-    data.forEach((item) => {
-      const { id, parentId } = item;
-      
-      if (!tree[id]) {
-        tree[id] = { ...item, children: [] }; // 创建节点
-      } else {
-        tree[id] = { ...tree[id], ...item }; // 更新节点
-      }
-      
-      if (parentId !== id) {
-        if (!tree[parentId]) {
-          tree[parentId] = { children: [] }; // 创建父节点
-        }
-        tree[parentId].children.push(tree[id]); // 将子节点添加到父节点的 children 中
-      }
-    });
-    // 找到根节点
-    const rootIds = Object.keys(tree).filter(idx => tree[idx].parentId === 0 || tree[idx].parentId === 40);
-    const root = rootIds.map(idx => tree[idx]);
-    console.log('tree', tree, rootIds, root)
-    return root;
-  }
-  //设置图片路径
-import { PREURL } from '@/config/index'
-export const getImage = (imgList) =>{
-    if(imgList != null){
-        return imgList.split(',').map((image) => {
-            if(image.indexOf('http') == -1 && image != ''){
-                return PREURL + image
-            }else {
-                return image
-            }
-        })
-    }
-}
-export const setImage = (imgList) =>{
-  return imgList.map((image) => { 
-      if(image.indexOf(PREURL) != -1){
-        return image.replace(PREURL,'') 
-      }else {
-          return image
-      }
-  })
-}
diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js
index d4f44a4..a5d2e3b 100644
--- a/src/utils/ruoyi.js
+++ b/src/utils/ruoyi.js
@@ -5,12 +5,6 @@
  * Copyright (c) 2019 ruoyi
  */
 
-
-//加载动态图片
-export const getImageUrl = (name) =>{
-  return new URL(`../assets/images/${name}`, import.meta.url).href
-}
-
 // 日期格式化
 export function parseTime(time, pattern) {
   if (arguments.length === 0 || !time) {
diff --git a/src/utils/textConst.js b/src/utils/textConst.js
deleted file mode 100644
index 20038bd..0000000
--- a/src/utils/textConst.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * @Author: hqs elkers@163.com
- * @Date: 2024-08-12 14:15:41
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 16:16:36
- * @FilePath: \water-qinghe-web\src\utils\textConst.js
- * @Description:常用文字声明
- */
-
-//姓名(包含少数民族姓名)
-export const  inpTip= '请输入',
-selTip = '请选择';
diff --git a/src/utils/validate.js b/src/utils/validate.js
index cbd8af7..78487c0 100644
--- a/src/utils/validate.js
+++ b/src/utils/validate.js
@@ -91,3 +91,26 @@
   }
   return Array.isArray(arg)
 }
+
+//设置图片路径
+import { PREURL } from '@/config/index'
+export const getImage = (imgList) =>{
+  if(imgList != null){
+    return imgList.split(',').map((image) => {
+      if(image.indexOf('http') == -1 && image != ''){
+        return PREURL + image
+      }else {
+        return image
+      }
+    })
+  }
+}
+export const setImage = (imgList) =>{
+  return imgList.map((image) => {
+    if(image.indexOf(PREURL) != -1){
+      return image.replace(PREURL,'')
+    }else {
+      return image
+    }
+  })
+}
\ No newline at end of file
diff --git a/src/views/alarm/alarmDefinition/index.vue b/src/views/alarm/alarmDefinition/index.vue
deleted file mode 100644
index adfa206..0000000
--- a/src/views/alarm/alarmDefinition/index.vue
+++ /dev/null
@@ -1,214 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="报警参数" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入报警参数"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="报警参数" prop="code">
-                      <el-input v-model="form.code" placeholder="请输入报警参数"/>
-                   </el-form-item>
-                   <el-form-item label="描述" prop="description">
-                      <el-input v-model="form.description" placeholder="请输入分类标识" />
-                   </el-form-item>
-                    <el-form-item label="备注" prop="comment">
-                      <el-input v-model="form.comment" placeholder="请输入备注" />
-                   </el-form-item>
-              <el-form-item></el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  alarmDefinition from "@/api/configuration/alarmDefinition/index.js";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        code: '报警参数',
-        description: '描述',
-        comment: '备注',
-
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await alarmDefinition().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增报警参数";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   open.value = true;
-   title.value = "修改报警参数";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.code + '"的数据项?').then(function() {
-    return alarmDefinition().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    code: [{ required: true, message: "请输入报警参数", trigger: "blur" }],
-    description: [{ required: true, message: "请输入内容", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         alarmDefinition().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         alarmDefinition().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        code: '',
-        comment: '',
-        description:undefined,
-   };
-   proxy.resetForm("formRef");
- }
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/alarm/alarmHistory/index.vue b/src/views/alarm/alarmHistory/index.vue
deleted file mode 100644
index 85d45f6..0000000
--- a/src/views/alarm/alarmHistory/index.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 10:18:39
- * @FilePath: \water-qinghe-web\src\views\alarm\alarmHistory\index.vue
- * @Description: 历史记录
--->
-
- <script setup>
- import  alarmHistoryApi from "@/api/alarmApi/alarmHistory";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.deviceId})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        facilityName: '报警设备',
-        code: '警报代码',
-        description:'描述',
-        createTimeView:'上报时间'
-   })
- /** 获取列表 */
- const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await alarmHistoryApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      deviceId: '报警设备',
-      code: '警报代码',
-      description:'描述'
-})
-
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.description + '"的数据项?').then(function() {
-    return alarmHistoryApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.deviceId"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-  
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-deviceId="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-    
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/alarm/alarmScheme/index.vue b/src/views/alarm/alarmScheme/index.vue
deleted file mode 100644
index ae6f792..0000000
--- a/src/views/alarm/alarmScheme/index.vue
+++ /dev/null
@@ -1,407 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-09-28 10:36:18
- * @FilePath: \water-qinghe-web\src\views\alarm\alarmHistory\index.vue
- * @Description: 历史记录
--->
-
-<script setup>
-import alarmSchemeApi from "@/api/alarmApi/alarmScheme.js";
-import facilityApi from "@/api/facility/index";
-import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js";
-import {ref} from "vue";
-import user from "@/api/system/user.js";
-import waterMeterApi from "@/api/waterMeterApi/index.js";
-import {sysDictData} from "@/api/system/dict.js";
-import setPostParams from "@/utils/searchParams.js";
-import{ useRoute } from 'vue-router'
-
-const {proxy} = getCurrentInstance();
-const route = ref(useRoute())
-/**
- * 搜索相关
- */
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords: searchParams.value.deviceId})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-
-/**
- *  Table表格权限数据列表相关
- */
-const searchParam = {
-    limit: 15,
-    page: 1
-}
-const pageParam = ref({
-    total: 0,
-    limit: 0,
-    page: 1,
-})
-const tableData = ref([]);
-let tableHeader = ref({
-    schemeName: '方案名称',
-    facilityName: '设备名称',
-    columnsCode: '参数编码',
-    columnsShow: '参数名称',
-    schemeTypeView: '方案类型',
-    informTypeView: '通知方式',
-    lowAlarm: '低报警值',
-    lowsAlarm: '低低报警值',
-    tallAlarm: '高报警值',
-    tallsAlarm: '高高报警值',
-    informUser: '通知人员',
-    beginTime: '启用日期',
-    periodTime: '有效日期',
-    createTimeView: '创建日期'
-})
-
-async function getList(val) {
-    loading.value = true;
-
- let postParam = setPostParams(val)
-    await alarmSchemeApi().search(postParam).then((res) => {
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
-}
-
-//查询设备列表
-const facilityList = ref();
-const informUserList = ref();
-const parameterList = ref();
-const informTypeList = ref();
-const schemeTypeList=ref();
-
-
-const getFacilityList = async () => {
-    await facilityApi().search({limit: 100, page: 1}).then((res) => {
-        console.log("设备列表" + res.data.list);
-        facilityList.value = res.data.list
-    })
-}
-const getInformUserList = async () => {
-    await user().search({limit: 100, page: 1}).then((res) => {
-        console.log("通知人员列表" + res.data.list);
-        informUserList.value = res.data.list
-    })
-}
-const getInformTypeList = async () => {
-    let res= await sysDictData().searchType('inform_type')
-        console.log("字典列表1" + res.data);
-    if (res.code == 200) {
-        informTypeList.value = res.data
-    }
-    let res1= await sysDictData().searchType('scheme_type')
-    console.log("字典列表2" + res.data);
-    if (res1.code == 200) {
-        schemeTypeList.value = res1.data
-    }
-}
-getInformTypeList()
-const handleChange = async (val) => {
-    form.columnsCode = "";
-    //通过用户id获取该用户下的水表信息
-    let res = await waterFacilityParameter().getParam(val)
-    console.log("设备参数", res.data)
-    if (res.code == 200) {
-        parameterList.value = res.data
-    }
-}
-getInformUserList()
-getFacilityList()
-/**
- *  表单相关
- */
-const formLabel = ({
-    deviceId: '报警设备',
-    code: '警报代码',
-    description: '描述'
-})
-
-const searchParams = ref({
-    keywords: '',
-});
-/**
- *  新增/修改弹窗Form表单相关
- */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-    form: {},
-    queryParams: {
-        name: undefined,
-    },
-    rules: {
-        schemeName: [{required: true, message: "请输入方案名称", trigger: "blur"}],
-        facilityId: [{required: true, message: "请输入设备信息", trigger: "blur"}],
-        columnsCode: [{required: true, message: "请输入参数信息", trigger: "blur"}],
-        schemeType: [{required: true, message: "请输入方案类型", trigger: "blur"}],
-        informType: [{required: true, message: "请输入通知方式", trigger: "blur"}],
-        beginTime: [{required: true, message: "请输入启用时间", trigger: "blur"}],
-        periodTime: [{required: true, message: "请输入有效时间", trigger: "blur"}],
-        informUser: [{required: true, message: "请输入通人员", trigger: "blur"}],
-
-
-    },
-});
-const {queryParams, form, rules} = toRefs(data);
-
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["formRef"].validate(valid => {
-        if (valid) {
-            if (form.value.id != undefined) {
-                alarmSchemeApi().modify(form.value).then(res => {
-                    proxy.$modal.msgSuccess("修改成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("修改失败");
-                });
-            } else {
-                alarmSchemeApi().create(form.value).then(res => {
-                    proxy.$modal.msgSuccess("新增成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("新增失败");
-                });
-                ;
-            }
-        }
-    });
-}
-
-/** 新增按钮操作 */
-async function handleAdd() {
-    reset();
-    open.value = true;
-    title.value = "新增";
-}
-
-/** 修改按钮操作 */
-async function handleUpdate(row) {
-    reset();
-    form.value = Object.assign({}, row)
-    open.value = true;
-    title.value = "修改报警参数";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('是否确认删除名称为"' + row.description + '"的数据项?').then(function () {
-        return alarmSchemeApi().remove(row.id);
-    }).then(() => {
-        getList();
-        proxy.$modal.msgSuccess("删除成功");
-    }).catch(() => {
-    });
-}
-
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    reset();
-}
-
-/** 表单重置 */
-function reset() {
-    form.value = {
-        code: '',
-        comment: '',
-        description: undefined,
-    };
-    proxy.resetForm("formRef");
-}
-
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="searchParams" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="">
-                <el-input
-                        v-model="searchParams.deviceId"
-                        placeholder="请输入搜索信息"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                        type="primary"
-                        plain
-                        icon="Plus"
-                        @click="handleAdd"
-                >新增
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() == 'headImg'">
-                        <img :src="scope.row.headImg" class="table-headImg"/>
-                    </div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-deviceId="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
-                               @click="handleUpdate(scope.row)">修改
-                    </el-button>
-                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
-                               @click="handleDelete(scope.row)">删除
-                    </el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getList"
-        />
-        <!-- 添加或修改对话框 -->
-        <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                        <el-form-item label="选择设备" prop="facilityId">
-                            <el-select v-model="form.facilityId" placeholder="请输入设备信息" @change="handleChange">
-                                <el-option
-                                        v-for="(item,index) in facilityList"
-                                        :label="item.facilityName"
-                                        :value="item.id"
-                                        :key="index"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="选择设备参数" prop="columnsCode">
-                            <el-select v-model="form.columnsCode" placeholder="请输入设备参数" >
-                                <el-option
-                                        v-for="(item,index) in parameterList"
-                                        :label="item.columnsShow"
-                                        :value="item.columnsCode"
-                                        :key="index"
-                                ></el-option>
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="报警方案名称" prop="schemeName">
-                            <el-input v-model="form.schemeName" placeholder="请输入报警方案名称"/>
-                        </el-form-item>
-                        <el-form-item label="报警类型" prop="schemeType">
-                            <el-select v-model="form.schemeType" placeholder="请选择报警类型" >
-                                <el-option
-                                    v-for="item in schemeTypeList"
-                                    :key="item.id"
-                                    :label="item.dictLabel"
-                                    :title="item.dictValue"
-                                    :value="item.dictValue"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="通知方式" prop="informType">
-                            <el-select v-model="form.informType" placeholder="请选择通知方式" >
-                                <el-option
-                                    v-for="item in informTypeList"
-                                    :key="item.id"
-                                    :label="item.dictLabel"
-                                    :title="item.dictValue"
-                                    :value="item.dictValue"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="低报警值" prop="lowAlarm">
-                            <el-input v-model="form.lowAlarm" placeholder="请输入低报警值"/>
-                        </el-form-item>
-                        <el-form-item label="低低报警值" prop="lowsAlarm">
-                            <el-input v-model="form.lowsAlarm" placeholder="请输低低报警值"/>
-                        </el-form-item>
-                        <el-form-item label="高报警值" prop="tallAlarm">
-                            <el-input v-model="form.tallAlarm" placeholder="请输入高报警值"/>
-                        </el-form-item>
-                        <el-form-item label="高高报警值" prop="tallsAlarm">
-                            <el-input v-model="form.tallsAlarm" placeholder="请输入高高报警值"/>
-                        </el-form-item>
-                        <el-form-item label="通知人员" prop="informUser">
-                            <el-select v-model="form.informUser" placeholder="请选择通知人员">
-                                <el-option
-                                        v-for="item in informUserList"
-                                        :key="item.id"
-                                        :label="item.nickName"
-                                        :title="item.nickName"
-                                        :value="item.nickName"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="启用日期" prop="beginTime">
-                            <el-date-picker
-                                    v-model="form.beginTime"
-                                    type="date"
-                                    placeholder="请选择启用时间"
-                                    format="YYYY-MM-DD"
-                                    value-format="YYYY-MM-DD"
-                                    :disabled="isDetail ? true : false"
-                            />
-                        </el-form-item>
-                        <el-form-item label="有效日期" prop="periodTime">
-                            <el-date-picker
-                                    v-model="form.periodTime"
-                                    type="date"
-                                    placeholder="请选择启用时间"
-                                    format="YYYY-MM-DD"
-                                    value-format="YYYY-MM-DD"
-                                    :disabled="isDetail ? true : false"
-                            />
-                        </el-form-item>
-                        <el-form-item label="备注" prop="remark">
-                            <el-input v-model="form.remark" placeholder="请输入备注"/>
-                        </el-form-item>
-                <el-form-item></el-form-item>
-
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/configuration/companySetting/index.vue b/src/views/configuration/companySetting/index.vue
deleted file mode 100644
index 9f8ef1d..0000000
--- a/src/views/configuration/companySetting/index.vue
+++ /dev/null
@@ -1,280 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入内容"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="水费账单类型"  prop="waterBillType">
-                        <el-select v-model="form.waterBillType" placeholder="请选择水费账单类型">
-                            <el-option 
-                            v-for="(item,index) in waterBillTypeList"
-                            :label="item.dictLabel"
-                            :value="item.dictValue"
-                            :key="index"
-                            ></el-option>
-                        </el-select>
-                   </el-form-item>
-                   <el-form-item label="账单周期" prop="waterMonthBillDay">
-                     <div> 
-                        <el-input-number v-model="form.waterMonthBillDay" :min="1" max="31" />
-                        <span>(n日 ~ 次月n-1日)</span>
-                     </div>
-                   </el-form-item>
-                   <el-form-item label="出账后支付时间限制" prop="waterPayDays">
-                      <el-input v-model="form.waterPayDays" placeholder="请输入出账后支付时间限制(单位:天)" />
-                   </el-form-item>
-                    <el-form-item label="账单出账日" prop="waterMonthBillCreateDay">
-                      <el-input-number v-model="form.waterMonthBillCreateDay" :min="1" max="31" placeholder="请输入水费账单生成日期" />
-                   </el-form-item>
-                   <el-form-item label="水表欠费是否关阀 " prop="waterMeterDelinquentClose">
-                        <el-select v-model="form.waterMeterDelinquentClose" placeholder="请选择">
-                            <el-option 
-                            v-for="(item,index) in waterMeterDelinquentCloseList"
-                            :label="item.dictLabel"
-                            :value="item.dictValue"
-                            :key="index"
-                            ></el-option>
-                        </el-select>
-                   </el-form-item>
-              <el-form-item></el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  companySetting from "@/api/configuration/companySetting";
- import  { sysDictData } from "@/api/system/dict";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        waterBillTypeName: '水费账单类型',
-        waterMonthBillDay: '水费账单起始日期(日)',
-        waterMonthBillCreateDay: '水费账单生成日期(天)',
-        waterPayDays: '出账后支付时间限制(天)',
-        waterMeterDelinquentCloseName: '水表欠费是否关阀',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await companySetting().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-          tableData.value.forEach((item)=>{
-              if(item.waterBillType === 2){
-                  item.waterBillTypeName = '每日'
-              }else{
-                  item.waterBillTypeName = '每月'
-              }
-              if(item.waterMeterDelinquentClose === 0){
-                  item.waterMeterDelinquentCloseName = '否'
-              }else{
-                  item.waterMeterDelinquentCloseName = '是'
-              }
-          })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增用户分类";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   form.value.waterBillType = form.value.waterBillType.toString()
-   form.value.waterMeterDelinquentClose = form.value.waterMeterDelinquentClose.toString()
-   open.value = true;
-   title.value = "修改用户分类";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.waterBillType + '"的数据项?').then(function() {
-    return companySetting().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    waterBillType: [{ required: true, message: "请输入水费账单类型", trigger: "blur" }],
-    waterMonthBillDay: [
-      { required: true, message: "请输入水费账单起始日期", trigger: "blur" }],
-      // { pattern: /^(3[01]|[12][0-9]|[1-9])$/,message: '日期必须在1到31之间',trigger: 'blur'} ],
-    waterMonthBillCreateDay: [
-      { required: true, message: "请输入出账后支付时间限制", trigger: "blur" }],
-      // { pattern: /^(3[01]|[12][0-9]|[1-9])$/,message: '日期必须在1到31之间',trigger: 'blur'} ],
-    waterPayDays: [{ required: true, message: "出账后支付时间限制", trigger: "blur" }],
-    waterMeterDelinquentClose: [{ required: true, message: "请选择", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//获取账单类型字典
-const waterBillTypeList = ref()
-const getBillType = async() =>{
-   await sysDictData().searchType('billDate_type').then((res) =>{
-   waterBillTypeList.value = res.data
-    })
-}
-//获取欠费是否关阀字典
-const waterMeterDelinquentCloseList = ref()
-const getvalveType = async() =>{
-   await sysDictData().searchType('isCloseValve_type').then((res) =>{
-      waterMeterDelinquentCloseList.value = res.data
-    })
-}
-//动态显示
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         companySetting().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         companySetting().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        waterBillType: '',
-        waterMonthBillCreateDay: '',
-        waterMonthBillDay:undefined,
-        waterPayDays:undefined,
-        waterMeterDelinquentClose:undefined,
-   };
-   proxy.resetForm("formRef");
- }
- getvalveType()
- getBillType()
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/configuration/defaultAmountSetting/index.vue b/src/views/configuration/defaultAmountSetting/index.vue
deleted file mode 100644
index f3930d8..0000000
--- a/src/views/configuration/defaultAmountSetting/index.vue
+++ /dev/null
@@ -1,235 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="费用名称" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入费用名称"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="费用名称" prop="name">
-                      <el-input v-model="form.name" placeholder="请输入费用名称"/>
-                   </el-form-item>
-                   <el-form-item label="用户分类"  prop="classifyId">
-                        <el-select v-model="form.classifyId" placeholder="请选择用户分类">
-                            <el-option 
-                            v-for="(item,index) in userTypeList"
-                            :label="item.name"
-                            :value="item.id"
-                            :key="index"
-                            ></el-option>
-                        </el-select>
-                   </el-form-item>
-                    <el-form-item label="配置比例" prop="ratio">
-                      <el-input v-model="form.ratio" placeholder="请输入配置比例" />
-                   </el-form-item>
-                    <el-form-item label="备注" prop="remark">
-                      <el-input v-model="form.remark" placeholder="请输入备注" />
-                   </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  defaultAmountSetting from "@/api/configuration/defaultAmountSetting";
- import  userClassify from "@/api/configuration/userClassify";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        name: '费用名称',
-        className: '用户分类',
-        ratio:'配置比例',
-        remark: '备注',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await defaultAmountSetting().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增违约金配置";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   open.value = true;
-   title.value = "修改违约金配置";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() {
-    return defaultAmountSetting().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    name: [{ required: true, message: "请输入费用名称", trigger: "blur" }],
-    classifyId: [{ required: true, message: "请选择用户分类", trigger: "blur"}],
-    ratio: [{ required: true, message: "请输入配置比例", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//获取用户分类列表
-const userTypeList = ref()
-const getUserType = async() =>{
-   await userClassify().search({limit:10000,page:1}).then((res) =>{
-   userTypeList.value = res.data.list
-    })
-}
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         defaultAmountSetting().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         defaultAmountSetting().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        classifyId: '',
-        ratio:undefined,
-        remark:'',
-   };
-   proxy.resetForm("formRef");
- }
- getUserType()
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/configuration/invoiceTitle/index.vue b/src/views/configuration/invoiceTitle/index.vue
deleted file mode 100644
index e6dd7f0..0000000
--- a/src/views/configuration/invoiceTitle/index.vue
+++ /dev/null
@@ -1,297 +0,0 @@
-
- <script setup >
- import  invoiceTitle from "@/api/configuration/invoiceTitle";
- import  { sysDictData }  from "@/api/system/dict";
- import  user  from "@/api/system/user";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-      typeName: "抬头类型",
-      name: "抬头名称",
-      taxNum: "税号",
-      email: "邮箱",
-      comment: "备注",
-      createTimeView: "创建时间",
-      updateTimeView: "更新时间"
-   })
-
- /** 获取列表 */
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
- let postParam = setPostParams(val)
-      await invoiceTitle ().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        tableData.value.forEach((item) =>{
-            if(item.type == 1){
-               item.typeName = '企业单位'
-            }else{
-               item.typeName = '个人/非企业'
-            }
-        })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) { 
-      form.value[key] = row[key]; 
-   } 
-   });
-   form.value.type = form.value.type.toString()
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() {
-    return invoiceTitle ().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-   userId: [{ required: true, message: "请选择用户", trigger: "blur" }],
-   type: [{ required: true, message: "请选择发票类型", trigger: "blur" }],
-   name: [{ required: true, message: "请输入发票抬头名称", trigger: "blur" }],
-   email: [{ required: true, message: "请输入邮箱", trigger: "blur" }]
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-
- //获取发票类型
- const invoiceTypeList = ref()
- const getType = async() =>{
-   await sysDictData().searchType('invoice_type').then((res) =>{
-      invoiceTypeList.value = res.data
-   })
- }
- 
- //获取账号列表
- const accountList = ref()
- const getAccount = async() =>{
-   await user().search({limit:10000,page:1}).then((res) =>{
-      accountList.value = res.data.list
-   })
- }
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id) {
-         if(form.value.type == 2){
-            form.value.taxNum = ''
-         }
-         invoiceTitle ().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       }else {
-         invoiceTitle().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-      userId: "",
-      type: "",
-      name: "",
-      taxNum: "",
-      email: "",
-      comment: "",
-      sort: 1,
-   };
-   proxy.resetForm("formRef");
- }
- getType();
- getAccount();
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-
-      <el-row :gutter="10" class="mb8">
-         <el-col :span="1.5">
-            <el-button
-               type="primary"
-               plain
-               icon="Plus"
-               @click="handleAdd"
-            >新增</el-button>
-         </el-col>
-      </el-row>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-         <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-            <template #default="scope">
-               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-               <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-            </template>
-         </el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-      <!-- 添加或修改对话框 -->
-      <el-dialog :title="title" v-model="open" center>
-           <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-              <el-form-item label="用户"  prop="userId">
-                 <el-select v-model="form.userId"  placeholder="请选择" >
-                       <el-option
-                       v-for="item in accountList"
-                       :key="item.id"
-                       :label="item.nickName"
-                       :title="item.nickName"
-                       :value="item.id"
-                       />
-                 </el-select>
-              </el-form-item>
-              <el-form-item label="抬头类型"  prop="type">
-                 <el-select v-model="form.type"  placeholder="请选择" >
-                       <el-option
-                       v-for="item in invoiceTypeList"
-                       :key="item.id"
-                       :label="item.dictLabel"
-                       :title="item.dictLabel"
-                       :value="item.dictValue"
-                       />
-                 </el-select>
-              </el-form-item>
-              <el-form-item label="抬头名称"  prop="name">
-                 <el-input v-model="form.name" ></el-input>
-              </el-form-item>
-              <el-form-item label="税号"  prop="taxNum" v-if="form.type == 1">
-                 <el-input v-model="form.taxNum" ></el-input>
-              </el-form-item>
-              <el-form-item label="邮箱"  prop="email">
-                 <el-input v-model="form.email" ></el-input>
-              </el-form-item>
-              <el-form-item label="备注"  prop="comment">
-                 <el-input v-model="form.comment" ></el-input>
-              </el-form-item>
-              <el-form-item label="显示排序" prop="sort">
-                 <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-              </el-form-item>
-           </el-form>
-         <template #footer>
-            <div class="dialog-footer">
-               <el-button type="primary" @click="submitForm">确 定</el-button>
-               <el-button @click="cancel">取 消</el-button>
-            </div>
-         </template>
-      </el-dialog>
-   </div>
-</template>
- <style lang = scss scoped>
-     .el-form{
-         width:100%;
-         display: flex;
-         flex-wrap: wrap;
-         justify-content: space-evenly;
-         .el-form-item{
-             width: 45%;
-         }
-     }
- </style>
- 
\ No newline at end of file
diff --git a/src/views/configuration/salePlace/index.vue b/src/views/configuration/salePlace/index.vue
deleted file mode 100644
index 47763c5..0000000
--- a/src/views/configuration/salePlace/index.vue
+++ /dev/null
@@ -1,406 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="营业网点" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入营业网点"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-          <template #default="scope">
-                <div v-if="key.toString() === 'image'" style="height: 50px;margin: 0 auto">
-                    <img :src="preUrl + scope.row.image" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-         <el-form class="form-box" :model="form" :rules="rules" ref="formRef">
-            <el-form-item label="网点名称"  prop="name">
-               <el-input v-model="form.name" autocomplete="on" placeholder="请输入网点名称"></el-input>
-            </el-form-item>
-            <el-form-item label="工作日"  prop="workDay">
-               <el-input v-model="form.workDay" autocomplete="on" placeholder="请输入工作日"></el-input>
-            </el-form-item>
-            <el-form-item label="休息日"  prop="dayOff">
-               <el-input v-model="form.dayOff" autocomplete="on" placeholder="请输入休息日"></el-input>
-            </el-form-item>
-            <el-form-item label="业务范围"  prop="businessRange">
-               <el-input v-model="form.businessRange" autocomplete="on" placeholder="请输入业务范围"></el-input>
-            </el-form-item>
-            <el-form-item label="行政区域"  prop="regionName">
-               <el-tree-select 
-                     v-model="regionName"
-                     :data="regionTreeList" 
-                     :props="{label:'name', value:'id'}" 
-                     placeholder="请选择区域" 
-                     filterable 
-                     highlight-current 
-                     :check-strictly="true" 
-                     @node-expand="expandTree"
-                     @current-change="changeTreeValue"
-               />
-            </el-form-item>
-            <el-form-item label="地址"  prop="address">
-               <el-input v-model="form.address" autocomplete="on" placeholder="请输入地址"></el-input>
-            </el-form-item>
-            <el-form-item label="联系方式"  prop="phone">
-               <el-input v-model="form.phone" autocomplete="on" placeholder="请输入电话"></el-input>
-            </el-form-item>
-            <el-form-item label="管理员"  prop="phone">
-               <span v-for="(item,index) in form.listAccount" :key="index" >{{ item.nickName }}&nbsp;&nbsp;</span>
-               <el-button style="height:32px"  @click="addAdmin">选择管理员</el-button>
-            </el-form-item>
-            <el-form-item label="备注"  prop="comment">
-               <el-input v-model="form.comment" autocomplete="on" placeholder="请输入备注"></el-input>
-            </el-form-item>
-            <el-form-item label="显示排序" prop="sort">
-               <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-            </el-form-item>
-             <el-form-item label="上传图片"  prop="image">
-                 <upload-icons @uploadData="uploadData" :imageList="form.image" :limit="1"></upload-icons>
-             </el-form-item>
-             <el-form-item></el-form-item>
-         </el-form>
-         <template #footer>
-            <div class="dialog-footer">
-               <el-button type="primary" @click="submitForm">确 定</el-button>
-               <el-button @click="cancel">取 消</el-button>
-            </div>
-         </template>
-      </el-dialog>
-        <!-- 管理员绑定营业网点弹窗 -->
-        <el-dialog
-            v-model="bandVisible"
-            title="用户绑定"
-            align-center
-            center
-            width="400"
-            >
-            <div class="bandCheck">
-                <el-checkbox-group v-model="adminCheckedList">
-                     <el-checkbox v-for="(item,index) in adminSelectList" :key="index" :label="item.nickName" :value="item" size ="large" />
-                </el-checkbox-group>
-            </div>
-            <div class="flex3">
-                <el-button @click="bandVisible = false">取消</el-button>
-                <el-button type="primary" @click="bandListConfirm">确认</el-button></div>
-        </el-dialog>
-    </div>
- </template>
- 
- <script setup>
- import  salePlaceApi from "@/api/configuration/bussinessApi";
- import  { region } from "@/api/basicApi";
- import  user from "@/api/system/user";
- import  { PREURL } from "@/config/index";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
- /**
-  *  Table表格权限数据列表相关
-  */
- let preUrl = ref(PREURL)
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-         name: '网点名称',
-         businessRange: '业务范围',
-         workDay: '工作日',
-         dayOff: '休息日',
-         regionName: '所属区域',
-         address: '地址',
-         image: '网点图片',
-         phone: '联系方式',
-         status: '状态'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-    let postParam = setPostParams(val)
-      await salePlaceApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-    reset();
-    open.value = true;
-    title.value = "新增网点";
-    regionName.value = ''
-    adminCheckedList.value = []
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) { 
-      form.value[key] = row[key]; 
-   } 
-   });
-   form.value.id = row.id
-   form.value.listAccount = JSON.parse(row.associatedAccount)
-   adminCheckedList.value = form.value.listAccount
-   regionName.value = row.regionName
-   open.value = true;
-   title.value = "修改网点";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() {
-    return salePlaceApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-   name: [
-         { required: true, message: '请输入网点名称', trigger: 'blur' },
-         { max: 50, message: '长度不超过50个字', trigger: 'blur' }],
-   businessRange: [
-         { required: true, message: '请输入业务范围', trigger: 'blur' },
-         { max: 200, message: '长度不超过200个字', trigger: 'blur' }],
-   workDay: [
-         { required: true, message: '请输入工作日', trigger: 'blur' },
-         { max: 50, message: '长度不超过50个字', trigger: 'blur' }],
-   dayOff: [
-         { required: true, message: '请输入休息日', trigger: 'blur' },
-         { max: 50, message: '长度不超过50个字', trigger: 'blur' }],
-   listRegion: [
-         { required: true, message: '请选择所属区域', trigger: 'change' }],
-   address: [
-         { required: true, message: '请输入地址', trigger: 'blur' },
-         { max: 200, message: '长度不超过200个字', trigger: 'blur' }],
-   phone: [
-         { required: true, message: '请输入联系方式', trigger: 'blur' },
-         { pattern: '^1(3|4|5|7|8)\\d{9}$|^0\\d{2,3}-\\d{7,8}$', message: '请输入合法手机号或座机号', trigger: 'blur' }],
-   comment: [
-         { max: 500, message: '长度不超过500个字', trigger: 'blur' }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.image = data.toString()
-}
-
-//省市区域列表
-const regionTreeList =  ref([]) 
-const regionName =  ref() 
-//获取省市区域列表
-const getRegionList = async() =>{
-   let res = await region().search('')
-   if(res.code == 200) {
-         res.data.forEach((item)=>{
-                if(item.children == null){
-                    item.children = [{}]
-                }
-            }) 
-   regionTreeList.value = res.data
-   }
-}
-//展开所属区域树形, 请求展开区域的下一层子级数据
-const expandTree = async (data) => {
-
-      //请求展开区域的下一层子级列表数据
-      let res = await region().search(data.code)
-      if(res.code == 200) {
-         res.data.forEach((item)=>{
-               if((item.children == null) && item.level!=4){
-                  item.children = [{}]
-               }
-         })
-         data.children =  res.data
-      }
-   }
-      //选中区域
-   const changeTreeValue = (_, nodeData) => {
-      let idList = getTreeCode(nodeData, 'id').join(',')   
-      form.value.region = idList
-      nextTick(()=>{
-         regionName.value = getTreeCode(nodeData, 'name').join(',')
-      })
-   }
-   //从当前选择区域树形查找父级code,组装为[123,456,789](xx省/xx市/xx区)
-   const getTreeCode = (tree, type) => {
-        let codeList = []
-        if(tree.data.level!=1){
-            codeList = codeList.concat(getTreeCode(tree.parent, type))
-            codeList.push(tree.data[type])
-        }else{
-            return [tree.data[type]]
-        }
-        return codeList
-    }
-    
-/**
- * 绑定相关
- */
- const bandVisible = ref(false)
- const adminSelectList = ref([])
- const adminCheckedList = ref([])
-//获取管理员列表
-const getAdminList = async () => {
-   await user().search({limit:10000,page:1}).then((res) =>{
-      let list = []
-      res.data.list.forEach(((item) =>{
-         list.push({
-                     id:item.id,
-                     userName:item.userName,
-                     nickName:item.nickName
-                  }) 
-               }))
-      adminSelectList.value = list
-   })
-}
-//添加管理员
-const addAdmin = ()=>{
-   bandVisible.value = true
-}
-//绑定确认,1绑定,2添加,3编辑
- const bandListConfirm = async() =>{
-      form.value.listAccount = adminCheckedList.value
-      bandVisible.value = false
-    }
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         salePlaceApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         salePlaceApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-      name: '',
-      businessRange: '',
-      workDay: '',
-      dayOff: '',
-      address: '',
-      image: '',
-      phone: '',
-      listAccount: [],
-      comment:'',
-      sort:undefined,
-   };
-   proxy.resetForm("formRef");
- }
-getAdminList()
-getRegionList()
-getList();
- </script>
-
-<style lang = scss scoped>
-.table-headImg{
-    max-width: 100px;
-    height: 50px;
-}
-</style>
- 
\ No newline at end of file
diff --git a/src/views/configuration/userClassify/index.vue b/src/views/configuration/userClassify/index.vue
deleted file mode 100644
index ef361dc..0000000
--- a/src/views/configuration/userClassify/index.vue
+++ /dev/null
@@ -1,217 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="分类名称" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入分类名称"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="分类名称" prop="name">
-                      <el-input v-model="form.name" placeholder="请输入分类名称"/>
-                   </el-form-item>
-                   <el-form-item label="分类标识" prop="mark">
-                      <el-input v-model="form.mark" placeholder="请输入分类标识" />
-                   </el-form-item>
-                    <el-form-item label="备注" prop="comment">
-                      <el-input v-model="form.comment" placeholder="请输入备注" />
-                   </el-form-item>
-                   <el-form-item label="显示排序" prop="sort">
-                      <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-                   </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  userClassify from "@/api/configuration/userClassify";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        name: '分类名称',
-        mark: '分类标识',
-        comment: '备注',
-        sort:'排序值',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await userClassify().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增用户分类";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   open.value = true;
-   title.value = "修改用户分类";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() {
-    return userClassify().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    name: [{ required: true, message: "请输入分类名称", trigger: "blur" }],
-    mark: [{ required: true, message: "请输入分类标识", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         userClassify().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-        userClassify().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        comment: '',
-        mark:undefined,
-        sort:1,
-   };
-   proxy.resetForm("formRef");
- }
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/configuration/waterOtherFee/index.vue b/src/views/configuration/waterOtherFee/index.vue
deleted file mode 100644
index 8ffcf08..0000000
--- a/src/views/configuration/waterOtherFee/index.vue
+++ /dev/null
@@ -1,244 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="费用项" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入费用项"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="费用项" prop="feeItem">
-                      <el-input v-model="form.feeItem" placeholder="请输入费用项"/>
-                   </el-form-item>
-                   <el-form-item label="所属用户分类"  prop="userClassify">
-                        <el-select v-model="form.userClassify" placeholder="请输入所属用户分类">
-                            <el-option 
-                            v-for="(item,index) in userTypeList"
-                            :label="item.name"
-                            :value="item.id"
-                            :key="index"
-                            ></el-option>
-                        </el-select>
-                   </el-form-item>
-                   <el-form-item label="费用类型" prop="feeType">
-                      <el-input v-model="form.feeType" placeholder="请输入费用类型"/>
-                   </el-form-item>
-                   <el-form-item label="费用金额" prop="feeValue">
-                      <el-input v-model="form.feeValue" placeholder="请输入费用金额" />
-                   </el-form-item>
-                    <el-form-item label="费用说明" prop="description">
-                      <el-input v-model="form.description" placeholder="请输入说明" />
-                   </el-form-item>
-                   <el-form-item label="显示排序" prop="sort">
-                      <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-                   </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  waterOtherFee from "@/api/configuration/waterOtherFee";
- import  userClassify from "@/api/configuration/userClassify";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        feeItem: '费用项',
-        className: '所属用户分类',
-        feeTypeView: '费用类型',
-        description: '费用说明',
-        sort:'排序值',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await waterOtherFee().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增费用项";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   open.value = true;
-   title.value = "修改费用项";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.feeItem + '"的数据项?').then(function() {
-    return waterOtherFee().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    feeItem: [{ required: true, message: "请输入费用项", trigger: "blur" }],
-    userClassify: [{ required: true, message: "请选择用户分类", trigger: "blur" }],
-    feeType: [{ required: true, message: "请选择费用类型", trigger: "blur" }],
-    feeValue: [{ required: true, message: "请输入费用值", trigger: "blur" }],
-    description: [{ required: true, message: "请输入费用说明", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-//获取用户分类列表
-const userTypeList = ref()
-const getUserType = async() =>{
-   await userClassify().search({limit:10000,page:1}).then((res) =>{
-   userTypeList.value = res.data.list
-    })
-}
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         waterOtherFee().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-        waterOtherFee().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        feeItem: '',
-        userClassify: '',
-        feeType:undefined,
-        feeValue:undefined,
-        description:undefined,
-   };
-   proxy.resetForm("formRef");
- }
- getUserType()
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/configuration/waterPrice/index.vue b/src/views/configuration/waterPrice/index.vue
deleted file mode 100644
index 606a45a..0000000
--- a/src/views/configuration/waterPrice/index.vue
+++ /dev/null
@@ -1,359 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form  :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item label="水价标准名称" prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入水价标准名称"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="price-form"  ref="formRef" :model="form" :rules="rules" label-width='auto'>
-             <el-row>
-                <el-col :span="12">
-                   <el-form-item label="水价标准名称" prop="name">
-                      <el-input v-model="form.name" placeholder="请输入水价标准名称"/>
-                   </el-form-item>
-                </el-col>
-             </el-row>
-             <!-- 循环阶梯水价 -->
-             <div class="fee-box">
-               <div v-for="(item,index) in form.feeContent" class="fee-item">
-                  <div class="item-title" v-if="form.feeContent.length == 1">标准水价</div>
-                  <div class="item-title" v-else>第{{ index + 1 }}阶梯 :</div>
-                  <el-form-item :label="index + 1 == form.feeContent.length && form.feeContent.length > 1 ? '最高用水量(m³)' : '用水量(m³)' " prop="maxUse">
-                     <el-input 
-                     :disabled="form.feeContent.length > 1 && index + 1 == form.feeContent.length && form.feeContent[index-1].maxUse == '' " 
-                     v-model="item.maxUse" 
-                     @blur="maxUseChange(index)"
-                     placeholder="用水量"/>
-                     <span v-if="maxUseValid && !form.feeContent[index].maxUse && index + 1 != form.feeContent.length " class="message">请输入用水量</span>
-                  </el-form-item>
-
-                  <el-form-item label="水价(元)" prop = 'price'>
-                     <el-input v-model="item.price" @blur="priceChange(index)" placeholder="请输入水价" />
-                     <span v-if="priceValid && !form.feeContent[index].price"  class="message">请输入水价</span>
-                  </el-form-item>
-                  <el-form-item label="备注" prop="comment">
-                     <el-input v-model="item.comment" placeholder="请输入备注" />
-                  </el-form-item>
-                  <div class="item-delete">
-                     <el-button v-if="form.feeContent.length > 1" type="danger" size="small" @click="deleteFee(index)">删 除</el-button>
-                  </div>
-               </div>
-             </div>
-            <div class="fee-add">
-                  <el-button type="primary" @click="addFee"> + 添加阶梯水费</el-button>
-            </div>
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="备注" prop="comment">
-                      <el-input v-model="form.comment" placeholder="请输入备注" />
-                   </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                   <el-form-item label="显示排序" prop="sort">
-                      <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-                   </el-form-item>
-                </el-col>
-            </el-row>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import  TieredCharging from "@/api/configuration/waterPrice";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        name: '水价标准名称',
-        comment: '备注',
-        sort:'排序值',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await TieredCharging().search(postParam).then((res) =>{
-         let list = res.data.list.map(obj => {  
-         const { content, ...rest } = obj;  
-         return {  
-            ...rest,  
-            feeContent: content,
-         };
-         }); 
-         console.log('reslist',list,res.data.list); 
-        tableData.value = list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增用户水价标准";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-    form.value = Object.assign({},row)
-    await TieredCharging().get(row.id).then((res) =>{
-       form.value.feeContent = res.data.contentView;
-   })
-   open.value = true;
-   title.value = "修改用户水价标准";
-     console.log('123.',form.value)
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.name + '"的数据项?').then(function() {
-    return TieredCharging().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{
-      name: '',
-      comment: '',
-      feeContent:[
-      {
-         maxUse:'',
-         price:'',
-         comment:''
-      }
-      ],
-      sort:1,
-   },
-queryParams: {
-    name: undefined,
-},
-rules: {
-    name: [{ required: true, message: "请输入水价标准名称", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-//添加水表阶梯
-const addFee = () =>{
-   form.value.feeContent.push( 
-      {
-         maxUse:'',
-         price:'',
-         comment:''
-      })
-}
-//删除指定水表阶梯
-const deleteFee = (index) =>{
-   if(form.value.feeContent.length > 1){
-      form.value.feeContent.splice(index,1)
-   }
-}
-//校验
-const maxUseValid =ref(false)
-const priceValid =ref(false)
-//用水量校验
-const maxUseChange = (index) =>{
-   if(!form.value.feeContent[index].maxUse){
-      maxUseValid.value = true
-   }
-   if(form.value.feeContent.length > 1 && index > 0){
-      if(form.value.feeContent[index].maxUse <= form.value.feeContent[index - 1].maxUse){
-         proxy.$modal.msgError(`请输入大于第${index}阶梯用水量"${form.value.feeContent[index-1].maxUse}"的值`);
-         form.value.feeContent[index].maxUse = ''
-         maxUseValid.value = true
-      }
-   }
-}
-//水价校验
-const priceChange = (index) =>{
-   if(!form.value.feeContent[index].price){
-      priceValid.value = true
-   }
-}
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         TieredCharging().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         TieredCharging().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        comment: '',
-        feeContent:[
-         {
-            maxUse:'',
-            price:'',
-            comment:''
-         }
-         ],
-        sort:1,
-   };
-   proxy.resetForm("formRef");
- }
- getList();
- </script>
- <style lang="scss">
- .price-form{
-     padding: 20px 0;
-     background:#fff;
-     border-radius: 10px;
- }
-.fee-box{
-   display: flex;
-   flex-wrap: wrap;
-.fee-item{
-   // background-color: rgb(255, 255, 255);
-   border: 1px solid #cfd5dd;
-   padding: 10px;
-   margin-left: 20px;
-   margin-bottom: 20px;
-   border-radius: 10px;
-   height: 250px;
-   width:420px;
-   .item-title{
-      font-size: 18px;
-      font-weight:600;
-      width: 100px;
-      margin: 10px auto;
-   }
-   .item-delete{
-      display: flex;
-      justify-content: center;
-   }
-}
-}
-.fee-add{
-   display: flex;
-   margin-bottom: 20px;
-   margin-left: 19%;
-}
-.message{
-   position:absolute;
-   top: 80%;
-   z-index: 100;
-   color: var(--el-color-danger);
-   font-size: 12px;
-}
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/customer/archives/index.vue b/src/views/customer/archives/index.vue
deleted file mode 100644
index c6008b8..0000000
--- a/src/views/customer/archives/index.vue
+++ /dev/null
@@ -1,252 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-11-09 09:44:55
- * @FilePath: \water-qinghe-web\src\views\customer\archives\index.vue
- * @Description: 用户档案
--->
-
- <script setup>
- import  archivesApi from "@/api/archivesApi/index";
- import {areaApi} from "@/api/area/index";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.userName})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请输入';
-let  tableHeader = ref({
-        userName: '用户名称',
-        userCode: '用户编号',
-        areaName:'所属区域',
-        walletBalance: '余额',
-        regionName:'所属地区',
-        userAddress:'详细地址',
-        userPhone:'用户电话',
-        createTimeView:'创建时间'
-   })
- /** 获取列表 */
- const loading = ref(false)
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await archivesApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-
-const searchParams = ref({
-    keywords: '',
-});
-
-
-/**
- *  表单相关
- */
-const rules = ref({
-            userName: [
-                { required: true, message: '请输入名称', trigger: 'blur' },
-                {pattern: /^[\u4e00-\u9fa5\\·]*$/, message: '请输入中文或" · "符号', trigger: 'blur'},
-            ],
-            userPhone: [
-                { required: true, message: '请输入电话号码', trigger: 'blur' },
-                { pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }
-            ],
-            areaId: [
-                { required: true, message: '请输入区域id', trigger: 'blur' },
-           ],
-            // idCard: [
-            //     { required: true, message: '请输入身份证号', trigger: 'blur' },
-            //     { pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/, trigger: 'blur' ,message:"身份证号格式不正确"}  
-            // ],
-});
-const form = ref({});
-const open = ref(false)
-/** 表单重置 */
-function reset() {
-    form.value = {
-      areaId:'',
-      userCode:'',
-      userName: '',
-      areaName:'',
-      userPhone: '',
-      idCard: '',
-      userAddress: ''
-    };
-    proxy.resetForm("formRef");
-}
-/** 修改按钮操作 */
-async function handleUpdate(row){
-    reset();
-    Object.keys(row).forEach(key => {
-        if (form.value.hasOwnProperty(key)) {
-            form.value[key] = row[key];
-        }
-    });
-    form.value.id = row.id
-    open.value = true;
-}
-//42222409120001
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["formRef"].validate(valid => {
-        if (valid) {
-         archivesApi().modify(form.value).then(res => {
-               proxy.$modal.msgSuccess("修改成功");
-               open.value = false;
-               getList();
-            }).catch(() => {
-               open.value = false;
-               proxy.$modal.msgError("修改失败");
-            });
-        }
-    });
-}
- /**
-  * select列表数据
-  */
-//获取管网父级区域列表
- const parentAreaList = ref([])
- const getParentArea = async()=>{
-     let res = await areaApi().getTree('')
-     parentAreaList.value = res.data
- }
- const changeParentTree = (e)=>{
-     // form.value.parentAreaId = e.id
-     form.value.areaGrade = e.areaGrade
-     console.log('e001',e)
- }
-
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    reset();
-}
- getList();
- getParentArea()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.userName"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-            :sortable="key.toString() == 'walletBalance' ? true : false"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-         <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-               <template #default="scope">
-                  <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-               </template>
-         </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-        
-        <!-- 添加/修改表单 -->
-        <el-dialog title="修改" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto' >
-                <el-form-item label="用户名" prop="userName">
-                    <el-input v-model="form.userName" placeholder="请输入用户名称"/>
-                </el-form-item>
-                <el-form-item label="用户编号(水表编号)" prop="userCode" >
-                    <el-input v-model="form.userCode" placeholder="请输入用户名称" :disabled="true"/>
-                </el-form-item>
-                <el-form-item label="电话" prop="userPhone">
-                    <el-input v-model="form.userPhone" placeholder="请输入电话"/>
-                </el-form-item>
-                <el-form-item label="身份证号" prop="idCard">
-                    <el-input v-model="form.idCard" placeholder="请输入身份证号"/>
-                </el-form-item>
-                <el-form-item label="详细地址" >
-                    <el-input v-model="form.userAddress" placeholder="请输入详细地址"/>
-                </el-form-item>
-                <el-form-item label="所属区域" prop="areaId">
-                    <el-tree-select
-                            v-model="form.areaId"
-                            :data="parentAreaList"
-                            clearable
-                            :props="{label:'areaName', value:'id'}"
-                            placeholder="请选择区域"
-                            highlight-current
-                            @current-change="changeParentTree"
-                            :check-strictly="true"
-                    />
-                </el-form-item>
-                <el-form-item></el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/document/knowledge/index.vue b/src/views/document/knowledge/index.vue
deleted file mode 100644
index f97be78..0000000
--- a/src/views/document/knowledge/index.vue
+++ /dev/null
@@ -1,267 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 09:16:00
- * @FilePath: \water-qinghe-web\src\views\document\knowledge\index.vue
- * @Description: 知识库
--->
-
- <script setup>
- import  knowledgeApi from "@/api/knowledgeApi/index";
- import  { nameReg ,phoneReg }  from "@/utils/regular";
-
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请输入';
-let  tableHeader = ref({
-        name: '供应商名称',
-        address: '供应商地址',
-        contact:'联系人',
-        contactPhone:'联系人电话',
-        createTimeView:'创建时间'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await knowledgeApi().search(val).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      name: '供应商名称',
-      address: '供应商地址',
-      contact:'联系人',
-      contactPhone:'联系人电话',
-      createTimeView:'创建时间'
-})
- const  rules = ref({
-    name: [{ required: true, message: `${inpTip+formLabel.name}`, trigger: "blur" }
-      
-    ],
-    address: [{ required: true, message: `${inpTip+formLabel.address}`, trigger: "blur" }],
-    contact: [
-      { required: true, message: `${inpTip+formLabel.contact}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    contactPhone: [
-      { required: true, message: `${inpTip+formLabel.contactPhone}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function() {
-    return knowledgeApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.contactPhone = Number(form.value.contactPhone)
-       if (form.value.id != undefined) {
-         knowledgeApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         knowledgeApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        address: '',
-        contact:'',
-        contactPhone:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.name"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.name" prop="name">
-               <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.address" prop="address">
-               <el-input v-model="form.address" :placeholder="inpTip+formLabel.address" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contact" prop="contact">
-               <el-input v-model="form.contact" :placeholder="inpTip+formLabel.contact" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contactPhone" prop="contactPhone">
-               <el-input v-model="form.contactPhone" :placeholder="inpTip+formLabel.contactPhone" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/facility/area/index.vue b/src/views/facility/area/index.vue
deleted file mode 100644
index 19243f9..0000000
--- a/src/views/facility/area/index.vue
+++ /dev/null
@@ -1,396 +0,0 @@
-
-<script setup name="Post">
-import { areaApi} from "@/api/area/index";
-import {region} from "@/api/basicApi/index.js";
-import { onMounted } from "vue";
-import user from "@/api/system/user.js";
-import setPostParams from "@/utils/searchParams.js";
-const { proxy } = getCurrentInstance();
-
-const loading = ref(true); //加载状态
-
-/** 区域table相关 */
-const tableData = ref([]); //区域列表
-const total = ref(0);
-const ids = ref([]);
-const single = ref(true);
-const multiple = ref(true);
-let  tableHeader = ref({
-
-    areaName: '区域名称',
-    // regionName: '省市区域',
-    areaUserName: '区域负责人',
-    address:'详细地址',
-    statusName: '状态',
-    updateTimeView: '更新时间',
-})
-//获取列表数据
-const getList = async(val) => {
-
-    loading.value = true;
-    let postParam = setPostParams(val)
-    let res = await areaApi().search(postParam)
-    if(res.code == 200) {
-        loading.value = false;
-        tableData.value = res.data.list;
-
-        total.value = res.data.total;
-        search.page = res.data.page;
-        search.limit = res.data.limit;
-    }
-}
-
-
-/**
- * 表单相关
- */
-const openForm = ref(false);
-const title = ref("");
-const data = reactive({
-    //表单
-    form: {
-        areaGrade:'',
-        parentAreaId:'',
-        areaName:'',
-        region:'',
-        regionName:'',
-        areaUser:'',
-        areaUserName:'',
-        address:'',
-        remark:'',
-        status:true,
-    },
-    //查询数据
-    search: {
-        page: 1, //当前页
-        limit: 10, //每页条数
-        areaName: '',
-        status: ''
-    },
-    //表单验证
-    rules: {
-        areaName: [{ required: true, message: "请输入区域名称", trigger: "blur" }],
-        address: [{ required: true, message: "请输入详细地址", trigger: "blur" }],
-        areaUser: [{ required: true, message: "请选择区域负责人", trigger: "blur" }],
-        name:[{ required: false, message: "请选择省市区域", trigger: "blur" }],
-    },
-});
-const { search, form, rules } = toRefs(data);
-
-/**
- * select列表数据
- */
-//获取管网父级区域列表
-const parentAreaList = ref([])
-const getParentArea = async()=>{
-    let res = await areaApi().getTree('')
-    parentAreaList.value = res.data
-}
-const changeParentTree = (e)=>{
-    // form.value.parentAreaId = e.id
-    form.value.areaGrade = e.areaGrade
-    console.log('e001',e)
-}
-
-
-//省市区域列表
-const regionTreeList =  ref([])
-//获取省市区域列表
-const getRegionList = async() =>{
-    let res = await region().search('')
-    if(res.code == 200) {
-        res.data.forEach((item)=>{
-            if(item.children == null){
-                item.children = [{}]
-            }
-        })
-        regionTreeList.value = res.data
-    }
-}
-//展开所属区域树形, 请求展开区域的下一层子级数据
-const expandTree = async (data) => {
-    //请求展开区域的下一层子级列表数据
-    let res = await region().search(data.code)
-    if(res.code == 200) {
-        res.data.forEach((item)=>{
-            if((item.children == null) && item.level!=4){
-                item.children = [{}]
-            }
-        })
-        data.children =  res.data
-    }
-}
-//选中区域
-const changeTreeValue = (_, nodeData) => {
-
-    form.value.region = getTreeCode(nodeData, 'code').join(',')
-    nextTick(()=>{
-        form.value.regionName = getTreeCode(nodeData, 'name').join(',')
-    })
-}
-//从当前选择区域树形查找父级code,组装为[123,456,789](xx省/xx市/xx区)
-const getTreeCode = (tree, type) => {
-
-    let codeList = []
-    if(tree.data.level!=1){
-        codeList = codeList.concat(getTreeCode(tree.parent, type))
-        codeList.push(tree.data[type])
-    }else{
-        return [tree.data[type]]
-    }
-    return codeList
-}
-
-//获取管理员列表
-const areaUserList =ref([])
-const getUserList = async() =>{
-
-    loading.value = true;
-    let res = await user().search({limit:100,page:1})
-    if(res.code == 200) {
-        loading.value = false;
-        areaUserList.value = res.data.list
-    }
-}
-async function changeUserList(e){
-
-    console.log('areauser',e)
-    areaUserList.value.forEach((item =>{
-        if(item.id == e){
-            form.value.areaUserName = item.nickName
-        }
-    }))
-}
-
-/** 提交表单按钮 */
-function submitForm() {
-
-    proxy.$refs["postRef"].validate(async valid => {
-        if (valid) {
-            if(!form.value.id){
-                console.log('form.value000',form.value)
-                form.value.status = form.value.status ? 1: 0
-                let res = await areaApi().create(form.value)
-                if(res.code == 200) {
-                    proxy.$modal.msgSuccess("添加成功")
-                    openForm.value = false
-                    getList()
-                    reset()
-                }else{
-                    proxy.$modal.msgError("添加失败")
-                    openForm.value = false
-                    reset()
-                }
-            }else{
-                form.value.status = form.value.status ? 1: 0
-                let res = await areaApi().modify(form.value)
-                if(res.code == 200) {
-                    proxy.$modal.msgSuccess("修改成功")
-                    openForm.value = false
-                    getList()
-                    reset()
-                }else{
-                    proxy.$modal.msgError("修改失败")
-                    openForm.value = false
-                    reset()
-                }
-            }
-        }
-    });
-}
-
-/**
- * 操作相关
- */
-
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords:search.value.areaName});
-}
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-/** 多选框选中数据 */
-function handleSelectionChange(selection) {
-    ids.value = selection.map(item => item.id);
-    single.value = selection.length != 1;
-    multiple.value = !selection.length;
-}
-/** 新增按钮操作 */
-function handleAdd() {
-    getParentArea()
-    reset();
-    openForm.value = true;
-    title.value = "添加区域";
-}
-/** 修改按钮操作 */
-function handleUpdate(row) {
-    reset();
-    //将表单数据更新为table对应值
-    Object.keys(row).forEach(key => {
-        if (form.value.hasOwnProperty(key)) {
-            form.value[key] = row[key];
-        }
-    });
-    form.value.id = row.id
-    form.value.areaUser = Number(form.value.areaUser)
-    console.log('form',form.value);
-    openForm.value = true;
-    title.value = "修改区域";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('确认删除"' + row.areaName +'?')
-        .then(async() => {
-            console.log("无删除功能");
-            let res = await areaApi().remove(row.id)
-            if(res.code == 200) {
-                proxy.$modal.msgSuccess("删除成功");
-                openForm.value = false
-                getList()
-            }
-        }).catch(() => {});
-}
-
-/** 关闭弹窗 */
-function cancel() {
-    openForm.value = false;
-    reset();
-}
-/** 表单重置 */
-const reset = () => {
-    proxy.resetForm("postRef");
-    openForm.value = false
-}
-onMounted(async()=>{
-
-    getList();
-    getRegionList()
-    getUserList()
-    getParentArea()
-})
-
-
-</script>
-<template>
-    <div class="app-container">
-        <!--搜索框-->
-        <el-form :model="search" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="areaName">
-                <el-input
-                        v-model="search.areaName"
-                        placeholder="请输入区域名称"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-
-            </el-form-item>
-        </el-form>
-        <!--操作按钮列-->
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                        type="primary"
-                        plain
-                        icon="Plus"
-                        @click="handleAdd"
-                >新增</el-button>
-            </el-col>
-        </el-row>
-
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
-            <el-table-column type="selection" width="55" align ="center" />
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            ></el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                    <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                v-show="total > 0"
-                :total="total"
-                v-model:page="search.page"
-                v-model:limit="search.limit"
-                @pagination="getList"
-        />
-        <!-- 添加/修改弹窗 -->
-        <el-dialog :title="title" v-model="openForm" width="45vw" center append-to-body>
-            <el-form class="form-box" ref="postRef" :model="form" :rules="rules">
-                <el-form-item label="父级区域" prop="parentAreaId">
-                    <el-tree-select
-                            v-model="form.parentAreaId"
-                            :data="parentAreaList"
-                            clearable
-                            :props="{label:'areaName', value:'id'}"
-                            placeholder="请选择区域"
-                            highlight-current
-                            @current-change="changeParentTree"
-                            :check-strictly="true"
-                    />
-                </el-form-item>
-                <el-form-item label="行政区域"  prop="regionName">
-                    <el-tree-select
-                            v-model="form.regionName"
-                            :data="regionTreeList"
-                            :props="{label:'name', value:'code'}"
-                            placeholder="请选择区域"
-                            filterable
-                            highlight-current
-                            :check-strictly="true"
-                            @node-expand="expandTree"
-                            @current-change="changeTreeValue"
-                    />
-                </el-form-item>
-                <el-form-item label="区域负责人" prop="areaUser">
-                    <el-select v-model="form.areaUser" placeholder="请输入负责人名称" @change="changeUserList">
-                        <el-option
-                                v-for="item in areaUserList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="区域名称" prop="areaName">
-                    <el-input v-model="form.areaName" placeholder="请输入区域名称" />
-                </el-form-item>
-                <el-form-item label="详细地址" prop="address">
-                    <el-input v-model="form.address" placeholder="请输入详细地址" />
-                </el-form-item>
-                <el-form-item label="状态" prop="status">
-                    <el-switch v-model="form.status"/>
-                </el-form-item>
-                <el-form-item label="备注" prop="remark">
-                    <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-                </el-form-item>
-                <el-form-item></el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-<style scoped lang="scss">
-</style>
\ No newline at end of file
diff --git a/src/views/facility/collector/index.vue b/src/views/facility/collector/index.vue
deleted file mode 100644
index 0e70c9b..0000000
--- a/src/views/facility/collector/index.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 16:08:28
- * @FilePath: \water-qinghe-web\src\views\waterMeter\collector\index.vue
- * @Description: 采集器
--->
-
-<script setup>
-import  collectorApi from "@/api/facility/collector";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
-import setPostParams from "@/utils/searchParams.js";
-
-const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.deviceName})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        deviceName: '采集器名称',
-        parentId: '父级ID',
-        installAddId:'安装地点',
-        channelsNum:'通道数',
- 
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await collectorApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      deviceName: '采集器名称',
-      parentId: '父级ID',
-      installAddId:'安装地点',
-      channelsNum:'通道数',
-     
-})
- const  rules = ref({
-    deviceName: [{ required: true, message: `${inpTip+formLabel.deviceName}`, trigger: "blur" }
-      
-    ],
-    parentId: [{ required: true, message: `${inpTip+formLabel.parentId}`, trigger: "blur" }],
-    installAddId: [
-      { required: true, message: `${inpTip+formLabel.installAddId}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    channelsNum: [
-      { required: true, message: `${inpTip+formLabel.channelsNum}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.installAddId + '"的数据项?').then(function() {
-    return collectorApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.channelsNum = Number(form.value.channelsNum)
-       if (form.value.id != undefined) {
-         collectorApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         collectorApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        deviceName: '',
-        parentId: '',
-        installAddId:'',
-        channelsNum:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.deviceName"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules">
-            <el-form-item :label="formLabel.deviceName" prop="deviceName">
-               <el-input v-model="form.deviceName" :placeholder="inpTip+formLabel.deviceName"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.parentId" prop="parentId">
-               <el-input v-model="form.parentId" :placeholder="inpTip+formLabel.parentId" />
-            </el-form-item>
-            <el-form-item :label="formLabel.installAddId" prop="installAddId">
-               <el-input v-model="form.installAddId" :placeholder="inpTip+formLabel.installAddId" />
-            </el-form-item>
-            <el-form-item :label="formLabel.channelsNum" prop="channelsNum">
-               <el-input v-model="form.channelsNum" :placeholder="inpTip+formLabel.channelsNum" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/facility/facilityList/index.vue b/src/views/facility/facilityList/index.vue
index 7f7ab47..a35c9be 100644
--- a/src/views/facility/facilityList/index.vue
+++ b/src/views/facility/facilityList/index.vue
@@ -1,10 +1,10 @@
 <script setup>
 import facilityApi from "@/api/facility/index";
 import pointApi from "@/api/facility/point";
-import supplierApi from "@/api/waterMeterApi/supplier.js";
+import supplierApi from "@/api/facility/supplier.js";
 import facilityTypeApi from "@/api/facility/facilityType.js";
 import commonParameters from "@/api/configuration/commonParameters/index.js";
-import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js";
+import waterFacilityParameter from "@/api/facility/parameter.js";
 import {PREURL} from '@/config/index'
 import setPostParams from "@/utils/searchParams.js";
 const route = useRoute();
@@ -141,6 +141,7 @@
 async function handleAdd() {
     reset();
     open.value = true;
+    isDetail.value = false;
     title.value = "新增";
     console.log('form',form.value)
 }
@@ -156,6 +157,7 @@
     });
     form.value.id = row.id
     open.value = true;
+    isDetail.value = true;
     title.value = "修改";
 }
 
@@ -179,6 +181,7 @@
 const openParamForm = ref(false)
 const open = ref(false);
 const title = ref("");
+const isDetail = ref(false);
 const multipleSelection = ref([])
 let  tableParamHeader = ref({
     name: '参数名称',
diff --git a/src/views/facility/facilityParameter/index.vue b/src/views/facility/facilityParameter/index.vue
deleted file mode 100644
index f737600..0000000
--- a/src/views/facility/facilityParameter/index.vue
+++ /dev/null
@@ -1,215 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入设备编号"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
-
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-             <el-row>
-                <el-col :span="12">
-                    <el-form-item label="参数名称" prop="name">
-                        <el-input v-model="form.name" placeholder="请输入参数名称" />
-                    </el-form-item>
-                </el-col>
-                <el-col :span="12">
-                    <el-form-item label="参数标识" prop="mark">
-                        <el-input v-model="form.mark" placeholder="请输入参数标识" />
-                    </el-form-item>
-                </el-col>
-            </el-row>
-            <el-row>
-                <el-col :span="12">
-                    <el-form-item label="参数单位" prop="unit">
-                        <el-input v-model="form.unit" placeholder="请输入参数单位" />
-                    </el-form-item>
-                </el-col>
-            </el-row>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <script setup name="Menu">
- import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-    facilityName:'设备名称',
-    facilityCode: '设备编号',
-    columnsCode: '参数编码',
-    columnsShow: '参数名称',
-    columnsUnits: '参数单位',
-    createTimeView: '创建日期',
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await waterFacilityParameter().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增设备参数";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   form.value = Object.assign({},row)
-   form.value.waterMeterDelinquentClose = form.value.waterMeterDelinquentClose.toString()
-   open.value = true;
-   title.value = "修改设备参数";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.waterBillType + '"的数据项?').then(function() {
-    return companySetting().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    name: [{ required: true, message: "请输入参数名称", trigger: "blur" }],
-    mark: [{ required: true, message: "请输入参数标识", trigger: "blur" }],
-    unit: [{ required: true, message: "请输入参数单位", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//动态显示
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-           commonParameters().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-           commonParameters().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        waterBillType: '',
-        waterMonthBillCreateDay: '',
-        waterMonthBillDay:undefined,
-        waterPayDays:undefined,
-        waterMeterDelinquentClose:undefined,
-   };
-   proxy.resetForm("formRef");
- }
- getList();
- </script>
- 
\ No newline at end of file
diff --git a/src/views/facility/facilityType/index.vue b/src/views/facility/facilityType/index.vue
index 3131f0d..c48047f 100644
--- a/src/views/facility/facilityType/index.vue
+++ b/src/views/facility/facilityType/index.vue
@@ -7,109 +7,113 @@
  * @Description: 设备类型
 -->
 <script setup>
-import  facilityTypeApi from "@/api/facility/facilityType";
+import facilityTypeApi from "@/api/facility/facilityType";
 import setPostParams from "@/utils/searchParams.js";
 
 const route = useRoute();
-const { proxy } = getCurrentInstance();
+const {proxy} = getCurrentInstance();
 
 
 /**
  * 搜索相关
  */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
+/** 搜索按钮操作 */
+function handleQuery() {
+    getList({keywords: searchParams.value.name})
+}
 
- /**
-  *  Table表格权限数据列表相关
-  */
+/** 重置按钮操作 */
+function resetQuery() {
+    proxy.resetForm("queryRef");
+    handleQuery();
+}
+
+/**
+ *  Table表格权限数据列表相关
+ */
 
 const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
+    total: 0,
+    limit: 0,
+    page: 1,
 })
 const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        name: '类型名称',
-        code: '类型编号',
-        facilityType: '设备类型',
-        createTimeView:'创建时间'
-   })
- /** 获取权限列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await facilityTypeApi().search(postParam).then((res) =>{
+const inpTip = '请输入', selTip = '请选择';
+let tableHeader = ref({
+    name: '类型名称',
+    code: '类型编号',
+    facilityType: '设备类型',
+    createTimeView: '创建时间'
+})
+
+/** 获取权限列表 */
+async function getList(val) {
+    loading.value = true;
+    let postParam = setPostParams(val)
+    await facilityTypeApi().search(postParam).then((res) => {
         tableData.value = res.data.list
         pageParam.value.total = res.data.total
         pageParam.value.limit = res.data.limit
         pageParam.value.page = res.data.page
     })
     loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      name: '类型名称',
-      code: '类型编号',
-      createTimeView:'创建时间'
+}
+
+/**
+ *  表单相关
+ */
+const formLabel = ({
+    name: '类型名称',
+    code: '类型编号',
+    createTimeView: '创建时间'
 })
- const  rules = ref({
-    name: [{ required: true, message: `${inpTip+formLabel.name}`, trigger: "blur" }
-      
+const rules = ref({
+    name: [{required: true, message: `${inpTip + formLabel.name}`, trigger: "blur"}
+
     ],
-    code: [{ required: true, message: `${inpTip+formLabel.code}`, trigger: "blur" }],
+    code: [{required: true, message: `${inpTip + formLabel.code}`, trigger: "blur"}],
 });
 const form = ref({});
 const searchParams = ref({
     keywords: '',
 });
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
+
+/** 新增按钮操作 */
+async function handleAdd() {
+    reset();
+    open.value = true;
+    title.value = "新增";
+}
+
+/** 修改按钮操作 */
+async function handleUpdate(row) {
+    reset();
+    // form.value = Object.assign({},row)
+    Object.keys(row).forEach(key => {
+        if (form.value.hasOwnProperty(key)) {
+            form.value[key] = row[key];
+        }
+    });
+    form.value.id = row.id
+    open.value = true;
+    title.value = "修改";
+}
 
 /** 删除按钮操作 */
 function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function() {
-    return facilityTypeApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
+    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
+        return facilityTypeApi().remove(row.id);
+    }).then(() => {
+        getList();
+        proxy.$modal.msgSuccess("删除成功");
+    }).catch(() => {
+    });
 }
- 
 
- /**
-  *  新增/修改弹窗Form表单相关
-  */
+
+/**
+ *  新增/修改弹窗Form表单相关
+ */
 const open = ref(false);
 const loading = ref(false);
 const title = ref("");
@@ -118,128 +122,136 @@
 const uploadData = (data) => {
     form.value.headImg = data.newFileView
 }
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["facilityTypeRef"].validate(valid => {
-     if (valid) {
-        form.value.contactPhone = Number(form.value.contactPhone)
-       if (form.value.id != undefined) {
-         facilityTypeApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         facilityTypeApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
 
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
+/** 提交按钮 */
+function submitForm() {
+    proxy.$refs["facilityTypeRef"].validate(valid => {
+        if (valid) {
+            form.value.contactPhone = Number(form.value.contactPhone)
+            if (form.value.id != undefined) {
+                facilityTypeApi().modify(form.value).then(res => {
+                    proxy.$modal.msgSuccess("修改成功");
+                    open.value = false;
+                    getList();
+                }).catch(() => {
+                    open.value = false;
+                    proxy.$modal.msgError("修改失败");
+                });
+            } else {
+                facilityTypeApi().create(form.value).then(res => {
+                    proxy.$modal.msgSuccess("新增成功");
+                    open.value = false;
+                    getList();
+                }).catch(() => {
+                    open.value = false;
+                    proxy.$modal.msgError("新增失败");
+                });
+                ;
+            }
+        }
+    });
+}
+
+/** 取消按钮 */
+function cancel() {
+    open.value = false;
+    reset();
+}
+
+/** 表单重置 */
+function reset() {
+    form.value = {
         name: '',
         code: ''
-   };
-   proxy.resetForm("facilityTypeRef");
- }
- getList();
- </script>
- <template>
+    };
+    proxy.resetForm("facilityTypeRef");
+}
+
+getList();
+</script>
+<template>
     <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.name"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
+        <el-form :model="searchParams" ref="queryRef" :inline="true">
+            <el-form-item label="" prop="">
+                <el-input
+                    v-model="searchParams.name"
+                    placeholder="请输入搜索信息"
+                    clearable
+                    style="width: 200px"
+                    @keyup.enter="handleQuery"
+                />
+            </el-form-item>
+            <el-form-item>
+                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+            </el-form-item>
+        </el-form>
+
+        <el-row :gutter="10" class="mb8">
+            <el-col :span="1.5">
+                <el-button
+                    type="primary"
+                    plain
+                    icon="Plus"
+                    @click="handleAdd"
+                >新增
+                </el-button>
+            </el-col>
+        </el-row>
+        <!--表格及分页-->
+        <el-table v-loading="loading" :data="tableData">
+            <el-table-column
+                v-for="(item, key, index) of tableHeader"
+                :prop="key.toString()"
+                :label="item"
+                :key="index"
+                align="center"
+            >
+                <template #default="scope">
+                    <div v-if="key.toString() == 'headImg'">
+                        <img :src="scope.row.headImg" class="table-headImg"/>
+                    </div>
+                </template>
+            </el-table-column>
+            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
+                <template #default="scope">
+                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
+                               @click="handleUpdate(scope.row)">修改
+                    </el-button>
+                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
+                               @click="handleDelete(scope.row)">删除
+                    </el-button>
+                </template>
+            </el-table-column>
         </el-table>
         <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
+            :total="pageParam.total"
+            v-model:page="pageParam.page"
+            v-model:limit="pageParam.limit"
+            :page-sizes="[10,20,30]"
+            @pagination="getList"
         />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.name" prop="name">
-               <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.code" prop="code">
-               <el-input v-model="form.code" :placeholder="inpTip+formLabel.code" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
+        <!-- 添加/修改表单 -->
+        <el-dialog :title="title" v-model="open" append-to-body center>
+            <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'>
+                <el-form-item :label="formLabel.name" prop="name">
+                    <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
+                </el-form-item>
+                <el-form-item :label="formLabel.code" prop="code">
+                    <el-input v-model="form.code" :placeholder="inpTip+formLabel.code"/>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button type="primary" @click="submitForm">确 定</el-button>
+                    <el-button @click="cancel">取 消</el-button>
+                </div>
+            </template>
+        </el-dialog>
     </div>
- </template>
- 
- <style lang="scss" scoped>
+</template>
+
+<style lang="scss" scoped>
 
 </style>
  
\ No newline at end of file
diff --git a/src/views/facility/handleRecord/index.vue b/src/views/facility/handleRecord/index.vue
deleted file mode 100644
index ec21fba..0000000
--- a/src/views/facility/handleRecord/index.vue
+++ /dev/null
@@ -1,108 +0,0 @@
-<!--
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-09-30 09:03:03
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-09-30 09:52:38
- * @FilePath: \water-qinghe-web\src\views\facility\handleRecord\index.vue
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--->
- <script setup>
- import  recordApi from "@/api/facility/record.js";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.keywords})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   searchParams.value.keywords = ''
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-    facilityName: '设备名称',
-    comment: '操作内容',
-    operateIp: 'IP地址',
-    createUserName:'操作人员',
-    createTimeView:'创建时间'
-   })
- /** 获取列表 */
- const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await recordApi().handleRecord(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-const searchParams = ref({
-    keywords: '',
-})
- getList();
- </script>
-
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.keywords"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
-  
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-    
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/facility/supplier/index.vue b/src/views/facility/supplier/index.vue
deleted file mode 100644
index 848b71b..0000000
--- a/src/views/facility/supplier/index.vue
+++ /dev/null
@@ -1,275 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-14 09:34:55
- * @FilePath: \water-qinghe-web\src\views\waterMeter\supplier\index.vue
- * @Description: 供应商
--->
-
- <script setup>
- import  supplierApi from "@/api/waterMeterApi/supplier";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
- import setPostParams from "@/utils/searchParams.js";
-
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        name: '供应商名称',
-        address: '供应商地址',
-        contact:'联系人',
-        contactPhone:'联系人电话',
-        createTimeView:'创建时间'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-    let postParam = setPostParams(val)
-      await supplierApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      name: '供应商名称',
-      address: '供应商地址',
-      contact:'联系人',
-      contactPhone:'联系人电话',
-      createTimeView:'创建时间'
-})
- const  rules = ref({
-    name: [{ required: true, message: `${inpTip+formLabel.name}`, trigger: "blur" }
-      
-    ],
-    address: [{ required: true, message: `${inpTip+formLabel.address}`, trigger: "blur" }],
-    contact: [
-      { required: true, message: `${inpTip+formLabel.contact}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    contactPhone: [
-      { required: true, message: `${inpTip+formLabel.contactPhone}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function() {
-    return supplierApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.contactPhone = Number(form.value.contactPhone)
-       if (form.value.id != undefined) {
-         supplierApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         supplierApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        address: '',
-        contact:'',
-        contactPhone:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.name"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.name" prop="name">
-               <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.address" prop="address">
-               <el-input v-model="form.address" :placeholder="inpTip+formLabel.address" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contact" prop="contact">
-               <el-input v-model="form.contact" :placeholder="inpTip+formLabel.contact" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contactPhone" prop="contactPhone">
-               <el-input v-model="form.contactPhone" :placeholder="inpTip+formLabel.contactPhone" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
- .el-form{
-     width: 100%;
-     display: flex;
-     justify-content: space-evenly;
-     flex-wrap: wrap;
-     .el-form-item{
-         width: 45%;
-     }
- }
-</style>
- 
\ No newline at end of file
diff --git a/src/views/facility/valveDevice/index.vue b/src/views/facility/valveDevice/index.vue
deleted file mode 100644
index cc46c63..0000000
--- a/src/views/facility/valveDevice/index.vue
+++ /dev/null
@@ -1,445 +0,0 @@
-<!--
- * @Author: hqs elkers@163.com
- * @Date: 2024-08-06 14:47:41
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-10 08:52:28
- * @FilePath: \water-qinghe-web\src\views\facilit\facilityList\index.vue
- * @Description: 阀门列表
--->
-<script setup>
-import valveDeviceApi from "@/api/facility/valveDevice.js";
-import { areaApi} from "@/api/area/index";
-import supplierApi from "@/api/waterMeterApi/supplier.js";
-import facilityTypeApi from "@/api/facility/facilityType.js";
-import commonParameters from "@/api/configuration/commonParameters/index.js";
-import waterFacilityParameter from "@/api/configuration/facilityParameter/index.js";
-import {PREURL} from '@/config/index'
-import setPostParams from "@/utils/searchParams.js";
-const route = useRoute();
-const preUrl = ref(PREURL);
-const {proxy} = getCurrentInstance();
-
-/**
- * 搜索相关
- */
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords: searchParams.value.sn})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-
-/**
- *  Table表格权限数据列表相关
- */
-const pageParam = ref({
-    total: 0,
-    limit: 0,
-    page: 1,q
-})
-const tableData = ref([]);
-const inpTip = '请输入', selTip = '请选择';
-let tableHeader = ref({
-    sn: '阀门编号',
-    name: '阀门名称',
-    address: '所在位置',
-    electricityAmount:'电量',
-    signalStrength:'信号强度',
-    comment:'备注信息',
-    createTimeView: '创建时间'
-})
-
-/** 获取权限列表 */
-async function getList(val) {
-    let postParam = setPostParams(val)
-    await valveDeviceApi().search(postParam).then((res) => {
-        tableData.value = res.data.list
-        tableData.value.forEach((item,index) =>{
-            item.num = index + 1
-        })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-}
-
-/**
- *  表单相关
- */
-const formLabel = ({
-    sn: '阀门编号',
-    name: '阀门名称',
-    sort:"排序",
-    address: '所在位置',
-    longitude: '经度',
-    latitude: '纬度',
-    comment:'备注信息',
-    createTimeView: '创建时间'
-})
-const rules = ref({
-    sn: [{required: true, message: `${inpTip + formLabel.sn}`, trigger: "blur"}],
-    name: [{required: true, message: `${inpTip + formLabel.name}`, trigger: "blur"}],
-    facilityType: [{required: true, message: `${inpTip + formLabel.facilityTypeName}`, trigger: "blur"}],
-    address: [{required: true, message: `${inpTip + formLabel.address}`, trigger: "blur"}],
-    supplier: [{required: true, message: `${inpTip + formLabel.supplier}`, trigger: "blur"}],
-});
-const form = ref({
-    sn: '',
-    name: '',
-    longitude: '',
-    latitude: '',
-    sort:1,
-    address: '',
-    areaName:'',
-    comment:''
-});
-const searchParams = ref({
-    keywords: '',
-});
-//查询监控点
-const areaList = ref();
-const getArea = async () => {
-    await areaApi().search({limit: 100, page: 1}).then((res) => {
-        areaList.value = res.data.list
-    })
-}
-getArea()
-//查询供应商
-const supplierList = ref();
-const getSupplier = async () => {
-    await supplierApi().search({limit: 100, page: 1}).then((res) => {
-        console.log("供应商" + res.data.list);
-        supplierList.value = res.data.list
-    })
-}
-getSupplier()
-//查询阀门类型
-const facilityTypeList = ref();
-const getFacilityTypeList = async () => {
-    await facilityTypeApi().search({limit: 10000, page: 1}).then((res) => {
-        facilityTypeList.value = res.data.list
-    })
-}
-getFacilityTypeList()
-//获取参数列表数据
-//阀门参数table
-const tableParamData = ref([]);
-const getParamList = async() => {
-    await commonParameters().search({limit:10000,page: 1}).then((res)=>{
-        tableParamData.value = res.data.list;
-    })
-}
-//获取已绑定参数数据
-const getSelectParamList = async(val) => {
-    await waterFacilityParameter().getParam(val).then((res)=>{
-        const data = res.data
-        console.log("参数列表",data)
-        if(data.length > 0){
-            data.forEach( item =>{
-                tableParamData.value.forEach((tableItem)=>{
-                    if(item.columnsCode == tableItem.mark){
-                        tableRef.value.toggleRowSelection(tableItem, undefined)
-                    }
-                })
-            })
-        }
-    })
-}
-/** 新增按钮操作 */
-async function handleAdd() {
-    reset();
-    open.value = true;
-    title.value = "新增";
-    console.log('form',form.value)
-}
-
-/** 修改按钮操作 */
-async function handleUpdate(row) {
-    reset();
-    // form.value = Object.assign({},row)
-    Object.keys(row).forEach(key => {
-        if (form.value.hasOwnProperty(key)) {
-            form.value[key] = row[key];
-        }
-    });
-    form.value.id = row.id
-    open.value = true;
-    title.value = "修改";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
-        return valveDeviceApi().remove(row.id);
-    }).then(() => {
-        getList();
-        proxy.$modal.msgSuccess("删除成功");
-    }).catch(() => {
-    });
-}
-
-
-/**
- *  新增/修改弹窗Form表单相关
- */
-//阀门参数弹窗
-const tableRef = ref()
-const openParamForm = ref(false)
-const open = ref(false);
-const title = ref("");
-const multipleSelection = ref([])
-let  tableParamHeader = ref({
-    name: '参数名称',
-    mark:'参数标识',
-    unit: '参数单位',
-})
-/**
- * 绑定相关
- */
-//绑定数据
-const facilityData = ref({
-    facilityId:'',
-    parameterList:[]
-})
-//已选择阀门参数
-const handleSelectionParams = (val) =>{
-    multipleSelection.value = val
-    console.log('esele',val);
-}
-/**
- * 阀门参数操作相关
- */
-
-//提交绑定
-const handleSubmit = async() =>{
-    multipleSelection.value.forEach((item) =>{
-        facilityData.value.parameterList.push({
-            columnsCode:item.mark,
-            columnsShow:item.name,
-            columnsUnits:item.unit,
-        })
-    })
-    let res = await waterFacilityParameter().create(facilityData.value)
-    if(res.code == 200){
-
-        proxy.$modal.msgSuccess('绑定成功!')
-        facilityData.value.parameterList = []
-        openParamForm.value = false
-        tableRef.value.clearSelection()
-
-    }else{
-        proxy.$modal.msgError('绑定失败!')
-        openParamForm.value = false
-        tableRef.value.clearSelection()
-    }
-}
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.facilityUrl = data.toString();
-}
-
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["facilityTypeRef"].validate(valid => {
-        if (valid) {
-            // form.value.contactPhone = Number(form.value.contactPhone)
-
-            if (form.value.id != undefined) {
-                valveDeviceApi().modify(form.value).then(res => {
-                    proxy.$modal.msgSuccess("修改成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("修改失败");
-                });
-            } else {
-                valveDeviceApi().create(form.value).then(res => {
-                    proxy.$modal.msgSuccess("新增成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("新增失败");
-                });
-                ;
-            }
-        }
-    });
-}
-
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    openParamForm.value = false;
-    reset();
-}
-/** 绑定按钮操作 */
-const handleband = async(row) =>{
-    facilityData.value.facilityId = row.id
-    await getParamList()
-    getSelectParamList(row.id)
-    openParamForm.value = true
-}
-/** 表单重置 */
-function reset() {
-    form.value = {
-        sn: '',
-        name: '',
-        facilityUrl: '',
-    };
-    proxy.resetForm("facilityTypeRef");
-}
-
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="searchParams" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="">
-                <el-input
-                        v-model="searchParams.sn"
-                        placeholder="请输入搜索信息"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                        type="primary"
-                        plain
-                        icon="Plus"
-                        @click="handleAdd"
-                >新增
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--表格及分页-->
-        <el-table  :data="tableData">
-            <el-table-column
-                label="序号"
-                align="center"
-                prop="num"
-                fixed="left"
-            >
-            </el-table-column>
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() === 'facilityUrl'" style="height: 50px;margin: 0 auto">
-                        <img :src="preUrl + scope.row.facilityUrl" class="table-headImg"/>
-                    </div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <!-- <el-button link type="primary" icon="Edit" @click="handleband(scope.row)">参数绑定</el-button> -->
-                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
-                               @click="handleUpdate(scope.row)">修改
-                    </el-button>
-                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
-                               @click="handleDelete(scope.row)">删除
-                    </el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getList"
-        />
-        <!-- 添加/修改表单 -->
-        <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto' >
-                <el-form-item :label="formLabel.sn" prop="sn">
-                    <el-input v-model="form.sn" :placeholder="inpTip+formLabel.sn"/>
-                </el-form-item>
-                <el-form-item :label="formLabel.name" prop="name">
-                    <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
-                </el-form-item>
-                <el-form-item label="安装区域" prop="address">
-                    <el-select v-model="form.address" :placeholder="inpTip+formLabel.address">
-                        <el-option
-                                v-for="(item,index) in areaList"
-                                :label="item.areaName"
-                                :value="item.areaName"
-                                :key="index"
-                        ></el-option>
-                    </el-select>
-                </el-form-item> 
-                <!-- <el-form-item :label="formLabel.longitude" prop="longitude">
-                    <el-input v-model="form.longitude" :placeholder="inpTip+formLabel.longitude"/>
-                </el-form-item>
-                <el-form-item :label="formLabel.latitude" prop="latitude">
-                    <el-input v-model="form.latitude" :placeholder="inpTip+formLabel.latitude"/>
-                </el-form-item> -->
-                <el-form-item :label="formLabel.sort" >
-                    <el-input v-model="form.sort" :placeholder="inpTip+formLabel.sort"/>
-                </el-form-item>
-             
-      
-                
-      
-                <el-form-item :label="formLabel.comment" prop="comment">
-                    <el-input v-model="form.comment" :placeholder="inpTip+formLabel.comment" />
-                </el-form-item>
-                <el-form-item><br></el-form-item>
-           
-                <el-form-item></el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-        <!-- 阀门参数弹窗 -->
-        <el-dialog title="阀门参数" v-model="openParamForm" width="50vw" center align-center append-to-body>
-            <!--表格-->
-            <el-table ref='tableRef'  :data="tableParamData" height="75vh" @selection-change="handleSelectionParams" >
-                <el-table-column type="selection" width="55" align ="center" />
-                <el-table-column
-                    v-for="(item, key, index) of tableParamHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-                ></el-table-column>
-            </el-table>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="handleSubmit">确认绑定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style lang="scss" scoped>
-.table-headImg{
-    max-width: 100px;
-    height: 50px;
-}
-</style>
- 
diff --git a/src/views/facilityExamine/facilityExaminePlan/index.vue b/src/views/facilityExamine/facilityExaminePlan/index.vue
deleted file mode 100644
index 69fa660..0000000
--- a/src/views/facilityExamine/facilityExaminePlan/index.vue
+++ /dev/null
@@ -1,367 +0,0 @@
- 
-<script setup name="Post">
-import { facilityExaminePlanApi } from "@/api/examine/plan/index.js";
-import setPostParams from "@/utils/searchParams.js";
-import  user from "@/api/system/user";
-import {sysDictData} from "../../../api/system/dict.js";
-import facilityApi from "../../../api/facility/index.js";
-const { proxy } = getCurrentInstance();
-
-/**
- * 搜索
- */
-const queryParams = ref({
-    name:''
-})
-/** 搜索操作 */
-function handleQuery() {
-    getList({keywords:queryParams.value.name})
-}
-
-/**
- * 重置
- */
-const resetQuery = () =>{
-    queryParams.value.name = ''
-    proxy.resetForm("queryRef");
-    getList()
-}
-/** 列表 */
-const tableData = ref([]); //初始化列表
-const open = ref(false);
-const loading = ref(true); //加载状态
-const total = ref(0);
-const title = ref("");
-
-/** 表头 */
-let  tableHeader = ref({
-    planName: '计划名称',
-    planTypeView: '计划类型',
-    periodTypeView: '周期',
-    facilityNames:'巡检设备列表',
-    inspectUserName: '巡检人员',
-    content:'巡检内容',
-    beginTime: '计划开始日期',
-    endTime: '计划结束日期',
-    createTimeView:'创建时间',
-      
-   })
-const pageParam = ref({
-    total:0,
-    limit:10,
-    page:1,
-})
-/** 获取列表 */
-const getList = async(val) => {
-   loading.value = true;
-    let postParam = setPostParams(val)
-    let res = await facilityExaminePlanApi().search(postParam)
-    loading.value = false;
-   if(res.code == 200) {
-         tableData.value = res.data.list;
-         //枚举转换
-         tableData.value.forEach((item)=>{
-            item.stateName = item.state == 1 ? '启动' : '关闭'
-         })
-       pageParam.value.total = res.data.total;
-       pageParam.value.page = res.data.page;
-       pageParam.value.limit = res.data.limit;
-   }
-}
-/**
- * 详情相关 
- * 
- * */
-let openForm2 = ref(false)
-let detailForm = ref({})
-let detailTable = ref([])
-
-/** 新增按钮操作 */
-function handleAdd(){
-   reset();
-    open.value = true;
-   title.value = "添加计划";
-}
-/** 修改按钮操作 */
-function handleUpdate(row) {
-    reset();
-    Object.keys(form.value).forEach((key)=>{
-      if(Object.keys(row).includes(key)){
-          form.value[key] = row[key]
-        }
-    })
-    //数据类型及格式转换
-    dateRange.value.push(form.value.beginTime)
-    dateRange.value.push(form.value.endTime)
-    form.value.periodType = form.value.periodType.toString();
-    form.value.planType = form.value.planType.toString();
-    form.value.facilityIds =  form.value.facilityIds.split(',');
-    form.value.id = row.id
-    open.value = true;
-    title.value = "修改计划";
-}
-/**
- * 表单相关
- */
-const data = reactive({
-    //表单
-    form: {},
-    //表单验证
-    rules: {
-        planName: [{ required: true, message: "计划名称不能为空", trigger: "blur" }],
-        inspectUser: [{ required: true, message: "巡检人员不能为空", trigger: "blur" }]
-    },
-});
-
-const { form, rules} = toRefs(data);
-/**
- * 下拉框数据
- */
-//获取枚举类型
-const planTypeList = ref()
-const periodTypeList = ref()
-const getType = async(val) =>{
-    let res = await sysDictData().searchType(val)
-    if (res.code == 200) {
-       return res.data
-    }
-}
-
-//巡检人员
-const userNameList = ref()
-const getAccount = async() =>{
-// 获取维修账号列表信息
-    let res = await user().search({limit: 10000, status: 1,page:1})
-    if (res.code == 200) {
-        userNameList.value = res.data.list
-    }
-}
-const checkedUser = (val) =>{
-    userNameList.value.forEach( item =>{
-        if(item.id == val){
-            form.value.inspectUserName = item.nickName
-        }
-    })
-}
-//日期
-const dateRange = ref([]);
-async function changeDate(e){
-    form.value.beginTime = e[0] + ' 00:00:00'
-    form.value.endTime = e[1] + ' 23:59:59'
-}
-//巡检设备
-const facilityList = ref()
-const getFacility = async() =>{
-    let res = await facilityApi().search({limit: 10000, status: 1,page:1})
-    if (res.code == 200) {
-        facilityList.value = res.data.list
-    }
-}
-
-/** 提交表单按钮 */
-function submitForm() {
-   proxy.$refs["postRef"].validate(async valid => {
-      if (valid) {
-          form.value.facilityIds =  form.value.facilityIds.join()
-         if(!form.value.id){
-            let res = await facilityExaminePlanApi().create(form.value)
-            if(res.code == 200) {
-               proxy.$modal.msgSuccess("添加成功");
-               open.value = false
-               getList()
-               reset()
-            }
-         }else{
-            let res = await facilityExaminePlanApi().modify(form.value)
-            if(res.code == 200) {
-               proxy.$modal.msgSuccess("修改成功");
-               open.value = false
-               getList()
-               reset()
-            }
-         }
-      }
-   });
-}
-/** 删除按钮操作 */
-// function handleDelete(row) {
-//    proxy.$modal.confirm('是否确认删除名称为"' + row.planName + '"的计划?')
-//    .then(async() => {
-//       let res = await facilityExaminePlanApi().remove(row.id)
-//       if(res.code == 200) {
-//          proxy.$modal.msgSuccess("删除成功");
-//          open.value = false
-//          getList()
-//       }
-//    }).catch(() => {});
-// }
-/** 关闭弹窗 */
-function cancel() {
-   open.value = false;
-   openForm2.value = false;
-   reset();
-}
-/** 表单重置 */
-const reset = () => {
-    form.value = {
-        planName: '',
-        planType: '',
-        periodType: '',
-        facilityIds:[],
-        beginTime: '',
-        endTime: '',
-        inspectUser: '',
-        inspectUserName: '',
-        content: '',
-        remark: '',
-    }
-   proxy.resetForm("postRef");
-   open.value = false
-   openForm2.value = false;
-   getList();
-}
-onMounted(async () =>{
-
-    planTypeList.value = await getType('inspect_type');
-    periodTypeList.value = await getType('period_type');
-    await getAccount()
-    await getFacility()
-    getList();
-})
-
-</script>
-<template>
-    <div class="app-container">
-        <!--搜索框-->
-        <el-form :model="queryParams" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="name">
-               <el-input
-                  v-model="queryParams.name"
-                  placeholder="请输入计划名称"
-                  clearable
-                  style="width: 200px"
-                  @keyup.enter="handleQuery"
-               />
-            </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-        <!--操作按钮列-->
-        <el-row :gutter="10">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-        </el-row>
-
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          ></el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-<!--                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>-->
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          v-show="pageParam.total > 0"
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          @pagination="getList"
-        />
-        <!-- 添加表单弹窗 -->
-        <el-dialog :title="title" v-model="open"  center>
-          <el-form class="form-box" ref="postRef" :model="form" :rules="rules" label-width="90px">
-             <el-form-item label="计划名称" prop="planName" >
-                <el-input v-model="form.planName" placeholder="请输入设备名称" />
-             </el-form-item>
-             <el-form-item label="计划类型">
-                <el-select v-model="form.planType" placeholder="请选择所计划类型">
-                    <el-option
-                    v-for="(item,index) in planTypeList"
-                    :key="index"
-                    :label="item.dictLabel"
-                    :title="item.dictLabel"
-                    :value="item.dictValue"
-                    />
-                </el-select>
-             </el-form-item>
-              <el-form-item class="checkbox-item"  label="巡检设备" prop="facilityIds">
-                  <el-checkbox-group v-model="form.facilityIds">
-                      <el-checkbox v-for="(item,index) in facilityList" :key="index" :label="item.facilityName" :value="item.id" size ="large" />
-                  </el-checkbox-group>
-              </el-form-item>
-             <el-form-item label="计划周期">
-                <el-select v-model="form.periodType" placeholder="请选择所计划类型">
-                    <el-option
-                    v-for="(item,index) in periodTypeList"
-                    :key="index"
-                    :label="item.dictLabel"
-                    :title="item.dictLabel"
-                    :value="item.dictValue"
-                    />
-                </el-select>
-             </el-form-item>
-             <el-form-item label="有效期">
-                <el-date-picker
-                    v-model="dateRange"
-                    value-format="YYYY-MM-DD"
-                    type="daterange"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                    @change="changeDate"
-                ></el-date-picker>
-            </el-form-item>
-            <el-form-item label="巡检人员" prop="inspectUser">
-                <el-select v-model="form.inspectUser" placeholder="请选择巡检人员" @change="checkedUser">
-                    <el-option
-                        v-for="(item,index) in userNameList"
-                        :key="index"
-                        :label="item.nickName"
-                        :title="item.nickName"
-                        :value="item.id"
-                    />
-                </el-select>
-             </el-form-item>
-              <el-form-item label="巡检内容" prop="content">
-                  <el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
-              </el-form-item>
-            <el-form-item label="备注" prop="remark">
-                <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-             </el-form-item>
-              <el-form-item></el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-        </el-dialog>
-    </div>
-</template>
-<style scoped lang="scss">
-   .checkbox-item{
-       width: 98%;
-       .el-checkbox-group{
-           background: rgba(241, 247, 253, 0.73);
-           border-radius: 5px;
-           border: 1px solid #dcdfe6;
-           padding: 10px;
-       }
-   }
-</style>
\ No newline at end of file
diff --git a/src/views/facilityExamine/facilityExamineRecord/index.vue b/src/views/facilityExamine/facilityExamineRecord/index.vue
deleted file mode 100644
index ee7a8ba..0000000
--- a/src/views/facilityExamine/facilityExamineRecord/index.vue
+++ /dev/null
@@ -1,242 +0,0 @@
-<script setup name="Post">
-import {facilityExamineRecordApi} from "@/api/examine/record/index.js";
-import setPostParams from "@/utils/searchParams.js";
-import facilityApi from "@/api/facility/index.js";
-const {proxy} = getCurrentInstance();
-/**
- * 搜索
- */
-const queryParams = ref({
-    name:''
-})
-/** 搜索操作 */
-function handleQuery() {
-    getList({keywords:queryParams.value.name})
-}
-/** 表单重置 */
-function reset() {
-    form.value = {
-        facilityCode: '',
-        facilityName: '',
-        facilityUrl: '',
-    };
-    proxy.resetForm("postRef");
-}
-/**
- * 绑定相关
- */
-//绑定数据
-const facilityExamineData = ref({
-    facilityExamineId:'',
-
-})
-//已选
-/**
- * 重置
- */
-const resetQuery = () =>{
-    queryParams.value.name = ''
-    getList()
-}
-/** 列表 */
-const route = useRoute();
-const tableData = ref([]); //初始化列表
-const loading = ref(true); //加载状态
-const total = ref(0);
-const open = ref(false);
-const form = ref({});
-
-/** 表头 */
-let tableHeader = ref({
-    content: '巡检内容',
-    inspectUrl: '巡检图片',
-    resultTypeView: '执行结果',
-    inspectUser: '巡检人员',
-    createTimeView: '创建时间',
-})
-//分页
-const pageParam = ref({
-    total:0,
-    limit:10,
-    page:1,
-})
-/** 新增按钮操作 */
-async function handleAdd() {
-    reset();
-    open.value = true;
-    title.value = "新增";
-    console.log('form',form.value)
-}
-
-/** 修改按钮操作 */
-async function handleUpdate(row) {
-    reset();
-    form.value = Object.assign({},row)
-    open.value = true;
-    title.value = "修改用户分类";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
-        return facilityApi().remove(row.id);
-    }).then(() => {
-        getList();
-        proxy.$modal.msgSuccess("删除成功");
-    }).catch(() => {
-    });
-}
-
-/** 获取列表 */
-const getList = async (val) => {
-    loading.value = true;
-    let postParam = setPostParams(val)
-    let res = await facilityExamineRecordApi().search(postParam)
-    loading.value = false;
-    if (res.code == 200 && res.data.list.length > 0) {
-        tableData.value = res.data.list;
-        tableData.value.forEach((item) => {
-            if (item.resultType == 1) {
-                item.resultType = '正常'
-            } else if (item.resultType == 2) {
-                item.resultType = '异常'
-            }
-        })
-        pageParam.value.total = res.data.total;
-        pageParam.value.page = res.data.page;
-        pageParam.value.limit = res.data.limit;
-    }
-}
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.inspectUrl = data.toString();
-}
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["postRef"].validate(valid => {
-        if (valid) {
-            // form.value.contactPhone = Number(form.value.contactPhone)
-
-            if (form.value.id != undefined) {
-                facilityExamineRecordApi().modify(form.value).then(res => {
-                    proxy.$modal.msgSuccess("修改成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("修改失败");
-                });
-            } else {
-                facilityExamineRecordApi().create(form.value).then(res => {
-                    proxy.$modal.msgSuccess("新增成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("新增失败");
-                });
-                ;
-            }
-        }
-    });
-}
-/** 绑定按钮操作 */
-const handleband = async(row) =>{
-    facilityExamineData.value.facilityExamineId = row.id
-    await getParamList()
-    openParamForm.value = true
-}
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    openParamForm.value = false;
-    reset();
-}
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <!--搜索框-->
-        <el-form :model="queryParams" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="name">
-                <el-input
-                        v-model="queryParams.name"
-                        placeholder="请输入计划名称"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                    type="primary"
-                    plain
-                    icon="Plus"
-                    @click="handleAdd"
-                >新增
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() === 'inspectUrl'"> <img :src="scope.row.inspectUrl" alt="" style="width:50px;height: 50px"></div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                    <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-            v-show="pageParam.total > 0"
-            :total="pageParam.total"
-            v-model:page="pageParam.page"
-            v-model:limit="pageParam.limit"
-            @pagination="getList"
-        />
-        <!-- 添加表单弹窗 -->
-        <el-dialog :title="title" v-model="open"  center>
-            <el-form class="form-box" ref="postRef" :model="form" :rules="rules" label-width="90px">
-                <el-form-item label="巡检内容" prop="content">
-                    <el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
-                </el-form-item>
-                <el-form-item label="图片上传" prop="inspectUrl">
-                    <upload-icons @uploadData="uploadData" :imageList="form.inspectUrl" :limit="1"
-                                  :disabled='isDetail ? true : false'></upload-icons>
-                    <span style="display: block;">(请上传1张现场图片)</span>
-                </el-form-item>
-                <el-form-item label="备注" prop="remark">
-                    <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-                </el-form-item>
-                <el-form-item label="巡检状态" prop="resultType">
-                    <el-radio-group v-model="form.resultType">
-                        <el-radio-button value="1">正常</el-radio-button>
-                        <el-radio-button value="2">异常</el-radio-button>
-                    </el-radio-group>
-                </el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
\ No newline at end of file
diff --git a/src/views/facilityMaintain/facilityMaintainPlan/index.vue b/src/views/facilityMaintain/facilityMaintainPlan/index.vue
deleted file mode 100644
index 829f835..0000000
--- a/src/views/facilityMaintain/facilityMaintainPlan/index.vue
+++ /dev/null
@@ -1,349 +0,0 @@
- 
-<script setup name="Post">
-import { facilityMaintainPlanApi } from "@/api/maintain/plan/index.js";
-import {sysDictData} from "../../../api/system/dict.js";
-import facilityApi from "../../../api/facility/index.js";
-import  user from "@/api/system/user";
-const { proxy } = getCurrentInstance();
-/** 列表 */
-const tableData = ref([]); //初始化列表
-const open = ref(false);
-const loading = ref(true); //加载状态
-const total = ref(0);
-const title = ref("");
-/** 表头 */
-let  tableHeader = ref({
-    maintainCode:'计划编号',
-    maintainName: '计划名称',
-    maintainTypeView: '维护类型',
-    periodTypeView: '维护周期',
-    facilityName:'巡检设备列表',
-    inspectUserName: '巡检人员',
-    content:'巡检内容',
-    beginTime: '计划开始日期',
-    endTime: '计划结束日期',
-    createTimeView:'创建时间',
-      
-   })
-/** 获取列表 */
-const getList = async() => {
-   loading.value = true;
-   
-   let res = await facilityMaintainPlanApi().search(search.value)
-   if(res.code == 200) {
-         loading.value = false;
-         tableData.value = res.data.list;
-         tableData.value.forEach((item)=>{
-            item.stateName = item.state==1?'启动':'关闭'
-         })
-         
-         total.value = res.data.total;
-         search.page = res.data.page;
-         search.limit = res.data.limit;
-   }
-
-}
-const data = reactive({
-   //表单
-   form: {},
-
-   //查询数据
-   search: {
-      page: 1, //当前页
-      limit: 10, //每页条数
-      planName: undefined,
-      status: undefined
-   },
-   //表单验证
-   rules: {
-       maintainName: [{ required: true, message: "请输入计划名称", trigger: "blur" }],
-       maintainType: [{ required: true, message: "请选择维护类型", trigger: "blur" }],
-       periodType: [{ required: true, message: "请选择维护周期", trigger: "blur" }],
-       facilityIds: [{ required: true, message: "请选择维护设备", trigger: "blur" }],
-       inspectUser: [{ required: true, message: "请选择维护人员", trigger: "blur" }]
-   },
-});
-
-const { search, form, rules} = toRefs(data);
-/** 
- * 详情相关 
- * 
- * */
-let openForm2 = ref(false)
-let info = ref({})
-let detailTable = ref([])
-/** 搜索按钮操作 */
-function handleQuery() {
-   search.value.page = 1;
-   getList();
-}
-/** 重置按钮操作 */
-function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
-}
-/** 新增按钮操作 */
-async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "添加计划";
-}
-/** 修改按钮操作 */
-function handleUpdate(row) {
-    reset();
-    Object.keys(row).forEach(key =>{
-        if(form.value.hasOwnProperty(key)){
-            form.value[key] = row[key]
-        }
-    })
-    //数据类型及格式转换
-    dateRange.value.push(form.value.beginTime)
-    dateRange.value.push(form.value.endTime)
-    form.value.periodType = form.value.periodType.toString();
-    form.value.maintainType = form.value.periodType.toString();
-    form.value.facilityIds =  form.value.facilityIds.split(',');
-    form.value.id = row.id
-    open.value = true;
-    title.value = "修改计划";
-}
-
-/**
- * 下拉框数据
- */
-//获取枚举类型
-const maintainTypeList = ref()
-const periodTypeList = ref()
-const getType = async(val) =>{
-    let res = await sysDictData().searchType(val)
-    if (res.code == 200) {
-        return res.data
-    }
-}
-
-//巡检人员
-const userNameList = ref()
-const getAccount = async() =>{
-// 获取维修账号列表信息
-    let res = await user().search({limit: 10000, status: 1,page:1})
-    if (res.code == 200) {
-        userNameList.value = res.data.list
-    }
-}
-const checkedUser = (val) =>{
-    userNameList.value.forEach( item =>{
-        if(item.id == val){
-            form.value.inspectUserName = item.nickName
-        }
-    })
-}
-//日期
-const dateRange = ref([]);
-async function changeDate(e){
-    form.value.beginTime = e[0] + ' 00:00:00'
-    form.value.endTime = e[1] + ' 23:59:59'
-}
-//巡检设备
-const facilityList = ref()
-const getFacility = async() =>{
-    let res = await facilityApi().search({limit: 10000, status: 1,page:1})
-    if (res.code == 200) {
-        facilityList.value = res.data.list
-    }
-}
-/** 提交表单按钮 */
-function submitForm() {
-  
-   proxy.$refs["postRef"].validate(async valid => {
-      if (valid) {
-          form.value.facilityIds =  form.value.facilityIds.join()
-         if(!form.value.id){
-            let res = await facilityMaintainPlanApi().create(form.value)
-            if(res.code == 200) {
-               proxy.$modal.msgSuccess("添加成功");
-               open.value = false
-               getList()
-               reset()
-            }
-         }else{
-            let res = await facilityMaintainPlanApi().modify(form.value)
-            if(res.code == 200) {
-               proxy.$modal.msgSuccess("编辑成功");
-               open.value = false
-               getList()
-               reset()
-            }
-         }
-      }
-   });
-}
-/** 关闭弹窗 */
-function cancel() {
-   open.value = false;
-   openForm2.value = false;
-   reset();
-}
-/** 表单重置 */
-const reset = () => {
-    form.value = {
-        maintainName: '',
-        maintainType: '',
-        periodType: '',
-        facilityIds:[],
-        beginTime: '',
-        endTime: '',
-        inspectUser: '',
-        inspectUserName: '',
-        content: '',
-        remark: '',
-    }
-   proxy.resetForm("postRef");
-   open.value = false
-   openForm2.value = false;
-   getList();
-}
-onMounted(async () =>{
-
-    maintainTypeList.value = await getType('maintain_type');
-    periodTypeList.value = await getType('period_type');
-    await getAccount()
-    await getFacility()
-    await getList();
-})
-
-</script>
-<template>
-    <div class="app-container">
-        <!--搜索框-->
-        <el-form :model="search" ref="queryRef" :inline="true" >
-            <el-form-item label="" prop="name">
-               <el-input
-                  v-model="search.name"
-                  placeholder="请输入计划名称"
-                  clearable
-                  style="width: 200px"
-                  @keyup.enter="handleQuery"
-               />
-            </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-
-          </el-form-item>
-        </el-form>
-        <!--操作按钮列-->
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-        </el-row>
-
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          ></el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-<!--                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>-->
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          v-show="total > 0"
-          :total="total"
-          v-model:page="search.page"
-          v-model:limit="search.limit"
-          @pagination="getList"
-        />
-        <!-- 添加表单弹窗 -->
-        <el-dialog :title="title" v-model="open"  center>
-            <el-form class="form-box" ref="postRef" :model="form" :rules="rules" label-width="90px">
-                <el-form-item label="计划名称" prop="planName" >
-                    <el-input v-model="form.maintainName" placeholder="请输入设备名称" />
-                </el-form-item>
-                <el-form-item label="计划类型">
-                    <el-select v-model="form.maintainType" placeholder="请选择所计划类型">
-                        <el-option
-                            v-for="(item,index) in maintainTypeList"
-                            :key="index"
-                            :label="item.dictLabel"
-                            :title="item.dictLabel"
-                            :value="item.dictValue"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item class="checkbox-item"  label="巡检设备" prop="facilityIds">
-                    <el-checkbox-group v-model="form.facilityIds">
-                        <el-checkbox v-for="(item,index) in facilityList" :key="index" :label="item.facilityName" :value="item.id" size ="large" />
-                    </el-checkbox-group>
-                </el-form-item>
-                <el-form-item label="计划周期">
-                    <el-select v-model="form.periodType" placeholder="请选择所计划类型">
-                        <el-option
-                            v-for="(item,index) in periodTypeList"
-                            :key="index"
-                            :label="item.dictLabel"
-                            :title="item.dictLabel"
-                            :value="item.dictValue"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="有效期">
-                    <el-date-picker
-                        v-model="dateRange"
-                        value-format="YYYY-MM-DD"
-                        type="daterange"
-                        start-placeholder="开始日期"
-                        end-placeholder="结束日期"
-                        @change="changeDate"
-                    ></el-date-picker>
-                </el-form-item>
-                <el-form-item label="巡检人员" prop="inspectUser">
-                    <el-select v-model="form.inspectUser" placeholder="请选择巡检人员" @change="checkedUser">
-                        <el-option
-                            v-for="(item,index) in userNameList"
-                            :key="index"
-                            :label="item.nickName"
-                            :title="item.nickName"
-                            :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="巡检内容" prop="content">
-                    <el-input v-model="form.content" type="textarea" placeholder="请输入内容" />
-                </el-form-item>
-                <el-form-item label="备注" prop="remark">
-                    <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-                </el-form-item>
-                <el-form-item></el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-<style scoped lang="scss">
-   .checkbox-item{
-       width: 98%;
-       .el-checkbox-group{
-           background: rgba(241, 247, 253, 0.73);
-           border-radius: 5px;
-           border: 1px solid #dcdfe6;
-           padding: 10px;
-       }
-   }
-</style>
\ No newline at end of file
diff --git a/src/views/facilityMaintain/facilityMaintainRecord/index.vue b/src/views/facilityMaintain/facilityMaintainRecord/index.vue
deleted file mode 100644
index fa497d1..0000000
--- a/src/views/facilityMaintain/facilityMaintainRecord/index.vue
+++ /dev/null
@@ -1,119 +0,0 @@
-<script setup >
-import {facilityMaintainRecordApi} from "@/api/maintain/record/index.js";
-import setPostParams from "@/utils/searchParams.js";
-
-const {proxy} = getCurrentInstance();
-/**
- * 搜索
- */
-const queryParams = ref({
-    name:''
-})
-function handleQuery() {
-    getList({keywords:queryParams.value.name})
-}
-/**
- * 重置
- */
-const resetQuery = () =>{
-    queryParams.value.name = ''
-    getList()
-}
-/** 列表 */
-const tableData = ref([]); //初始化列表
-const loading = ref(false); //加载状态
-const total = ref(0);
-/** 表头 */
-let tableHeader = ref({
-    maintainCode:'计划编号',
-    maintainType: '维护类型',
-    periodType: '维护周期',
-    facilityName: '设备名称',
-    content: '维护内容',
-    url: '维护图片',
-    resultType: '执行结果',
-    inspectUserName: '巡检人员',
-    createTimeView: '创建时间',
-})
-//分页
-const pageParam = ref({
-    total:0,
-    limit:10,
-    page:1,
-})
-/** 获取列表 */
-const getList = async (val) => {
-    loading.value = true;
-    let postParam = setPostParams(val)
-    let res = await facilityMaintainRecordApi().search(postParam)
-    if (res.code == 200) {
-        loading.value = false;
-        tableData.value = res.data.list;
-        tableData.value.forEach((item) => {
-            if (item.resultType == 1) {
-                item.resultType = '待执行'
-            } else if (item.resultType == 2) {
-                item.resultType = '正常'
-            } else if (item.resultType == 3) {
-                item.resultType = '异常'
-            }
-        })
-        pageParam.value.total = res.data.total;
-        pageParam.value.page = res.data.page;
-        pageParam.value.limit = res.data.limit;
-    }
-}
-getList();
-
-</script>
-<template>
-    <div class="app-container">
-        <!--搜索框-->
-        <el-form :model="queryParams" ref="queryRef" :inline="true">
-
-            <el-form-item label="" prop="name">
-                <el-input
-                        v-model="queryParams.name"
-                        placeholder="请输入计划名称"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
-            <el-table-column type="selection" width="55" align="center"/>
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() === 'url'"> <img :src="scope.row.url" alt="" style="width:50px;height: 50px"></div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                    <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                v-show="pageParam.total > 0"
-                :total="pageParamtotal"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                @pagination="getList"
-        />
-    </div>
-</template>
-<style scoped lang="scss">
-</style>
\ No newline at end of file
diff --git a/src/views/financial/billRecord/index.vue b/src/views/financial/billRecord/index.vue
deleted file mode 100644
index 22f5a28..0000000
--- a/src/views/financial/billRecord/index.vue
+++ /dev/null
@@ -1,221 +0,0 @@
-
- <script setup >
- import  billRecord from "@/api/financial/billRecord";
- import  TieredCharging from "@/api/configuration/waterPrice";
- const { proxy } = getCurrentInstance();
- import  archivesApi from "@/api/archivesApi/index";
- import setPostParams from "@/utils/searchParams.js";
- 
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-          billNo: "账单编号",
-          waterMeterSn: "所属水表",
-          userName: "所属用户",
-          waterAmount: "用水量",
-          billMoney: "账单总金额",
-          billStateView: "账单状态",
-            createTimeView: "创建时间:",
-   })
-
- /** 获取列表 */
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await billRecord().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-          tableData.value.forEach((item,index) =>{
-              if(item.payTime === 0){
-                  delete item.payTime
-              }
-              if(item.billState === 100){
-                item.billStateView = '待缴费'
-              }else if(item.billState === 102){
-                  item.billStateView = '部分缴费'
-              }else{
-                  item.billStateView = '已缴费'
-              }
-          })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- /**
-  *
-  * 详情
-  */
- let  detailName = ref({
-     billNo: "账单编号:",
-     waterMeterSn: "所属水表:",
-     userName: "所属用户:",
-     startDate: "起始日期:",
-     endDate: "截止日期:",
-     lastAmount: "上月抄表:",
-     currentAmount: "本月抄表:",
-     waterAmount: "用水量:",
-     tieredChargingIdName: "收费标准:",
-     waterMoney: "水费金额:",
-     otherMoney: "其他费用:",
-     overdueMoney: "滞纳金:",
-     billMoney: "总金额:",
-     needPayTime:'应付时间:',
-     totalMoney: "实际应缴:",
-     paidMoney: "实际缴费:",
-     billStateView: "账单状态:",
-     payTime: "缴费时间:",
-     createTimeView: "创建时间:",
- })
- const open = ref(false)
- const detailList = ref([])
- const toDetail = async (row) =>{
-     //水价id转name
-     await TieredCharging().search({limit:10000,page:1}).then((res) =>{
-         res.data.list.forEach((item) =>{
-           if(item.id === row.tieredChargingId){
-               row.tieredChargingIdName = item.name
-           }
-         })
-     })
-     //用户id转username
-     await archivesApi().search({limit:10000,page:1}).then((res) =>{
-         res.data.list.forEach((item) =>{
-             if(item.id === row.userId){
-                 row.userName = item.userName
-             }
-         })
-     })
-     let list = []
-     Object.keys(detailName.value).forEach(key1=>{
-         Object.keys(row).forEach((key2)=>{
-             if(key1 === key2){
-                 list.push({name:detailName.value[key1],value:row[key2]})
-             }
-         })
-     })
-     detailList.value = list
-     open.value = true
- }
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed" fixed="right">
-              <template #default="scope">
-                  <el-button link type="primary" icon="Document" @click="toDetail(scope.row)">详情</el-button>
-              </template>
-          </el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-       <el-dialog v-model="open" title="账单详情" center>
-           <div class="detail-content">
-               <div v-for="(item,index) of detailList" :key="index">
-                   <span>{{item.name}}</span>
-                   <span>{{item.value}}</span>
-               </div>
-                <!-- flex布局调整-->
-               <div v-if="detailList.length % 2 !== 0"></div>
-           </div>
-       </el-dialog>
-   </div>
-</template>
- <style lang="scss" scoped>
- :deep(.el-dialog){
-     .el-dialog__body{
-         overflow-y: auto;
-         max-height: 80vh;
-     }
-     .detail-content{
-         background: #fff;
-         width: 98%;
-         display: flex;
-         flex-wrap: wrap;
-         justify-content:space-evenly;
-         padding:20px 50px;
-         align-items: center;
-         box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.05);
-         border-radius: 20px;
-         margin: 10px auto;
-         div{
-             width:48%;
-             margin-bottom: 20px;
-             padding-bottom: 10px;
-             span:first-child{
-                 display: inline-block;
-                 width: 79px;
-                 font-size: 18px;
-                 color: rgba(60, 59, 59, 0.93);
-                 margin-right:2%;
-                 text-align-last:justify;
-             }
-             span:last-child{
-                 display: inline-block;
-                 width:62%;
-                 font-size: 18px;
-                 color: #5a5a5a;
-                 font-weight:600;
-                 border-bottom: 1px solid rgba(168, 168, 168, 0.44);
-             }
-         }
-     }
- }
-
- </style>
- 
\ No newline at end of file
diff --git a/src/views/financial/invoice/index.vue b/src/views/financial/invoice/index.vue
deleted file mode 100644
index 3a3234e..0000000
--- a/src/views/financial/invoice/index.vue
+++ /dev/null
@@ -1,323 +0,0 @@
-
- <script setup >
- import  invoice from "@/api/financial/invoice";
- import  { sysDictData }  from "@/api/system/dict";
- import  user  from "@/api/system/user";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-         nickName: "用户", //userId转
-         typeName: "抬头类型", //type转
-         money: "开票金额",
-         content: "开票信息",
-         name: "抬头名称",
-         taxNum: "税号",
-         email: "邮箱",
-         stateName: "开票状态", //state转
-         comment: "备注",
-         createTimeView: "创建时间",
-         updateTimeView: "更新时间"
-   })
-
- /** 获取列表 */
- 
-const accountList = ref([])
-const invoiceStateList = ref()
-const invoiceTypeList = ref()
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await invoice().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        //id转name
-        tableData.value.forEach((item) =>{
-            if(item.type == 1){
-               item.typeName = '企业单位'
-            }else{
-               item.typeName = '个人/非企业'
-            }
-        })
-        tableData.value.forEach((item) =>{
-            accountList.value.forEach((user) =>{
-               if(item.userId == user.id){
-                  item.nickName = user.nickName
-               }
-            })
-            invoiceStateList.value.forEach((stateItem) =>{
-               if(item.state == stateItem.dictValue){
-                  item.stateName = stateItem.dictLabel
-               }
-            })
-        })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) { 
-      form.value[key] = row[key]; 
-   } 
-   });
-   form.value.type = form.value.type.toString()
-   // form.value.state = form.value.state.toString()
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-   userId: [{ required: true, message: "请选择用户", trigger: "blur" }],
-   type: [{ required: true, message: "请选择发票类型", trigger: "blur" }],
-   name: [{ required: true, message: "请输入发票抬头名称", trigger: "blur" }],
-   email: [{ required: true, message: "请输入邮箱", trigger: "blur" }]
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-
- //获取发票类型 
- const getType = async() =>{
-   await sysDictData().searchType('invoice_type').then((res) =>{
-      invoiceTypeList.value = res.data
-   })
- }
-//获取发票状态
-const getInvoiceState = async() =>{
-await sysDictData().searchType('invoice_state').then((res) =>{
-   invoiceStateList.value = res.data
-})
-}
- //获取账号列表
- const getAccount = async() =>{
-   await user().search({limit:10000,page:1}).then((res) =>{
-      accountList.value = res.data.list
-   })
- }
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id) {
-         if(form.value.type == 2){
-            form.value.taxNum = ''
-         }
-         invoice().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       }else {
-         invoice().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-      userId: "",
-      type: "",
-      money: undefined,
-      content: "",
-      state: undefined,
-      name: "",
-      taxNum: "",
-      email: "",
-      comment: "",
-      sort: 1,
-   };
-   proxy.resetForm("formRef");
- }
-getType();
-getInvoiceState();
-getAccount();
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-
-      <el-row :gutter="10" class="mb8">
-         <el-col :span="1.5">
-            <el-button
-               type="primary"
-               plain
-               icon="Plus"
-               @click="handleAdd"
-            >新增</el-button>
-         </el-col>
-      </el-row>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-         <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-            <template #default="scope">
-               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-            </template>
-         </el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-      <!-- 添加或修改对话框 -->
-      <el-dialog :title="title" v-model="open" append-to-body center>
-           <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-              <el-form-item label="用户"  prop="userId">
-                 <el-select v-model="form.userId"  placeholder="请选择" >
-                       <el-option
-                       v-for="item in accountList"
-                       :key="item.id"
-                       :label="item.nickName"
-                       :title="item.nickName"
-                       :value="item.id"
-                       />
-                 </el-select>
-              </el-form-item>
-              <el-form-item label="抬头类型"  prop="type">
-                 <el-select v-model="form.type"  placeholder="请选择" >
-                       <el-option
-                       v-for="item in invoiceTypeList"
-                       :key="item.id"
-                       :label="item.dictLabel"
-                       :title="item.dictLabel"
-                       :value="item.dictValue"
-                       />
-                 </el-select>
-              </el-form-item>
-              <el-form-item label="抬头名称"  prop="name">
-                 <el-input v-model="form.name" ></el-input>
-              </el-form-item>
-              <el-form-item label="税号"  prop="taxNum" v-if="form.type == 1">
-                 <el-input v-model="form.taxNum" ></el-input>
-              </el-form-item>
-              <el-form-item label="邮箱"  prop="email">
-                 <el-input v-model="form.email" ></el-input>
-              </el-form-item>
-               <el-form-item label="开票金额"  prop="money">
-                  <el-input v-model="form.money" ></el-input>
-               </el-form-item>
-               <el-form-item label="开票信息"  prop="content">
-                  <el-input v-model="form.content" ></el-input>
-               </el-form-item>
-               <el-form-item label="开票状态"  prop="state">
-                  <el-select v-model="form.state" placeholder="请选择">
-                        <el-option
-                        v-for="item in invoiceStateList"
-                        :key="item.dictValue"
-                        :label="item.dictLabel"
-                        :value="item.dictValue"
-                        />
-                  </el-select>
-               </el-form-item>
-              <el-form-item label="备注"  prop="comment">
-                 <el-input v-model="form.comment" ></el-input>
-              </el-form-item>
-              <el-form-item label="显示排序" prop="sort">
-                 <el-input-number v-model="form.sort" controls-position="right" :min="1" />
-              </el-form-item>
-               <el-form-item></el-form-item>
-           </el-form>
-         <template #footer>
-            <div class="dialog-footer">
-               <el-button type="primary" @click="submitForm">确 定</el-button>
-               <el-button @click="cancel">取 消</el-button>
-            </div>
-         </template>
-      </el-dialog>
-   </div>
-</template>
-
- 
\ No newline at end of file
diff --git a/src/views/financial/payRecord/index.vue b/src/views/financial/payRecord/index.vue
deleted file mode 100644
index 22a5790..0000000
--- a/src/views/financial/payRecord/index.vue
+++ /dev/null
@@ -1,95 +0,0 @@
-
- <script setup >
- import  payRecord from "@/api/financial/payRecord";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        userName: "用户名称",
-        companyName:'所属公司',
-        paymentType: "缴费类型",
-        paymentMethod: "支付方式",
-        paymentAmount: "缴费金额",
-        createTimeView: '缴费时间',
-   })
-
- /** 获取列表 */
- 
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await payRecord().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-   </div>
-</template>
- 
\ No newline at end of file
diff --git a/src/views/financial/payable/index.vue b/src/views/financial/payable/index.vue
deleted file mode 100644
index 285f57a..0000000
--- a/src/views/financial/payable/index.vue
+++ /dev/null
@@ -1,102 +0,0 @@
-
- <script setup >
- import  payable from "@/api/financial/payable";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-         code: "单号",
-         feeName: "费用名称",
-         feeDetails: "费用详情",
-         detailsMoney: "费用金额",
-         dedMoney: "扣款金额",
-         addMoney: "补充金额",
-         payTotal: "应付合计",
-         settleType: "结算方式",
-         settleDate: "结算时间",
-         settleState: "结算状态",
-         comment: "备注",
-         createTimeView: "创建时间",
-         updateTimeView: "更新时间"
-   })
-
- /** 获取列表 */
- 
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await payable().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-   </div>
-</template>
- 
\ No newline at end of file
diff --git a/src/views/financial/recharge/index.vue b/src/views/financial/recharge/index.vue
deleted file mode 100644
index c4c93f1..0000000
--- a/src/views/financial/recharge/index.vue
+++ /dev/null
@@ -1,248 +0,0 @@
-
-<script setup >
-import  recharge from "@/api/financial/recharge";
-import  archivesApi  from "@/api/archivesApi";
-import  { sysDictData}  from "@/api/system/dict";
-import setPostParams from "@/utils/searchParams.js";
-const { proxy } = getCurrentInstance();
-
-/**
-* 搜索相关
-*/
-/** 搜索按钮操作 */
-function handleQuery() {
-  getList({keywords:queryParams.value.name})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
-
-/**
- *  Table表格权限数据列表相关
- */
-const pageParam = ref({
-   total:0,
-   limit:0,
-   page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-      userName: "用户姓名",
-      userCode:"水表编号",
-      userPhone: "用户电话",
-      rechargeOrder: "充值订单号",
-      rechargeType: "充值类型",
-      paymentMethod: "支付方式",
-      rechargeAmount: "充值金额",
-      rechargeStatusView: "充值状态",
-      createTimeView:"创建日期",
-
-  })
-
-/** 获取列表 */
-
-const loading = ref(false);
-async function getList(val) {
-     loading.value = true;
-
-    let postParam = setPostParams(val)
-     await recharge().search(postParam).then((res) =>{
-       tableData.value = res.data.list
-       pageParam.value.total = res.data.total
-       pageParam.value.limit = res.data.limit
-       pageParam.value.page = res.data.page
-   })
-   loading.value = false;
-}
-
-/** 新增按钮操作 */
-async function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "充值";
-}
-
-/**
- *  新增/修改弹窗Form表单相关
- */
-const open = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-   name: undefined,
-},
-rules: {
-    userCode: [{required: true, message: '请选择用户', trigger: 'blur'}],
-    rechargeAmount: [
-      {required: true, message: '请输入充值金额', trigger: 'blur'},
-      { pattern: "^(?!10000(?:\\.0{1,2})?$)(?:\\d{1,4}(?:\\.\\d{1,2})?|0(?:\\.\\d{1,2})?)$", message: '请输入0到9999.99之间的正整数或小数(最多保留两位小数)', trigger: 'blur' },
-      ],
-  },
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//获取支付方式
-const paymentMethodList = ref()
-const getMethod = async() =>{
-  await sysDictData().searchType('pay_method').then((res) =>{
-    paymentMethodList.value = res.data
-  })
-}
-//获取账号列表
-const userNameList = ref()
-const getUser = async() =>{
-  await archivesApi().search({limit:1500,page:1}).then((res) =>{
-    userNameList.value = res.data.list
-  })
-}
- //选择用户,获取用户名及余额
- const changeUser = async(val) => {
-    userNameList.value.forEach(item => {
-      if(val == item.userCode){
-          form.value.userName = item.userName
-          form.value.walletBalance = item.walletBalance
-      }
-    })
-    }
-
-/** 提交按钮 */
-function submitForm() {
-  proxy.$refs["formRef"].validate(valid => {
-    if (valid) {
-        recharge().pay(form.value).then(res => {
-          proxy.$modal.msgSuccess("充值成功");
-          open.value = false;
-          getList();
-        }).catch(() =>{
-           open.value = false;
-           proxy.$modal.msgError("充值失败,请联系管理员");
-        });
-      }
-  });
-}
-
-/** 取消按钮 */
-function cancel() {
-  open.value = false;
-  reset();
-}
-
-/** 表单重置 */
-function reset() {
-  form.value = {
-    walletBalance:'',
-    userName: '',
-    userCode: '',
-    rechargeType: '柜台业务',
-    paymentMethod: '1',
-    rechargeAmount: '', //收取金额
-  };
-  proxy.resetForm("formRef");
-}
-getUser();
-getMethod();
-getList();
-</script>
-<template>
-  <div class="app-container">
-     <el-form :model="queryParams" ref="queryRef" :inline="true">
-        <el-form-item prop="name">
-           <el-input
-              v-model="queryParams.name"
-              placeholder="请输入水表编号或电话"
-              clearable
-              style="width: 200px"
-              @keyup.enter="handleQuery"
-           />
-        </el-form-item>
-        <el-form-item>
-           <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-           <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-        </el-form-item>
-     </el-form>
-
-     <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
-           <el-button
-              type="primary"
-              plain
-              icon="Plus"
-              @click="handleAdd"
-           >充值</el-button>
-        </el-col>
-     </el-row>
-     <!--表格及分页-->
-     <el-table v-loading="loading" :data="tableData">
-        <el-table-column
-          v-for="(item, key, index) of tableHeader"
-          :prop="key.toString()"
-          :label="item"
-          :key="index"
-          align="center"
-        ></el-table-column>
-      </el-table>
-      <pagination
-        :total="pageParam.total"
-        v-model:page="pageParam.page"
-        v-model:limit="pageParam.limit"
-        :page-sizes="[10,20,30]"
-        @pagination="getList"
-      />
-     <!-- 添加或修改对话框 -->
-     <el-dialog :title="title" v-model="open" append-to-body center>
-        <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-          <el-form-item label="户号"  prop="userCode">
-              <el-select v-model="form.userCode" filterable clearable placeholder="请选择用户" @change="changeUser">
-                  <el-option
-                  v-for="item in userNameList"
-                  :key="item.id"
-                  :label="item.userCode"
-                  :title="item.userCode"
-                  :value="item.userCode">
-                  </el-option>
-              </el-select>
-          </el-form-item>
-          <el-form-item label="用户名称">{{ form.userName }}</el-form-item>
-          <div class="hr"></div>
-          <el-form-item label="余额" >
-              <el-input v-model="form.walletBalance" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="充值类型" >
-              <el-input v-model="form.rechargeType" disabled></el-input>
-          </el-form-item>
-          <el-form-item label="支付方式"  prop="paymentMethod">
-              <el-select v-model="form.paymentMethod" disabled  placeholder="请选择">
-                  <el-option
-                  v-for="item in paymentMethodList"
-                  :key="item.dictValue"
-                  :label="item.dictLabel"
-                  :title="item.dictLabel"
-                  :value="item.dictValue">
-                  </el-option>
-              </el-select>
-          </el-form-item>
-          <el-form-item label="充值金额"  prop="rechargeAmount">
-              <el-input v-model="form.rechargeAmount"  ></el-input>
-          </el-form-item>
-      </el-form>
-        <template #footer>
-           <div class="dialog-footer">
-              <el-button type="primary" @click="submitForm">确 定</el-button>
-              <el-button @click="cancel">取 消</el-button>
-           </div>
-        </template>
-     </el-dialog>
-  </div>
-</template>
-<style lang="scss">
-    .hr {
-        width: 90%;
-        border-bottom: 1px solid rgb(218, 218, 218);
-        margin: 0 auto 30px;
-    }
-</style>
diff --git a/src/views/financial/tradeRecord/index.vue b/src/views/financial/tradeRecord/index.vue
deleted file mode 100644
index aebeaa4..0000000
--- a/src/views/financial/tradeRecord/index.vue
+++ /dev/null
@@ -1,132 +0,0 @@
-
- <script setup >
- import  payable from "@/api/financial/payable";
- import setPostParams from "@/utils/searchParams.js";
- import tradeRecord from "../../../api/financial/tradeRecord/index.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-    createTime: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-     let dateValue=queryParams.value.createTime[0] + ' 00:00:00'+' ~ '+ queryParams.value.createTime[1] + ' 23:59:59'
-   getList({keywords:queryParams.value.name,createTimeRange:dateValue})
- }
- /** 导出按钮操作 */
- function exportQuery() {
-     let createTimeRange=queryParams.value.createTime[0] + ' 00:00:00'+' ~ '+ queryParams.value.createTime[1] + ' 23:59:59'
-      tradeRecord().exportData(createTimeRange)
- }
- const queryRef=ref();
- //日期
- const dateRange = ref([]);
- // async function changeDate(e){
- //     queryParams.value.createTimeRange=e[0] + ' 00:00:00'+'~'+ e[1] + ' 23:59:59'
- // }
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-    businessNo: "交易流水号",
-    thirdTradeNo:"微信流水号",
-    businessComment:"业务描述",
-    tradeAmount: "交易金额",
-    paidAmount: "实际支付金额",
-    channelName: "支付渠道",
-    submitTimeView: "交易发起时间",
-    paidTimeView: "交易成功时间",
-    payState: "支付状态",
-    createTimeView: "创建时间",
-   })
-
- /** 获取列表 */
- 
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await tradeRecord().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-          tableData.value.forEach((item,index) =>{
-              if(item.payState === 20){
-                  item.payState = '支付中'
-              }else if(item.payState === 200){
-                  item.payState = '已支付'
-              }else if(item.payState ===10){
-                  item.payState = '待支付'
-              }
-          })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-          <el-form-item label="开始结束时间">
-              <el-date-picker
-                      v-model="queryParams.createTime"
-                      value-format="YYYY-MM-DD"
-                      type="daterange"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                      @change="changeDate"
-              ></el-date-picker>
-          </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="exportQuery">导出</el-button>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-   </div>
-</template>
- 
\ No newline at end of file
diff --git a/src/views/financial/userBankAccount/index.vue b/src/views/financial/userBankAccount/index.vue
deleted file mode 100644
index ac755f3..0000000
--- a/src/views/financial/userBankAccount/index.vue
+++ /dev/null
@@ -1,249 +0,0 @@
-
- <script setup >
- import  userBankAccount from "@/api/financial/userBankAccount";
- import  user  from "@/api/system/user";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-   bankName: "银行名称",
-   bankAccount: "银行账户",
-   address: "开户地址",
-   userName: "用户姓名",
-   remark: "备注",
-   createTimeView: "创建日期",
-   createUserName: "创建人"
-   })
-
- /** 获取列表 */
- 
-const accountList = ref()
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await userBankAccount().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) { 
-      form.value[key] = row[key]; 
-   } 
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-      userId: [{required: true, message: '请选择用户', trigger: 'blur'}],
-      bankName: [{required: true, message: '请输入银行名称', trigger: 'blur'}],
-      bankAccount: [{required: true, message: '请输入银行卡账户', trigger: 'blur'}],
-      address: [{required: true, message: '请选择开户地址', trigger: 'blur'}],
-   },
-});
-const { queryParams, form, rules } = toRefs(data);
-
- //获取账号列表
- const getAccount = async() =>{
-   await user().search({limit:10000,page:1}).then((res) =>{
-      accountList.value = res.data.list
-   })
- }
- const changeUser = (userId)=>{
-   accountList.value.forEach((item) =>{ 
-      if(item.id == userId){
-         form.value.userName = item.userName
-      }
-   })
- }
-
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id) {
-         userBankAccount().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       }else {
-         userBankAccount().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-      userId:"",
-      userName:"",
-      bankName: "",
-      bankAccount: "",
-      address: "",
-      remark: "",
-   };
-   proxy.resetForm("formRef");
- }
-getAccount();
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-
-      <el-row :gutter="10" class="mb8">
-         <el-col :span="1.5">
-            <el-button
-               type="primary"
-               plain
-               icon="Plus"
-               @click="handleAdd"
-            >新增</el-button>
-         </el-col>
-      </el-row>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-         <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-            <template #default="scope">
-               <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-            </template>
-         </el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-      <!-- 添加或修改对话框 -->
-      <el-dialog :title="title" v-model="open" append-to-body center>
-         <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item label="银行名称"  prop="bankName">
-               <el-input v-model="form.bankName"></el-input>
-            </el-form-item>
-            <el-form-item label="银行账户"  prop="bankAccount">
-               <el-input v-model="form.bankAccount"></el-input>
-            </el-form-item>
-            <el-form-item label="开户地址"  prop="address">
-               <el-input v-model="form.address"></el-input>
-            </el-form-item>
-            <el-form-item label="用户名称"  prop="userName">
-               <el-select v-model="form.userId" @change="changeUser" filterable placeholder="请输入或选择用户">
-                     <el-option
-                        v-for="item in accountList"
-                        :key="item.id"
-                        :label="item.nickName"
-                        :title="item.nickName"
-                        :value="item.id"
-
-                     />
-               </el-select>
-            </el-form-item>
-            <el-form-item label="备注"  prop="remark">
-               <el-input v-model="form.remark"  ></el-input>
-            </el-form-item>
-             <el-form-item></el-form-item>
-         </el-form>
-         <template #footer>
-            <div class="dialog-footer">
-               <el-button type="primary" @click="submitForm">确 定</el-button>
-               <el-button @click="cancel">取 消</el-button>
-            </div>
-         </template>
-      </el-dialog>
-   </div>
-</template>
- 
\ No newline at end of file
diff --git a/src/views/financial/userCapitalChange/index.vue b/src/views/financial/userCapitalChange/index.vue
deleted file mode 100644
index 1e51c2e..0000000
--- a/src/views/financial/userCapitalChange/index.vue
+++ /dev/null
@@ -1,94 +0,0 @@
-
- <script setup >
- import  userCapitalChange from "@/api/financial/userCapitalChange";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        businessCode: '订单编号',
-        userName: '所属用户',
-        businessName: '变动业务名称',
-        beforeMoney: '变动前余额',
-        changeMoney: '变动金额',
-        afterMoney: '变动后余额',
-        description: '描述',
-        createTimeView: '创建时间',
-   })
- /** 获取列表 */
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
-     let postParam = setPostParams(val)
-      await userCapitalChange().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入内容"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-   </div>
-</template>
- 
\ No newline at end of file
diff --git a/src/views/financial/waterMeterTask/index.vue b/src/views/financial/waterMeterTask/index.vue
deleted file mode 100644
index 57dec3f..0000000
--- a/src/views/financial/waterMeterTask/index.vue
+++ /dev/null
@@ -1,167 +0,0 @@
-
- <script setup >
- import  billRecord from "@/api/financial/billRecord";
- import  TieredCharging from "@/api/configuration/waterPrice";
- const { proxy } = getCurrentInstance();
- import  archivesApi from "@/api/archivesApi/index";
- import setPostParams from "@/utils/searchParams.js";
- import waterMeterTask from "@/api/financial/waterMeterTask/index.js";
- 
-/**
- * 搜索相关
- */
- const queryParams =ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-          waterMeterSn: "水表编号",
-          userName: "所属用户",
-          taskType: "任务类型",
-          rechargeAmount: "账单总金额",
-          isExecute: "执行状态",
-          createTimeView: "创建时间:",
-   })
- /** 获取列表 */
-const loading = ref(false);
- async function getList(val) {
-      loading.value = true;
-
-      const params = setPostParams({...val},["limit","page","taskType"]);
-      params.taskType=1;
-      await waterMeterTask().search(params).then((res) =>{
-        tableData.value = res.data.list
-          tableData.value.forEach((item,index) =>{
-              if(item.isExecute === 0){
-                item.isExecute = '充值中'
-              }else if(item.isExecute === 1){
-                  item.isExecute = '已到账'
-              }else if(item.isExecute === 2){
-                  item.isExecute = '执行失败'
-              }
-              if(item.taskType === 1){
-                  item.taskType = '充值'
-              }else if(item.taskType === 2){
-                  item.taskType = '开关阀'
-              }else if(item.taskType === 3){
-                  item.taskType = '设置阶梯价'
-              }
-          })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- const open = ref(false)
- const detailList = ref([])
- getList();
- </script>
- <template>
-   <div class="app-container">
-      <el-form :model="queryParams" ref="queryRef" :inline="true">
-         <el-form-item prop="name">
-            <el-input
-               v-model="queryParams.name"
-               placeholder="请输入水表编号"
-               clearable
-               style="width: 200px"
-               @keyup.enter="handleQuery"
-            />
-         </el-form-item>
-         <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-         </el-form-item>
-      </el-form>
-      <!--表格及分页-->
-      <el-table v-loading="loading" :data="tableData">
-         <el-table-column
-           v-for="(item, key, index) of tableHeader"
-           :prop="key.toString()"
-           :label="item"
-           :key="index"
-           align="center"
-         ></el-table-column>
-       </el-table>
-       <pagination
-         :total="pageParam.total"
-         v-model:page="pageParam.page"
-         v-model:limit="pageParam.limit"
-         :page-sizes="[10,20,30]"
-         @pagination="getList"
-       />
-       <el-dialog v-model="open" title="账单详情" center>
-           <div class="detail-content">
-               <div v-for="(item,index) of detailList" :key="index">
-                   <span>{{item.name}}</span>
-                   <span>{{item.value}}</span>
-               </div>
-                <!-- flex布局调整-->
-               <div v-if="detailList.length % 2 !== 0"></div>
-           </div>
-       </el-dialog>
-   </div>
-</template>
- <style lang="scss" scoped>
- :deep(.el-dialog){
-     .el-dialog__body{
-         overflow-y: auto;
-         max-height: 80vh;
-     }
-     .detail-content{
-         background: #fff;
-         width: 98%;
-         display: flex;
-         flex-wrap: wrap;
-         justify-content:space-evenly;
-         padding:20px 50px;
-         align-items: center;
-         box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.05);
-         border-radius: 20px;
-         margin: 10px auto;
-         div{
-             width:48%;
-             margin-bottom: 20px;
-             padding-bottom: 10px;
-             span:first-child{
-                 display: inline-block;
-                 width: 79px;
-                 font-size: 18px;
-                 color: rgba(60, 59, 59, 0.93);
-                 margin-right:2%;
-                 text-align-last:justify;
-             }
-             span:last-child{
-                 display: inline-block;
-                 width:62%;
-                 font-size: 18px;
-                 color: #5a5a5a;
-                 font-weight:600;
-                 border-bottom: 1px solid rgba(168, 168, 168, 0.44);
-             }
-         }
-     }
- }
-
- </style>
- 
\ No newline at end of file
diff --git a/src/views/index.vue b/src/views/index.vue
deleted file mode 100644
index fddcef1..0000000
--- a/src/views/index.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-06 14:47:41
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-12 10:41:43
- * @FilePath: \water-qinghe-web\src\views\index.vue
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--->
-<template>
-  <div>
-首页
-  </div>
-</template>
- 
-<script setup>
- 
-</script>
- 
-<style lang="scss" scoped>
- 
-</style>
\ No newline at end of file
diff --git a/src/views/linkage/valveLlinkage/index.vue b/src/views/linkage/valveLlinkage/index.vue
deleted file mode 100644
index 4221136..0000000
--- a/src/views/linkage/valveLlinkage/index.vue
+++ /dev/null
@@ -1,21 +0,0 @@
-<!--
- * @Author: Liuyi candymxq888@outlook.com
- * @Date: 2024-08-06 14:47:41
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 14:45:36
- * @FilePath: \water-qinghe-web\src\views\index.vue
- * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--->
-<template>
-  <div>
-
-  </div>
-</template>
- 
-<script setup>
- 
-</script>
- 
-<style lang="scss" scoped>
- 
-</style>
\ No newline at end of file
diff --git a/src/views/login.vue b/src/views/login.vue
index b2d1e8a..581be80 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -64,7 +64,7 @@
                     </el-button>
                 </el-form-item>
             </el-form>
-            <img class="left-img" src="../assets/images/login/login_icon.png"/>
+            <img class="left-img" src="../assets/images/login_icon.png"/>
         </div>
         <!--  底部  -->
         <div class="footer">
@@ -242,7 +242,7 @@
 
 function getCookie() {
     const userName = Cookies.get("userName");
-    const password = Cookies.get("password");
+    const password = decrypt(Cookies.get("password"));
     const rememberMe = Cookies.get("rememberMe");
     loginForm.userName = userName === undefined ? loginForm.userName : userName;
     loginForm.password = password === undefined ? loginForm.password : password;
diff --git a/src/views/meterReading/manualMeterReading/index.vue b/src/views/meterReading/manualMeterReading/index.vue
deleted file mode 100644
index 1c96524..0000000
--- a/src/views/meterReading/manualMeterReading/index.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-
- <script setup >
- import  meterReadingRecordApi from "@/api/meterReadingApi/meterReadingRecord";
- // import  user  from "@/api/system/user";
- import  useWaterMeterApi  from "@/api/waterMeterApi/useWaterMeter";
- const { proxy } = getCurrentInstance();
- 
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const data = reactive({
-form:{},
-rules: {
-    useWaterMeterId: [{required: true, message: '请选择水表', trigger: 'blur'}],
-    currentAmount: [{required: true, message: '请输入抄表读数', trigger: 'blur'}],
-   },
-});
-const {  form, rules } = toRefs(data);
-
- //获取账号列表
- const meterList = ref()
- const getMeterList = async() =>{
-   await useWaterMeterApi().search({limit:10000,page:1}).then((res) =>{
-       meterList.value = res.data.list
-   })
- }
- getMeterList()
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-         meterReadingRecordApi().manualMeterReading(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-             reset()
-         }).catch(() =>{
-            proxy.$modal.msgError("新增失败");
-             reset()
-         });
-     }
-   });
- }
- /** 取消按钮 */
- function cancel() {
-   reset();
- }
- /** 表单重置 */
- function reset() {
-   form.value = {
-       useWaterMeterId:"",
-       currentAmount:"",
-       description: "",
-   };
-   proxy.resetForm("formRef");
- }
- </script>
- <template>
-   <div class="app-container">
-      <!-- 添加或修改对话框 -->
-       <div class="form-container">
-           <div class="title">手动抄表:</div>
-           <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-               <el-form-item label="所属水表"  prop="useWaterMeterId">
-                   <el-select v-model="form.useWaterMeterId"  filterable placeholder="请输入或选择用户">
-                       <el-option
-                           v-for="item in meterList"
-                           :key="item.id"
-                           :label="item.sn"
-                           :title="item.sn"
-                           :value="item.id"
-                       />
-                   </el-select>
-               </el-form-item>
-               <el-form-item label="本月抄表止数"  prop="currentAmount">
-                   <el-input v-model="form.currentAmount"></el-input>
-               </el-form-item>
-               <el-form-item label="描述"  prop="description">
-                   <el-input v-model="form.description"></el-input>
-               </el-form-item>
-               <el-form-item></el-form-item>
-           </el-form>
-           <div class="footer">
-               <el-button type="primary" size="large" @click="submitForm">确 定</el-button>
-               <el-button @click="cancel" size="large">取 消</el-button>
-           </div>
-       </div>
-   </div>
-</template>
- <style lang="scss" scoped>
- .app-container{
-     width: 100%;
-     height: 100%;
-     display: flex;
-     justify-content: center;
-     align-items: center;
-     .form-container{
-         width: 70%;
-         height: 800px;
-         background: rgba(28, 132, 198, 0.07);
-         padding: 0 5%;
-         border-radius: 10px;
-         border-top: 2px solid rgb(11, 136, 216);
-         .title{
-             width: 100%;
-             display: flex;
-             justify-content:flex-start;
-             align-items: center;
-             height: 100px;
-             font-weight: bold;
-             font-size: 20px;
-             color: #3f4040;
-         }
-         .el-form{
-             width: 100%;
-             margin-top: 40px;
-             .el-form-item{
-                 height: 40px;
-             }
-         }
-         .footer{
-             display: flex;
-             align-items: center;
-             justify-content: center;
-             margin: 200px 0;
-         }
-     }
- }
- </style>
- 
\ No newline at end of file
diff --git a/src/views/meterReading/meterReadingMonthRecord/index.vue b/src/views/meterReading/meterReadingMonthRecord/index.vue
deleted file mode 100644
index 5003e06..0000000
--- a/src/views/meterReading/meterReadingMonthRecord/index.vue
+++ /dev/null
@@ -1,120 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-10-22 16:47:01
- * @FilePath: \water-qinghe-web\src\views\meterReading\meterReadingRecord\index.vue
- * @Description: 自动抄表 数据上报
--->
-
-<script setup>
-import meterReadingRecordApi from "@/api/meterReadingApi/meterReadingRecord";
-import setPostParams from "@/utils/searchParams.js";
-
-const {proxy} = getCurrentInstance();
-
-/**
- * 搜索相关
- */
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords: queryParam.value.name,dateString: queryParam.value.dateString})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-
-/**
- *  Table表格权限数据列表相关
- */
-const queryParam = ref({
-    name: '',
-    dateString:''
-})
-const pageParam = ref({
-    total: 0,
-    limit: 0,
-    page: 1,
-})
-const tableData = ref([]);
-const inpTip = '请输入', selTip = '请输入';
-let tableHeader = ref({
-    userName: "所属用户",
-    meterSn: '表号',
-    montAmount: '月扣除金额',
-    monthData: '月使用水量',
-    dateString:'日期'
-})
-/** 获取列表 */
-const loading = ref(false)
-
-async function getList(val) {
-    loading.value = true;
-    let postParam = setPostParams(val)
-    await meterReadingRecordApi().getByMonth(postParam).then((res) => {
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
-}
-
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="queryParam" ref="queryRef" :inline="true">
-            <el-form-item label="表号查询" prop="name">
-                <el-input
-                        v-model="queryParam.name"
-                        placeholder="请输入表号"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item label="日期查询" prop="dateString">
-                <el-date-picker
-                    v-model="queryParam.dateString"
-                    type="month"
-                    placeholder="请选择年月"
-                    format="YYYY-MM"
-                    value-format="YYYY-MM"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-                    :sortable="key.toString() == 'deductAmount' ? true : false"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() == 'headImg'">
-                        <img :src="scope.row.headImg" class="table-headImg"/>
-                    </div>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getList"
-        />
-    </div>
-</template>
\ No newline at end of file
diff --git a/src/views/meterReading/meterReadingRecord/index.vue b/src/views/meterReading/meterReadingRecord/index.vue
deleted file mode 100644
index 7d5763e..0000000
--- a/src/views/meterReading/meterReadingRecord/index.vue
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-10-22 16:47:01
- * @FilePath: \water-qinghe-web\src\views\meterReading\meterReadingRecord\index.vue
- * @Description: 自动抄表 数据上报
--->
-
- <script setup>
- import  meterReadingRecordApi from "@/api/meterReadingApi/meterReadingRecord";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParam.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
- /**
-  *  Table表格权限数据列表相关
-  */
-const queryParam = ref({
-    name:''
-})
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请输入';
-let  tableHeader = ref({
-        userName:"所属用户",
-        waterMeterSn: '表号',
-        atData: '累计用水量',
-        deductAmount: '扣除金额',
-        useData:'本次使用水量',
-        usableData:'剩余水量',
-        comment:"备注",
-        createTimeView:'上传时间'
-   })
- /** 获取列表 */
- const loading = ref(false)
- async function getList(val) {
-      loading.value = true;
-      let postParam = setPostParams(val)
-      await meterReadingRecordApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParam" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="queryParam.name"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
-
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-            :sortable="key.toString() == 'deductAmount' ? true : false"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-    </div>
- </template>
\ No newline at end of file
diff --git a/src/views/point/ecology/index.vue b/src/views/point/ecology/index.vue
deleted file mode 100644
index e69de29..0000000
--- a/src/views/point/ecology/index.vue
+++ /dev/null
diff --git a/src/views/point/index.vue b/src/views/point/index.vue
deleted file mode 100644
index 05be6c2..0000000
--- a/src/views/point/index.vue
+++ /dev/null
@@ -1,389 +0,0 @@
-<!--
- * @Author: hqs elkers@163.com
- * @Date: 2024-08-06 14:47:41
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-14 16:50:56
- * @FilePath: \water-qinghe-web\src\views\facilit\index.vue
- * @Description: 监控点
--->
-<script setup>
-import pointApi from "@/api/facility/point";
-import { areaApi} from "@/api/area/index";
-import {inpTip, selTip} from "@/utils/textConst";
-import {longitudeReg, latitudeReg} from "@/utils/regular";
-import {ref} from "vue";
-import {region} from "@/api/basicApi/index.js";
-import setPostParams from "@/utils/searchParams.js";
-
-const route = useRoute();
-const {proxy} = getCurrentInstance();
-
-/**
- * 搜索相关
- */
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords: searchParams.value.keywords})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-
-/**
- *  Table表格权限数据列表相关
- */
-
-const pageParam = ref({
-    total: 0,
-    limit: 0,
-    page: 1,
-})
-const tableData = ref([]);
-
-let tableHeader = ref({
-    pointName: '监控点名称',
-    longitude: '经度',
-    latitude: '纬度',
-    regionName: '区域',
-    address: '详细地址',
-    createTimeView: '创建时间'
-})
-
-/** 获取权限列表 */
-async function getList(val) {
-    loading.value = true;
-    let postParam = setPostParams(val)
-    await pointApi().search(postParam).then((res) => {
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
-}
-
-/**
- *  表单相关
- */
-const formLabel = ({
-    pointName: '监控点名称',
-    longitude: '经度',
-    latitude: '纬度',
-    region: '区域',
-    regionName: '区域信息',
-    address: '详细地址',
-    createTimeView: '创建时间'
-})
-const rules = ref({
-    pointName: [{required: true, message: `${inpTip + formLabel.pointName}`, trigger: "blur"}
-
-    ],
-    address: [{required: true, message: `${inpTip + formLabel.address}`, trigger: "blur"}],
-    longitude: [
-        {required: true, message: `${inpTip + formLabel.longitude}`, trigger: "blur"},
-    ],
-    latitude: [
-        {required: true, message: `${inpTip + formLabel.latitude}`, trigger: "blur"},
-    ],
-
-});
-const accountRegionId = ref('')
-const accountData=ref({
-
-})
-const form = ref({
-    areaId:'',
-    pointName: '',
-    longitude: '',
-    latitude: '',
-    region: '',
-    address: '',
-});
-const searchParams = ref({
-    keywords: '',
-});
-// select区域
-const regionTreeList = ref([])
-const getRegion = async () => {
-    let res2=await region().search('')
-    if (res2.code == 200) {
-        res2.data.forEach((item) => {
-            if (item.children == null) {
-                item.children = [{}]
-            }
-        })
-        regionTreeList.value = res2.data
-        // regionTreeList.value = listToTree(res2.data)
-    }
-}
-getRegion()
-//区域相关------------------------------------------------------------------
-//获取管网父级区域列表
-const parentAreaList = ref([])
-const getParentArea = async()=>{
-    let res = await areaApi().getTree('')
-    console.log("分区列表",res.data)
-    parentAreaList.value = res.data
-}
-getParentArea()
-const changeParentTree = (e)=>{
-    // form.value.parentAreaId = e.id
-    form.value.areaName = e.areaName
-    console.log('e001',e)
-}
-//展开所属区域树形, 请求展开区域的下一层子级数据
-const expandTree = async (data) => {
-    //请求展开区域的下一层子级列表数据
-    let res = await region().search(data.code)
-    if(res.code == 200) {
-        res.data.forEach((item)=>{
-            if((item.children == null) && item.level!=4){
-                item.children = [{}]
-            }
-        })
-        data.children =  res.data
-    }
-}
-//选中区域数据处理
-const changeTreeValue = (_,nodeData,form,index) => {
-
-    let codelist = getTreeCode(nodeData, 'id')
-    if(form == 1){
-        accountData.value.region = codelist.join()
-
-        nextTick(()=>{
-            accountRegionId.value = getTreeCode(nodeData, 'name').join(',')
-
-        })
-    }else{
-        waterMeterFormList.value[index].region = codelist.join()
-        nextTick(()=>{
-            waterRegionIdlist.value[index] = getTreeCode(nodeData, 'name').join(',')
-        })
-    }
-}
-//从当前选择区域树形查找父级code,组装为[123,456,789](xx省/xx市/xx区)
-const getTreeCode = (tree, type) => {
-    let codeList = []
-    if(tree.data.level!=1){
-        codeList = codeList.concat(getTreeCode(tree.parent, type))
-        codeList.push(tree.data[type])
-    }else{
-        return [tree.data[type]]
-    }
-    return codeList
-}
-/** 新增按钮操作 */
-async function handleAdd() {
-    getParentArea()
-    reset();
-    open.value = true;
-    title.value = "新增";
-}
-
-/** 修改按钮操作 */
-async function handleUpdate(row) {
-    reset();
-    // form.value = Object.assign({},row)
-    Object.keys(row).forEach(key => {
-        if (form.value.hasOwnProperty(key)) {
-            form.value[key] = row[key];
-        }
-    });
-    form.value.id = row.id
-    open.value = true;
-    title.value = "修改";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
-        return pointApi().remove(row.id);
-    }).then(() => {
-        getList();
-        proxy.$modal.msgSuccess("删除成功");
-    }).catch(() => {
-    });
-}
-
-
-/**
- *  新增/修改弹窗Form表单相关
- */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
-
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["facilityTypeRef"].validate(valid => {
-        if (valid) {
-            form.value.region = accountData.value.region
-            if (form.value.id != undefined) {
-                pointApi().modify(form.value).then(res => {
-                    proxy.$modal.msgSuccess("修改成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("修改失败");
-                });
-            } else {
-                pointApi().create(form.value).then(res => {
-                    proxy.$modal.msgSuccess("新增成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("新增失败");
-                });
-                ;
-            }
-        }
-    });
-}
-
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    reset();
-}
-
-/** 表单重置 */
-function reset() {
-    form.value = {
-        pointName: '',
-        address: ''
-    };
-    proxy.resetForm("facilityTypeRef");
-}
-
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="searchParams" ref="queryRef" :inline="true">
-            <el-form-item label="" prop="">
-                <el-input
-                        v-model="searchParams.pointName"
-                        placeholder="请输入搜索信息"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                        type="primary"
-                        plain
-                        icon="Plus"
-                        @click="handleAdd"
-                >新增
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() == 'headImg'">
-                        <img :src="scope.row.headImg" class="table-headImg"/>
-                    </div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
-                               @click="handleUpdate(scope.row)">修改
-                    </el-button>
-                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
-                               @click="handleDelete(scope.row)">删除
-                    </el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getList"
-        />
-        <!-- 添加/修改表单 -->
-        <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="facilityTypeRef" :model="form" :rules="rules" label-width='auto'>
-                <el-form-item label="选择DMA区域" prop="areaId">
-                    <el-tree-select
-                        v-model="form.areaId"
-                        :data="parentAreaList"
-                        clearable
-                        :props="{label:'areaName', value:'id'}"
-                        placeholder="请选择区域"
-                        highlight-current
-                        @current-change="changeParentTree"
-                        :check-strictly="true"
-                    />
-                </el-form-item>
-                <el-form-item :label="formLabel.pointName" prop="pointName">
-                    <el-input v-model="form.pointName" :placeholder="inpTip+formLabel.pointName"/>
-                </el-form-item>
-
-                <el-form-item :label="formLabel.longitude" prop="longitude">
-                    <el-input v-model="form.longitude" :placeholder="inpTip+formLabel.longitude"/>
-                </el-form-item>
-                <el-form-item :label="formLabel.latitude" prop="latitude">
-                    <el-input v-model="form.latitude" :placeholder="inpTip+formLabel.latitude"/>
-                </el-form-item>
-                <el-form-item :label="formLabel.region" label="所属区域" prop="region">
-                    <el-tree-select
-                            v-model="accountRegionId"
-                            :data="regionTreeList"
-                            :props="{label:'name', value:'id'}"
-                            placeholder="请选择所属区域"
-                            filterable
-                            highlight-current
-                            :check-strictly="true"
-                            @node-expand="expandTree"
-                            @current-change="(val1,val2) =>changeTreeValue(val1,val2,1)"
-                    />
-                    <el-input v-if="isDetail ? true : false" v-model="form.regionName" disabled></el-input>
-                </el-form-item>
-                <el-form-item :label="formLabel.address" prop="address">
-                    <el-input v-model="form.address" :placeholder="inpTip+formLabel.address"/>
-                </el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue
deleted file mode 100644
index a469960..0000000
--- a/src/views/redirect/index.vue
+++ /dev/null
@@ -1,14 +0,0 @@
-<template>
-  <div></div>
-</template>
-
-<script setup>
-import { useRoute, useRouter } from 'vue-router'
-
-const route = useRoute();
-const router = useRouter();
-const { params, query } = route
-const { path } = params
-
-router.replace({ path: '/' + path, query })
-</script>
\ No newline at end of file
diff --git a/src/views/system/dict/index.vue b/src/views/system/dict/index.vue
index 85e27a5..81625f0 100644
--- a/src/views/system/dict/index.vue
+++ b/src/views/system/dict/index.vue
@@ -1,38 +1,38 @@
- 
-<script setup name="Post">
-import { sysDictType,sysDictData} from "@/api/system/dict";
-import { onMounted } from "vue";
+<script setup>
+import {sysDictType, sysDictData} from "@/api/system/dict";
+import {onMounted} from "vue";
 import setPostParams from "@/utils/searchParams.js";
-const { proxy } = getCurrentInstance();
+
+const {proxy} = getCurrentInstance();
 
 const loading = ref(true); //加载状态
 
 /** 区域table相关 */
 const tableData = ref([]); //数据字典列表
-const total = ref(0); 
+const total = ref(0);
 const ids = ref([]);
 const single = ref(true);
 const multiple = ref(true);
-let  tableHeader = ref({
+let tableHeader = ref({
     dictName: '字典名称',
     dictType: '字典类型',
-    remark:'备注',
-    updateTimeView:'更新时间'
-   })
-   //获取列表数据
-const getList = async(val) => {
+    remark: '备注',
+    updateTimeView: '更新时间'
+})
+//获取列表数据
+const getList = async (val) => {
 
-   loading.value = true;
+    loading.value = true;
     let postParam = setPostParams(val)
-   let res = await sysDictType().search(postParam)
-   if(res.code == 200) {
-         loading.value = false;
-         tableData.value = res.data.list;
-         
-         total.value = res.data.total;
-         search.page = res.data.page;
-         search.limit = res.data.limit;
-   }
+    let res = await sysDictType().search(postParam)
+    if (res.code == 200) {
+        loading.value = false;
+        tableData.value = res.data.list;
+
+        total.value = res.data.total;
+        search.page = res.data.page;
+        search.limit = res.data.limit;
+    }
 }
 /**
  * 添加修改表单相关
@@ -41,126 +41,127 @@
 const showSearch = ref(true);
 const title = ref("");
 const data = reactive({
-   //表单
-   form: {
-      dictName:'',
-      dictType:'',
-        remark:'',
-   },
+    //表单
+    form: {
+        dictName: '',
+        dictType: '',
+        remark: '',
+    },
 
-   //查询数据
-   search: {
-      page: 1, //当前页
-      limit: 10, //每页条数
-      dictName: '',
-      status: ''
-   },
-   //表单验证
-   rules: {
-      dictName: [{ required: true, message: "请输入字典名称", trigger: "blur" }],
-      dictType: [{ required: true, message: "请输入字典类型", trigger: "blur" }],
-   },
+    //查询数据
+    search: {
+        page: 1, //当前页
+        limit: 10, //每页条数
+        dictName: '',
+        status: ''
+    },
+    //表单验证
+    rules: {
+        dictName: [{required: true, message: "请输入字典名称", trigger: "blur"}],
+        dictType: [{required: true, message: "请输入字典类型", trigger: "blur"}],
+    },
 });
-const { search, form, rules } = toRefs(data);
-/** 
- * 提交添加修改表单按钮 
+const {search, form, rules} = toRefs(data);
+
+/**
+ * 提交添加修改表单按钮
  */
 function submitForm() {
-  
-  proxy.$refs["postRef"].validate(async valid => {
-     if (valid) {
-        if(!form.value.id){
-           let res = await sysDictType().create(form.value)
-           if(res.code == 200) {
-              proxy.$modal.msgSuccess("添加成功")
-              openForm.value = false
-              getList()
-              reset()
-           }else{
-               proxy.$modal.msgError("添加失败")
-               openForm.value = false
-               reset()
-           }
-        }else{
-            let res = await sysDictType().modify(form.value)
-            if(res.code == 200) {
-              proxy.$modal.msgSuccess("修改成功")
-              openForm.value = false
-              getList()
-              reset()
-           }else{
-               proxy.$modal.msgError("修改失败")
-               openForm.value = false
-               reset()
-           }
+
+    proxy.$refs["postRef"].validate(async valid => {
+        if (valid) {
+            if (!form.value.id) {
+                let res = await sysDictType().create(form.value)
+                if (res.code == 200) {
+                    proxy.$modal.msgSuccess("添加成功")
+                    openForm.value = false
+                    getList()
+                    reset()
+                } else {
+                    proxy.$modal.msgError("添加失败")
+                    openForm.value = false
+                    reset()
+                }
+            } else {
+                let res = await sysDictType().modify(form.value)
+                if (res.code == 200) {
+                    proxy.$modal.msgSuccess("修改成功")
+                    openForm.value = false
+                    getList()
+                    reset()
+                } else {
+                    proxy.$modal.msgError("修改失败")
+                    openForm.value = false
+                    reset()
+                }
+            }
         }
-     }
-  });
+    });
 }
+
 /**
  * 字典类型操作相关
  */
 
 /** 搜索按钮操作 */
 function handleQuery() {
-   getList({keywords:search.value.dictName,page:1});
+    getList({keywords: search.value.dictName, page: 1});
 }
+
 /** 重置按钮操作 */
 function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
+    proxy.resetForm("queryRef");
+    handleQuery();
 }
+
 /** 多选框选中数据 */
 function handleSelectionChange(selection) {
-   ids.value = selection.map(item => item.id);
-   single.value = selection.length != 1;
-   multiple.value = !selection.length;
+    ids.value = selection.map(item => item.id);
+    single.value = selection.length != 1;
+    multiple.value = !selection.length;
 }
+
 /** 新增按钮操作 */
 function handleAdd() {
-   reset();
-   openForm.value = true;
-   title.value = "添加字典";
+    reset();
+    openForm.value = true;
+    title.value = "添加字典";
 }
 
 /** 修改按钮操作 */
 function handleUpdate(row) {
-   reset();
-   //将表单数据更新为table对应值
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   console.log('form',form.value);
-   openForm.value = true;
-   title.value = "修改字典";
+    reset();
+    //将表单数据更新为table对应值
+    Object.keys(row).forEach(key => {
+        if (form.value.hasOwnProperty(key)) {
+            form.value[key] = row[key];
+        }
+    });
+    form.value.id = row.id
+    console.log('form', form.value);
+    openForm.value = true;
+    title.value = "修改字典";
 }
 
 /** 删除按钮操作 */
 function handleDelete(row) {
-   proxy.$modal.confirm('确认删除"' + row.dictName +'?')
-   .then(async() => {
-      console.log("无删除功能");
-      // let res = await areaApi().remove(row.id)
-      // if(res.code == 200) {
-      //    proxy.$modal.msgSuccess("删除成功");
-      //    openForm.value = false
-      //    getList()
-      // }
-   }).catch(() => {});
+    proxy.$modal.confirm('确认删除"' + row.dictName + '?')
+        .then(async () => {
+            console.log("无删除功能");
+        }).catch(() => {
+    });
 }
 
 /** 关闭弹窗 */
 function cancel() {
-   openForm.value = false;
-   reset();
+    openForm.value = false;
+    reset();
 }
+
 /** 表单重置 */
 const reset = () => {
-   proxy.resetForm("postRef");
-   openForm.value = false
+    proxy.resetForm("postRef");
+    openForm.value = false
 }
 
 /**
@@ -171,126 +172,129 @@
 //判断
 const isHandle = ref(false)
 //table
-const tableDictData = ref([]); 
-let  tableDataHeader = ref({
-      dictType: '字典类型',
-      dictValue: '字典键值',
-      dictLabel: '字典描述',
-      remark:'备注',
-   })
+const tableDictData = ref([]);
+let tableDataHeader = ref({
+    dictType: '字典类型',
+    dictValue: '字典键值',
+    dictLabel: '字典描述',
+    remark: '备注',
+})
 //获取列表
-const getDataList = async(val) => {
-   console.log('val',val);
-   loading.value = true;
-   let res = await sysDictData().searchType(val)
-   if(res.code == 200) {
-         loading.value = false;
-         tableDictData.value = res.data;
-   }
+const getDataList = async (val) => {
+    console.log('val', val);
+    loading.value = true;
+    let res = await sysDictData().searchType(val)
+    if (res.code == 200) {
+        loading.value = false;
+        tableDictData.value = res.data;
+    }
 }
 const postDataRef = ref()
-   //表单
+//表单
 const dataForm = ref({
-   dictLabel:'',
-   dictValue:'',
-   dictType:'',
-      remark:''
+    dictLabel: '',
+    dictValue: '',
+    dictType: '',
+    remark: ''
 })
 const dataRules = ref({
-   dictLabel: [{ required: true, message: "请输入字典描述", trigger: "blur" }],
-   dictValue: [{ required: true, message: "请输入字典键值", trigger: "blur" }],
+    dictLabel: [{required: true, message: "请输入字典描述", trigger: "blur"}],
+    dictValue: [{required: true, message: "请输入字典键值", trigger: "blur"}],
 })
 //提交
-const handleData = () =>{
-   
-  proxy.$refs["postDataRef"].validate(async valid => {
-     if (valid) {
-        if(!dataForm.value.id){
-           let res = await sysDictData().create(dataForm.value)
-           if(res.code == 200) {
-              proxy.$modal.msgSuccess("添加成功")
-              isHandle.value = false
-              getDataList(dataForm.value.dictType)
-              proxy.resetForm("postDataRef");
-           }else{
-               proxy.$modal.msgError("添加失败")
-              isHandle.value = false
-              proxy.resetForm("postDataRef");
-           }
-        }else{
-            let res = await sysDictData().modify(dataForm.value)
-            if(res.code == 200) {
-              proxy.$modal.msgSuccess("修改成功")
-              isHandle.value = false
-              getDataList(dataForm.value.dictType)
-              proxy.resetForm("postDataRef");
-              
-           }else{
-               proxy.$modal.msgError("修改失败")
-              isHandle.value = false
-              proxy.resetForm("postDataRef");
-           }
+const handleData = () => {
+
+    proxy.$refs["postDataRef"].validate(async valid => {
+        if (valid) {
+            if (!dataForm.value.id) {
+                let res = await sysDictData().create(dataForm.value)
+                if (res.code == 200) {
+                    proxy.$modal.msgSuccess("添加成功")
+                    isHandle.value = false
+                    getDataList(dataForm.value.dictType)
+                    proxy.resetForm("postDataRef");
+                } else {
+                    proxy.$modal.msgError("添加失败")
+                    isHandle.value = false
+                    proxy.resetForm("postDataRef");
+                }
+            } else {
+                let res = await sysDictData().modify(dataForm.value)
+                if (res.code == 200) {
+                    proxy.$modal.msgSuccess("修改成功")
+                    isHandle.value = false
+                    getDataList(dataForm.value.dictType)
+                    proxy.resetForm("postDataRef");
+
+                } else {
+                    proxy.$modal.msgError("修改失败")
+                    isHandle.value = false
+                    proxy.resetForm("postDataRef");
+                }
+            }
         }
-     }
-  });
+    });
 }
 //取消
-const cancelData = () =>{
-   isHandle.value = false
-   proxy.resetForm("postDataRef");
+const cancelData = () => {
+    isHandle.value = false
+    proxy.resetForm("postDataRef");
 }
 //查看按钮相关
-const handleDetail = (row) =>{
-   getDataList(row.dictType)
-   openDataForm.value = true
-   console.log('form',dataForm.value);
-   dataForm.value.dictType = row.dictType
-   isHandle.value = false
+const handleDetail = (row) => {
+    getDataList(row.dictType)
+    openDataForm.value = true
+    console.log('form', dataForm.value);
+    dataForm.value.dictType = row.dictType
+    isHandle.value = false
 }
 //关闭按钮相关
-const close = () =>{
-   openDataForm.value = false
-   proxy.resetForm('postDataRef')
-   isHandle.value = false
+const close = () => {
+    openDataForm.value = false
+    proxy.resetForm('postDataRef')
+    isHandle.value = false
 }
-// 新增 
+
+// 新增
 function handleAddData() {
-   let type = dataForm.value.dictType
-   proxy.resetForm("postDataRef");
-   dataForm.value.dictType = type
-   console.log('form1',dataForm.value);
-   isHandle.value = true
-   if(dataForm.value.id){
-      delete dataForm.value.id
-   }
+    let type = dataForm.value.dictType
+    proxy.resetForm("postDataRef");
+    dataForm.value.dictType = type
+    console.log('form1', dataForm.value);
+    isHandle.value = true
+    if (dataForm.value.id) {
+        delete dataForm.value.id
+    }
 }
 
 /** 修改 */
 async function handleUpdateData(row) {
-   //将表单数据更新为table对应值
-   Object.keys(row).forEach(key => {  
-      if (dataForm.value.hasOwnProperty(key)) {  
-         dataForm.value[key] = row[key];  
-      }  
-   });
-   dataForm.value.id = row.id 
-   isHandle.value = true
+    //将表单数据更新为table对应值
+    Object.keys(row).forEach(key => {
+        if (dataForm.value.hasOwnProperty(key)) {
+            dataForm.value[key] = row[key];
+        }
+    });
+    dataForm.value.id = row.id
+    isHandle.value = true
 }
 
 /** 删除 */
 function handleDeleteData(row) {
-   proxy.$modal.confirm('确认删除"' + row.dictValue +'?')
-   .then(async() => {
-      let res = await sysDictData().remove(row.id)
-      if(res.code == 200) {
-         proxy.$modal.msgSuccess("删除成功");
-         getDataList(row.dictType)
-      }
-   }).catch(() => {});
+    proxy.$modal.confirm('确认删除"' + row.dictValue + '?')
+        .then(async () => {
+            let res = await sysDictData().remove(row.id)
+            if (res.code == 200) {
+                proxy.$modal.msgSuccess("删除成功");
+                getDataList(row.dictType)
+            }
+        }).catch(() => {
+    });
 }
-onMounted(async()=>{
-   
-   getList();
+
+onMounted(async () => {
+
+    getList();
 })
 
 
@@ -300,153 +304,162 @@
         <!--搜索框-->
         <el-form :model="search" ref="queryRef" :inline="true" v-show="showSearch">
             <el-form-item label="" prop="dictName">
-               <el-input
-                  v-model="search.dictName"
-                  placeholder="请输入管点名称或编号"
-                  clearable
-                  style="width: 200px"
-                  @keyup.enter="handleQuery"
-               />
+                <el-input
+                    v-model="search.dictName"
+                    placeholder="请输入管点名称或编号"
+                    clearable
+                    style="width: 200px"
+                    @keyup.enter="handleQuery"
+                />
             </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-            <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          
-          </el-form-item>
+            <el-form-item>
+                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
+                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
+
+            </el-form-item>
         </el-form>
         <!--操作按钮列-->
         <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-          <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+            <el-col :span="1.5">
+                <el-button
+                    type="primary"
+                    plain
+                    icon="Plus"
+                    @click="handleAdd"
+                >新增
+                </el-button>
+            </el-col>
+            <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
 
         <!--表格及分页-->
         <el-table v-loading="loading" :data="tableData" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align ="center" />
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          ></el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" @click="handleDetail(scope.row)">查看字典数据</el-button>
-                <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
+            <el-table-column type="selection" width="55" align="center"/>
+            <el-table-column
+                v-for="(item, key, index) of tableHeader"
+                :prop="key.toString()"
+                :label="item"
+                :key="index"
+                align="center"
+            ></el-table-column>
+            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
+                <template #default="scope">
+                    <el-button link type="primary" icon="Edit" @click="handleDetail(scope.row)">查看字典数据</el-button>
+                    <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">修改</el-button>
+                    <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
+                </template>
+            </el-table-column>
         </el-table>
         <pagination
-          v-show="total > 0"
-          :total="total"
-          v-model:page="search.page"
-          v-model:limit="search.limit"
-          @pagination="getList"
+            v-show="total > 0"
+            :total="total"
+            v-model:page="search.page"
+            v-model:limit="search.limit"
+            @pagination="getList"
         />
 
         <!-- 添加/修改弹窗 -->
         <el-dialog :title="title" v-model="openForm" width="45vw" center append-to-body>
-          <el-form class="form-box" ref="postRef" :model="form" :rules="rules">
-            <el-form-item label="字典名称" prop="dictName">
-                <el-input v-model="form.dictName" placeholder="请输入字典名称" />
-             </el-form-item>
-             <el-form-item label="字典类型" prop="dictType">
-                <el-input v-model="form.dictType" placeholder="请输入字典类型" />
-             </el-form-item>
-             <el-form-item label="备注" prop="remark">
-                <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-             </el-form-item>
-              <el-form-item></el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
+            <el-form class="form-box" ref="postRef" :model="form" :rules="rules">
+                <el-form-item label="字典名称" prop="dictName">
+                    <el-input v-model="form.dictName" placeholder="请输入字典名称"/>
+                </el-form-item>
+                <el-form-item label="字典类型" prop="dictType">
+                    <el-input v-model="form.dictType" placeholder="请输入字典类型"/>
+                </el-form-item>
+                <el-form-item label="备注" prop="remark">
+                    <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
+                </el-form-item>
+                <el-form-item></el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button type="primary" @click="submitForm">确 定</el-button>
+                    <el-button @click="cancel">取 消</el-button>
+                </div>
+            </template>
         </el-dialog>
 
         <!-- 字典数据弹窗 -->
         <el-dialog title="字典数据" v-model="openDataForm" width="50vw" center append-to-body>
-        <!--操作按钮列-->
-        <el-row>
-          <el-col>
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAddData"
-             >新增</el-button>
-          </el-col>
-        </el-row>
-         <!--表格-->
-        <el-table v-loading="loading" :data="tableDictData">
-          <el-table-column
-            v-for="(item, key, index) of tableDataHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-            
-          >
-         </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link :type="dataForm.dictValue == scope.row.dictValue ? 'warning' : 'primary'"  icon="Edit" @click="handleUpdateData(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" @click="handleDeleteData(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <el-form title="添加数据" v-show="isHandle" class="dataForm-box" ref="postDataRef" :rules="dataRules" :model="dataForm" inline label-width="100px">
-            <el-form-item prop="dictType">
-               <span>{{ dataForm.dictType }}</span>
-            </el-form-item>
-            <el-form-item prop="dictValue">
-               <el-input v-model="dataForm.dictValue" placeholder="请输入字典键值"></el-input>
-            </el-form-item>
-            <el-form-item prop="dictLabel">
-               <el-input v-model="dataForm.dictLabel" placeholder="请输入字典描述"></el-input>
-            </el-form-item>
-            <el-form-item prop="remark">
-               <el-input v-model="dataForm.remark" placeholder="请输入备注"></el-input>
-            </el-form-item>
-            <el-form-item>
-               <el-button type="primary" @click="handleData">确 认</el-button>
-               <el-button @click="cancelData">取 消</el-button>
-            </el-form-item>
-        </el-form>
-        
-        <template #footer>
-             <div class="dialog-footer">
-                <el-button @click="close">关 闭</el-button>
-             </div>
-          </template>
-      </el-dialog>
+            <!--操作按钮列-->
+            <el-row>
+                <el-col>
+                    <el-button
+                        type="primary"
+                        plain
+                        icon="Plus"
+                        @click="handleAddData"
+                    >新增
+                    </el-button>
+                </el-col>
+            </el-row>
+            <!--表格-->
+            <el-table v-loading="loading" :data="tableDictData">
+                <el-table-column
+                    v-for="(item, key, index) of tableDataHeader"
+                    :prop="key.toString()"
+                    :label="item"
+                    :key="index"
+                    align="center"
+
+                >
+                </el-table-column>
+                <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
+                    <template #default="scope">
+                        <el-button link :type="dataForm.dictValue == scope.row.dictValue ? 'warning' : 'primary'"
+                                   icon="Edit" @click="handleUpdateData(scope.row)">修改
+                        </el-button>
+                        <el-button link type="primary" icon="Delete" @click="handleDeleteData(scope.row)">删除
+                        </el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-form title="添加数据" v-show="isHandle" class="dataForm-box" ref="postDataRef" :rules="dataRules"
+                     :model="dataForm" inline label-width="100px">
+                <el-form-item prop="dictType">
+                    <span>{{ dataForm.dictType }}</span>
+                </el-form-item>
+                <el-form-item prop="dictValue">
+                    <el-input v-model="dataForm.dictValue" placeholder="请输入字典键值"></el-input>
+                </el-form-item>
+                <el-form-item prop="dictLabel">
+                    <el-input v-model="dataForm.dictLabel" placeholder="请输入字典描述"></el-input>
+                </el-form-item>
+                <el-form-item prop="remark">
+                    <el-input v-model="dataForm.remark" placeholder="请输入备注"></el-input>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="primary" @click="handleData">确 认</el-button>
+                    <el-button @click="cancelData">取 消</el-button>
+                </el-form-item>
+            </el-form>
+
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="close">关 闭</el-button>
+                </div>
+            </template>
+        </el-dialog>
     </div>
 </template>
 <style scoped lang="scss">
-.dataForm-box{
-   background-color: #ffffff;
-   display:flex;
-   .el-form-item{
-      width: 18%;
-      margin: 10px 1%;
-      span{
-         margin: 0 auto;
-         // font-weight: 600;
-      }
-   }
+.dataForm-box {
+    background-color: #ffffff;
+    display: flex;
+
+    .el-form-item {
+        width: 18%;
+        margin: 10px 1%;
+
+        span {
+            margin: 0 auto;
+            // font-weight: 600;
+        }
+    }
 }
-.focus{
-   color: aqua;
+
+.focus {
+    color: aqua;
 }
 </style>
\ No newline at end of file
diff --git a/src/views/system/menu/index.vue b/src/views/system/menu/index.vue
index 5b1e221..7cf31a6 100644
--- a/src/views/system/menu/index.vue
+++ b/src/views/system/menu/index.vue
@@ -45,7 +45,7 @@
                 align="center"
                 :default-expand-all="isExpandAll"
                 :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-                fit="true"
+                :fit="true"
         >
             <el-table-column prop="name" label="菜单名称" :show-overflow-tooltip="true"></el-table-column>
             <el-table-column prop="icon" label="图标" align="center">
diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue
index c52e7e4..b37deec 100644
--- a/src/views/system/role/index.vue
+++ b/src/views/system/role/index.vue
@@ -258,7 +258,7 @@
    form.value = {
         name: '',
         description: '',
-        sort:'',
+        sort: 0,
    };
    proxy.resetForm("roleRef");
  }
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index f813cbb..9554149 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -67,7 +67,7 @@
           <el-dialog :title="title" v-model="open" append-to-body center>
               <el-form class="form-box"  ref="userRef" :model="form" :rules="rules">
                       <el-form-item label="用户名" prop="userName">
-                          <el-input :disabled ="form.id" v-model="form.userName" placeholder="请输入用户名称"/>
+                          <el-input :disabled ="!!form.id" v-model="form.userName" placeholder="请输入用户名称"/>
                       </el-form-item>
                       <el-form-item v-if="!form.id" label="密码" prop="password">
                           <el-input v-model="form.password" placeholder="请输入密码" />
@@ -132,7 +132,6 @@
     import  user from "@/api/system/user";
     import  role from "@/api/system/role";
     import  { PREURL } from "@/config/index";
-    import  userClassify from "@/api/configuration/userClassify";
     import  { sysDictData } from "@/api/system/dict";
     import setPostParams from "@/utils/searchParams.js";
     const { proxy } = getCurrentInstance();
diff --git a/src/views/userCenter.vue b/src/views/userCenter.vue
deleted file mode 100644
index acc225f..0000000
--- a/src/views/userCenter.vue
+++ /dev/null
@@ -1,218 +0,0 @@
-<template>
-    <div class="user-container">
-        <div class="user-content">
-            <div class="title">个人信息</div>
-            <div class="user-form">
-                <div class="item">
-                    <div class="name">头像:</div>
-                    <div class="image">
-                        <img :src="preUrl + form.headImg" class="userImage"/>
-                    </div>
-                </div>
-                <div class="item">
-                    <div class="name">用户名:</div>
-                    <div class="info">{{ form.userName }}</div>
-                </div>
-                <div class="item">
-                    <div class="name">昵称:</div>
-                    <div class="info">{{ form.nickName }}</div>
-                </div>
-                <div class="item">
-                    <div class="name">联系方式:</div>
-                    <div class="info">{{ form.contact }}</div>
-                </div>
-                <div class="item">
-                    <div class="name">邮箱:</div>
-                    <div class="info">{{ form.email }}</div>
-                </div>
-                <div class="item">
-                    <div class="name">密码:</div>
-                    <div class="info pwd">
-                        ********
-                        <el-button type="plain" @click="isShow = true">修改密码</el-button>
-                    </div>
-                </div>
-            </div>
-            <div class="bottom">
-                <el-button type="primary" @click="loginOut">退出登录</el-button>
-            </div>
-            <div class="footer"></div>
-        </div>
-        <el-dialog v-model="isShow">
-            <div class="title">修改密码</div>
-            <el-form model="pwdForm" :rules="rules">
-                <el-form-item prop="oldPassword" label="旧密码">
-                    <el-input v-model="pwdForm.oldPassword" placeholder="请输入旧密码"></el-input>
-                </el-form-item>
-                <el-form-item prop="newPassword" label="新密码">
-                    <el-input v-model="pwdForm.newPassword"  placeholder="请输入新密码"></el-input>
-                </el-form-item>
-                <el-form-item class="handel-btn">
-                    <el-button  @click="cancel()">取消</el-button>
-                    <el-button type="primary"  @click="modifyPwd()">提交</el-button>
-                </el-form-item>
-            </el-form>
-        </el-dialog>
-    </div>
-</template>
-
-<script setup>
-import {userDetail} from '@/api/login'
-const { proxy } = getCurrentInstance();
-const form = ref({})
-import  { PREURL } from "@/config/index";
-const preUrl = ref(PREURL)
-const getUserInfo = async () =>{
-    let id = JSON.parse(localStorage.getItem('id'))
-    await userDetail().get(id).then(res => {
-        form.value = res.data
-    })
-}
-//修改密码
-const rules  = ref({
-    oldPassword: [{ required: true, trigger: "blur", message: "请输入旧密码" }],
-    newPassword: [{ required: true, trigger: "blur", message: "请输入新密码" }],
-})
-const isShow = ref(false)
-const pwdForm = ref({
-    oldPassword:'',
-    newPassword:'',
-})
-const modifyPwd = async () =>{
-    await userDetail().setPsw(pwdForm.value).then(res => {
-        if(res.code == 200){
-            proxy.$modal.msgSuccess("修改成功");
-        }
-    })
-}
-const cancel = () =>{
-    isShow.value = false
-    pwdForm.value = {}
-}
-onMounted(() =>{
-    getUserInfo()
-})
-
-</script>
-
-<style lang="scss" scoped>
-.user-container{
-    width: 100%;
-    padding: 1% 12%;
-    .user-content{
-        width: 100%;
-        background: rgba(242, 246, 248, 0.4);
-        border-radius: 20px;
-        .title{
-            width: 100%;
-            height:80px;
-            background: rgba(112, 184, 225, 0.13);
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            font-size: 30px;
-            color: #262627;
-            border-top-left-radius: 20px;
-            border-top-right-radius: 20px;
-        }
-        .user-form{
-            width: 100%;
-            height:550px;
-            padding: 10px 80px;
-            .item{
-                width: 100%;
-                height: 16%;
-                display: flex;
-                justify-content:flex-start;
-                align-items:center;
-                margin-left: 10%;
-                .name{
-                    width:90px;
-                    font-size: 20px;
-                    color: #626268;
-                    font-weight: bold;
-                    margin-right: 20px;
-                }
-                .info{
-                    width: 70%;
-                    height: 35%;
-                    display: flex;
-                    align-items:center;
-                    border-bottom: 1px solid rgba(29, 33, 41, 0.27);
-                    font-size: 18px;
-                    color: rgba(66, 66, 67, 0.98);
-                    font-weight: bold;
-                }
-                .pwd{
-                    display: flex;
-                    justify-content: space-between;
-                    align-items: center;
-                    .el-button{
-                        margin-bottom: 10px;
-                    }
-                }
-            }
-        }
-        .bottom{
-            width: 100%;
-            height:80px;
-            //background: rgba(112, 184, 225, 0.13);
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            font-size: 30px;
-            color: #262627;
-        }
-        .footer{
-            width: 100%;
-            height:100px;
-            background: rgba(112, 184, 225, 0.13);
-            border-bottom-left-radius: 20px;
-            border-bottom-right-radius: 20px;
-        }
-    }
-    :deep(.el-dialog){
-        width: 40%;
-        height:40vh;
-        padding: 10px 200px;
-        .title{
-            width: 100%;
-            height: 50px;
-            display: flex;
-            justify-content:center;
-            align-items: center;
-            font-weight: bold;
-            font-size: 20px;
-            margin-bottom: 50px;
-        }
-        .el-form{
-            .el-form-item{
-                margin-bottom: 30px;
-            }
-            .handel-btn{
-                width: 50%;
-                margin: 0 auto;
-                .el-button{
-                    width: 40%;
-                    height: 35px;
-                    display: flex;
-                    justify-content:center;
-                    align-items: center;
-                    font-size: 18px;
-                    margin: 20px auto;
-                    letter-spacing: 6px;
-                }
-            }
-        }
-    }
-}
-.image{
-    border:1px solid rgba(112, 184, 225, 0.32);
-    border-radius: 10px;
-    padding: 5px;
-}
-.userImage{
-    width: 100px;
-    max-height:100px;
-}
-</style>
\ No newline at end of file
diff --git a/src/views/waterMeter/meterOperation/index.vue b/src/views/waterMeter/meterOperation/index.vue
deleted file mode 100644
index cd10591..0000000
--- a/src/views/waterMeter/meterOperation/index.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 18:41:23
- * @FilePath: \water-qinghe-web\src\views\waterMeter\meterOperation\index.vue
- * @Description: 水表检定
--->
-
- <script setup>
- import  meterOperationApi from "@/api/waterMeterApi/meterOperation";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
- import setPostParams from "@/utils/searchParams.js";
-
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.deviceId})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        useFacilityId: '设备/水表编号',
-        comment: '操作说明',
-        operateIp:'ip地址',
-        createUserName:'操作人',
- 
-   })
- /** 获取列表 */
- const loading = ref()
- async function getList(val) {
-      let postParam = setPostParams(val)
-      loading.value = true;
-      await meterOperationApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-      tableData.value.forEach((item,index) =>{
-          if (item.facilityId){
-              item.useFacilityId = item.facilityId
-          }
-          if(item.useWaterMeterId){
-              item.useFacilityId = item.useWaterMeterId
-          }
-      })
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const searchParams = ref({
-    keywords: '',
-});
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.deviceId"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/waterMeter/supplier/index.vue b/src/views/waterMeter/supplier/index.vue
deleted file mode 100644
index 848b71b..0000000
--- a/src/views/waterMeter/supplier/index.vue
+++ /dev/null
@@ -1,275 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: Liuyi candymxq888@outlook.com
- * @LastEditTime: 2024-08-14 09:34:55
- * @FilePath: \water-qinghe-web\src\views\waterMeter\supplier\index.vue
- * @Description: 供应商
--->
-
- <script setup>
- import  supplierApi from "@/api/waterMeterApi/supplier";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
- import setPostParams from "@/utils/searchParams.js";
-
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.name})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        name: '供应商名称',
-        address: '供应商地址',
-        contact:'联系人',
-        contactPhone:'联系人电话',
-        createTimeView:'创建时间'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-    let postParam = setPostParams(val)
-      await supplierApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      name: '供应商名称',
-      address: '供应商地址',
-      contact:'联系人',
-      contactPhone:'联系人电话',
-      createTimeView:'创建时间'
-})
- const  rules = ref({
-    name: [{ required: true, message: `${inpTip+formLabel.name}`, trigger: "blur" }
-      
-    ],
-    address: [{ required: true, message: `${inpTip+formLabel.address}`, trigger: "blur" }],
-    contact: [
-      { required: true, message: `${inpTip+formLabel.contact}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    contactPhone: [
-      { required: true, message: `${inpTip+formLabel.contactPhone}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function() {
-    return supplierApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.contactPhone = Number(form.value.contactPhone)
-       if (form.value.id != undefined) {
-         supplierApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         supplierApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        name: '',
-        address: '',
-        contact:'',
-        contactPhone:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.name"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.name" prop="name">
-               <el-input v-model="form.name" :placeholder="inpTip+formLabel.name"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.address" prop="address">
-               <el-input v-model="form.address" :placeholder="inpTip+formLabel.address" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contact" prop="contact">
-               <el-input v-model="form.contact" :placeholder="inpTip+formLabel.contact" />
-            </el-form-item>
-            <el-form-item :label="formLabel.contactPhone" prop="contactPhone">
-               <el-input v-model="form.contactPhone" :placeholder="inpTip+formLabel.contactPhone" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
- .el-form{
-     width: 100%;
-     display: flex;
-     justify-content: space-evenly;
-     flex-wrap: wrap;
-     .el-form-item{
-         width: 45%;
-     }
- }
-</style>
- 
\ No newline at end of file
diff --git a/src/views/waterMeter/useWaterMeter/index.vue b/src/views/waterMeter/useWaterMeter/index.vue
deleted file mode 100644
index 7456310..0000000
--- a/src/views/waterMeter/useWaterMeter/index.vue
+++ /dev/null
@@ -1,289 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 18:14:55
- * @FilePath: \water-qinghe-web\src\views\waterMeter\useWaterMeter\index.vue
- * @Description: 用户已绑水表
--->
-
- <script setup>
- import  useWaterMeterApi from "@/api/waterMeterApi/useWaterMeter";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
-import {useRoute} from "vue-router";
- import setPostParams from "@/utils/searchParams.js";
-const route = useRoute()
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.sn})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        sn: '水表编号',
-        openAddress: '开户点',
-        userName:'所属用户',
-        phone:'开户人电话',
-        createTimeView:'创建时间'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await useWaterMeterApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      sn: '水表编号',
-      openAddress: '开户点',
-      userId:'所属用户',
-      phone:'开户人电话',
-      createTimeView:'创建时间'
-})
- const  rules = ref({
-    sn: [{ required: true, message: `${inpTip+formLabel.sn}`, trigger: "blur" }
-      
-    ],
-    openAddress: [{ required: true, message: `${inpTip+formLabel.openAddress}`, trigger: "blur" }],
-    userId: [
-      { required: true, message: `${inpTip+formLabel.userId}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    phone: [
-      { required: true, message: `${inpTip+formLabel.phone}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
- /**
-  * 开关阀操作
-  */
-const handleValve = async (val) =>{
-    if(val.open === 1){
-        proxy.$modal.confirm('确认开阀!').then(async function() {
-            await useWaterMeterApi().open().then(() =>{
-                proxy.$modal.msgSuccess("开阀成功!");
-                getList();
-            })
-        })
-    }else if(val.open === 0){
-        proxy.$modal.confirm('确认关阀!').then(async function() {
-            await useWaterMeterApi().close().then(() =>{
-                proxy.$modal.msgSuccess("关阀成功!");
-                getList();
-            })
-        })
-    }
- }
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.userId + '"的数据项?').then(function() {
-    return useWaterMeterApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功!");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.phone = Number(form.value.phone)
-       if (form.value.id != undefined) {
-         useWaterMeterApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         useWaterMeterApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        sn: '',
-        openAddress: '',
-        userId:'',
-        phone:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.sn"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="TurnOff"  @click="handleValve(scope.row)">开阀</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.sn" prop="sn">
-               <el-input v-model="form.sn" :placeholder="inpTip+formLabel.sn"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.openAddress" prop="openAddress">
-               <el-input v-model="form.openAddress" :placeholder="inpTip+formLabel.openAddress" />
-            </el-form-item>
-            <el-form-item :label="formLabel.userId" prop="userId">
-               <el-input v-model="form.userId" :placeholder="inpTip+formLabel.userId" />
-            </el-form-item>
-            <el-form-item :label="formLabel.phone" prop="phone">
-               <el-input v-model="form.phone" :placeholder="inpTip+formLabel.phone" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/waterMeter/verification/index.vue b/src/views/waterMeter/verification/index.vue
deleted file mode 100644
index 8a9c547..0000000
--- a/src/views/waterMeter/verification/index.vue
+++ /dev/null
@@ -1,273 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 18:28:16
- * @FilePath: \water-qinghe-web\src\views\waterMeter\verification\index.vue
- * @Description: 水表检定
--->
-
- <script setup>
- import  verificationApi from "@/api/waterMeterApi/verification";
-import  { nameReg ,phoneReg }  from "@/utils/regular";
- import setPostParams from "@/utils/searchParams.js";
-
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.deviceId})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-const searchParam = {
-   limit:10,
-   page:1
-}
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-const inpTip= '请输入',selTip = '请选择';
-let  tableHeader = ref({
-        deviceId: '水表编号',
-        verifyCompany: '检定单位',
-        verifyStaff:'检定人员',
-        verifyContent:'检定内容',
-        verifyCost:'检定结果',
-        verifyTime:'检定时间'
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-
- let postParam = setPostParams(val)
-      await verificationApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
-  /**
-  *  表单相关
-  */   
-const  formLabel = ({
-      deviceId: '水表编号',
-      verifyCompany: '检定单位',
-      verifyStaff:'检定人员',
-      verifyContent:'检定内容',
-      verifyCost:'检定结果',
-      verifyTime:'检定时间'
-})
- const  rules = ref({
-    deviceId: [{ required: true, message: `${inpTip+formLabel.deviceId}`, trigger: "blur" }
-      
-    ],
-    verifyCompany: [{ required: true, message: `${inpTip+formLabel.verifyCompany}`, trigger: "blur" }],
-    verifyStaff: [
-      { required: true, message: `${inpTip+formLabel.verifyStaff}`, trigger: "blur" },
-      { pattern: nameReg, message: '请输入真实姓名!', trigger: 'blur' },
-   ],
-    verifyContent: [
-      { required: true, message: `${inpTip+formLabel.verifyContent}`, trigger: "blur" },
-      { pattern: phoneReg, message: '电话号码不正确!', trigger: 'blur' },
-   ],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.verifyStaff + '"的数据项?').then(function() {
-    return verificationApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["supplierRef"].validate(valid => {
-     if (valid) {
-        form.value.verifyContent = Number(form.value.verifyContent)
-       if (form.value.id != undefined) {
-         verificationApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         verificationApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        deviceId: '',
-        verifyCompany: '',
-        verifyStaff:'',
-        verifyContent:''
-   };
-   proxy.resetForm("supplierRef");
- }
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="" prop="">
-             <el-input
-                v-model="searchParams.deviceId"
-                placeholder="请输入搜索信息"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加/修改表单 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="supplierRef" :model="form" :rules="rules" label-width='auto'>
-            <el-form-item :label="formLabel.deviceId" prop="deviceId">
-               <el-input v-model="form.deviceId" :placeholder="inpTip+formLabel.deviceId"/>
-            </el-form-item>
-            <el-form-item :label="formLabel.verifyCompany" prop="verifyCompany">
-               <el-input v-model="form.verifyCompany" :placeholder="inpTip+formLabel.verifyCompany" />
-            </el-form-item>
-            <el-form-item :label="formLabel.verifyStaff" prop="verifyStaff">
-               <el-input v-model="form.verifyStaff" :placeholder="inpTip+formLabel.verifyStaff" />
-            </el-form-item>
-            <el-form-item :label="formLabel.verifyContent" prop="verifyContent">
-               <el-input v-model="form.verifyContent" :placeholder="inpTip+formLabel.verifyContent" />
-            </el-form-item>
-            <el-form-item :label="formLabel.verifyCost" prop="verifyCost">
-               <el-input v-model="form.verifyCost" :placeholder="inpTip+formLabel.verifyCost" />
-            </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style lang="scss" scoped>
-
-</style>
- 
\ No newline at end of file
diff --git a/src/views/waterMeter/waterMeterInfo/index.vue b/src/views/waterMeter/waterMeterInfo/index.vue
deleted file mode 100644
index 14d1f30..0000000
--- a/src/views/waterMeter/waterMeterInfo/index.vue
+++ /dev/null
@@ -1,298 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-13 17:43:00
- * @FilePath: \water-qinghe-web\src\views\waterMeter\waterMeter\index.vue
- * @Description: 水表信息
--->
-
- <script setup>
- import  waterMeterApi from "@/api/waterMeterApi/index";
- import {onMounted} from "vue";
- import userClassify from "@/api/configuration/userClassify/index.js";
- import  waterModelApi from "@/api/waterMeterApi/waterModel";
- import  setPostParams from "@/utils/searchParams";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:searchParams.value.modelCode})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:1,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        sn: '水表编号',
-        modelName:'水表型号',
-        initialReading: '初始读数',
-        meterTypeView:'水表分类',
-        isUseView:'是否使用',
-        manufactureTime:'生成日期',
-        createTimeView:'创建时间'
-   })
-const  rules = ref({
-    sn: [{ required: true, message: "请输入水表编号", trigger: "blur" }],
-    modelId: [{ required: true, message: "请选择水表型号", trigger: "blur" }],
-    initialReading: [{ required: true, message: "请输入水表初始读数", trigger: "blur" }],
-    manufactureTime: [{ required: true, message: "请选择生产日期", trigger: "blur" }],
-    meterType: [{ required: true, message: "请选择水表分类", trigger: "blur" }],
-});
-const form = ref({});
-const searchParams = ref({
-    keywords: '',
-});
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-      let postParam = setPostParams(val)
-      await waterMeterApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   open.value = true;
-   title.value = "新增";
- }
- 
- /** 修改按钮操作 */
- async function handleUpdate(row) {
-   reset();
-   // form.value = Object.assign({},row)
-   Object.keys(row).forEach(key => {  
-      if (form.value.hasOwnProperty(key)) {  
-         form.value[key] = row[key];  
-      }  
-   });
-   form.value.id = row.id
-   open.value = true;
-   title.value = "修改";
- }
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-  proxy.$modal.confirm('是否确认删除名称为"' + row.isUse + '"的数据项?').then(function() {
-    return waterMeterApi().remove(row.id);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
-}
- 
-
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-const meterTypeList = ref([
-     { id: 1, name: '用户水表' },
-     { id: 2, name: '大口径水表' }
-
- ])
-const modelList = ref([])
-
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["userRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         waterMeterApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-         waterMeterApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });;
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
- 
- /** 表单重置 */
- function reset() {
-   form.value = {
-        sn: '',
-        modelId: undefined,
-        initialReading: '',
-        meterType: '',
-        manufactureTime:'',
-        isUse:'',
-        remark: '',
-
-   };
-   proxy.resetForm("userRef");
- }
- onMounted(async() =>{
-     // 获取用户类型
-     let res1 = await waterModelApi().search({ status: 1,limit: 10000, page: 1})
-     if(res1.code == 200) {
-         modelList.value = res1.data.list
-     }
- })
- getList();
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="searchParams" ref="queryRef" :inline="true">
-          <el-form-item label="用户名称" prop="modelCode">
-             <el-input
-                v-model="searchParams.modelCode"
-                placeholder="请输入搜索内容"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-            <template #default="scope">
-                <div v-if="key.toString() == 'headImg'">
-                    <img :src="scope.row.headImg" class="table-headImg"/>
-                </div>
-            </template>
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-modelCode="small-padding fixed-width">
-             <template #default="scope">
-                <el-button link type="primary" icon="Edit" v-has="['update',route]" @click="handleUpdate(scope.row)">修改</el-button>
-                <el-button link type="primary" icon="Delete" v-has="['delete',route]" @click="handleDelete(scope.row)">删除</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改权限对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-          <el-form class="form-box" ref="userRef" :model="form" :rules="rules" label-width='auto'>
-                   <el-form-item label="水表编号" prop="sn">
-                      <el-input v-model="form.sn" placeholder="请输入水表编号"/>
-                   </el-form-item>
-                     <el-form-item label="水表型号"  prop="modelId">
-                         <el-select v-model="form.modelId" class="m-2" placeholder="请选择" size="large">
-                             <el-option
-                                     v-for="item in modelList"
-                                     :key="item.id"
-                                     :label="item.model"
-                                     :title="item.model"
-                                     :value="item.id"
-                             />
-                         </el-select>
-                     </el-form-item>
-                     <el-form-item label="水表分类"  prop="meterType">
-                         <el-select v-model="form.meterType" class="m-2" placeholder="请选择" size="large">
-                             <el-option
-                                     v-for="item in meterTypeList"
-                                     :key="item.id"
-                                     :label="item.name"
-                                     :title="item.name"
-                                     :value="item.id"
-                             />
-                         </el-select>
-                     </el-form-item>
-                   <el-form-item label="初始读数" prop="initialReading">
-                      <el-input v-model="form.initialReading" placeholder="请输入初始读数" />
-                   </el-form-item>
-                    <el-form-item label="生产日期" prop="manufactureTime">
-                        <el-date-picker
-                                v-model="form.manufactureTime"
-                                type="date"
-                                placeholder="请选择生产日期"
-                                format="YYYY-MM-DD"
-                                value-format="YYYY-MM-DD"
-                                :disabled="isDetail ? true : false"
-                        />
-                    </el-form-item>
-                    <el-form-item label="备注信息" prop="remark">
-                        <el-input v-model="form.remark" placeholder="请选择" />
-                    </el-form-item>
-          </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-    </div>
- </template>
- 
- <style>
- .table-headImg{
-    width: 50px;
-    height: 50px;
- }
-</style>
- 
\ No newline at end of file
diff --git a/src/views/waterMeter/waterModel/index.vue b/src/views/waterMeter/waterModel/index.vue
deleted file mode 100644
index c582223..0000000
--- a/src/views/waterMeter/waterModel/index.vue
+++ /dev/null
@@ -1,393 +0,0 @@
-<!--
- * @Author: elkers
- * @Date: 2024-08-06 16:17:39
- * @LastEditors: hqs elkers@163.com
- * @LastEditTime: 2024-08-12 10:08:12
- * @FilePath: \water-qinghe-web\src\views\waterMeter\waterModel\index.vue
- * @Description: 水表型号
--->
-
-<script setup>
-import waterModelApi from "@/api/waterMeterApi/waterModel";
-import setPostParams from "@/utils/searchParams.js";
-
-const {proxy} = getCurrentInstance();
-
-/**
- * 搜索相关
- */
-/** 搜索按钮操作 */
-function handleQuery() {
-    getList({keywords: queryParams.value.name})
-}
-
-/** 重置按钮操作 */
-function resetQuery() {
-    proxy.resetForm("queryRef");
-    handleQuery();
-}
-/**
- *  Table表格权限数据列表相关
- */
-
-const pageParam = ref({
-    total: 0,
-    limit: 0,
-    page: 1,
-})
-const tableData = ref([]);
-let tableHeader = ref({
-
-    model: "水表型号",
-    type: "水表类型",
-    standard: "水表规格",
-    comMode: "通讯方式",
-    comProtocolName: "通讯协议",
-    material: "水表材质",
-    factory: "生产厂家",
-    status: '状态'
-
-})
-
-/** 获取列表 */
-async function getList(val) {
-    loading.value = true;
-    let postParam = setPostParams(val)
-    await waterModelApi().search(postParam).then((res) => {
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
-}
-
-/** 新增按钮操作 */
-async function handleAdd() {
-    reset();
-    open.value = true;
-    title.value = "新增用户";
-}
-
-/** 修改按钮操作 */
-async function handleUpdate(row) {
-    reset();
-    // form.value = Object.assign({},row)
-    Object.keys(row).forEach(key => {
-        if (form.value.hasOwnProperty(key)) {
-            form.value[key] = row[key];
-        }
-    });
-    form.value.id = row.id
-    open.value = true;
-    title.value = "修改";
-}
-
-/** 删除按钮操作 */
-function handleDelete(row) {
-    proxy.$modal.confirm('是否确认删除名称为"' + row.contact + '"的数据项?').then(function () {
-        return waterModelApi().remove(row.id);
-    }).then(() => {
-        getList();
-        proxy.$modal.msgSuccess("删除成功");
-    }).catch(() => {
-    });
-}
-
-
-/**
- *  新增/修改弹窗Form表单相关
- */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-formLabelWidth: 200;
-const data = reactive({
-
-    form: {},
-    queryParams: {
-        name: undefined,
-    },
-    rules: {
-        model: [
-            {required: true, message: '请输入水表型号', trigger: 'blur'},
-            {max: 50, message: '长度不超过50', trigger: 'blur'},
-            {pattern: '^[a-zA-Z0-9_-]+$', message: '请输入数字、字母或下划线、短横线', trigger: 'blur'},
-        ],
-        type: [
-            {required: true, message: '请选择水表类型', trigger: 'change'}
-        ],
-        standard: [
-            {required: true, message: '请选择水表规格', trigger: 'change'}
-        ],
-        comMode: [
-            {required: true, message: '请选择通讯方式', trigger: 'change'}
-        ],
-        comProtocolId: [
-            {required: true, message: '请选择通讯协议', trigger: 'change'}
-        ],
-        material: [
-            {required: true, message: '请选择水表材质', trigger: 'change'}
-        ],
-        accuracy: [
-            {required: true, message: '请输入水表精度', trigger: 'blur'},
-            {
-                pattern: '^(?!100$)(\\d{1,2}(?:\\.\\d{1,2})?|0(?:\\.\\d{1,2})?)$',
-                message: '请输入小于100的整数或小数(小数点后保留两位)',
-                trigger: 'blur'
-            },
-        ],
-        factory: [
-            {max: 50, message: '长度不超过50', trigger: 'blur'}
-        ],
-        comment: [
-            {max: 500, message: '长度不超过500', trigger: 'blur'}
-        ],
-    },
-});
-const {queryParams, form, rules} = toRefs(data);
-const type = ref([
-    {name: '智能水表'},
-    {name: '机械师水表'},
-    {name: '预付费水表'},
-    {name: '远传水表'},
-    {name: '其他'},
-])
-const standard = ref([
-    {name: 'DN15'},
-    {name: 'DN20'},
-    {name: 'DN25'},
-    {name: 'DN32'},
-    {name: 'DN40'},
-    {name: 'DN50'},
-])
-const mode = ref([
-    {name: '蓝牙'},
-    {name: 'NB-loT'},
-    {name: 'LoRa'},
-    {name: '其他'},
-])
-const protocol = ref([
-    {id: 1, name: 'modbus-RTU'},
-    {id: 2, name: 'modbus-1'},
-    {id: 3, name: 'modbus-2'},
-])
-const material = ref([
-    {name: '铜'},
-    {name: '铁'},
-    {name: '不锈钢'},
-    {name: '塑料'},
-    {name: '其他'},
-])
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    form.value.headImg = data.newFileView
-}
-
-/** 提交按钮 */
-function submitForm() {
-    proxy.$refs["userRef"].validate(valid => {
-        if (valid) {
-            form.value.contactPhone = Number(form.value.contactPhone)
-            if (form.value.id != undefined) {
-                waterModelApi().modify(form.value).then(res => {
-                    proxy.$modal.msgSuccess("修改成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("修改失败");
-                });
-            } else {
-                waterModelApi().create(form.value).then(res => {
-                    proxy.$modal.msgSuccess("新增成功");
-                    open.value = false;
-                    getList();
-                }).catch(() => {
-                    open.value = false;
-                    proxy.$modal.msgError("新增失败");
-                });
-                ;
-            }
-        }
-    });
-}
-
-/** 取消按钮 */
-function cancel() {
-    open.value = false;
-    reset();
-}
-
-/** 表单重置 */
-function reset() {
-    form.value = {
-        name: '',
-        contact: '',
-        headImg: '',
-        contactPhone: undefined,
-        contact: '',
-        email: '',
-    };
-    proxy.resetForm("userRef");
-}
-
-getList();
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="queryParams" ref="queryRef" :inline="true">
-            <el-form-item label="水表型号" prop="model">
-                <el-input
-                        v-model="queryParams.name"
-                        placeholder="请输入水表型号"
-                        clearable
-                        style="width: 200px"
-                        @keyup.enter="handleQuery"
-                />
-            </el-form-item>
-            <el-form-item>
-                <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-                <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-                <el-button
-                        type="primary"
-                        plain
-                        icon="Plus"
-                        @click="handleAdd"
-                >新增
-                </el-button>
-            </el-col>
-        </el-row>
-        <!--表格及分页-->
-        <el-table v-loading="loading" :data="tableData">
-            <el-table-column
-                    v-for="(item, key, index) of tableHeader"
-                    :prop="key.toString()"
-                    :label="item"
-                    :key="index"
-                    align="center"
-            >
-                <template #default="scope">
-                    <div v-if="key.toString() == 'headImg'">
-                        <img :src="scope.row.headImg" class="table-headImg"/>
-                    </div>
-                </template>
-            </el-table-column>
-            <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-                <template #default="scope">
-                    <el-button link type="primary" icon="Edit" v-has="['update',route]"
-                               @click="handleUpdate(scope.row)">修改
-                    </el-button>
-                    <el-button link type="primary" icon="Delete" v-has="['delete',route]"
-                               @click="handleDelete(scope.row)">删除
-                    </el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getList"
-        />
-        <!-- 添加或修改对话框 -->
-        <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="userRef" :model="form" :rules="rules" label-width='auto'>
-                        <el-form-item label="水表型号" prop="model">
-                            <el-input v-model="form.name" placeholder="请输入水表型号"/>
-                        </el-form-item>
-                        <el-form-item label="水表类型" prop="type">
-                            <el-select v-model="form.type" :label-width="formLabelWidth" placeholder="请选择水表类型"
-                                       size="large">
-                                <el-option
-                                        v-for="item in type"
-                                        :key="item.name"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.name"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="水表规格" prop="standard">
-                            <el-select v-model="form.standard" class="m-2" placeholder="请选择水表规格" size="large">
-                                <el-option
-                                        v-for="item in standard"
-                                        :key="item.name"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.name"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="通讯方式" prop="comMode">
-                            <el-select v-model="form.comMode" class="m-2" placeholder="请选择通讯方式" size="large">
-                                <el-option
-                                        v-for="item in mode"
-                                        :key="item.name"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.name"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="通讯协议" prop="comProtocolId">
-                            <el-select v-model="form.comProtocolId" class="m-2" placeholder="请选择通讯协议"
-                                       size="large">
-                                <el-option
-                                        v-for="item in protocol"
-                                        :key="item.id"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.id"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="水表材质" prop="material">
-                            <el-select v-model="form.material" class="m-2" placeholder="请选择水表材质" size="large">
-                                <el-option
-                                        v-for="item in material"
-                                        :key="item.name"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.name"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="生产厂家" prop="material">
-                            <el-select v-model="form.material" class="m-2" placeholder="请选择生产厂家" size="large">
-                                <el-option
-                                        v-for="item in material"
-                                        :key="item.name"
-                                        :label="item.name"
-                                        :title="item.name"
-                                        :value="item.name"
-                                />
-                            </el-select>
-                        </el-form-item>
-                    <el-form-item label="备注" prop="comment">
-                        <el-input v-model="form.comment" autocomplete="off" placeholder="请输入备注"></el-input>
-                    </el-form-item>
-            </el-form>
-            <template #footer>
-                <div class="dialog-footer">
-                    <el-button type="primary" @click="submitForm">确 定</el-button>
-                    <el-button @click="cancel">取 消</el-button>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style>
-.table-headImg{
-    width: 50px;
-    height: 50px;
-}
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/accountApply/index.vue b/src/views/workOrderManage/accountApply/index.vue
deleted file mode 100644
index dcd743d..0000000
--- a/src/views/workOrderManage/accountApply/index.vue
+++ /dev/null
@@ -1,829 +0,0 @@
-
-<script setup>
-import  userClassify from "@/api/configuration/userClassify";
-import  salePlaceApi from "@/api/configuration/bussinessApi";
-import  { region } from "@/api/basicApi";
-import  TieredCharging from "@/api/configuration/waterPrice";
- import  waterMeterApi from "@/api/waterMeterApi/index";
- import  user from "@/api/system/user";
- import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
-
-import { PREURL } from '@/config/index';
-import { waterMeterApplyApi }  from '@/api/workOrderManage/waterMeterApplyApi/index';
-import {onMounted, ref} from 'vue';
-import {areaApi} from "@/api/area/index.js";
-const emit = defineEmits(['getTableData','setFormVisible'])
-const props = defineProps({
-        isDetail:{ 
-        type: Boolean,
-        required: true,
-        default:false
-      },
-      rowDetail:{
-        type: Object,
-        default:{}
-      },
-      isExecute:{
-        type: Boolean,
-        required: true,
-        default:false
-      },
-})
-/**
- * 开户表单信息
-*/ 
-const accountData = ref({
-    workNumber: '',
-    userName: '',
-    userPhone: '',//userPhone
-    idCard: '',
-    classifyId: null,
-    userCode: '',
-    region: '',
-    userAddress: '',//userAddress
-    userUrl:'',//userUrl
-    businessAddress: '',
-    tieredChargingId: null,
-    installState: '',
-    remark: '',
-    operatorUser:'',
-    operatorUserName:'',
-    listDetails: []
-})
-// 选中账户Id
-const accountedData = ref({
-    userId:'',
-    listDetails: []
-})
-const waterFormRef = ref()
-//判断是否已有账户
-const isNewForm = ref(false)
-const userNameList = ref()
-/**
- * 水表表单信息
- */
- const waterMeterFormList = ref([
-    {
-        id: null,
-        applyId: null,
-        meterSn: '',
-        meterStatus: '',
-        region: '',
-        areaId: '',
-        areaName: '',
-        installAddress: '',
-        installUser: '',
-        installUserName: '',
-        installTime: '',
-        installMoney: null,
-        createTime: null,
-        updateTime: '',
-        installState: null,
-        isDelete: null,
-    }
- ])
-// 用数组储存多个水表信息中区域form-item的绑定值,方便select选项变化时,不影响其他保单已选区域数据
- const waterRegionIdlist = ref([' '])
-// const formVisible = ref()
-
-const meterSnList = ref([])
-const operatorUserList = ref([])
-const accountRegionId = ref('')
-// const waterRegionId = ref('')
-// const userDetail = ref()
-const accountFormRef = ref()
-const rules = ref({
-            userName: [
-                { required: true, message: '请输入名称', trigger: 'blur' },
-                {pattern: /^[\u4e00-\u9fa5\\·]*$/, message: '请输入中文或" · "符号', trigger: 'blur'},
-            ],
-            userPhone: [
-                { required: true, message: '请输入电话号码', trigger: 'blur' },
-                { pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur' }
-            ],
-            userAddress: [
-                { required: true, message: '请输入用户地址', trigger: 'blur' }
-            ],
-            idCard: [
-                { required: true, message: '请输入身份证号', trigger: 'blur' },
-                { pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/, trigger: 'blur' ,message:"身份证号格式不正确"}  
-            ],
-            classifyId: [
-                { required: true, message: '请选择用户类型', trigger: 'blur' }
-            ],
-            region: [
-                { required: true, message: '请选择区域', trigger: 'blur' }
-            ],
-            businessAddress: [
-                { required: true,message: '请选择营业网点', trigger: 'blur' }
-            ],
-            tieredChargingId: [
-                { required: true, message: '请选择收费配置', trigger: 'blur' },
-            ],
-            userUrl: [
-                { required: true, message: '请上传相关资料', trigger: 'blur' }
-            ],
-            operatorUser: [
-                { required: true, message: '请选择操作人', trigger: 'blur' }
-            ],
-            meterSn: [
-                { required: true, message: '请选择水表编号', trigger: 'blur' }
-            ],
-            installAddress: [
-                { required: true, message: '请输入安装地址', trigger: 'blur' }
-            ],
-            installUser: [
-                { required: true, message: '请输入安装人员', trigger: 'blur' },
-            ],
-            installTime: [
-                { required: true, message: '请选择上门时间', trigger: 'blur' },
-            ],
-            installMoney: [
-                { required: true, message: '请输入安装金额', trigger: 'blur' },
-                { pattern:/^[1-9][0-9]{0,4}$/, message: '只能输入数字', trigger: 'blur' }
-            ]
-})
-// select用户类型
-const userTypeList = ref([]);
-// select营业网点
-const businessAddressList = ref([]);
-// select区域
-const regionTreeList = ref([])
-
-// 安装人员选择列表
-const maintainUserList = ref()
-const tieredChargingList = ref([])
-
-/*/**
- * 添加form表单相关
- *
-*/ 
-
-//新建账户
-const setNewForm = () =>{
-    isNewForm.value = true
-    accountedData.value.userId = ''
-}
-const concel = () =>{
-    isNewForm.value = false
-    accountData.value = {}
-}
-
-//区域相关------------------------------------------------------------------
-//获取管网父级区域列表
-const parentAreaList = ref([])
-const getParentArea = async()=>{
-    let res = await areaApi().getTree('')
-    console.log("分区列表",res.data)
-    parentAreaList.value = res.data
-}
-getParentArea()
-const changeParentTree = (e)=>{
-    // form.value.parentAreaId = e.id
-    waterMeterFormList.value.areaName = e.areaName
-    console.log('e001',e)
-}
-//展开所属区域树形, 请求展开区域的下一层子级数据
-const expandTree = async (data) => {
-
-    //请求展开区域的下一层子级列表数据
-    let res = await region().search(data.code)
-    if(res.code == 200) {
-    res.data.forEach((item)=>{
-            if((item.children == null) && item.level!=4){
-                item.children = [{}]
-            }
-    })
-    data.children =  res.data
-    }
-}
-//选中区域数据处理
-const changeTreeValue = (_,nodeData,form,index) => {
-
-    let codelist = getTreeCode(nodeData, 'id')
-    console.log('codelist',codelist)
-    if(form == 1){
-        accountData.value.region = codelist.join()
-        nextTick(()=>{
-            accountRegionId.value = getTreeCode(nodeData, 'name').join(',')
-        })
-    }else{
-        waterMeterFormList.value[index].region = codelist.join()
-        console.log('waterMeterFormList.value001',waterMeterFormList.value)
-        nextTick(()=>{
-            waterRegionIdlist.value[index] = getTreeCode(nodeData, 'name').join(',')
-        })
-    }
-
-}
-//表单添加经办人名称
-const changeOperatorUser = async (val) => {
-    operatorUserList.value.forEach((item) =>{
-        if(item.id == val){
-            accountData.value.operatorUserName = item.nickName
-        }
-    })
-// accountData.value.operatorUserName = res.data.nickName
-}
-//表单添加安装人员名称
-const selectChange = (val,e)=>{    
-    maintainUserList.value.forEach((item) =>{
-        if(item.id == val){
-            waterMeterFormList.value[e].installUserName = item.nickName
-        }
-    })
-}
-//从当前选择区域树形查找父级code,组装为[123,456,789](xx省/xx市/xx区)
-const getTreeCode = (tree, type) => {
-    let codeList = []
-    if(tree.data.level!=1){
-        codeList = codeList.concat(getTreeCode(tree.parent, type))
-        codeList.push(tree.data[type])
-    }else{
-        return [tree.data[type]]
-    }
-    return codeList
-}
-//------------------------------------------------------------------
-//上传文件,添加图片地址信息
-const uploadData = (data) => {
-    accountData.value.userUrl = data.toString()
-  console.log('url',data)
-}
-const addWaterMeterMore  = () =>{
-    waterMeterFormList.value.push({
-        id: null,
-        applyId: null,
-        meterSn: '',
-        meterStatus: '',
-        region: '',
-        installAddress: '',
-        installUser: '',
-        installUserName: '',
-        installTime: '',
-        installMoney: null,
-        createTime: null,
-        updateTime: '',
-        installState: null,
-        isDelete: null,
-    })
-    waterRegionIdlist.value.push(' ')
-    // console.log('waterRegionIdlist.value',waterRegionIdlist.value)
-}
-const deleteWaterMeterForm = (e) =>{
-    if(waterMeterFormList.value.length > 1){
-    waterMeterFormList.value.splice(e,1)
-    waterRegionIdlist.value.splice(e,1)
-    // console.log('waterRegionIdlist.value',waterRegionIdlist.value)
-    }
-}
-/*/
- *提交表单 
-*/ 
-const setWaterMeterList = () =>{
-    //排除空水表
-    let waterList = []
-        if(waterMeterFormList.value){
-            waterMeterFormList.value.forEach((item)=>{
-                if(item.meterSn){
-                    waterList.push(item)
-                }
-            })
-        }
-    // 将金额转为数字类型
-    waterList.map((item) =>{
-        if(item.installMoney && item.installMoney != 0  ){
-            item.installMoney = Number(item.installMoney)
-        }else{
-            item.installMoney = null
-        }
-    })
-    return waterList
-}
-const submitAccountForm = async() =>{
-    //判断是否已有账户
-    if(!isNewForm.value){
-       let waterList1 =  setWaterMeterList()
-        // 加入水表form表单信息
-        accountedData.value.listDetails = waterList1
-        console.log('111',waterList1);
-        //提交申请
-        let res = await waterMeterApplyApi().createWaterMeterApply(accountedData.value)
-                    if(res.code == 200){
-                        ElMessage({message:"申请已提交!",type:'success'})
-                        getTableData()
-                        emit('setFormVisible')
-                    }
-    }else{
-        accountFormRef.value.validate(async(validate) => {
-            if (validate) {
-                // 将url字符串转数组,方便加imageUrl前缀,再转为字符串
-                // accountData.value.userUrl = accountData.value.userUrl.split(",")
-                // accountData.value.userUrl = accountData.value.userUrl.map((item) => PREURL + item).join()
-                let waterList2 =  setWaterMeterList()
-                // 加入水表form表单信息
-                accountData.value.listDetails = waterList2
-
-                // 校验资料图片是否上传
-                if(accountData.value.userUrl){
-                    let res = await waterMeterApplyApi().createWaterMeterApply(accountData.value)
-                        if(res.code == 200){
-                            ElMessage({message:"申请已提交!",type:'success'})
-                            getTableData()
-                            emit('setFormVisible')
-                        }
-                }else{
-                    ElMessage({message:"请上传资料!",type:'error'})
-                }
-            }
-        })
-    }
-}
-const concelAccountForm = () =>{
-    emit('setFormVisible')
-}
-
-/**
- * @name 执行工单
- * @description executeType【1待安装 2安装中 3已安装 4撤销工单】
-**/ 
-// 提交接受安装
-const acceptAccountForm = async() =>{
-    let res = await waterMeterApplyApi().executeWaterMeterApply({id:accountData.value.id,executeType:2})
-    if(res.code == 200){ 
-        ElMessage({message:'接受成功!',type:'success'})
-        emit('setFormVisible')
-    }else{
-        ElMessage({message:'网络错误,请刷新再试!',type:'error'})
-    }
-}
-// 提交完成安装
-const completeAccountForm = async() =>{
-    let res = await waterMeterApplyApi().executeWaterMeterApply({id:accountData.value.id,executeType:3})
-    if(res.code == 200){
-        ElMessage({message:'完成安装!',type:'success'})
-        emit('setFormVisible')
-        getTableData()
-    }else{
-        ElMessage({message:'网络错误,请刷新再试!',type:'error'})
-    }
-}
-// 撤销安装
-const revokeAccountForm = async() =>{
-    let res = await waterMeterApplyApi().executeWaterMeterApply({id:accountData.value.id,executeType:4})
-    if(res.code == 200){
-        ElMessage({message:'撤销成功!',type:'success'})
-        emit('setFormVisible')
-        getTableData()
-    }else{
-        ElMessage({message:'网络错误,请刷新再试!',type:'error'})
-    }
-}
-const getTableData = () =>{
-    emit('getTableData')
-}
-onMounted(async() =>{
-    // 进入执行页
-    if(props.isDetail){
-            // 根据该列表行id值获取该申请单详细信息
-            let res0 = await waterMeterApplyApi().getWaterMeterApply(props.rowDetail.id)
-            accountData.value = res0.data
-            console.log("申请详情", res0.data)
-            let res1=await areaApi().get(res0.data.areaId);
-            console.log("分区详情", res1.data)
-            waterMeterFormList.value[0].meterSn = res0.data.meterSn
-            waterMeterFormList.value[0].regionName = res0.data.regionName
-            waterMeterFormList.value[0].installAddress = res0.data.installAddress
-            waterMeterFormList.value[0].installUser = res0.data.installUser
-            waterMeterFormList.value[0].installMoney = res0.data.installMoney 
-            waterMeterFormList.value[0].installTime = res0.data.installTime
-            waterMeterFormList.value[0].areaName = res1.data.areaName
-    }else{
-    // 进入申请页
-            accountData.value = {}
-            waterMeterFormList.value = [
-                {
-                    id: null,
-                    applyId: null,
-                    meterSn: '',
-                    meterStatus: '',
-                    region: '',
-                    areaId: null,
-                    areaName: '',
-                    installAddress: '',
-                    installUser: '',
-                    installUserName: '',
-                    installTime: null,
-                    installMoney: null,
-                    createTime: null,
-                    updateTime: '',
-                    installState: null,
-                    isDelete: null,
-                }
-            ]
-    }
-    let searchDefeult = { limit:10000,page:1}
-    // 获取各select选项列表
-    // 获取营业网点列表
-    let res0 = await salePlaceApi().search(searchDefeult)
-        if(res0.code == 200){
-            businessAddressList.value = res0.data.list
-        }
-    // 获取用户类型
-    let res1 = await userClassify().search({ status: 1,limit: 10000, page: 1})
-        if(res1.code == 200) {
-            userTypeList.value = res1.data.list
-            }
-    //获取区域信息
-    let res2 = await region().search('')
-        if(res2.code == 200) {
-            res2.data.forEach((item)=>{
-                    if(item.children == null){
-                        item.children = [{}]
-                    }
-                }) 
-            regionTreeList.value = res2.data
-        // regionTreeList.value = listToTree(res2.data)
-        }
-    // 获取水表编号 // limit暂定10000
-    let res3 = await waterMeterApi().getIsUse(0)
-    if(res3.code == 200){
-        meterSnList.value = res3.data
-    }
-    // 请求阶梯类型
-    let res4 = await TieredCharging().search(searchDefeult)
-    if(res4.code == 200){
-        tieredChargingList.value = res4.data.list
-    }
-    // 获取用户档案列表
-    let res5 = await archivesApi().search({limit: 10000, status: 1,page:1})
-    if (res5.code == 200) {
-        userNameList.value = res5.data.list
-    }
-    //获取用户列表,经办人&&维修账号列表选择
-    let res6 = await user().search({limit: 10000, status: 1,page:1})
-    if (res6.code == 200) {
-        operatorUserList.value = res6.data.list
-        maintainUserList.value = res6.data.list
-    }
-    // 获取维修账号列表信息
-    // let res7 = await userApi().searchUser({ limit: 1000, status:1 ,companyId:userDetail.value.customerCompany})
-    //     if(res7.code == 200){
-    //         maintainUserList.value = res7.data.list
-    //         console.log('res2.data',res7.data)
-    //     }
-})
-
-</script>
-
-<template>
-    <div class="main">
-        <div class="account-form">
-            <div class="name">开户信息</div>
-            <div>
-                <!-- 已开户用户添加水表信息,通过选择用户名称获取开户信息 -->
-                <p v-if="isDetail ? false : true">*已有账户请选择,无账户请先新建账户</p>
-                <el-form :model="accountedData" inline >
-                    <el-form-item v-if= "isDetail ? false : true" style="width: 50%"  label="用户名称" prop="userId" >
-                        <el-select v-model="accountedData.userId" :disabled="isDetail || isNewForm ? true : false" placeholder="请选择用户名称" clearable>
-                            <el-option
-                            v-for="item in userNameList"
-                            :key="item.value"
-                            :label="item.userName"
-                            :title="item.userName"
-                            :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item v-if="isDetail ? false : true">
-                        <el-button type="primary" @click="setNewForm">新建账户</el-button>
-                        <el-button  @click="concel">取消</el-button>
-                    </el-form-item>
-                </el-form>
-                <!--新建账户表单-->
-                <el-form :model="accountData" :rules="rules" ref="accountFormRef" :label-width="80" inline>
-                    <el-form-item v-if="isNewForm || isDetail" label="用户名称" prop="userName">
-                    <el-input v-model="accountData.userName" :disabled="isDetail ? true : false"></el-input>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm || isDetail" label="用户类型" prop="classifyId" >
-                        <el-select v-model="accountData.classifyId" :disabled="isDetail ? true : false" placeholder="请选择用户类型">
-                            <el-option
-                            v-for="item in userTypeList"
-                            :key="item.value"
-                            :label="item.name"
-                            :title="item.name"
-                            :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm || isDetail" label="身份证号"  prop="idCard">
-                    <el-input v-model="accountData.idCard" :disabled="isDetail ? true : false"></el-input>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm || isDetail" label="电话号码" prop="userPhone">
-                    <el-input v-model="accountData.userPhone" :disabled="isDetail ? true : false"></el-input>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm || isDetail" label="营业点" prop="businessAddress">
-                        <el-select v-model="accountData.businessAddress" :disabled="isDetail ? true : false" placeholder="请选择营业网点">
-                            <el-option
-                            v-for="item in businessAddressList"
-                            :key="item.value"
-                            :label="item.name"
-                            :title="item.name"
-                            :value="item.id">
-                            </el-option>
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm" label="所属区域"  prop="region">
-                        <el-tree-select 
-                            v-model="accountRegionId"
-                            :data="regionTreeList"
-                            :props="{label:'name', value:'id'}" 
-                            placeholder="请选择所属区域" 
-                            filterable 
-                            highlight-current 
-                            :check-strictly="true" 
-                            @node-expand="expandTree"
-                            @current-change="(val1,val2) =>changeTreeValue(val1,val2,1)"
-                        />
-                        <el-input v-if="isDetail ? true : false" v-model="accountData.regionName" disabled></el-input>
-                    </el-form-item> 
-
-                    <el-form-item v-if="isNewForm || isDetail"  label="用户地址" prop="userAddress">
-                    <el-input v-model="accountData.userAddress" :disabled="isDetail ? true : false"></el-input>
-                    </el-form-item>
-
-                    <el-form-item v-if="isNewForm || isDetail" label="收费类型"  prop="tieredChargingId">
-                        <el-select v-model="accountData.tieredChargingId" filterable placeholder="请选择阶梯收费配置" :disabled="isDetail ? true : false">
-                            <el-option
-                            v-for="item in tieredChargingList"
-                            :key="item.id"
-                            :label="item.name"
-                            :title="item.name"
-                            :value="item.id"
-                            />
-                        </el-select>
-                    </el-form-item>
-                    <br>
-                    <div v-if="isNewForm || isDetail" class="upload">
-                        <el-form-item label="资料上传"  prop="userUrl">
-                            <upload-icons @uploadData="uploadData" :imageList="accountData.userUrl" :limit="9" :disabled = 'isDetail ? true : false'></upload-icons>
-                            <span style="display: block;">(可上传身份证、房产证等最多9张)</span>
-                        </el-form-item>
-                    </div>
-
-                    <el-form-item v-if="isNewForm || isDetail"  label="经办人" prop="operatorUser">
-                        <el-select v-model="accountData.operatorUser" @change="changeOperatorUser" filterable placeholder="请选择经办人" :disabled="isDetail ? true : false">
-                            <el-option
-                            v-for="item in operatorUserList"
-                            :key="item.id"
-                            :label="item.nickName"
-                            :title="item.nickName"
-                            :value="item.id"
-                            />
-                        </el-select>
-                    <!-- <el-input v-model="accountData.operatorUser" :disabled="isDetail ? true : false"></el-input> -->
-                    </el-form-item>
-                </el-form>
-            </div>
-        </div>
-        <div  class="waterMeter-form" >
-            <div class ="name">水表信息</div>
-            <div class = form>
-                <div v-for="(item,index) in waterMeterFormList" :key="index"  class="meters-form">
-                    <el-form :model="item" ref="waterFormRef" label-width="auto" >
-                        <el-form-item label="水表编号" prop="meterSn">
-                            <el-select v-model="item.meterSn" :disabled="isDetail ? true : false" clearable placeholder="请选择水表编号">
-                                <el-option
-                                v-for="(item) in meterSnList"
-                                :label="item.name"
-                                :title="item.name"
-                                :value="item.sn"
-                                />
-                            </el-select>
-                        </el-form-item>
-
-                        <el-form-item label="所属区域"  prop="region">
-                            <el-tree-select
-                                v-if="isDetail ? false : true"
-                                v-model="waterRegionIdlist[index]"
-                                :data="regionTreeList"
-                                :props="{label:'name', value:'id'}" 
-                                placeholder="请选择所属区域" 
-                                filterable
-                                clearable 
-                                highlight-current 
-                                :check-strictly="true"
-                                @node-expand="expandTree" 
-                                @current-change="(val1,val2) =>changeTreeValue(val1,val2,2,index)"
-                            />
-                        <el-input v-else v-model="item.regionName" disabled></el-input>
-                        </el-form-item>
-                        <el-form-item label="选择DMA区域" prop="areaId">
-                            <el-tree-select
-                                v-if="isDetail ? false : true"
-                                v-model="item.areaId"
-                                :data="parentAreaList"
-                                clearable
-                                :props="{label:'areaName', value:'id'}"
-                                placeholder="请选择DMA区域"
-                                highlight-current
-                                @current-change="changeParentTree"
-                                :check-strictly="true"
-                            />
-                            <el-input v-else v-model="item.areaName" disabled></el-input>
-                        </el-form-item>
-
-                        <el-form-item label="安装地址" prop="installAddress">
-                        <el-input v-model="item.installAddress" :disabled="isDetail ? true : false"></el-input>
-                        </el-form-item>
-
-                        <el-form-item label="安装人员" prop="installUser">
-                            <el-select v-model="item.installUser" :disabled="isDetail ? true : false" filterable clearable placeholder="请选择安装人员" @change="(val) =>selectChange(val,index)">
-                                <el-option
-                                v-for="item in maintainUserList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                                />
-                            </el-select>
-                        <!-- <el-input v-model="item.installUser" :disabled="isDetail ? true : false"></el-input> -->
-                        </el-form-item>
-
-                        <el-form-item label="上门时间" prop="installTime">
-                            <el-date-picker
-                                v-model="item.installTime"
-                                type="date"
-                                placeholder="请选择安装日期和时间"
-                                format="YYYY-MM-DD"
-                                value-format="YYYY-MM-DD"
-                                :disabled="isDetail ? true : false"
-                            />
-                        <!-- <el-input v-model="item.installTime" :disabled="isDetail ? true : false"></el-input> -->
-                        </el-form-item>
-
-                        <el-form-item label="安装费用" prop="installMoney">
-                        <el-input v-model="item.installMoney" :disabled="isDetail ? true : false"></el-input>
-                        </el-form-item>
-                    </el-form>
-                    <el-button v-if="waterMeterFormList.length > 1 && isDetail == false"  type=danger @click="deleteWaterMeterForm(index)">删除</el-button>
-                </div>
-            </div>
-
-        </div>
-        <div class="add-btn">
-            <el-button v-if="isDetail ? false : true" type="primary" @click= addWaterMeterMore>继续添加水表</el-button>
-        </div>
-        <div class="foot-form">
-            <div>
-                <el-form :model="accountData" label-width="68">
-                    <el-form-item label="备注" prop="remark" style="width: 50%">
-                    <el-input v-model="accountData.remark" :disabled="isDetail ? true : false"></el-input>
-                    </el-form-item>
-                <!-- 执行时额外添加创建时间项 -->
-                    <el-form-item v-if="isDetail ? true : false" label="申请时间" prop="createTimeView">
-                    <el-input v-model="accountData.createTimeView" disabled></el-input>
-                    </el-form-item>
-                    <el-form-item v-if="isDetail ? true : false" label="执行状态" prop="installStateView">
-                        <el-input v-model="accountData.installStateView" disabled></el-input>
-                    </el-form-item>
-                </el-form>
-            </div>
-        </div>
-        <div class="submit-btn">
-            <el-button v-if="isDetail ? false : true"  size="large" @click="concelAccountForm">取消</el-button>
-            <el-button v-if="isDetail ? false : true" type="primary" size="large" @click="submitAccountForm">提交申请</el-button>
-        </div>
-        <div class="Execution-btn" v-if="props.isExecute == true">
-            <div>
-                <el-button v-if="accountData.installState==1"  type="primary" size="large" @click="acceptAccountForm">接受安装</el-button>
-            </div>
-            <div>
-                <el-button v-if="accountData.installState==2" type="primary" size="large" @click="completeAccountForm">完成安装</el-button>
-            </div>
-            <div>
-                <el-button v-if="accountData.installState==1" type="primary" size="large" @click="revokeAccountForm">撤销工单</el-button>
-            </div>
-        </div>
-    </div>
-</template>
-<style lang="scss" scoped>
-.main{
-    background-color: rgb(244, 245, 247);
-    width:100%;
-    height: calc(100% - 30px);
-    border-radius:10px;
-    .account-form{
-        width: 100%;
-        p{
-            margin-left: 2%;
-            font-size: 12px;
-            color: #79bbff;
-        }
-        .el-form{
-            margin:0 auto;
-            width: 96%;
-            //height: 100%;
-            .el-form-item{
-                width: 22%;
-            }
-            .upload{
-                width: 96%;
-                .el-form-item{
-                width: 100%;
-            }
-            }
-        }
-        .name{
-        padding: 20px 0 20px 20px;
-        height: 8%;
-        margin-left: 10px;
-        font-size: 22px;
-        font-weight: 500;
-        color: #414244;
-        }
-        :deep(.el-select__wrapper){
-            width: 100%
-        }
-
-    } 
-    .waterMeter-form{
-        width: 100%;
-        margin:0 auto;
-        .name{
-        padding: 20px 0 20px 20px;
-        height: 8%;
-        margin-left: 10px;
-        font-size: 22px;
-        font-weight: 500px;
-        color: #414244;
-        }
-        .form{
-        width: 100%;
-        margin:0 auto;
-        display: flex;
-        flex-wrap: wrap;
-            .meters-form{
-            width: 30%;
-            margin-left:30px;
-            margin-bottom:10px;
-            border: #dcdee2 solid 1px;
-            border-radius: 10px;
-            .el-form{
-                margin:15px;
-                // background-color: #d9dadb;
-                .el-form-item{
-                    width: 100%;
-                    .el-select{
-                        width: 100%;
-                    }
-                }
-               }
-            .el-button{
-                margin-bottom:15px;
-                margin-left: 50%;
-                transform:translateX(-50%);
-            }
-            }
-        }
-    } 
-    .add-btn{
-        margin: 20px 0;
-        width: 35%;
-        .el-button{
-        margin-left: 50%;
-        transform:translateX(-50%);
-        }
-    }
-    .foot-form{
-        width: 96%;
-        margin:0 auto;
-        .el-form-item{
-            width: 400px
-        }
-    }
-    .submit-btn{
-        width: 100%;
-        margin: 20px 0;
-        height: 5%;
-        display: flex;
-        justify-content: center;
-        .el-button{
-            margin-bottom: 10px;
-        }
-    }
-    .Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 50px 10px 80px ;
-        }
-    }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/workOrderManage/meterConstruction/index.vue b/src/views/workOrderManage/meterConstruction/index.vue
deleted file mode 100644
index a627c4b..0000000
--- a/src/views/workOrderManage/meterConstruction/index.vue
+++ /dev/null
@@ -1,449 +0,0 @@
-
- <script setup name="Menu">
-//  import  user from "@/api/system/user";
-//  import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
-//  import  waterMeterApi from "@/api/waterMeterApi/index";
-import  meterConstructionApi   from '@/api/workOrderManage/meterConstructionApi/index';
-import setPostParams from "@/utils/searchParams.js";
-// import  billRecord from "@/api/financial/billRecord/index";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
-const queryParams = ref({
-    name: undefined,
-},) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const loading = ref(false);
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        id: '序号',
-        meterSn:"水表编号",
-        userName:"所属用户",
-        address: "施工地点",
-        content: "施工内容",
-        article: "施工携带",
-        operatorUser: "负责人",
-        workerUser: "施工人员",
-        typeName: "施工类型",
-        constructionTime: "施工日期",
-        completionTime: "完成日期",
-        comment: "备注",
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await meterConstructionApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
-//  async function handleAdd() {
-//    reset();
-//    title.value = "新增停用工单";
-//     open.value = true;
-//  }
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-// const open = ref(false);
-// const loading = ref(false);
-// const title = ref("");
-
-// const data = reactive({
-// form:{},
-// queryParams: {
-//     name: undefined,
-// },
-// rules: {
-//         userName: [{required: true, message: '请选择用户', trigger: 'blur'}],
-//         meterSn: [{required: true, message: '请选择需要停用的水表编号', trigger: 'blur'}],
-//         operatorUser: [{required: true, message: '请选择经办人', trigger: 'blur'}]
-// },
-// });
-// const { queryParams, form, rules } = toRefs(data);
-
-//获取账号列表选择
-// const accountList = ref()
-// const userList = ref()
-// const getAllList = async() =>{
-// // 获取用户档案列表
-// let res1 = await archivesApi().search({limit: 10000, status: 1,page:1})
-// if (res1.code == 200) {
-// userList.value = res1.data.list
-// }
-// //获取账号列表
-// let res2 = await user().search({limit: 10000, status: 1,page:1})
-// if (res2.code == 200) {
-//     accountList.value = res2.data.list
-// }
-//  }
-//选择用户获取对应水表列表
-// const meterSnList = ref()
-// const changeUser = async (val) => {
-//     form.value.meterSn=""
-//     //选中用户显示用户信息
-//     let user = userList.value.find((item) => item.id == val)
-//     Object.keys(user).forEach((key) =>{
-//         if(form.value.hasOwnProperty(key)){
-//             form.value[key] = user[key]
-//         }
-//     })
-//     //请求该用户名下水表
-//     let res3 = await waterMeterApi().getByUser(val)
-//     if (res3.code == 200) {
-//         meterSnList.value = res3.data
-//     }
-// }
-// //选中水表获取水表信息及欠费信息
-// const changeWaterMeter = async (val) => {
-// let res1 = await billRecord().getMeterArrearsAmount(val)
-//     if (res1.code == 200) {
-//         form.value.isArrearage = res1.data
-//     }
-//     let meter = meterSnList.value.find((item) => item.sn == val)
-//     form.value.address = meter.address
-//     form.value.modeCode = meter.modeCode
-// }
-// //根据经办人id添加经办人Name
-// const changeOperatorUser = async (val) => {
-//     accountList.value.forEach((item) =>{
-//         if(item.id == val){
-//             form.value.operatorUserName = item.nickName
-//         }
-//     })
-//     console.log('45646',form.value);
-// }
-//  /** 提交按钮 */
-//  function submitForm() {
-//    proxy.$refs["formRef"].validate(valid => {
-//      if (valid) {
-//        if (form.value.id != undefined) {
-//         meterConstructionApi().modify(form.value).then(res => {
-//            proxy.$modal.msgSuccess("修改成功");
-//            open.value = false;
-//            getList();
-//          }).catch(() =>{
-//             open.value = false;
-//             proxy.$modal.msgError("修改失败");
-//          });
-//        } else {
-//         meterConstructionApi().create(form.value).then(res => {
-//            proxy.$modal.msgSuccess("新增成功");
-//            open.value = false;
-//            getList();
-//          }).catch(() =>{
-//             open.value = false;
-//             proxy.$modal.msgError("新增失败");
-//          });
-//        }
-//      }
-//    });
-//  }
-
- /** 取消按钮 */
-//  function cancel() {
-//    open.value = false;
-//    reset();
-//  }
-
- /** 表单重置 */
-//  function reset() {
-//    form.value = {
-//         classifyTxt: '',
-//         classifyId: 0,
-//         userAddress: "",
-//         address: "",
-//         userId: "",
-//         userCode: "",
-//         userPhone: "",
-//         modeCode: "",
-//         operatorUser: "",
-//         operatorUserName: "",
-//         idCard: "",
-//         userName: "",
-//         meterSn: "",
-//         businessAddress: "",
-//         arrearageAmount: "",
-//         stopTime: "",
-//         startTime: "",
-//    };
-//    proxy.resetForm("formRef");
-//  }
-  /**
-  * 详情、执行相关
-  */
-const formDetail = ref()
-const formDetailVisible = ref()
-// const isExecute = ref(false)
-const ToDetail = async(row) =>{
-    let res = await meterConstructionApi().get(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-    }
-    formDetailVisible.value = true
-    // if(val === 2){
-    //     isExecute.value = true
-    // }else{
-    //     isExecute.value = false
-    // } 
-}
-// 提交确认停用
-// const stopAccountForm = async() =>{
-//     let res = await meterConstructionApi().execute(formDetail.value.id,3)
-//     if(res.code == 200){
-//         ElMessage({message:'停用成功!',type:'success'})
-//     }
-//     formDetailVisible.value = false
-//     getList()
-// }
- getList();
-//  getAllList()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <!-- <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row> -->
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button @click="ToDetail(scope.row)"  link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <!-- <el-button v-if="(scope.row.executeType == 1) || (scope.row.executeType == 2)" @click="ToDetail(scope.row)"  link type="primary" icon="Document" title="详细信息">执行</el-button> -->
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <!-- <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                    <el-form-item label="用户名称"  prop="userId">
-                        <el-select v-model="form.userId" class="m-2" filterable placeholder="请选择开户人"
-                                    @change="changeUser" >
-                            <el-option
-                                    v-for="(item,index) in userList"
-                                    :key="item.id"
-                                    :label="item.userName"
-                                    :title="item.userName"
-                                    :value="item.id"
-
-                            />
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="用户类型"  prop="classifyTxt">
-                        {{ form.classifyTxt }}
-                    </el-form-item>
-                    <el-form-item label="联系电话"  prop="userPhone">
-                        {{ form.userPhone }}
-                    </el-form-item>
-                    <el-form-item label="身份证号码"  prop="idCard">
-                        {{ form.idCard }}
-                    </el-form-item>
-                    <el-form-item label="用户地址"  prop="userAddress">
-                        {{ form.userAddress }}
-                    </el-form-item>
-                    <el-form-item label="户号"  prop="userCode">
-                        {{ form.userCode }}
-                    </el-form-item>
-
-
-                    <el-form-item label="停用水表"  prop="meterSn">
-                        <el-select v-model="form.meterSn"  filterable
-                                   placeholder="请输入或选择水表编号"  @change="changeWaterMeter">
-                            <el-option
-                                    v-for="item in meterSnList"
-                                    :key="item.id"
-                                    :label="item.sn"
-                                    :title="item.sn"
-                                    :value="item.sn"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item label="水表型号"  prop="modeCode">
-                        {{ form.modeCode }}
-                    </el-form-item>
-                    <el-form-item label="安装地址"  prop="address">
-                        {{ form.address }}
-                    </el-form-item>
-                    <el-form-item label="欠费金额"  prop="isArrearage">
-                        {{ form.isArrearage }}
-                    </el-form-item>
-
-                    <el-form-item label="经办人"  prop="operatorUser">
-                        <el-select v-model="form.operatorUser" class="m-2" filterable
-                                   placeholder="请选择经办人"  @change="changeOperatorUser">
-                            <el-option
-                                    v-for="item in accountList"
-                                    :key="item.id"
-                                    :label="item.nickName"
-                                    :title="item.nickName"
-                                    :value="item.id"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-        -->
-       <el-dialog v-model="formDetailVisible" title="水表维修记录详情" style="width: 60vw;" center align-center >
-                <div class="detail">
-                    <div class="item">
-                        <div>水表编号:</div>
-                        <div>{{ formDetail.meterSn }}</div>
-                    </div>
-                    <div class="item">
-                        <div>所属用户:</div>
-                        <div>{{ formDetail.userName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工地点:</div>
-                        <div>{{ formDetail.address }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工内容:</div>
-                        <div>{{ formDetail.content }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工携带:</div>
-                        <div>{{ formDetail.article }}</div>
-                    </div>
-                    <div class="item">
-                        <div>负责人:</div>
-                        <div>{{ formDetail.operatorUser }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工人员:</div>
-                        <div>{{ formDetail.workerUser }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工日期:</div>
-                        <div>{{ formDetail.constructionTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>完成日期:</div>
-                        <div>{{ formDetail.completionTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工类型:</div>
-                        <div>{{ formDetail.typeName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>备注:</div>
-                        <div>{{ formDetail.comment }}</div>
-                    </div>
-                    <div class="item">
-                        <div>状态:</div>
-                        <div>{{ formDetail.status == 1?'正常':'停用' }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建时间:</div>
-                        <div>{{ formDetail.createTimeView }}</div>
-                    </div>
-                    
-                    <div class="item">
-                        <div>更新时间:</div>
-                        <div>{{ formDetail.updateTimeView }}</div>
-                    </div>
-                </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <!-- <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="stopAccountForm">确认停用</el-button>
-                    </div>
-                </div> -->
-            </template>
-        </el-dialog>
-    </div>
- </template>
- <style>
- .detail{
-    display:flex;
-    justify-content:center;
-    width:100%;
-    flex-wrap:wrap;
-.item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-}
-}
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterAlteration/index.vue b/src/views/workOrderManage/waterMeterAlteration/index.vue
deleted file mode 100644
index ee2f3e3..0000000
--- a/src/views/workOrderManage/waterMeterAlteration/index.vue
+++ /dev/null
@@ -1,873 +0,0 @@
-
-<script setup >
-    import {onMounted, reactive, ref} from 'vue'
-    import { ElMessage } from 'element-plus'
-    import  archivesApi from "@/api/archivesApi/index";
-    import  userClassify from "@/api/configuration/userClassify";
-    import  salePlaceApi from "@/api/configuration/bussinessApi";
-    import  waterMeterApi from "@/api/waterMeterApi/index";
-    import  billRecord from "@/api/financial/billRecord/index";
-    import  { region } from "@/api/basicApi";
-    import  TieredCharging from "@/api/configuration/waterPrice";
-    import {waterMeterAlterationApi} from '@/api/workOrderManage/waterMeterAlterationApi';
-    import {PREURL} from '@/config/index';
-    import setPostParams from "@/utils/searchParams.js";
-    const { proxy } = getCurrentInstance();
-    //定义table数据
-    const queryParams = ref({
-        name: undefined,
-    }) 
-    const tableData = ref([])
-    const pageParam = ref({
-        total:0,
-        limit:10,
-        page:0,
-    })
-    const setTableList = reactive({
-        alterationNumber: '过户单编号',
-        meterSn: '过户水表编号',
-        beforeUserName: '过户用户',
-        laterUserName: '承接用户',
-        companyName: '所属公司',
-        executeTypeName:'状态',
-        createUser: '创建人',
-        createTimeView:'创建时间'
-    })
-    //弹窗
-    const formVisible = ref(false)
-    // 添加-过户form表单
-    const accountData = ref({
-        userName: '',
-        userPhone: '',
-        idCard: '',
-        classifyTxt: '',
-        region: '',
-        userCode:'',       //水表安装地址
-        url:''         
-
-    })
-    const waterData = ref({
-        sn:'',
-        tieredChargingId:'',
-        arrearageAmount:'', //欠费金额
-        address:'',        //水表安装地址
-    })
-    const Forms = ref({accountData:accountData.value,waterData:waterData.value})
-    // 添加-承接form表单
-    const alterationFormId = ref({
-        beforeUserId:'',
-        laterUserId:'',
-        meterSn:''
-    })
-    const alterationFormData = ref({
-        beforeUserId:'',
-        meterSn:'',
-        userName: '',
-        phone: '',
-        idCard: '',
-        classifyId: '',
-        listRegion: [], 
-        address: '',  
-        businessAddress: '',  
-        tieredChargingId: '',   
-        remark: '',  
-        url: '' 
-})
-    const businessAddress = ref()
-    //单独定义form表单中用户名称与水表编号,如果不单独定义,@change方法中给form表单数据赋值时会报错
-    const userNameId = ref()
-    const snId = ref()
-
-    const alterationFormRefNew = ref()
-    const alterationFormRef = ref()
-    const accountFormRef = ref()
-    // 选项列表数据
-    const snList = ref()
-    const userNameList = ref([])
-    const businessAddressList = ref([])
-    const userTypeList = ref([]);
-    const alterationRegionId = ref([]);
-    const tieredChargeList = ref([]);
-    const regionTreeList = ref([]);
-
-    const isShow = ref(false)
-    const confirmFormData = ref()
-
-    const getTableData = async(val) =>{
-        let postParam = setPostParams(val)
-        let res =await waterMeterAlterationApi().searchWaterMeterAlteration(postParam)
-        if(res.code == 200){
-            tableData.value = res.data.list
-            tableData.value.forEach((item) =>{
-               if(item.executeType == 1){
-                item.executeTypeName ='待执行'
-               }else if(item.executeType == 2){
-                item.executeTypeName ='执行中'
-               }else if(item.executeType == 3){
-                item.executeTypeName ='已执行'
-               }else if(item.executeType == 4){
-                item.executeTypeName ='已撤销'
-               }else{
-                item.executeTypeName =''
-               }
-            }) 
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-        }
-    }
-
-    const addAccount = async() =>{
-         //打开时清空数据
-        Forms.value.accountData = {
-        userName: '',
-        userPhone: '',
-        idCard: '',
-        classifyTxt: '',
-        region: '',
-        userCode:'',      
-        url:''         
-        }
-        Forms.value.waterData = {
-            sn:'',
-            tieredChargingId:'',
-            arrearageAmount:'', 
-            address:'',        
-        }
-        alterationFormId.value = {
-            beforeUserId:'',
-            laterUserId:'',
-            meterSn:''
-        }
-        alterationFormData.value = {
-            beforeUserId:'',
-            meterSn:'',
-            userName: '',
-            phone: '',
-            idCard: '',
-            classifyId: '',
-            listRegion: [], 
-            address: '',  
-            businessAddress: businessAddress.value,  
-            tieredChargingId: '',   
-            remark: '',  
-            url: '' 
-        }
-        alterationRegionId.value = ''
-        userNameId.value = ''
-        snId.value = ''
-        formVisible.value = true
-        proxy.resetForm("alterationFormRefNew");
-        proxy.resetForm("alterationFormRef");
-        proxy.resetForm("accountFormRef");
-    }
-    //条件搜索
-    const search = () =>{
-        getTableData({keywords:queryParams.value.name})
-    }
-
-    const handleChange = async(val) =>{
-        Forms.value.accountData = userNameList.value.find((item) => item.id == val)
-        //将所属区域与详细地址拼接为完整地址,并去掉区域中的#号字符
-        Forms.value.accountData.regionName = Forms.value.accountData.regionName ? Forms.value.accountData.regionName : ""
-        Forms.value.accountData.userAddress = Forms.value.accountData.userAddress ? Forms.value.accountData.userAddress : ""
-        Forms.value.accountData.region = (Forms.value.accountData.regionName +'-'+ Forms.value.accountData.userAddress).replace(/#/g,"")
-        //通过用户id获取该用户下的水表信息 
-       let res = await waterMeterApi().getByUser(Forms.value.accountData.id)
-       
-       if(res.code == 200){
-            snList.value = res.data
-       }
-       Forms.value.waterData = {}
-       snId.value = ''
-
-    }
-    const handleWaterChange = async (val) => {
-        //通过选中水表sn编号自动获取该水表信息
-        Forms.value.waterData = snList.value.find((item) => item.sn == val)
-        console.log("水表编号", val)
-        let res1 = await billRecord().getMeterArrearsAmount(val)
-        if (res1.code == 200) {
-            Forms.value.waterData.arrearageAmount = res1.data
-        }
-
-        //若欠费金额为空,则显示已结清
-        Forms.value.waterData.arrearageAmount = Forms.value.waterData.arrearageAmount ? Forms.value.waterData.arrearageAmount : '已结清'
-        //将阶梯收费id转为name
-        tieredChargeList.value.forEach((item) => {
-            if (item.id == Forms.value.waterData.tieredChargingId) {
-                Forms.value.waterData.tieredChargingId = item.name
-            }
-        })
-    }
-    //新建账户判断
-    const isNewForm = ref(false)
-    const setNewForm = () =>{
-        isShow.value = true
-        isNewForm.value  = true
-        alterationFormId.value.laterUserId = ''
-    }
-    //取消清空数据
-    const concelNewForm = ()=>{
-        isShow.value = false
-        isNewForm.value  = false
-        alterationFormData.value = {
-            beforeUserId:'',
-            meterSn:'',
-            userName: '',
-            phone: '',
-            idCard: '',
-            classifyId: '',
-            listRegion: [], 
-            address: '',  
-            businessAddress: businessAddress.value,  
-            tieredChargingId: '',   
-            remark: '',  
-            url: '' 
-        }
-    }
-    // const handleCurrentChange = (val) =>{
-    //     getTableData({page:val})
-    //     console.log('val2',val)
-    // }
-    
-    //上传文件,添加图片地址信息
-    const uploadData = (data) => {
-    alterationFormData.value.url = data.toString()
-    }
-    //区域相关----------------------------------------------------------------------------
-    //展开所属区域树形, 请求展开区域的下一层子级数据
-    const expandTree = async (data) => {
-
-    //请求展开区域的下一层子级列表数据
-    let res = await region().search(data.code)
-    if(res.code == 200) {
-    res.data.forEach((item)=>{
-            if((item.children == null) && item.level!=4){
-                item.children = [{}]
-            }
-    })
-    data.children =  res.data
-    }
-    }
-    //选中区域数据处理
-    const changeTreeValue = (_,nodeData) => {
-        console.log('alterationRegionId',nodeData);
-        let codelist = getTreeCode(nodeData, 'id')
-        // alterationFormData.value.listRegion = codelist.map((item) => item = Number(item));
-        alterationFormData.value.listRegion = codelist.join().split(',')
-        console.log('alterationFormData.value.listRegion',alterationFormData.value.listRegion);
-        nextTick(()=>{
-            alterationRegionId.value = getTreeCode(nodeData, 'name').join(',')
-        })
-
-    }
-    //从当前选择区域树形查找父级code,组装为[123,456,789](xx省/xx市/xx区)
-    const getTreeCode = (tree, type) => {
-        let codeList = []
-        if(tree.data.level!=1){
-            codeList = codeList.concat(getTreeCode(tree.parent, type))
-            codeList.push(tree.data[type])
-        }else{
-            return [tree.data[type]]
-        }
-        return codeList
-    }
-
-    /**
-     *
-     * 表单校验
-     */
-    //过户表单校验
-    const accountRules = ref({
-            snId: [{required: true, message: '请选择水表编号', trigger: 'blur'}],
-            userNameId: [
-                {required: true, message: '请选择账户名称', trigger: 'blur'}
-            ],
-        })
-    //老用户开户表单校验
-    const rules0 = ref({
-        laterUserId: [
-            {required: true, message: '请选择账户名称', trigger: 'blur'}
-        ],
-    })
-    //新用户开户表单校验
-    const rules = ref({
-        userName: [
-            {required: true, message: '请输入名称', trigger: 'blur'},
-            {pattern: /^[\u4e00-\u9fa5\\·]*$/, message: '请输入中文或" · "符号', trigger: 'blur'},
-        ],
-        phone: [
-            {required: true, message: '请输入电话号码', trigger: 'blur'},
-            {pattern: /^1[3-9]\d{9}$/, message: '手机号格式不正确', trigger: 'blur'}
-        ],
-        address: [
-            {required: true, message: '请输入用户地址', trigger: 'blur'}
-        ],
-        idCard: [
-            {required: true, message: '请输入身份证号', trigger: 'blur'},
-            {
-                pattern: /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/,
-                trigger: 'blur',
-                message: "身份证号格式不正确"
-            }
-        ],
-        classifyId: [
-            {required: true, message: '请选择用户类型', trigger: 'blur'}
-        ],
-        listRegion: [
-            {required: true, message: '请选择区域', trigger: 'blur'}
-        ],
-        businessAddress: [
-            {required: true, message: '请选择营业网点', trigger: 'blur'}
-        ],
-        tieredChargingId: [
-            {required: true, message: '请选择收费配置', trigger: 'blur'},
-        ],
-        url: [
-            {required: true, message: '请上传相关资料', trigger: 'blur'}
-        ],
-    })
-    //提交过户申请
-    const submitForm = async() =>{
-            if(userNameId.value && snId.value){
-                if(isShow.value){
-                    alterationFormRefNew.value.validate(async (validate) =>{
-                        if(validate){
-                            alterationFormData.value.beforeUserId = userNameId.value
-                            alterationFormData.value.meterSn = snId.value
-                            // 将url字符串转数组,方便加imageUrl前缀,再转为字符串
-                            // let url = alterationFormData.value.url.split(",")
-                            // alterationFormData.value.url = url.map((item) => PREURL + item).join()
-                            confirmFormData.value = alterationFormData.value
-
-                            let res = await waterMeterAlterationApi().creatWaterMeterAlteration(confirmFormData.value)
-                            if(res.code == 200){
-                                ElMessage({message:"已提交过户申请!",type:'success'})
-                                formVisible.value = false
-                                getTableData()
-                            }
-                        }
-                    })
-                }else{
-                    alterationFormRef.value.validate(async(validate) =>{
-                        if(validate){
-                            alterationFormId.value.beforeUserId = userNameId.value
-                            alterationFormId.value.meterSn = snId.value
-                            confirmFormData.value = alterationFormId.value
-
-                            let res = await waterMeterAlterationApi().creatWaterMeterAlteration(confirmFormData.value)
-                            if(res.code == 200){
-                                ElMessage({message:"已提交过户申请!",type:'success'})
-                                formVisible.value = false
-                                getTableData()
-                            }
-                        }
-                    })
-                }
-            }else{
-                proxy.$modal.msgWarning("请选择账户名称和水表编号!");
-            }
-    }
-    const cancelForm = () =>{
-        formVisible.value = false
-    }
-    // 详情相关
-    const formDetailVisible = ref(false)
-    const formDetail = ref({  
-        alterationNumber: '',  
-        meterSn: '',   
-        companyName: '',  
-        createTimeView: '',  
-        updateTimeView: '', 
-        installAddress: '',  
-        beforeUser: { 
-            userName:'', 
-            idCard: '',   
-            userPhone: '',  
-            userAddress: '',  
-            walletBalance: '',  
-            totalWater: '',  
-            arrearsStatus: '',   
-        },  
-        laterUser: { 
-            userName:'',  
-            idCard: '',   
-            userPhone: '',  
-            userAddress: '', 
-        },  
-})
-    const ToDetail = async(row,val) =>{
-        formDetailVisible.value = true
-       let res = await waterMeterAlterationApi().getWaterMeterAlteration(row.id)
-        console.log('row',row)
-        if(res.code == 200){
-            formDetail.value = res.data
-        }
-        if(val === 2){
-            isExecute.value = true
-        }else{
-            isExecute.value = false
-        }
-    }
-    //执行相关
-    const isExecute = ref(false)
-    // 提交确认过户
-    const acceptAccountForm = async() =>{
-        let res = await waterMeterAlterationApi().executeWaterMeterAlteration(formDetail.value.id,3)
-        if(res.code == 200){
-            ElMessage({message:'过户成功!',type:'success'})
-        }
-        formDetailVisible.value = false
-        getTableData()
-    }
-
-    onMounted(async() => {
-        getTableData()
-        
-        // 获取用户类型列表
-        let res1 = await userClassify().search({ status: 1,limit: 10000, page: 1})
-        if(res1.code == 200) {
-            userTypeList.value = res1.data.list
-            }
-        
-        //获取区域列表
-        let res3 = await region().search('')
-            if(res3.code == 200) {
-                res3.data.forEach((item)=>{
-                        if(item.children == null){
-                            item.children = [{}]
-                        }
-                    }) 
-                regionTreeList.value = res3.data
-            }
-        // 获取用户档案列表
-        
-        let res4 = await archivesApi().search({limit: 10000, status: 1,page:1})
-            if (res4.code == 200) {
-                userNameList.value = res4.data.list
-            }
-            
-        let res5 = await salePlaceApi().search({limit:10,page:1})
-            if(res5.code == 200){
-            businessAddressList.value = res5.data.list
-            }
-            
-        // 请求阶梯类型列表
-        let res6 = await TieredCharging().search({ limit: 100,page:1})
-        if(res6.code == 200){
-            tieredChargeList.value = res6.data.list
-            }
-    })
-</script>
-<template>
-    <div class="app-container">
-        <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="search">搜索</el-button>
-             <el-button icon="Refresh" @click="getTableData">重置</el-button>
-          </el-form-item>
-       </el-form>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="addAccount"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-            <el-table :data="tableData">
-                <el-table-column v-for="(item,key,index) of setTableList" :key="index" :prop="key.toString()" :label="item" width="180" />
-                <el-table-column prop="handle" label="操作" width="180" fixed="right">
-                    <template #default="scope">
-                    <el-button @click="ToDetail(scope.row,1)"  link type="primary" icon="Document">查看</el-button>
-                    <el-button v-if="scope.row.executeType == 1 || scope.row.executeType == 2" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen" >执行</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <!--分页区域-->
-            <pagination
-                :total="pageParam.total"
-                v-model:page="pageParam.page"
-                v-model:limit="pageParam.limit"
-                :page-sizes="[10,20,30]"
-                @pagination="getTableData"
-            />
-        <el-dialog v-model="formVisible" title="水表过户"  center align-center >
-            <div class="main">
-                <p>过户人信息</p>
-                <el-form class="form-box1" :model="Forms.accountData" :rules="accountRules" ref="accountFormRef" label-width="auto" inline>
-                    <el-form-item label="账户名称:" prop="userNameId">
-                        <el-select v-model="userNameId" placeholder="请选择用户" @change="handleChange">
-                            <el-option
-                            v-for="item in userNameList"
-                            :key="item.id"
-                            :label="item.userName"
-                            :title="item.userName"
-                            :value="item.id"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item label="用户类型:" prop="classifyTxt" >
-                        <span>{{Forms.accountData.classifyTxt }}</span>
-                    </el-form-item>
-
-                    <el-form-item label="过户水表编号:" prop="snId">
-                        <el-select v-model="snId"  placeholder="请选择水表编号" @change=handleWaterChange>
-                            <el-option
-                            v-for="(item) in snList"
-                            :label="item.sn"
-                            :title="item.sn"
-                            :value="item.sn"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item label="用户户号:" prop="userCode">
-                        <span>{{Forms.accountData.userCode}}</span>
-                    </el-form-item>
-                    
-                    <el-form-item label="身份证号:"  prop="idCard">
-                        <span>{{Forms.accountData.idCard}}</span>
-                    </el-form-item>
-
-                    <el-form-item label="开户地址:"  prop="region">
-                        <span>{{Forms.accountData.region}}</span>
-                    </el-form-item> 
-
-                    <el-form-item label="电话号码:" prop="userPhone">
-                        <span>{{Forms.accountData.userPhone}}</span>
-                    </el-form-item>
-
-                    <el-form-item label="欠费金额:" prop="arrearageAmount">
-                        <span>{{Forms.waterData.arrearageAmount}}</span>
-                    </el-form-item>
-
-                    
-                    <el-form-item label="水表安装地址:" prop="address">
-                        <span>{{Forms.waterData.address}}</span>
-                    </el-form-item>
-                    
-                    <el-form-item label="收费类型:"  prop="tieredChargingId">
-                        <span>{{Forms.waterData.tieredChargingId}}</span>
-                    </el-form-item>
-                    <br>
-                    <div class="upload">
-                        <el-form-item label="用户资料:"  prop="url" >
-                            <upload-icons @uploadData="uploadData" :imageList="Forms.accountData.url" :limit="9" :disabled="true"></upload-icons>
-                            <span style="display: block;">(身份证、房产证等)</span>
-                        </el-form-item>
-                    </div>
-                </el-form>
-                <!-- 承接人为老用户 -->
-                <p>承接人信息</p>
-                <div class="form2">
-                    <div class="formUp">
-                        <el-form class="form-box1" :model="alterationFormId" :rules="rules0"  ref="alterationFormRef" label-width="auto" inline>
-                            <el-form-item label="承接用户:" prop="laterUserId" >
-                                <el-select v-model="alterationFormId.laterUserId" :disabled="isNewForm ? true : false"  filterable placeholder="请选择承接用户">
-                                    <el-option
-                                    v-for="item in userNameList"
-                                    :key="item.id"
-                                    :label="item.userName"
-                                    :title="item.userName"
-                                    :value="item.id"
-                                    />
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item>
-                                <el-button type="primary" @click="setNewForm">新建账户</el-button>
-                                <el-button  @click="concelNewForm">取消</el-button>
-                            </el-form-item>
-                        </el-form>
-                    </div>
-                    <!-- 承接人为新用户 -->
-                    <el-form class="form-box1" v-if="isShow" :rules="rules" :model="alterationFormData"  ref="alterationFormRefNew" label-width="auto" inline>
-                        <el-form-item label="用户名称:" prop="userName">
-                            <el-input v-model="alterationFormData.userName" ></el-input>
-                        </el-form-item>
-
-                        <el-form-item label="电话号码:" prop="phone">
-                            <el-input v-model="alterationFormData.phone"  ></el-input>
-                        </el-form-item>
-
-                        <el-form-item label="身份证号:" prop="idCard">
-                            <el-input v-model="alterationFormData.idCard"  ></el-input>
-                        </el-form-item>
-                        
-                        <el-form-item label="用户类型:" prop="classifyId" >
-                            <el-select v-model="alterationFormData.classifyId"  placeholder="请选择用户类型">
-                                <el-option
-                                v-for="item in userTypeList"
-                                :key="item.value"
-                                :label="item.name"
-                                :title="item.name"
-                                :value="item.id">
-                                </el-option>
-                            </el-select>
-                        </el-form-item>
-
-                        <el-form-item label="所属区域:"  prop="listRegion">
-                            <el-tree-select 
-                                v-model="alterationRegionId"
-                                :data="regionTreeList"
-                                :props="{label:'name', value:'id'}" 
-                                placeholder="请选择所属区域" 
-                                filterable 
-                                highlight-current 
-                                :check-strictly="true" 
-                                @node-expand="expandTree"
-                                @current-change="changeTreeValue"
-                            />
-                        </el-form-item> 
-
-                        <el-form-item label="用户地址:" prop="address">
-                            <el-input v-model="alterationFormData.address"  ></el-input>
-                        </el-form-item>
-                        
-                        <el-form-item label="营业点:" prop="businessAddress">
-                        <el-select v-model="alterationFormData.businessAddress" placeholder="请选择营业网点">
-                            <el-option
-                            v-for="item in businessAddressList"
-                            :key="item.value"
-                            :label="item.name"
-                            :title="item.name"
-                            :value="item.id">
-                            </el-option>
-                        </el-select>
-                        </el-form-item>
-                        
-                        <el-form-item label="收费类型:"  prop="tieredChargingId">
-                            <el-select v-model="alterationFormData.tieredChargingId" filterable placeholder="请选择阶梯收费配置">
-                                <el-option
-                                v-for="item in tieredChargeList"
-                                :key="item.id"
-                                :label="item.name"
-                                :title="item.name"
-                                :value="item.id"
-                                />
-                            </el-select>
-                        </el-form-item>
-
-                        <el-form-item label="备注:" prop="remark">
-                            <el-input type="textarea" v-model="alterationFormData.remark" maxlength="200" size="large" ></el-input>
-                        </el-form-item>
-                        <br>
-                        <div class="upload">
-                            <el-form-item label="资料上传:"  prop="url">
-                                <upload-icons @uploadData="uploadData" :imageList="alterationFormData.url" :limit="9" ></upload-icons>
-                                <span style="display: block;">(可上传身份证、房产证等最多9张)</span>
-                            </el-form-item>
-                        </div>
-                    </el-form>
-                </div>
-                <div class="submit-btn">
-                    <el-button  size="large" @click="cancelForm">取消</el-button>
-                    <el-button type="primary" size="large" @click="submitForm">确认过户</el-button>
-                </div>
-            </div>
-        </el-dialog>
-        <el-dialog v-model="formDetailVisible" :title="isExecute ? '水表过户确认' : '水表过户详情'" style="width: 60vw;" center align-center >
-            <div class="detail">
-                    <div class="item">
-                        <div class="title">过户单编号:</div>
-                        <div>{{ formDetail.alterationNumber }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">水表唯一编号:</div>
-                        <div>{{ formDetail.meterSn }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">所属公司名称:</div>
-                        <div>{{ formDetail.companyName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">水表安装地址:</div>
-                        <div>{{ formDetail.installAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">过户人:</div>
-                        <div>{{ formDetail.beforeUser.userName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">过户人身份证号:</div>
-                        <div>{{ formDetail.beforeUser.idCard }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">过户人电话号码:</div>
-                        <div>{{ formDetail.beforeUser.userPhone }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">过户人地址:</div>
-                        <div>{{ formDetail.beforeUser.regionName + formDetail.beforeUser.userAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">承接人:</div>
-                        <div>{{ formDetail.laterUser.userName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">承接人身份证号:</div>
-                        <div>{{ formDetail.laterUser.idCard }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">承接人电话:</div>
-                        <div>{{ formDetail.laterUser.userPhone }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">承接人地址:</div>
-                        <div>{{ formDetail.laterUser.regionName + formDetail.laterUser.userAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建时间:</div>
-                        <div>{{ formDetail.createTimeView }}</div>
-                    </div>
-                    <div class="item">
-                        <div>修改时间:</div>
-                        <div>{{ formDetail.updateTimeView }}</div>
-                    </div>
-                </div>
-                <template #footer>
-                    <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                    <div class="Execution-btn" v-if="isExecute">
-                        <div>
-                            <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="acceptAccountForm">确认过户</el-button>
-                        </div>
-                    </div>
-                </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style lang="scss" scoped>
-.main{
-    width: 100%;
-    height: 100%;
-    // background-color: #f3f5f8;
-    border-radius: 15px;
-    .text-select {
-        height: 5%;
-        padding-top: 20px;
-        display: flex;
-        align-items: center;
-        margin-left: 20px;
-        :deep(.el-input) {
-        width: 318px !important;
-        height: 40px;
-        margin-right: 0;
-        margin-bottom: 2px;
-        }
-        :deep(.el-input__wrapper) {
-        margin-right: 0;
-        }
-        .el-button {
-        margin-left: 10px;
-        margin-right: 80px;
-        }
-    };
-    p{
-        margin-left: 20px;
-        font-size: 22px;
-        font-weight: 500;
-        color: #414244;
-    };
-    .el-form {
-        padding: 20px;
-        width: 94%;
-        margin: 0 auto;
-        .upload{
-            .el-form-item{
-            width:90%;
-        }
-        }
-        .el-form-item{
-            width:45%;
-        }
-    }
-    .submit-btn{
-        display: flex;
-        justify-content: center;
-        .el-button{
-            margin: 10px;
-        }
-    }
-    .add-btn{
-        width: 100%;
-        height: 80px;
-        .el-button{
-            margin: 25px 0 0 2.5%;
-        }
-    }
-    .el-table{
-        width: 95%;
-        padding-top: 10px;
-        margin: 0 auto;
-        border-radius: 20px;
-        // border: solid 1px;
-    }
-    
-    :deep(.el-dialog) {
-    // text-align: left;
-    min-width: 954px;
-    max-height: 88vh;
-    overflow-y: auto;
-    border-radius: 15px;
-    --el-dialog-margin-top: 8vh;
-    .el-dialog__body {
-        padding: 10px;
-    }
-    }
-}
-.detail{
-    display:flex;
-    justify-content:flex-start;
-    width:100%;
-    flex-wrap:wrap;
-    padding-left: 50px;
-    .item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-}
-}  
-.Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 10px 10px 10px ;
-        }
-    }
-.formUp{
-    margin-bottom: 20px;
-}
-.form-box1{
-    padding-top: 20px;
-    display: flex;
-    flex-wrap: wrap;
-    width: 98%;
-    justify-content:flex-start;
-    border-radius: 10px;
-    box-shadow: 0 0 5px 1px #ecedee;
-    background-color: #ffffff;
-    margin:0 auto;
-    .el-form-item{
-        width: 46%;
-    }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterChange/index.vue b/src/views/workOrderManage/waterMeterChange/index.vue
deleted file mode 100644
index aec0531..0000000
--- a/src/views/workOrderManage/waterMeterChange/index.vue
+++ /dev/null
@@ -1,541 +0,0 @@
-
- 
- <script setup name="Menu">
- import  user from "@/api/system/user";
- import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
- import  waterMeterApi from "@/api/waterMeterApi/index";
-import { waterMeterChangeApi }  from '@/api/workOrderManage/waterMeterChangeApi/index';
-import   billRecord  from "@/api/financial/billRecord/index";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        id: '序号',
-        userName: "用户姓名",
-        beforeMeterSn: "更换前水表",
-        laterMeterSn: "更换后水表",
-        constructionUserName: "施工人员",
-        constructionTime: "上门时间",
-        operatorUserName: "经办人",
-        executeTypeView: "操作状态",
-        createTimeView: "创建日期",
-        createUserName: "创建人"
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await waterMeterChangeApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   title.value = "新增更换工单";
-    open.value = true;
- }
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    
-    userName: [{required: true, message: '请选择用户', trigger: 'blur'},],
-    beforeMeterSn: [{required: true, message: '请选择需要更换的水表编号', trigger: 'blur'},],
-    laterMeterSn: [{required: true, message: '请选择更换后的水表编号', trigger: 'blur'},],
-    operatorUser: [{required: true, message: '请选择经办人', trigger: 'blur'},],
-    constructionUser: [{required: true, message: '请选择施工人员', trigger: 'blur'},],
-    constructionTime: [{required: true, message: '请选择上门时间', trigger: 'blur'},],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//获取账号列表选择
-const accountList = ref()
-const userList = ref()
-const newMeterSnList = ref()
-const getAllList = async() =>{
-// 获取用户档案列表
-let res1 = await archivesApi().search({limit: 10000, status: 1,page:1})
-if (res1.code == 200) {
-userList.value = res1.data.list
-}
-//获取账号列表
-let res2 = await user().search({limit: 10000, status: 1,page:1})
-if (res2.code == 200) {
-    accountList.value = res2.data.list
-}
-// 获取未使用水表编号 
-let res3 = await waterMeterApi().getIsUse(0)
-if(res3.code == 200){
-    newMeterSnList.value = res3.data
-    console.log('456',newMeterSnList.value);
-}
- }
-//选择用户获取对应水表列表
-const beforeMeterSnList = ref()
-const changeUser = async (val) => {
-    form.value.beforeMeterSn=""
-    //选中用户显示用户信息
-    let user = userList.value.find((item) => item.id == val)
-    Object.keys(user).forEach((key) =>{
-        if(form.value.hasOwnProperty(key)){
-            form.value[key] = user[key]
-        }
-    })
-    //请求该用户名下水表
-    let res3 = await waterMeterApi().getByUser(val)
-    if (res3.code == 200) {
-        beforeMeterSnList.value = res3.data
-    }
-}
-//选中水表获取欠费信息
-const changeWaterMeter = async (val) => {
-let res1 = await billRecord().getMeterArrearsAmount(val)
-    if (res1.code == 200) {
-        form.value.isArrearage = res1.data
-    }
-    let meter = beforeMeterSnList.value.find((item) => item.sn == val)
-    form.value.address = meter.address
-    form.value.modeCode = meter.modeCode
-    console.log('meter',meter);
-}
-//根据经办人id添加经办人Name
-const changeOperatorUser = async (val) => {
-    accountList.value.forEach((item) =>{
-        if(item.id == val){
-            form.value.operatorUserName = item.nickName
-        }
-    })
-    console.log('45646',form.value);
-}
-//根据施工人员id添加施工人员Name
-const changeConstructionUser = (val)=>{
-    accountList.value.forEach((item) =>{
-        if(item.id == val){
-            form.value.constructionUserName = item.nickName
-        }
-    })
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-        waterMeterChangeApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-        waterMeterChangeApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
-
- /** 表单重置 */
- function reset() {
-   form.value = {
-        classifyTxt: '',
-        classifyId: 0,
-        userId: "",
-        userName: "",
-        idCard: "",
-        userCode: "",
-        modeCode: "",
-        userAddress: "",
-        userPhone: "",
-        beforeMeterSn: "",
-        address: "",
-        laterMeterSn: "",
-        operatorUser: "",
-        operatorUserName: "",
-        arrearageAmount: "",
-        constructionUser:"",
-        constructionUserName:"",
-        constructionTime:"",
-   };
-   proxy.resetForm("formRef");
- }
-  /**
-  * 详情、执行相关
-  */
-const formDetail = ref()
-const formDetailVisible = ref()
-const isExecute = ref(false)
-const ToDetail = async(row,val) =>{
-    let res = await waterMeterChangeApi().get(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-    }
-    formDetailVisible.value = true
-    if(val === 2){
-        isExecute.value = true
-    }else{
-        isExecute.value = false
-    } 
-}
-// 提交确认
-const acceptAccountForm = async() =>{
-    let res = await waterMeterChangeApi().execute({id:formDetail.value.id,executeType:2})
-    if(res.code == 200){
-        ElMessage({message:'已接受更换申请!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
-// 提交完成
-const completeAccountForm = async() =>{
-    let res = await waterMeterChangeApi().execute({id:formDetail.value.id,executeType:3})
-    if(res.code == 200){
-        ElMessage({message:'完成水表更换!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
-// 撤销
-const revokeAccountForm = async() =>{
-    let res = await waterMeterChangeApi().execute({id:formDetail.value.id,executeType:4})
-    if(res.code == 200){
-        ElMessage({message:'撤销成功!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
- getList();
- getAllList()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button @click="ToDetail(scope.row,1)"  link type="primary" icon="Document">详情</el-button>
-                <el-button v-if="(scope.row.executeType == 1) || (scope.row.executeType == 2)" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen">执行</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                <el-form-item label="开户人名称"  prop="userId">
-                    <el-select v-model="form.userId" clearable placeholder="请选择开户人"
-                                @change="changeUser">
-                        <el-option
-                                v-for="(item,index) in userList"
-                                :key="item.id"
-                                :label="item.userName"
-                                :title="item.userName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="用户类型"  prop="classifyTxt">{{
-                    form.classifyTxt
-                    }}
-                </el-form-item>
-                <el-form-item label="联系电话"  prop="userPhone">
-                    {{ form.userPhone }}
-                </el-form-item>
-                <el-form-item label="身份证号码"  prop="idCard">
-                    {{ form.idCard }}
-                </el-form-item>
-                <el-form-item label="用户地址"  prop="userAddress">
-                    {{ form.userAddress }}
-                </el-form-item>
-                <el-form-item label="户号"  prop="userId">
-                    {{ form.userCode }}
-                </el-form-item>
-                <el-form-item label="更换水表"  prop="beforeMeterSn">
-                    <el-select v-model="form.beforeMeterSn" 
-                                placeholder="请选择水表编号"  @change="changeWaterMeter">
-                        <el-option
-                                v-for="(item,index) in beforeMeterSnList"
-                                :key="item.id"
-                                :label="item.sn"
-                                :title="item.sn"
-                                :value="item.sn"
-                        />
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="水表型号"  prop="modelCode">
-                    {{ form.modeCode }}
-                </el-form-item>
-                <el-form-item label="安装地址"  prop="address">
-                    {{ form.address }}
-                </el-form-item>
-                <el-form-item label="欠费金额"  prop="isArrearage">
-                    {{ form.isArrearage }}
-                </el-form-item>
-
-
-                <el-form-item label="新水表"  prop="laterMeterSn">
-                    <el-select v-model="form.laterMeterSn"  
-                                placeholder="请选择水表编号" >
-                        <el-option
-                                v-for="item in newMeterSnList"
-                                :key="item.id"
-                                :label="item.sn"
-                                :title="item.sn"
-                                :value="item.sn"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="施工人员"  prop="constructionUser">
-                    <el-select v-model="form.constructionUser"  
-                                placeholder="请选择施工人员"  @change="changeConstructionUser">
-                        <el-option
-                                v-for="item in accountList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="上门时间"  prop="constructionTime">
-                        <el-date-picker
-                            v-model="form.constructionTime"
-                            type="date"
-                            placeholder="请选择安装日期和时间"
-                            format="YYYY-MM-DD"
-                            value-format="YYYY-MM-DD"
-                            style="width: 100%"
-                        />
-                </el-form-item>
-                <el-form-item label="经办人"  prop="operatorUser">
-                    <el-select v-model="form.operatorUser"  
-                                placeholder="请输入或选择经办人"  @change="changeOperatorUser">
-                        <el-option
-                                v-for="item in accountList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-
-                </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-       
-       <el-dialog v-model="formDetailVisible" title="水表维修详情" style="width: 60vw;" center align-center >
-        <div class="detail">
-                    <div class="item">
-                        <div class="title">工单编号:</div>
-                        <div>{{ formDetail.workNumber }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户姓名:</div>
-                        <div>{{ formDetail.userName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户编号:</div>
-                        <div>{{ formDetail.userCode }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户类型:</div>
-                        <div>{{ formDetail.classifyName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户电话:</div>
-                        <div>{{ formDetail.userPhone }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户地址:</div>
-                        <div>{{ formDetail.userAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">销户水表编号:</div>
-                        <div>{{ formDetail.meterSn }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">水表安装地址:</div>
-                        <div>{{ formDetail.installAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">是否欠费:</div>
-                        <div>{{ formDetail.isArrearage == 0 ? '否' : '是' }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">执行状态:</div>
-                        <div>{{ formDetail.executeTypeView }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工人员:</div>
-                        <div>{{ formDetail.constructionUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>上门时间:</div>
-                        <div>{{ formDetail.constructionTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>经办人姓名:</div>
-                        <div>{{ formDetail.operatorUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建时间:</div>
-                        <div>{{ formDetail.createTimeView }}</div>
-                    </div>
-                    <div class="item">
-                        <div>更新时间:</div>
-                        <div>{{ formDetail.updateTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建人:</div>
-                        <div>{{ formDetail.createUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>更新人:</div>
-                        <div>{{ formDetail.updateUserName }}</div>
-                    </div>
-                </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="acceptAccountForm">接受更换</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.executeType==2" type="primary" size="large" @click="completeAccountForm">完成更换</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="revokeAccountForm">撤销工单</el-button>
-                    </div>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
- </template>
- <style>
-.Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 10px 10px 10px;
-        }
-    }
-.detail{
-    display:flex;
-    justify-content:flex-start;
-    width:100%;
-    flex-wrap:wrap;
-    padding-left: 50px;
-    .item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-    }
-}    
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterCloseAccount/index.vue b/src/views/workOrderManage/waterMeterCloseAccount/index.vue
deleted file mode 100644
index daa0f83..0000000
--- a/src/views/workOrderManage/waterMeterCloseAccount/index.vue
+++ /dev/null
@@ -1,516 +0,0 @@
-
- 
- <script setup name="Menu">
- import  user from "@/api/system/user";
- import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
- import  waterMeterApi from "@/api/waterMeterApi/index";
-import { waterMeterCloseAccountApi }  from '@/api/workOrderManage/waterMeterCloseAccountApi/index';
-import  billRecord from "@/api/financial/billRecord/index";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        id: '序号',
-        workNumber: '工单编号',
-        userName: "用户姓名",
-        classifyName: "用户类型",
-        userCode: "户号",
-        userPhone: "用户电话",
-        businessAddress: "营业点",
-        userAddress: "用户地址",
-        meterSn: "水表编号",
-        installAddress: "安装地址",
-        isArrearageView: "是否欠费",
-        executeTypeView: "执行状态",
-        createTimeView: "创建日期",
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await waterMeterCloseAccountApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   title.value = "新增销户";
-    open.value = true;
- }
- 
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-    userName: [{ required: true, message: "请选择用户", trigger: "blur" }],
-    constructionUser: [{ required: true, message: "请选择施工人员", trigger: "blur" }],
-    constructionTime: [{ required: true, message: "请选择上门时间", trigger: "blur" }],
-    operatorUser: [{ required: true, message: "请选择经办人", trigger: "blur" }],
-    meterSn: [{ required: true, message: "请选择注销水表", trigger: "blur" }],
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-    //获取账号列表选择
-    const constructionUserList = ref()
-    const operatorUserList = ref()
-    const userList = ref()
- const getAllList = async() =>{
-    // 获取用户档案列表
-    let res5 = await archivesApi().search({limit: 10000, status: 1,page:1})
-    if (res5.code == 200) {
-    userList.value = res5.data.list
-    }
-    let res6 = await user().search({limit: 10000, status: 1,page:1})
-    if (res6.code == 200) {
-        constructionUserList.value = res6.data.list
-        operatorUserList.value = res6.data.list
-    }
- }
- const waterMeterList = ref()
- //选择用户获取对应水表列表
-const changeUser = async (val) => {
-    form.value.meterSn=""
-    //选中用户显示用户信息
-    let user = userList.value.find((item) => item.id == val)
-    Object.keys(user).forEach((key) =>{
-        if(form.value.hasOwnProperty(key)){
-            form.value[key] = user[key]
-        }
-    })
-    //请求该用户名下水表
-    let res3 = await waterMeterApi().getByUser(val)
-    if (res3.code == 200) {
-        waterMeterList.value = res3.data
-    }
-}
-//选中水表获取欠费信息
-const changeWaterMeter = async (val) => {
-let res1 = await billRecord().getMeterArrearsAmount(val)
-    if (res1.code == 200) {
-        form.value.isArrearage = res1.data
-    }
-}
-//根据经办人id添加经办人Name
-const changeOperatorUser = async (val) => {
-    operatorUserList.value.forEach((item) =>{
-        if(item.id == val){
-            form.value.operatorUserName = item.nickName
-        }
-    })
-    console.log('45646',form.value);
-}
-//根据施工人员id添加施工人员Name
-const changeConstructionUser = (val)=>{
-    constructionUserList.value.forEach((item) =>{
-        if(item.id == val){
-            form.value.constructionUserName = item.nickName
-        }
-    })
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-         waterMeterCloseAccountApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-        waterMeterCloseAccountApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
-
- /** 表单重置 */
- function reset() {
-   form.value = {
-        classifyTxt: '',
-        classifyId: 0,
-        userId: "",
-        userName: "",
-        idCard: "",
-        userCode: "",
-        modeCode: "",
-        userAddress: "",
-        userPhone: "",
-        meterSn: "",
-        address: "",
-        operatorUser: "",
-        operatorUserName: "",
-        constructionUser: "",
-        constructionUserName: "",
-        constructionTime:"",
-        isArrearage: 0,
-        remark: "",
-   };
-   proxy.resetForm("formRef");
- }
-  /**
-  * 详情、执行相关
-  */
-const formDetail = ref()
-const formDetailVisible = ref()
-const isExecute = ref(false)
-const ToDetail = async(row,val) =>{
-    let res = await waterMeterCloseAccountApi().get(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-    }
-    formDetailVisible.value = true
-    if(val === 2){
-        isExecute.value = true
-    }else{
-        isExecute.value = false
-    } 
-}
-// 提交确认报修
-const acceptAccountForm = async() =>{
-    let res = await waterMeterCloseAccountApi().execute({id:formDetail.value.id,executeType:2})
-    if(res.code == 200){
-        ElMessage({message:'已接受销户申请!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
-// 提交完成报修
-const completeAccountForm = async() =>{
-    let res = await waterMeterCloseAccountApi().execute({id:formDetail.value.id,executeType:3})
-    if(res.code == 200){
-        ElMessage({message:'完成销户!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
-// 撤销报修
-const revokeAccountForm = async() =>{
-    let res = await waterMeterCloseAccountApi().execute({id:formDetail.value.id,executeType:4})
-    if(res.code == 200){
-        ElMessage({message:'撤销成功!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
- getList();
- getAllList()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item  prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入水表编号"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button @click="ToDetail(scope.row,1)"  link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <el-button v-if="(scope.row.executeType == 1) || (scope.row.executeType == 2)" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen" title="详细信息">执行</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                <el-form-item label="用户名称"  prop="userId">
-                    <el-select v-model="form.userId" filterable placeholder="请输入或选择开户人" @change="changeUser">
-                        <el-option
-                                v-for="(item,index) in userList"
-                                :key="item.id"
-                                :label="item.userName"
-                                :title="item.userName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="用户类型:" prop="classifyTxt">{{
-                    form.classifyTxt
-                    }}
-                </el-form-item>
-                <el-form-item label="联系电话:"  prop="userPhone">
-                    {{ form.userPhone }}
-                </el-form-item>
-                <el-form-item label="身份证号码:"  prop="idCard">
-                    {{ form.idCard }}
-                </el-form-item>
-                <el-form-item label="用户地址:"  prop="userAddress">
-                    {{ form.userAddress}}
-                </el-form-item>
-                <el-form-item label="户号:"  prop="userCode">
-                    {{ form.userCode }}
-                </el-form-item>
-                <el-form-item label="注销水表:"  prop="meterSn">
-                    <el-select v-model="form.meterSn"  filterable
-                                placeholder="请选择要注销的水表编号" @change="changeWaterMeter">
-                        <el-option
-                                v-for="item in waterMeterList"
-                                :key="item.id"
-                                :label="item.sn"
-                                :title="item.sn"
-                                :value="item.sn"
-                                size="large"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="欠费金额:"  prop="isArrearage">
-                    {{ form.isArrearage }}
-                </el-form-item>
-                <el-form-item label="施工人员"  prop="constructionUser">
-                    <el-select v-model="form.constructionUser"  filterable
-                                placeholder="请选择施工人员"  @change="changeConstructionUser">
-                        <el-option
-                                v-for="item in constructionUserList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="上门时间"  prop="constructionTime">
-                        <el-date-picker
-                            v-model="form.constructionTime"
-                            type="date"
-                            placeholder="请选择安装日期和时间"
-                            format="YYYY-MM-DD"
-                            value-format="YYYY-MM-DD"
-                            style="width: 100%"
-                        />
-                </el-form-item>
-                <el-form-item label="经办人"  prop="operatorUser">
-                    <el-select v-model="form.operatorUser" class="m-2" filterable
-                            placeholder="请选择经办人"  @change="changeOperatorUser">
-                        <el-option
-                                v-for="item in operatorUserList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                        />
-                    </el-select>
-                </el-form-item>
-
-                <el-form-item label="备注"  prop="remark">
-                    <el-input v-model="form.remark"></el-input>
-                </el-form-item>
-            </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-       
-       <el-dialog v-model="formDetailVisible" title="水表维修详情" style="width: 60vw;" center align-center >
-        <div class="detail">
-                    <div class="item">
-                        <div class="title">工单编号:</div>
-                        <div>{{ formDetail.workNumber }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户姓名:</div>
-                        <div>{{ formDetail.userName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户编号:</div>
-                        <div>{{ formDetail.userCode }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户类型:</div>
-                        <div>{{ formDetail.classifyName }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户电话:</div>
-                        <div>{{ formDetail.userPhone }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">用户地址:</div>
-                        <div>{{ formDetail.userAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">销户水表编号:</div>
-                        <div>{{ formDetail.meterSn }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">水表安装地址:</div>
-                        <div>{{ formDetail.installAddress }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">是否欠费:</div>
-                        <div>{{ formDetail.isArrearage == 0 ? '否' : '是' }}</div>
-                    </div>
-                    <div class="item">
-                        <div class="title">执行状态:</div>
-                        <div>{{ formDetail.executeTypeView }}</div>
-                    </div>
-                    <div class="item">
-                        <div>施工人员:</div>
-                        <div>{{ formDetail.constructionUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>上门时间:</div>
-                        <div>{{ formDetail.constructionTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>经办人姓名:</div>
-                        <div>{{ formDetail.operatorUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建时间:</div>
-                        <div>{{ formDetail.createTimeView }}</div>
-                    </div>
-                    <div class="item">
-                        <div>更新时间:</div>
-                        <div>{{ formDetail.updateTime }}</div>
-                    </div>
-                    <div class="item">
-                        <div>创建人:</div>
-                        <div>{{ formDetail.createUserName }}</div>
-                    </div>
-                    <div class="item">
-                        <div>更新人:</div>
-                        <div>{{ formDetail.updateUserName }}</div>
-                    </div>
-                </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="acceptAccountForm">接受销户</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.executeType==2" type="primary" size="large" @click="completeAccountForm">完成销户</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="revokeAccountForm">撤销工单</el-button>
-                    </div>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
- </template>
- <style>
-.Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 10px 10px 10px;
-        }
-    }
-    .detail{
-    display:flex;
-    justify-content:flex-start;
-    width:100%;
-    flex-wrap:wrap;
-    padding-left: 50px;
-    .item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-}
-}    
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterMaintainRecords/index.vue b/src/views/workOrderManage/waterMeterMaintainRecords/index.vue
deleted file mode 100644
index e97e7c7..0000000
--- a/src/views/workOrderManage/waterMeterMaintainRecords/index.vue
+++ /dev/null
@@ -1,438 +0,0 @@
-
- <script setup name="Menu">
-//  import  user from "@/api/system/user";
-//  import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
-//  import  waterMeterApi from "@/api/waterMeterApi/index";
-import { waterMeterMaintainRecordsApi }  from '@/api/workOrderManage/waterMeterMaintainRecordsApi/index';
-import setPostParams from "@/utils/searchParams.js";
-// import  billRecord from "@/api/financial/billRecord/index";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
-const queryParams = ref({
-    name: undefined,
-}) 
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const loading = ref(false);
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        id: '序号',
-        repairsNumber:"维修单编号",
-        meterSn: "水表编号",
-        userName:"所属用户",
-        maintainTime: "维修时间",
-        maintainStaff: "维修人员",
-        maintainType: "维修类型",
-        maintainContent: "维修内容",
-        maintainCost: "维修费用",
-        image: "图片",
-        comment: "备注",
-        createTimeView: "创建时间",
-        updateTimeView: "更新时间"
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-     let postParam = setPostParams(val)
-      await waterMeterMaintainRecordsApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
-//  async function handleAdd() {
-//    reset();
-//    title.value = "新增停用工单";
-//     open.value = true;
-//  }
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-// const open = ref(false);
-// const loading = ref(false);
-// const title = ref("");
-
-// const data = reactive({
-// form:{},
-// queryParams: {
-//     name: undefined,
-// },
-// rules: {
-//         userName: [{required: true, message: '请选择用户', trigger: 'blur'}],
-//         meterSn: [{required: true, message: '请选择需要停用的水表编号', trigger: 'blur'}],
-//         operatorUser: [{required: true, message: '请选择经办人', trigger: 'blur'}]
-// },
-// });
-// const { queryParams, form, rules } = toRefs(data);
-
-//获取账号列表选择
-// const accountList = ref()
-// const userList = ref()
-// const getAllList = async() =>{
-// // 获取用户档案列表
-// let res1 = await archivesApi().search({limit: 10000, status: 1,page:1})
-// if (res1.code == 200) {
-// userList.value = res1.data.list
-// }
-// //获取账号列表
-// let res2 = await user().search({limit: 10000, status: 1,page:1})
-// if (res2.code == 200) {
-//     accountList.value = res2.data.list
-// }
-//  }
-//选择用户获取对应水表列表
-// const meterSnList = ref()
-// const changeUser = async (val) => {
-//     form.value.meterSn=""
-//     //选中用户显示用户信息
-//     let user = userList.value.find((item) => item.id == val)
-//     Object.keys(user).forEach((key) =>{
-//         if(form.value.hasOwnProperty(key)){
-//             form.value[key] = user[key]
-//         }
-//     })
-//     //请求该用户名下水表
-//     let res3 = await waterMeterApi().getByUser(val)
-//     if (res3.code == 200) {
-//         meterSnList.value = res3.data
-//     }
-// }
-// //选中水表获取水表信息及欠费信息
-// const changeWaterMeter = async (val) => {
-// let res1 = await billRecord().getMeterArrearsAmount(val)
-//     if (res1.code == 200) {
-//         form.value.isArrearage = res1.data
-//     }
-//     let meter = meterSnList.value.find((item) => item.sn == val)
-//     form.value.address = meter.address
-//     form.value.modeCode = meter.modeCode
-// }
-// //根据经办人id添加经办人Name
-// const changeOperatorUser = async (val) => {
-//     accountList.value.forEach((item) =>{
-//         if(item.id == val){
-//             form.value.operatorUserName = item.nickName
-//         }
-//     })
-//     console.log('45646',form.value);
-// }
-//  /** 提交按钮 */
-//  function submitForm() {
-//    proxy.$refs["formRef"].validate(valid => {
-//      if (valid) {
-//        if (form.value.id != undefined) {
-//         waterMeterMaintainRecordsApi().modify(form.value).then(res => {
-//            proxy.$modal.msgSuccess("修改成功");
-//            open.value = false;
-//            getList();
-//          }).catch(() =>{
-//             open.value = false;
-//             proxy.$modal.msgError("修改失败");
-//          });
-//        } else {
-//         waterMeterMaintainRecordsApi().create(form.value).then(res => {
-//            proxy.$modal.msgSuccess("新增成功");
-//            open.value = false;
-//            getList();
-//          }).catch(() =>{
-//             open.value = false;
-//             proxy.$modal.msgError("新增失败");
-//          });
-//        }
-//      }
-//    });
-//  }
-
- /** 取消按钮 */
-//  function cancel() {
-//    open.value = false;
-//    reset();
-//  }
-
- /** 表单重置 */
-//  function reset() {
-//    form.value = {
-//         classifyTxt: '',
-//         classifyId: 0,
-//         userAddress: "",
-//         address: "",
-//         userId: "",
-//         userCode: "",
-//         userPhone: "",
-//         modeCode: "",
-//         operatorUser: "",
-//         operatorUserName: "",
-//         idCard: "",
-//         userName: "",
-//         meterSn: "",
-//         businessAddress: "",
-//         arrearageAmount: "",
-//         stopTime: "",
-//         startTime: "",
-//    };
-//    proxy.resetForm("formRef");
-//  }
-  /**
-  * 详情、执行相关
-  */
-const formDetail = ref()
-const formDetailVisible = ref()
-// const isExecute = ref(false)
-const ToDetail = async(row) =>{
-    let res = await waterMeterMaintainRecordsApi().get(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-    }
-    formDetailVisible.value = true
-    // if(val === 2){
-    //     isExecute.value = true
-    // }else{
-    //     isExecute.value = false
-    // } 
-}
-// 提交确认停用
-// const stopAccountForm = async() =>{
-//     let res = await waterMeterMaintainRecordsApi().execute(formDetail.value.id,3)
-//     if(res.code == 200){
-//         ElMessage({message:'停用成功!',type:'success'})
-//     }
-//     formDetailVisible.value = false
-//     getList()
-// }
- getList();
-//  getAllList()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <!-- <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row> -->
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button @click="ToDetail(scope.row)"  link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <!-- <el-button v-if="(scope.row.executeType == 1) || (scope.row.executeType == 2)" @click="ToDetail(scope.row)"  link type="primary" icon="Document" title="详细信息">执行</el-button> -->
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <!-- <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                    <el-form-item label="用户名称"  prop="userId">
-                        <el-select v-model="form.userId" class="m-2" filterable placeholder="请选择开户人"
-                                    @change="changeUser" >
-                            <el-option
-                                    v-for="(item,index) in userList"
-                                    :key="item.id"
-                                    :label="item.userName"
-                                    :title="item.userName"
-                                    :value="item.id"
-
-                            />
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="用户类型"  prop="classifyTxt">
-                        {{ form.classifyTxt }}
-                    </el-form-item>
-                    <el-form-item label="联系电话"  prop="userPhone">
-                        {{ form.userPhone }}
-                    </el-form-item>
-                    <el-form-item label="身份证号码"  prop="idCard">
-                        {{ form.idCard }}
-                    </el-form-item>
-                    <el-form-item label="用户地址"  prop="userAddress">
-                        {{ form.userAddress }}
-                    </el-form-item>
-                    <el-form-item label="户号"  prop="userCode">
-                        {{ form.userCode }}
-                    </el-form-item>
-
-
-                    <el-form-item label="停用水表"  prop="meterSn">
-                        <el-select v-model="form.meterSn"  filterable
-                                   placeholder="请输入或选择水表编号"  @change="changeWaterMeter">
-                            <el-option
-                                    v-for="item in meterSnList"
-                                    :key="item.id"
-                                    :label="item.sn"
-                                    :title="item.sn"
-                                    :value="item.sn"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item label="水表型号"  prop="modeCode">
-                        {{ form.modeCode }}
-                    </el-form-item>
-                    <el-form-item label="安装地址"  prop="address">
-                        {{ form.address }}
-                    </el-form-item>
-                    <el-form-item label="欠费金额"  prop="isArrearage">
-                        {{ form.isArrearage }}
-                    </el-form-item>
-
-                    <el-form-item label="经办人"  prop="operatorUser">
-                        <el-select v-model="form.operatorUser" class="m-2" filterable
-                                   placeholder="请选择经办人"  @change="changeOperatorUser">
-                            <el-option
-                                    v-for="item in accountList"
-                                    :key="item.id"
-                                    :label="item.nickName"
-                                    :title="item.nickName"
-                                    :value="item.id"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-        -->
-       <el-dialog v-model="formDetailVisible" title="水表维修记录详情" style="width: 60vw;" center align-center >
-            <div class="detail">
-                <div class="item">
-                    <div>公司id:</div>
-                    <div>{{ formDetail.companyId }}</div>
-                </div>
-                <div class="item">
-                    <div>公司名称:</div>
-                    <div>{{ formDetail.companyName }}</div>
-                </div>
-                <div class="item">
-                    <div>维修单编号:</div>
-                    <div>{{ formDetail.repairsNumber }}</div>
-                </div>
-                <div class="item">
-                    <div>水表:</div>
-                    <div>{{ formDetail.meterSn }}</div>
-                </div>
-                <div class="item">
-                    <div>所属用户:</div>
-                    <div>{{ formDetail.userName }}</div>
-                </div>
-                <div class="item">
-                    <div>维修时间:</div>
-                    <div>{{ formDetail.maintainTime }}</div>
-                </div>
-                <div class="item">
-                    <div>维修人员:</div>
-                    <div>{{ formDetail.maintainStaff }}</div>
-                </div>
-                <div class="item">
-                    <div>维修类型:</div>
-                    <div>{{ formDetail.maintainType }}</div>
-                </div>
-                <div class="item">
-                    <div>维修内容:</div>
-                    <div>{{ formDetail.maintainContent }}</div>
-                </div>
-                <div class="item">
-                    <div>维修费用:</div>
-                    <div>{{ formDetail.maintainCost }}</div>
-                </div>
-                <div class="item">
-                    <div>图片:</div>
-                    <common-image :src="formDetail.image" class="common-image"></common-image>
-                </div>
-                <div class="item">
-                    <div>备注:</div>
-                    <div>{{ formDetail.comment }}</div>
-                </div>
-                <div class="item">
-                    <div>状态:</div>
-                    <div>{{ formDetail.status == 1?'正常':'停用' }}</div>
-                </div>
-                <div class="item">
-                    <div>创建时间:</div>
-                    <div>{{ formDetail.createTimeView }}</div>
-                </div>
-                
-                <div class="item">
-                    <div>更新时间:</div>
-                    <div>{{ formDetail.updateTimeView }}</div>
-                </div>
-            </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <!-- <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="stopAccountForm">确认停用</el-button>
-                    </div>
-                </div> -->
-            </template>
-        </el-dialog>
-    </div>
- </template>
- <style>
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterRepair/index.vue b/src/views/workOrderManage/waterMeterRepair/index.vue
deleted file mode 100644
index 98a7ebf..0000000
--- a/src/views/workOrderManage/waterMeterRepair/index.vue
+++ /dev/null
@@ -1,527 +0,0 @@
-
-<script setup>
-import  user from "@/api/system/user";
- import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
- import  waterMeterApi from "@/api/waterMeterApi/index";
-import { waterMeterRepairApi } from '@/api/workOrderManage/waterMeterRepairApi';
-import { onMounted, reactive, ref } from 'vue'
-import setPostParams from "@/utils/searchParams.js";
-    //定义table数据
-    const queryParams = ref({
-        name: undefined,
-    }) 
-    const tableData = ref([])
-    const pageParam = ref({
-        total:0,
-        limit:10,
-        page:0,
-    })
-    const setTableList = reactive({
-        repairsNumber:'保修单编号',
-        userName: '用户名称',
-        meterSn:'水表编号',
-        repairsAddress: '报修地址',
-        content:"维修内容",
-        // maintenanceCosts:"维修费用",
-        maintainUserName: '维修人员',
-        maintainTime: '上门时间',
-        stateName:'状态'
-    })
-//弹窗
-const formVisible = ref(false)
-// 添加-form表单数据定义
-const repairFormData = ref({
-        userId: '',
-        meterSn: '',
-        content:'',
-        maintainUser: '',
-        maintainUserName: '',
-        maintainTime:'',
-        repairsType: '1',
-        remark: '',
-})
-const accountFormRef = ref()
-// 维修人员选择列表
-const maintainUserList = ref()
-// 用户选择列表
-const userNameList = ref()
-//水表单号选择列表
-const meterSnList = ref()
-const rules = ref({
-    userId: [
-        {required: true, message: '请选择用户', trigger: 'blur'}
-    ],
-    meterSn: [
-        {required: true, message: '请选择水表', trigger: 'blur'}
-    ],
-    maintainUser: [
-        {required: true, message: '请选择维修人员', trigger: 'blur'}
-    ],
-    maintainTime: [
-        {required: true, message: '请选择维修时间', trigger: 'blur'}
-    ],
-    content:[
-        {required: true, message: '请选择维修内容', trigger: 'blur'}
-    ],
-})
-    // 添加
-    const addAccount = async() =>{
-        repairFormData.value = {
-            userId: '',
-            meterSn: '',
-            content:'',
-            maintainUser: '',
-            maintainUserName: '',
-            maintainTime:'',
-            repairsType: '1',
-            remark: '',
-    }
-    
-    // 获取用户档案列表
-    let res0 = await archivesApi().search({limit: 10000, status: 1,page:1})
-    if (res0.code == 200) {
-        userNameList.value = res0.data.list
-    }
-    // 获取维修账号列表信息
-    let res1 = await user().search({limit: 10000, status: 1,page:1})
-    if (res1.code == 200) {
-        maintainUserList.value = res1.data.list
-    }
-
-    formVisible.value = true
-}
-//条件搜索
-const search = () =>{
-    getTableData({keywords:queryParams.value.name})
-}
-const handleChange = async(val) =>{
-    repairFormData.value.meterSn="";
-    //通过用户id获取该用户下的水表信息 
-    let res = await waterMeterApi().getByUser(val)
-       if(res.code == 200){
-        meterSnList.value = res.data
-       }
-}
-const selectChange = (val)=>{
-    maintainUserList.value.forEach((item) =>{
-        if(item.id == val){
-            repairFormData.value.maintainUserName = item.nickName
-        }
-    })
-}
-// 提交表单
-const submitRepairForm = async() =>{
-    accountFormRef.value.validate(async (validate) =>{
-        if(validate){
-            console.log('repairFormData.value ',repairFormData.value )
-            let res = await waterMeterRepairApi().creatWaterMeterRepairs(repairFormData.value)
-            if(res.code == 200){
-            ElMessage({message:'提交成功!',type:'success'})
-            formVisible.value = false
-            getTableData()
-            }
-        }
-    })
-}
-const cancelRepairForm = () =>{
-    formVisible.value = false
-}
-const getTableData = async (val) => {
-    let postParam = setPostParams(val)
-    let { code, data } = await waterMeterRepairApi().searchWaterMeterRepairs(postParam)
-    if(code == 200) {
-        tableData.value = data.list
-        tableData.value.forEach((item) =>{
-               if(item.state == 1){
-                item.stateName ='待执行'
-               }else if(item.state == 2){
-                item.stateName ='执行中'
-               }else if(item.state == 3){
-                item.stateName ='已执行'
-               }else if(item.state == 4){
-                item.stateName ='已撤销'
-               }else{
-                item.stateName =''
-               }
-            }) 
-        pageParam.value.total = data.total
-        pageParam.value.limit = data.limit
-        pageParam.value.page = data.page
-        console.log('tableData.value',tableData.value)
-    }
-}
-
-//详情相关
-const formDetailVisible = ref(false)
-const formDetail = ref({  
-    repairsNumber: '', 
-    meterSn: '',  
-    userName: '',  
-    userPhone: '',
-    repairsAddress: '',  
-    maintainUserName: '',  
-    maintainTime: '',  
-    repairsTypeView: '', 
-    stateView:'',
-    remark: '',  
-    createTimeView: "2024-06-26 10:59:21",
-    updateTimeView: "2024-06-26 10:59:30.700",
-})
-const ToDetail = async(row,val) =>{
-    let res = await waterMeterRepairApi().getWaterMeterRepairs(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-        console.log(res.code);
-    }
-    formDetailVisible.value = true
-    if(val === 2){
-        isExecute.value = true
-    }else{
-        isExecute.value = false
-    }
-    console.log('formDetail.value111',formDetail.value);
-    
-}
-//执行相关
-const isExecute = ref(false)
-//提交数据处理
-// const handleExecuteData = () =>{
-//     executeData.value.repairsId = formDetail.value.id
-//     executeData.value.meterSn = formDetail.value.meterSn
-//     executeData.value.userId = formDetail.value.userId
-//     executeData.value.userName = formDetail.value.userName
-//     executeData.value.maintainTime = formDetail.value.maintainTime
-//     executeData.value.maintainStaff = formDetail.value.maintainUserName
-//     executeData.value.maintainType = formDetail.value.repairsType
-// }
-
-// 提交确认报修
-const acceptAccountForm = async() =>{
-    let res = await waterMeterRepairApi().executeStatusWaterMeterRepairs({repairsId:formDetail.value.id,executeType:2})
-    if(res.code == 200){
-        ElMessage({message:'已接受报修!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getTableData()
-}
-// 提交完成报修
-const completeAccountForm = async() =>{
-    let res = await waterMeterRepairApi().executeStatusWaterMeterRepairs({repairsId:formDetail.value.id,executeType:3})
-    if(res.code == 200){
-        ElMessage({message:'完成报修!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getTableData()
-}
-// 撤销报修
-const revokeAccountForm = async() =>{
-    let res = await waterMeterRepairApi().executeStatusWaterMeterRepairs({repairsId:formDetail.value.id,executeType:4})
-    if(res.code == 200){
-        ElMessage({message:'撤销成功!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getTableData()
-}
-onMounted(async() => {
-    
-    getTableData()
-})
-</script>
-<template>
-    <div class="app-container">
-        <!-- <div class="text-select">
-            <el-button type="primary" @click="addAccount" size="large">添加</el-button>
-            <el-input placeholder="请输入用户名称或水表编号" v-model="searchData"></el-input>
-            <el-button @click="search" type="primary" size="large">搜索</el-button>
-        </div> -->
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="search">搜索</el-button>
-             <el-button icon="Refresh" @click="getTableData">重置</el-button>
-          </el-form-item>
-       </el-form>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="addAccount"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-
-        <el-table :data="tableData">
-            <el-table-column v-for="(item,key,index) of setTableList" :key="index" :prop="key.toString()" :label="item" width="180" />
-            <el-table-column prop="handle" label="操作" width="180" fixed="right">
-                <template #default="scope">
-                <el-button @click="ToDetail(scope.row,1)"  link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <el-button v-if="(scope.row.state == 1) || (scope.row.state == 2)" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen" title="详细信息">执行</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getTableData"
-        />
-        <!-- 分页区域 -->
-        <!-- <div class="pagination">
-            <el-pagination
-                layout="total, prev, pager, next, jumper"
-                v-model:page-size="pagination.pageSize"
-                :total="pagination.total"
-                @current-change="handleCurrentChange">
-            </el-pagination>
-        </div> -->
-        <el-dialog v-model="formVisible" title="水表报修"   align-center  destroy-on-close>
-            <div class="main">
-                <div class="account-form">
-                    <el-form :model="repairFormData" :rules="rules" ref="accountFormRef" :label-width="80">
-                        <br>
-                        <el-form-item label="用户名称" prop="userId">
-                            <el-select v-model="repairFormData.userId" filterable placeholder="请选择用户" @change="handleChange">
-                                <el-option
-                                v-for="item in userNameList"
-                                :key="item.id"
-                                :label="item.userName"
-                                :title="item.userName"
-                                :value="item.id"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="水表编号" prop="meterSn">
-                            <el-select v-model="repairFormData.meterSn" filterable placeholder="请选择用户">
-                                <el-option
-                                v-for="item in meterSnList"
-                                :key="item.id"
-                                :label="item.sn"
-                                :title="item.sn"
-                                :value="item.sn"
-                                />
-                            </el-select>
-                        </el-form-item>
-                        <el-form-item label="维修内容" prop="content">
-                            <el-input type="textarea" v-model="repairFormData.content" maxlength="200" size="large" ></el-input>
-                        </el-form-item>
-                        <el-form-item label="上门时间" prop="maintainTime">
-                            <el-date-picker
-                                v-model="repairFormData.maintainTime"
-                                type="date"
-                                placeholder="请选择安装日期和时间"
-                                format="YYYY-MM-DD "
-                                value-format="YYYY-MM-DD "
-                                style="width: 100%"
-                            />
-                        </el-form-item>
-                        <br>
-                        <el-form-item label="备注" prop="remark">
-                        <el-input type="textarea" v-model="repairFormData.remark" maxlength="200" size="large" ></el-input>
-                        </el-form-item>
-                        <el-form-item label="维修人员" prop="maintainUser">
-                            <el-select v-model="repairFormData.maintainUser" filterable placeholder="请选择维修人员" @change="selectChange">
-                                <el-option
-                                v-for="item in maintainUserList"
-                                :key="item.id"
-                                :label="item.nickName"
-                                :title="item.nickName"
-                                :value="item.id"
-                                />
-                            </el-select>
-                        </el-form-item>
-                    </el-form>
-                </div>
-                <div class="submit-btn">
-                    <el-button  size="large" @click="cancelRepairForm">取消</el-button>
-                    <el-button type="primary" size="large" @click="submitRepairForm">提交</el-button>
-                </div>
-            </div>
-        </el-dialog>
-        
-        <el-dialog v-model="formDetailVisible" title="水表维修详情" style="width: 60vw;" center align-center >
-            <div class="detail">
-                <div class="item">
-                    <div class="title">维修单编号:</div>
-                    <div>{{ formDetail.repairsNumber }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">水表编号:</div>
-                    <div>{{ formDetail.meterSn }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">用户名称:</div>
-                    <div>{{ formDetail.userName }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">用户电话:</div>
-                    <div>{{ formDetail.userPhone }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">报修地址:</div>
-                    <div>{{ formDetail.repairsAddress }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">维修内容:</div>
-                    <div>{{ formDetail.content }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">维修工程师:</div>
-                    <div>{{ formDetail.maintainUserName }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">维修费用:</div>
-                    <div>{{ formDetail.maintenanceCosts }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">维修时间:</div>
-                    <div>{{ formDetail.maintainTime }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">报修类型:</div>
-                    <div>{{ formDetail.repairsTypeView }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">状态:</div>
-                    <div>{{ formDetail.stateView }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">备注:</div>
-                    <div>{{ formDetail.remark }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">创建时间:</div>
-                    <div>{{ formDetail.createTimeView }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">修改日期:</div>
-                    <div>{{ formDetail.updateTimeView }}</div>
-                </div>
-            </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.state==1" type="primary" size="large" @click="acceptAccountForm">接受报修</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.state==2" type="primary" size="large" @click="completeAccountForm">完成报修</el-button>
-                    </div>
-                    <div>
-                        <el-button v-if="formDetail.state==1" type="primary" size="large" @click="revokeAccountForm">撤销工单</el-button>
-                    </div>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
-</template>
-
-<style lang="scss" scoped>
-.detail{
-    display:flex;
-    justify-content:center;
-    width:100%;
-    flex-wrap:wrap;
-.item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-}
-}
-.main{
-    width: 100%;
-    height: 100%;
-    // background-color: azure;
-    .text-select {
-        height: 5%;
-        padding-top: 20px;
-        display: flex;
-        align-items: center;
-        margin-left: 20px;
-        :deep(.el-input) {
-        width: 318px !important;
-        height: 40px;
-        margin-right: 0;
-        margin-bottom: 2px;
-        }
-        :deep(.el-input__wrapper) {
-        margin-right: 0;
-        }
-        .el-button {
-        margin-left: 10px;
-        margin-right: 80px;
-        }
-        }
-    .account-form{
-        width: 100%;
-        .el-form{
-            margin: 0 auto;
-            width: 96%;
-            display: flex;
-            align-items: center;
-            flex-direction: column;
-            // p{
-            //     height: 8%;
-            //     margin-bottom: 5px;
-            //     margin-left: -60%;
-            //     font-size: 16px;
-            //     font-weight: 1000px;
-            //     color: #212122;
-            // }
-            .el-form-item{
-                width: 70%;
-                padding-bottom: 10px;
-            }
-        }
-    };
-    .submit-btn{
-        display: flex;
-        justify-content: center;
-        .el-button{
-            margin: 10px;
-        }
-    }
-    .el-table{
-        width: 95%;
-        padding-top: 10px;
-        margin: 0 auto;
-        border-radius: 20px;
-        // border: solid 1px;
-    }
-    
-    :deep(.el-dialog) {
-    // text-align: left;
-    min-width: 954px;
-    max-height: 88vh;
-    overflow-y: auto;
-    border-radius: 15px;
-    --el-dialog-margin-top: 8vh;
-    .el-dialog__body {
-        padding: 10px;
-    }
-    }
-    .Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 50px 10px 80px ;
-        }
-    }
-}
-</style>
\ No newline at end of file
diff --git a/src/views/workOrderManage/waterMeterStopAccount/index.vue b/src/views/workOrderManage/waterMeterStopAccount/index.vue
deleted file mode 100644
index a8d6f85..0000000
--- a/src/views/workOrderManage/waterMeterStopAccount/index.vue
+++ /dev/null
@@ -1,447 +0,0 @@
-
- <script setup name="Menu">
- import  user from "@/api/system/user";
- import  archivesApi from "@/api/archivesApi/index";
-import { ElMessage } from 'element-plus'
- import  waterMeterApi from "@/api/waterMeterApi/index";
-import { waterMeterStopAccountApi }  from '@/api/workOrderManage/waterMeterStopAccountApi/index';
-import  billRecord from "@/api/financial/billRecord/index";
- import setPostParams from "@/utils/searchParams.js";
- const { proxy } = getCurrentInstance();
- 
-/**
- * 搜索相关
- */
- /** 搜索按钮操作 */
- function handleQuery() {
-   getList({keywords:queryParams.value.name,page:1})
- }
- 
- /** 重置按钮操作 */
- function resetQuery() {
-   proxy.resetForm("queryRef");
-   handleQuery();
- }
-
- /**
-  *  Table表格权限数据列表相关
-  */
-
-const pageParam = ref({
-    total:0,
-    limit:0,
-    page:0,
-})
-const tableData = ref([]);
-let  tableHeader = ref({
-        id: '序号',
-        userName: "用户姓名",
-        classifyName: "用户类型",
-        meterSn: "水表编号",
-        businessAddress: "营业点",
-        operatorUserName: "经办人",
-        stopTime: "停用日期",
-        startTime: "启用日期",
-        isStopView: "水表状态",
-        executeTypeView: "执行状态",
-        createTimeView: "创建日期",
-   })
- /** 获取列表 */
- async function getList(val) {
-      loading.value = true;
-      let postParam = setPostParams(val)
-      await waterMeterStopAccountApi().search(postParam).then((res) =>{
-        tableData.value = res.data.list
-        pageParam.value.total = res.data.total
-        pageParam.value.limit = res.data.limit
-        pageParam.value.page = res.data.page
-    })
-    loading.value = false;
- }
- 
- /** 新增按钮操作 */
- async function handleAdd() {
-   reset();
-   title.value = "新增停用工单";
-    open.value = true;
- }
- /**
-  *  新增/修改弹窗Form表单相关
-  */
-const open = ref(false);
-const loading = ref(false);
-const title = ref("");
-
-const data = reactive({
-form:{},
-queryParams: {
-    name: undefined,
-},
-rules: {
-        userName: [{required: true, message: '请选择用户', trigger: 'blur'}],
-        meterSn: [{required: true, message: '请选择需要停用的水表编号', trigger: 'blur'}],
-        operatorUser: [{required: true, message: '请选择经办人', trigger: 'blur'}]
-},
-});
-const { queryParams, form, rules } = toRefs(data);
-
-//获取账号列表选择
-const accountList = ref()
-const userList = ref()
-const getAllList = async() =>{
-// 获取用户档案列表
-let res1 = await archivesApi().search({limit: 10000, status: 1,page:1})
-if (res1.code == 200) {
-userList.value = res1.data.list
-}
-//获取账号列表
-let res2 = await user().search({limit: 10000, status: 1,page:1})
-if (res2.code == 200) {
-    accountList.value = res2.data.list
-}
- }
-//选择用户获取对应水表列表
-const meterSnList = ref()
-const changeUser = async (val) => {
-    form.value.meterSn=""
-    //选中用户显示用户信息
-    let user = userList.value.find((item) => item.id == val)
-    Object.keys(user).forEach((key) =>{
-        if(form.value.hasOwnProperty(key)){
-            form.value[key] = user[key]
-        }
-    })
-    //请求该用户名下水表
-    let res3 = await waterMeterApi().getByUser(val)
-    if (res3.code == 200) {
-        meterSnList.value = res3.data
-    }
-}
-//选中水表获取水表信息及欠费信息
-const changeWaterMeter = async (val) => {
-let res1 = await billRecord().getMeterArrearsAmount(val)
-    if (res1.code == 200) {
-        form.value.isArrearage = res1.data
-    }
-    let meter = meterSnList.value.find((item) => item.sn == val)
-    form.value.address = meter.address
-    form.value.modeCode = meter.modeCode
-}
-//根据经办人id添加经办人Name
-const changeOperatorUser = async (val) => {
-    accountList.value.forEach((item) =>{
-        if(item.id == val){
-            form.value.operatorUserName = item.nickName
-        }
-    })
-    console.log('45646',form.value);
-}
- /** 提交按钮 */
- function submitForm() {
-   proxy.$refs["formRef"].validate(valid => {
-     if (valid) {
-       if (form.value.id != undefined) {
-        waterMeterStopAccountApi().modify(form.value).then(res => {
-           proxy.$modal.msgSuccess("修改成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("修改失败");
-         });
-       } else {
-        waterMeterStopAccountApi().create(form.value).then(res => {
-           proxy.$modal.msgSuccess("新增成功");
-           open.value = false;
-           getList();
-         }).catch(() =>{
-            open.value = false;
-            proxy.$modal.msgError("新增失败");
-         });
-       }
-     }
-   });
- }
-
- /** 取消按钮 */
- function cancel() {
-   open.value = false;
-   reset();
- }
-
- /** 表单重置 */
- function reset() {
-   form.value = {
-        classifyTxt: '',
-        classifyId: 0,
-        userAddress: "",
-        address: "",
-        userId: "",
-        userCode: "",
-        userPhone: "",
-        modeCode: "",
-        operatorUser: "",
-        operatorUserName: "",
-        idCard: "",
-        userName: "",
-        meterSn: "",
-        businessAddress: "",
-        arrearageAmount: "",
-        stopTime: "",
-        startTime: "",
-   };
-   proxy.resetForm("formRef");
- }
-  /**
-  * 详情、执行相关
-  */
-const formDetail = ref()
-const formDetailVisible = ref()
-const isExecute = ref(false)
-const ToDetail = async(row,val) =>{
-    let res = await waterMeterStopAccountApi().get(row.id)
-    if(res.code == 200) {
-        formDetail.value = res.data
-    }
-    formDetailVisible.value = true
-    if(val === 2){
-        isExecute.value = true
-    }else{
-        isExecute.value = false
-    } 
-}
-// 提交确认停用
-const stopAccountForm = async() =>{
-    let res = await waterMeterStopAccountApi().execute(formDetail.value.id,3)
-    if(res.code == 200){
-        ElMessage({message:'停用成功!',type:'success'})
-    }
-    formDetailVisible.value = false
-    getList()
-}
- getList();
- getAllList()
- </script>
- <template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-             <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-          </el-form-item>
-       </el-form>
- 
-       <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="handleAdd"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-       <!--表格及分页-->
-       <el-table v-loading="loading" :data="tableData">
-          <el-table-column
-            v-for="(item, key, index) of tableHeader"
-            :prop="key.toString()"
-            :label="item"
-            :key="index"
-            align="center"
-          >
-        </el-table-column>
-          <el-table-column label="操作" width="180" align="center" class-name="small-padding fixed-width">
-             <template #default="scope">
-                <el-button @click="ToDetail(scope.row,1)"  link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <el-button v-if="(scope.row.executeType == 1) || (scope.row.executeType == 2)" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen" title="详细信息">执行</el-button>
-             </template>
-          </el-table-column>
-        </el-table>
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getList"
-        />
-       <!-- 添加或修改对话框 -->
-       <el-dialog :title="title" v-model="open" append-to-body center>
-            <el-form class="form-box" ref="formRef" :model="form" :rules="rules" label-width='auto'>
-                    <el-form-item label="用户名称"  prop="userId">
-                        <el-select v-model="form.userId" class="m-2" filterable placeholder="请选择开户人"
-                                    @change="changeUser" >
-                            <el-option
-                                    v-for="(item,index) in userList"
-                                    :key="item.id"
-                                    :label="item.userName"
-                                    :title="item.userName"
-                                    :value="item.id"
-
-                            />
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item label="用户类型"  prop="classifyTxt">
-                        {{ form.classifyTxt }}
-                    </el-form-item>
-                    <el-form-item label="联系电话"  prop="userPhone">
-                        {{ form.userPhone }}
-                    </el-form-item>
-                    <el-form-item label="身份证号码"  prop="idCard">
-                        {{ form.idCard }}
-                    </el-form-item>
-                    <el-form-item label="用户地址"  prop="userAddress">
-                        {{ form.userAddress }}
-                    </el-form-item>
-                    <el-form-item label="户号"  prop="userCode">
-                        {{ form.userCode }}
-                    </el-form-item>
-
-
-                    <el-form-item label="停用水表"  prop="meterSn">
-                        <el-select v-model="form.meterSn"  filterable
-                                   placeholder="请输入或选择水表编号"  @change="changeWaterMeter">
-                            <el-option
-                                    v-for="item in meterSnList"
-                                    :key="item.id"
-                                    :label="item.sn"
-                                    :title="item.sn"
-                                    :value="item.sn"
-                            />
-                        </el-select>
-                    </el-form-item>
-
-                    <el-form-item label="水表型号"  prop="modeCode">
-                        {{ form.modeCode }}
-                    </el-form-item>
-                    <el-form-item label="安装地址"  prop="address">
-                        {{ form.address }}
-                    </el-form-item>
-                    <el-form-item label="欠费金额"  prop="isArrearage">
-                        {{ form.isArrearage }}
-                    </el-form-item>
-
-                    <el-form-item label="经办人"  prop="operatorUser">
-                        <el-select v-model="form.operatorUser" class="m-2" filterable
-                                   placeholder="请选择经办人"  @change="changeOperatorUser">
-                            <el-option
-                                    v-for="item in accountList"
-                                    :key="item.id"
-                                    :label="item.nickName"
-                                    :title="item.nickName"
-                                    :value="item.id"
-                            />
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item></el-form-item>
-                </el-form>
-          <template #footer>
-             <div class="dialog-footer">
-                <el-button type="primary" @click="submitForm">确 定</el-button>
-                <el-button @click="cancel">取 消</el-button>
-             </div>
-          </template>
-       </el-dialog>
-       
-       <el-dialog v-model="formDetailVisible" title="水表维修详情" style="width: 60vw;" center align-center >
-            <div class="detail">
-                <div class="item">
-                    <div class="title">公司名称:</div>
-                    <div>{{ formDetail.companyName }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">所属用户:</div>
-                    <div>{{ formDetail.userName }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">水表编号:</div>
-                    <div>{{ formDetail.meterSn }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">停用时间:</div>
-                    <div>{{ formDetail.stopTime }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">启用时间:</div>
-                    <div>{{ formDetail.startTime }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">用户类型:</div>
-                    <div>{{ formDetail.classifyName }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">用户电话:</div>
-                    <div>{{ formDetail.userPhone }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">用户地址:</div>
-                    <div>{{ formDetail.userAddress }}</div>
-                </div>
-                <div class="item">
-                    <div class="title">水表安装地址:</div>
-                    <div>{{ formDetail.installAddress }}</div>
-                </div>
-                <div class="item">
-                    <div>创建人:</div>
-                    <div>{{ formDetail.createUserName }}</div>
-                </div>
-                <div class="item">
-                    <div>更新人:</div>
-                    <div>{{ formDetail.updateUserName }}</div>
-                </div>
-                <div class="item">
-                    <div>创建时间:</div>
-                    <div>{{ formDetail.createTimeView }}</div>
-                </div>
-                <div class="item">
-                    <div>更新时间:</div>
-                    <div>{{ formDetail.updateTime }}</div>
-                </div>
-            </div>
-            <template #footer>
-                <el-button v-if="!isExecute" @click="formDetailVisible = false" style="width:10%">关闭</el-button>
-                <div class="Execution-btn" v-if="isExecute">
-                    <div>
-                        <el-button v-if="formDetail.executeType==1" type="primary" size="large" @click="stopAccountForm">确认停用</el-button>
-                    </div>
-                </div>
-            </template>
-        </el-dialog>
-    </div>
- </template>
- <style>
-.Execution-btn{
-        display: flex;
-        justify-content: center;
-        div{
-            margin: 0 10px 10px 10px;
-        }
-    }
-    .detail{
-    display:flex;
-    justify-content:flex-start;
-    width:100%;
-    flex-wrap:wrap;
-    padding-left: 50px;
-    .item{
-    margin-bottom: 15px;
-    width:45%;
-    font-size: 18px;
-    display: flex;
-    .title{
-        color: #696969;
-        margin-right: 10px;
-    }
-}
-}  
-</style>
- 
\ No newline at end of file
diff --git a/src/views/workOrderManage/workOrderList/index.vue b/src/views/workOrderManage/workOrderList/index.vue
deleted file mode 100644
index 9398874..0000000
--- a/src/views/workOrderManage/workOrderList/index.vue
+++ /dev/null
@@ -1,157 +0,0 @@
-<template>
-    <div class="app-container">
-       <el-form :model="queryParams" ref="queryRef" :inline="true">
-          <el-form-item prop="name">
-             <el-input
-                v-model="queryParams.name"
-                placeholder="请输入用户或水表编号查询"
-                clearable
-                style="width: 200px"
-                @keyup.enter="handleQuery"
-             />
-          </el-form-item>
-          <el-form-item>
-             <el-button type="primary" icon="Search" @click="search">搜索</el-button>
-             <el-button icon="Refresh" @click="getTableData">重置</el-button>
-          </el-form-item>
-       </el-form>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-             <el-button
-                type="primary"
-                plain
-                icon="Plus"
-                @click="addAccount"
-             >新增</el-button>
-          </el-col>
-       </el-row>
-        
-        <el-table :data="tableData">
-            <el-table-column v-for="(item,key,index) of setTableList" :key="index" :prop="key.toString()" :label="item" />
-            <el-table-column prop="handle" label="操作" width="200" fixed="right">
-                <template #default="scope">
-                <el-button @click="ToDetail(scope.row,1)" link type="primary" icon="Document" title="详细信息">详情</el-button>
-                <el-button v-if="scope.row.installState == 1 || scope.row.installState == 2" @click="ToDetail(scope.row,2)"  link type="primary" icon="EditPen" title="详细信息">执行</el-button>
-                </template>
-            </el-table-column>
-        </el-table>
-        <!--分页区域-->
-        <!-- <div class="pagination">
-            <el-pagination
-                layout="total, prev, pager, next, jumper"
-                v-model:page-size="pagination.pageSize"
-                :total="pagination.total"
-                @current-change="handleCurrentChange">
-            </el-pagination>
-        </div> -->
-        <pagination
-          :total="pageParam.total"
-          v-model:page="pageParam.page"
-          v-model:limit="pageParam.limit"
-          :page-sizes="[10,20,30]"
-          @pagination="getTableData"
-        />
-        <el-dialog v-model="formVisible" style="width: 66vw; height:90vh;" center  :title="isDetail ? '水表开户申请单': '水表开户申请'" align-center  destroy-on-close>
-            <div>
-                <accountApply :isDetail = isDetail :rowDetail = rowDetail :isExecute = isExecute @setFormVisible="setFormVisible" @getTableData="getTableData"></accountApply>
-            </div>
-        </el-dialog>
-    </div>
-</template>
-
-<script setup>
-import { ref ,reactive} from 'vue'
-import accountApply from '@/views/workOrderManage/accountApply/index.vue'
-import { waterMeterApplyApi } from '@/api/workOrderManage/waterMeterApplyApi/index'
-import { ElMessage } from 'element-plus'
-import setPostParams from "@/utils/searchParams.js";
-
-    //定义变量内容
-    const queryParams = ref({
-        name: undefined,
-    }) 
-    const tableData = ref([])
-    // const pagination = ref({
-    //     total:0,
-    //     currentPage:'',
-    //     totalPage:'',
-    //     pageSize:10
-    // })
-    const pageParam = ref({
-        total:0,
-        limit:10,
-        page:0,
-    })
-    const setTableList = reactive({
-        // workNumber:'工单号',
-        meterSn:"水表编号",
-        userName: '申请用户',
-        // classifyName:'用户类型',
-        // userPhone: '电话号码',
-        // idCard:'身份证号码',
-        // userAddress:'用户地址',
-        installAddress:'安装地址',
-        installTime:'上门时间',
-        installMoney:"安装金额",
-        installUserName:"安装人员",
-        installStateView:'执行状态',
-
-    })
-    //控制弹窗-添加编辑
-const formVisible = ref(false)
-const isDetail = ref(false)
-const rowDetail = ref()
-    // 添加
-const addAccount = () =>{
-    formVisible.value = true
-    isDetail.value = false
-} 
-const setFormVisible = () =>{
-    formVisible.value = false
-}
-const getTableData = async (val) => {
-
-    let postParam = setPostParams(val)
-    let { code, data } = await waterMeterApplyApi().searchWaterMeterApply(postParam)
-    if(code == 200) {
-        tableData.value = data.list
-        pageParam.value.total = data.total
-        pageParam.value.limit = data.limit
-        pageParam.value.page = data.page
-    }
-}
-const search = () =>{
-    getTableData({keywords:queryParams.value.name})
-}
-// 分页
-// const handleCurrentChange = (val) =>{
-//     getTableData({page:val})
-//     console.log('val2',val)
-// }
-//执行相关
-const isExecute = ref(false)
-const ToDetail =(row,val) =>{
-    if(val == 2){
-        isExecute.value = true
-    }else{
-        isExecute.value = false
-    }
-    formVisible.value = true
-    isDetail.value = true
-    rowDetail.value = row
-    console.log('row',row)
-}
-onMounted(() => {
-    getTableData()
-})
-</script>
-
-<style lang = scss scoped>
-:deep(.el-dialog){
-    background: #ffffff;
-}
-:deep(.el-dialog__body){
-    overflow-y: auto;
-    max-height: 70vh;
-}
-</style>
\ No newline at end of file

--
Gitblit v1.9.3