commit 35ede9dd6722acb11e5865083fd04a6c8cb14663
Author: MustangDeng <670124965@qq.com>
Date: Fri Feb 25 09:24:56 2022 +0800
2022-02-25
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 00000000..c0cd877d
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,102 @@
+{
+ "parser": "babel-eslint",
+ "extends": "react-app",
+ "env": {
+ "browser": true,
+ "node": true,
+ "mocha": true,
+ "jest": true,
+ "es6": true
+ },
+ "rules": {
+ "react/jsx-no-bind": [1, {
+ "ignoreRefs": false,
+ "allowArrowFunctions": false,
+ "allowBind": false
+ }],
+ "no-shadow": 0,
+ "no-bitwise": 0,
+ "no-continue": 0,
+ "no-case-declarations": 0,
+ "prefer-rest-params": 0,
+ "jsx-a11y/label-has-for": 0,
+ "jsx-a11y/media-has-caption": 0,
+ "jsx-a11y/iframe-has-title": 0,
+ "jsx-a11y/no-noninteractive-element-interactions": 0,
+ "react/jsx-pascal-case": 0,
+ "react/no-children-prop": 0,
+ "linebreak-style": 0,
+ "class-methods-use-this": 0,
+ "func-names": 0,
+ "react/sort-comp": 0,
+ "react/prop-types": 0,
+ "react/jsx-first-prop-new-line": 0,
+ "no-param-reassign": 0,
+ "no-return-assign": 0,
+ "max-len": 0,
+ "react/no-multi-comp": 0,
+ "array-callback-return": 0,
+ "import/no-unresolved": 0,
+ "jsx-a11y/img-has-alt": 0,
+ "import/extensions": 0,
+ "import/no-extraneous-dependencies": 0,
+ "react/jsx-boolean-value": 0,
+ "react/no-danger": 0,
+ "react/no-string-refs": 0,
+ "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx", ".tsx", ".md"] }],
+ "react/no-array-index-key": 0,
+ "react/no-find-dom-node": 0,
+ "react/require-extension": 0,
+ "jsx-a11y/anchor-has-content": 0,
+ "jsx-a11y/href-no-hash": 0,
+ "jsx-a11y/no-static-element-interactions": 0,
+ "jsx-a11y/click-events-have-key-events": 0,
+ "prefer-destructuring": 0,
+ "jsx-a11y/anchor-is-valid": 0,
+ "react/jsx-no-comment-textnodes": 0,
+ "object-curly-newline": 0,
+ "import/first": 0,
+ "no-underscore-dangle": 0,
+ "eqeqeq": 0,
+ "react/prefer-stateless-function": 0,
+ "no-useless-constructor": 0,
+ "react/react-in-jsx-scope": 0,
+ "no-mixed-spaces-and-tabs": 0,
+ "no-tabs": 0,
+ "react/jsx-indent": 0,
+ "indent": 0,
+ "no-alert": 0,
+ "camelcase": 0,
+ "no-undef": 0,
+ "no-empty": 0,
+ "no-plusplus": 0,
+ "one-var": 0,
+ "prefer-const": 0,
+ "consistent-return": 0,
+ "no-restricted-syntax": 0,
+ "guard-for-in": 0,
+ "no-unused-expressions": 0,
+ "no-mixed-operators": 0,
+ "no-console": 0,
+ "default-case": 0,
+ "import/no-named-as-default-member": 1,
+ "import/no-named-as-default": 1,
+ "no-nested-ternary": 1,
+ "no-script-url": 1,
+ "import/prefer-default-export": 1,
+ "radix": 1,
+ "no-array-constructor": 1,
+ "jsx-a11y/alt-text": 1,
+ "brace-style": 1,
+ "no-useless-escape": 1,
+ "routerShape": 1
+ },
+ "parserOptions": {
+ "ecmaVersion": 6,
+ "sourceType": "module",
+ "ecmaFeatures": {
+ "jsx": true,
+ "experimentalObjectRestSpread": true
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 00000000..79050069
--- /dev/null
+++ b/package.json
@@ -0,0 +1,5 @@
+{
+ "dependencies": {
+ "yargs": "^15.0.2"
+ }
+}
diff --git a/pc4mobx/hrmSalary/apis/index.js b/pc4mobx/hrmSalary/apis/index.js
new file mode 100644
index 00000000..ad9e15d5
--- /dev/null
+++ b/pc4mobx/hrmSalary/apis/index.js
@@ -0,0 +1,22 @@
+import { WeaTools } from 'ecCom';
+
+// form基础数据
+export const getBaseForm = params => {
+ return WeaTools.callApi('/api/demo01/getFormDemo', 'GET', params);
+};
+
+// form保存
+export const doSaveBaseSet = params => {
+ return WeaTools.callApi('/api/demo01/saveFormDemo', 'POST', params);
+};
+
+
+// 获取高级搜索条件
+export const getCondition = params => {
+ return WeaTools.callApi('/api/demo03/weatableConditonDemo', 'GET', params);
+};
+
+// 获取table数据
+export const getTableDatas = params => {
+ return WeaTools.callApi('/api/demo03/weatableDemo', 'GET', params);
+};
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/contentWrapper/index.js b/pc4mobx/hrmSalary/components/contentWrapper/index.js
new file mode 100644
index 00000000..f7734e76
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/contentWrapper/index.js
@@ -0,0 +1,14 @@
+import React from 'react'
+
+export default class ContentWrapper extends React.Component {
+ render() {
+ return
+
+ {this.props.tab}
+
+
+
+
+
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/customTab/index.js b/pc4mobx/hrmSalary/components/customTab/index.js
new file mode 100644
index 00000000..79b89389
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/customTab/index.js
@@ -0,0 +1,32 @@
+import React from 'react';
+import { WeaTab } from 'ecCom';
+import "./index.less";
+
+export default class CustomTab extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ selectedKey: ""
+ }
+ }
+ render() {
+ return (
+
+ {
+ this.setState({selectedKey: v})
+ this.props.onChange(v);
+ }}
+ />
+
+
+ {
+ this.props.searchOperationItem
+ }
+
+
)
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/customTab/index.less b/pc4mobx/hrmSalary/components/customTab/index.less
new file mode 100644
index 00000000..46edc22f
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/customTab/index.less
@@ -0,0 +1,21 @@
+.tabWrapper {
+ display: flex;
+ .weaTab {
+ flex: 1;
+ }
+ .tabSearchWrapper {
+ padding-left: 20px;
+ padding-right: 10px;
+ line-height: 47px;
+ height: 47px;
+ border-bottom: 1px solid rgb(234, 234, 234);
+ .tabSearchLabel {
+ margin-right: 20px;
+ color: #484848;
+ }
+ }
+ .weaRangePickerWrapper {
+ display: inline-block;
+ margin-right: 10px;
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/index.js b/pc4mobx/hrmSalary/components/index.js
new file mode 100644
index 00000000..2b26867b
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/index.js
@@ -0,0 +1,106 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button } from 'antd';
+import { WeaLogView } from 'comsMobx';
+import { WeaTop, WeaRightMenu, WeaLocaleProvider, WeaNewScroll } from 'ecCom';
+
+import { renderNoright, renderLoading, getSearchs } from '../util'; // 从util文件引入公共的方法
+
+const getLabel = WeaLocaleProvider.getLabel;
+const WeaLogViewComp = WeaLogView.Component;
+
+@inject('baseFormStore')
+@observer
+export default class BaseForm extends React.Component {
+ componentWillMount() { // 初始化渲染页面
+ const { baseFormStore: { doInit } } = this.props;
+ doInit();
+ }
+
+ componentWillReceiveProps(nextProps) {
+ const { baseFormStore: { doInit } } = this.props;
+ if (this.props.location.key !== nextProps.location.key) { // 手动刷新、切换菜单 重新初始化
+ doInit();
+ }
+ }
+
+ // 渲染右键菜单和顶部下拉菜单
+ getRightMenu() {
+ const { baseFormStore: { setLogVisible, saveForm } } = this.props;
+ let btnArr = [
+ {
+ key: 'BTN_SAVE',
+ icon: ,
+ content : `${getLabel(86,'保存')}`,
+ onClick : () => saveForm()
+ },
+ {
+ key: 'log',
+ content: getLabel(83, '日志'),
+ icon: ,
+ onClick: () => setLogVisible(true),
+ },]
+ return btnArr;
+ }
+
+ render() {
+ /* 页面渲染说明:
+ 1、判断是否无权限: 是显示无权限页面
+ 2、渲染form页面:
+ 2-1: WeaRightMenu 右键菜单
+ 2-2: WeaTop: 顶部: 包括下拉菜单
+ 2-3: renderLoading: 加载数据中的loading效果(统一封装在util中)
+ 2-4: WeaNewScroll 顶部以下超长滚动处理
+ 2-5: 通过getSearchs方法渲染form
+ */
+ const { baseFormStore } = this.props;
+ const { loading, hasRight, form, condition, logVisible, logStore, saveLoading, setLogVisible, saveForm } = baseFormStore; // 从后台取数据 和 方法
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const btns = [ // 顶部按钮
+ ,
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '基础表单',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo01/index',
+ importantlevel: 1,
+ };
+ return (
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ buttons={btns} // 顶部按钮: 这里是保存按钮,不需要可以不显示
+ buttonSpace={10} // 按钮之间的间隔
+ showDropIcon={true} // 是否显示右侧下拉按钮
+ dropMenuDatas={this.getRightMenu()} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+ {loading ? renderLoading() :
+
+ {getSearchs(form, toJS(condition), 1)}
+
+ }
+ setLogVisible(false)} // 关闭日志弹框时的操作:设置logVisible属性为false
+ logStore={logStore} // 日志的store
+ logType="1" // 模块编码: 该参数要根据模块来给
+ logSmallType="1" // 细分模块编码: 该参数要根据模块来给
+ />
+
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/components/tabWrapper/index.js b/pc4mobx/hrmSalary/components/tabWrapper/index.js
new file mode 100644
index 00000000..fd803fac
--- /dev/null
+++ b/pc4mobx/hrmSalary/components/tabWrapper/index.js
@@ -0,0 +1,9 @@
+import React from 'react'
+
+export default class tabWrapper extends React.Component {
+ render() {
+ return
+
+
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/debug.js b/pc4mobx/hrmSalary/debug.js
new file mode 100644
index 00000000..be660017
--- /dev/null
+++ b/pc4mobx/hrmSalary/debug.js
@@ -0,0 +1,46 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import { createHashHistory } from 'History';
+
+import { Router, Route, useRouterHistory, IndexRedirect } from 'react-router';
+
+import { syncHistoryWithStore, RouterStore } from 'mobx-react-router';
+
+import { Provider } from 'mobx-react';
+import { WeaDebugRouteMenu } from 'ecCom';
+
+import Module from './index';
+
+WeaDebugRouteMenu.defaultProps.showRouteLev = 3;
+
+const routing = new RouterStore();
+
+const allStore = {
+ routing,
+ ...Module.store,
+};
+
+const browserHistory = useRouterHistory(createHashHistory)({
+ queryKey: '_key',
+ basename: '/',
+});
+
+const history = syncHistoryWithStore(browserHistory, allStore.routing);
+
+const Home = props => props.children;
+
+const Root = () => (
+
+
+
+
+
+ { Module.Route }
+
+
+
+
+);
+
+ReactDOM.render(, document.getElementById('container'));
diff --git a/pc4mobx/hrmSalary/index.js b/pc4mobx/hrmSalary/index.js
new file mode 100644
index 00000000..2b688a29
--- /dev/null
+++ b/pc4mobx/hrmSalary/index.js
@@ -0,0 +1,87 @@
+import React from 'react';
+import Route from 'react-router/lib/Route';
+import { WeaLocaleProvider } from 'ecCom'
+import MySalaryBenefits from './pages/mySalaryBenefits';
+import Programme from './pages/socialSecurityBenefits/programme';
+import Archives from './pages/socialSecurityBenefits/archives';
+import StandingBook from './pages/socialSecurityBenefits/standingBook';
+import SalaryItemManagement from './pages/salaryItemManagement';
+import SalaryFile from './pages/salaryFile';
+import AccumulatedSpecialAdditionalDeduction from './pages/dataAcquisition/accumulatedSpecialAdditionalDeduction';
+import OtherTaxExemptDeductions from './pages/dataAcquisition/otherTaxExemptDeductions';
+import CumulativeSituationInPreviousPeriods from './pages/dataAcquisition/cumulativeSituationInPreviousPeriods';
+import AttendanceReference from './pages/dataAcquisition/attendanceReference';
+import SalarySet from './pages/salarySet';
+import SalaryAccounting from './pages/salaryAccounting';
+import PayrollPayment from './pages/payrollPayment';
+import IndividualIncomeTaxApplicationForm from './pages/individualIncomeTaxApplicationForm';
+import IndividualIncomeTaxRateForm from './pages/individualIncomeTaxRateForm';
+import IndividualIncomeTaxWithholdingAgent from './pages/individualIncomeTaxWithholdingAgent';
+
+
+import BaseForm from './components';
+
+import stores from './stores';
+import './style/index';
+
+// 读取系统多语言配置
+let getLocaleLabel = WeaLocaleProvider.getLocaleLabel.bind(this, 'hrmSalary');
+
+// 不需要读取系统多语言
+getLocaleLabel = function (nextState, replace, callback) {
+ callback();
+};
+
+const Home = props => props.children;
+
+const SocialSecurityBenefits = props => props.children;
+const DataAcquisition = props => props.children;
+
+// mySalaryBenefits 我的薪资福利
+// socialSecurityBenefits 社保福利
+// programme 社保福利方案
+// archives 社保福利档案
+// standingBook 社保福利台账
+// salaryItemManagement 薪资项目管理
+// salaryFile 薪资档案
+// dataAcquisition 数据采集
+// accumulatedSpecialAdditionalDeduction 累计专项附加扣除
+// otherTaxExemptDeductions 其他免税扣除
+// cumulativeSituationInPreviousPeriods 往期累计情况
+// attendanceReference 考勤引用
+// salarySet 薪资账套
+// salaryAccounting 薪资核算
+// payrollPayment 工资单发放
+// individualIncomeTaxApplicationForm 个税申请表
+// individualIncomeTaxRateForm 个税税率表
+// individualIncomeTaxWithholdingAgent 个税扣缴义务人
+
+const Routes = (
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+);
+
+module.exports = {
+ Route: Routes,
+ store: stores,
+};
diff --git a/pc4mobx/hrmSalary/index.md b/pc4mobx/hrmSalary/index.md
new file mode 100644
index 00000000..7e01196e
--- /dev/null
+++ b/pc4mobx/hrmSalary/index.md
@@ -0,0 +1,26 @@
+---
+title: demo01 - 基础表单
+order: 0
+demos:
+ - path: /spa/nonstandard/demo01/index.html#/main/ns_demo01/index
+ title: 基础表单
+ order: 0
+---
+
+## 基础表单
+
+```
+1、使用情况:弹框新建编辑某个列表的数据、应用设置(基本列出了表单用到的所有字段类型)
+
+2、引用组件:
+ WeaRightMenu
+ WeaTop
+ WeaNewScroll
+ WeaSearchGroup
+ WeaFormItem
+ WeaSwitch
+
+3、说明:
+ [当前案例代码](https://gitee.com/weaver_cs/ecology-9-demo/tree/master/src4js/pc4ns/demo01)
+
+```
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/columns.js
new file mode 100644
index 00000000..9d2ab7e0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/columns.js
@@ -0,0 +1,75 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "工号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "证件号码",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "入职日期",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计子女教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计继续教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房贷款利息",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房租金",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计赡养老人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/index.js
new file mode 100644
index 00000000..b4d1a329
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/accumulatedSpecialAdditionalDeduction/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class AccumulatedSpecialAdditionalDeduction extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '累计专项附加扣除',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/columns.js
new file mode 100644
index 00000000..9d2ab7e0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/columns.js
@@ -0,0 +1,75 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "工号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "证件号码",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "入职日期",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计子女教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计继续教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房贷款利息",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房租金",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计赡养老人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/index.js
new file mode 100644
index 00000000..0943fcb4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/attendanceReference/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class AttendanceReference extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '考勤引用',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/columns.js
new file mode 100644
index 00000000..9d2ab7e0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/columns.js
@@ -0,0 +1,75 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "工号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "证件号码",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "入职日期",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计子女教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计继续教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房贷款利息",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房租金",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计赡养老人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/index.js
new file mode 100644
index 00000000..13282c62
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/cumulativeSituationInPreviousPeriods/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class CumulativeSituationInPreviousPeriods extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '往期累计情况',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/columns.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/columns.js
new file mode 100644
index 00000000..9d2ab7e0
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/columns.js
@@ -0,0 +1,75 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "工号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "证件号码",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "入职日期",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计子女教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计继续教育",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房贷款利息",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计住房租金",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "累计赡养老人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/index.js b/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/index.js
new file mode 100644
index 00000000..02adf211
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/dataAcquisition/otherTaxExemptDeductions/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class OtherTaxExemptDeductions extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '其他免税扣除',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/columns.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/index.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/index.js
new file mode 100644
index 00000000..d8fd0c3b
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxApplicationForm/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class IndividualIncomeTaxApplicationForm extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '个税申请表',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/columns.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/index.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/index.js
new file mode 100644
index 00000000..9ec68665
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxRateForm/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class IndividualIncomeTaxRateForm extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '个税税率表',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/columns.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/index.js b/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/index.js
new file mode 100644
index 00000000..cfbfdc93
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/individualIncomeTaxWithholdingAgent/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class IndividualIncomeTaxWithholdingAgent extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '个税扣缴义务人',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/mySalaryBenefits/columns.js b/pc4mobx/hrmSalary/pages/mySalaryBenefits/columns.js
new file mode 100644
index 00000000..1d81e027
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/mySalaryBenefits/columns.js
@@ -0,0 +1,151 @@
+
+// 工资单
+export const payrollColumns = [{
+ title: "薪资所属月",
+ dataIndex: 'title',
+ key: 'title',
+}, {
+ title: '个税扣缴义务人',
+ dataIndex: 'username',
+ key: 'username',
+}, {
+ title: '发放时间',
+ dataIndex: 'projectName',
+ key: 'projectName',
+}, {
+ title: '操作',
+ dataIndex: 'customer',
+ key: 'customer',
+}];
+
+// 社保福利
+export const socialSecurityBenefitsColumns= [{
+ title: "缴纳月份",
+ dataIndex: 'title',
+ key: 'title',
+ fixed: 'left',
+ width: 100
+}, {
+ title: '社保账号',
+ dataIndex: 'username',
+ key: 'username',
+}, {
+ title: '公积金账号',
+ dataIndex: 'projectName',
+ key: 'projectName',
+}, {
+ title: '补充公积金账号',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '社保个人合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '公积金个人合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '其他福利个人合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '个人合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '社保单位合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '公积金单位合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '其他福利单位合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '单位合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '社保合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '公积金合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '其他福利合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '合计',
+ dataIndex: 'customer',
+ key: 'customer',
+}]
+
+// 薪酬记录
+export const salaryRecordColumns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "调整项目",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "调整前",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "调整后",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "调整原因",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "生效时间",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作时间",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.js b/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.js
new file mode 100644
index 00000000..e8583b68
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.js
@@ -0,0 +1,145 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+import "./index.less"
+
+import { payrollColumns,
+ socialSecurityBenefitsColumns,
+ salaryRecordColumns,
+ dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class MySalaryBenefits extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '我的薪资福利',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ {
+ title: "工资单",
+ viewcondition: "0"
+ },
+ {
+ title: "社保福利",
+ viewcondition: "1"
+ },
+ {
+ title: "薪酬记录",
+ viewcondition: "2"
+ }
+ ];
+
+ const renderSearchOperationItem = () => {
+ if(this.state.selectedKey == "0") {
+ return ()
+ } else if(this.state.selectedKey == "1"){
+ return ()
+ } else {
+ return ()
+ }
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+ {
+ this.setState({selectedKey: v})
+ }}
+ />
+ {
+ this.state.selectedKey == '0' &&
+ }
+ {
+ this.state.selectedKey == '1' &&
+ }
+ {
+ this.state.selectedKey == '2' &&
+ }
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.less b/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.less
new file mode 100644
index 00000000..c864ed6d
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/mySalaryBenefits/index.less
@@ -0,0 +1,10 @@
+.mySalaryBenefitsWrapper {
+ .monthPickerWrapper {
+ display: inline-block;
+ width: 100px;
+ }
+ .betweenLable {
+ margin-left: 10px;
+ margin-right: 10px
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/payrollPayment/columns.js b/pc4mobx/hrmSalary/pages/payrollPayment/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/payrollPayment/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/payrollPayment/index.js b/pc4mobx/hrmSalary/pages/payrollPayment/index.js
new file mode 100644
index 00000000..8c106784
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/payrollPayment/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class PayrollPayment extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '工资单发放',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salaryAccounting/columns.js b/pc4mobx/hrmSalary/pages/salaryAccounting/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryAccounting/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/salaryAccounting/index.js b/pc4mobx/hrmSalary/pages/salaryAccounting/index.js
new file mode 100644
index 00000000..5bd7be42
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryAccounting/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class SalaryAccounting extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '薪资核算',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/columns.js b/pc4mobx/hrmSalary/pages/salaryFile/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryFile/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/salaryFile/index.js b/pc4mobx/hrmSalary/pages/salaryFile/index.js
new file mode 100644
index 00000000..c9e68d8c
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryFile/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class SalaryFile extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '薪资档案',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salaryItemManagement/columns.js b/pc4mobx/hrmSalary/pages/salaryItemManagement/columns.js
new file mode 100644
index 00000000..76da5691
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryItemManagement/columns.js
@@ -0,0 +1,60 @@
+export const columns = [
+ {
+ title: "名称",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "属性",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "类型",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "薪资档案引用",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "默认使用",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "进位规则",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "保留小数位",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "取值方式",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "备注",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/salaryItemManagement/index.js b/pc4mobx/hrmSalary/pages/salaryItemManagement/index.js
new file mode 100644
index 00000000..0731422d
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salaryItemManagement/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class SalaryItemManagement extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '薪资项目管理',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/salarySet/columns.js b/pc4mobx/hrmSalary/pages/salarySet/columns.js
new file mode 100644
index 00000000..cb9722d4
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salarySet/columns.js
@@ -0,0 +1,45 @@
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "个税扣缴义务人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "基本工资",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/salarySet/index.js b/pc4mobx/hrmSalary/pages/salarySet/index.js
new file mode 100644
index 00000000..372f22b2
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/salarySet/index.js
@@ -0,0 +1,84 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../components/customTab';
+import ContentWrapper from '../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class SalarySet extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '薪资账套',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/columns.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/columns.js
new file mode 100644
index 00000000..78e3fd7a
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/columns.js
@@ -0,0 +1,100 @@
+
+export const columns = [
+ {
+ title: "姓名",
+ dataIndex: 'title',
+ key: 'title',
+ fixed: 'left',
+ width: 100
+ },
+ {
+ title: "部门",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "手机号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "员工状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "社保方案名称",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "社保账号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "社保起始缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "社保最后缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金方案名称",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金账号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "补充公积金账号",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金起始缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金最后缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "其他福利方案名称",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "其他福利起始缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "其他福利最后缴纳月",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ fixed: 'right',
+ width: 100
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/index.js
new file mode 100644
index 00000000..08b5ea60
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/archives/index.js
@@ -0,0 +1,93 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class Archives extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '社保福利档案',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+ {
+ this.setState({selectedKey: v})
+ }}
+ />
+
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/columns.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/columns.js
new file mode 100644
index 00000000..1eef102b
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/columns.js
@@ -0,0 +1,111 @@
+// 社保
+export const socialSecurityColumns = [{
+ title: "方案名称",
+ dataIndex: 'title',
+ key: 'title',
+}, {
+ title: '缴纳类型',
+ dataIndex: 'username',
+ key: 'username',
+}, {
+ title: '缴纳范围',
+ dataIndex: 'projectName',
+ key: 'projectName',
+}, {
+ title: '备注',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '操作',
+ dataIndex: 'customer',
+ key: 'customer',
+}];
+
+// 公积金
+export const accumulationFundColumns= [{
+ title: "方案名称",
+ dataIndex: 'title',
+ key: 'title',
+}, {
+ title: '缴纳类型',
+ dataIndex: 'username',
+ key: 'username',
+}, {
+ title: '缴纳范围',
+ dataIndex: 'projectName',
+ key: 'projectName',
+}, {
+ title: '备注',
+ dataIndex: 'customer',
+ key: 'customer',
+}, {
+ title: '操作',
+ dataIndex: 'customer',
+ key: 'customer',
+}]
+
+// 企业年金及其他福利
+export const otherBenefitsColumns = [
+ {
+ title: "方案名称",
+ dataIndex: 'title',
+ key: 'title',
+
+ },
+ {
+ title: "缴纳类型",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "缴纳范围",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "备注",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+export const CustomBenefitsColumns = [
+ {
+ title: "福利名称",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "启用",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "类型",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "缴纳对象",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js
new file mode 100644
index 00000000..67fbd267
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.js
@@ -0,0 +1,153 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable, WeaInputSearch, WeaSlideModal } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { socialSecurityColumns,
+ accumulationFundColumns,
+ otherBenefitsColumns,
+ CustomBenefitsColumns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class Programme extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0",
+ searchValue: "",
+ slideVisiable: false
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '社保福利方案',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ {
+ title: "社保",
+ viewcondition: "0"
+ },
+ {
+ title: "公积金",
+ viewcondition: "1"
+ },
+ {
+ title: "企业年金及其他福利",
+ viewcondition: "2"
+ },
+ {
+ title: "自定义福利",
+ viewcondition: "3"
+ }
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+
+
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+ {
+ this.setState({selectedKey: v})
+ }}
+ />
+ {
+ this.state.selectedKey == '0' &&
+ }
+ {
+ this.state.selectedKey == '1' &&
+ }
+ {
+ this.state.selectedKey == '2' &&
+ }
+ {
+ this.state.selectedKey == "3" &&
+ }
+
+
+
+
+
+
+ }
+ content={(Content
)}
+ onClose={() => this.setState({slideVisiable: false})}
+ showMask={true}
+ closeMaskOnClick={() => this.setState({slideVisiable: false})}
+ onAnimationEnd={() => console.log('onAnimationEnd')}/>
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.less b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.less
new file mode 100644
index 00000000..ac0eb33e
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/programme/index.less
@@ -0,0 +1,5 @@
+.slideTitleWrapper {
+ .slideTitle {
+ display: inline-block;
+ }
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js
new file mode 100644
index 00000000..901517d1
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/columns.js
@@ -0,0 +1,65 @@
+export const columns = [
+ {
+ title: "账单月份",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "状态",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "社保核算人数",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金核算人数",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "其他福利核算人数",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "公积金缴费",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "其他福利缴费",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "核算人",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "最后操作时间",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "备注",
+ dataIndex: 'title',
+ key: 'title',
+ },
+ {
+ title: "操作",
+ dataIndex: 'title',
+ key: 'title',
+ }
+]
+
+
+export const dataSource = [];
+
+
+
+
+
diff --git a/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/index.js b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/index.js
new file mode 100644
index 00000000..303be099
--- /dev/null
+++ b/pc4mobx/hrmSalary/pages/socialSecurityBenefits/standingBook/index.js
@@ -0,0 +1,92 @@
+import React from 'react';
+import { inject, observer } from 'mobx-react';
+import { toJS } from 'mobx';
+
+import { Button, Table, DatePicker } from 'antd';
+
+import { WeaTop, WeaTab, WeaRightMenu, WeaRangePicker, WeaTable } from 'ecCom';
+
+import { renderNoright, getSearchs } from '../../../util'; // 渲染form数据的方法:因为多个页面都会使用,所以抽的公共方法在util中
+import CustomTab from '../../../components/customTab';
+import ContentWrapper from '../../../components/contentWrapper';
+
+import { columns, dataSource } from './columns';
+
+const { MonthPicker } = DatePicker;
+
+@inject('baseTableStore')
+@observer
+export default class StandingBook extends React.Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ value: "",
+ selectedKey: "0"
+ }
+ }
+ render() {
+ const { baseTableStore } = this.props;
+ const { loading, hasRight, form, condition, tableStore, showSearchAd, getTableDatas, doSearch, setShowSearchAd } = baseTableStore;
+
+ if (!hasRight && !loading) { // 无权限处理
+ return renderNoright();
+ }
+
+ const rightMenu = [// 右键菜单
+ {
+ key: 'BTN_COLUMN',
+ icon: ,
+ content: '显示列定制',
+ onClick: this.showColumn
+ },
+ ];
+ const collectParams = { // 收藏功能配置
+ favname: '社保福利台账',
+ favouritetype: 1,
+ objid: 0,
+ link: 'wui/index.html#/ns_demo03/index',
+ importantlevel: 1,
+ };
+ const adBtn = [ // 高级搜索内部按钮
+ ,
+ ,
+ ,
+ ];
+
+ const topTab = [
+ ];
+
+ const renderSearchOperationItem = () => {
+ return
+
+ }
+
+ return (
+
+
+ } // 左侧图标
+ iconBgcolor='#F14A2D' // 左侧图标背景色
+ showDropIcon={true} // 是否显示下拉按钮
+ dropMenuDatas={rightMenu} // 下拉菜单(和页面的右键菜单相同)
+ dropMenuProps={{ collectParams }} // 收藏功能: 配置之后显示 收藏、帮助、显示页面地址 这3个功能
+ >
+ {
+ this.setState({selectedKey: v})
+ }}
+ />
+
+
+
+
+ )
+ }
+}
diff --git a/pc4mobx/hrmSalary/single.js b/pc4mobx/hrmSalary/single.js
new file mode 100644
index 00000000..20c3b5f6
--- /dev/null
+++ b/pc4mobx/hrmSalary/single.js
@@ -0,0 +1,43 @@
+import React from 'react';
+import ReactDOM from 'react-dom';
+
+import { createHashHistory } from 'History';
+
+import { Router, Route, useRouterHistory, IndexRedirect } from 'react-router';
+
+import { syncHistoryWithStore, RouterStore } from 'mobx-react-router';
+
+import { Provider } from 'mobx-react';
+
+import Module from 'weaHrmSalary';
+
+const routing = new RouterStore();
+
+const allStore = {
+ routing,
+ ...Module.store,
+};
+
+const browserHistory = useRouterHistory(createHashHistory)({
+ queryKey: '_key',
+ basename: '/',
+});
+
+const history = syncHistoryWithStore(browserHistory, allStore.routing);
+
+const Home = props => props.children;
+
+const Root = () => (
+
+
+
+
+
+ { Module.Route }
+
+
+
+
+);
+
+ReactDOM.render(, document.getElementById('container'));
diff --git a/pc4mobx/hrmSalary/stores/baseFoom.js b/pc4mobx/hrmSalary/stores/baseFoom.js
new file mode 100644
index 00000000..38d436b4
--- /dev/null
+++ b/pc4mobx/hrmSalary/stores/baseFoom.js
@@ -0,0 +1,63 @@
+import { observable, action, toJS } from 'mobx';
+import { message } from 'antd';
+import { WeaForm, WeaLogView } from 'comsMobx';
+import { WeaLocaleProvider } from 'ecCom';
+
+import * as API from '../apis'; // 引入API接口文件
+
+const {LogStore} = WeaLogView;
+const getLabel = WeaLocaleProvider.getLabel;
+
+export class BaseFormStore {
+ @observable form = new WeaForm(); // nrew 一个form
+ @observable logStore = new LogStore();
+ @observable condition = []; // 存储后台得到的form数据
+ @observable saveLoading = false; // 保存状态处理:保证保存的时候接口只走一次
+ @observable loading = true; // 页面初始化的loading状态:数据加载成功前后前使用
+ @observable hasRight = true; // 判断用户是有权限查看当前页面: 没有权限渲染无权限页面,有权限渲染数据
+ @observable logVisible = false; // 控制日志弹框的显影
+
+ @action // 初始化操作: 一般用来初始化获取后台数据
+ doInit = () =>{
+ this.getBaseForm();
+ }
+
+ @action // 获得form配置数据
+ getBaseForm = () => {
+ API.getBaseForm().then(action(result => {
+ this.loading = false;
+ this.hasRight = result.hasRight;
+ if (result.hasRight) {
+ this.condition = result.condition;
+ this.form.initFormFields(result.condition);
+ }
+ }));
+ }
+
+ @action // 保存
+ saveForm = () => {
+ this.form.validateForm().then(action(f=>{ // 表单的校验: 直接使用form的validateForm方法即可
+ if (f.isValid) { // 校验听过: 走保存接口
+ this.saveLoading = true;
+ const params = this.form.getFormParams();
+ API.saveForm(params).then(action(
+ result => {
+ this.saveLoading = false
+ if(result.api_status){ // 保存成功: 1、给出提示 2、刷新form数据
+ message.success(`${getLabel(18758,'保存成功')}`);
+ this.getBaseForm();
+ }else {
+ message.error(`${getLabel(22620,'保存失败')}`);
+ }
+ }
+ ));
+ } else {
+ f.showErrors();
+ }
+ }));
+ }
+
+ @action
+ setLogVisible = bool => this.logVisible = bool
+
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/stores/baseTable.js b/pc4mobx/hrmSalary/stores/baseTable.js
new file mode 100644
index 00000000..cc639b54
--- /dev/null
+++ b/pc4mobx/hrmSalary/stores/baseTable.js
@@ -0,0 +1,63 @@
+import { observable, action, toJS } from 'mobx';
+import { message } from 'antd';
+import { WeaForm, WeaTableNew } from 'comsMobx';
+
+import * as API from '../apis'; // 引入API接口文件
+
+const { TableStore } = WeaTableNew;
+
+export class BaseTableStore {
+ @observable tableStore = new TableStore(); // new table
+ @observable form = new WeaForm(); // nrew 一个form
+ @observable condition = []; // 存储后台得到的form数据
+ @observable hasRight = true; // 判断用户是有权限查看当前页面: 没有权限渲染无权限页面,有权限渲染数据
+ @observable showSearchAd = false; // 高级搜索面板显示
+ @observable loading = true; // 数据加载状态
+
+ // 初始化操作
+ @action
+ doInit = () => {
+ this.getCondition();
+ this.getTableDatas();
+ }
+
+ // 获得高级搜索表单数据
+ @action
+ getCondition = () => {
+ API.getCondition().then(action(res => {
+ if (res.api_status) { // 接口请求成功/失败处理
+ this.condition = res.condition;
+ this.form.initFormFields(res.condition); // 渲染高级搜索form表单
+ } else {
+ message.error(res.msg || '接口调用失败!')
+ }
+ }));
+ }
+
+ // 渲染table数据
+ @action
+ getTableDatas = (params) => {
+ this.loading = true;
+ const formParams = this.form.getFormParams() || {};
+ params = params || formParams;
+ API.getTableDatas(params).then(action(res => {
+ if (res.api_status) { // 接口请求成功/失败处理
+ this.tableStore.getDatas(res.datas); // table 请求数据
+ this.hasRight = res.hasRight;
+ } else {
+ message.error(res.msg || '接口调用失败!')
+ }
+ this.loading = false;
+ }));
+ }
+
+ @action
+ setShowSearchAd = bool => this.showSearchAd = bool;
+
+ // 高级搜索 - 搜索
+ @action doSearch = () => {
+ this.getTableDatas();
+ this.showSearchAd = false;
+ }
+
+}
\ No newline at end of file
diff --git a/pc4mobx/hrmSalary/stores/index.js b/pc4mobx/hrmSalary/stores/index.js
new file mode 100644
index 00000000..22a9598f
--- /dev/null
+++ b/pc4mobx/hrmSalary/stores/index.js
@@ -0,0 +1,7 @@
+
+import { BaseTableStore } from './baseTable';
+
+module.exports = {
+ baseTableStore: new BaseTableStore(),
+};
+
diff --git a/pc4mobx/hrmSalary/style/index.js b/pc4mobx/hrmSalary/style/index.js
new file mode 100644
index 00000000..690a7bba
--- /dev/null
+++ b/pc4mobx/hrmSalary/style/index.js
@@ -0,0 +1,2 @@
+const req = require.context('./', false, /\.\/\w+\.(less|css)/);
+req.keys().forEach(mod => req(mod));
diff --git a/pc4mobx/hrmSalary/style/index.less b/pc4mobx/hrmSalary/style/index.less
new file mode 100644
index 00000000..6c61ba14
--- /dev/null
+++ b/pc4mobx/hrmSalary/style/index.less
@@ -0,0 +1,13 @@
+/* 公共样式 */
+
+// loading 效果
+.wea-demo-loading {
+ position: relative;
+ height: 100%;
+ text-align: center;
+ >div {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ }
+}
diff --git a/pc4mobx/hrmSalary/util/index.js b/pc4mobx/hrmSalary/util/index.js
new file mode 100644
index 00000000..6aef0a40
--- /dev/null
+++ b/pc4mobx/hrmSalary/util/index.js
@@ -0,0 +1,68 @@
+import { Spin } from 'antd';
+import { WeaSwitch } from 'comsMobx';
+import { WeaLocaleProvider, WeaAlertPage, WeaSearchGroup, WeaFormItem } from 'ecCom';
+const getLabel = WeaLocaleProvider.getLabel;
+
+// 渲染form表单: 一般对form的渲染都统一使用该方法
+export const getSearchs = (form, condition, col, isCenter) => {
+ const { isFormInit } = form;
+ const formParams = form.getFormParams();
+ let group = [];
+ isFormInit && condition && condition.map(c =>{
+ let items = [];
+ c.items.map(fields => {
+ items.push({
+ com:(
+
+
+ ),
+ colSpan:1,
+ })
+ });
+ group.push(
+ )
+ });
+ return group;
+}
+
+// 页面加载中效果处理
+export const renderLoading = (loading) => (
+
+
+
+)
+
+// 无权限处理
+export const renderNoright = () => (
+
+
+ {getLabel(2012,'对不起,您暂时没有权限!')}
+
+
+)
+
+// 暂无数据处理
+export const renderNoData = () => (
+
+
+ 暂无数据
+
+
+)
\ No newline at end of file
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 00000000..8dd306a6
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,32 @@
+{
+ "compilerOptions": {
+ "baseUrl": ".",
+ "outDir": "../spa",
+ "module": "esnext",
+ "target": "es5",
+ "lib": ["es6", "dom"],
+ "sourceMap": true,
+ "allowJs": true,
+ "jsx": "react",
+ "moduleResolution": "node",
+ "rootDir": "../src4js",
+ "forceConsistentCasingInFileNames": true,
+ "noImplicitReturns": true,
+ "noImplicitThis": true,
+ "noImplicitAny": true,
+ "strictNullChecks": true,
+ "suppressImplicitAnyIndexErrors": true,
+ "noUnusedLocals": true,
+ "experimentalDecorators": true,
+ },
+ "exclude": [
+ "**/node_modules/*",
+ "config",
+ "config_weaver",
+ "public",
+ "scripts",
+ "webpack-config.js",
+ "webpack",
+ "jest"
+ ]
+}
diff --git a/tslint.json b/tslint.json
new file mode 100644
index 00000000..67823d8e
--- /dev/null
+++ b/tslint.json
@@ -0,0 +1,9 @@
+{
+ "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
+ "linterOptions": {
+ "exclude": [
+ "config/**/*.js",
+ "node_modules/**/*.ts"
+ ]
+ }
+}
diff --git a/webpack.config.js b/webpack.config.js
new file mode 100644
index 00000000..bf9a9358
--- /dev/null
+++ b/webpack.config.js
@@ -0,0 +1,219 @@
+const config = require('./weaconfig/weaconfig');
+const path_e9 = require('./weaconfig/weapath4e9').default;
+const path_e9_coms = require('./weaconfig/weapath4e9-coms').default;
+const path_e9_eng = require('./weaconfig/weapath4e9-eng').default;
+const argv = require('yargs').argv;
+
+const getPath = ({ name, srcPath, runPath }, paths) => {
+ if (!paths[name]) {
+ console.error(`\n======
+ 请检查 src4js/webpack.config.js 的配置, 找不到 name 为 ${
+ name} 的 APP !!!!!\n======\n\n`);
+ return;
+ }
+ const app = paths[name];
+ const { entry, output, styleUrl } = app;
+ return Object.assign(app, {
+ entry: `${srcPath}${entry}`,
+ output: `${runPath}${output}`,
+ }, styleUrl ? { styleUrl: `${runPath}${styleUrl}` } : {});
+};
+
+// 运行模式:release打包模式,debug调试模式
+let mode = 'release';
+// mode = 'debug';
+
+// 编译模式:production发布版、development开发版
+let node_env = 'production';
+// node_env = 'development';
+
+// 是否是自定义路径模式,自定义模式可以自己写完整地址
+const custom = true;
+
+if (custom) {
+ // 自定义路径
+ const customAppName = 'more';
+ module.exports = config.create(({
+ //前台调试主入口
+ "index":{
+ entry: "./pc/main/index.js",
+ output: "D:/weaver/ecology/spa/main/index.js",
+ styleUrl: "D:/weaver/ecology/spa/main/index.css"
+ },
+ //前台调试主入口
+ "portal":{
+ entry: "./pc/portal/index.js",
+ output: "E:/workspace/ecology/spa/portal/index.js",
+ styleUrl: "E:/workspace/ecology/spa/portal/index.css",
+ outputlib: {
+ library: "weaPortal",
+ libraryTarget: "umd"
+ }
+ },
+ //前台调试主入口
+ "portalengine":{
+ entry: "./pc4backstage/portal4engine/index.js",
+ output: "E:/workspace/ecology/spa/portal/static4engine/engine.js",
+ styleUrl: "E:/workspace/ecology/spa/portal/static4engine/engine.css",
+ outputlib: {
+ library: "weaPortalEngine",
+ libraryTarget: "umd"
+ }
+ },
+ //前台调试主入口
+ "theme":{
+ entry: "./pc4mobx/portal4theme/index.js",
+ output: "E:/workspace/ecology/wui/theme/ecology9/js/index-mobx.js",
+ styleUrl: "E:/workspace/ecology/wui/theme/ecology9/css/index-mobx.css",
+ outputlib: {
+ library: "weaPortalTheme",
+ libraryTarget: "umd"
+ }
+ },
+ //前台调试主入口
+ "more":{
+ entry: "./pc/portal/elementmore/single.js",
+ output: "E:/workspace/ecology/spa/portal/index_more.js",
+ styleUrl: "E:/workspace/ecology/spa/portal/index_more.css",
+ },
+ //前台调试主入口
+ "single":{
+ entry: "./pc/portal/single.js",
+ output: "E:/workspace/ecology/spa/portal/index-indie.js",
+ styleUrl: "E:/workspace/ecology/spa/portal/index-indie.css",
+ },
+ //E9 主题
+ "E9_theme_mobx": {
+ entry: "./pc4mobx/portal4theme/index.js",
+ output: "E:/workspace/ecology/wui/theme/ecology9/js/index-mobx.js",
+ styleUrl: "E:/workspace/ecology/wui/theme/ecology9/css/index-mobx.css",
+ outputlib: {
+ library: "weaPortalTheme",
+ libraryTarget: "umd"
+ }
+ },
+ //正式系统打包文件
+ "portal_fs":{
+ entry: "./pc/portal_fs_2/index.js",
+ output: "E:/workspace/ecology/spa/portal_fs/index.js",
+ styleUrl: "E:/workspace/ecology/spa/portal_fs/index.css",
+ outputlib: {
+ library: "weaPortal",
+ libraryTarget: "umd"
+ }
+ },
+ //前台调试主入口
+ "mobx_index":{
+ entry: "./pc4mobx/amain/index.js",
+ output: "E:/workspace/ecology/spa/main/index-mobx.js",
+ },
+ //引擎主入口
+ "engine_index":{
+ entry: "./pc4backstage/amain/index.js",
+ output: "E:/workspace/ecology/spa/main/engine.js",
+ },
+ //SAP集成
+ "sapIntegration":{
+ entry: "./pc4backstage/sapIntegration/index.js",
+ output: "E:/workspace/ecology/spa/sapIntegration/index.js",
+ styleUrl: "E:/workspace/ecology/spa/sapIntegration/index.css",
+ outputlib: {
+ library: "weaSapIntegration",
+ libraryTarget: "umd"
+ }
+ },
+ //SAP集成
+ "sapBrowseConfiguration":{
+ entry: "./pc4backstage/sapIntegration/public/index.js",
+ output: "E:/workspace/ecology/spa/sapIntegration/index_sapBrowse.js",
+ styleUrl: "E:/workspace/ecology/spa/sapIntegration/index_sapBrowse.css",
+ outputlib: {
+ library: "weaSapIntegrationPublic",
+ libraryTarget: "umd"
+ }
+ },
+ })[customAppName], mode, node_env);
+} else {
+ // 已内置配置
+ const pathConfig = {
+ name: 'document_redux', // 查阅底部注释列表
+ srcPath: '../', // 本地源码路径,src4js 上一层, 或本地 svn 绝对路径 'D:/ecology'
+ runPath: 'D:/ecology/ecology9/ecology', // 打包后路径,spa wui 等上一层, 或本地绝对路径 'D:/ecology'
+ mode,
+ };
+ argv.pubModule && (pathConfig.name = argv.pubModule);
+ module.exports = config.create(getPath(
+ pathConfig,
+ Object.assign(path_e9, path_e9_coms, path_e9_eng)
+ ), mode, node_env);
+}
+
+// ************ APP NAME ************
+
+/* 公共组件
+ antd - antd
+ ecCom - E9 基础组件库
+ coms_demo - 组件库 API 文档 demo 页
+ coms_mobx - mobx 公共组件
+ coms_redux - 前台 redux 公共组件 (即将废弃)
+ coms_global - 流程单页公共文件整合包
+ weaCom - 云商店应用组件库
+*/
+
+/* 前台 A -> Z
+ main - 主入口
+ theme - 主题
+ portal - 门户
+ album_redux - 相册 redux (迁移后废弃)
+ blog - 微博
+ blog_single - 微博单页入口
+ cowork - 协作
+ cowork_single - 协作单页入口
+ cpt - 资产
+ cpt_single - 资产单页入口
+ crm - 客户
+ crm_single - 客户单页入口
+ document - 文档
+ document_single - 文档单页入口
+ document_redux - 文档 redux(迁移后废弃)
+ document_redux_single - 文档 redux 单页入口(迁移后废弃)
+ email - 邮件
+ email_single - 邮件单页入口
+ esearch - 微搜
+ esearch_single - 微搜单页入口
+ fna - 财务
+ fnaSpecial - 财务流程
+ hrm - 人力
+ hrm_single - 人力单页入口
+ inte - 集成
+ inte_single - 集成单页入口
+ meeting - 会议
+ meeting_single - 会议单页入口
+ odoc - 公文
+ odoc_single - 公文单页入口
+ prj - 项目
+ prj_single - 项目单页入口
+ smallApp - 小模块
+ smallApp_single - 小模块单页入口
+ workplan - 日程
+ workplan_single - 日程单页入口
+ workflow - 流程
+ workflow_single - 流程单页入口
+ workflow_redux - 流程 redux(迁移后废弃)
+ workflow_redux_single - 流程 redux 单页入口(迁移后废弃)
+*/
+
+/* 后台
+ bs_main - 主入口
+ bs_theme - 门户主题
+ bs_portal - 门户
+ bs_cpt - 资产
+ bs_crm - 客户
+ bs_hrm - 人力
+ bs_hrm_single - 人力单页入口
+ bs_mobilemode - 移动建模
+ bs_workflow - 流程
+ bs_workflow_single - 流程单页入口
+ bs_smallApp - 小应用
+ bs_smallApp_single - 小应用单页入口
+*/