king
2023-03-01 c2580fb8de3bdaabb4179b0ce0fcd2fbac802441
src/tabviews/zshare/actionList/popupbutton/index.jsx
@@ -12,13 +12,13 @@
const SubTabTable = asyncSpinComponent(() => import('@/tabviews/subtabtable'))
const CustomPage = asyncSpinComponent(() => import('@/tabviews/custom'))
const PopView = asyncSpinComponent(() => import('@/tabviews/custom/popview'))
class PopupButton extends Component {
  static propTpyes = {
    BID: PropTypes.string,            // 主表ID
    BData: PropTypes.any,             // 主表数据
    selectedData: PropTypes.any,      // 子表中选择数据
    Tab: PropTypes.any,               // 如果当前元素为标签时,tab为标签信息
    MenuID: PropTypes.string,         // 菜单ID
    btn: PropTypes.object,            // 按钮
    setting: PropTypes.any,           // 页面通用设置
@@ -39,7 +39,7 @@
    const { btn, selectedData, BData } = this.props
    let disabled = false
    if (btn.controlField && selectedData && selectedData.length > 0) { // 表格中按钮隐藏控制
    if (btn.control !== 'parent' && btn.controlField && selectedData && selectedData.length > 0) { // 表格中按钮隐藏控制
      selectedData.forEach(item => {
        let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
        if (s === btn.controlVal || (btn.controlVal && btn.controlVal.split(',').includes(s))) {
@@ -80,7 +80,7 @@
    const { btn, selectedData, BData } = this.props
    let disabled = false
    if (btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
    if (btn.control !== 'parent' && btn.controlField && !is(fromJS(nextProps.selectedData || []), fromJS(selectedData || []))) {
      if (nextProps.selectedData && nextProps.selectedData.length > 0) { // 表格中按钮隐藏控制
        nextProps.selectedData.forEach(item => {
          let s = item[btn.controlField] !== undefined ? item[btn.controlField] + '' : ''
@@ -152,13 +152,13 @@
   * @description 触发按钮操作
   */
  actionTrigger = (triggerId, record, type) => {
    const { setting, Tab, BID, btn, selectedData } = this.props
    const { setting, BID, btn, selectedData } = this.props
    const { loading, disabled } = this.state
    if (loading || disabled) return
    if (triggerId && btn.uuid !== triggerId) return
    if (((Tab && Tab.supMenu) || setting.supModule) && !BID) {
    if (setting.supModule && !BID) {
      notification.warning({
        top: 92,
        message: '需要上级主键值!',
@@ -245,7 +245,7 @@
        ratio = ratio + 'vw'
      }
      return <Modal
        className={'popview-modal ' + (btn.$view === 'CustomPage' ? 'custom-popview' : '')}
        wrapClassName={'popview-modal ' + (!btn.$view ? '' : 'custom-popview')}
        title={btn.label}
        width={ratio}
        maskClosable={btn.clickouter === 'close'}
@@ -256,14 +256,9 @@
        ]}
        destroyOnClose
      >
        {btn.$view !== 'CustomPage' ? <SubTabTable
          Tab={btn}
          MenuID={btn.linkTab}
          SupMenuID={this.props.MenuID}
          BID={popData ? primaryId : this.props.BID}
          BData={popData || this.props.BData}
        /> : null}
        {!btn.$view ? <SubTabTable Tab={btn} MenuID={btn.linkTab} SupMenuID={this.props.MenuID} BID={popData ? primaryId : this.props.BID} BData={popData || this.props.BData}/> : null}
        {btn.$view === 'CustomPage' ? <CustomPage Tab={btn} MenuID={btn.uuid} MenuName={btn.label} param={{$BID: (popData ? primaryId : this.props.BID), ...(popData || this.props.BData || {})}} /> : null}
        {btn.$view === 'popview' ? <PopView Tab={btn} param={{$BID: (popData ? primaryId : this.props.BID), ...(popData || this.props.BData || {})}} /> : null}
      </Modal>
    } else {
      let height = '100vh'
@@ -289,7 +284,7 @@
      return (
        <Drawer
          title={btn.label}
          className={btn.$view === 'CustomPage' ? 'custom-drawer-popview' : 'table-drawer-popview'}
          className={!btn.$view ? 'table-drawer-popview' : 'custom-drawer-popview' }
          width={width}
          height={height}
          maskClosable={btn.clickouter === 'close'}
@@ -298,14 +293,9 @@
          placement={btn.placement || 'right'}
          destroyOnClose
        >
          {btn.$view !== 'CustomPage' ? <SubTabTable
            Tab={btn}
            MenuID={btn.linkTab}
            SupMenuID={this.props.MenuID}
            BID={popData ? primaryId : this.props.BID}
            BData={popData || this.props.BData}
          /> : null}
          {!btn.$view ? <SubTabTable Tab={btn} MenuID={btn.linkTab} SupMenuID={this.props.MenuID} BID={popData ? primaryId : this.props.BID} BData={popData || this.props.BData}/> : null}
          {btn.$view === 'CustomPage' ? <CustomPage Tab={btn} MenuName={btn.label} MenuID={btn.uuid} param={{$BID: (popData ? primaryId : this.props.BID), ...(popData || this.props.BData || {})}} /> : null}
          {btn.$view === 'popview' ? <PopView Tab={btn} param={{$BID: (popData ? primaryId : this.props.BID), ...(popData || this.props.BData || {})}} /> : null}
          <div className="close-drawer">
            <Button onClick={this.popclose}>
              关闭
@@ -358,7 +348,7 @@
          className={className}
          onClick={(e) => {e.stopPropagation(); this.actionTrigger()}}
        >{label}</Button>
        <span onClick={(e) => {e.stopPropagation()}}>{this.getPop()}</span>
        <span onClick={(e) => {e.stopPropagation()}} onDoubleClick={(e) => {e.stopPropagation()}}>{this.getPop()}</span>
      </>
    )
  }