diff --git a/zdxt-web-client/zdxt-admin-plus-ui/.env.development b/zdxt-web-client/zdxt-admin-plus-ui/.env.development index 4778c907..fe7fe9fc 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/.env.development +++ b/zdxt-web-client/zdxt-admin-plus-ui/.env.development @@ -1,5 +1,5 @@ # 页面标题 -VITE_APP_TITLE = zdxt-Vue-Plus多租户管理系统 +VITE_APP_TITLE = 执法监督码•执法监督 VITE_APP_LOGO_TITLE = 执法监督码•执法监督 # 开发环境配置 @@ -7,13 +7,13 @@ VITE_APP_ENV = 'development' # 开发环境 VITE_APP_BASE_API = '/dev-api' - +# VITE_APP_BASE_API = '/efcode20-sup-web/prod-api' # API 代理目标地址 VITE_APP_PROXY_TARGET = 'http://localhost:8080' # 应用访问路径 例如使用前缀 /admin/ -VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' - +# VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' +VITE_APP_CONTEXT_PATH = '/zfjdm/' # 监控地址 VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' diff --git a/zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust b/zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust index 907f5c22..8f6a8406 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust +++ b/zdxt-web-client/zdxt-admin-plus-ui/.env.development-wmy-cust @@ -15,7 +15,9 @@ VITE_APP_ENV = 'development' VITE_APP_BASE_API = '/efcode20-sup-web/prod-api' # 应用访问路径 例如使用前缀 /admin/ -VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' +# VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' +VITE_APP_CONTEXT_PATH = '/zfjdm/' + # 监控地址 VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' @@ -23,7 +25,7 @@ VITE_APP_MONITOR_ADMIN = 'http://localhost:9090/admin/applications' # SnailJob 控制台地址 VITE_APP_SNAILJOB_ADMIN = 'http://localhost:8800/snail-job' -VITE_APP_PORT = 12004 +VITE_APP_PORT = 12003 # 接口加密功能开关(如需关闭 后端也必须对应关闭) VITE_APP_ENCRYPT = true diff --git a/zdxt-web-client/zdxt-admin-plus-ui/.env.production b/zdxt-web-client/zdxt-admin-plus-ui/.env.production index 67776ff3..8616668f 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/.env.production +++ b/zdxt-web-client/zdxt-admin-plus-ui/.env.production @@ -6,7 +6,8 @@ VITE_APP_LOGO_TITLE = 执法监督码•执法监督 VITE_APP_ENV = 'production' # 应用访问路径 例如使用前缀 /admin/ -VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' +# VITE_APP_CONTEXT_PATH = '/efcode20-sup-web/' +VITE_APP_CONTEXT_PATH = '/zfjdm/' # 监控地址 VITE_APP_MONITOR_ADMIN = '/admin/applications' @@ -16,6 +17,7 @@ VITE_APP_SNAILJOB_ADMIN = '/snail-job' # 生产环境 VITE_APP_BASE_API = '/efcode20-sup-web/prod-api' +# VITE_APP_BASE_API = '/zfjdm/prod-api' # 是否在打包时开启压缩,支持 gzip 和 brotli VITE_BUILD_COMPRESS = gzip diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/district-direct/index.vue b/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/district-direct/index.vue index a0771132..f4b0e972 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/district-direct/index.vue +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/district-direct/index.vue @@ -3,7 +3,7 @@
-
-
+ -
+
- + 综合数据
@@ -202,7 +202,7 @@ const detailTab = ref(0); const deptList = ref<(SysDeptVo & { deptId: string | number | null })[]>([]); const selectedDeptId = ref(null); const selectedSubDeptId = ref(null); -const selectedForDetail = ref(null); +const selectedForDetail = ref<(SysDeptVo & { deptId: string | number | null }) | null>(null); const deptName = ref('各区'); const detailDistrictName = ref(''); const districtDetailList = ref([]); @@ -231,6 +231,22 @@ function isSelected(dept: SysDeptVo & { deptId: string | number | null }) { return String(dept.deptId) === String(selectedDeptId.value) || (dept.deptId === null && selectedDeptId.value === null); } +/** 旧项目:点击下拉菜单时关闭所有其他面板 */ +function toggleDeptPanel() { + deptPanelOpen.value = !deptPanelOpen.value; + if (deptPanelOpen.value) { + datePickerOpen.value = false; + } +} + +function toggleDatePicker() { + datePickerOpen.value = !datePickerOpen.value; + if (datePickerOpen.value) { + deptPanelOpen.value = false; + detailPanelOpen.value = false; + } +} + function getParams() { const bureauDeptId = selectedSubDeptId.value ?? selectedDeptId.value; return { beginTime: dateRange.value?.[0], endTime: dateRange.value?.[1], zone: 2, bureauDeptId }; @@ -248,21 +264,30 @@ async function loadDepts() { if (datas.length >= 11) { list.push({ deptId: null, deptName: '各区' }); changeDept(null, '各区'); + // 旧项目:初始化时预加载弹出面板数据 + selectedForDetail.value = { deptId: null, deptName: '各区' }; + detailDistrictName.value = '各区'; + loadStreetAndDistrict(null); } else if (datas.length === 0) { list.push({ deptId: -1, deptName: '无权限' }); changeDept(-1, '无权限'); } else if (datas.length > 0) { changeDept(datas[0].deptId, datas[0].deptName); + // 旧项目:初始化时预加载弹出面板数据 + selectedForDetail.value = datas[0] as SysDeptVo & { deptId: string | number }; + detailDistrictName.value = datas[0].deptName; + loadStreetAndDistrict(datas[0].deptId); } deptList.value = [...list, ...datas]; } function onDeptClick(dept: SysDeptVo & { deptId: string | number | null }) { - if (dept.deptId === null || dept.deptId === -1) { + if (dept.deptId === -1) { changeDept(dept.deptId, dept.deptName); detailPanelOpen.value = false; return; } + // 旧项目:无论点击哪个区(包括"各区"),都会显示弹出面板 selectedForDetail.value = dept; detailDistrictName.value = dept.deptName; detailPanelOpen.value = true; @@ -272,22 +297,31 @@ function onDeptClick(dept: SysDeptVo & { deptId: string | number | null }) { } function selectSubDept(item: SysDeptVo) { - selectedSubDeptId.value = selectedSubDeptId.value === item.deptId ? null : item.deptId; + if (selectedSubDeptId.value === item.deptId) { + // 取消选中,恢复为区级名称 + selectedSubDeptId.value = null; + deptName.value = detailDistrictName.value; + } else { + // 选中子单位,更新下拉按钮显示子单位名称(旧项目 changeArea type=2 的行为) + selectedSubDeptId.value = item.deptId; + deptName.value = item.deptName; + } refreshAll(); } function changeDept(id: string | number | null, name: string) { selectedDeptId.value = id; deptName.value = name; - deptPanelOpen.value = false; + // 旧项目:下拉菜单保持打开,弹出面板显示在右侧,这里不需要关闭下拉菜单 + // deptPanelOpen.value = false; refreshAll(); } -async function loadStreetAndDistrict(deptId: string | number) { +async function loadStreetAndDistrict(deptId: string | number | null) { const res = await safeLoad(() => queryStreetAndDistrict({ zoneList: [3, 4], deptId })); const list = unwrapData(res) || []; - districtDetailList.value = list.filter((d) => d.zone === 3); - streetDetailList.value = list.filter((d) => d.zone === 4); + districtDetailList.value = list.filter((d) => String(d.zone) === '3'); + streetDetailList.value = list.filter((d) => String(d.zone) === '4'); } function initChart(key: string, el?: HTMLElement) { diff --git a/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/styles/analysis-layout.css b/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/styles/analysis-layout.css index 8b264c0d..94e34c39 100644 --- a/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/styles/analysis-layout.css +++ b/zdxt-web-client/zdxt-admin-plus-ui/src/views/supervision/statistical/styles/analysis-layout.css @@ -7,10 +7,8 @@ .statistical-analysis .wrap_all { height: 100%; -} - -/* 仅各区页 popbox 需要定位参照,勿加在全市直 select_item 上(会导致 fold_cont 高度按 28px 计算) */ -.statistical-analysis .select_item--anchor { + /* 关键:让 .fold_cont 和 .popbox 的绝对定位相对于全屏容器, + 这样 popbox 的 width:60%/height:70% 才是相对于整个页面,而不是小容器 */ position: relative; } @@ -26,6 +24,11 @@ display: block; } +/* .tabcont 原 CSS 默认 display:none,用 v-if 切换渲染时加此 class 显式显示 */ +.statistical-analysis .tabcont.tabcont--shown { + display: block; +} + .statistical-analysis .el-date-editor { margin-left: 8px; }