diff --git a/src/views/appraisal/components/DirectiveAppraisalForm.vue b/src/views/appraisal/components/DirectiveAppraisalForm.vue index d788918..dcdb269 100644 --- a/src/views/appraisal/components/DirectiveAppraisalForm.vue +++ b/src/views/appraisal/components/DirectiveAppraisalForm.vue @@ -205,12 +205,24 @@ + + + + + + @@ -276,6 +288,7 @@ import { getValueType } from '/@/utils'; import { saveOrUpdate } from '../DirectiveAppraisal.api'; import { Form } from 'ant-design-vue'; import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue'; +import { unwatchFile } from 'fs'; const opeMediaAddress = import.meta.env.VITE_OPE_MEDIA_ADDRESS // 图片预览相关 @@ -307,7 +320,9 @@ const formData = reactive>({ serviceDuration: '', serviceContent: '', comPrice: undefined, + tagTotalPrice: undefined, ysComPrice: undefined, + realComPrice: undefined, packageName: '', izPackage: '', startTime: '', @@ -321,11 +336,23 @@ const formData = reactive>({ manuallyMp4Path: '', optType: '', optStatus: '', + optIds: '', optNames: '', status: '', content: '', revocation: '', revocationTime: '', + orderNo: '', + orderType: '', + nuId: '', + elderId: '', + elderName: '', + instructionTagId: '', + categoryId: '', + typeId: '', + directiveId: '', + tollPrice: '', + packageId: '', }); const { createMessage } = useMessage(); const labelCol = ref({ xs: { span: 24 }, sm: { span: 7 } }); diff --git a/src/views/salary/EmployeesSalaryInfo.api.ts b/src/views/salary/EmployeesSalaryInfo.api.ts new file mode 100644 index 0000000..8570e37 --- /dev/null +++ b/src/views/salary/EmployeesSalaryInfo.api.ts @@ -0,0 +1,72 @@ +import { defHttp } from '/@/utils/http/axios'; +import { useMessage } from "/@/hooks/web/useMessage"; + +const { createConfirm } = useMessage(); + +enum Api { + list = '/salary/employeesSalaryInfo/list', + save='/salary/employeesSalaryInfo/add', + edit='/salary/employeesSalaryInfo/edit', + deleteOne = '/salary/employeesSalaryInfo/delete', + deleteBatch = '/salary/employeesSalaryInfo/deleteBatch', + importExcel = '/salary/employeesSalaryInfo/importExcel', + exportXls = '/salary/employeesSalaryInfo/exportXls', +} + +/** + * 导出api + * @param params + */ +export const getExportUrl = Api.exportXls; + +/** + * 导入api + */ +export const getImportUrl = Api.importExcel; + +/** + * 列表接口 + * @param params + */ +export const list = (params) => defHttp.get({ url: Api.list, params }); + +/** + * 删除单个 + * @param params + * @param handleSuccess + */ +export const deleteOne = (params,handleSuccess) => { + return defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); +} + +/** + * 批量删除 + * @param params + * @param handleSuccess + */ +export const batchDelete = (params, handleSuccess) => { + createConfirm({ + iconType: 'warning', + title: '确认删除', + content: '是否删除选中数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + return defHttp.delete({url: Api.deleteBatch, data: params}, {joinParamsToUrl: true}).then(() => { + handleSuccess(); + }); + } + }); +} + +/** + * 保存或者更新 + * @param params + * @param isUpdate + */ +export const saveOrUpdate = (params, isUpdate) => { + let url = isUpdate ? Api.edit : Api.save; + return defHttp.post({ url: url, params }, { isTransformResponse: false }); +} diff --git a/src/views/salary/EmployeesSalaryInfo.data.ts b/src/views/salary/EmployeesSalaryInfo.data.ts new file mode 100644 index 0000000..1335fb3 --- /dev/null +++ b/src/views/salary/EmployeesSalaryInfo.data.ts @@ -0,0 +1,114 @@ +import {BasicColumn} from '/@/components/Table'; +import {FormSchema} from '/@/components/Table'; +import { rules} from '/@/utils/helper/validator'; +import { render } from '/@/utils/common/renderUtils'; +import { getWeekMonthQuarterYear } from '/@/utils'; +//列表数据 +export const columns: BasicColumn[] = [ + { + title: '员工', + align: "center", + dataIndex: 'employeeName' + }, + { + title: '区域名称', + align: 'center', + dataIndex: 'nuName', + }, + { + title: '分类标签', + align: 'center', + dataIndex: 'instructionTagName', + }, + { + title: '服务类别', + align: 'center', + dataIndex: 'categoryName', + }, + { + title: '服务类型', + align: 'center', + dataIndex: 'typeName', + }, + { + title: '服务指令', + align: 'center', + dataIndex: 'directiveName', + }, + { + title: '指令日期', + align: 'center', + dataIndex: 'startTime', + customRender: ({ text }) => { + text = !text ? '' : text.length > 10 ? text.substr(0, 10) : text; + return text; + }, + }, + { + title: '执行状态', + align: 'center', + dataIndex: 'optStatus_dictText', + }, + { + title: '审核状态', + align: 'center', + dataIndex: 'status_dictText', + }, + { + title: '提成', + align: 'center', + dataIndex: 'realComPrice', + }, +]; + +// 高级查询数据 +export const superQuerySchema = { + mainId: {title: '主表ID,nu_bill_employees_main.id',order: 0,view: 'text', type: 'string',}, + orderNo: {title: '单号',order: 1,view: 'text', type: 'string',}, + orderType: {title: '工单类型 1护理;2医疗:3仓库;4行政',order: 2,view: 'text', type: 'string',}, + nuId: {title: '护理单元ID,nu_base_info.id',order: 3,view: 'text', type: 'string',}, + nuName: {title: '护理单元名称',order: 4,view: 'text', type: 'string',}, + elderId: {title: '长者ID,nu_biz_elder_info.id',order: 5,view: 'text', type: 'string',}, + elderName: {title: '长者名称',order: 6,view: 'text', type: 'string',}, + employeeId: {title: '员工ID',order: 7,view: 'text', type: 'string',}, + employeeName: {title: '员工姓名',order: 8,view: 'text', type: 'string',}, + instructionTagId: {title: '分类标签',order: 9,view: 'text', type: 'string',}, + instructionTagName: {title: '分类标签名称',order: 10,view: 'text', type: 'string',}, + categoryId: {title: '服务类别ID,nu_config_service_category.id',order: 11,view: 'text', type: 'string',}, + categoryName: {title: '服务类别名称',order: 12,view: 'text', type: 'string',}, + typeId: {title: '服务类型ID,nu_config_service_type.id',order: 13,view: 'text', type: 'string',}, + serviceAttribute: {title: '服务属性 ds定时 js计时',order: 14,view: 'text', type: 'string',}, + typeName: {title: '服务类型名称',order: 15,view: 'text', type: 'string',}, + directiveId: {title: '服务指令ID,nu_config_service_directive.id',order: 16,view: 'text', type: 'string',}, + directiveName: {title: '服务指令名称',order: 17,view: 'text', type: 'string',}, + cycleTypeId: {title: '周期类型ID',order: 18,view: 'text', type: 'string',}, + cycleType: {title: '周期类型',order: 19,view: 'text', type: 'string',}, + cycleValue: {title: '周期值',order: 20,view: 'text', type: 'string',}, + serviceDuration: {title: '服务时长(分钟)',order: 21,view: 'text', type: 'string',}, + serviceContent: {title: '服务说明',order: 22,view: 'text', type: 'string',}, + tollPrice: {title: '收费价格',order: 23,view: 'number', type: 'number',}, + tagTotalPrice: {title: '标签总价',order: 24,view: 'number', type: 'number',}, + comPrice: {title: '提成价格',order: 25,view: 'number', type: 'number',}, + ysComPrice: {title: '应收提成价格',order: 26,view: 'number', type: 'number',}, + realComPrice: {title: '实收提成价格',order: 27,view: 'number', type: 'number',}, + packageId: {title: '服务指令包ID',order: 28,view: 'text', type: 'string',}, + packageName: {title: '服务指令包名称',order: 29,view: 'text', type: 'string',}, + izPackage: {title: '是否是服务指令包 Y是 N否',order: 30,view: 'text', type: 'string',}, + startTime: {title: '开始时间',order: 31,view: 'datetime', type: 'string',}, + endTime: {title: '结束时间',order: 32,view: 'datetime', type: 'string',}, + beginTime: {title: '实际开始时间',order: 33,view: 'datetime', type: 'string',}, + finishTime: {title: '实际结束时间',order: 34,view: 'datetime', type: 'string',}, + izStart: {title: '是否开始 Y是 N否',order: 35,view: 'text', type: 'string',}, + izFinish: {title: '是否完成 Y是 N否',order: 36,view: 'text', type: 'string',}, + tplinkPath: {title: 'tplink下载地址',order: 37,view: 'text', type: 'string',}, + manuallyPicPath: {title: '手动拍照',order: 38,view: 'textarea', type: 'string',}, + manuallyMp4Path: {title: '手动录制',order: 39,view: 'textarea', type: 'string',}, + optType: {title: '执行类型 1单人 2协助 3转单',order: 40,view: 'text', type: 'string',}, + optStatus: {title: '执行状态 1正常 2未执行 3超时',order: 41,view: 'text', type: 'string',}, + optIds: {title: '实际执行人id(多个); 主要执行人+协助人',order: 42,view: 'text', type: 'string',}, + optNames: {title: '实际执行人名称(多个); 主要执行人+协助人',order: 43,view: 'text', type: 'string',}, + status: {title: '审核状态 1待审核 2通过 3未通过 4已撤回',order: 44,view: 'text', type: 'string',}, + content: {title: '驳回原因',order: 45,view: 'textarea', type: 'string',}, + revocation: {title: '撤回人(汉字)',order: 46,view: 'text', type: 'string',}, + revocationTime: {title: '撤回时间',order: 47,view: 'datetime', type: 'string',}, +}; diff --git a/src/views/salary/EmployeesSalaryInfoList.vue b/src/views/salary/EmployeesSalaryInfoList.vue new file mode 100644 index 0000000..4bf936c --- /dev/null +++ b/src/views/salary/EmployeesSalaryInfoList.vue @@ -0,0 +1,313 @@ + + + + + diff --git a/src/views/salary/components/EmployeesSalaryInfoForm.vue b/src/views/salary/components/EmployeesSalaryInfoForm.vue new file mode 100644 index 0000000..5727382 --- /dev/null +++ b/src/views/salary/components/EmployeesSalaryInfoForm.vue @@ -0,0 +1,509 @@ + + + + + diff --git a/src/views/salary/components/EmployeesSalaryInfoModal.vue b/src/views/salary/components/EmployeesSalaryInfoModal.vue new file mode 100644 index 0000000..f6e335a --- /dev/null +++ b/src/views/salary/components/EmployeesSalaryInfoModal.vue @@ -0,0 +1,78 @@ + + + + + +