index.jsx 26.8 KB
Newer Older
徐立's avatar
徐立 committed
1 2 3 4 5 6 7
/**
 * 徐立
 * 2019年9月25日
 * 自定义表单表格
 */
import React, { Component } from 'react'
import { Form } from 'antd';
wanyielin's avatar
wanyielin committed
8
import { Row, Col, Input, message } from 'antd'
徐立's avatar
徐立 committed
9
import TableCom from '../tableCompon'
wanyielin's avatar
wanyielin committed
10
import { Toast } from 'antd-mobile'
徐立's avatar
徐立 committed
11
import router from 'umi/router'
徐立's avatar
徐立 committed
12
import IsNewTable from './isNewTable';
徐立's avatar
徐立 committed
13
export default class ZdyTable extends Component {
wanyielin's avatar
wanyielin committed
14
    constructor(props) {
徐立's avatar
徐立 committed
15
        super(props)
钟是志's avatar
钟是志 committed
16

徐立's avatar
徐立 committed
17 18 19 20 21
        this.state = {
            selects: new Map(),
            left: 0,
            top: 0,
            max: 4,
wanyielin's avatar
wanyielin committed
22 23
            formId: null,
            formCode: null,
徐立's avatar
徐立 committed
24
            width: 100,
wanyielin's avatar
wanyielin committed
25 26 27 28 29 30 31 32 33 34 35
            mapData: {},
            defaultBinds: {},
            sqlData: {},
            defaultValues: {},
            currentFormKey: null,
            items: [],
            init: this.props.init || {},
            datas: {},
            isEdit: true,
            isReady: false,
            formConfig: {},
徐立's avatar
徐立 committed
36 37 38 39
        }
    }

