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