整合前端

This commit is contained in:
砂糖
2026-04-13 17:04:38 +08:00
parent 69609a2cb1
commit 5d4794c9bd
915 changed files with 144259 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
import { listEmployee } from '@/api/oa/employee';
export default {
data() {
return {
employeeOptions: []
};
},
methods: {
/** 获取员工下拉选项 */
getEmployeeOptions() {
listEmployee({ pageNum: 1, pageSize: 1000 }).then(res => {
this.employeeOptions = (res.rows || []).map(item => ({
label: item.employeeName,
value: item.employeeId
}));
});
},
/** 根据员工ID获取员工姓名 */
getEmployeeName(employeeId) {
if (!employeeId) return '-';
const employee = this.employeeOptions.find(item => item.value === employeeId);
return employee ? employee.label : employeeId;
}
}
};

View File

@@ -0,0 +1,163 @@
// 保险模板下拉mixin
import { listInsuranceTemplate } from '@/api/oa/finance/insuranceTemplate';
import { listInsuranceTemplateDetail } from '@/api/oa/finance/insuranceTemplateDetail';
export const insuranceTemplateMixin = {
data() {
return {
insuranceTemplateOptions: [],
personalInsuranceTemplateOptions: [], // 个人缴纳保险模板选项
companyInsuranceTemplateOptions: [], // 企业缴纳保险模板选项
insuranceTemplateDetails: {} // 缓存模板明细数据
};
},
methods: {
/** 获取保险模板下拉选项 */
getInsuranceTemplateOptions() {
listInsuranceTemplate({ pageNum: 1, pageSize: 1000 }).then(res => {
const allTemplates = res.rows || [];
// 所有保险模板选项
this.insuranceTemplateOptions = allTemplates.map(item => ({
label: `${item.templateName} (${item.type === '0' ? '个人缴纳' : '企业缴纳'})`,
value: item.insuranceTemplateId,
type: item.type
}));
// 个人缴纳保险模板选项 (type = '0')
this.personalInsuranceTemplateOptions = allTemplates
.filter(item => item.type == '0')
.map(item => ({
label: item.templateName,
value: item.insuranceTemplateId,
type: item.type
}));
// 企业缴纳保险模板选项 (type = '1')
this.companyInsuranceTemplateOptions = allTemplates
.filter(item => item.type == '1')
.map(item => ({
label: item.templateName,
value: item.insuranceTemplateId,
type: item.type
}));
console.log(this.companyInsuranceTemplateOptions, this.personalInsuranceTemplateOptions)
});
},
/** 根据保险模板ID获取模板名称 */
getInsuranceTemplateName(insuranceTemplateId) {
if (!insuranceTemplateId) return '-';
const template = this.insuranceTemplateOptions.find(item => item.value === insuranceTemplateId);
return template ? template.label : insuranceTemplateId;
},
/** 根据保险模板ID获取模板类型 */
getInsuranceTemplateType(insuranceTemplateId) {
if (!insuranceTemplateId) return null;
const template = this.insuranceTemplateOptions.find(item => item.value === insuranceTemplateId);
return template ? template.type : null;
},
/** 获取保险模板明细列表 */
getInsuranceTemplateDetails(insuranceTemplateId) {
if (!insuranceTemplateId) return Promise.resolve([]);
// 如果已经缓存过,直接返回
if (this.insuranceTemplateDetails[insuranceTemplateId]) {
return Promise.resolve(this.insuranceTemplateDetails[insuranceTemplateId]);
}
return listInsuranceTemplateDetail({
insuranceTemplateId: insuranceTemplateId,
pageNum: 1,
pageSize: 1000
}).then(res => {
const details = res.rows || [];
// 缓存数据
this.insuranceTemplateDetails[insuranceTemplateId] = details;
return details;
});
},
/** 根据itemDetailId获取保险项目信息 */
getInsuranceItemInfo(itemDetailId) {
// 遍历所有缓存的模板明细,查找对应的项目
for (const templateId in this.insuranceTemplateDetails) {
const details = this.insuranceTemplateDetails[templateId];
const item = details.find(detail => detail.insuranceDetailId === itemDetailId);
if (item) {
return {
itemName: item.insuranceType,
shouldAmount: item.amount,
templateId: templateId
};
}
}
return null;
}
}
};
// 薪资模板下拉mixin
import { listSalaryTemplate } from '@/api/oa/finance/salaryTemplate';
import { listSalaryTemplateDetail } from '@/api/oa/finance/salaryTemplateDetail';
export const salaryTemplateMixin = {
data() {
return {
salaryTemplateOptions: [],
salaryTemplateDetails: {} // 缓存模板明细数据
};
},
methods: {
/** 获取薪资模板下拉选项 */
getSalaryTemplateOptions() {
listSalaryTemplate({ pageNum: 1, pageSize: 1000 }).then(res => {
this.salaryTemplateOptions = (res.rows || []).map(item => ({
label: item.templateName,
value: item.salaryTemplateId
}));
});
},
/** 根据薪资模板ID获取模板名称 */
getSalaryTemplateName(salaryTemplateId) {
if (!salaryTemplateId) return '-';
const template = this.salaryTemplateOptions.find(item => item.value === salaryTemplateId);
return template ? template.label : salaryTemplateId;
},
/** 获取薪资模板明细列表 */
getSalaryTemplateDetails(salaryTemplateId) {
if (!salaryTemplateId) return Promise.resolve([]);
// 如果已经缓存过,直接返回
if (this.salaryTemplateDetails[salaryTemplateId]) {
return Promise.resolve(this.salaryTemplateDetails[salaryTemplateId]);
}
return listSalaryTemplateDetail({
salaryTemplateId: salaryTemplateId,
pageNum: 1,
pageSize: 1000
}).then(res => {
const details = res.rows || [];
// 缓存数据
this.salaryTemplateDetails[salaryTemplateId] = details;
return details;
});
},
/** 根据itemDetailId获取薪资项目信息 */
getSalaryItemInfo(itemDetailId) {
// 遍历所有缓存的模板明细,查找对应的项目
for (const templateId in this.salaryTemplateDetails) {
const details = this.salaryTemplateDetails[templateId];
const item = details.find(detail => detail.salaryDetailId === itemDetailId);
if (item) {
return {
itemName: item.salaryItem,
shouldAmount: item.amount,
templateId: templateId
};
}
}
return null;
}
}
};