    componentDidMount(){
钟是志's avatar
钟是志 committed
40
        let {
wanyielin's avatar
wanyielin committed
41 42 43 44 45 46 47 48 49 50 51
            postData, // 数据源
            isCg, // 用户点击草稿页面进入
            isForm,
            isPreview, // 是否为预览模式
            isChild, // 是否为子表单
            isQRCode = false, // 是否为二维码快捷发起
            formDeafault = '', // 为二维码快捷发起默认值
        } = this.props
        if (isPreview || isChild) {

            this.setState({ ...this.state, ...this.props, isReady: true })
徐立's avatar
徐立 committed
52 53 54 55
            return
        }

        let val = postData
wanyielin's avatar
wanyielin committed
56 57 58 59 60 61
        try {
            /**
 * 数据源不同进行以下区别处理
 * this.props.table有传入值表明需要渲染流程中最新表单
 */
            if (isForm) { // 由表格的操作按钮进入
wtj's avatar
wtj committed
62

wanyielin's avatar
wanyielin committed
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
                const mapData = {};
                const sqlData = {}
                const dataObjs = val.form.dataObjModels;
                for (var i = 0; i < dataObjs.length; i++) {
                    const dob = dataObjs[i];
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
                }
                const sqls = val.form.sqlModels
                for (var i = 0; i < sqls.length; i++) {
                    const dob = sqls[i].dataObjModel;
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
徐立's avatar
徐立 committed
78
                }
wanyielin's avatar
wanyielin committed
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
                const obj = JSON.parse(val.form.content);
                const xxx = obj.datas[obj.init];
                this.setState({
                    datas: obj.datas,
                    width: this.props.table ? obj.datas[val.formKey].width : xxx.width,
                    isBorder: this.props.table ? obj.datas[val.formKey].isBorder : xxx.isBorder,
                    mapData,
                    currentFormKey: this.props.table ? val.formKey : obj.init,
                    sqlData,
                    isEdit: this.props.formKey ? false : true,
                    items: this.props.table ? obj.datas[val.formKey].items : xxx.items,
                    defaultValues: val.form.defaultValues,
                    appId: val.appId,
                    isReady: true,
                    formConfig: xxx
                });
                return
徐立's avatar
徐立 committed
96
            }
wanyielin's avatar
wanyielin committed
97 98 99 100 101 102 103 104 105 106
            if (isCg === 'yes') {// 用户从编辑按钮进入
                if (val.unifiedServicePatternModel.isDefaultError != null && val.unifiedServicePatternModel.isDefaultError) {
                    if (this.props.get == "web") {
                        message.error("当前办理人数较多,服务繁忙,请稍后再试!")
                    } else {
                        Toast.fail("当前办理人数较多,服务繁忙,请稍后再试!")
                    }

                    router.goBack()
                    return;
徐立's avatar
徐立 committed
107
                }
wanyielin's avatar
wanyielin committed
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
                const mapData = {};
                const sqlData = {};
                const sqls = val.unifiedServicePatternModel.sqlModels
                for (var i = 0; i < sqls.length; i++) {
                    const dob = sqls[i].dataObjModel;

                    for (var j = 0; j < dob.columnModels.length; j++) {
                        sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
                }
                const dataObjs = val.unifiedServicePatternModel.dataObjModels;
                for (var i = 0; i < dataObjs.length; i++) {
                    const dob = dataObjs[i];

                    for (var j = 0; j < dob.columnModels.length; j++) {
                        mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
                }
                const obj = JSON.parse(val.unifiedServicePatternModel.content);
                const xxx = obj.datas[obj.init];
                this.setState({
                    items: xxx.items,
                    init: { ...this.state.init, ...JSON.parse(val.content) },
                    datas: obj.datas,
                    isEdit: this.props.formKey ? false : true,
                    currentFormKey: obj.init,
                    width: xxx.width,
                    isBorder: xxx.isBorder,
                    mapData, sqlData,
                    defaultValues: val.unifiedServicePatternModel.defaultValues,
                    appId: val.appId,
                    isReady: true,
                    formConfig: xxx,
                    defaultBinds: this.props.table ? obj.datas[val.taskFormKey].defaultBinds : xxx.defaultBinds,

                });
                return
徐立's avatar
徐立 committed
145
            }
wanyielin's avatar
wanyielin committed
146 147
            if (val.unifiedServicePatternModel.isDefaultError != null && val.unifiedServicePatternModel.isDefaultError) {
                if (this.props.get == "web") {
徐立's avatar
徐立 committed
148
                    message.error("当前办理人数较多,服务繁忙,请稍后再试!")
wanyielin's avatar
wanyielin committed
149
                } else {
徐立's avatar
徐立 committed
150 151
                    Toast.fail("当前办理人数较多,服务繁忙,请稍后再试!")
                }
钟是志's avatar
钟是志 committed
152

徐立's avatar
徐立 committed
153 154 155 156
                router.goBack()
                return;
            }
            const mapData = {};
wanyielin's avatar
wanyielin committed
157
            const sqlData = {};
徐立's avatar
徐立 committed
158 159
            const sqls = val.unifiedServicePatternModel.sqlModels
            for (var i = 0; i < sqls.length; i++) {
wanyielin's avatar
wanyielin committed
160
                const dob = sqls[i].dataObjModel;
徐立's avatar
徐立 committed
161

wanyielin's avatar
wanyielin committed
162 163 164
                for (var j = 0; j < dob.columnModels.length; j++) {
                    sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                }
徐立's avatar
徐立 committed
165 166 167
            }
            const dataObjs = val.unifiedServicePatternModel.dataObjModels;
            for (var i = 0; i < dataObjs.length; i++) {
wanyielin's avatar
wanyielin committed
168
                const dob = dataObjs[i];
徐立's avatar
徐立 committed
169

wanyielin's avatar
wanyielin committed
170 171 172
                for (var j = 0; j < dob.columnModels.length; j++) {
                    mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                }
徐立's avatar
徐立 committed
173 174
            }
            const obj = JSON.parse(val.unifiedServicePatternModel.content);
wanyielin's avatar
wanyielin committed
175
            const xxx = obj.datas[this.props.formKey ? this.props.formKey : obj.init]; // 是否是存在历史表单传入值
徐立's avatar
徐立 committed
176
            this.setState({
wanyielin's avatar
wanyielin committed
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
                appId: val.id,
                formId: val.id,
                formCode: val.code,
                datas: obj.datas,
                mapData, sqlData,
                defaultValues: val.unifiedServicePatternModel.defaultValues,
                isEdit: this.props.formKey ? false : true,
                currentFormKey: this.props.formKey ? this.props.formKey : val.taskFormKey ? val.taskFormKey : obj.init,
                defaultBinds: this.props.table ? obj.datas[val.taskFormKey].defaultBinds : xxx.defaultBinds,
                width: this.props.table ? obj.datas[val.taskFormKey].width : xxx.width,
                isBorder: this.props.table ? obj.datas[val.taskFormKey].isBorder : xxx.isBorder,
                items: this.props.table ? obj.datas[val.taskFormKey].items : xxx.items,
                isReady: true,
                init: { ...this.state.init, ...val.isSecond ? this.props.obj : {} },
                formConfig: xxx
                // init:this.props.get==="mobile"?!!val.content?JSON.parse(val.content):'':{},// 移动端默认值设置
            }, () => {
                /**
                 * 为二维码快捷发起时自动设置新默认值
                 */
                if (isQRCode) {
                    this.props.form.setFieldsValue(formDeafault)
                }
徐立's avatar
徐立 committed
200
            });
wanyielin's avatar
wanyielin committed
201
        } catch (e) {
徐立's avatar
徐立 committed
202 203
            console.log(`公式配置有误`, e)
        }
徐立's avatar
徐立 committed
204
    }
wanyielin's avatar
wanyielin committed
205
    componentWillReceiveProps(nextProps) {
钟是志's avatar
钟是志 committed
206 207
        let {
            postData,// 数据源
徐立's avatar
徐立 committed
208 209 210 211 212
            isCg, // 用户点击草稿页面进入
            isForm,
            isPreview, // 是否为预览模式
            isChild,// 是否为子表单
        } = nextProps
wanyielin's avatar
wanyielin committed
213
        if (isPreview || isChild) {
徐立's avatar
徐立 committed
214

wanyielin's avatar
wanyielin committed
215
            this.setState({ ...this.state, ...this.props, isReady: true })
徐立's avatar
徐立 committed
216 217 218
            return
        }

wanyielin's avatar
wanyielin committed
219
        try {
徐立's avatar
徐立 committed
220 221 222 223 224
            let val = postData
            /**
             * 数据源不同进行以下区别处理
             * this.props.table有传入值表明需要渲染流程中最新表单
             */
wanyielin's avatar
wanyielin committed
225
            if (isForm) { // 由表格的操作按钮进入
徐立's avatar
徐立 committed
226
                const mapData = {};
wanyielin's avatar
wanyielin committed
227
                const sqlData = {}
徐立's avatar
徐立 committed
228 229 230 231 232 233 234 235 236 237 238 239 240
                const dataObjs = val.form.dataObjModels;
                for (var i = 0; i < dataObjs.length; i++) {
                    const dob = dataObjs[i];
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
                }
                const sqls = val.form.sqlModels
                for (var i = 0; i < sqls.length; i++) {
                    const dob = sqls[i].dataObjModel;
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
徐立's avatar
徐立 committed
241
                }
徐立's avatar
徐立 committed
242 243 244
                const obj = JSON.parse(val.form.content);
                const xxx = obj.datas[obj.init];
                this.setState({
wanyielin's avatar
wanyielin committed
245 246 247
                    datas: obj.datas,
                    width: this.props.table ? obj.datas[val.formKey].width : xxx.width,
                    isBorder: this.props.table ? obj.datas[val.formKey].isBorder : xxx.isBorder,
徐立's avatar
徐立 committed
248
                    mapData,
wanyielin's avatar
wanyielin committed
249
                    currentFormKey: this.props.table ? val.formKey : obj.init,
徐立's avatar
徐立 committed
250
                    sqlData,
wanyielin's avatar
wanyielin committed
251 252 253
                    isEdit: this.props.formKey ? false : true,
                    items: this.props.table ? obj.datas[val.formKey].items : xxx.items,
                    defaultValues: val.form.defaultValues,
徐立's avatar
徐立 committed
254
                    appId: val.appId,
wanyielin's avatar
wanyielin committed
255 256
                    isReady: true,
                    formConfig: xxx
徐立's avatar
徐立 committed
257 258
                });
                return
徐立's avatar
徐立 committed
259
            }
wanyielin's avatar
wanyielin committed
260
            if (isCg === 'yes') {// 用户从编辑按钮进入
徐立's avatar
徐立 committed
261
                const mapData = {};
wanyielin's avatar
wanyielin committed
262
                const sqlData = {};
徐立's avatar
徐立 committed
263 264
                const sqls = val.unifiedServicePatternModel.sqlModels
                for (var i = 0; i < sqls.length; i++) {
wanyielin's avatar
wanyielin committed
265
                    const dob = sqls[i].dataObjModel;
wtj's avatar
wtj committed
266

wanyielin's avatar
wanyielin committed
267 268 269
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
徐立's avatar
徐立 committed
270 271 272
                }
                const dataObjs = val.unifiedServicePatternModel.dataObjModels;
                for (var i = 0; i < dataObjs.length; i++) {
wanyielin's avatar
wanyielin committed
273
                    const dob = dataObjs[i];
wtj's avatar
wtj committed
274

wanyielin's avatar
wanyielin committed
275 276 277
                    for (var j = 0; j < dob.columnModels.length; j++) {
                        mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                    }
徐立's avatar
徐立 committed
278
                }
徐立's avatar
徐立 committed
279 280 281
                const obj = JSON.parse(val.unifiedServicePatternModel.content);
                const xxx = obj.datas[obj.init];
                this.setState({
wanyielin's avatar
wanyielin committed
282 283 284 285 286 287 288 289 290 291 292 293
                    items: xxx.items,
                    init: { ...this.state.init, ...JSON.parse(val.content) },
                    datas: obj.datas,
                    isEdit: this.props.formKey ? false : true,
                    currentFormKey: obj.init,
                    width: xxx.width,
                    isBorder: xxx.isBorder,
                    mapData, sqlData, defaultValues: val.unifiedServicePatternModel.defaultValues,
                    appId: val.appId,
                    isReady: true,
                    formConfig: xxx,
                    defaultBinds: this.props.table ? obj.datas[val.taskFormKey].defaultBinds : xxx.defaultBinds,
wtj's avatar
wtj committed
294

徐立's avatar
徐立 committed
295 296
                });
                return
徐立's avatar
徐立 committed
297 298
            }
            const mapData = {};
wanyielin's avatar
wanyielin committed
299
            const sqlData = {};
徐立's avatar
徐立 committed
300 301
            const sqls = val.unifiedServicePatternModel.sqlModels
            for (var i = 0; i < sqls.length; i++) {
wanyielin's avatar
wanyielin committed
302
                const dob = sqls[i].dataObjModel;
wtj's avatar
wtj committed
303

wanyielin's avatar
wanyielin committed
304 305 306
                for (var j = 0; j < dob.columnModels.length; j++) {
                    sqlData[dob.columnModels[j].base52] = dob.columnModels[j];
                }
徐立's avatar
徐立 committed
307 308 309
            }
            const dataObjs = val.unifiedServicePatternModel.dataObjModels;
            for (var i = 0; i < dataObjs.length; i++) {
wanyielin's avatar
wanyielin committed
310
                const dob = dataObjs[i];
wtj's avatar
wtj committed
311

wanyielin's avatar
wanyielin committed
312 313 314
                for (var j = 0; j < dob.columnModels.length; j++) {
                    mapData[dob.columnModels[j].base52] = dob.columnModels[j];
                }
徐立's avatar
徐立 committed
315 316
            }
            const obj = JSON.parse(val.unifiedServicePatternModel.content);
wanyielin's avatar
wanyielin committed
317
            const xxx = obj.datas[this.props.formKey ? this.props.formKey : obj.init]; // 是否是存在历史表单传入值
徐立's avatar
徐立 committed
318
            this.setState({
徐立's avatar
徐立 committed
319
                appId: val.id,
wanyielin's avatar
wanyielin committed
320 321 322 323 324 325 326 327 328 329 330
                datas: obj.datas,
                mapData, sqlData, defaultValues: val.unifiedServicePatternModel.defaultValues,
                isEdit: this.props.formKey ? false : true,
                currentFormKey: this.props.formKey ? this.props.formKey : val.taskFormKey ? val.taskFormKey : obj.init,
                defaultBinds: this.props.table ? obj.datas[val.taskFormKey].defaultBinds : xxx.defaultBinds,
                width: this.props.table ? obj.datas[val.taskFormKey].width : xxx.width,
                isBorder: this.props.table ? obj.datas[val.taskFormKey].isBorder : xxx.isBorder,
                items: this.props.table ? obj.datas[val.taskFormKey].items : xxx.items,
                isReady: true,
                init: { ...this.state.init, ...val.isSecond ? this.props.obj : {} },
                formConfig: xxx
徐立's avatar
徐立 committed
331
                // init:this.props.get==="mobile"?!!val.content?JSON.parse(val.content):'':{},// 移动端默认值设置
徐立's avatar
徐立 committed
332
            });
wanyielin's avatar
wanyielin committed
333
        } catch (e) {
徐立's avatar
徐立 committed
334
            console.log(`公式配置有误`, e)
徐立's avatar
徐立 committed
335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
        }
    }
    checkAllHidden = (row) => {

        for (var i = 0; i < row.length; i++) {
            if (row[i].hidden == null || !row[i].hidden) {
                return false;
            }
        }
        for (var i = 0; i < row.length; i++) {
            delete row[i].hidden
        }
        return true
    }
    countMax = (items) => {
        var max = 0
        items.forEach((r) => {
            if (r.length > max) {
                max = r.length
            }
        })
        return max
    }

    render() {
wanyielin's avatar
wanyielin committed
360
        let { width, isBorder, sqlData, mapData, defaultBinds, defaultValues, items, init, currentFormKey, isEdit, datas, isReady, formConfig, formCode, formId } = this.state
徐立's avatar
徐立 committed
361
        let { border, get, obj, index, fatherCode,routerState } = this.props
wanyielin's avatar
wanyielin committed
362 363 364 365 366 367 368 369
        let style = {}
        if (formConfig.style != null) {
            try {
                style = JSON.parse(formConfig.style)
            } catch (e) {
                console.log(e)
                style = {}
            }
徐立's avatar
徐立 committed
370

wanyielin's avatar
wanyielin committed
371
        }
徐立's avatar
徐立 committed
372 373 374 375 376 377 378 379 380 381 382
        const formItemLayout = {
            labelCol: {
                xs: { span: 24 },
                sm: { span: 5 },
            },
            wrapperCol: {
                xs: { span: 24 },
                sm: { span: 16 },
            },
        };
        const max = this.countMax(items)
wanyielin's avatar
wanyielin committed
383 384
        const borderStyle = {
            borderRight: "1px solid gray", borderTop: "1px solid gray", borderLeft: "1px solid gray", borderBottom: "1px solid gray"
徐立's avatar
徐立 committed
385
        }
wanyielin's avatar
wanyielin committed
386 387
        const borderStyleTwo = { // 处理隐藏组件边框样式问题
            borderRight: "1px solid gray", borderLeft: "1px solid gray"
徐立's avatar
徐立 committed
388
        }
wanyielin's avatar
wanyielin committed
389 390
        const styleDiv = this.props.height ? { overflow: "auto", width: "100%", height: this.props.height } : { overflow: "auto", width: "100%" }
        if (!isReady) return <></>
徐立's avatar
徐立 committed
391 392 393 394
        switch (get) {

            case 'web':
                return (
wtj's avatar
wtj committed
395
                    <Form
徐立's avatar
徐立 committed
396
                        className="login-form" >
wanyielin's avatar
wanyielin committed
397
                        {isEdit && defaultBinds ? Object.keys(defaultBinds).map((k) => {
徐立's avatar
徐立 committed
398 399 400 401 402 403 404 405 406 407 408 409 410 411 412
                            const r = defaultBinds[k]
                            if (r.columnIds == null || r.columnIds.length < 2 || r.sqls == null || r.sqls.length < 2) {
                                return ""
                            }
                            const name = r.columnIds[r.columnIds.length - 1]
                            const key = r.sqls[r.sqls.length - 1]
                            const value = defaultValues[key]

                            if (value == null) {
                                return ""
                            }

                            return this.props.form.getFieldDecorator(name, {
                                initialValue: value

wanyielin's avatar
wanyielin committed
413
                            })(<Input type="hidden" />);
徐立's avatar
徐立 committed
414 415 416 417 418

                        }) : ""}

                        <Row>
                            <Col span={24}>
wtj's avatar
wtj committed
419 420
                                <div
                                    style={styleDiv}
徐立's avatar
徐立 committed
421
                                    ref={ref => { this.root = ref }}
徐立's avatar
徐立 committed
422
                                >
wtj's avatar
wtj committed
423 424 425
                                    <table
                                        style={{
                                            overflow: "auto",
徐立's avatar
徐立 committed
426
                                            margin: max * width > 550 ? "auto" : '',
wanyielin's avatar
wanyielin committed
427 428
                                            ...style
                                        }}
wtj's avatar
wtj committed
429 430
                                        border={border}
                                        cellSpacing="0"
徐立's avatar
徐立 committed
431
                                        cellPadding="0" >
徐立's avatar
徐立 committed
432 433 434 435 436 437
                                        <tbody>
                                            {items.map((row, i) => {
                                                const allhidden = this.checkAllHidden(row)
                                                return <tr key={i}>

                                                    {row.map((cell, j) => {
wanyielin's avatar
wanyielin committed
438 439 440 441 442 443 444
                                                        let styles = {}
                                                        if (cell.content && cell.content.styles) {
                                                            try {
                                                                styles = JSON.parse(cell.content.styles)
                                                            } catch (e) {
                                                                console.log(`第${i}行第${j}列样式配置有误,${e}`)
                                                            }
徐立's avatar
徐立 committed
445
                                                        }
wanyielin's avatar
wanyielin committed
446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482
                                                        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" || !cell?.content?.comName ? {} : borderStyle) : {},
                                                                    ...styles
                                                                }} >

                                                                <TableCom
                                                                    formCode={formCode} // 当前表单code
                                                                    formId={formId} // 当前表单Id
                                                                    i={i}  // 当前组件下标
                                                                    j={j}  // 当前行数下班
                                                                    fatherCode={fatherCode}
                                                                    index={index}
                                                                    fatherObj={this.props.fatherObj}
                                                                    datas={datas}
                                                                    uuid={cell.uuid}
                                                                    isEdit={isEdit}
                                                                    formKey={currentFormKey}
                                                                    init={init}
                                                                    get={get} // 区分移动端或wen端
                                                                    json={cell.content}
                                                                    obj={obj || {}} // 是否存在默认值
                                                                    mapData={mapData}
                                                                    form={this.props.form} // antd form控件
                                                                    sqlData={sqlData}
                                                                    defaultValues={defaultValues || {}} // 接口中的默认值
徐立's avatar
徐立 committed
483
                                                                    routerState={routerState} // 兼容表单设计器路由传参
wanyielin's avatar
wanyielin committed
484 485
                                                                />
                                                            </td>
徐立's avatar
徐立 committed
486 487 488 489
                                                    }
                                                    )


wanyielin's avatar
wanyielin committed
490
                                                    }
钟是志's avatar
钟是志 committed
491

徐立's avatar
徐立 committed
492 493 494 495 496 497
                                                </tr>

                                            })}
                                        </tbody>
                                    </table>

wanyielin's avatar
wanyielin committed
498
                                    {style.pageBreakAfter != null ? <div style={{ pageBreakAfter: style.pageBreakAfter }}></div> : ""}
徐立's avatar
徐立 committed
499 500 501
                                </div>
                            </Col>
                        </Row>
钟是志's avatar
钟是志 committed
502

徐立's avatar
徐立 committed
503 504 505 506 507
                    </Form>
                )
            case 'mobile':
                return (
                    <Form {...formItemLayout} id='mobile_table' className="login-form">
wanyielin's avatar
wanyielin committed
508
                        {defaultBinds ? Object.keys(defaultBinds).map((k) => {
徐立's avatar
徐立 committed
509 510 511 512 513 514 515 516 517 518 519 520 521 522 523
                            const r = defaultBinds[k]
                            if (r.columnIds == null || r.columnIds.length < 2 || r.sqls == null || r.sqls.length < 2) {
                                return ""
                            }
                            const name = r.columnIds[r.columnIds.length - 1]
                            const key = r.sqls[r.sqls.length - 1]
                            const value = defaultValues[key]

                            if (value == null) {
                                return ""
                            }

                            return this.props.form.getFieldDecorator(name, {
                                initialValue: value

wanyielin's avatar
wanyielin committed
524
                            })(<Input type="hidden" />);
徐立's avatar
徐立 committed
525 526 527 528 529

                        }) : ""}
                        {
                            items.map((item, i) => {
                                const allhidden = this.checkAllHidden(items)
wtj's avatar
wtj committed
530
                                return (<div
wanyielin's avatar
wanyielin committed
531 532 533 534 535 536 537 538 539
                                    key={i}
                                    style={{
                                        marginTop: 0,
                                        background: '#ffffff',
                                        paddingLeft: 12,
                                        width: '100%',
                                        flexWrap: 'wrap',
                                        ...style
                                    }}>
徐立's avatar
徐立 committed
540 541
                                    {
                                        item.map((ary, j) => {
wanyielin's avatar
wanyielin committed
542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562
                                            return !allhidden && ary.hidden ? ""
                                                : <><TableCom
                                                    formCode={formCode}
                                                    formId={formId}
                                                    i={i}
                                                    j={j}
                                                    index={index}
                                                    fatherCode={fatherCode}
                                                    datas={datas}
                                                    isEdit={isEdit}
                                                    fatherObj={this.props.fatherObj}
                                                    formKey={currentFormKey}
                                                    init={init}
                                                    get={get}
                                                    key={j}
                                                    sqlData={sqlData}
                                                    obj={obj || {}}
                                                    form={this.props.form}
                                                    mapData={mapData}
                                                    json={ary.content}
                                                    uuid={ary.uuid}
徐立's avatar
徐立 committed
563
                                                    routerState={routerState} // 兼容表单设计器路由传参
wanyielin's avatar
wanyielin committed
564
                                                    defaultValues={defaultValues || {}} /></>
徐立's avatar
徐立 committed
565 566 567 568 569 570 571 572 573 574
                                        })
                                    }
                                </div>)
                            })
                        }
                    </Form>
                )
        }
    }
}