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 @@
+
+
+
+
+
+
+
+
+
+