index.jsx 1.53 KB
Newer Older
wuhao's avatar
wuhao committed
1 2 3 4 5 6 7
import InitForm from '../InitForm';
import { Drawer } from 'antd';
import React, { useState, memo } from 'react';
import DetailPro from '../DetailPro';
import PropTypes from 'prop-types';

function DrawerPro(props) {
TZW's avatar
TZW committed
8
  let pushSettingFlag = props.pushSettingFlag;
wuhao's avatar
wuhao committed
9 10
  let newProps = { ...props };
  delete newProps.children;
TZW's avatar
TZW committed
11
  delete newProps.style;
wuhao's avatar
wuhao committed
12 13 14 15 16 17
  const detailprops = {
    ...newProps,
    detailpath: props.detailpath,
    fields: props.fields,
    detailData: props.detailData,
  };
wuhao's avatar
wuhao committed
18

wuhao's avatar
wuhao committed
19 20 21 22 23 24 25 26 27 28 29
  return (
    <Drawer
      maskClosable={false}
      placement="right"
      closable={true}
      getContainer={false}
      style={{ position: 'absolute', transform: 'translateX(0)', maxWidth: '100%' }}
      width={'100%'}
      destroyOnClose={true}
      {...props}
    >
wuhao's avatar
wuhao committed
30 31 32
      {props.val == 'only' ? (
        props.children
      ) : props.val == 'detail' ? (
wuhao's avatar
wuhao committed
33
        <DetailPro {...detailprops} />
wuhao's avatar
wuhao committed
34 35 36 37 38
      ) : props.val == 'detailaddon' ? (
        <div>
          <DetailPro {...detailprops} />
          {props?.children}
        </div>
wuhao's avatar
wuhao committed
39 40 41
      ) : (
        <InitForm {...newProps} />
      )}
wuhao's avatar
wuhao committed
42

TZW's avatar
TZW committed
43 44 45 46 47 48 49 50 51 52
      {pushSettingFlag ? (
        <a
          id="pushSettingBtn"
          onClick={() => {
            props.checkVariableOpen();
          }}
        >
          查看变量
        </a>
      ) : null}
wuhao's avatar
wuhao committed
53 54 55 56 57 58 59 60 61 62 63 64
    </Drawer>
  );
}

DrawerPro.propTypes = {
  detailpath: PropTypes.string, //详情
  params: PropTypes.object, //详情|表单编辑 参数
  fields: PropTypes.array, //详情列表
  detailData: PropTypes.object, //详情数据
};

export default DrawerPro;