gaoluyang
6 天以前 59767d0570cdca74e0405b8d361ad0a7e979b6a2
fix(staff): 第一学历展示兼容英文编码

员工档案教育经历存的是 middle_school/high_school 等英文编码,后端会回写到
staff_on_job.first_study,合同管理、离职、离职申请等列表直接展示该字段。

- 新增 utils/education.js 的 formatEducation 统一转中文(初中/高中/中专/大专/本科等)
- 合同管理、离职、离职申请、OA 合同页的第一学历列加 formatData
- 离职/离职申请详情弹窗同步格式化

Co-Authored-By: Claude Code <noreply@anthropic.com>
已添加1个文件
已修改6个文件
36 ■■■■■ 文件已修改
src/utils/education.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/HrManage/resign-apply/components/formDia.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/HrManage/resign-apply/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/HrManage/staff-contract/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/contractManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/dimission/components/formDia.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/personnelManagement/dimission/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/education.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
// å­¦åŽ†å­—å…¸ï¼šå‘˜å·¥æ¡£æ¡ˆæ•™è‚²ç»åŽ†å­˜å‚¨è‹±æ–‡ç¼–ç ï¼Œåˆ—è¡¨/详情展示时统一转成中文
const EDUCATION_LABELS = {
  middle_school: "初中",
  high_school: "高中",
  technical_secondary: "中专",
  secondary: "中专及以下",
  junior_college: "大专",
  bachelor: "本科",
  master: "硕士",
  doctor: "博士及以上",
};
/**
 * å­¦åŽ†ç¼–ç è½¬ä¸­æ–‡ï¼›å·²æ˜¯ä¸­æ–‡ï¼ˆåŽ†å²æ•°æ®ï¼‰æˆ–ç©ºå€¼æ—¶åŽŸæ ·è¿”å›ž
 * @param {string} value
 */
export function formatEducation(value) {
  if (!value) return value;
  return EDUCATION_LABELS[value] || value;
}
export default EDUCATION_LABELS;
src/views/officeProcessAutomation/HrManage/resign-apply/components/formDia.vue
@@ -52,7 +52,7 @@
          <el-row :gutter="30">
            <el-col :span="12">
              <el-form-item label="第一学历:">
                {{ currentStaffRecord.firstStudy || '-' }}
                {{ formatEducation(currentStaffRecord.firstStudy) || '-' }}
              </el-form-item>
            </el-col>
            <el-col :span="12">
@@ -167,6 +167,7 @@
<script setup>
  import { ref, reactive, toRefs, getCurrentInstance } from "vue";
  import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
  import { formatEducation } from "@/utils/education.js";
  import {
    createStaffLeave,
    updateStaffLeave,
src/views/officeProcessAutomation/HrManage/resign-apply/index.vue
@@ -42,6 +42,7 @@
  import FormDia from "@/views/personnelManagement/dimission/components/formDia.vue";
  import { findStaffLeaveListPage } from "@/api/personnelManagement/staffLeave.js";
  import { ElMessageBox } from "element-plus";
  import { formatEducation } from "@/utils/education.js";
  const data = reactive({
    searchForm: {
@@ -100,6 +101,7 @@
    {
      label: "第一学历",
      prop: "firstStudy",
      formatData: formatEducation,
    },
    {
      label: "专业",
src/views/officeProcessAutomation/HrManage/staff-contract/index.vue
@@ -83,6 +83,7 @@
  import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
  import dayjs from "dayjs";
  import { getToken } from "@/utils/auth.js";
  import { formatEducation } from "@/utils/education.js";
  import FilesDia from "./filesDia.vue";
  const data = reactive({
    searchForm: {
@@ -136,6 +137,7 @@
    {
      label: "第一学历",
      prop: "firstStudy",
      formatData: formatEducation,
    },
    {
      label: "专业",
src/views/personnelManagement/contractManagement/index.vue
@@ -101,6 +101,7 @@
  import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
  import dayjs from "dayjs";
  import { getToken } from "@/utils/auth.js";
  import { formatEducation } from "@/utils/education.js";
  import FilesDia from "./filesDia.vue";
  const data = reactive({
    searchForm: {
@@ -154,6 +155,7 @@
    {
      label: "第一学历",
      prop: "firstStudy",
      formatData: formatEducation,
    },
    {
      label: "专业",
src/views/personnelManagement/dimission/components/formDia.vue
@@ -52,7 +52,7 @@
          <el-row :gutter="30">
            <el-col :span="12">
              <el-form-item label="第一学历:">
                {{ currentStaffRecord.firstStudy || '-' }}
                {{ formatEducation(currentStaffRecord.firstStudy) || '-' }}
              </el-form-item>
            </el-col>
            <el-col :span="12">
@@ -167,6 +167,7 @@
<script setup>
  import { ref, reactive, toRefs, getCurrentInstance } from "vue";
  import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
  import { formatEducation } from "@/utils/education.js";
  import {
    createStaffLeave,
    updateStaffLeave,
src/views/personnelManagement/dimission/index.vue
@@ -45,6 +45,7 @@
    batchDeleteStaffLeaves,
  } from "@/api/personnelManagement/staffLeave.js";
  import { ElMessageBox } from "element-plus";
  import { formatEducation } from "@/utils/education.js";
  const data = reactive({
    searchForm: {
@@ -103,6 +104,7 @@
    {
      label: "第一学历",
      prop: "firstStudy",
      formatData: formatEducation,
    },
    {
      label: "专业",