king
2025-04-21 f3d4db769ba9b51b799d981511a710fd443d0e08
src/components/normalform/modalform/index.jsx
@@ -22,6 +22,7 @@
// const MKColor = asyncComponent(() => import('@/tabviews/zshare/mutilform/mkColor'))
const MkEditIcon = asyncComponent(() => import('@/components/mkIcon'))
const SourceComponent = asyncComponent(() => import('@/menu/components/share/sourcecomponent'))
const CodeMirror = asyncComponent(() => import('@/templates/zshare/codemirror'))
class ModalForm extends Component {
  static propTpyes = {
@@ -132,10 +133,11 @@
        let cell = fieldMap.get(item.field)
        if (cell.hidden) return
        cell.$ctrls = cell.$ctrls || []
        cell.$ctrls.push(key)
        if (cell.skip && supItem.forbid) { // 上级表单禁用时,此表单不受控制
        if (cell.hidden) {
        } else if (supItem.hidden) {
          cell.hidden = true
        } else if (item.notNull) {
@@ -161,6 +163,10 @@
    formlist = formlist.map(cell => {
      let item = fieldMap.get(cell.field)
      if (item.$ctrls && item.$ctrls.length === 1) {
        delete item.$ctrls
      }
      if (item.linkField) {
        let supInitVal = fieldMap.get(item.linkField).initval || ''
@@ -228,6 +234,32 @@
            }
          } else {
            m.hidden = !cell.values.includes(val)
          }
          if (!m.hidden && m.$ctrls) {
            m.$ctrls.forEach(n => {
              if (n === current.field || m.hidden) return
              let oth = map.get(n)
              let _val = this.record[n]
              if (_val && JSON.stringify(_val) === '[]') {
                _val = ''
              }
              let p = oth.controlFields.filter(q => q.field === m.field)[0]
              if (oth.hidden || (p.notNull && !_val)) {
                m.hidden = true
              } else if (oth.type === 'checkbox' || oth.type === 'multiselect') {
                let _vals = [...(_val || []), ...p.values]
                if (_vals.length === new Set(_vals).size) {
                  m.hidden = true
                }
              } else if (p.values && !p.values.includes(_val)) {
                m.hidden = true
              }
            })
          }
          if (m.hidden) {
@@ -331,6 +363,8 @@
        return
      } else if (item.type === 'printTemps') {
        content = <MkPrintTemps onChange={(val) => this.recordChange({[item.field]: val})}/>
      } else if (item.type === 'codemirror') {
        content = <CodeMirror mode="text/javascript" theme="cobalt" onChange={(val) => this.recordChange({[item.field]: val})}/>
      }
      if (!content) return