diff --git a/pc4mobx/hrmSalary/apis/datapush.js b/pc4mobx/hrmSalary/apis/datapush.js index 27d73608..fb26cf9b 100644 --- a/pc4mobx/hrmSalary/apis/datapush.js +++ b/pc4mobx/hrmSalary/apis/datapush.js @@ -32,3 +32,15 @@ export const getPushRecordList = (params) => { export const getPushRecordDetail = (params) => { return postFetch("/api/bs/hrmsalary/push/record/detail", params); }; +// 推送记录-推送 +export const pushRecords = (params) => { + return postFetch("/api/bs/hrmsalary/push/record/push", params); +}; +// 推送记录-撤回 +export const withdrawRecords = (params) => { + return postFetch("/api/bs/hrmsalary/push/record/withdraw", params); +}; +//创建推送记录 +export const createPushRecords = (params) => { + return postFetch("/api/bs/hrmsalary/push/record/create", params); +}; diff --git a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js index f197ba27..75e3eb73 100644 --- a/pc4mobx/hrmSalary/apis/mySalaryBenefits.js +++ b/pc4mobx/hrmSalary/apis/mySalaryBenefits.js @@ -45,11 +45,13 @@ export const doSecondAuth = (params, headers) => { export const getPasswordForm = params => { return WeaTools.callApi("/api/hrm/secondarypwd/getPasswordForm", "GET", params); }; -export const checkPassword = params => { - return WeaTools.callApi("/api/hrm/secondarypwd/checkPassword", "POST", params); +export const checkPassword = (params, headers) => { + return formHeaderPost("/api/hrm/secondarypwd/checkPassword", "POST", params, headers); + // return WeaTools.callApi("/api/hrm/secondarypwd/checkPassword", "POST", params); }; -export const saveSecondaryPwd = params => { - return WeaTools.callApi("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params); +export const saveSecondaryPwd = (params, headers) => { + return formHeaderPost("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params, headers); + // return WeaTools.callApi("/api/hrm/secondarypwd/saveSecondaryPwd", "POST", params); }; export const salaryBillGetToken = params => { return postFetch("/api/bs/hrmsalary/salaryBill/getToken", params); diff --git a/pc4mobx/hrmSalary/apis/payroll.js b/pc4mobx/hrmSalary/apis/payroll.js index 48fcecb2..c322c94f 100644 --- a/pc4mobx/hrmSalary/apis/payroll.js +++ b/pc4mobx/hrmSalary/apis/payroll.js @@ -210,18 +210,26 @@ export const payrollCheckType = params => { return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/payrollCheckType", "GET", params); }; //工资单-反馈验证 -export const feedBackSalaryBill = params => { +export const feedBackSalaryBill = async params => { const { header, ...payload } = params; - return fetch(`/api/bs/hrmsalary/salaryBill/feedBackSalaryBill?${convertToUrlString(payload)}`, { + const res = await fetch(`/api/bs/hrmsalary/salaryBill/feedBackSalaryBill?${convertToUrlString(payload)}`, { method: "GET", mode: "cors", headers: { "Content-Type": "application/json", ...header } - }).then(res => res.json()); + }); + return await res.json(); // return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/feedBackSalaryBill", "GET", params); }; //工资单-确认 -export const confirmSalaryBill = params => { - return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/confirmSalaryBill", "GET", params); +export const confirmSalaryBill = async params => { + const { header, ...payload } = params; + const res = await fetch(`/api/bs/hrmsalary/salaryBill/confirmSalaryBill?${convertToUrlString(payload)}`, { + method: "GET", + mode: "cors", + headers: { "Content-Type": "application/json", ...header } + }); + return await res.json(); + // return WeaTools.callApi("/api/bs/hrmsalary/salaryBill/confirmSalaryBill", "GET", params); }; // 工资单基础设置-获取设置列表 diff --git a/pc4mobx/hrmSalary/components/FormInfo/index.js b/pc4mobx/hrmSalary/components/FormInfo/index.js index d6940489..d0d87963 100644 --- a/pc4mobx/hrmSalary/components/FormInfo/index.js +++ b/pc4mobx/hrmSalary/components/FormInfo/index.js @@ -67,7 +67,7 @@ export default class FormInfo extends Component { } } coms != null && formItems.push({ - com: ({coms}), + com: ({coms}), hide: field.hide, col }); diff --git a/pc4mobx/hrmSalary/pages/calculate/calculate.js b/pc4mobx/hrmSalary/pages/calculate/calculate.js index 5d7b516d..3a7b563d 100644 --- a/pc4mobx/hrmSalary/pages/calculate/calculate.js +++ b/pc4mobx/hrmSalary/pages/calculate/calculate.js @@ -6,7 +6,8 @@ */ import React, { Component } from "react"; import { inject, observer } from "mobx-react"; -import { WeaLocaleProvider, WeaTop } from "ecCom"; +import { WeaLocaleProvider, WeaTools, WeaTop } from "ecCom"; +import { WeaForm } from "comsMobx"; import { Button, message, Modal } from "antd"; import moment from "moment"; import CalculateQuery from "./components/calculateQuery"; @@ -15,9 +16,15 @@ import CalculateDialog from "./components/calculateDialog"; import ProgressModal from "../../components/progressModal"; import LogDialog from "../../components/logViewModal"; import { backCalculate, deleteSalaryacct, fileSalaryAcct, reAccounting } from "../../apis/calculate"; +import FormInfo from "../../components/FormInfo"; +import { queryConditions } from "./config"; +import { postFetch } from "../../util/request"; +import cs from "classnames"; import "./index.less"; +const getKey = WeaTools.getKey; const getLabel = WeaLocaleProvider.getLabel; +const form = new WeaForm(); @inject("calculateStore", "taxAgentStore") @observer @@ -31,17 +38,32 @@ class Calculate extends Component { moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM"), moment(new Date()).endOf("year").format("YYYY-MM") ] - }, isRefresh: false, logDialogVisible: false, + }, isRefresh: false, logDialogVisible: false, conditions: [], progressModule: { visible: false, progress: 0, title: getLabel(111, "正在归档中请稍后") }, - calcDaialog: { visible: false, title: "" } + calcDaialog: { visible: false, title: "" }, showAdvance: false }; this.timer = null; this.handleDebounce = null; } + async componentDidMount() { + const { data } = await postFetch("/api/bs/hrmsalary/taxAgent/listAuth", { filterType: "QUERY_DATA" }); + this.setState({ + conditions: _.map(queryConditions, item => ({ + ...item, items: _.map(item.items, o => { + o = { ...o, label: getLabel(o.lanId, o.label) }; + if (getKey(o) === "taxAgentIds") { + return { ...o, options: _.map(data, k => ({ key: k.id + "", showname: k.name })) }; + } + return { ...o }; + }) + })) + }, () => form.initFormFields(this.state.conditions)); + } + renderCalculateOpts = () => { const { taxAgentStore: { PageAndOptAuth } } = this.props; - const { queryParams, isRefresh } = this.state; + const { queryParams, isRefresh, showAdvance } = this.state; const admin = PageAndOptAuth.opts.includes("admin"); let calculateOpts = [ this.setState({ @@ -50,10 +72,11 @@ class Calculate extends Component { title: getLabel(538780, "核算") } })}>{getLabel(538780, "核算")}, - this.setState({ - isRefresh: _.keys(v)[0] === "name" ? isRefresh : !isRefresh, - queryParams: { ...queryParams, ...v } - })} onSearch={() => this.setState({ isRefresh: !isRefresh })}/> + this.setState({ showAdvance: !showAdvance })} + onChange={v => this.setState({ + isRefresh: _.keys(v)[0] === "name" ? isRefresh : !isRefresh, + queryParams: { ...queryParams, ...v } + })} onSearch={() => this.setState({ isRefresh: !isRefresh })}/> ]; return !admin ? calculateOpts.slice(1) : calculateOpts; }; @@ -189,7 +212,9 @@ class Calculate extends Component { }; render() { - const { queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible, filterConditions } = this.state; + const { + queryParams, isRefresh, calcDaialog, progressModule, logDialogVisible, filterConditions, conditions, showAdvance + } = this.state; return ( } iconBgcolor="#F14A2D" buttons={this.renderCalculateOpts()} className="calculate-main-layout" showDropIcon @@ -201,7 +226,18 @@ class Calculate extends Component { } ]}> - + + + + this.setState({ isRefresh: !isRefresh })}>{getLabel(111, "搜索")} + form.resetForm()}>{getLabel(111, "重置")} + this.setState({ showAdvance: !showAdvance })}>{getLabel(111, "取消")} + + + this.setState({ calcDaialog: { ...calcDaialog, visible: false }, diff --git a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js index 00cd202d..0c74ccd5 100644 --- a/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js +++ b/pc4mobx/hrmSalary/pages/calculate/components/calculateQuery/index.js @@ -21,11 +21,14 @@ class Index extends Component { this.props.onChange({ dateRange: v })}/> - this.props.onChange({ name: v })} - onSearch={this.props.onSearch} - /> + + this.props.onChange({ name: v })} + onSearch={this.props.onSearch} + /> + {getLabel(111, "高级搜索")} + ); } diff --git a/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js b/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js index 5059017f..0b4ea0a0 100644 --- a/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js +++ b/pc4mobx/hrmSalary/pages/calculate/components/calculateTablelist/index.js @@ -29,12 +29,14 @@ class Index extends Component { } getSalaryAcctList = (props) => { - const { pageInfo } = this.state; - const { queryParams } = props; + const { pageInfo } = this.state, { queryParams, form } = props; + const { taxAgentIds } = form.getFormParams(); const { dateRange, ...extra } = queryParams; const [startMonthStr, endMonthStr] = dateRange || []; const params = { startMonthStr, endMonthStr, ...extra }; - const payload = { ...pageInfo, ...params }; + const payload = { + ...pageInfo, ...params, taxAgentIds: taxAgentIds ? taxAgentIds.split(",") : [] + }; this.setState({ loading: true }); getSalaryAcctList(payload).then(({ status, data }) => { this.setState({ loading: false }); diff --git a/pc4mobx/hrmSalary/pages/calculate/config.js b/pc4mobx/hrmSalary/pages/calculate/config.js new file mode 100644 index 00000000..02da5b10 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/calculate/config.js @@ -0,0 +1,19 @@ +export const queryConditions = [ + { + items: [ + { + conditionType: "SELECT", + domkey: ["taxAgentIds"], + fieldcol: 14, + label: "个税扣缴义务人", + lanI: 111, + multiple: true, + options: [], + labelcol: 6, + value: "", + viewAttr: 2 + } + ], + defaultshow: true + } +]; diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js index 5deeaecd..239ccb9e 100644 --- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js +++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/editSalaryCalcSlide.js @@ -99,7 +99,8 @@ class EditSalaryCalcSlide extends Component { return; } const payload = { - salaryAcctEmpId, employeeInfos: baseInfo, + salaryAcctEmpId, + employeeInfos: _.map(baseInfo, o => ({ ...o, fieldValue: o.fieldValue.id || o.fieldValue })), items: [ ..._.reduce(itemsByGroup, (pre, cur) => { return [ diff --git a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less index facb4273..669f1ba1 100644 --- a/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less +++ b/pc4mobx/hrmSalary/pages/calculate/doCalc/components/salaryEditCalc/index.less @@ -155,6 +155,10 @@ .esf-base-info-form, .wea-title, .wea-content { padding: 0; + + .ant-row { + height: 100%; + } } .esf-form-content { diff --git a/pc4mobx/hrmSalary/pages/calculate/index.less b/pc4mobx/hrmSalary/pages/calculate/index.less index 045f4b8c..2e73f6b2 100644 --- a/pc4mobx/hrmSalary/pages/calculate/index.less +++ b/pc4mobx/hrmSalary/pages/calculate/index.less @@ -62,6 +62,24 @@ } } + .advance-custom { + display: flex; + align-items: center; + + & > a { + border-radius: 0; + height: 28px; + position: relative; + color: #474747; + padding: 4px 15px; + background-color: transparent; + display: flex; + align-items: center; + border: 1px solid #d9d9d9; + border-left: none + } + } + .wea-input-focus { margin-top: -4px; } @@ -72,6 +90,32 @@ overflow-y: hidden; } + .advance-calc { + display: none; + background: #FFF; + margin-bottom: 8px; + + .advance-calc-btns { + display: flex; + justify-content: center; + align-items: center; + padding: 15px 0; + border-top: 1px solid #dadada; + + button { + margin-right: 15px; + } + } + + .wea-search-group, .wea-content { + padding: 0; + } + } + + .show-advance-calc { + display: block; + } + .calculate-body { height: 100%; width: 100%; diff --git a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js new file mode 100644 index 00000000..e0bd1255 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/createPushRecordDialog.js @@ -0,0 +1,149 @@ +/* + * 数据推送记录 + * 创建 + * @Author: 黎永顺 + * @Date: 2025/4/15 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaDialog, WeaFormItem, WeaLocaleProvider, WeaTable, WeaTools } from "ecCom"; +import FormInfo from "../../../../components/FormInfo"; +import { RQconditions } from "../../conditions"; +import { MonthRangePicker } from "../../../reportView/components/statisticalMicroSettingsSlide"; +import { getSalaryAcctList } from "../../../../apis/calculate"; +import { createPushRecords } from "../../../../apis/datapush"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import { Button, message } from "antd"; +import moment from "moment"; + +const form = new WeaForm(); +const getKey = WeaTools.getKey; +const getLabel = WeaLocaleProvider.getLabel; + +class CreatePushRecordDialog extends Component { + constructor(props) { + super(props); + this.state = { + dataSource: [], columns: [], loading: false, pageInfo: { current: 1, pageSize: 10, total: 0 }, + conditions: [] + }; + } + + componentWillReceiveProps(nextProps, nextContext) { + if (nextProps.visible !== this.props.visible && nextProps.visible) { + this.setState({ + conditions: _.map(RQconditions, item => ({ + ...item, + items: _.map(item.items, o => { + o = { ...o, label: getLabel(o.lanId, o.label) }; + if (getKey(o) === "startMonthStr") { + return { + ...o, value: moment(new Date()).subtract(1, "year").startOf("year").format("YYYY-MM") + }; + } else if (getKey(o) === "endMonthStr") { + return { + ...o, value: moment(new Date()).endOf("year").format("YYYY-MM") + }; + } + return o; + }) + })) + }, () => { + form.initFormFields(this.state.conditions); + this.getSalaryAcctList(); + }); + } else { + form.resetForm(); + } + } + + getSalaryAcctList = () => { + const { pageInfo } = this.state, payload = { ...pageInfo, ...form.getFormParams() }; + this.setState({ loading: true }); + getSalaryAcctList(payload).then(({ status, data }) => { + this.setState({ loading: false }); + if (status) { + const { columns, list: dataSource, pageNum: current, pageSize, total } = data; + this.setState({ + dataSource, pageInfo: { current, pageSize, total }, + columns: _.filter(columns, it => (it.dataIndex !== "backCalcStatus" && it.dataIndex !== "acctTimes" && it.dataIndex !== "operate")) + }); + } + }).catch(() => this.setState({ loading: false })); + }; + save = (record) => { + this.setState({ loading: true }); + createPushRecords({ salaryAcctRecordIds: [record.id] }).then(({ status, errormsg }) => { + this.setState({ loading: false }); + if (status) { + message.success(getLabel(111, "操作成功!")); + this.props.onCancel(this.props.onSuccess); + } else { + message.error(errormsg); + } + }); + }; + + render() { + const { loading, conditions, dataSource, columns, pageInfo } = this.state; + const pagination = { + ...pageInfo, + showTotal: total => `${getLabel(18609, "共")} ${total} ${getLabel(18256, "条")}`, + showQuickJumper: true, + showSizeChanger: true, + pageSizeOptions: ["10", "20", "50", "100"], + onShowSizeChange: (current, pageSize) => { + this.setState({ pageInfo: { ...pageInfo, current, pageSize } }, () => this.getSalaryAcctList()); + }, + onChange: current => { + this.setState({ pageInfo: { ...pageInfo, current } }, () => this.getSalaryAcctList()); + } + }; + const itemRender = { + name: (field, textAreaProps, form, formParams) => { + return ( this.getSalaryAcctList(), 500)}/>); + }, + startMonthStr: () => null, + endMonthStr: () => null + }; + const childrenComponents = { + startMonthStr: () => { + const { startMonthStr, endMonthStr } = form.getFormParams(); + const coms = [], { fieldMap } = form; + const dateRange = [startMonthStr, endMonthStr]; + coms.push( + {fieldMap["startMonthStr"].label}} labelCol={{ span: 6 }} + wrapperCol={{ span: 14 }}> + { + const [v1, v2] = v; + form.updateFields({ startMonthStr: v1, endMonthStr: v2 }); + this.getSalaryAcctList(); + }}/> + + ); + return [{ com: coms, col: 2 }]; + } + }; + const scrollHeight = this.refs.recordRef ? this.refs.recordRef.state.height - 162 : 606; + + return ( this.props.onCancel()}>{getLabel(111, "取消")} + ]}> + + + ); + } +} + +export default CreatePushRecordDialog; diff --git a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js index f73e220b..08287119 100644 --- a/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js +++ b/pc4mobx/hrmSalary/pages/datapush/components/pushRecord/index.js @@ -27,7 +27,7 @@ class Index extends Component { } componentWillUnmount() { - this.setState({ selectedRowKeys: [] }); + this.setState({ selectedRowKeys: [] }, () => this.props.onChange("rowKey", [])); } componentWillReceiveProps(nextProps, nextContext) { @@ -47,9 +47,11 @@ class Index extends Component { this.setState({ pageInfo: { ...pageInfo, current, pageSize, total }, dataSource, columns: [...columns, { - title: getLabel(111, "操作"), dataIndex: "opts", width: 120, render: (__, record) => ( + title: getLabel(111, "操作"), dataIndex: "opts", width: 140, render: (__, record) => ( this.props.onChange("push", record)}>{getLabel(111, "推送")} + onClick={_.debounce(() => this.props.onChange("push", record), 300)}>{getLabel(111, "推送")} + this.props.onChange("withdraw", record), 300)}>{getLabel(111, "撤回")} this.props.onChange("view", record)}>{getLabel(111, "查看详情")} ) @@ -76,9 +78,9 @@ class Index extends Component { }; const rowSelection = { selectedRowKeys, - onChange: v => this.setState({ selectedRowKeys: v }) + onChange: v => this.setState({ selectedRowKeys: v }, () => this.props.onChange("rowKey", v)) }; - return (); } } diff --git a/pc4mobx/hrmSalary/pages/datapush/conditions.js b/pc4mobx/hrmSalary/pages/datapush/conditions.js index 04401305..c4f12a09 100644 --- a/pc4mobx/hrmSalary/pages/datapush/conditions.js +++ b/pc4mobx/hrmSalary/pages/datapush/conditions.js @@ -145,3 +145,43 @@ export const PDConditions = [ defaultshow: true } ];// 推送详细配置表单 + + +export const RQconditions = [ + { + items: [ + { + conditionType: "MONTHPICKER", + domkey: ["startMonthStr"], + fieldcol: 14, + label: "薪资所属月", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + }, + { + conditionType: "MONTHPICKER", + domkey: ["endMonthStr"], + fieldcol: 14, + label: "薪资所属月", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + }, + { + conditionType: "INPUT", + domkey: ["name"], + fieldcol: 14, + label: "薪资账套", + lanId: 111, + labelcol: 6, + value: "", + viewAttr: 2 + } + ], + title: "", + defaultshow: true + } +];// 推送记录查询表单 diff --git a/pc4mobx/hrmSalary/pages/datapush/index.js b/pc4mobx/hrmSalary/pages/datapush/index.js index bdabd479..e3da4cb4 100644 --- a/pc4mobx/hrmSalary/pages/datapush/index.js +++ b/pc4mobx/hrmSalary/pages/datapush/index.js @@ -18,6 +18,7 @@ import PushDetailDialog from "./components/pushRecord/pushDetailDialog"; import { Button, message, Modal } from "antd"; import cs from "classnames"; import "./index.less"; +import CreatePushRecordDialog from "./components/pushRecord/createPushRecordDialog"; const getLabel = WeaLocaleProvider.getLabel; @@ -27,7 +28,8 @@ class Index extends Component { constructor(props) { super(props); this.state = { - selectedKey: "datapush", isQuery: false, query: { name: "" }, + selectedKey: "pushRecord", isQuery: false, query: { name: "" }, selectedRowKeys: [], + loading: { push: false, withdraw: false }, visible: false, DPDialog: { visible: false, title: "", detail: {} }, //数据推送弹框 pushDetailDialog: { visible: false, recordId: "" } //数据推送记录查看推送详情弹框 }; @@ -60,16 +62,77 @@ class Index extends Component { case "view": this.setState({ pushDetailDialog: { visible: true, recordId: detail.id } }); break; + case "rowKey": + this.setState({ selectedRowKeys: detail }); + break; + case "addRecord": + this.setState({ visible: true }); + break; + case "push": + case "batchpush": + if (type === "batchpush" && _.isEmpty(this.state.selectedRowKeys)) { + message.warning(getLabel(111, "请选择数据")); + return; + } + this.pushRecords(type === "push" ? [detail.id] : this.state.selectedRowKeys); + break; + case "withdraw": + case "batchwithdraw": + if (type === "batchwithdraw" && _.isEmpty(this.state.selectedRowKeys)) { + message.warning(getLabel(111, "请选择数据")); + return; + } + this.withdrawRecords(type === "withdraw" ? [detail.id] : this.state.selectedRowKeys); + break; default: break; } }; + pushRecords = (ids) => { + this.setState({ loading: { ...this.state.loading, push: true } }); + API.pushRecords({ ids }).then(({ status, errormsg }) => { + this.setState({ loading: { ...this.state.loading, push: false } }); + if (status) { + this.handleAdvanceSearch(); + message.success(getLabel(111, "推送成功!")); + } else { + message.error(errormsg); + } + }); + }; + withdrawRecords = (ids) => { + this.setState({ loading: { ...this.state.loading, withdraw: true } }); + API.withdrawRecords({ ids }).then(({ status, errormsg }) => { + this.setState({ loading: { ...this.state.loading, withdraw: false } }); + if (status) { + this.handleAdvanceSearch(); + message.success(getLabel(111, "撤回成功!")); + } else { + message.error(errormsg); + } + }); + }; render() { - const { selectedKey, DPDialog, isQuery, query, pushDetailDialog } = this.state; + const { selectedKey, DPDialog, isQuery, query, pushDetailDialog, loading, visible } = this.state; const { taxAgentStore: { PageAndOptAuth } } = this.props; const showOperateBtn = PageAndOptAuth.opts.includes("admin"); const tabs = [ + { + title: getLabel(111, "推送记录"), key: "pushRecord", showDropIcon: false, dropMenuDatas: [], + buttons: showOperateBtn ? [ + this.handleOperate("addRecord")} + loading={loading.add}>{getLabel(111, "创建")}, + this.handleOperate("batchpush")} + loading={loading.push}>{getLabel(111, "批量推送")}, + this.handleOperate("batchwithdraw")}>{getLabel(111, "批量撤回")}, + this.setState({ query: { ...query, name: v } })}/> + ] : [ this.setState({ query: { ...query, name: v } })}/>], + children: + }, { title: getLabel(111, "数据推送"), key: "datapush", showDropIcon: false, dropMenuDatas: [], buttons: showOperateBtn ? [ @@ -79,16 +142,6 @@ class Index extends Component { ] : [ this.setState({ query: { ...query, name: v } })}/>], children: - }, - { - title: getLabel(111, "推送记录"), key: "pushRecord", showDropIcon: false, dropMenuDatas: [], - buttons: showOperateBtn ? [ - this.handleOperate("batchpush")}>{getLabel(111, "批量推送")}, - this.setState({ query: { ...query, name: v } })}/> - ] : [ this.setState({ query: { ...query, name: v } })}/>], - children: } ]; return ( @@ -112,6 +165,8 @@ class Index extends Component { this.setState({ pushDetailDialog: { ...pushDetailDialog, visible: false } })}/> + this.setState({ visible: false }, () => callback && callback())}/> ); } diff --git a/pc4mobx/hrmSalary/pages/datapush/index.less b/pc4mobx/hrmSalary/pages/datapush/index.less index 316932b9..71919160 100644 --- a/pc4mobx/hrmSalary/pages/datapush/index.less +++ b/pc4mobx/hrmSalary/pages/datapush/index.less @@ -167,3 +167,28 @@ } } } + +.record-dialog { + .wea-dialog-body { + background: #f6f6f6; + padding: 8px 16px; + + .record-form { + background: #FFF; + margin-bottom: 8px; + + .wea-search-group, .wea-content { + padding: 0; + } + + .rangePickerBox { + display: flex; + align-items: center; + } + } + + .wea-new-table { + background: #FFF; + } + } +} diff --git a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less index 5738f9eb..70f4bb27 100644 --- a/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less +++ b/pc4mobx/hrmSalary/pages/ledgerPage/components/index.less @@ -198,6 +198,10 @@ } } } + + .wea-new-table.wea-new-table-draggable table { + table-layout: fixed + } } .titleWrapper { diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js new file mode 100644 index 00000000..3462cb08 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/conditions.js @@ -0,0 +1,87 @@ +export const secondaryVerifyConditions = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["authCode"], + fieldcol: 14, + label: "二次验证密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; +export const loginCondition = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["password"], + fieldcol: 14, + label: "登录密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; +export const secondarypwdCondition = [ + { + items: [ + { + conditionType: "INPUT", + domkey: ["secondaryPwd1"], + fieldcol: 14, + label: "密码", + labelcol: 10, + value: "", + otherParams: { + type: "password", + passwordStrength: true + }, + rules: "required|string", + viewAttr: 3 + }, + { + conditionType: "INPUT", + domkey: ["secondaryPwd2"], + fieldcol: 14, + label: "确认密码", + labelcol: 10, + value: "", + otherParams: { + type: "password" + }, + rules: "required|string", + viewAttr: 3 + }, + { + conditionType: "INPUT", + domkey: ["validatecode"], + fieldcol: 14, + label: "验证码", + labelcol: 10, + value: "", + rules: "required|string", + viewAttr: 3 + } + ], + title: "", + defaultshow: true + } +]; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js index 1b598371..a1756ede 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.js +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.js @@ -2,37 +2,31 @@ import React from "react"; import { inject, observer } from "mobx-react"; import { toJS } from "mobx"; import { getQueryString } from "../../util/url"; -import { WeaDialog, WeaError, WeaInput, WeaLocaleProvider } from "ecCom"; -import { Button, message, Modal } from "antd"; +import { WeaLocaleProvider } from "ecCom"; +import { message, Modal } from "antd"; import Authority from "../mySalary/authority"; import "../payroll/templatePreview/index.less"; import * as API from "../../apis/mySalaryBenefits"; import { salaryBillGetToken } from "../../apis/mySalaryBenefits"; import { confirmSalaryBill, feedBackSalaryBill, payrollCheckType } from "../../apis/payroll"; import CaptchaModal from "../../components/captchaModal"; -import PassSetDialog from "./passSetDialog"; import { ConfirmBtns } from "../mySalary/mySalaryView"; import Content from "../../components/pcTemplate/content"; import MobileTemplate from "../../components/mobileTemplate"; +import SecondaryVerify from "./secondaryVerify"; +import LoginVerify from "./loginVerify"; +import SecondarypwdVerify from "./secondarypwdVerify"; import "../mySalary/index.less"; const getLabel = WeaLocaleProvider.getLabel; -@inject("mySalaryStore") -@observer +@inject("mySalaryStore") @observer export default class MobilePayroll extends React.Component { constructor(props) { super(props); this.state = { - pwdSetVisible: false, - visible: false, - captchaVisible: false, - authCode: "", - notSetting: false, - mySalaryBillData: { - employeeInformation: {}, - salaryTemplate: [] - }, + visible: false, captchaVisible: false, loginVisible: false, pwdSetVisible: false, + mySalaryBillData: { employeeInformation: {}, salaryTemplate: [] }, salaryBillToken: {} }; this.id = ""; @@ -60,12 +54,7 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { - this.setState({ visible: true }, () => { - API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) - .then(({ status, notSetting }) => { - this.setState({ notSetting }); - }); - }); + this.setState({ visible: true }); } else { this.getMySalaryBill(getQueryString("id")); setInitEmVerify(); @@ -82,12 +71,7 @@ export default class MobilePayroll extends React.Component { API.isNeedSecondPwdVerify({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) .then(({ status, isNeedSecondAuth }) => { if (status && isNeedSecondAuth) { - this.setState({ visible: true }, () => { - API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.state.salaryBillToken) - .then(({ status, notSetting }) => { - this.setState({ notSetting }); - }); - }); + this.setState({ visible: true }); } else { this.getMySalaryBill(getQueryString("id")); setInitEmVerify(); @@ -96,33 +80,12 @@ export default class MobilePayroll extends React.Component { }); } }; - doSecondAuth = () => { - const { salaryBillToken } = this.state; - const { mySalaryStore: { setInitEmVerify } } = this.props; - if (!this.state.authCode) { - this.refs.weaError.showError(); - return; - } - API.doSecondAuth({ - authCode: this.state.authCode, mouldCode: "HRM", itemCode: "SALARY" - }, salaryBillToken).then(({ status, checkStatus, checkMsg }) => { - if (status && checkStatus === "1") { - message.success(checkMsg); - setInitEmVerify(); - this.setState({ visible: false }); - this.getMySalaryBill(getQueryString("id")); - } else { - message.error(checkMsg); - } - }); - }; getMySalaryBill = (salaryInfoId) => { const { salaryBillToken } = this.state; const { mySalaryStore: { getMySalaryBill } } = this.props; const params = this.getUrlkey(); const payload = { - salaryInfoId, header: salaryBillToken, - ..._.pick(params, ["recipient"]) + salaryInfoId, header: salaryBillToken, ..._.pick(params, ["recipient"]) }; getMySalaryBill(payload).then(result => { this.setState({ @@ -132,10 +95,8 @@ export default class MobilePayroll extends React.Component { }; getUrlkey = () => { let url = window.location.href; - let params = {}, - arr = url.split("?"); - if (arr.length <= 1) - return params; + let params = {}, arr = url.split("?"); + if (arr.length <= 1) return params; arr = arr[1].split("&"); for (var i = 0, l = arr.length; i < l; i++) { var a = arr[i].split("="); @@ -144,14 +105,16 @@ export default class MobilePayroll extends React.Component { return params; }; confirmSalaryBill = () => { - confirmSalaryBill({ salaryInfoId: getQueryString("id") }).then(({ status, errormsg }) => { - if (status) { - message.success(getLabel(30700, "操作成功")); - this.getMySalaryBill(getQueryString("id")); - } else { - message.error(errormsg || getLabel(30651, "操作失败")); - } - }); + const { salaryBillToken } = this.state; + confirmSalaryBill({ salaryInfoId: getQueryString("id"), header: salaryBillToken }) + .then(({ status, errormsg }) => { + if (status) { + message.success(getLabel(30700, "操作成功")); + this.getMySalaryBill(getQueryString("id")); + } else { + message.error(errormsg || getLabel(30651, "操作失败")); + } + }); }; handleGoFeedback = () => { Modal.confirm({ @@ -177,76 +140,61 @@ export default class MobilePayroll extends React.Component { }; render() { - const { mySalaryStore: { clearLoading, pwdForm } } = this.props; - const { mySalaryBillData, visible, captchaVisible, notSetting, pwdSetVisible } = this.state; + const { mySalaryStore: { setInitEmVerify } } = this.props, { + captchaVisible, visible, loginVisible, pwdSetVisible + } = this.state; const type = getQueryString("type"); - if (_.isEmpty(toJS(this.props.mySalaryStore.mySalaryBill))) return - this.setState({ visible: false }, () => clearLoading())} - title="请输入二次验证密码" visible={visible} initLoadCss - className="verifyWrapper" - hasScroll buttons={[ - 确定 - ]} - > - - this.setState({ authCode })}/> - - { - notSetting && - - {getLabel("514970", "您还未设置二次验证密码,点击")} - this.setState({ pwdSetVisible: true })}>{getLabel("30747", "设置")} - - } - - this.setState({ pwdSetVisible: false })}/> - ; + if (_.isEmpty(toJS(this.props.mySalaryStore.mySalaryBill))) return + {visible && this.setState({ visible: false, loginVisible: true })} + onSuccess={() => { + setInitEmVerify(); + this.getMySalaryBill(getQueryString("id")); + }}/>} + {loginVisible && this.setState({ loginVisible: false, pwdSetVisible: true })}/>} + {pwdSetVisible && this.setState({ pwdSetVisible: false }, () => this.initMobile())}/>} + {/*发送验证码*/} + this.setState({ captchaVisible: false })} + onConfirm={() => this.props.mySalaryStore.setInitEmVerify()} + /> + ; const { - salaryTemplate, salaryGroups, employeeInformation, - sendTime, confirmStatus, showAck, showFeedback + salaryTemplate, salaryGroups, employeeInformation, sendTime, confirmStatus, showAck, showFeedback } = toJS(this.props.mySalaryStore.mySalaryBill); const salaryProps = { - theme: salaryTemplate.theme, tip: salaryTemplate.textContent, sendTime, - background: salaryTemplate.background, tipPosi: salaryTemplate.textContentPosition || "", + theme: salaryTemplate.theme, + tip: salaryTemplate.textContent, + sendTime, + background: salaryTemplate.background, + tipPosi: salaryTemplate.textContentPosition || "", itemTypeList: [employeeInformation, ...salaryGroups] }; - return ( - - { - type === "phone" ? - - - - - - : - - - - - - - - } - this.setState({ captchaVisible: false })} - onConfirm={() => this.props.mySalaryStore.setInitEmVerify()} - /> - - ); + return ( + {type === "phone" ? + + + + : + + + + + + } + ); } } diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less index 923d3d82..9fd7d4d6 100644 --- a/pc4mobx/hrmSalary/pages/mobilePayroll/index.less +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/index.less @@ -39,3 +39,132 @@ } } } + +.am-modal-mask { + position: absolute; + top: 0; + right: 0; + left: 0; + bottom: 0; + height: 100%; + z-index: 999; + background-color: rgba(0, 0, 0, .4); +} + +.am-modal-transparent { + width: 80%; +} + +.am-modal-transparent .am-modal-content { + border-radius: 7px; + padding-top: 15px; +} + +.am-modal-content { + position: relative; + background-color: #fff; + border: 0; + background-clip: padding-box; + text-align: center; + height: 100%; + overflow: hidden; +} + +.am-modal-header { + padding: 15px; +} + +.am-modal-title { + margin: 0; + letter-spacing: -.1px; + color: #333; + font-size: 14px; + line-height: 20px; + text-align: center; + height: auto; + max-height: 150px; + overflow-y: auto; +} + +.am-modal-body { + font-size: 14px; + color: #868686; + height: 100%; + line-height: 1.5; + overflow: auto; + padding: 0 15px 30px; + + .wea-search-group, .wea-content, .wea-form-cell { + padding: 0; + } + + .secondarypwd-form { + .wea-form-cell-wrapper { + & > div:last-child { + .ant-col-16 { + width: 37.5% !important; + } + } + } + } +} + +.am-modal-wrap { + position: fixed; + overflow: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; + height: 100%; + z-index: 999; + -webkit-overflow-scrolling: touch; + outline: 0; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -webkit-align-items: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -webkit-justify-content: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-transform: translateZ(1px); + transform: translateZ(1px); +} + +.am-modal-button-group-h { + position: relative; + border-top: 1px solid #ddd; + display: flex; +} + +.am-modal-button-group-h .am-modal-button { + -webkit-touch-callout: none; + flex: 1 1; + box-sizing: border-box; + text-align: center; + text-decoration: none; + outline: none; + color: #55b1f9; + height: 50px; + line-height: 50px; + display: block; + width: auto; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-size: 14px; +} + +.am-modal-button-group-h .am-modal-button:first-child { + color: #333; +} + +.am-modal-button-group-h .am-modal-button:last-child { + position: relative; + border-left: 1px solid #ddd; +} diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js new file mode 100644 index 00000000..90d231ca --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/loginVerify.js @@ -0,0 +1,59 @@ +/* + * 登录密码验证 + * + * @Author: 黎永顺 + * @Date: 2025/4/17 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { WeaForm } from "comsMobx"; +import FormInfo from "../../components/FormInfo"; +import { loginCondition } from "./conditions"; +import MobileModal from "./mobileModal"; +import * as API from "../../apis/mySalaryBenefits"; +import { RSAEcrypt } from "../../util/RSAUtil"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class LoginVerify extends Component { + + componentDidMount() { + form.initFormFields(loginCondition); + } + + componentWillUnmount() { + form.resetForm(); + } + + save = async () => { + form.validateForm().then(f => { + if (f.isValid) { + RSAEcrypt("1", { ...form.getFormParams() }, this.props.salaryBillToken) + .then(RSAParam => { + API.checkPassword({ ...RSAParam }).then(({ result }) => { + if (result) { + this.props.onSetPwdSet(); + } else { + form.showError("password", getLabel(504343, "登录密码错误")); + } + }); + }); + } else { + f.showErrors(); + } + }); + }; + + render() { + const itemRender = {}; + return ( + + ); + } +} + +export default LoginVerify; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js new file mode 100644 index 00000000..b6f388db --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/mobileModal.js @@ -0,0 +1,65 @@ +/* + * 自定义移动端弹框组件 + * + * @Author: 黎永顺 + * @Date: 2025/4/16 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { removeElementById } from "../../util"; +import "./index.less"; + +const getLabel = WeaLocaleProvider.getLabel; + +class MobileModal extends Component { + componentDidMount() { + this.setMetaViewport(); + } + + setMetaViewport = () => { + // 检查是否已存在 viewport meta 标签 + let viewportMeta = document.querySelector("meta[name=\"viewport\"]"); + if (!viewportMeta) { + // 如果不存在,创建一个新的 meta 标签 + viewportMeta = document.createElement("meta"); + viewportMeta.setAttribute("name", "viewport"); + document.head.appendChild(viewportMeta); + } + // 设置或更新 viewport 的 content 属性 + const content = "width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover"; + viewportMeta.setAttribute("content", content); + }; + + render() { + return ( + + + + + + + + {this.props.title} + + {this.props.children} + + + removeElementById("am-modal-container")}>{getLabel(111, "取消")} + {getLabel(111, "确定")} + + + + + + + + ); + } +} + +export default MobileModal; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js new file mode 100644 index 00000000..b5310466 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondaryVerify.js @@ -0,0 +1,82 @@ +/* + * 二次验证密码 + * + * @Author: 黎永顺 + * @Date: 2025/4/16 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import { message } from "antd"; +import FormInfo from "../../components/FormInfo"; +import { secondaryVerifyConditions } from "./conditions"; +import * as API from "../../apis/mySalaryBenefits"; +import MobileModal from "./mobileModal"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class SecondaryVerify extends Component { + constructor(props) { + super(props); + this.state = { notSetting: false }; + } + + componentDidMount() { + API.getSecondAuthForm({ mouldCode: "HRM", itemCode: "SALARY" }, this.props.salaryBillToken) + .then(({ notSetting }) => { + this.setState({ notSetting }); + }); + form.initFormFields(secondaryVerifyConditions); + } + + componentWillUnmount() { + this.setState({ notSetting: false }, () => form.resetForm()); + } + + doSecondAuth = () => { + form.validateForm().then(f => { + if (f.isValid) { + const { salaryBillToken } = this.props; + API.doSecondAuth({ mouldCode: "HRM", itemCode: "SALARY", ...form.getFormParams() }, salaryBillToken) + .then(({ status, checkStatus, checkMsg }) => { + if (status && checkStatus === "1") { + message.success(checkMsg); + this.props.onSuccess(); + } else { + form.showError("authCode", checkMsg); + } + }); + } else { + f.showErrors(); + } + }); + }; + + render() { + const { notSetting } = this.state; + const itemRender = { + authCode: (field, textAreaProps, form, formParams) => { + return ( + + { + notSetting && + + {getLabel(111, "您还未设置二次验证密码,点击")} + {getLabel(111, "设置")} + + } + ); + } + }; + return ( + + ); + } +} + +export default SecondaryVerify; diff --git a/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js new file mode 100644 index 00000000..a8f84027 --- /dev/null +++ b/pc4mobx/hrmSalary/pages/mobilePayroll/secondarypwdVerify.js @@ -0,0 +1,91 @@ +/* + * 二次验证密码设置 + * + * @Author: 黎永顺 + * @Date: 2025/4/17 + * @Wechat: + * @Email: 971387674@qq.com + * @description: +*/ +import React, { Component } from "react"; +import { WeaLocaleProvider } from "ecCom"; +import { message } from "antd"; +import { WeaForm, WeaSwitch } from "comsMobx"; +import FormInfo from "../../components/FormInfo"; +import { secondarypwdCondition } from "./conditions"; +import * as API from "../../apis/mySalaryBenefits"; +import MobileModal from "./mobileModal"; +import { RSAEcrypt } from "../../util/RSAUtil"; + +const form = new WeaForm(); +const getLabel = WeaLocaleProvider.getLabel; + +class SecondarypwdVerify extends Component { + constructor(props) { + super(props); + this.state = { + src: (window.ecologyContentPath || "") + "/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4", + num: 0 + }; + } + + componentDidMount() { + form.initFormFields(secondarypwdCondition); + } + + componentWillUnmount() { + form.resetForm(); + } + + save = async () => { + form.validateForm().then(f => { + if (f.isValid) { + const { secondaryPwd1, secondaryPwd2, validatecode } = form.getFormParams(); + if (secondaryPwd1 !== secondaryPwd2) { + form.showError("secondaryPwd2", getLabel(504376, "密码确认不正确!")); + return; + } + RSAEcrypt("1", { secondaryPwd1, secondaryPwd2 }).then(RSAParam => { + API.saveSecondaryPwd({ ...RSAParam, validatecode }, this.props.salaryBillToken) + .then(({ sign, message: msg }) => { + if (sign === "1") { + message.success(msg); + this.props.onSuccess(); + } else { + form.showError("validatecode", msg); + this.setState({ num: this.state.num + 1 }, () => { + this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); + }); + } + }); + }); + } else { + f.showErrors(); + } + }); + }; + + render() { + const itemRender = { + validatecode: (field, textAreaProps, form, formParams) => { + return ( + + { + this.setState({ num: this.state.num + 1 }, () => { + this.setState({ src: `${window.ecologyContentPath || ""}/weaver/weaver.file.MakeValidateCode?notneedvalidate=1&isView=1&validatetype=0&validatenum=4&seriesnum_=${this.state.num}` }); + }); + }} alt=""/> + ); + } + }; + return ( + + ); + } +} + +export default SecondarypwdVerify; diff --git a/pc4mobx/hrmSalary/pages/mySalary/authority.js b/pc4mobx/hrmSalary/pages/mySalary/authority.js index 00a74712..ec098fc2 100644 --- a/pc4mobx/hrmSalary/pages/mySalary/authority.js +++ b/pc4mobx/hrmSalary/pages/mySalary/authority.js @@ -9,7 +9,6 @@ export default class Authority extends React.Component { render() { const { store } = this.props; const { loading, hasRight } = store; - const style = { position: "absolute", top: "50%", diff --git a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js index 552a7122..df034794 100644 --- a/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js +++ b/pc4mobx/hrmSalary/pages/payroll/payrollGrant/payrollPartTable.js @@ -32,10 +32,10 @@ class PayrollPartTable extends Component { } componentWillReceiveProps(nextProps, nextContext) { - if (nextProps.visible !== this.props.visible) { - nextProps.visible && this.sendRangeList(nextProps); - this.setState({ selectedRowKeys: [] }); - } + if (nextProps.visible !== this.props.visible && nextProps.visible) this.sendRangeList(nextProps); + if (nextProps.visible !== this.props.visible && !nextProps.visible) this.setState({ + selectedRowKeys: [], pageInfo: { current: 1, pageSize: 10, total: 0 } + }); } sendRangeList = (props) => { @@ -52,9 +52,9 @@ class PayrollPartTable extends Component { sendRangeList(payload).then(({ status, data }) => { this.setState({ loading: { ...loading, query: false } }); if (status) { - const { pageNum: current, pageSize, total, columns, list: dataSource } = data; + const { pageNum: current, total, columns, list: dataSource } = data; this.setState({ - pageInfo: { ...pageInfo, current, pageSize, total }, + pageInfo: { ...pageInfo, current, total }, dataSource: _.map(dataSource, it => ({ ...it, includeObj: _.map(it.includeObj, child => child.targetName || child.targetTypeName).join(","), @@ -125,8 +125,7 @@ class PayrollPartTable extends Component { onChange: current => { this.setState({ pageInfo: { ...pageInfo, current } - }, () => { - }); + }, () => this.sendRangeList({ grantType, salarySendId })); } }; const rowSelection = { diff --git a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less index 7eae1948..9a7c033c 100644 --- a/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less +++ b/pc4mobx/hrmSalary/pages/payroll/templatePreview/index.less @@ -173,8 +173,8 @@ .ph-switch { height: 100%; - margin: 0 auto; - text-align: center; + display: flex; + justify-content: center; .active, .phs-btn:hover { background-color: rgba(0, 0, 0, .15); @@ -184,8 +184,9 @@ .phs-btn { height: 50px; min-width: 88px; - line-height: 50px; - display: inline-block; + display: flex; + justify-content: center; + align-items: center; color: #fff; padding: 0 15px; cursor: pointer; diff --git a/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js b/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js index 132a7dbb..6616f55f 100644 --- a/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js +++ b/pc4mobx/hrmSalary/pages/payrollFiles/config/index.js @@ -407,7 +407,7 @@ export const salaryFilesConditions = [ domkey: ["position"], fieldcol: 14, label: "岗位", - lanId: 6086, + lanId: 111, labelcol: 10, value: "", viewAttr: 1 diff --git a/pc4mobx/hrmSalary/util/index.js b/pc4mobx/hrmSalary/util/index.js index 0e2330ac..b8def352 100644 --- a/pc4mobx/hrmSalary/util/index.js +++ b/pc4mobx/hrmSalary/util/index.js @@ -168,3 +168,7 @@ export const getIframeParentHeight = (selector, total, extraHeight) => { } return height; }; +export const removeElementById = (id) => { + const element = document.getElementById(id); + if (element) element.remove(); +};