diff --git a/src/api/arcb/salary/expenseconf/index.ts b/src/api/arcb/salary/expenseconf/index.ts new file mode 100644 index 000000000..1b1f6d78e --- /dev/null +++ b/src/api/arcb/salary/expenseconf/index.ts @@ -0,0 +1,42 @@ +import request from '@/config/axios' + +// 缴存比例配置 VO +export interface ExpenseConfVO { + id: number // 序号 + expenseType: string // 缴存费用类型 + expenseName: string // 缴存名称 + expenseProportion: number // 缴存比例 +} + +// 缴存比例配置 API +export const ExpenseConfApi = { + // 查询缴存比例配置分页 + getExpenseConfPage: async (params: any) => { + return await request.get({ url: `/salary/expense-conf/page`, params }) + }, + + // 查询缴存比例配置详情 + getExpenseConf: async (id: number) => { + return await request.get({ url: `/salary/expense-conf/get?id=` + id }) + }, + + // 新增缴存比例配置 + createExpenseConf: async (data: ExpenseConfVO) => { + return await request.post({ url: `/salary/expense-conf/create`, data }) + }, + + // 修改缴存比例配置 + updateExpenseConf: async (data: ExpenseConfVO) => { + return await request.put({ url: `/salary/expense-conf/update`, data }) + }, + + // 删除缴存比例配置 + deleteExpenseConf: async (id: number) => { + return await request.delete({ url: `/salary/expense-conf/delete?id=` + id }) + }, + + // 导出缴存比例配置 Excel + exportExpenseConf: async (params) => { + return await request.download({ url: `/salary/expense-conf/export-excel`, params }) + }, +} diff --git a/src/api/arcb/salary/salaryconfig/index.ts b/src/api/arcb/salary/salaryconfig/index.ts new file mode 100644 index 000000000..3cbeb1a56 --- /dev/null +++ b/src/api/arcb/salary/salaryconfig/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// 员工薪资项目配置 VO +export interface SalaryConfVO { + id: number // 唯一标识符 + idNo: string // 身份证号 + levelGear: string // 职级档位 + stationSalary: number // 岗位工资 + hardshipAllowance: number // 艰苦补贴 + annuityBase: number // 企业年金缴纳基数 + socialSecurityBase: number // 社保缴纳基数 + pensionBase: number // 养老金缴纳基数 + housingFundBase: number // 住房公积金缴纳基数 + month: string // 年月 +} + +// 员工薪资项目配置 API +export const SalaryConfApi = { + // 查询员工薪资项目配置分页 + getSalaryConfPage: async (params: any) => { + return await request.get({ url: `/salary/salary-conf/page`, params }) + }, + + // 查询员工薪资项目配置详情 + getSalaryConf: async (id: number) => { + return await request.get({ url: `/salary/salary-conf/get?id=` + id }) + }, + + // 新增员工薪资项目配置 + createSalaryConf: async (data: SalaryConfVO) => { + return await request.post({ url: `/salary/salary-conf/create`, data }) + }, + + // 修改员工薪资项目配置 + updateSalaryConf: async (data: SalaryConfVO) => { + return await request.put({ url: `/salary/salary-conf/update`, data }) + }, + + // 删除员工薪资项目配置 + deleteSalaryConf: async (id: number) => { + return await request.delete({ url: `/salary/salary-conf/delete?id=` + id }) + }, + + // 导出员工薪资项目配置 Excel + exportSalaryConf: async (params) => { + return await request.download({ url: `/salary/salary-conf/export-excel`, params }) + }, +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 83fdd8212..b125408d3 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -246,6 +246,7 @@ export enum DICT_TYPE { ARCB_POSITION_CATEGORY = 'arcb_position_category', //岗位序列 ARCB_SPECIAL_COST_NAME = 'arcb_special_cost_name', //特殊费用名称 ARCB_SPECIAL_COST_TYPE = 'arcb_special_cost_type', //特殊费用类型 + ARCB_EXPENSE_TYPE = 'arcb_expense_type', //缴存费用类型 ARCB_SALARY_SPECIAL_ATTENDANCE = 'arcb_salary_special_attendance' //特殊考勤-考勤状态 diff --git a/src/views/arcb/salary/expenseconf/ExpenseConfForm.vue b/src/views/arcb/salary/expenseconf/ExpenseConfForm.vue new file mode 100644 index 000000000..5439fe155 --- /dev/null +++ b/src/views/arcb/salary/expenseconf/ExpenseConfForm.vue @@ -0,0 +1,112 @@ + + \ No newline at end of file diff --git a/src/views/arcb/salary/expenseconf/index.vue b/src/views/arcb/salary/expenseconf/index.vue new file mode 100644 index 000000000..909bf6934 --- /dev/null +++ b/src/views/arcb/salary/expenseconf/index.vue @@ -0,0 +1,232 @@ + + + \ No newline at end of file diff --git a/src/views/arcb/salary/salaryconfig/SalaryConfForm.vue b/src/views/arcb/salary/salaryconfig/SalaryConfForm.vue new file mode 100644 index 000000000..254560225 --- /dev/null +++ b/src/views/arcb/salary/salaryconfig/SalaryConfForm.vue @@ -0,0 +1,161 @@ + + \ No newline at end of file diff --git a/src/views/arcb/salary/salaryconfig/index.vue b/src/views/arcb/salary/salaryconfig/index.vue new file mode 100644 index 000000000..7397b14fd --- /dev/null +++ b/src/views/arcb/salary/salaryconfig/index.vue @@ -0,0 +1,224 @@ + + + \ No newline at end of file diff --git a/src/views/arcb/salary/specialfee/SpecialFeeForm.vue b/src/views/arcb/salary/specialfee/SpecialFeeForm.vue index 7f0c250cd..28e1be532 100644 --- a/src/views/arcb/salary/specialfee/SpecialFeeForm.vue +++ b/src/views/arcb/salary/specialfee/SpecialFeeForm.vue @@ -76,7 +76,11 @@ const formRules = reactive({ validator: (rule, value, callback) => { const regex = /^\d{6}$/; // 匹配6位数字,如202412 if (!regex.test(value)) { - callback(new Error('请输入正确的年月格式,如202412')); + const currentYear = new Date().getFullYear(); + const currentMonth = String(new Date().getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1,并确保是两位数 + const currentYearMonth = `${currentYear}${currentMonth}`; + + callback(new Error(`请输入正确的年月格式,如${currentYearMonth}`)); } else { callback(); } diff --git a/src/views/arcb/salary/specialfee/index.vue b/src/views/arcb/salary/specialfee/index.vue index 374e767b0..8cc26e9c7 100644 --- a/src/views/arcb/salary/specialfee/index.vue +++ b/src/views/arcb/salary/specialfee/index.vue @@ -197,6 +197,7 @@ import {dateFormatter} from '@/utils/formatTime' import download from '@/utils/download' import {SpecialFeeApi, SpecialFeeVO} from '@/api/arcb/salary/specialfee' import SpecialFeeForm from './SpecialFeeForm.vue' +import SpecialFeeImportForm from './SpecialFeeImportForm.vue' /** 特殊费用项目 列表 */ defineOptions({name: 'SpecialFee'})