tuqin
5 天以前 394280c07af13a4046cecacaf0ea1f06ade2e54e
fix(bfkj): 百度地图 AK 换新 + 供应商准入免审批前端适配

1. 百度地图 AK 更换
旧 key Y2aJXiswwPxy6mwFs1z9c7U5gwX9WfUN 在 9025 域名下报
「APPReferer 校验失败」,导致考勤规则编辑页地图选点不可用。
换成新 key 5YhFUgsoi8KMm6tafbSljgz9NNpOYP1Z。
(VITE_APP_BAIDU_CODE 是百度统计用的,与地图无关,未改)

2. 供应商准入免审批前端适配
audit-policy.ts 新增 isAutoApproveByKey(processDefinitionKey),
调用 /bpm/process-auto-approve/ui-policy?key=xxx。
supplierApply 页提交时先按流程 key 判断,命中免审批则直接提交生效,
不再弹出「选择协同办公审批流程」窗口。

注:密钥类改动只影响本分支构建产物,需重新打包部署才生效。
已修改3个文件
42 ■■■■■ 文件已修改
.env 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/store/audit-policy.ts 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/srm/supplierApply/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env
@@ -35,4 +35,5 @@
# VITE_APP_API_ENCRYPT_RESPONSE_KEY = MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAOH8IfIFxL/MR9XIg1UDv5z1fGXQI93E8wrU4iPFovL/sEt9uSgSkjyidC2O7N+m7EKtoN6b1u7cEwXSkwf3kfK0jdWLSQaNpX5YshqXCBzbDfugDaxuyYrNA4/tIMs7mzZAk0APuRXB35Dmupou7Yw7TFW/7QhQmGfzeEKULQvnAgMBAAECgYAw8LqlQGyQoPv5p3gRxEMOCfgL0JzD3XBJKztiRd35RDh40Nx1ejgjW4dPioFwGiVWd2W8cAGHLzALdcQT2KDJh+T/tsd4SPmI6uSBBK6Ff2DkO+kFFcuYvfclQQKqxma5CaZOSqhgenacmgTMFeg2eKlY3symV6JlFNu/IKU42QJBAOhxAK/Eq3e61aYQV2JSguhMR3b8NXJJRroRs/QHEanksJtl+M+2qhkC9nQVXBmBkndnkU/l2tYcHfSBlAyFySMCQQD445tgm/J2b6qMQmuUGQAYDN8FIkHjeKmha+l/fv0igWm8NDlBAem91lNDIPBUzHL1X1+pcts5bjmq99YdOnhtAkAg2J8dN3B3idpZDiQbC8fd5bGPmdI/pSUudAP27uzLEjr2qrE/QPPGdwm2m7IZFJtK7kK1hKio6u48t/bg0iL7AkEAuUUs94h+v702Fnym+jJ2CHEkXvz2US8UDs52nWrZYiM1o1y4tfSHm8H8bv8JCAa9GHyriEawfBraILOmllFdLQJAQSRZy4wmlaG48MhVXodB85X+VZ9krGXZ2TLhz7kz9iuToy53l9jTkESt6L5BfBDCVdIwcXLYgK+8KFdHN5W7HQ==
# 百度地图
VITE_BAIDU_MAP_KEY=Y2aJXiswwPxy6mwFs1z9c7U5gwX9WfUN
# 2026-11-03 更换:旧 key Y2aJXiswwPxy6mwFs1z9c7U5gwX9WfUN 报 Referer 校验失败
VITE_BAIDU_MAP_KEY=5YhFUgsoi8KMm6tafbSljgz9NNpOYP1Z
src/store/audit-policy.ts
@@ -13,3 +13,26 @@
    automaticApproval.value = false;
  }
}
/**
 * 查询某个流程是否免审批。
 *
 * 后端判定规则是「全局总开关 || 该流程自己的开关」,
 * 因此即使全局没开,也可以只对个别流程放开免审批
 * (例如供应商准入不走协同审批:supplier_apply_approve)。
 *
 * @param processDefinitionKey 流程定义 Key
 */
export async function isAutoApproveByKey(
  processDefinitionKey: string,
): Promise<boolean> {
  try {
    return await requestClient.get<boolean>(
      '/bpm/process-auto-approve/ui-policy',
      { params: { key: processDefinitionKey } },
    );
  } catch {
    // 取不到策略时退回全局判断,避免误弹流程选择框
    return automaticApproval.value;
  }
}
src/views/srm/supplierApply/index.vue
@@ -1,5 +1,5 @@
<script lang="ts" setup>
import { automaticApproval } from '#/store/audit-policy';
import { isAutoApproveByKey } from '#/store/audit-policy';
import { submitApply } from '#/api/srm/supplierApply';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { SrmSupplierApplyApi } from '#/api/srm/supplierApply';
@@ -24,6 +24,9 @@
import { APPLY_STATUS } from '../enums';
defineOptions({ name: 'SrmSupplierApply' });
/** 供应商准入审批的流程定义 Key(免审批配置也按此 Key 记录) */
const SUPPLIER_APPLY_PROCESS_KEY = 'supplier_apply_approve';
const router = useRouter();
@@ -69,15 +72,17 @@
  }
}
/** 提交审批 - 先获取协同办公审批流程列表 */
/** 提交审批 - 供应商准入已改为免协同审批,命中免审批时直接生效 */
async function handleSubmit(row: SrmSupplierApplyApi.ApplyVO) {
  const hideLoading = message.loading({
    content: automaticApproval.value ? '正在提交生效...' : '获取审批流程...',
    content: '正在提交...',
    duration: 0,
  });
  try {
    if (automaticApproval.value) {
      await submitApply(row.id!, 'supplier_apply_approve');
    // 按流程 Key 判断是否免审批(全局开关开启,或该流程单独配置了免审批,都算)
    const autoApprove = await isAutoApproveByKey(SUPPLIER_APPLY_PROCESS_KEY);
    if (autoApprove) {
      await submitApply(row.id!, SUPPLIER_APPLY_PROCESS_KEY);
      hideLoading();
      message.success('已提交生效');
      handleRefresh();
@@ -90,7 +95,6 @@
      return;
    }
    // 打开流程选择弹窗
    processModalApi.setData({ id: row.id, processList }).open();
  } catch {
    hideLoading();