diff --git a/pc4mobx/hrmSalary/apis/index.js b/pc4mobx/hrmSalary/apis/index.js
index 4cb3b93c..92514839 100644
--- a/pc4mobx/hrmSalary/apis/index.js
+++ b/pc4mobx/hrmSalary/apis/index.js
@@ -39,4 +39,7 @@ export const getDetailChanges = params => {
export const getSalarysobListAll = params => {
return postFetch("/api/bs/hrmsalary/salarysob/listAll", params);
};
-
+//补算
+export const supplementAcctRecord = (params) => {
+ return postFetch("/api/bs/hrmsalary/salaryacct/supplementAcctRecord", params);
+};
diff --git a/pc4mobx/hrmSalary/apis/statistics.js b/pc4mobx/hrmSalary/apis/statistics.js
index 3b70ee59..76056002 100644
--- a/pc4mobx/hrmSalary/apis/statistics.js
+++ b/pc4mobx/hrmSalary/apis/statistics.js
@@ -1,5 +1,5 @@
import { WeaTools } from "ecCom";
-import { postFetch } from "../util/request";
+import { postExportFetch, postFetch } from "../util/request";
//薪酬统计维度下拉列表
export const dimensionGetForm = (params) => {
@@ -122,3 +122,15 @@ export const getExpandFieldSettings = (params) => {
export const statisticsReportDuplicate = (params) => {
return WeaTools.callApi("/api/bs/hrmsalary/report/statistics/report/duplicate", "GET", params);
};
+//薪酬统计报表-薪资明细列表
+export const getSalaryList = (params) => {
+ return postFetch("/api/bs/hrmsalary/report/statistics/employee/salaryList", params);
+};
+//薪酬统计报表-薪资明细列表总计行
+export const getSalaryListSum = (params) => {
+ return postFetch("/api/bs/hrmsalary/report/statistics/employee/salaryListSum", params);
+};
+// 薪酬统计报表-薪资明细导出
+export const exportSalaryList = (params) => {
+ return postExportFetch("/api/bs/hrmsalary/report/statistics/employee/exportSalaryList", params);
+};
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.js
new file mode 100644
index 00000000..86a5f416
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.js
@@ -0,0 +1,33 @@
+/*
+ * Author: 黎永顺
+ * name:薪酬统计报表-高级搜索
+ * Description:
+ * Date: 2024/3/26
+ */
+import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
+import { Button } from "antd";
+import { WeaInputSearch, WeaLocaleProvider } from "ecCom";
+import "./index.less";
+
+const getLabel = WeaLocaleProvider.getLabel;
+
+@inject("attendanceStore")
+@observer
+class Index extends Component {
+ render() {
+ const { attendanceStore: { salaryDetailSearchForm } } = this.props;
+ return (
+
+ salaryDetailSearchForm.updateFields({ keyword: v })}
+ onSearch={this.props.onAdvanceSearch}
+ />
+
+
+ );
+ }
+}
+
+export default Index;
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.less b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.less
new file mode 100644
index 00000000..9081d39f
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/advanceInputBtn/index.less
@@ -0,0 +1,29 @@
+.achrive-advance-search {
+ display: flex;
+ align-items: center;
+ position: relative;
+ top: -1.5px;
+
+ .wea-advanced-search {
+ top: 2px;
+ left: -1px;
+ height: 28px;
+ line-height: 1;
+ border-radius: 0;
+ position: relative;
+ color: #474747;
+ padding: 4px 15px;
+ }
+
+ .wea-advanced-search:hover {
+ border: 1px solid #dadada;
+ color: #474747;
+ }
+
+ .text-elli {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ top: 1px;
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/conditions.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/conditions.js
index 080dd0e4..6a19614c 100644
--- a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/conditions.js
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/conditions.js
@@ -1,3 +1,4 @@
+import React from "react";
import { WeaLocaleProvider } from "ecCom";
const { getLabel } = WeaLocaleProvider;
@@ -131,3 +132,90 @@ export const extensionCondition = [
defaultshow: true
}
];
+export const salaryDetailSearchConditions = [
+ {
+ items: [
+ {
+ conditionType: "INPUT",
+ domkey: ["keyword"],
+ fieldcol: 16,
+ label: getLabel(111, "姓名/工号"),
+ labelcol: 8,
+ value: "",
+ viewAttr: 2
+ },
+ {
+ conditionType: "SELECT",
+ domkey: ["taxAgentIds"],
+ fieldcol: 16,
+ label: getLabel(537996, "个税扣缴义务人"),
+ labelcol: 8,
+ options: [],
+ multiple: true,
+ viewAttr: 2
+ },
+ {
+ browserConditionParam: {
+ completeParams: {},
+ conditionDataParams: {},
+ dataParams: {},
+ destDataParams: {},
+ hasAddBtn: false,
+ hasAdvanceSerach: false,
+ idSeparator: ",",
+ isAutoComplete: 1,
+ isDetail: 0,
+ isMultCheckbox: false,
+ isSingle: false,
+ icon: "icon-coms-hrm",
+ linkUrl: "",
+ pageSize: 10,
+ quickSearchName: "",
+ replaceDatas: [],
+ title: "",
+ type: "164",
+ viewAttr: 2
+ },
+ colSpan: 1,
+ conditionType: "BROWSER",
+ domkey: ["subcompanyIds"],
+ fieldcol: 16,
+ label: getLabel(33553, "分部"),
+ labelcol: 8,
+ viewAttr: 2
+ },
+ {
+ browserConditionParam: {
+ completeParams: {},
+ conditionDataParams: {},
+ dataParams: {},
+ destDataParams: {},
+ hasAddBtn: false,
+ hasAdvanceSerach: false,
+ idSeparator: ",",
+ isAutoComplete: 1,
+ isDetail: 0,
+ isMultCheckbox: false,
+ isSingle: false,
+ icon: "icon-coms-hrm",
+ linkUrl: "",
+ pageSize: 10,
+ quickSearchName: "",
+ replaceDatas: [],
+ title: "",
+ type: "57",
+ viewAttr: 2
+ },
+ conditionType: "BROWSER",
+ domkey: ["departmentIds"],
+ fieldcol: 16,
+ label: getLabel(27511, "部门"),
+ labelcol: 8,
+ viewAttr: 2
+ }
+ ],
+ defaultshow: true,
+ title: getLabel(1361, "基本信息"),
+ col: 2
+ }
+];
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js
new file mode 100644
index 00000000..e83e95ca
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/salaryDetails.js
@@ -0,0 +1,148 @@
+/*
+ * Author: 黎永顺
+ * name:薪资明细列表
+ * Description:
+ * Date: 2024/3/26
+ */
+import React, { Component } from "react";
+import { inject, observer } from "mobx-react";
+import { toJS } from "mobx";
+import { WeaLoadingGlobal, WeaLocaleProvider } from "ecCom";
+import { WeaTableNew } from "comsMobx";
+import { message, Spin } from "antd";
+import * as API from "../../../apis/statistics";
+import { getIframeParentHeight } from "../../../util";
+import { sysConfCodeRule } from "../../../apis/ruleconfig";
+import "../index.less";
+
+const WeaTableComx = WeaTableNew.WeaTable;
+const { getLabel } = WeaLocaleProvider;
+
+@inject("attendanceStore")
+@observer
+class SalaryDetails extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ loading: false, dataSource: [], columns: [], selectedRowKeys: [],
+ pageInfo: { current: 1, pageSize: 10, total: 0 }, payload: {},
+ countResult: {}, showTotalCell: false
+ };
+ }
+
+ componentDidMount() {
+ this.getSalaryList(this.props);
+ window.addEventListener("message", this.handleReceive, false);
+ }
+
+ componentWillReceiveProps(nextProps, nextContext) {
+ if (nextProps.isQuery !== this.props.isQuery) this.getSalaryList(nextProps);
+ }
+
+ componentWillUnmount() {
+ window.removeEventListener("message", this.handleReceive, false);
+ this.setState(({ selectedRowKeys: [] }));
+ }
+
+ handleReceive = ({ data }) => {
+ const { type, payload: { id, params } = {} } = data;
+ const { pageInfo } = this.state;
+ if (type === "init") {
+ this.getColumns();
+ } else if (type === "turn") {
+ if (id === "PAGEINFO") {
+ const { pageNum: current, size: pageSize } = params;
+ this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () => this.getSalaryList(this.props));
+ } else if (id === "CHECKBOX") {
+ const { selectedRowKeys: checkBox } = params;
+ this.setState({ selectedRowKeys: checkBox });
+ }
+ }
+ };
+ postMessageToChild = (payload) => {
+ const i18n = {
+ "共": getLabel(18609, "共"), "条": getLabel(18256, "条"),
+ "总计": getLabel(523, "总计")
+ };
+ const childFrameObj = document.getElementById("atdTable");
+ childFrameObj && childFrameObj.contentWindow.postMessage(JSON.stringify({ ...payload, i18n }), "*");
+ };
+ getSalaryList = (props) => {
+ const { attendanceStore: { salaryDetailSearchForm, tableStore }, dateRange } = props;
+ const [startDateStr, endDateStr] = dateRange;
+ const { taxAgentIds, subcompanyIds, departmentIds, ...extra } = salaryDetailSearchForm.getFormParams();
+ const { pageInfo } = this.state;
+ const payload = {
+ taxAgentIds: taxAgentIds ? taxAgentIds.split(",") : [],
+ departmentIds: departmentIds ? departmentIds.split(",") : [],
+ subcompanyIds: subcompanyIds ? subcompanyIds.split(",") : [],
+ ...extra, ...pageInfo, startDateStr, endDateStr
+ };
+ this.setState({ loading: true });
+ API.getSalaryList(payload).then(async ({ status, data }) => {
+ const [{ data: sumData }, { data: confCode }] = await Promise.all([API.getSalaryListSum(payload), sysConfCodeRule({ code: "OPEN_ACCT_RESULT_SUM" })]);
+ this.setState({ loading: false });
+ if (status) {
+ const { dataKey, pageInfo: pageparams } = data;
+ const { list: dataSource, pageNum: current, total, pageSize } = pageparams;
+ this.setState({
+ dataSource, pageInfo: { ...pageInfo, current, total, pageSize }, payload,
+ countResult: sumData.sumRow, showTotalCell: confCode === "1"
+ }, () => tableStore.getDatas(dataKey.datas));
+ }
+ }).catch(() => this.setState({ loading: false }));
+ };
+ handleExportSalaryList = (key) => {
+ let { selectedRowKeys, payload } = this.state;
+ if (key === "SELECTED" && selectedRowKeys.length === 0) {
+ message.warning(getLabel(543345, "请选择需要导出的数据!"));
+ return;
+ }
+ WeaLoadingGlobal.start();
+ const promise = API.exportSalaryList({ ...payload, ids: selectedRowKeys });
+ };
+ getColumns = () => {
+ const { attendanceStore: { tableStore } } = this.props;
+ const { dataSource, pageInfo, selectedRowKeys, countResult, showTotalCell } = this.state;
+ const columns = _.filter(toJS(tableStore.columns), (item) => item.display === "true" && item.dataIndex !== "acctTimes");
+ if (!_.isEmpty(columns)) {
+ this.postMessageToChild({
+ dataSource, pageInfo, selectedRowKeys, showTotalCell, calcDetail: true, tableScrollHeight: 154,
+ sumRow: countResult,
+ columns: _.map(columns, (it, idx) => ({
+ ...it,
+ width: (it.dataIndex === "taxAgent" || it.dataIndex === "salarySob") ? 176 : it.oldWidth,
+ fixed: (idx === 1 || idx === 0 || idx === 2) ? "left" : "",
+ ellipsis: true
+ }))
+ });
+ }
+ return [];
+ };
+
+ render() {
+ const { loading, dataSource } = this.state;
+ const { attendanceStore: { tableStore } } = this.props;
+ return (
+
+
+
+
+
+
+ );
+ }
+}
+
+export default SalaryDetails;
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/searchPannel/index.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/searchPannel/index.js
new file mode 100644
index 00000000..170320c9
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/components/searchPannel/index.js
@@ -0,0 +1,77 @@
+/*
+ * Author: 黎永顺
+ * name:薪酬统计报薪资明细-高级查询
+ * Description:
+ * Date: 2024/3/26
+ */
+import React, { Component } from "react";
+import { WeaLocaleProvider, WeaTools } from "ecCom";
+import { Button } from "antd";
+import { inject, observer } from "mobx-react";
+import { getSearchs } from "../../../../util";
+import { salaryDetailSearchConditions } from "../conditions";
+import { getTaxAgentSelectList } from "../../../../apis/taxAgent";
+
+const getLabel = WeaLocaleProvider.getLabel;
+const getKey = WeaTools.getKey;
+
+@inject("attendanceStore")
+@observer
+class SalaryDetailAdvanceSearchPannel extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ searchConditions: []
+ };
+ }
+
+ async componentDidMount() {
+ const [{ data: taxAgentList }] = await Promise.all([getTaxAgentSelectList()]);
+ this.setState({
+ searchConditions: _.map(salaryDetailSearchConditions, item => {
+ return {
+ ...item,
+ items: _.map(item.items, child => {
+ if (getKey(child) === "taxAgentIds") {
+ return {
+ ...child, options: _.map(taxAgentList, o => ({ key: o.id, showname: o.content }))
+ };
+ }
+ return { ...child };
+ })
+ };
+ })
+ }, () => {
+ const { attendanceStore: { salaryDetailSearchForm } } = this.props;
+ salaryDetailSearchForm.initFormFields(this.state.searchConditions);
+ });
+ }
+
+ render() {
+ const { searchConditions } = this.state;
+ const { attendanceStore: { salaryDetailSearchForm } } = this.props;
+ return (
+
+
+ {getSearchs(salaryDetailSearchForm, searchConditions, 2, false)}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ }
+}
+
+export default SalaryDetailAdvanceSearchPannel;
+
diff --git a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/index.js b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/index.js
index 3666ec39..886900e6 100644
--- a/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/index.js
+++ b/pc4mobx/hrmSalary/pages/analysisOfSalaryStatistics/index.js
@@ -7,19 +7,24 @@
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaDatePicker, WeaInputSearch, WeaLocaleProvider, WeaReqTop } from "ecCom";
-import { Button } from "antd";
+import { Button, Dropdown, Menu } from "antd";
import { condition, reportCondition } from "./components/conditions";
import { commonEnumList, reportGetForm } from "../../apis/ruleconfig";
import { dimensionGetForm } from "../../apis/statistics";
import EmployeeDetails from "./components/employeeDetails";
+import SalaryDetails from "./components/salaryDetails";
import StatisticsModal from "./components/statisticsModal";
import DimensionSlide from "./components/dimensionSlide";
import DimensionTable from "./components/dimensionTable";
import ReportList from "./components/reportList";
import ReportForm from "./components/reportForm";
-import moment from "moment";
-import "./index.less";
import LogDialog from "../../components/logViewModal";
+import { MonthRangePicker } from "../reportView/components/statisticalMicroSettingsSlide";
+import AdvanceInputBtn from "./components/advanceInputBtn";
+import SearchPannel from "./components/searchPannel";
+import moment from "moment";
+import cs from "classnames";
+import "./index.less";
const { getLabel } = WeaLocaleProvider;
@@ -36,6 +41,12 @@ class Index extends Component {
reportName: "",
keyword: "",
year: moment().format("YYYY"),
+ dateRange: [
+ moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM"),
+ moment(new Date()).endOf("year").format("YYYY-MM")
+ ],
+ showSearchAd: false,
+ isQuery: false,
slideReq: {
visible: false, formId: ""
},
@@ -257,12 +268,20 @@ class Index extends Component {
break;
}
};
+ handleOpenAdvanceSearch = () => this.setState({ showSearchAd: true });
+ handleAdvanceSearch = () => this.setState({ isQuery: !this.state.isQuery });
+ onAdSearch = () => this.setState({ showSearchAd: false, isQuery: !this.state.isQuery });
+ handleExportSalaryList = (key) => this.salaryRef.wrappedInstance.handleExportSalaryList(key);
render() {
- const { taxAgentStore: { statisticsReportBtn }, attendanceStore: { statisticsForm, reportForm } } = this.props;
+ const {
+ taxAgentStore: { statisticsReportBtn },
+ attendanceStore: { statisticsForm, reportForm, tableStore }
+ } = this.props;
const {
selectedKey, modalReq, slideReq, conditions, reportConditions,
- reportName, keyword, year, logDialogVisible, filterConditions
+ reportName, keyword, year, logDialogVisible, filterConditions,
+ dateRange, showSearchAd, isQuery
} = this.state;
const buttons = selectedKey === "statistics" ? [
,
@@ -272,7 +291,7 @@ class Index extends Component {
value={reportName}
onChange={reportName => this.setState({ reportName })}
onSearch={() => this.handleReqBtnsClick("search")}/>
- ] : [
+ ] : selectedKey === "statistics" ? [
{getLabel(111, "年薪资核算人员明细:")}
this.setState({ year })}/>
@@ -281,10 +300,38 @@ class Index extends Component {
value={keyword}
onChange={keyword => this.setState({ keyword })}
onSearch={() => this.employeeListRef.statisticsEmployeeList()}/>
+ ] : [
+ this.handleExportSalaryList("ALL")}
+ overlay={}>{getLabel(81272, "导出全部")},
+ this.setState({ dateRange: v }, () => this.handleAdvanceSearch())}/>,
+
+ ];
+ const dropMenuDatas = [
+ {
+ key: "log", icon: ,
+ content: getLabel(545781, "操作日志")
+ },
+ {
+ key: "BTN_COLUMN",
+ icon: ,
+ content: getLabel(111, "显示列定制"),
+ onClick: () => {
+ tableStore.setColSetVisible(true);
+ tableStore.tableColSet(true);
+ }
+ }
];
const tabs = [
{ key: "statistics", title: getLabel(111, "统计表") },
- { key: "detail", title: getLabel(111, "员工明细") }
+ { key: "detail", title: getLabel(111, "员工明细") },
+ { key: "salaryDetail", title: getLabel(111, "薪资明细") }
];
return (
this.setState({ selectedKey }, () => this.state.selectedKey === "statistics" && this.initReportFormCondition())}
onDropMenuClick={this.onDropMenuClick}
- dropMenuDatas={[
- {
- key: "log", icon: ,
- content: getLabel(545781, "操作日志")
- }
- ]}
+ dropMenuDatas={selectedKey !== "salaryDetail" ? _.filter(dropMenuDatas, o => o.key !== "BTN_COLUMN") : dropMenuDatas}
>
+
+ this.setState({ showSearchAd: false })} onAdSearch={this.onAdSearch}/>
+
{
selectedKey === "statistics" ?
this.onDropMenuClick(type, targetid)}
- /> : : selectedKey === "detail" ? this.employeeListRef = dom}
keyword={keyword} year={year}
onFilterLog={(type, targetid) => this.onDropMenuClick(type, targetid)}
- />
+ /> : this.salaryRef = dom} dateRange={dateRange} isQuery={isQuery}/>
}
{
- const { data: salarySobList } = await getSalarysobListAll();
+ const [salarySobList, empStatusList] = await Promise.all([getSalarysobListAll(), commonEnumList({ enumClass: "com.engine.salary.enums.salarysob.SalaryEmployeeStatusEnum" })]);
getTaxAgentSelectList(true).then(({ status, data }) => {
if (status) {
const conditions = _.map(condition, item => {
@@ -85,7 +85,12 @@ class StatisticalMicroSettingsSlide extends Component {
} else if (getKey(child) === "salarySob") {
return {
...child, viewAttr: props.isShare ? 1 : child.viewAttr,
- options: _.map(salarySobList, o => ({ key: String(o.id), showname: o.name }))
+ options: _.map(salarySobList.data, o => ({ key: String(o.id), showname: o.name }))
+ };
+ } else if (getKey(child) === "status") {
+ return {
+ ...child, viewAttr: props.isShare ? 1 : child.viewAttr,
+ options: _.map(empStatusList.data, o => ({ key: o.value.toString(), showname: o.defaultLabel }))
};
}
return { ...child, viewAttr: props.isShare ? 1 : child.viewAttr };
@@ -131,8 +136,9 @@ class StatisticalMicroSettingsSlide extends Component {
const { salaryMonth, timeType, dataSource } = this.state;
const { form, id, dimension, onClose } = this.props;
const [salaryStartMonth, salaryEndMonth] = salaryMonth;
- const { department, employee, position, subCompany, taxAgent, salarySob, ...extra } = form.getFormDatas();
+ const { department, employee, position, subCompany, taxAgent, salarySob, status, ...extra } = form.getFormDatas();
const { value, valueSpan } = taxAgent;
+ const { value: statusVal, valueSpan: statusValSpan } = status;
const { value: sobValue, valueSpan: sobValueSpan } = salarySob;
if (!salaryEndMonth || !salaryStartMonth) {
this.refs.weaError.showError();
@@ -146,6 +152,10 @@ class StatisticalMicroSettingsSlide extends Component {
// position: _.map(position.valueObj, it => ({ id: it.id, name: it.name })),
subCompany: _.map(subCompany.valueObj, it => ({ id: it.id, name: it.name })),
taxAgent: value ? _.map(value.split(","), (it, idx) => ({ id: it, name: valueSpan.split(",")[idx] })) : [],
+ status: statusVal ? _.map(statusVal.split(","), (it, idx) => ({
+ id: it,
+ name: statusValSpan.split(",")[idx]
+ })) : [],
salarySob: sobValue ? _.map(sobValue.split(","), (it, idx) => ({
id: it,
name: sobValueSpan.split(",")[idx]
diff --git a/pc4mobx/hrmSalary/pages/supplementaryCalc/index.less b/pc4mobx/hrmSalary/pages/supplementaryCalc/index.less
index e69de29b..15401c45 100644
--- a/pc4mobx/hrmSalary/pages/supplementaryCalc/index.less
+++ b/pc4mobx/hrmSalary/pages/supplementaryCalc/index.less
@@ -0,0 +1,7 @@
+.retroactiveWrapper {
+ height: 100%;
+
+ .wea-error {
+ width: 100%;
+ }
+}
diff --git a/pc4mobx/hrmSalary/stores/attendanceStore.js b/pc4mobx/hrmSalary/stores/attendanceStore.js
index d34866d3..142caa6d 100644
--- a/pc4mobx/hrmSalary/stores/attendanceStore.js
+++ b/pc4mobx/hrmSalary/stores/attendanceStore.js
@@ -1,6 +1,7 @@
import { action, observable } from "mobx";
-import { WeaForm } from "comsMobx";
+import { WeaForm, WeaTableNew } from "comsMobx";
+const { TableStore } = WeaTableNew;
export class AttendanceStore {
@observable form = new WeaForm();
@@ -13,6 +14,8 @@ export class AttendanceStore {
//报表查看 统计数据范围及规则设置form
@observable settingForm = new WeaForm();
//报表查看 分享报表
+ @observable salaryDetailSearchForm = new WeaForm();
+ @observable tableStore = new TableStore();//薪资明细表格仓库
@observable shareForm = new WeaForm();
@observable shareLogForm = new WeaForm();
@observable sharePerForm = new WeaForm();