提交 551b5ddf authored 作者: 徐立's avatar 徐立
......@@ -230,6 +230,7 @@ export default class List extends Component {
loading,
noSelectRow: !listConfig.selectRows,
onSelectRow: this.handleSelectRows,
scroll: {x: true},
};
if (!listConfig.paging) {
tableProps.data = { list: data, pagination: false };
......
......@@ -282,6 +282,7 @@ export default class List extends Component {
loading,
noSelectRow: !listConfig.selectRows,
onSelectRow: this.handleSelectRows,
scroll: {x: true},
};
if(!listConfig.paging){
tableProps.data = {list: data, pagination:false};
......
......@@ -6,391 +6,398 @@ import { Tooltip } from 'antd';
import moment from 'moment';
import React from 'react';
const handleSqlModels = (sqlModels, defaultValues) => {
if (typeof sqlModels === 'undefined' || !Array.isArray(sqlModels)) {
return [];
} else {
let res = [];
for (let x of sqlModels) {
let key = x.key;
if (!isJSON(x.cols)) {
let info = x.dataObjModel.columnModels;
for (let item in info) {
let z = info[item];
let oneFields = {
key: key + '_' + z.name,
name: z.title,
dataType: z.type,
required: false,
dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true,
};
oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields);
}
continue;
}
let info = JSON.parse(x.cols); // name, title, type
for (let item in info) {
let z = info[item];
let oneFields = {
key: key + '_' + z.name,
name: z.title,
dataType: z.type,
required: false,
dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true,
};
oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields);
}
}
return res;
}
if (typeof sqlModels === 'undefined' || !Array.isArray(sqlModels)) {
return [];
} else {
let res = [];
for (let x of sqlModels) {
let key = x.key;
if (!isJSON(x.cols)) {
let info = x.dataObjModel.columnModels;
for (let item in info) {
let z = info[item];
let oneFields = {
key: key + '_' + z.name,
name: z.title,
dataType: z.type,
required: false,
dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true,
};
oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields);
}
continue;
}
let info = JSON.parse(x.cols); // name, title, type
for (let item in info) {
let z = info[item];
let oneFields = {
key: key + '_' + z.name,
name: z.title,
dataType: z.type,
required: false,
dataId: item,
comName: date.indexOf(z.type) > -1 ? 'DatePicker' : 'Input',
disabled: true,
};
oneFields.defaultValue = defaultValues[oneFields.key] || '';
res.push(oneFields);
}
}
return res;
}
};
const funcHandleFileds = (source, obj, fieldsColumns) => {
let fileds = [];
for (let item of source) {
for (let info of item) {
let oneFiled = {};
if (info.content) {
let content = info.content;
let fileds = [];
for (let item of source) {
for (let info of item) {
let oneFiled = {};
if (info.content) {
let content = info.content;
oneFiled = {
comName: content.comName,
name: content.label || '',
};
if(content.comName === 'DatePicker'){
if(content.format){
oneFiled.format = content.format;
}
}
if(content.comName === 'PartForm'){
const { childFormKey, columnIds, } = content;
if(childFormKey){
let thisSource = obj[childFormKey].items;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
for (let i = 0; i < thisFields.length; i++) {
if (typeof thisFields[i].c1 !== 'undefined') {
thisFields[i] = {
...fieldsColumns[thisFields[i].c1],
...thisFields[i],
};
}
}
oneFiled.componentProps = {
columnIds,
childFormKey,
thisFields,
};
}
}
if(content.comName === 'RangePicker'){
if(content.format){
oneFiled.format = content.format;
}
}
if (content.comName === 'Description') {
oneFiled.key = content.sqls[1];
}
if(['Radio', 'Select', 'Checkbox'].indexOf(content.comName)> -1){ // 枚举值
if(content.optionType){
oneFiled.optionType = content.optionType;
switch (oneFiled.optionType) {
case 'enum':
if(content.enums){
let options = isJSON(content.enums) ? JSON.parse(content.enums) : [];
options = options.map((x)=>{
return { key: x.value, name: x.label };
});
oneFiled.options = options;
}
break;
case 'reference':
oneFiled.filterSql = content.filterSql;
break;
case 'sql':
oneFiled.sqlKey = content.sqlKey;
oneFiled.labelName = content.labelName;
oneFiled.valueName = content.valueName;
break;
default:
oneFiled.options =[];
break;
}
}
}
if(content.comName === 'ChildForm'){
const { childFormKey, columnIds, } = content;
let thisSource = obj[childFormKey].items;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
for (let i = 0; i < thisFields.length; i++) {
if (typeof thisFields[i].c1 !== 'undefined' && typeof fieldsColumns[thisFields[i].c1] !== 'undefined') {
thisFields[i] = {
...fieldsColumns[thisFields[i].c1],
...thisFields[i],
};
}
}
oneFiled.componentProps = {
columnIds,
childFormKey,
thisFields,
};
}
if(content.comName === 'TableSelect'){
oneFiled.componentProps = {
sqlKey: content.sqlKey,
labelName: content.labelName,
valueName: content.valueName,
isMultiple: content.isMultiple,
};
}
if(content.comName === 'Label'){ // 提示信息显示
if(info.hidden){
continue;
}
oneFiled.key = content.initialValue ? content.initialValue.slice(0, 10) : ' ';
oneFiled.name = ' ';
oneFiled.defaultValue = content.initialValue;
oneFiled.dataType = 'TEXT';
}
for (let j in content.columnIds) {
let oneFields = content.columnIds[j];
oneFiled[j] = oneFields[1];
}
fileds.push(oneFiled);
}
}
}
oneFiled = {
comName: content.comName,
name: content.label || '',
};
if (content.comName === 'DatePicker') {
if (content.format) {
oneFiled.format = content.format;
}
}
if (content.comName === 'PartForm') {
const { childFormKey, columnIds } = content;
if (childFormKey) {
let thisSource = obj[childFormKey].items;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
for (let i = 0; i < thisFields.length; i++) {
if (typeof thisFields[i].c1 !== 'undefined') {
thisFields[i] = {
...fieldsColumns[thisFields[i].c1],
...thisFields[i],
};
}
}
oneFiled.componentProps = {
columnIds,
childFormKey,
thisFields,
};
}
}
if (content.comName === 'RangePicker') {
if (content.format) {
oneFiled.format = content.format;
}
}
if (content.comName === 'Description') {
oneFiled.key = content.sqls[1];
}
if (['Radio', 'Select', 'Checkbox'].indexOf(content.comName) > -1) {
// 枚举值
if (content.optionType) {
oneFiled.optionType = content.optionType;
switch (oneFiled.optionType) {
case 'enum':
if (content.enums) {
let options = isJSON(content.enums) ? JSON.parse(content.enums) : [];
options = options.map((x) => {
return { key: x.value, name: x.label };
});
oneFiled.options = options;
}
break;
case 'reference':
oneFiled.filterSql = content.filterSql;
break;
case 'sql':
oneFiled.sqlKey = content.sqlKey;
oneFiled.labelName = content.labelName;
oneFiled.valueName = content.valueName;
break;
default:
oneFiled.options = [];
break;
}
}
}
if (content.comName === 'ChildForm') {
const { childFormKey, columnIds } = content;
let thisSource = obj[childFormKey].items;
let thisFields = funcHandleFileds(thisSource, obj, fieldsColumns);
for (let i = 0; i < thisFields.length; i++) {
if (
typeof thisFields[i].c1 !== 'undefined' &&
typeof fieldsColumns[thisFields[i].c1] !== 'undefined'
) {
thisFields[i] = {
...fieldsColumns[thisFields[i].c1],
...thisFields[i],
};
}
}
oneFiled.componentProps = {
columnIds,
childFormKey,
thisFields,
};
}
if (content.comName === 'TableSelect') {
oneFiled.componentProps = {
sqlKey: content.sqlKey,
labelName: content.labelName,
valueName: content.valueName,
isMultiple: content.isMultiple,
};
}
if (content.comName === 'Label') {
// 提示信息显示
if (info.hidden) {
continue;
}
oneFiled.key = content.initialValue ? content.initialValue.slice(0, 10) : ' ';
oneFiled.name = ' ';
oneFiled.defaultValue = content.initialValue;
oneFiled.dataType = 'TEXT';
}
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) {
/**
* 如果数据校验不通过直接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),
};
}
}
/** 正式开始 **/
/*** 字段组件类型 ***/
let data = JSON.parse(basicPatternModel.content);
let key = data.init;
let source = data.datas[key].items;
let fileds = funcHandleFileds(source, data.datas, fieldsColumns);
/*** 字段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),
};
}
}
/*** 字段默认值 ***/
let sqlModeData = handleSqlModels(basicPatternModel.sqlModels, basicPatternModel.defaultValues); //Array
let defaultBinds = data.datas[key].defaultBinds;
let defaultKeys = {};
if(defaultBinds){
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 data = JSON.parse(basicPatternModel.content);
let key = data.init;
let source = data.datas[key].items;
let fileds = funcHandleFileds(source, data.datas, fieldsColumns);
/*** 流程表数据 ***/
let tableInfo = {
base52: basicPatternModel.dataObjModels[0].base52,
name: basicPatternModel.dataObjModels[0].name,
defaultValuesId: key,
};
for(let i = 0; i < fileds.length; i++){
let item = fileds[i];
if(item.comName === 'Description'){
if(item.key && !item.defaultValue && basicPatternModel.defaultValues && basicPatternModel.defaultValues[item.key]){
item.defaultValue = basicPatternModel.defaultValues[item.key];
}
for(let x of sqlModeData){
if(x.key === item.key){
item.c1 = x.defaultKey;
fileds[i] = {
...item,
...x,
}
}
}
/*** 字段默认值 ***/
let sqlModeData = handleSqlModels(basicPatternModel.sqlModels, basicPatternModel.defaultValues); //Array
let defaultBinds = data.datas[key].defaultBinds;
let defaultKeys = {};
if (defaultBinds) {
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];
}
}
}
}
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,
};
/*** 流程表数据 ***/
let tableInfo = {
base52: basicPatternModel.dataObjModels[0].base52,
name: basicPatternModel.dataObjModels[0].name,
defaultValuesId: key,
};
for (let i = 0; i < fileds.length; i++) {
let item = fileds[i];
if (item.comName === 'Description') {
if (
item.key &&
!item.defaultValue &&
basicPatternModel.defaultValues &&
basicPatternModel.defaultValues[item.key]
) {
item.defaultValue = basicPatternModel.defaultValues[item.key];
}
for (let x of sqlModeData) {
if (x.key === item.key) {
item.c1 = x.defaultKey;
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 = {}){
const values = {
defaultValues: {
[tableInfo.defaultValuesId]: {},
}
};
const defalutValues = {};
for(let item of addFields){
if(typeof item.defaultValue !== 'undefined'){
values[item.key] = item.defaultValue;
// values[item.onestopDefaultKey] = item.defaultValue;l;l
}
if(typeof item.defaultKey !== 'undefined' && item.defaultKey){
values[item.defaultKey] = item.defaultValue; // 表单渲染需要这个值
defalutValues[item.key] = item.defaultValue;
defalutValues[item.onestopDefaultKey] = item.defaultValue;
}
}
values.defaultValues[tableInfo.defaultValuesId] = defalutValues; //传给后台需要这个值
return values;
export function getDefaultValues(addFields = [], tableInfo = {}) {
const values = {
defaultValues: {
[tableInfo.defaultValuesId]: {},
},
};
const defalutValues = {};
for (let item of addFields) {
if (typeof item.defaultValue !== 'undefined') {
values[item.key] = item.defaultValue;
// values[item.onestopDefaultKey] = item.defaultValue;l;l
}
if (typeof item.defaultKey !== 'undefined' && item.defaultKey) {
values[item.defaultKey] = item.defaultValue; // 表单渲染需要这个值
defalutValues[item.key] = item.defaultValue;
defalutValues[item.onestopDefaultKey] = item.defaultValue;
}
}
values.defaultValues[tableInfo.defaultValuesId] = defalutValues; //传给后台需要这个值
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){
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;
}
};
}
}
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;
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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论