king
2021-07-28 137fb8ea6af2789b3238b22bac31d80bced41dfe
src/tabviews/calendar/index.jsx
@@ -48,6 +48,7 @@
    visible: false,       // 标签页控制
    triggerTime: '',      // 点击时间
    calendarYear: moment().format('YYYY'), // 日历年份
    hasReqFields: false
  }
  /**
@@ -119,22 +120,17 @@
        config.easyCode = _curUserConfig.easyCode || config.easyCode || ''
      }
      // 字段权限黑名单、必填、字段透视
      let valid = true
      let roleId = sessionStorage.getItem('role_id') || ''
      config.search = Utils.initSearchVal(config.search)
      // 字段透视
      let hasReqFields = false
      config.search = config.search.map(item => {
        item.oriInitval = item.initval
        if (['text', 'select', 'link'].includes(item.type) && param && param.$searchkey === item.field) {
        if (['text', 'select', 'link'].includes(item.type) && param.$searchkey === item.field) {
          item.initval = param.$searchval
        }
        if (item.required === 'true' && !item.initval) {
          valid = false
        }
        if (!item.blacklist || item.blacklist.length === 0) return item
        if (item.blacklist.filter(v => roleId.indexOf(v) > -1).length > 0) {
          item.Hide = 'true'
        if (item.required) {
          hasReqFields = true
        }
        return item
@@ -169,6 +165,27 @@
          config.setting.dataresource = config.setting.dataresource.replace(/@\$|\$@/ig, '')
          _customScript = _customScript.replace(/@\$|\$@/ig, '')
        }
        let userName = sessionStorage.getItem('User_Name') || ''
        let fullName = sessionStorage.getItem('Full_Name') || ''
        let city = sessionStorage.getItem('city') || ''
        if (sessionStorage.getItem('isEditState') === 'true') {
          userName = sessionStorage.getItem('CloudUserName') || ''
          fullName = sessionStorage.getItem('CloudFullName') || ''
        }
        let regs = [
          { reg: /@userName@/ig, value: `'${userName}'` },
          { reg: /@fullName@/ig, value: `'${fullName}'` },
          { reg: /@login_city@/ig, value: `'${city}'` }
        ]
        regs.forEach(cell => {
          config.setting.dataresource = config.setting.dataresource.replace(cell.reg, cell.value)
          _customScript = _customScript.replace(cell.reg, cell.value)
        })
        if (config.urlFields) {
          let _param = param || {}
          config.urlFields.forEach(field => {
@@ -183,6 +200,7 @@
      }
      this.setState({
        hasReqFields,
        BID: param && param.$BID ? param.$BID : '',
        loadingview: false,
        config: config,
@@ -190,9 +208,9 @@
        setting: config.setting,
        searchlist: config.search,
        arr_field: config.columns.map(item => item.field).join(','),
        search: Utils.initMainSearch(config.search) // 搜索条件初始化(含有时间格式,需要转化)
        search: Utils.initMainSearch(config.search)
      }, () => {
        if (config.setting.onload !== 'false' && valid) { // 初始化可加载
        if (config.setting.onload !== 'false') {
          this.loadmaindata()
        }
      })
@@ -213,20 +231,15 @@
   * @description 主表数据加载
   */ 
  async loadmaindata () {
    const { setting, search, BID } = this.state
    const { setting, search, BID, hasReqFields } = this.state
    let param = ''
    let requireFields = search.filter(item => item.required && (!item.value || item.value.length === 0))
    if (hasReqFields) {
      let requireFields = search.filter(item => item.required && item.value === '')
    if (requireFields.length > 0) {
      let labels = requireFields.map(item => item.label)
      labels = Array.from(new Set(labels))
      notification.warning({
        top: 92,
        message: this.state.dict['form.required.input'] + labels.join('、') + ' !',
        duration: 3
      })
      return
      }
    }
    this.setState({
@@ -523,13 +536,13 @@
  render() {
    const { menuType } = this.props
    const { BID, searchlist, loadingview, viewlost, config, loading, data, triggerTime } = this.state
    const { BID, setting, searchlist, loadingview, viewlost, config, loading, data, triggerTime } = this.state
    return (
      <div className="calendar-page" id={this.state.ContainerId}>
        {loadingview && <Spin size="large" />}
        {searchlist && searchlist.length > 0 ?
          <MainSearch BID={BID} searchlist={searchlist} menuType={menuType} refreshdata={this.refreshbysearch}/> : null
          <MainSearch BID={BID} searchlist={searchlist} setting={setting} menuType={menuType} refreshdata={this.refreshbysearch}/> : null
        }
        {config && config.calendar ? <CalendarComponent calendar={config.calendar} loading={loading} data={data} triggerDate={this.triggerDate} changeDate={this.changeDate}/> : null}
        {menuType !== 'HS' ? <PagemsgComponent menu={{MenuName: this.props.MenuName, MenuNo: this.props.MenuNo}} config={config} dict={this.state.dict} /> : null}