“react“: “^16.14.0“,打开弹窗数据发生变化

"react": "^16.14.0",

弹窗

打开弹窗数据发生变化

cpp 复制代码
// 这里对比changeHistoryVisible是否发生改变调用后端方法改变数据
 componentDidUpdate(prevProps) {
    if (prevProps.changeHistoryVisible !== this.props.changeHistoryVisible && this.props.changeHistoryVisible) {
      this.getStockLogList()
    }
  }

  componentDidMount() {
    this.getStockLogList()
  }
cpp 复制代码
<Modal
                        title={'变更记录'}
                        visible={changeHistoryVisible}
                        onCancel={() => this.changeHistoryCancel()}
                        footer={false}
                        width={800}
                    >
                        <ModelCom changeHistoryVisible={changeHistoryVisible} ref={this.ModelCom} id={id} type={type}></ModelCom>
                    </Modal>
cpp 复制代码
import React, { Component, useEffect } from 'react';
import { connect } from 'dva';
import PropTypes from 'prop-types';
import { Button, Card, Form, Table, message, Modal } from 'antd';
import moment from 'moment';
import { enterStockTypeStatus, orderTypeNewRetail } from '@/utils/enumType'

@connect((RetailGoodsInBound) => ({
  ...RetailGoodsInBound,
}))
// 变更记录弹窗
export default class ModelCom extends Component {
  static propTypes = {
    dispatch: PropTypes.func,
    match: PropTypes.shape,
  }

  static defaultProps = {
    dispatch: PropTypes.dispatch,
    match: PropTypes.match,
  }
  state = {
    // changeHistoryVisible: false,
    loadingLog: false,
    currentObj: {},
    params: {
      currentPage: 1,
      pageSize: 10,
      id: ''
    }
  }

  columns = [
    {
      title: '变更用户',
      dataIndex: 'operatorName',
      key: 'operatorName',
    },
    {
      title: '变更时间',
      dataIndex: 'gmtCreate',
      key: 'gmtCreate',
      render: (text) => <>{text ? moment(text).format('YYYY-MM-DD') : ''}</>
    },
    {
      title: '条码',
      dataIndex: 'oldData',
      key: 'oldData',
    },
    {
      title: '操作',
      dataIndex: 'orderType',
      key: 'orderType',
      render: (text, record) => <><span>{`${orderTypeNewRetail(record.orderType)}${enterStockTypeStatus(record.type)}`}</span></>
  
    },
  ]
  componentDidUpdate(prevProps) {
    if (prevProps.changeHistoryVisible !== this.props.changeHistoryVisible && this.props.changeHistoryVisible) {
      this.getStockLogList()
    }
  }

  componentDidMount() {
    this.getStockLogList()
  }
  columnsFilter() { }

  getStockLogList = () => {
    const { dispatch } = this.props
    this.state.params.id = this.props.id
    const currentObj = {
      type: this.props.type,
      id: this.props.id,
    }
    this.setState({
      currentObj
    })
    this.setState({
      loadingLog: true
    })
    dispatch({
      type: 'RetailGoodsInBound/getGoodsUpdateLog',
      payload: { ...this.state.params },
    }).then(res => {
      if (res.code === 20000) {
        this.setState({
          loadingLog: false
        })
      }
    })
  }
  // 改变每页条数&下一页 上一页
  pageChange = (current, pageSize) => {
    this.state.params.currentPage = current;
    this.state.params.pageSize = pageSize;
    this.getStockLogList();
  };
  render() {
    const { RetailGoodsInBound: { stockLogList } } = this.props;
    const { changeHistoryVisible, loadingLog } = this.state
    return (
      // <Modal
      //   title={'变更记录'}
      //   visible={changeHistoryVisible}
      //   onCancel={() => this.changeHistoryCancel()}
      //   footer={false}
      //   width={800}
      // >
      <div className="contentModel">
        <Table
          rowKey="barCode"
          columns={this.columns}
          dataSource={stockLogList.rows ? stockLogList.rows : []}
          bordered
          loading={loadingLog}
          scroll={{ y: 400 }}
          pagination={{
            showSizeChanger: true,
            showQuickJumper: true,
            current: stockLogList.currentPage, // 当前页
            pageSize: stockLogList.pageSize, // 每页几条
            total: stockLogList.totalCount, // 总共条数
            onShowSizeChange: (current, pageSize) => {
              this.pageChange(current, pageSize);
            },
            onChange: (current, pageSize) => {
              this.pageChange(current, pageSize);
            },
            showTotal: (total) => `共 ${total} 条记录    第
                          ${stockLogList.currentPage ? stockLogList.currentPage : 1}/
                          ${stockLogList.totalPage ? stockLogList.totalPage : 1}页`
          }}
        />
      </div>
      // </Modal>

    )
  }
}
相关推荐
风月说与山鬼1 天前
三、大括号语法
前端·react.js
kyriewen1 天前
我把最常踩的8个CORS跨域报错整理了一遍——第8个去年还不存在
前端·javascript
NeilCarmack1 天前
Deepseek-harness增加桌面版端序列:第 2 讲 · spawn Electron:当前进程如何“交棒“
前端·javascript·electron
এ慕ོ冬℘゜2 天前
使用 jQuery 动态渲染表格与状态切换
前端·javascript·jquery
智购科技自动售货机厂家2 天前
2026自动售货机AI视觉识别优化:从YOLOv11n模型量化到RKNN部署的端侧推理工程实践~YH
javascript·人工智能·yolo·机器学习·计算机视觉·目标跟踪·perl
晓说前端2 天前
TypeScript 核心语法应用 —— Vue 3 中的使用(下)
前端·javascript·typescript·类型系统
lancyu2 天前
# Agent Loop:AI Agent 的唯一直心骨
开发语言·javascript·人工智能
半个落月2 天前
JavaScript 单例模式详解:从唯一实例到按钮事件
javascript
weixin_BYSJ19872 天前
springboot智慧公共交通系统---附源码51123
java·javascript·spring boot·python·django·flask·php