Merge branch 'custom/领悦' into custom/领悦业务线

# Conflicts:
#	pc4mobx/hrmSalary/pages/custom-pages/lingyue/vouncherSummary/index.js
This commit is contained in:
黎永顺 2024-10-12 15:49:49 +08:00
commit 1b8ff1030c
6 changed files with 195 additions and 28 deletions

View File

@ -33,7 +33,7 @@ class GenerateDataDialog extends Component {
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.initLYForm();
if (nextProps.visible !== this.props.visible && !nextProps.visible) nextProps.LYStore.initForm();
if (nextProps.visible !== this.props.visible && !nextProps.visible) nextProps.LYStore.initDataForm();
}
initLYForm = () => {
@ -42,16 +42,16 @@ class GenerateDataDialog extends Component {
...item, items: _.map(item.items, o => ({ ...o, label: getLabel(o.lanId, o.label) }))
}))
}, () => {
const { LYStore: { form } } = this.props;
form.initFormFields(this.state.conditions);
const { LYStore: { dataForm } } = this.props;
dataForm.initFormFields(this.state.conditions);
});
};
save = () => {
const { LYStore: { form }, type, onSearch } = this.props;
form.validateForm().then(f => {
const { LYStore: { dataForm }, type, onSearch } = this.props;
dataForm.validateForm().then(f => {
if (f.isValid) {
this.setState({ loading: true });
const payload = { ...form.getFormParams() };
const payload = { ...dataForm.getFormParams() };
APIFOX[type](payload).then(({ status, errormsg }) => {
this.setState({ loading: false });
if (status) {
@ -69,7 +69,7 @@ class GenerateDataDialog extends Component {
render() {
const { conditions, loading } = this.state;
const { LYStore: { form } } = this.props;
const { LYStore: { dataForm } } = this.props;
return (
<WeaDialog
{...this.props} style={{ width: 480, height: 80 }} initLoadCss title={getLabel(111, "生成数据")}
@ -77,7 +77,7 @@ class GenerateDataDialog extends Component {
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(537558, "保存")}</Button>
]}
>
<div className="form-dialog-layout">{getSearchs(form, conditions, 1, false)}</div>
<div className="form-dialog-layout">{getSearchs(dataForm, conditions, 1, false)}</div>
</WeaDialog>
);
}

View File

@ -113,12 +113,17 @@ class List extends Component {
};
handleOperate = (key) => {
const { payload, selectedRowKeys } = this.state;
const { type } = this.props;
const { type, query, ffgsqcLabel } = this.props;
switch (key) {
case "GENERATE":
this.setState({ visible: true });
break;
case "GENERATEVOUCHER":
const { ffgsqc } = query;
if (!ffgsqc) {
message.warning(getLabel(111, `${ffgsqcLabel}参数不能为空`));
return;
}
this.setState({ voucherDialog: { ...this.state.voucherDialog, visible: true } });
break;
case "EXPORTALL":

View File

@ -0,0 +1,69 @@
/*
* 领悦二开
* 核算账簿-推送弹框
* @Author: 黎永顺
* @Date: 2024/10/10
* @Wechat:
* @Email: 971387674@qq.com
* @description:
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaDialog, WeaLocaleProvider } from "ecCom";
import { Button } from "antd";
import { acctBookConditions } from "./conditions";
import { getSearchs } from "../../../../util";
const getLabel = WeaLocaleProvider.getLabel;
@inject("LYStore")
@observer
class AcctBookDialog extends Component {
constructor(props) {
super(props);
this.state = { conditions: [] };
}
componentWillReceiveProps(nextProps, nextContext) {
if (nextProps.visible !== this.props.visible && nextProps.visible) this.acctBookForm();
if (nextProps.visible !== this.props.visible && !nextProps.visible) nextProps.LYStore.initAcctBookForm();
}
acctBookForm = () => {
this.setState({
conditions: _.map(acctBookConditions, item => ({
...item, items: _.map(item.items, o => ({ ...o, label: getLabel(o.lanId, o.label) }))
}))
}, () => {
const { LYStore: { acctBookForm } } = this.props;
acctBookForm.initFormFields(this.state.conditions);
});
};
save = () => {
const { LYStore: { acctBookForm } } = this.props;
acctBookForm.validateForm().then(f => {
if (f.isValid) {
this.props.onPushNotifications();
} else {
f.showErrors();
}
});
};
render() {
const { conditions } = this.state;
const { LYStore: { acctBookForm }, loading } = this.props;
return (
<WeaDialog
{...this.props} style={{ width: 480, height: 80 }} initLoadCss title={getLabel(111, "凭证推送")}
buttons={[
<Button type="primary" onClick={this.save} loading={loading}>{getLabel(111, "推送")}</Button>
]}
>
<div className="form-dialog-layout">{getSearchs(acctBookForm, conditions, 1, false)}</div>
</WeaDialog>
);
}
}
export default AcctBookDialog;

View File

@ -0,0 +1,54 @@
export const acctBookConditions = [
{
items: [
{
browserConditionParam: {
completeParams: {
type: 161,
fielddbtype: "browser.NCZBBrowser",
f_weaver_belongto_usertype: "0"
},
conditionDataParams: {
type: "browser.NCZBBrowser",
fielddbtype: "browser.NCZBBrowser",
f_weaver_belongto_usertype: "0"
},
dataParams: {
type: "browser.NCZBBrowser",
f_weaver_belongto_usertype: "0"
},
destDataParams: {
type: "browser.NCZBBrowser",
f_weaver_belongto_usertype: "0"
},
hasAddBtn: false,
hasAdvanceSerach: true,
idSeparator: ",",
isAutoComplete: 1,
isDetail: 0,
isMultCheckbox: false,
isSingle: true,
icon: "icon-coms-hrm",
linkUrl: "",
pageSize: 10,
quickSearchName: "zbmc",
replaceDatas: [],
title: "",
type: "161",
viewAttr: 3
},
conditionType: "BROWSER",
domkey: ["zbbm"],
fieldcol: 16,
label: "核算账簿",
lanId: 111,
labelcol: 6,
rules: "required|string",
value: "",
viewAttr: 3
}
],
title: "",
defaultshow: true
}
];

View File

@ -8,20 +8,23 @@
* @description:
*/
import React, { Component } from "react";
import { inject, observer } from "mobx-react";
import { WeaLoadingGlobal, WeaLocaleProvider, WeaTableEdit, WeaTop } from "ecCom";
import { Button, message } from "antd";
import * as API from "../../../../apis/custom-apis/lingyue";
import { getQueryString, getURLParameters } from "../../../../util/url";
import CustomBrowser from "../../../../components/CustomBrowser";
import AcctBookDialog from "./acctBookDialog";
const getLabel = WeaLocaleProvider.getLabel;
const pzlxEnum = ["0", "1", "2"];//非计提类型的凭证列表可编辑
@inject("LYStore")
@observer
class Index extends Component {
constructor(props) {
super(props);
this.state = {
datas: [], totalData: [], columns: [], loading: false
datas: [], totalData: [], columns: [], loading: false, visible: false
};
}
@ -68,6 +71,7 @@ class Index extends Component {
rowKey: "bh", columns: [
{ title: getLabel(111, "名称"), dataIndex: "mc" },
{ title: getLabel(111, "辅助核算类型"), dataIndex: "fzhslx" },
{ title: getLabel(111, "辅助核算类型编号"), dataIndex: "fzhslxbh" },
{ title: getLabel(111, "编号"), dataIndex: "bh" }
]
},
@ -78,11 +82,13 @@ class Index extends Component {
}
}}
value={value}
onChange={(value) => {
onEdit({
record: { ...record, [col["column"]]: value }, index, key: "custom", value
});
}}
onCustomChange={(value) => onEdit({
record: {
...record, [`${col["column"]}Obj`]: _.values(value),
[col["column"]]: _.map(_.values(value), o => o.bh).join(",")
},
index, key: "custom", value: _.map(_.values(value), o => o.bh).join(",")
})}
/>;
}
}
@ -95,25 +101,52 @@ class Index extends Component {
});
};
pushNotifications = () => {
const { datas } = this.state;
const { datas } = this.state, { LYStore: { acctBookForm } } = this.props;
const payload = {
...getURLParameters(window.location.hash),
...getURLParameters(window.location.hash), ...acctBookForm.getFormParams(),
ffgsqc: decodeURI(getURLParameters(window.location.hash).ffgsqc),
dataSource: _.head(datas).dataSource,
details: _.map(datas, o => ({
zy: o.zy, kjkm: o.kjkm, jfValue: o.jfValue, dfValue: o.dfValue,
fzhsXmqs: !o.fzhsXmqs ? "" : _.isString(o.fzhsXmqs) ? o.fzhsXmqs : o.fzhsXmqs.bh,
fzhsFwlb: !o.fzhsFwlb ? "" : _.isString(o.fzhsFwlb) ? o.fzhsFwlb : o.fzhsFwlb.bh,
fzhsSllb: !o.fzhsSllb ? "" : _.isString(o.fzhsSllb) ? o.fzhsSllb : o.fzhsSllb.bh,
fzhsKs: !o.fzhsKs ? "" : _.isString(o.fzhsKs) ? o.fzhsKs : o.fzhsKs.bh,
fzhsOtherBmList: !o.fzhsOther ? [] : _.isString(o.fzhsOther) ? o.fzhsOther.split(",") : _.map(o.fzhsOther, o => (o.bh))
fzhsXmqs: !o.fzhsXmqs ? {} : _.isString(o.fzhsXmqs) ? {
bh: o.fzhsXmqsObj[0].bh,
fzhslxbh: o.fzhsXmqsObj[0].fzhslxbh
} : {
bh: o.fzhsXmqs.bh,
fzhslxbh: o.fzhsXmqs.fzhslxbh
},
fzhsFwlb: !o.fzhsFwlb ? {} : _.isString(o.fzhsFwlb) ? {
bh: o.fzhsFwlbObj[0].bh,
fzhslxbh: o.fzhsFwlbObj[0].fzhslxbh
} : {
bh: o.fzhsFwlb.bh,
fzhslxbh: o.fzhsFwlb.fzhslxbh
},
fzhsSllb: !o.fzhsSllb ? {} : _.isString(o.fzhsSllb) ? {
bh: o.fzhsSllbObj[0].bh,
fzhslxbh: o.fzhsSllbObj[0].fzhslxbh
} : {
bh: o.fzhsSllb.bh,
fzhslxbh: o.fzhsSllb.fzhslxbh
},
fzhsKs: !o.fzhsKs ? {} : _.isString(o.fzhsKs) ? {
bh: o.fzhsKsObj[0].bh,
fzhslxbh: o.fzhsKsObj[0].fzhslxbh
} : {
bh: o.fzhsKs.bh,
fzhslxbh: o.fzhsKs.fzhslxbh
},
fzhsOtherBmList: !o.fzhsOther ? [] : _.isString(o.fzhsOther) ? _.map(o.fzhsOtherObj, k => ({
bh: k.bh, fzhslxbh: k.fzhslxbh
})) : _.map(o.fzhsOther, o => (o.bh))
}))
};
this.setState({ loading: true });
API.pushUCAndSave(payload).then(({ status, errormsg }) => {
API.pushUCAndSave(payload).then(({ status, data, errormsg }) => {
this.setState({ loading: false });
if (status) {
message.success(getLabel(111, "操作成功!"));
data.status ? message.success(data.errMsg) : message.error(data.errMsg);
this.setState({ visible: false });
setTimeout(() => window.close(), 1500);
} else {
message.error(errormsg);
@ -122,14 +155,14 @@ class Index extends Component {
};
render() {
const { datas, columns, loading, totalData } = this.state;
const { datas, columns, loading, totalData, visible } = this.state;
const pzlx = getQueryString("pzlx");
return (
<WeaTop
title={getLabel(111, "凭证预览汇总表")} icon={<i className="icon-coms-fa"/>} showDropIcon={false}
iconBgcolor="#F14A2D" className="custom_vouchers_lingyue"
buttons={[<Button type="primary" loading={loading} disabled={_.isEmpty(datas)}
onClick={this.pushNotifications}>{getLabel(111, "推送")}</Button>]}>
buttons={[<Button type="primary" disabled={_.isEmpty(datas)}
onClick={() => this.setState({ visible: true })}>{getLabel(111, "推送")}</Button>]}>
<div className="vouchers-body">
<WeaTableEdit
ref={el => this.tableEdit = el} showCopy={false} deleteConfirm
@ -149,6 +182,8 @@ class Index extends Component {
datas={totalData} tableProps={{ showHeader: false }}
columns={_.map(columns, o => ({ ...o, com: [{ key: o.column, type: "TEXT" }] }))}/>
</div>
<AcctBookDialog visible={visible} loading={loading} onPushNotifications={this.pushNotifications}
onCancel={() => this.setState({ visible: false })}/>
</div>
</WeaTop>
);

View File

@ -4,4 +4,8 @@ import { WeaForm } from "comsMobx";
export class LYStore {
@observable form = new WeaForm();
@action initForm = () => this.form = new WeaForm();
@observable dataForm = new WeaForm();//生成数据form
@action initDataForm = () => this.dataForm = new WeaForm();
@observable acctBookForm = new WeaForm(); //推送核算账簿form
@action initAcctBookForm = () => this.acctBookForm = new WeaForm();//重置推送核算账簿form
}