提交 551b5ddf authored 作者: 徐立's avatar 徐立
...@@ -230,6 +230,7 @@ export default class List extends Component { ...@@ -230,6 +230,7 @@ export default class List extends Component {
loading, loading,
noSelectRow: !listConfig.selectRows, noSelectRow: !listConfig.selectRows,
onSelectRow: this.handleSelectRows, onSelectRow: this.handleSelectRows,
scroll: {x: true},
}; };
if (!listConfig.paging) { if (!listConfig.paging) {
tableProps.data = { list: data, pagination: false }; tableProps.data = { list: data, pagination: false };
......
...@@ -282,6 +282,7 @@ export default class List extends Component { ...@@ -282,6 +282,7 @@ export default class List extends Component {
loading, loading,
noSelectRow: !listConfig.selectRows, noSelectRow: !listConfig.selectRows,
onSelectRow: this.handleSelectRows, onSelectRow: this.handleSelectRows,
scroll: {x: true},
}; };
if(!listConfig.paging){ if(!listConfig.paging){
tableProps.data = {list: data, pagination:false}; tableProps.data = {list: data, pagination:false};
......
...@@ -6,391 +6,398 @@ import { Tooltip } from 'antd'; ...@@ -6,391 +6,398 @@ import { Tooltip } from 'antd';
import moment from 'moment'; import moment from 'moment';
import React from 'react'; import React from 'react';
const handleSqlModels = (sqlModels, defaultValues) => { const handleSqlModels = (sqlModels, defaultValues) => {
if (typeof sqlModels === 'undefined' || !Array.isArray(sqlModels)) { if (typeof sqlModels === 'undefined' || !Array.isArray(sqlModels)) {
return []; return [];
} else { } else {
let res = []; let res = [];
for (let x of sqlModels) { for (let x of sqlModels) {
let key = x.key; let key = x.key;
if (!isJSON(x.cols)) { if (!isJSON(x.cols)) {
let info = x.dataObjModel.columnModels; let info = x.dataObjModel.columnModels;
for (let item in info) { for (let item in info) {
let z = info[item]; let z = info[item];
let oneFields = { let oneFields = {
key: key + '_' + z.name, key: key + '_' + z.name,
name: z.title, name: z.title,
dataType: z.type, dataType: z.type,
required: false, required: false,
dataId: item, dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input', comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true, disabled: true,
}; };
oneFields.defaultValue = defaultValues[oneFields.key] || ''; oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields); res.push(oneFields);
} }
continue; continue;
} }
let info = JSON.parse(x.cols); // name, title, type let info = JSON.parse(x.cols); // name, title, type
for (let item in info) { for (let item in info) {
let z = info[item]; let z = info[item];
let oneFields = { let oneFields = {
key: key + '_' + z.name, key: key + '_' + z.name,
name: z.title, name: z.title,
dataType: z.type, dataType: z.type,
required: false, required: false,
dataId: item, dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input', comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true, disabled: true,
}; };
oneFields.defaultValue = defaultValues[oneFields.key] || ''; oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields); res.push(oneFields);
} }
} }
return res; return res;
} }
}; };
const funcHandleFileds = (source, obj, fieldsColumns) => { const funcHandleFileds = (source, obj, fieldsColumns) => {
let fileds = []; let fileds = [];
for (let item of source) { for (let item of source) {
for (let info of item) { for (let info of item) {
let oneFiled = {}; let oneFiled = {};
if (info.content) { if (info.content) {
let content = info.content; let content = info.content;
oneFiled = { oneFiled = {
comName: content.comName, comName: content.comName,
name: content.label || '', name: content.label || '',
}; };
if(content.comName === 'DatePicker'){ if (content.comName === 'DatePicker') {
if(content.format){ if (content.format) {
oneFiled.format = content.format; oneFiled.format = content.format;
} }
} }
if(content.comName === 'PartForm'){ if (content.comName === 'PartForm') {
const { childFormKey, columnIds, } = content; const { childFormKey, columnIds } = content;
if(childFormKey){ if (childFormKey) {
let thisSource = obj[childFormKey].items; let thisSource = obj[childFormKey].items;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns); let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
for (let i = 0; i < thisFields.length; i++) { for (let i = 0; i < thisFields.length; i++) {
if (typeof thisFields[i].c1 !== 'undefined') { if (typeof thisFields[i].c1 !== 'undefined') {
thisFields[i] = { thisFields[i] = {
...fieldsColumns[thisFields[i].c1], ...fieldsColumns[thisFields[i].c1],
...thisFields[i], ...thisFields[i],
}; };
} }
} }
oneFiled.componentProps = { oneFiled.componentProps = {
columnIds, columnIds,
childFormKey, childFormKey,
thisFields, thisFields,
}; };
} }
} }
if(content.comName === 'RangePicker'){ if (content.comName === 'RangePicker') {
if(content.format){ if (content.format) {
oneFiled.format = content.format; oneFiled.format = content.format;
} }
} }
if (content.comName === 'Description') { if (content.comName === 'Description') {
oneFiled.key = content.sqls[1]; oneFiled.key = content.sqls[1];
} }
if(['Radio', 'Select', 'Checkbox'].indexOf(content.comName)> -1){ // 枚举值 if (['Radio', 'Select', 'Checkbox'].indexOf(content.comName) > -1) {
if(content.optionType){ // 枚举值
oneFiled.optionType = content.optionType; if (content.optionType) {
switch (oneFiled.optionType) { oneFiled.optionType = content.optionType;
case 'enum': switch (oneFiled.optionType) {
if(content.enums){ case 'enum':
let options = isJSON(content.enums) ? JSON.parse(content.enums) : []; if (content.enums) {
options = options.map((x)=>{ let options = isJSON(content.enums) ? JSON.parse(content.enums) : [];
return { key: x.value, name: x.label }; options = options.map((x) => {
}); return { key: x.value, name: x.label };
oneFiled.options = options; });
} oneFiled.options = options;
break; }
case 'reference': break;
oneFiled.filterSql = content.filterSql; case 'reference':
break; oneFiled.filterSql = content.filterSql;
case 'sql': break;
oneFiled.sqlKey = content.sqlKey; case 'sql':
oneFiled.labelName = content.labelName; oneFiled.sqlKey = content.sqlKey;
oneFiled.valueName = content.valueName; oneFiled.labelName = content.labelName;
break; oneFiled.valueName = content.valueName;
default: break;
oneFiled.options =[]; default:
break; oneFiled.options = [];
} break;
} }
} }
if(content.comName === 'ChildForm'){ }
const { childFormKey, columnIds, } = content; if (content.comName === 'ChildForm') {
let thisSource = obj[childFormKey].items; const { childFormKey, columnIds } = content;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns); let thisSource = obj[childFormKey].items;
for (let i = 0; i < thisFields.length; i++) { let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
if (typeof thisFields[i].c1 !== 'undefined' && typeof fieldsColumns[thisFields[i].c1] !== 'undefined') { for (let i = 0; i < thisFields.length; i++) {
thisFields[i] = { if (
...fieldsColumns[thisFields[i].c1], typeof thisFields[i].c1 !== 'undefined' &&
...thisFields[i], typeof fieldsColumns[thisFields[i].c1] !== 'undefined'
}; ) {
} thisFields[i] = {
} ...fieldsColumns[thisFields[i].c1],
oneFiled.componentProps = { ...thisFields[i],
columnIds, };
childFormKey, }
thisFields, }
}; oneFiled.componentProps = {
} columnIds,
if(content.comName === 'TableSelect'){ childFormKey,
oneFiled.componentProps = { thisFields,
sqlKey: content.sqlKey, };
labelName: content.labelName, }
valueName: content.valueName, if (content.comName === 'TableSelect') {
isMultiple: content.isMultiple, oneFiled.componentProps = {
}; sqlKey: content.sqlKey,
} labelName: content.labelName,
if(content.comName === 'Label'){ // 提示信息显示 valueName: content.valueName,
if(info.hidden){ isMultiple: content.isMultiple,
continue; };
} }
oneFiled.key = content.initialValue ? content.initialValue.slice(0, 10) : ' '; if (content.comName === 'Label') {
oneFiled.name = ' '; // 提示信息显示
oneFiled.defaultValue = content.initialValue; if (info.hidden) {
oneFiled.dataType = 'TEXT'; continue;
} }
for (let j in content.columnIds) { oneFiled.key = content.initialValue ? content.initialValue.slice(0, 10) : ' ';
let oneFields = content.columnIds[j]; oneFiled.name = ' ';
oneFiled[j] = oneFields[1]; oneFiled.defaultValue = content.initialValue;
} oneFiled.dataType = 'TEXT';
fileds.push(oneFiled); }
} for (let j in content.columnIds) {
} let oneFields = content.columnIds[j];
} oneFiled[j] = oneFields[1];
}
fileds.push(oneFiled);
}
}
}
return fileds;
return fileds;
}; };
export async function destructionGetDetail(response) { export async function destructionGetDetail(response) {
/**
* 如果数据校验不通过直接pass 返回默认值,
* */
if (
typeof response.unifiedServicePatternModel === 'undefined' ||
!isJSON(response.unifiedServicePatternModel.content) ||
!Array.isArray(response.unifiedServicePatternModel.dataObjModels) ||
!response.unifiedServicePatternModel.dataObjModels.length ||
typeof response.unifiedServicePatternModel.dataObjModels[0].columnModels === 'undefined'
) {
return {
addFields: [],
tableInfo: {},
allConfigSetInfo: response,
};
}
const basicPatternModel = response.unifiedServicePatternModel;
/** /** 正式开始 **/
* 如果数据校验不通过直接pass 返回默认值,
* */
if (typeof response.unifiedServicePatternModel === 'undefined' ||
!isJSON(response.unifiedServicePatternModel.content) ||
!Array.isArray(response.unifiedServicePatternModel.dataObjModels) ||
!response.unifiedServicePatternModel.dataObjModels.length ||
typeof response.unifiedServicePatternModel.dataObjModels[0].columnModels === 'undefined'
) {
return {
addFields: [],
tableInfo: {},
allConfigSetInfo: response,
};
}
const basicPatternModel = response.unifiedServicePatternModel;
/** 正式开始 **/
/*** 字段name, dataType ***/
let fieldsColumns = {};
for(let dataObjModels of basicPatternModel.dataObjModels){
let columns = dataObjModels.columnModels;
for (let item of columns) {
fieldsColumns[item.base52] = {
name: item.title,
dataType: item.type,
key: item.base52,
dataId: item.id,
referenceCodeName: item.referenceCodeName,
referenceNameName: item.referenceNameName,
required: Boolean(!item.isNull),
};
}
}
/*** 字段组件类型 ***/ /*** 字段name, dataType ***/
let data = JSON.parse(basicPatternModel.content); let fieldsColumns = {};
let key = data.init; for (let dataObjModels of basicPatternModel.dataObjModels) {
let source = data.datas[key].items; let columns = dataObjModels.columnModels;
let fileds = funcHandleFileds(source, data.datas, fieldsColumns); for (let item of columns) {
fieldsColumns[item.base52] = {
name: item.title,
dataType: item.type,
key: item.base52,
dataId: item.id,
referenceCodeName: item.referenceCodeName,
referenceNameName: item.referenceNameName,
required: Boolean(!item.isNull),
};
}
}
/*** 字段默认值 ***/ /*** 字段组件类型 ***/
let sqlModeData = handleSqlModels(basicPatternModel.sqlModels, basicPatternModel.defaultValues); //Array let data = JSON.parse(basicPatternModel.content);
let defaultBinds = data.datas[key].defaultBinds; let key = data.init;
let defaultKeys = {}; let source = data.datas[key].items;
if(defaultBinds){ let fileds = funcHandleFileds(source, data.datas, fieldsColumns);
for(let item in defaultBinds){
let one = defaultBinds[item];
if(one && one.columnIds && one.sqls){
defaultKeys[one.sqls[1]] = one.columnIds[1];
}
}
}
for(let item of sqlModeData){
if(defaultKeys[item.key]){
item.defaultKey = defaultKeys[item.key];
}
}
/*** 流程表数据 ***/ /*** 字段默认值 ***/
let tableInfo = { let sqlModeData = handleSqlModels(basicPatternModel.sqlModels, basicPatternModel.defaultValues); //Array
base52: basicPatternModel.dataObjModels[0].base52, let defaultBinds = data.datas[key].defaultBinds;
name: basicPatternModel.dataObjModels[0].name, let defaultKeys = {};
defaultValuesId: key, if (defaultBinds) {
}; for (let item in defaultBinds) {
for(let i = 0; i < fileds.length; i++){ let one = defaultBinds[item];
let item = fileds[i]; if (one && one.columnIds && one.sqls) {
if(item.comName === 'Description'){ defaultKeys[one.sqls[1]] = one.columnIds[1];
if(item.key && !item.defaultValue && basicPatternModel.defaultValues && basicPatternModel.defaultValues[item.key]){ }
item.defaultValue = basicPatternModel.defaultValues[item.key]; }
} }
for(let x of sqlModeData){ for (let item of sqlModeData) {
if(x.key === item.key){ if (defaultKeys[item.key]) {
item.c1 = x.defaultKey; item.defaultKey = defaultKeys[item.key];
fileds[i] = { }
...item, }
...x,
}
}
}
} /*** 流程表数据 ***/
} let tableInfo = {
for (let i = 0; i < fileds.length; i++) { base52: basicPatternModel.dataObjModels[0].base52,
name: basicPatternModel.dataObjModels[0].name,
if (typeof fileds[i].c1 !== 'undefined') { defaultValuesId: key,
if(fileds[i].key && fieldsColumns[fileds[i].c1] && fieldsColumns[fileds[i].c1].key && fileds[i].key !== fieldsColumns[fileds[i].c1].key){ };
fileds[i].onestopDefaultKey = fileds[i].key; for (let i = 0; i < fileds.length; i++) {
} let item = fileds[i];
fileds[i] = { if (item.comName === 'Description') {
...fileds[i], if (
...fieldsColumns[fileds[i].c1], item.key &&
}; !item.defaultValue &&
} basicPatternModel.defaultValues &&
} basicPatternModel.defaultValues[item.key]
) {
item.defaultValue = basicPatternModel.defaultValues[item.key];
}
return { for (let x of sqlModeData) {
addFields: await translateAddFields(fileds, tableInfo), if (x.key === item.key) {
tableInfo, item.c1 = x.defaultKey;
allConfigSetInfo: response, fileds[i] = {
}; ...item,
...x,
};
}
}
}
}
for (let i = 0; i < fileds.length; i++) {
if (typeof fileds[i].c1 !== 'undefined') {
if (
fileds[i].key &&
fieldsColumns[fileds[i].c1] &&
fieldsColumns[fileds[i].c1].key &&
fileds[i].key !== fieldsColumns[fileds[i].c1].key
) {
fileds[i].onestopDefaultKey = fileds[i].key;
}
fileds[i] = {
...fileds[i],
...fieldsColumns[fileds[i].c1],
};
}
}
return {
addFields: await translateAddFields(fileds, tableInfo),
tableInfo,
allConfigSetInfo: response,
};
} }
export function getDefaultValues(addFields = [], tableInfo = {}) {
export function getDefaultValues(addFields = [], tableInfo = {}){ const values = {
const values = { defaultValues: {
defaultValues: { [tableInfo.defaultValuesId]: {},
[tableInfo.defaultValuesId]: {}, },
} };
}; const defalutValues = {};
const defalutValues = {}; for (let item of addFields) {
for(let item of addFields){ if (typeof item.defaultValue !== 'undefined') {
if(typeof item.defaultValue !== 'undefined'){ values[item.key] = item.defaultValue;
values[item.key] = item.defaultValue; // values[item.onestopDefaultKey] = item.defaultValue;l;l
// values[item.onestopDefaultKey] = item.defaultValue;l;l }
} if (typeof item.defaultKey !== 'undefined' && item.defaultKey) {
if(typeof item.defaultKey !== 'undefined' && item.defaultKey){ values[item.defaultKey] = item.defaultValue; // 表单渲染需要这个值
values[item.defaultKey] = item.defaultValue; // 表单渲染需要这个值 defalutValues[item.key] = item.defaultValue;
defalutValues[item.key] = item.defaultValue; defalutValues[item.onestopDefaultKey] = item.defaultValue;
defalutValues[item.onestopDefaultKey] = item.defaultValue; }
} }
} values.defaultValues[tableInfo.defaultValuesId] = defalutValues; //传给后台需要这个值
values.defaultValues[tableInfo.defaultValuesId] = defalutValues; //传给后台需要这个值 return values;
return values;
} }
export function handleColumns(columns) {
const columnsLength = columns.length;
for (let item of columns) {
if (item.dataIndex.indexOf('process_status') > -1) {
item.render = (val) => (val ? (val === '0' ? '审核通过' : '审核未通过') : null);
}
if (item.dataType) {
if (text.indexOf(item.dataType) > -1) {
// 文本类型字段
item.render = (text) => {
if (isJSON(text)) {
text = JSON.parse(text);
}
if (item.extendType === 'file' && typeof text === 'string') {
let url = text.includes('http') ? text : config.sqlFormsServer + text;
return (
<a href={url} target={'_blank'}>
点击查看
</a>
);
} else if (typeof text === 'string' && text.length > 50) {
const oldTitle = text;
const newTitle = text.slice(0, 20) + '...';
return (
<Tooltip title={oldTitle} key={oldTitle} style={{ width: 260 }}>
<span key={text}>{newTitle}</span>
</Tooltip>
);
} else if (
item.extendType === 'file' &&
text &&
typeof text === 'object' &&
Array.isArray(text.files) &&
text.files.length
) {
return text.files.map((file, index) => {
let url = file.path.includes('http') ? file.path : config.sqlFormsServer + file.path;
return (
<a href={url} target={'_blank'} key={file.name} style={{ marginRight: '10px' }}>
{file.name}
</a>
);
});
} else {
return text;
}
};
} else if (date.indexOf(item.dataType) > -1) {
// 日期类型字段
item.render = (text, record) => {
if (!isNaN(Number(text)) && Number(text) > 10000000) {
text = Number(text);
return moment(text).format(format[item.dataType]);
} else {
return '';
}
};
} else if (taskNode.indexOf(item.dataType) > -1) {
// 流程节点类型
item.render = (text, record) => {
if (record.isEnd) {
return '已完成';
} else {
return text || record.taskName;
}
};
}
}
export function handleColumns(columns){ if (item.dataIndex === 'rate') {
const columnsLength = columns.length; item.render = (text, record) => {
for (let item of columns) { if (text || text == 0) {
if(item.dataIndex.indexOf("process_status")>-1) { return Number(text) + '%';
item.render = (val) => val ? (val === "0" ? "审核通过" : "审核未通过") : null; } else {
} return '';
if (item.dataType) { }
if (text.indexOf(item.dataType) > -1) { // 文本类型字段 };
item.render = (text) => { }
if(isJSON(text)){ /*if (columnsLength > 10 && item.title && !item.width) {
text = JSON.parse(text); item.width = item.title.length * 30;
} if (item.title === '学号') {
if(item.extendType === 'file' && typeof text === 'string'){ item.width = 140;
let url = text.includes('http') ? text : config.sqlFormsServer + text; }
return <a href={url} target={'_blank'}>点击查看</a>; if (item.title.indexOf('时间') > -1) {
} item.width = 150;
else if (typeof text === 'string' && text.length > 50) { }
const oldTitle = text; }*/
const newTitle = text.slice(0, 20) + '...'; }
return ( return columns;
<Tooltip title={oldTitle} key={oldTitle} style={{ width: 260 }}>
<span key={text}>{newTitle}</span>
</Tooltip>
);
} else if (item.extendType === 'file' && text &&
typeof text === 'object' && Array.isArray(text.files) && text.files.length) {
return text.files.map((file,index)=>{
let url = file.path.includes('http') ?
file.path :
config.sqlFormsServer + file.path;
return <a href={url}
target={'_blank'}
key={file.name}
style={{marginRight: '10px'}}
>
{file.name}
</a>;
});
} else {
return text;
}
};
} else if (date.indexOf(item.dataType) > -1) { // 日期类型字段
item.render = (text, record) => {
if (!isNaN(Number(text)) && Number(text) > 10000000) {
text = Number(text);
return moment(text).format(format[item.dataType]);
}else{
return '';
}
};
} else if (taskNode.indexOf(item.dataType) > -1) { // 流程节点类型
item.render = (text, record) => {
if (record.isEnd) {
return '已完成';
} else {
return text || record.taskName;
}
};
}
}
if (item.dataIndex === 'rate') {
item.render = (text, record) => {
if (text || text == 0) {
return Number(text) + '%';
} else {
return '';
}
};
}
if (columnsLength > 10 && item.title && !item.width) {
item.width = item.title.length * 30;
if (item.title === '学号') {
item.width = 140;
}
if (item.title.indexOf('时间') > -1) {
item.width = 150;
}
}
}
return columns;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论