“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>

    )
  }
}
相关推荐
待磨的钝刨几秒前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
前端青山5 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
从兄6 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
清灵xmf7 小时前
在 Vue 中实现与优化轮询技术
前端·javascript·vue·轮询
薛一半8 小时前
PC端查看历史消息,鼠标向上滚动加载数据时页面停留在上次查看的位置
前端·javascript·vue.js
过期的H2O29 小时前
【H2O2|全栈】JS进阶知识(四)Ajax
开发语言·javascript·ajax
MarcoPage9 小时前
第十九课 Vue组件中的方法
前端·javascript·vue.js
你好龙卷风!!!9 小时前
vue3 怎么判断数据列是否包某一列名
前端·javascript·vue.js
shenweihong11 小时前
javascript实现md5算法(支持微信小程序),可分多次计算
javascript·算法·微信小程序
巧克力小猫猿11 小时前
基于ant组件库挑选框组件-封装滚动刷新的分页挑选框
前端·javascript·vue.js