一单n制等功能,接入随手拍之前我先提交一版本

This commit is contained in:
王利强
2026-08-12 14:43:53 +08:00
parent ec76d588e2
commit 47deeedb22
664 changed files with 1429 additions and 2894 deletions

View File

@@ -178,27 +178,29 @@ const isTruthyFlag = (value) => value === true || value === 1 || value === '1';
/**
* 立即验收按钮展示逻辑(首页、隐患排查列表等共用)
*
* 展示条件(需同时满足):
* 1. statusName === '待验收'
* 2. 当前角色为 admin 或 manage
* 3. 流程节点类型 nodeType 允许验收
* 【当前展示条件
* 接口返回 item.verifyFlag 为 true 时展示false 时不展示。
* 权限、角色、流程节点等由后端统一计算并写入 verifyFlag前端不再单独判断。
*
* 【历史变更】
* - 最初item.quickApprove != 0 时展示
* - 中间:改为 item.resultnull 或 3=驳回)时展示
* - 现在:改为 item.nodeType 控制
*
* - 中间:改为 item.result 控制
* 仅当 result 为 null 或 3驳回时展示
*
* - 其后:改为 item.nodeType 控制(需同时满足 statusName === '待验收' 且角色为 admin/manage
* 展示条件(需同时满足):
* 1. statusName === '待验收'
* 2. 当前角色为 admin 或 manage
* 3. 流程节点类型 nodeType 允许验收
* 仅当 nodeType 为 null、1重新整改、2驳回、3重新验收时展示
* 其他 nodeType 值不展示
*
* - 2026-08-05改为 item.verifyFlag 控制true 展示false 不展示)
* 列表接口(首页 getHiddenDangerList、隐患排查 getMyHiddenDangerList新增 verifyFlag 字段
*/
export function canShowAcceptanceButton(item, roleKey) {
const canAcceptance = roleKey === 'admin' || roleKey === 'manage';
const nodeType = item?.nodeType;
// null初始待验收1重新整改2驳回3重新验收
const canAcceptByNodeType = nodeType == null
|| nodeType === 1 || nodeType === '1'
|| nodeType === 2 || nodeType === '2'
|| nodeType === 3 || nodeType === '3';
return item?.statusName === '待验收' && canAcceptance && canAcceptByNodeType;
export function canShowAcceptanceButton(item) {
return isTruthyFlag(item?.verifyFlag);
}
/** 销号申请按钮:待销号且 applyFlag 为 true */

View File

@@ -43,6 +43,26 @@ export function resolveUserIdentityRoleKey(userInfo) {
return normalizeRoleKey(identity?.roleKey);
}
/** 从 userInfo 中读取组织实体类型0/1=政府2/3=企业及企业下部门 */
export function resolveOrganizationEntityType(userInfo) {
if (!userInfo) return null;
const identity = normalizeUserIdentity(userInfo.userIdentity);
const currentIdentity = getCurrentIdentityFromStorage();
const merged = identity || currentIdentity;
if (merged?.organizationEntityType == null || merged?.organizationEntityType === '') return null;
const entityType = Number(merged.organizationEntityType);
return Number.isNaN(entityType) ? null : entityType;
}
const MANAGER_ROLE_KEYS = ['admin', 'manage'];
/** 是否为政府类型组织的管理员organizationEntityType=0/1 且 roleKey 为 admin/manage */
export function isGovernmentEntityAdmin(userInfo) {
const entityType = resolveOrganizationEntityType(userInfo);
if (entityType !== 0 && entityType !== 1) return false;
return MANAGER_ROLE_KEYS.includes(resolveUserIdentityRoleKey(userInfo));
}
/** 解析用于权限判断的角色标识,优先当前身份 roleKey */
export function resolveUserRoleKey(userInfo) {
if (!userInfo) return '';