提交 94f59837 authored 作者: 徐立's avatar 徐立
...@@ -3,7 +3,9 @@ import { uaaRequest } from '@/webPublic/one_stop_public/utils/request'; ...@@ -3,7 +3,9 @@ import { uaaRequest } from '@/webPublic/one_stop_public/utils/request';
export const getHead = (payload, callback) => { export const getHead = (payload, callback) => {
uaaRequest('/DataColumnApi/getHeaderList', payload).then(res => { uaaRequest('/DataColumnApi/getHeaderList', payload).then(res => {
if (!res) return; if (!res) return;
if (callback) callback(res); if (callback) {
callback(res);
}
}); });
}; };
......
import React, { useState, useEffect } from 'react';
import { Form, Button } from 'antd';
import Shell from '@/baseComponent/Shell';
import { ModalInfo } from '@/baseComponent/Modal';
import { addOrEditTableItem, fetchTableData, fetchTableHeader, } from '@/webPublic/Services';
import { preHandle } from '@/webPublic/one_stop_public/utils/myutils';
import { getOneStopConfig } from '@/baseComponent/utils';
import { RenderFormByContent } from '../RenderForm';
// 直接获取的表格数据的字段是明文,找换成base转换后的字段
function getBaseEncodedData(rowData, tableHeader) {
// {name: base52}
const nameBaseMap = tableHeader.reduce((acc, header) => {
return {...acc, [header.name] : header.base52};
}, {});
// 明文字段转换成base后的字段, eg. {process_status: 1} => {JbZWZHoGRsA: 1}
return Object.keys(rowData).reduce((acc, name) => {
const base52 = nameBaseMap[name];
if(!base52) return acc;
return {...acc, [base52]: rowData[name] };
}, {});
}
// 配置页面,配置数据在元数据表格的第一行
// 1. 页面显示通过模板id渲染。
// 2. 页面数据通过元数据表id, 查询和修改。
// templateCode, 页面模板id
// tableId, 元数据列表id
// children, 可以传children,但children不能是数组(不能传属性),children里可以自定义其他组件。
function SingleDataPageInFirstRow(props) {
const { children, form, templateCode: templateCodeFromProps, dataObjId: dataObjIdFromProps, location: {pathname} } = props;
// templateCode 和 dataObjId 可以通过组件属性或者根据路径配置获取
const templateCodeFromPathname = getOneStopConfig(`${pathname}-templateCode`);
const dataObjIdFromPathname = getOneStopConfig(`${pathname}-dataObjId`);
const templateCode = templateCodeFromPathname || templateCodeFromProps;
const dataObjId = dataObjIdFromPathname || dataObjIdFromProps;
if (!templateCode || !dataObjId) {
console.warn("模板code或者元数据表格id为空,templateCode: " + templateCode + ", dataObjId: " + dataObjId);
return null;
}
const [isAdd, setIsAdd] = useState(false);
const [content, setContent] = useState({});
useEffect(
() => {
fetchTableHeader(dataObjId).then(tableHeader => {
if (!tableHeader) return;
fetchTableData({ pageNo: 1, pageSize: 10, isBase: true, dataObjId, query: {} }).then(res => {
const firstRowData = (res && res.rows && res.rows[0]) || {};
setContent(getBaseEncodedData(firstRowData, tableHeader));
setIsAdd(!!(!res || res.errMsg))
});
});
},
[dataObjId]
);
function handleSave() {
const { validateFields } = form;
validateFields((err, values) => {
if (err) return;
// console.log(JSON.stringify(values.JjvkRobXWTE), JSON.stringify(values.JjvkwLqcsyY));
preHandle(values);
// console.log(JSON.stringify(values.JjvkRobXWTE));
addOrEditTableItem({ objId: dataObjId, isAdd, data: values }).then(res => {
if (res) {
ModalInfo('保存成功!');
}
});
});
}
let ClonedChildren;
if (children) {
ClonedChildren = React.cloneElement(React.Children.only(children), {
form,
isAdd,
url: '/DataObjApi/addFormData',
});
}
return (
<Shell styleShell={{ marginTop: 0 }}>
<RenderFormByContent
content={content}
templateCode={templateCode}
form={form}
/>
{ClonedChildren || (
<div style={{ textAlign: 'center', padding: 16 }}>
<Button type="primary" shape="round" ghost onClick={handleSave}>
保存
</Button>
</div>
)}
</Shell>
);
}
export default Form.create()(SingleDataPageInFirstRow);
...@@ -361,28 +361,25 @@ class FormList extends React.Component { ...@@ -361,28 +361,25 @@ class FormList extends React.Component {
const b = nextProps.value||{} const b = nextProps.value||{}
const a = this.props.value||{} const a = this.props.value||{}
if(JSON.stringify(a)!=JSON.stringify(b)){
const params = {
pageNo: 1, if(JSON.stringify(a)!=JSON.stringify(b)){
pageSize: this.props.pageSize||10, const params = {
query: JSON.stringify(this.state.formValues), pageNo: 1,
}; pageSize: this.props.pageSize||10,
this.custom=Base16Encode(JSON.stringify(b)) query: JSON.stringify(this.state.formValues),
};
if(this.state.objId)this.getPage(params) this.columns=nextProps.value.columns
this.custom=Base16Encode(JSON.stringify(b))
if( nextProps.value.getPage){
} this.getPage(params,null,nextProps.value.getPage);
if(this.props.objCode=="1"||this.props.objCode==1){ }else{
const params = { if(this.state.objId)this.getPage(params)
pageNo: 1, }
pageSize: this.props.pageSize||10,
query: JSON.stringify(this.state.formValues),
};
this.columns=nextProps.value.columns
if( nextProps.value.getPage){
this.getPage(params,null,nextProps.value.getPage);
}
} }
const x=nextProps.selects const x=nextProps.selects
const y = this.props.selects const y = this.props.selects
......
...@@ -2,6 +2,7 @@ import React, { Fragment, Component } from 'react'; ...@@ -2,6 +2,7 @@ import React, { Fragment, Component } from 'react';
import styles from './index.less'; import styles from './index.less';
import ButtonDiy from '@/baseComponent/ButtonDiy'; import ButtonDiy from '@/baseComponent/ButtonDiy';
import Shell from '@/baseComponent/Shell'; import Shell from '@/baseComponent/Shell';
import { ModalConfirm } from '@/baseComponent/Modal';
export default class FormatSetting extends Component { export default class FormatSetting extends Component {
...@@ -49,6 +50,14 @@ export default class FormatSetting extends Component { ...@@ -49,6 +50,14 @@ export default class FormatSetting extends Component {
} }
initConfig = () => {
ModalConfirm('您确定初始化打印录取通知书格式吗?',{
onOk: ()=>{
this.props.initConfig();
},
});
};
render() { render() {
const { bgImage, formatSettingObject, saveConfig } = this.props; const { bgImage, formatSettingObject, saveConfig } = this.props;
const configInfo = Object.keys(formatSettingObject); const configInfo = Object.keys(formatSettingObject);
...@@ -56,10 +65,12 @@ export default class FormatSetting extends Component { ...@@ -56,10 +65,12 @@ export default class FormatSetting extends Component {
return <Fragment> return <Fragment>
<Shell styleShell={{marginTop: '0',marginBottom: '20px'}}> <Shell styleShell={{marginTop: '0',marginBottom: '20px'}}>
<div style={{ height: '54px', padding: '12px 0 12px 12px' }}> <div style={{ height: '54px', padding: '12px 0 12px 12px' }}>
<ButtonDiy <ButtonDiy name="保存"
name="保存" className="primary"
className="primary" handleClick={saveConfig}
handleClick={saveConfig} />
<ButtonDiy name={'初始化格式'}
handleClick={this.initConfig}
/> />
</div> </div>
</Shell> </Shell>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论