From 2ab2089cf9c320920715c85525f43553c81c85df Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 26 十月 2026 14:14:40 +0800
Subject: [PATCH] feat(hrm): 薪酬核算新增岗位工资/工龄工资列;核算搜索的员工下拉支持模糊搜索

---
 src/api/hrm/employee/index.ts                     |    4 ++
 src/api/hrm/salary/calculation/index.ts           |    4 ++
 src/views/hrm/salary/calculation/data.ts          |   10 ++++
 src/views/hrm/salary/calculation/modules/form.vue |    2 +
 src/views/hrm/salary/calculation/index.vue        |   22 +++++++++++
 src/views/hrm/employee/data.ts                    |   22 +++++++++++
 6 files changed, 63 insertions(+), 1 deletions(-)

diff --git a/src/api/hrm/employee/index.ts b/src/api/hrm/employee/index.ts
index fdf7207..5833fd4 100644
--- a/src/api/hrm/employee/index.ts
+++ b/src/api/hrm/employee/index.ts
@@ -33,6 +33,10 @@
     sickLeaveBalance?: number;
     salaryStructureId?: number;
     baseSalary?: number;
+    /** 宀椾綅宸ヨ祫 */
+    postSalary?: number;
+    /** 宸ラ緞宸ヨ祫 */
+    senioritySalary?: number;
     roleIds?: number[];
     roleNames?: string[];
     bankName?: string;
diff --git a/src/api/hrm/salary/calculation/index.ts b/src/api/hrm/salary/calculation/index.ts
index 76d4fdd..8c19dd6 100644
--- a/src/api/hrm/salary/calculation/index.ts
+++ b/src/api/hrm/salary/calculation/index.ts
@@ -14,6 +14,10 @@
     deptName?: string;
     baseSalary?: number;
     performanceSalary?: number;
+    /** 宀椾綅宸ヨ祫 */
+    postSalary?: number;
+    /** 宸ラ緞宸ヨ祫 */
+    senioritySalary?: number;
     overtimePay?: number;
     mealAllowance?: number;
     transportAllowance?: number;
