element()

in src/ui/editor/complex/AExperience.tsx [44:79]


  element() {
    if(!this.props.schema.experience) {
      return MUtil.error("experience未定义", this.props.schema);
    }
    
    // 复用AArrayGrid,下面构造个schema给它
    const arrayGridSchema:MFieldSchemaAnonymity = {
      type:"array",
      dataFormat: this.props.schema.dataFormat,
      arrayMember:{
        type:"object",
        objectFields:[
          {name: RANGE_FNAME, type: "dateRange", label:"起止时间", dateRange: this.props.schema.dateRange },
          ...this.props.schema.experience.members
        ]
      }
    };
    // 转换一套数据给arrayGrid
    let data = super.getValue();
    if(!_.isArray(data)){ // 只接受数组
      data = [];
    }
    const arrayGridData = data.map((e: any)=>{
      let a = _.clone(e);
      a[RANGE_FNAME] = [e.from, e.to, e.tillNow]
      delete a.from;
      delete a.to;
      delete a.tillNow;
      return a
    });

    return <AArrayGrid key={this.state.ctrlVersion} schema={arrayGridSchema} database={arrayGridData} path="" 
      morph={this.props.morph}
      extra={<Button onClick={()=>{
        this._submitData(arrayGridData, true);
      }} >自动排序</Button>}