| | |
| | | import { Page } from '#/packages/effects/common-ui/src'; |
| | | import { downloadFileFromBlobPart } from '#/packages/utils/src'; |
| | | |
| | | import { message, Modal, Form, FormItem, DatePicker, TreeSelect, Table, InputNumber, Alert } from 'ant-design-vue'; |
| | | import { message, Modal, Form, FormItem, DatePicker, TreeSelect, Table, InputNumber, Alert, Tag } from 'ant-design-vue'; |
| | | |
| | | import { DICT_TYPE } from '#/packages/constants/src'; |
| | | import { getDictLabel } from '#/packages/effects/hooks/src'; |
| | | |
| | | import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table'; |
| | | import { |
| | |
| | | const deduction = (record.socialSecurityDeduction || 0) + |
| | | (record.housingFundDeduction || 0) + |
| | | (record.taxDeduction || 0) + |
| | | (record.otherDeduction || 0); |
| | | (record.otherDeduction || 0) + |
| | | (record.leaveDeduction || 0); |
| | | return income - deduction; |
| | | } |
| | | |
| | |
| | | @change="(val: number) => updateFieldValue(record, 'otherDeduction', val)" |
| | | /> |
| | | </template> |
| | | <template v-else-if="column.dataIndex === 'leaveDeduction'"> |
| | | <InputNumber |
| | | v-model:value="record.leaveDeduction" |
| | | :min="0" |
| | | :precision="2" |
| | | size="small" |
| | | style="width: 90px" |
| | | @change="(val: number) => updateFieldValue(record, 'leaveDeduction', val)" |
| | | /> |
| | | </template> |
| | | <template v-else-if="column.dataIndex === 'actualSalary'"> |
| | | <span class="font-bold text-green-600">{{ record.actualSalary?.toFixed(2) }}</span> |
| | | </template> |
| | |
| | | ]" |
| | | /> |
| | | </template> |
| | | <template #status="{ row }"> |
| | | <Tag :color="row.status === 0 ? 'warning' : row.status === 10 ? 'success' : 'processing'"> |
| | | {{ getDictLabel(DICT_TYPE.HRM_SALARY_STATUS, row.status) }} |
| | | </Tag> |
| | | </template> |
| | | <template #actions="{ row }"> |
| | | <TableAction |
| | | :actions="[ |