!141 fix(xispeak): 多部门用户部门ID匹配失败回退首个部门
* fix(xispeak): 多部门用户部门ID匹配失败回退首个部门 * style(bgpartymatter): 调整党委会页面标签列与查询列宽格式
This commit is contained in:
@@ -0,0 +1,89 @@
|
|||||||
|
# 党委会事项(bgpartymatter)页面格式调整与前端核查说明
|
||||||
|
|
||||||
|
> 核对日期:2026-08-06
|
||||||
|
> 核对范围:`src/views/bg/bgpartymatter/` 全部 Vue 组件(8 个真实页面/表单)+ `BgPartymatter.api.ts` / `BgPartymatter.data.ts` + 所务会包装页 `BgOfficematterList.vue`
|
||||||
|
> 核对方式:静态代码审查 + Playwright 无头浏览器实测标签溢出测量(`%TEMP%/pwverify/verify3.mjs`,admin 真实登录,临时路由 `bg-verify-temp` 渲染),参照 `src/views/dq/inspectTask/` 已完成的格式调整方案
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 一、格式调整记录(消除文字被输入框遮挡 / 对齐)
|
||||||
|
|
||||||
|
### 1. `BgPartymatterList.vue`(列表页 / 查询区,党委会默认 + 所务会复用)
|
||||||
|
|
||||||
|
| 问题 | 调整 |
|
||||||
|
|------|------|
|
||||||
|
| 查询表单 5 个筛选列 + 按钮列均为 `:xl="4"`(约占 1/6 屏宽),每行最多 5 列,输入控件偏窄 | 全部 6 处(年份/分管所领导/事项名称/会议决议/完成状态/按钮列)统一放宽为 `:xl="6"`(每行 4 个,按钮列换行),`labelCol xl:6 / xxl:8` 保持不动 |
|
||||||
|
| 本页筛选标签均 ≤6 字(年份/分管所领导/事项名称/会议决议/完成状态) | 无需精简标签 |
|
||||||
|
|
||||||
|
> `BgOfficematterList.vue` 通过 `<BgPartymatterList meeting-type="office" .../>` 复用本页,放宽列宽对「所务会」视图同样生效。
|
||||||
|
|
||||||
|
### 2. `BgPartymatterForm.vue`(新增/编辑弹窗,弹窗宽 1100)
|
||||||
|
|
||||||
|
| 问题 | 调整 |
|
||||||
|
|------|------|
|
||||||
|
| 整行字段「是否需要所办领导审批」9 字标签实测 140px,`wideLabelCol 3/21` 下标签盒仅 134px,溢出约 6px | 标签精简为 `需所办领导审批`(7 字 98px < 标签盒约 134px),完整语义由开关(j-switch)承载(与 inspectTask「需党群领导审批」处理一致) |
|
||||||
|
| 其余字段 ≤6 字(半行 7/17 标签盒约 190px、整行 wide 3/21 标签盒约 128px) | 实测 0 溢出,无需调整 |
|
||||||
|
|
||||||
|
### 3. `BgPartymatterFeedbackForm.vue`(反馈弹窗表单,弹窗宽 800)
|
||||||
|
|
||||||
|
| 问题 | 调整 |
|
||||||
|
|------|------|
|
||||||
|
| 基准 `formItemLayout` 为 `labelCol 5 / wrapperCol 16`(5+16=21),6 字标签(责任部门名称/计划完成日期/实际执行情况/实际完成日期,84px)在 `5/24×约376px≈78px` 标签盒内溢出 | 改为 `7/17`(7+17=24),标签盒约 102px > 84px,与 `BgPartymatterBPMFeedbackModal` 基准对齐 |
|
||||||
|
|
||||||
|
### 4. 无需调整的文件
|
||||||
|
|
||||||
|
- `BgPartymatterBPMForm.vue`(流程表单):基础信息 18 个标签实测 0 溢出;流程办理区(`process-variable-form`)为 `v-if` 门控(showSubApproveUser/showFinishSelector),当前表单状态不渲染
|
||||||
|
- `BgPartymatterBPMFeedbackModal.vue`(反馈弹窗,宽 820):10 个标签实测 0 溢出
|
||||||
|
- `BgPartymatterFeedbackModal.vue`(反馈弹窗壳,宽 800)、`BgPartymatterModal.vue`(弹窗壳,宽 1100)
|
||||||
|
- `BgPartymatterFeedbackList.vue`(`useSearchForm:false`,无筛选区渲染)
|
||||||
|
- `BgPartymatter.api.ts`、`BgPartymatter.data.ts`(无布局)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 二、前端错误核查
|
||||||
|
|
||||||
|
### 修复(3 处,格式级)
|
||||||
|
|
||||||
|
| 级别 | 文件 | 问题 | 处理 |
|
||||||
|
|------|------|------|------|
|
||||||
|
| 格式 | `BgPartymatterList.vue` | 查询列宽 `:xl="4"` 过窄 | 6 处统一 `xl:4→xl:6` |
|
||||||
|
| 格式 | `BgPartymatterFeedbackForm.vue` | 6 字标签在 `labelCol 5/24` 内溢出 | 基准 `5/16→7/17` |
|
||||||
|
| 格式 | `BgPartymatterForm.vue` | 9 字标签「是否需要所办领导审批」溢出约 6px | 精简为「需所办领导审批」 |
|
||||||
|
|
||||||
|
### 引用存在性校验(全部通过)
|
||||||
|
|
||||||
|
| 引用 | 校验结果 |
|
||||||
|
|------|---------|
|
||||||
|
| `columns / bgPartymatterFeedbackColumns / superQuerySchema` | `BgPartymatter.data.ts` 存在 ✓ |
|
||||||
|
| `list / statusStats / deleteOne / batchDelete / saveOrUpdate / saveBpmForm / setProcessVariable / setBpmVariableLocal / bgPartymatterFeedbackList / bgPartymatterFeedbackDelete / bgPartymatterFeedbackDeleteBatch / bgPartymatterFeedbackSaveOrUpdate / getExportUrl / getImportUrl / getImportExcelByEasyExcelUrl / getCheckExcelByEasyExcelUrl / getExportXlsByEasyExcelUrl / getExportXlsHeadersUrl / bgPartymatterFeedbackImportUrl / bgPartymatterFeedbackExportXlsUrl` | `BgPartymatter.api.ts` 均导出 ✓ |
|
||||||
|
| `DeptRoleUserSelectDropDown / DeptRoleUserSelectRadioGroup / SzSelectDept / JInput / JSwitch / JDictSelectTag / JFormContainer / j-upload-button` | 组件均存在 ✓ |
|
||||||
|
| `PARTY_COMMITTEE_DEPT_ID / CHARGE_LEADER_ROLE_ID / SDW_LEADER_ROLE_ID` | `src/constant/supervision/index.ts` 存在 ✓ |
|
||||||
|
| 弹窗壳宽度 | `BgPartymatterModal=1100`、`BgPartymatterFeedbackModal=800`、`BgPartymatterBPMFeedbackModal=820` ✓ |
|
||||||
|
|
||||||
|
### Playwright 实测(admin 真实登录,`bg-verify-temp` 临时路由)
|
||||||
|
|
||||||
|
| 页面 | 标签数 | 溢出 |
|
||||||
|
|------|--------|------|
|
||||||
|
| 列表筛选栏 | 4 | 0 |
|
||||||
|
| 新增/编辑弹窗(1100) | 19 | 修复前 1(「需所办领导审批」140>134),修复后 0 |
|
||||||
|
| BPM 基础信息 | 18 | 0 |
|
||||||
|
| 反馈弹窗(800) | 10 | 0 |
|
||||||
|
| BPM 反馈弹窗(820) | 10 | 0 |
|
||||||
|
|
||||||
|
### 发现但未改(P2 建议,不影响运行)
|
||||||
|
|
||||||
|
| 文件 | 说明 |
|
||||||
|
|------|------|
|
||||||
|
| `BgPartymatterBPMForm.vue` | line 807 `console.log('BgPartymatter BPM process info', ...)` 调试输出,建议清理 |
|
||||||
|
| `BgPartymatterForm.vue` | `JSelectDept / JSelectUser` import 未使用(模板中仅注释掉的 `<j-select-user>`) |
|
||||||
|
| `BgPartymatterFeedbackForm.vue` | lines 95-96 `labelCol / wrapperCol` 死引用(模板绑定的是 `formItemLayout`,未引用这两个 ref) |
|
||||||
|
| `BgPartymatterList.vue` | `useListPage` 解构的 `onImportXls` 未在模板使用(模板用 `handleCheckExcel` / `handleImportByTemplate`) |
|
||||||
|
| `BgPartymatterFeedbackList.vue` | `downloadFile` import 未使用 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 三、说明与假设
|
||||||
|
|
||||||
|
1. 弹窗 labelCol 调整依据弹窗声明宽度核算(`BgPartymatterModal=1100`、`BgPartymatterFeedbackModal=800`、`BgPartymatterBPMFeedbackModal=820`)。`BgPartymatterForm` 基准 `7/17`、wide `3/21` 可容纳 ≤7 字标签单行显示;「需所办领导审批」精简后完整语义由开关(j-switch)承载。
|
||||||
|
2. 列表页默认只显示 4 个筛选列(完成状态列 `v-if=toggleSearchStatus` 展开后显示),放宽为 `xl:6` 后每行 4 个、按钮列换行,与 inspectTask 处理一致。
|
||||||
|
3. 项目未配置 lint/typecheck 脚本,本核对以静态审查 + 浏览器实测为准;实测截图存 `%TEMP%/pwverify/shots3/` 供目视复核。
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="jeecg-basic-table-form-container">
|
<div class="jeecg-basic-table-form-container">
|
||||||
<a-form ref="formRef" @keyup.enter="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form ref="formRef" @keyup.enter="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24" class="search-form-row">
|
<a-row :gutter="24" class="search-form-row">
|
||||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<a-form-item name="year">
|
<a-form-item name="year">
|
||||||
<template #label>
|
<template #label>
|
||||||
<a-tooltip title="按年份筛选">年份</a-tooltip>
|
<a-tooltip title="按年份筛选">年份</a-tooltip>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<a-tooltip title="按年份筛选"><a-date-picker v-model:value="queryParam.year" picker="year" value-format="YYYY" placeholder="请选择年份" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip>
|
<a-tooltip title="按年份筛选"><a-date-picker v-model:value="queryParam.year" picker="year" value-format="YYYY" placeholder="请选择年份" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<a-form-item name="manageSuoleader">
|
<a-form-item name="manageSuoleader">
|
||||||
<template #label>
|
<template #label>
|
||||||
<a-tooltip title="按所党委分管所领导筛选">分管所领导</a-tooltip>
|
<a-tooltip title="按所党委分管所领导筛选">分管所领导</a-tooltip>
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
<a-tooltip title="按所党委分管所领导筛选"><DeptRoleUserSelectDropDown v-model:value="queryParam.manageSuoleader" :deptId="PARTY_COMMITTEE_DEPT_ID" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip>
|
<a-tooltip title="按所党委分管所领导筛选"><DeptRoleUserSelectDropDown v-model:value="queryParam.manageSuoleader" :deptId="PARTY_COMMITTEE_DEPT_ID" :roleId="CHARGE_LEADER_ROLE_ID" placeholder="请选择分管所领导" allow-clear style="width: 100%" @change="searchQuery" /></a-tooltip>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<a-form-item name="title">
|
<a-form-item name="title">
|
||||||
<template #label>
|
<template #label>
|
||||||
<a-tooltip title="支持模糊查询,输入事项名称关键词">事项名称</a-tooltip>
|
<a-tooltip title="支持模糊查询,输入事项名称关键词">事项名称</a-tooltip>
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
<a-tooltip title="支持模糊查询,输入事项名称关键词"><JInput v-model:value="queryParam.title" type="like" placeholder="请输入事项名称" allow-clear trim @update:value="searchQuery" /></a-tooltip>
|
<a-tooltip title="支持模糊查询,输入事项名称关键词"><JInput v-model:value="queryParam.title" type="like" placeholder="请输入事项名称" allow-clear trim @update:value="searchQuery" /></a-tooltip>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<a-form-item name="content">
|
<a-form-item name="content">
|
||||||
<template #label>
|
<template #label>
|
||||||
<a-tooltip title="支持模糊查询,输入会议决议关键词">会议决议</a-tooltip>
|
<a-tooltip title="支持模糊查询,输入会议决议关键词">会议决议</a-tooltip>
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
<a-tooltip title="支持模糊查询,输入会议决议关键词"><JInput v-model:value="queryParam.content" type="like" placeholder="请输入会议决议" allow-clear trim @update:value="searchQuery" /></a-tooltip>
|
<a-tooltip title="支持模糊查询,输入会议决议关键词"><JInput v-model:value="queryParam.content" type="like" placeholder="请输入会议决议" allow-clear trim @update:value="searchQuery" /></a-tooltip>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="toggleSearchStatus" :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col v-if="toggleSearchStatus" :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<a-form-item name="bpmStatus">
|
<a-form-item name="bpmStatus">
|
||||||
<template #label>
|
<template #label>
|
||||||
<a-tooltip title="按督办完成状态筛选">完成状态</a-tooltip>
|
<a-tooltip title="按督办完成状态筛选">完成状态</a-tooltip>
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
/></a-tooltip>
|
/></a-tooltip>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :xl="4" :lg="6" :md="8" :sm="12">
|
<a-col :xl="6" :lg="6" :md="8" :sm="12">
|
||||||
<span class="table-page-search-submitButtons">
|
<span class="table-page-search-submitButtons">
|
||||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||||
<a-button preIcon="ant-design:reload-outlined" style="margin-left: 8px" @click="searchReset">重置</a-button>
|
<a-button preIcon="ant-design:reload-outlined" style="margin-left: 8px" @click="searchReset">重置</a-button>
|
||||||
|
|||||||
@@ -103,8 +103,8 @@
|
|||||||
disabled: { type: Boolean, default: false },
|
disabled: { type: Boolean, default: false },
|
||||||
});
|
});
|
||||||
const formItemLayout = {
|
const formItemLayout = {
|
||||||
labelCol: { xs: { span: 24 }, sm: { span: 5 } },
|
labelCol: { xs: { span: 24 }, sm: { span: 7 } },
|
||||||
wrapperCol: { xs: { span: 24 }, sm: { span: 16 } },
|
wrapperCol: { xs: { span: 24 }, sm: { span: 17 } },
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="是否需要所办领导审批" v-bind="validateInfos.isNeedAppro" id="BgPartymatterForm-isNeedAppro" name="isNeedAppro" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
<a-form-item label="需所办领导审批" v-bind="validateInfos.isNeedAppro" id="BgPartymatterForm-isNeedAppro" name="isNeedAppro" :labelCol="wideLabelCol" :wrapperCol="wideWrapperCol">
|
||||||
<j-switch v-model:value="formData.isNeedAppro" ></j-switch>
|
<j-switch v-model:value="formData.isNeedAppro" ></j-switch>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|||||||
@@ -634,9 +634,12 @@ import {
|
|||||||
const departs = Array.isArray(loginInfo.departs) ? loginInfo.departs : [];
|
const departs = Array.isArray(loginInfo.departs) ? loginInfo.departs : [];
|
||||||
if (userInfo.orgCode) {
|
if (userInfo.orgCode) {
|
||||||
const dept = departs.find((item: any) => item.orgCode === userInfo.orgCode);
|
const dept = departs.find((item: any) => item.orgCode === userInfo.orgCode);
|
||||||
return dept?.id || '';
|
if (dept?.id) {
|
||||||
|
return dept.id;
|
||||||
}
|
}
|
||||||
return departs.length === 1 ? departs[0]?.id || '' : '';
|
}
|
||||||
|
// orgCode 缺失或与 departs 不匹配(多部门用户)时回退到第一个部门,避免返回空导致 saveSubApprove 报错
|
||||||
|
return departs.length > 0 ? departs[0]?.id || '' : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
function getCurrentAssignee() {
|
function getCurrentAssignee() {
|
||||||
|
|||||||
Reference in New Issue
Block a user