king
2024-08-13 7bd04b1c21a59e8d79325f247bdb1726507b51fb
src/tabviews/custom/components/card/data-card/index.jsx
@@ -410,9 +410,7 @@
    if (config.$searchId !== searchId) return
    
    this.setState({pageIndex: 1}, () => {
      this.loadData()
    })
    this.reloadIndex()
  }
  /**
@@ -426,6 +424,7 @@
    if (config.uuid !== menuId) return
    let _id = config.wrap.selected === 'always' ? id : ''
    if (config.supNodes) {
      if (['mainline', 'maingrid', 'popclose'].includes(position)) {
        let supNode = this.supModules[this.supModules.length - 1]
@@ -439,43 +438,41 @@
          }, i * 10)
        })
      } else {
        if ((position === 'line' || position === 'line_grid') && lines && lines.length === 1 && !config.forbidLine) {
          this.loadLinedata(lines[0].$$uuid, position)
        if (position === 'line' || position === 'line_grid') {
          if (lines && lines.length === 1) {
            if (config.forbidLine) {
              this.loadData(lines[0].$$uuid, 'repage')
            } else {
              this.loadLinedata(lines[0].$$uuid, position)
            }
          } else {
            this.loadData(_id, 'repage')
          }
        } else if (btn.resetPageIndex !== 'false') {
          this.setState({
            pageIndex: 1
          }, () => {
            this.loadData(id)
          })
          this.reloadIndex()
        } else {
          this.loadData(id)
          this.loadData(_id, 'repage')
        }
      }
    } else {
      let supModule = config.setting.supModule
      if (position === 'line' || position === 'line_grid') {
        if (lines && lines.length === 1 && !config.forbidLine) {
          this.loadLinedata(lines[0].$$uuid, position)
        } else if (btn.resetPageIndex !== 'false') {
          this.setState({
            pageIndex: 1
          }, () => {
            this.loadData(id)
          })
        if (lines && lines.length === 1) {
          if (config.forbidLine) {
            this.loadData(lines[0].$$uuid, 'repage')
          } else {
            this.loadLinedata(lines[0].$$uuid, position)
          }
        } else {
          this.loadData(id)
          this.loadData(_id, 'repage')
        }
      } else if (['mainline', 'maingrid', 'popclose'].includes(position) && supModule) {
        MKEmitter.emit('reloadData', supModule, position === 'maingrid' ? '' : BID)
      } else if (btn.resetPageIndex !== 'false') {
        this.setState({
          pageIndex: 1
        }, () => {
          this.loadData(id)
        })
        this.reloadIndex()
      } else {
        this.loadData(id)
        this.loadData(_id, 'repage')
      }
    }
  }
@@ -497,13 +494,21 @@
    })
  }
  reloadIndex = () => {
    this.setState({
      pageIndex: 1
    }, () => {
      this.loadData()
    })
  }
  prevCheck = (id) => {
    const { selected } = this.state
    if (selected === 'false' && !id) return
    setTimeout(() => {
      this.checkTopLine(id)
      this.checkTopLine(id, selected)
    }, 10)
    if (selected === 'init') {
@@ -511,59 +516,39 @@
    }
  }
  checkTopLine = (id) => {
    const { config, data, selected } = this.state
  checkTopLine = (id, selected) => {
    const { config, data } = this.state
    if (data.length === 0) {
      this.setState({
        activeKey: '',
        selectKeys: [],
        selectedData: []
      })
      MKEmitter.emit('resetSelectLine', config.uuid, '', '')
      if (config.setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
    let index = -1
    let keys = []
    let items = []
    if (data.length > 0) {
      if (id) {
        index = data.findIndex(item => item.$$uuid === id && !item.$disabled)
      }
      return
    }
    if (selected === 'sign') {
      let index = ''
      let keys = []
      let items = []
      let last = ''
      data.forEach((item, i) => {
        if (!item.$disabled && item.selected === 'true') {
          items.push(item)
          keys.push(i)
          index = i
          last = item
      if (index !== -1) {
        keys = [index]
        items = [data[index]]
      } else if (selected === 'sign') {
        data.forEach((item, i) => {
          if (!item.$disabled && item.selected === 'true') {
            items.push(item)
            keys.push(i)
            index = i
          }
        })
      } else if (selected !== 'false') {
        if (!data[0].$disabled) {
          index = 0
          keys = [index]
          items = [data[index]]
        }
      })
      this.setState({
        activeKey: index,
        selectKeys: keys,
        selectedData: items
      })
      MKEmitter.emit('resetSelectLine', config.uuid, last ? last.$$uuid : '', last)
      if (config.setting.$hasSyncModule) {
        MKEmitter.emit('syncBalconyData', config.uuid, items, data.length === keys.length)
      }
      return
    }
    let index = 0
    if (id) {
      index = data.findIndex(item => item.$$uuid === id)
      if (index === -1) {
        index = 0
      }
    }
    if (data[index].$disabled) {
    if (index === -1) {
      this.setState({
        activeKey: '',
        selectKeys: [],
@@ -576,16 +561,18 @@
      }
      return
    }
    let item = items[items.length - 1]
    this.setState({
      activeKey: index,
      selectKeys: [index],
      selectedData: [data[index]]
      selectKeys: keys,
      selectedData: items
    })
    MKEmitter.emit('resetSelectLine', config.uuid, data[index].$$uuid, data[index])
    MKEmitter.emit('resetSelectLine', config.uuid, item.$$uuid, item)
    if (config.setting.$hasSyncModule) {
      MKEmitter.emit('syncBalconyData', config.uuid, [data[index]], data.length === 1)
      MKEmitter.emit('syncBalconyData', config.uuid, items, data.length === keys.length)
    }
  }
@@ -683,7 +670,9 @@
    if (config.uuid !== menuId) return
    if (!id) {
      this.loadData()
      this.reloadIndex()
    } else if (config.forbidLine) {
      this.loadData(id, 'repage')
    } else {
      this.loadLinedata(id)
    }
@@ -806,6 +795,11 @@
    if (result.status) {
      if (result.$requestId && this.requestId !== result.$requestId) return
      if (type === 'repage' && result.data.length === 0 && pageIndex > 1) {
        this.reloadIndex()
        return
      }
      let start = 1
      if (config.setting.laypage) {
        start = pageSize * (pageIndex - 1) + 1
@@ -816,7 +810,7 @@
        Api.writeCacheConfig(config.uuid, result.data || [], BID)
      }
      if (selected !== 'false' || (id && config.wrap.selected !== 'false')) {
      if (selected !== 'false' || id) {
        this.prevCheck(id)
      } else {
        MKEmitter.emit('resetSelectLine', config.uuid, '', '')
@@ -904,15 +898,6 @@
  async loadLinedata (id, position) {
    const { config, pageIndex, pageSize, search, BID, BData, orderBy } = this.state
    if (config.forbidLine) {
      this.setState({
        pageIndex: 1
      }, () => {
        this.loadData()
      })
      return
    }
    let searches = fromJS(search).toJS()
    if (config.setting.useMSearch) { // 主表搜索条件
      let mainSearch = window.GLOB.SearchBox.get(config.$searchId) || []
@@ -934,7 +919,7 @@
    let result = await Api.genericInterface(param)
    if (result.status) {
      if (position === 'line_grid' && (!result.data || !result.data[0])) {
        this.loadData()
        this.reloadIndex()
        return
      }