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 - 小应用单页入口 +*/