From ff0d7ee6b09da5abc4d29a4c49a87f95e255801d Mon Sep 17 00:00:00 2001
From: huangchenhao <123673748@qq.com>
Date: Thu, 2 Apr 2026 16:57:40 +0800
Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=E5=93=8D=E5=BA=94=E9=A2=84?=
=?UTF-8?q?=E8=AD=A6=20=E9=A9=BB=E5=9C=B0=E5=8F=B0=E8=B4=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
packages/screen/src/router/index.js | 14 +-
.../src/views/LedgerManagement/index.js | 201 +++++++++++++
.../src/views/LedgerManagement/index.vue | 83 ++++++
.../src/views/WarningManagement/addDialog.vue | 265 ++++++++++++++++++
.../src/views/WarningManagement/index.js | 215 ++++++++++++++
.../src/views/WarningManagement/index.vue | 57 ++++
packages/screen/vite.config.js | 2 +-
7 files changed, 835 insertions(+), 2 deletions(-)
create mode 100644 packages/screen/src/views/LedgerManagement/index.js
create mode 100644 packages/screen/src/views/LedgerManagement/index.vue
create mode 100644 packages/screen/src/views/WarningManagement/addDialog.vue
create mode 100644 packages/screen/src/views/WarningManagement/index.js
create mode 100644 packages/screen/src/views/WarningManagement/index.vue
diff --git a/packages/screen/src/router/index.js b/packages/screen/src/router/index.js
index f08c5ba..57fdf27 100644
--- a/packages/screen/src/router/index.js
+++ b/packages/screen/src/router/index.js
@@ -56,7 +56,7 @@ const routes = [
{
path: '/riskWarning',
name: 'RiskWarning',
- meta: {
+ meta: {
screen: true
},
component: () => import('../views/RiskWarning/index.vue')
@@ -85,6 +85,18 @@ const routes = [
},
component: () => import('../views/ConstructionDepartment/ConstructionDepartment.vue')
},
+ // 响应预警
+ {
+ path: '/warningManagement',
+ name: 'warningManagement',
+ component: () => import('../views/WarningManagement/index.vue')
+ },
+ // 驻地台账
+ {
+ path: '/ledgerManagement',
+ name: 'ledgerManagement',
+ component: () => import('../views/LedgerManagement/index.vue')
+ },
]
const router = createRouter({
diff --git a/packages/screen/src/views/LedgerManagement/index.js b/packages/screen/src/views/LedgerManagement/index.js
new file mode 100644
index 0000000..b386f22
--- /dev/null
+++ b/packages/screen/src/views/LedgerManagement/index.js
@@ -0,0 +1,201 @@
+import { h, ref, onMounted, reactive, watch, toRaw, nextTick } from "vue";
+import { request } from "@/utils/request";
+import { useRoute, useRouter } from 'vue-router'
+
+const tableData = ref([]); // 表格数据
+
+const modelVisible = ref(false); // 弹窗状态
+const drawerVisible = ref(false); // 抽屉状态
+// 弹窗内容
+const model = reactive({
+ title: '',
+ content: null,
+ props: {},
+ onCancel: null,
+ onConfirm: null,
+ width: '',
+});
+const form = reactive({
+});
+const INIT_FORM = {
+
+};
+// 抽屉内容
+const drawer = reactive({
+ title: '',
+ content: null,
+ props: {},
+ onCancel: null,
+ onConfirm: null,
+ direction: 'rtl',
+ size: '50%'
+});
+const dialogRef = ref(null); // 弹窗实例
+const drawerRef = ref(null); // 抽屉实例
+
+const columns = [
+ {
+ prop: "xxx",
+ label: "所属区县",
+ },
+ {
+ prop: "xxx",
+ label: "项目名称",
+ },
+ {
+ prop: "xxx",
+ label: "驻地名称",
+ },
+ {
+ prop: "xxx",
+ label: "驻地类型",
+ },
+ {
+ prop: "xxx",
+ label: "坐标点位",
+ },
+ {
+ prop: "xxx",
+ label: "所属项目名称",
+ },
+ {
+ prop: "xxx",
+ label: "项目类型",
+ },
+ {
+ prop: "xxx",
+ label: "建设单位",
+ },
+ {
+ prop: "xxx",
+ label: "施工单位",
+ },
+ {
+ prop: "xxx",
+ label: "驻地地址",
+ },
+ {
+ prop: "xxx",
+ label: "行政区域",
+ },
+ {
+ prop: "xxx",
+ label: "驻地人数",
+ },
+ {
+ prop: "xxx",
+ label: "驻地风险等级",
+ },
+ {
+ prop: "xxx",
+ label: "房建类型",
+ },
+ {
+ prop: "xxx",
+ label: "搬迁状态",
+ },
+ {
+ prop: "xxx",
+ label: "吹哨人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "建设单位包保责任人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "施工单位包保责任人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "驻地包保责任人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "区县级包保责任人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "市级包保责任人/电话",
+ },
+ {
+ prop: "xxx",
+ label: "备注",
+ },
+]
+
+// 过滤条件
+const filterData = reactive({
+ title: "",
+ type: "",
+ warningLevel: "",
+})
+// 分页
+const pagination = reactive({
+ current: 1,
+ pageSize: 10,
+ total: 0,
+ pageSizes: [10, 20, 50],
+ layout: "prev, pager, next, jumper",
+ onChange: (page, pageSize) => {
+ pagination.current = page;
+ pagination.pageSize = pageSize;
+ getTableData(filterData);
+ },
+});
+
+// 获取列表
+const getTableData = async (filterData) => {
+ try {
+ const res = await request({
+ url: '',
+ method: "GET",
+ params: {
+
+ }
+ })
+ } catch (error) {
+
+ }
+}
+
+// 预警类型选项
+const typeOptions = [
+ { label: "全部", value: "" },
+ { label: "台风预警", value: "台风预警" },
+ { label: "暴雨预警", value: "暴雨预警" },
+ { label: "寒潮预警", value: "寒潮预警" },
+ { label: "大雾预警", value: "大雾预警" },
+ { label: "暴雪预警", value: "暴雪预警" },
+ { label: "道路结冰预警", value: "道路结冰预警" },
+ { label: "雷电预警", value: "雷电预警" },
+ { label: "强对流预警", value: "强对流预警" },
+];
+
+// 预警级别选项
+const warningLevelOptions = [
+ { label: "全部", value: "" },
+ { label: "红色预警", value: "红色预警" },
+ { label: "橙色预警", value: "橙色预警" },
+ { label: "黄色预警", value: "黄色预警" },
+ { label: "蓝色预警", value: "蓝色预警" },
+]
+
+
+
+export default () => {
+ return {
+ modelVisible,
+ model,
+ drawerVisible,
+ drawer,
+ dialogRef,
+ drawerRef,
+
+
+ tableData,
+ filterData,
+ pagination,
+ columns,
+ }
+}
\ No newline at end of file
diff --git a/packages/screen/src/views/LedgerManagement/index.vue b/packages/screen/src/views/LedgerManagement/index.vue
new file mode 100644
index 0000000..868917f
--- /dev/null
+++ b/packages/screen/src/views/LedgerManagement/index.vue
@@ -0,0 +1,83 @@
+
+