提交 54e191b2 authored 作者: 钟是志's avatar 钟是志

Merge remote-tracking branch 'origin/master'

......@@ -9,8 +9,8 @@ import { Row, Col ,Input,message} from 'antd'
import TableCom from '../tableCompon'
import {Toast} from 'antd-mobile'
import router from 'umi/router'
import { formulaList } from '../excelInitFuc/functionList';
import IsNewTable from './isNewTable';
export default class ZdyTable extends Component {
constructor(props){
super(props)
......@@ -38,7 +38,19 @@ export default class ZdyTable extends Component {
}
componentDidMount(){
if(!window.functionObj){ // 检查是否注册
/**
* 注册全局函数集
* 动态生成表单配置函数所使用
*/
let functionObj = {}
formulaList.map(item => {
item.children.map(arr=> {
functionObj[arr.callKey] = arr.function
})
})
window.functionObj = functionObj
}
let {
postData, // 数据源
isCg, // 用户点击草稿页面进入
......@@ -378,6 +390,9 @@ export default class ZdyTable extends Component {
const borderStyle={
borderRight:"1px solid gray",borderTop:"1px solid gray",borderLeft:"1px solid gray",borderBottom:"1px solid gray"
}
const borderStyleTwo={ // 处理隐藏组件边框样式问题
borderRight:"1px solid gray",borderLeft:"1px solid gray"
}
const styleDiv=this.props.height?{overflow: "auto", width: "100%" ,height:this.props.height}:{overflow: "auto", width: "100%" }
if(!isReady) return<></>
......@@ -425,12 +440,10 @@ export default class ZdyTable extends Component {
console.log(`第${i}行第${j}列样式配置有误,${e}`)
}
}
return !allhidden && cell.hidden ? "" : <td width={i==0?((cell.content!=null&&cell.content.cwidth!=null?cell.content.cwidth:width) * (cell.col ? cell.col : 1)) :width * (cell.col ? cell.col : 1)} rowSpan={cell.row} colSpan={cell.col} key={j} style={{
overflow: "auto",
textAlign: cell.content&&cell.content.calign?cell.content.calign:"left",
...isBorder?(cell.content.comName=="InputHidden"?{}:borderStyle):{},
...isBorder?(cell.content.comName=="InputHidden"||!cell?.content?.comName?{}:borderStyle):{},
...styles
}} >
......
/**
* 测试新表格
*/
import React, { Component } from 'react'
import TableCom from '../tableCompon/index';
export default class isNewTable extends Component {
render() {
const {
items,
checkAllHidden,
isBorder,
borderStyle,
fatherCode,
index,
datas,
isEdit,
currentFormKey,
init,
get,
obj,
mapData,
form,
sqlData,
defaultValues,
width
} = this.props
return (
<>
{
items.map((row,i)=>{
const allhidden = checkAllHidden(row)
console.log(row,items)
return <div key={i}>
{
row.map((cell,j)=>{ // 每行渲染
let styles={}
if(cell.content&&cell.content.styles){
try{
styles= JSON.parse(cell.content.styles)
}catch (e) {
console.log(`第${i}行第${j}列样式配置有误,${e}`)
}
}
console.log(cell)
return !allhidden && cell.hidden ?
""
:<div // 组件渲染
style = {{
display:'inline-block',
width:i==0?
((cell.content!=null&&cell.content.cwidth!=null?cell.content.cwidth:width) * (cell.col ? cell.col : 1))
:width * (cell.col ? cell.col : 1),
overflow:'auto',
textAlign: cell.content&&cell.content.calign?cell.content.calign:"left",
...isBorder?borderStyle:{},
minWidth:100,
minHeight:32
}}
key ={j}
>
<TableCom
i={i}
j={j}
fatherCode={fatherCode}
index={index}
datas={datas}
uuid={cell.uuid}
isEdit={isEdit}
formKey={currentFormKey}
init={init}
get={get}
json={cell.content}
obj={ obj}
mapData={mapData}
form={form}
sqlData={sqlData}
defaultValues={defaultValues}
/>
</div>
})
}
</div>
})
}
</>
)
}
}
import { isNaN,findIndex,chunk,drop,camelCase,endsWith,pick,words } from 'lodash';
import {
isNaN,
findIndex,
chunk,
drop,
camelCase,
endsWith,
pick,
words,
} from 'lodash';
import moment from 'moment';
import { openToast } from '../location/Notification';
import { showToast } from '../location/Toast';
......@@ -61,6 +70,7 @@ const List = [
name:'兼容合并数组', // 函数代表名
funcName: '将传入2个数组进行合并,返回一个合并后数组', // 函数名字
function: MERGEARRAY, // 当前函数
callKey: 'MERGEARRAY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入合并数组', // 第一个参数代表含义
......@@ -85,6 +95,7 @@ const List = [
name:'兼容拆分数组', // 函数代表名
funcName: '将传入数组按照传入长度进行拆分,返回一个拆分后多维数组', // 函数名字
function: SPLITARRAY, // 当前函数
callKey: 'SPLITARRAY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要拆分数组', // 第一个参数代表含义
......@@ -109,6 +120,7 @@ const List = [
name:'兼容切片数组', // 函数代表名
funcName: '将传入数组按照传入长度进行切片,返回一个切片后数组', // 函数名字
function: REMOVEARRAYDROP, // 当前函数
callKey: 'REMOVEARRAYDROP',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要切片数组', // 第一个参数代表含义
......@@ -140,6 +152,7 @@ const List = [
name:'多维数据数组对象从大到小排序', // 函数代表名
funcName: '检查传入数组中对象,并根据指定数字属性进行从大到小排序', // 函数名字
function: ARRAYSORTONJECT, // 当前函数
callKey: 'ARRAYSORTONJECT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要排序的数组', // 第一个参数代表含义
......@@ -166,6 +179,7 @@ const List = [
name:'多维数据数组对象从小到大排序', // 函数代表名
funcName: '检查传入数组中对象,并根据指定数字属性进行从小到大排序', // 函数名字
function: ARRAYSORTONJECTTWO, // 当前函数
callKey: 'ARRAYSORTONJECTTWO',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要排序的数组', // 第一个参数代表含义
......@@ -192,6 +206,7 @@ const List = [
name:'多维数据对象转为数组', // 函数代表名
funcName: '检查传入对象,并进行转换为数组', // 函数名字
function: OBJECTTOARRY, // 当前函数
callKey: 'OBJECTTOARRY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的对象', // 第一个参数代表含义
......@@ -208,6 +223,7 @@ const List = [
name:'多维数据获取对象指定值', // 函数代表名
funcName: '检查传入对象,获取需要的指定key值', // 函数名字
function: OBJECTGETKEY, // 当前函数
callKey: 'OBJECTGETKEY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要操作的对象', // 第一个参数代表含义
......@@ -231,6 +247,7 @@ const List = [
name:'多维数据子数组排序', // 函数代表名
funcName: '传入多维数组,并对子数组中数值排序进行,非子数组则会跳过', // 函数名字
function: ARRAYMANYSORT, // 当前函数
callKey: 'ARRAYMANYSORT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要排序的多维数组', // 第一个参数代表含义
......@@ -255,6 +272,7 @@ const List = [
name:'多维数据子数组中对象拆分为数组', // 函数代表名
funcName: '传入多维数组,并对子数组中对象进行拆分成数组,非子数组则会跳过', // 函数名字
function: ARRAYSPLITOBJECT, // 当前函数
callKey: 'ARRAYSPLITOBJECT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要拆分的多维数组', // 第一个参数代表含义
......@@ -279,6 +297,7 @@ const List = [
name:'数据库函数子函数', // 函数代表名
funcName: 'sql', // 函数名字
function: sql, // 当前函数
callKey: 'sql',
params: [ // 函数所需要传入值内容 为空为不传值
{
......@@ -302,6 +321,7 @@ const List = [
name:'日期差值计算', // 函数代表名
funcName: '将传入2个时间戳进行计算,返回2者时间戳差值', // 函数名字
function: CONTRASTTIME, // 当前函数
callKey: 'CONTRASTTIME',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入计算时间戳', // 第一个参数代表含义
......@@ -332,6 +352,7 @@ const List = [
name:'日期年月日格式化', // 函数代表名
funcName: '将传入的时间戳格式化为年月日', // 函数名字
function: DATEGETYEAR, // 当前函数
callKey: 'DATEGETYEAR',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要格式化时间戳', // 第一个参数代表含义
......@@ -348,6 +369,7 @@ const List = [
name:'日期月日格式化', // 函数代表名
funcName: '将传入的时间戳格式化为月日', // 函数名字
function: DATAGETMONTH, // 当前函数
callKey: 'DATAGETMONTH',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要格式化时间戳', // 第一个参数代表含义
......@@ -364,6 +386,7 @@ const List = [
name:'日期日格式化', // 函数代表名
funcName: '将传入的时间戳格式化为日', // 函数名字
function: DATAGETDAY, // 当前函数
callKey: 'DATAGETDAY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要格式化时间戳', // 第一个参数代表含义
......@@ -380,6 +403,7 @@ const List = [
name:'日期时间格式化', // 函数代表名
funcName: '将传入的时间戳格式化为时间', // 函数名字
function: DATAGETTIME, // 当前函数
callKey: 'DATAGETTIME',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要格式化时间戳', // 第一个参数代表含义
......@@ -396,6 +420,7 @@ const List = [
name:'日期自定义格式化', // 函数代表名
funcName: '将传入的时间戳按照自定义格式化为时间格式', // 函数名字
function: DATAGETCUSTOM, // 当前函数
callKey: 'DATAGETCUSTOM',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要格式化时间戳', // 第一个参数代表含义
......@@ -426,6 +451,7 @@ const List = [
name:'财务自动求和', // 函数代表名
funcName: '将传入2个数值进行相加,返回相加后总数', // 函数名字
function: AUTOSUMMATION, // 当前函数
callKey: 'AUTOSUMMATION',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入被加值', // 第一个参数代表含义
......@@ -450,6 +476,7 @@ const List = [
name:'财务自动求平均值', // 函数代表名
funcName: '将传入的数字数组集合累加并进行平均值求值', // 函数名字
function: AUTOMEAN, // 当前函数
callKey: 'AUTOMEAN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求平均值的数组集合', // 第一个参数代表含义
......@@ -466,6 +493,7 @@ const List = [
name:'财务自动获取最大值', // 函数代表名
funcName: '将传入的数字数组集合获取最大值', // 函数名字
function: AUTOMAX, // 当前函数
callKey: 'AUTOMAX',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最大值的数组集合', // 第一个参数代表含义
......@@ -482,6 +510,7 @@ const List = [
name:'财务自动获取最小值', // 函数代表名
funcName: '将传入的数字数组集合获取最小值', // 函数名字
function: AUTOMIN, // 当前函数
callKey: 'AUTOMIN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最小值的数组集合', // 第一个参数代表含义
......@@ -505,6 +534,7 @@ const List = [
name:'信息类型判断', // 函数代表名
funcName: '将传入的数据判断类型并返回', // 函数名字
function: TYPEOFDATA, // 当前函数
callKey: 'TYPEOFDATA',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入一个数据,对传入数据进行判断', // 第一个参数代表含义
......@@ -521,6 +551,7 @@ const List = [
name:'信息提示', // 函数代表名
funcName: '将传入的提示内容添加到提示框展示', // 函数名字
function: TOASTMESSAGE, // 当前函数
callKey: 'TOASTMESSAGE',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要提示用户的信息', // 第一个参数代表含义
......@@ -537,6 +568,7 @@ const List = [
name:'信息NaN判断', // 函数代表名
funcName: '将传入的数据是否是NaN', // 函数名字
function: TYPEOFNAN, // 当前函数
callKey: 'TYPEOFNAN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入的需要判断数据', // 第一个参数代表含义
......@@ -560,6 +592,7 @@ const List = [
name:'逻辑判断数组是否存在空数值', // 函数代表名
funcName: '检查传入数组所有值是否存在值,存在控制返回true', // 函数名字
function: LOGICARRAY, // 当前函数
callKey: 'LOGICARRAY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要检查的数组', // 第一个参数代表含义
......@@ -576,6 +609,7 @@ const List = [
name:'逻辑判断文本内容对比', // 函数代表名
funcName: '对比传入的2个字符串是否相同', // 函数名字
function: STRINGISSAME, // 当前函数
callKey: 'STRINGISSAME',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要对比的字符串', // 第一个参数代表含义
......@@ -599,6 +633,7 @@ const List = [
name:'逻辑判断文本对比查询', // 函数代表名
funcName: '对比传入的2个字符串对比,查询后面传入值是否存在于第一个参数中', // 函数名字
function: STRINGISHAVE, // 当前函数
callKey: 'STRINGISHAVE',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要对比的字符串', // 第一个参数代表含义
......@@ -622,6 +657,7 @@ const List = [
name:'逻辑筛选数组指定值', // 函数代表名
funcName: '检查数值是否存在指定值,存在则返回', // 函数名字
function: LOGICARRAYFILTER, // 当前函数
callKey: 'LOGICARRAYFILTER',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要检查的数组', // 第一个参数代表含义
......@@ -652,6 +688,7 @@ const List = [
name:'查找并替换字段', // 函数代表名
funcName: '修改字符串中匹配的第一个字段', // 函数名字
function: FINDSTRRPLACE, // 当前函数
callKey: 'FINDSTRRPLACE',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要查询的字符串', // 第一个参数代表含义
......@@ -682,6 +719,7 @@ const List = [
name:'查找数组内容', // 函数代表名
funcName: '查找出数组中匹配的第一个数值', // 函数名字
function: FINDARRAYNUM, // 当前函数
callKey: 'FINDARRAYNUM',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要查询的数组', // 第一个参数代表含义
......@@ -712,6 +750,7 @@ const List = [
name:'数学自动求和', // 函数代表名
funcName: '将传入2个数值进行相加,返回相加后总数', // 函数名字
function: AUTOSUMMATION, // 当前函数
callKey: 'AUTOSUMMATION',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入被加值', // 第一个参数代表含义
......@@ -736,6 +775,7 @@ const List = [
name:'数学自动求平均值', // 函数代表名
funcName: '将传入的数字数组集合累加并进行平均值求值', // 函数名字
function: AUTOMEAN, // 当前函数
callKey: 'AUTOMEAN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求平均值的数组集合', // 第一个参数代表含义
......@@ -752,6 +792,7 @@ const List = [
name:'数学自动获取最大值', // 函数代表名
funcName: '将传入的数字数组集合获取最大值', // 函数名字
function: AUTOMAX, // 当前函数
callKey: 'AUTOMAX',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最大值的数组集合', // 第一个参数代表含义
......@@ -768,6 +809,7 @@ const List = [
name:'数学自动获取最小值', // 函数代表名
funcName: '将传入的数字数组集合获取最小值', // 函数名字
function: AUTOMIN, // 当前函数
callKey: 'AUTOMIN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最小值的数组集合', // 第一个参数代表含义
......@@ -791,6 +833,7 @@ const List = [
name:'统计数组总值', // 函数代表名
funcName: '将传入的数组值,进行累加返回累加总数,如果存在非数字会跳过计算', // 函数名字
function: ARRAYADDNUM, // 当前函数
callKey: 'ARRAYADDNUM',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要进行累积的数组', // 第一个参数代表含义
......@@ -807,6 +850,7 @@ const List = [
name:'统计数组中对象某一值总数', // 函数代表名
funcName: '将传入的数组值,进行累加返回累加总数,如果存在非数字会跳过计算', // 函数名字
function: ARRAYOBJECTADD, // 当前函数
callKey: 'ARRAYOBJECTADD',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入需要进行累积的数组', // 第一个参数代表含义
......@@ -830,6 +874,7 @@ const List = [
name:'统计用户输入长度', // 函数代表名
funcName: '统计用户总共输入的长度并返回', // 函数名字
function: STRINGLEHGTH, // 当前函数
callKey: 'STRINGLEHGTH',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要统计的内容长度', // 第一个参数代表含义
......@@ -846,6 +891,7 @@ const List = [
name:'统计自动求和', // 函数代表名
funcName: '将传入2个数值进行相加,返回相加后总数', // 函数名字
function: AUTOSUMMATION, // 当前函数
callKey: 'AUTOSUMMATION',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入被加值', // 第一个参数代表含义
......@@ -870,6 +916,7 @@ const List = [
name:'统计自动求平均值', // 函数代表名
funcName: '将传入的数字数组集合累加并进行平均值求值', // 函数名字
function: AUTOMEAN, // 当前函数
callKey: 'AUTOMEAN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求平均值的数组集合', // 第一个参数代表含义
......@@ -886,6 +933,7 @@ const List = [
name:'统计自动获取最大值', // 函数代表名
funcName: '将传入的数字数组集合获取最大值', // 函数名字
function: AUTOMAX, // 当前函数
callKey: 'AUTOMAX',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最大值的数组集合', // 第一个参数代表含义
......@@ -902,6 +950,7 @@ const List = [
name:'统计自动获取最小值', // 函数代表名
funcName: '将传入的数字数组集合获取最小值', // 函数名字
function: AUTOMIN, // 当前函数
callKey: 'AUTOMIN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'传入所有需要求获取最小值的数组集合', // 第一个参数代表含义
......@@ -925,6 +974,7 @@ const List = [
name:'文本HTML标签转译', // 函数代表名
funcName: '将文本域输入的HTML标签转移', // 函数名字
function: TRANSLATIONSTRING, // 当前函数
callKey: 'TRANSLATIONSTRING',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要进行转移的文本输入', // 第一个参数代表含义
......@@ -941,6 +991,7 @@ const List = [
name:'文本HTML标签反向转译', // 函数代表名
funcName: '将文本域输入的已转译HTML标签反向转译', // 函数名字
function: TRANSLATIONSTRINGTWO, // 当前函数
callKey: 'TRANSLATIONSTRINGTWO',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要进行反向转译的文本输入', // 第一个参数代表含义
......@@ -957,6 +1008,7 @@ const List = [
name:'文本数组内容拼接', // 函数代表名
funcName: '将数组内容进行拼接,会跳过拼接对象', // 函数名字
function: TEXTCONCAT, // 当前函数
callKey: 'TEXTCONCAT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要拼接的数组内容', // 第一个参数代表含义
......@@ -973,6 +1025,7 @@ const List = [
name:'文本内容对比', // 函数代表名
funcName: '对比传入的2个字符串是否相同', // 函数名字
function: STRINGISSAME, // 当前函数
callKey: 'STRINGISSAME',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要对比的字符串', // 第一个参数代表含义
......@@ -996,6 +1049,7 @@ const List = [
name:'文本对比查询', // 函数代表名
funcName: '对比传入的2个字符串对比,查询后面传入值是否存在于第一个参数中', // 函数名字
function: STRINGISHAVE, // 当前函数
callKey: 'STRINGISHAVE',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要对比的字符串', // 第一个参数代表含义
......@@ -1019,6 +1073,7 @@ const List = [
name:'文本转换为驼峰写法', // 函数代表名
funcName: '将文本英文转为驼峰写法', // 函数名字
function: STRINGCAMELCASE, // 当前函数
callKey: 'STRINGCAMELCASE',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的字符串', // 第一个参数代表含义
......@@ -1035,6 +1090,7 @@ const List = [
name:'文本校验', // 函数代表名
funcName: '校验传入文本是否按照规定字符结尾', // 函数名字
function: STRINGVERIFY, // 当前函数
callKey: 'STRINGVERIFY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要校验的字符串', // 第一个参数代表含义
......@@ -1057,7 +1113,8 @@ const List = [
{
name: '文本拆分为集合', // 函数代表名
funcName: '拆分字符串内容成数组', // 函数名字
function: STRINGWORDS, // 当前函数
function: STRINGVERIFY, // 当前函数
callKey: 'STRINGVERIFY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要拆分的字段', // 第一个参数代表含义
......@@ -1081,6 +1138,7 @@ const List = [
name:'工程十进制转八进制', // 函数代表名
funcName: '获得十进制参数并转换为八进制返回', // 函数名字
function: TENSCALETOEIGHT, // 当前函数
callKey: 'TENSCALETOEIGHT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1097,6 +1155,7 @@ const List = [
name:'工程十进制转十六进制', // 函数代表名
funcName: '获得十进制参数并转换为十六进制返回', // 函数名字
function: TENSCALETOSIXTEEN, // 当前函数
callKey: 'TENSCALETOSIXTEEN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1113,6 +1172,7 @@ const List = [
name:'工程十进制转二进制', // 函数代表名
funcName: '获得十进制参数并转换为二进制返回', // 函数名字
function: TENSCALETOTWO, // 当前函数
callKey: 'TENSCALETOTWO',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1129,6 +1189,7 @@ const List = [
name:'工程十进制自定义转化', // 函数代表名
funcName: '获得十进制参数并转换为自定义转化返回', // 函数名字
function: TENSCALETOMANY, // 当前函数
callKey: 'TENSCALETOMANY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1152,6 +1213,7 @@ const List = [
name:'工程八进制到十进制转换', // 函数代表名
funcName: '获得八进制参数并转换为十进制返回', // 函数名字
function: EIGHTSCALETOTEN, // 当前函数
callKey: 'EIGHTSCALETOTEN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1168,6 +1230,7 @@ const List = [
name:'工程八进制到十六进制转换', // 函数代表名
funcName: '获得八进制参数并转换为十六进制返回', // 函数名字
function: EIGHTSCALETOSIXTEEN, // 当前函数
callKey: 'EIGHTSCALETOSIXTEEN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1184,6 +1247,7 @@ const List = [
name:'工程八进制到二进制转换', // 函数代表名
funcName: '获得八进制参数并转换为二进制返回', // 函数名字
function: EIGHTSCALETOTWO, // 当前函数
callKey: 'EIGHTSCALETOTWO',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1200,6 +1264,7 @@ const List = [
name:'工程八进制到自定义进制转换', // 函数代表名
funcName: '获得八进制参数并转换为自定义返回', // 函数名字
function: EIGHTSCALETOMANY, // 当前函数
callKey: 'EIGHTSCALETOMANY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1223,6 +1288,7 @@ const List = [
name:'工程十六进制到十进制转换', // 函数代表名
funcName: '获得十六进制参数并转换为十进制返回', // 函数名字
function: SIXTEENSCALETOTEN, // 当前函数
callKey: 'SIXTEENSCALETOTEN',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1239,6 +1305,7 @@ const List = [
name:'工程十六进制到二进制转换', // 函数代表名
funcName: '获得十六进制参数并转换为二进制返回', // 函数名字
function: SIXTEENSCALETOTWO, // 当前函数
callKey: 'SIXTEENSCALETOTWO',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1255,6 +1322,7 @@ const List = [
name:'工程十六进制到八进制转换', // 函数代表名
funcName: '获得十六进制参数并转换为八进制返回', // 函数名字
function: SIXTEENSCALETOEIGHT, // 当前函数
callKey: 'SIXTEENSCALETOEIGHT',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1271,6 +1339,7 @@ const List = [
name:'工程十六进制到自定义进制转换', // 函数代表名
funcName: '获得十六进制参数并转换为自定义返回', // 函数名字
function: SIXTEENSCALETOMANY, // 当前函数
callKey: 'SIXTEENSCALETOMANY',
params: [ // 函数所需要传入值内容 为空为不传值
{
text:'需要转换的数字', // 第一个参数代表含义
......@@ -1412,7 +1481,8 @@ List.map( (item,index) => {
return {
name: arr.name,
funcName: arr.funcName,
function: arr.function
function: arr.function,
callKey: arr.callKey
}
})
})
......
......@@ -145,7 +145,7 @@ export default class ChildForm extends React.Component {
<ZdyTable formConfig={datas} key={r} fatherCode={base52} isEdit={isEdit} index={r} obj={objs[r]} init={objs} isChild={true} get="web" form={form} mapData={mapData} sqlData={sqlData} {...datas} defaultValues={defaultValues} />
{rights.includes("delete") && isEdit ? <Button size="small"
style={{ position: "absolute", right: 0, top: 0 }}
style={{ position: "absolute", right: 10, top: '50%',transform:'translateY(-50%)' }}
type='danger' onClick={this.delete.bind(this, r)}>{deleteName || "删除"}</Button> : ""}
</Col>
......
......@@ -8,7 +8,7 @@
*/
import React from 'react';
import { Tree, Table, Spin } from 'antd';
import FormList from './formList/index';
import FormList from './formList';
import { connect } from 'dva';
export default class TableList extends React.Component {
......@@ -40,9 +40,21 @@ export default class TableList extends React.Component {
}
render() {
return <FormList istableCom={true} showHeader={this.props.showHeader} isHiddenPage={this.props.isHiddenPage!=null?this.props.isHiddenPage:false} loading={this.props.loading} pageSize={this.props.pageSize||10} value={this.state} notShowBack={true} rights={this.props.rights || []} objCode={this.props.objCode} isFormCom={true} sql={this.props.sql} />
return <FormList
istableCom={true}
showHeader={this.props.showHeader}
isHiddenPage={
this.props.isHiddenPage!=null?
this.props.isHiddenPage
:false}
loading={this.props.loading}
pageSize={this.props.pageSize||10}
value={this.state}
notShowBack={true}
rights={this.props.rights || []}
objCode={this.props.objCode}
isFormCom={true}
sql={this.props.sql} />
}
}
......@@ -271,7 +271,6 @@ class FormList extends React.Component {
//渲染值
componentDidMount() {
const { dispatch, isFormCom, isSelect, callback, valueName } = this.props;
window.addEventListener('resize', this.resize);
if(this.props.objCode){
const { dispatch, objCode,sql} = this.props;
......@@ -296,6 +295,7 @@ class FormList extends React.Component {
type: 'DataRight/getUserColumnRight',
payload: { objId: this.state.objId },
callback: data => {
this.setState({ columnRights: data });
this.initColumn();
}
......@@ -504,7 +504,6 @@ class FormList extends React.Component {
if(this.props.objCode&&(this.props.objCode=="1"||this.props.objCode==1)){
if(callPage){
callPage(params,(data)=>{
if(!this.state.isReady){
this.setState({data,isReady:true})
}else{
......@@ -882,7 +881,8 @@ class FormList extends React.Component {
}
let showDiv = document.querySelector('#mobelDiv')?
document.querySelector('#mobelDiv').clientWidth
:1100
:'100%'
const parentMethods = {
handleAdd: this.handleAdd,
handleModalVisible: this.handleModalVisible,
......
......@@ -15,6 +15,13 @@ export default class rollTab extends Component {
}
}
componentDidMount(){
let functionObj = {}
formulaList.map(item => {
item.children.map(arr=> {
functionObj[arr.callKey] = arr.function
})
})
window.functionObj = functionObj
this.setState({
tabList:formulaList
},()=>{
......
......@@ -67,7 +67,7 @@ import { getToken } from '../utils/token';
// import FilePreview from '../filePreview';
function getBase64(value){
return value?base64.encode(new Buffer(value)):null;
}
const codeMessage = {
200: '服务器成功返回请求的数据。',
......@@ -94,11 +94,11 @@ const AgreeItem = MobileCheckbox.AgreeItem;
const errorHandler = error => {
const { response } = error;
if (response && response.status) {
const errorText = codeMessage[response.status] || response.statusText;
message.error(`请求错误${errorText}`)
if (response.status === 401) {
return window.g_app._store.dispatch({
......@@ -195,7 +195,7 @@ export default class tableCom extends Component {
if (key == "") {
continue
}
if (this.excludeKeys.includes(key)) {
continue
}
......@@ -208,7 +208,7 @@ export default class tableCom extends Component {
res = false
break;
}
if (depth == 1 && ((this.props.json.sqlKey==null&&sqlContent == null && json.formula == null&& json.funcs == null) || (sqlContent != null && sqlContent.indexOf(key) == -1)
|| ((json.formula != null && json.formula.indexOf(key) == -1)&&(json.funcs != null && json.funcs.indexOf(key) == -1))
)) {
......@@ -304,7 +304,7 @@ export default class tableCom extends Component {
return <img {...pp}/>
}
}
/**
* 判断传入值是否为JSON文本
*/
......@@ -350,7 +350,7 @@ export default class tableCom extends Component {
count = [];
handleSearch = (selectedKeys, confirm) => {
confirm();
this.setState({ searchText: selectedKeys[0] });
};
......@@ -433,9 +433,9 @@ export default class tableCom extends Component {
if (props.fatherCode) {
if (obj2 != null && obj2[props.fatherCode]) {
childObj2 = obj2[props.fatherCode][props.index];
bb2 = this.equal(this.childObj, childObj2, json, this.state.sqlContent, 1)
}
......@@ -725,7 +725,7 @@ export default class tableCom extends Component {
}
break;
}
......@@ -775,21 +775,21 @@ export default class tableCom extends Component {
reqUrls[url] = { params: params }
isChange = true
}
if (!isChange) {
if (callback) {
const data = reqUrls[url].data
if(json.optionType&&json.optionType=="func"){
const res=callback(data)
if(res!=null&&!(typeof res === "function")){
this.setState({ options: res , selectDis: false },()=>{
if(orgCallback) orgCallback()
});
}
}else if (json.comName == "Button") {
try {
callback(data)
......@@ -839,7 +839,7 @@ export default class tableCom extends Component {
if(getToken()!=null){
params.token=getToken()
}
const requestParams = params
const umiRequest = extend({
errorHandler, // 默认错误处理
......@@ -860,15 +860,15 @@ export default class tableCom extends Component {
this.setState({ reqUrls })
if (callback) {
if(json.optionType&&json.optionType=="func"){
const res=callback(data)
if(res!=null&&!(typeof res === "function")){
this.setState({ options: res , selectDis: false },()=>{
if(orgCallback) orgCallback()
});
}
}else if (json.comName == "Button") {
try {
callback(data)
......@@ -1004,7 +1004,7 @@ export default class tableCom extends Component {
const pp = { sqlKey: Base16Encode(sqlKey), params,allValues: Base16Encode(allValues) }
if(getToken()!=null){
pp.token=getToken()
......@@ -1030,15 +1030,15 @@ export default class tableCom extends Component {
if (callback) {
if(json.optionType&&json.optionType=="func"){
const res=callback(data)
if(res!=null&&!(typeof res === "function")){
this.setState({ options: res , selectDis: false },()=>{
if(orgCallback) orgCallback()
});
}
}else if (json.comName == "Button") {
try {
callback(data)
......@@ -1116,7 +1116,7 @@ export default class tableCom extends Component {
},
)
if (base52) {
if (value != null && value == "norefeshxxxxxxxxxxxxxxxxxxxx") {
......@@ -1131,14 +1131,14 @@ export default class tableCom extends Component {
return value
} else if(json.optionType&&json.optionType=="func"){
if(value!=null&&!(typeof value === "function")){
this.setState({ options: value , selectDis: false },()=>{
if(callback) callback()
});
}
} else if (json.comName == "Echart" || json.comName == "QRCode") {
this.setState({ option: value })
} else {
......@@ -1228,7 +1228,7 @@ export default class tableCom extends Component {
value: options[i][valueName],
});
}
if(!isExist&&vl!=null&&options.length>0){
this.props.form.setFieldsValue({[base52]:null})
}
......@@ -1269,12 +1269,12 @@ export default class tableCom extends Component {
value: options[i][valueName],
});
}
if(!isExist&&vl!=null&&options.length>0){
//console.log("isExist",optionsx,vl,isExist)
this.props.form.setFieldsValue({[base52]:null})
}
this.setState({ options: optionsx, selectDis: false });
},
});
......@@ -1438,11 +1438,11 @@ export default class tableCom extends Component {
if (json.comName == 'Label') {
let uid
if (this.props.fatherCode != null) {
uid=`${this.props.fatherCode}.[${this.props.index}].${this.props.uuid}`
uid=`${this.props.fatherCode}.[${this.props.index}].${this.props.uuid}`
} else {
uid= this.props.uuid
uid= this.props.uuid
}
if (!isEdit) {
return obj[this.props.uuid] || json.initialValue || ""
} else {
......@@ -1450,19 +1450,19 @@ export default class tableCom extends Component {
return <>{this.props.form.getFieldDecorator(uid, {
initialValue: obj[this.props.uuid]||json.initialValue
})(<Input type="hidden" />)}<span style={{ fontWeight: get == 'mobile' ? 'bold' : '', marginRight: get == 'mobile' ? 12 : '' }} {...json.props}>{obj[this.props.uuid]||json.initialValue}</span></>
}else{
return <>{this.props.form.getFieldDecorator(uid, {
initialValue: this.props.form.getFieldValue(uid)||json.initialValue
})(<Input type="hidden" />)}<span style={{ fontWeight: get == 'mobile' ? 'bold' : '', marginRight: get == 'mobile' ? 12 : '' }} {...json.props}>{this.props.form.getFieldValue(uid)}</span></>
}
}
}
......@@ -1582,7 +1582,7 @@ export default class tableCom extends Component {
}
break;
......@@ -1652,11 +1652,11 @@ export default class tableCom extends Component {
var cm;
var required = false;
const bindObj=this.getColumn('c1');
var dataColumn = this.props.fatherCode != null ? (bindObj?{...bindObj,base52: `${this.props.fatherCode}.[${this.props.index}].${bindObj.base52}`}:
{ base52: `${this.props.fatherCode}.[${this.props.index}].${this.props.uuid}` })
: bindObj;
......@@ -1713,7 +1713,7 @@ export default class tableCom extends Component {
// cm = <img src={queryApiActionPath()+obj[dataColumn.base52]} />
// break;
case 'TextArea':
cm = <span style={{ padding: '0 24px' }}>{obj[dataColumn.base52]}</span>;
cm = <span>{obj[dataColumn.base52]}</span>;
break;
case 'Switch':
......@@ -1833,14 +1833,14 @@ export default class tableCom extends Component {
return <img key={index2} style={{ width: 100, height: 100 }} src={queryApiActionPath() + f.path} />
}
// if(get === 'web'){
// return <li key={index2}><FilePreview
// return <li key={index2}><FilePreview
// path={queryApiActionPath() + f.path}
// pathName={f.name}
// /></li>
// }
return <li key={index2}><a target="_blank" key={f.path} href={queryApiActionPath() + f.path}>
{f.name}
</a></li>
})}
</ul>
......@@ -1854,7 +1854,7 @@ export default class tableCom extends Component {
return <img key={index2} style={{ width: 100, height: 100 }} src={queryApiActionPath() + f.filePath} />
}
// if(get === 'web'){
// return <li key={index2}><FilePreview
// return <li key={index2}><FilePreview
// path={queryApiActionPath() + f.path}
// pathName={f.name}
// /></li>
......@@ -1880,7 +1880,7 @@ export default class tableCom extends Component {
}else{
cm = <img src={config.httpServer + obj[dataColumn.base52]} style={{ width: json.width, height: json.height }} />;
}
break;
......@@ -1921,10 +1921,10 @@ export default class tableCom extends Component {
cm = <Button loading={this.props.loading} type="primary" {...ev}/>
}
}
break;
case 'LocationCom':
cm = <span></span>
......@@ -1932,12 +1932,18 @@ export default class tableCom extends Component {
case 'Table':
if (json.objCode == null || json.objCode == "") {
cm = <></>
}
cm = <TableList loading={this.props.loading} showHeader={json.showHeader} isHiddenPage={json.isHiddenPage} pageSize={json.pageSize} value={obj[dataColumn.base52 || this.props.uuid] || {}} objCode={json.objCode} sql={json.filterSql} rights={json.rights} />
cm = <TableList
loading={this.props.loading}
showHeader={json.showHeader}
isHiddenPage={json.isHiddenPage}
pageSize={json.pageSize}
value={obj[dataColumn.base52 || this.props.uuid] || {}}
objCode={json.objCode}
sql={json.filterSql}
rights={json.rights} />
break;
default:
cm = <span>缺乏字段{json.comName}的匹配项</span>
......@@ -1978,8 +1984,8 @@ export default class tableCom extends Component {
cm = <Button loading={this.props.loading} type="primary" {...ev}/>
}
}
break;
case 'TextArea':
if (get === 'mobile') {
......@@ -2236,7 +2242,7 @@ export default class tableCom extends Component {
// arr.removeAttribute('readonly');
// })
// });
})
}
})
......@@ -2387,9 +2393,9 @@ export default class tableCom extends Component {
cm = getFieldDecorator(dataColumn.base52, {
initialValue: iv,
rules: json.vlds && json.vlds.length > 0 ? json.vlds : [{ required: required, message: '请选择起止时间' }],
})(<DatePicker
disabled={disabled}
showTime
})(<DatePicker
disabled={disabled}
showTime
onOpenChange = { get === 'mobile'?() => { // 取消唤起移动端小键盘
setTimeout(() => {
if(document.querySelector('.ant-calendar-input ')){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论