diff --git a/src/views/hrm/employee/data.ts b/src/views/hrm/employee/data.ts
index 1307eea..bcc7fb6 100644
--- a/src/views/hrm/employee/data.ts
+++ b/src/views/hrm/employee/data.ts
@@ -280,6 +280,28 @@
       },
     },
     {
+      fieldName: 'postSalary',
+      label: '宀椾綅宸ヨ祫',
+      component: 'InputNumber',
+      componentProps: {
+        placeholder: '璇疯緭鍏ュ矖浣嶅伐璧�',
+        min: 0,
+        precision: 2,
+        style: { width: '100%' },
+      },
+    },
+    {
+      fieldName: 'senioritySalary',
+      label: '宸ラ緞宸ヨ祫',
+      component: 'InputNumber',
+      componentProps: {
+        placeholder: '璇疯緭鍏ュ伐榫勫伐璧�',
+        min: 0,
+        precision: 2,
+        style: { width: '100%' },
+      },
+    },
+    {
       fieldName: 'bankName',
       label: '寮�鎴烽摱琛�',
       component: 'Input',
diff --git a/src/views/hrm/salary/calculation/data.ts b/src/views/hrm/salary/calculation/data.ts
index d52945d..2f8ce82 100644
--- a/src/views/hrm/salary/calculation/data.ts
+++ b/src/views/hrm/salary/calculation/data.ts
@@ -34,7 +34,11 @@
         labelField: 'name',
         valueField: 'id',
         allowClear: true,
-        placeholder: '璇烽�夋嫨鍛樺伐',
+        showSearch: true,
+        // 鏀寔鎸夊鍚嶆ā绯婃悳绱紱涔熷彲杈撳叆鍛樺伐缂栧彿鍖归厤
+        filterOption: (input: string, option: any) =>
+          `${option?.label ?? ''}`.toLowerCase().includes(input.toLowerCase()),
+        placeholder: '璇烽�夋嫨鍛樺伐锛堝彲杈撳叆濮撳悕鎼滅储锛�',
       },
     },
     {
@@ -76,6 +80,8 @@
     { field: 'userName', title: '鍛樺伐濮撳悕', minWidth: 100 },
     { field: 'deptName', title: '閮ㄩ棬', minWidth: 120 },
     { field: 'baseSalary', title: '鍩烘湰宸ヨ祫', width: 120, slots: { default: 'editableCell' } },
+    { field: 'postSalary', title: '宀椾綅宸ヨ祫', width: 110, slots: { default: 'editableCell' } },
+    { field: 'senioritySalary', title: '宸ラ緞宸ヨ祫', width: 110, slots: { default: 'editableCell' } },
     { field: 'performanceSalary', title: '缁╂晥宸ヨ祫', width: 120, slots: { default: 'editableCell' } },
     { field: 'overtimePay', title: '鍔犵彮璐�', width: 120, slots: { default: 'editableCell' } },
     { field: 'mealAllowance', title: '椁愯ˉ', width: 110, slots: { default: 'editableCell' } },
@@ -116,6 +122,8 @@
     { title: '鍛樺伐濮撳悕', dataIndex: 'userName', width: 100, fixed: 'left' },
     { title: '閮ㄩ棬', dataIndex: 'deptName', width: 120 },
     { title: '鍩烘湰宸ヨ祫', dataIndex: 'baseSalary', width: 110 },
+    { title: '宀椾綅宸ヨ祫', dataIndex: 'postSalary', width: 110 },
+    { title: '宸ラ緞宸ヨ祫', dataIndex: 'senioritySalary', width: 110 },
     { title: '缁╂晥宸ヨ祫', dataIndex: 'performanceSalary', width: 110 },
     { title: '鍔犵彮璐�', dataIndex: 'overtimePay', width: 110 },
     { title: '椁愯ˉ', dataIndex: 'mealAllowance', width: 100 },
diff --git a/src/views/hrm/salary/calculation/index.vue b/src/views/hrm/salary/calculation/index.vue
index 1636793..4729973 100644
--- a/src/views/hrm/salary/calculation/index.vue
+++ b/src/views/hrm/salary/calculation/index.vue
@@ -249,6 +249,8 @@
 /** 鍒楄〃鍙紪杈戠殑鏁板�煎瓧娈� */
 const EDITABLE_NUMBER_FIELDS = [
   'baseSalary',
+  'postSalary',
+  'senioritySalary',
   'performanceSalary',
   'overtimePay',
   'mealAllowance',
@@ -415,6 +417,26 @@
               @change="(val: number) => updateFieldValue(record, 'performanceSalary', val)"
             />
           </template>
+          <template v-else-if="column.dataIndex === 'postSalary'">
+            <InputNumber
+              v-model:value="record.postSalary"
+              :min="0"
+              :precision="2"
+              size="small"
+              style="width: 90px"
+              @change="(val: number) => updateFieldValue(record, 'postSalary', val)"
+            />
+          </template>
+          <template v-else-if="column.dataIndex === 'senioritySalary'">
+            <InputNumber
+              v-model:value="record.senioritySalary"
+              :min="0"
+              :precision="2"
+              size="small"
+              style="width: 90px"
+              @change="(val: number) => updateFieldValue(record, 'senioritySalary', val)"
+            />
+          </template>
           <template v-else-if="column.dataIndex === 'overtimePay'">
             <InputNumber
               v-model:value="record.overtimePay"
diff --git a/src/views/hrm/salary/calculation/modules/form.vue b/src/views/hrm/salary/calculation/modules/form.vue
index 6369f76..a3af255 100644
--- a/src/views/hrm/salary/calculation/modules/form.vue
+++ b/src/views/hrm/salary/calculation/modules/form.vue
@@ -17,6 +17,8 @@
 /** 鏀跺叆椤� */
 const incomeFields = [
   { key: 'baseSalary', label: '鍩烘湰宸ヨ祫' },
+  { key: 'postSalary', label: '宀椾綅宸ヨ祫' },
+  { key: 'senioritySalary', label: '宸ラ緞宸ヨ祫' },
   { key: 'performanceSalary', label: '缁╂晥宸ヨ祫' },
   { key: 'overtimePay', label: '鍔犵彮璐�' },
   { key: 'mealAllowance', label: '椁愯ˉ' },

--
Gitblit v1.9.3