{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xq-web-bpm\\src\\api\\controlsConfig.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\api\\controlsConfig.js","mtime":1675071990819},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/web.dom.iterable\";\nexport var basicComponents = [{\n  ctrlType: \"input\",\n  name: \"\",\n  desc: \"单行文本\",\n  icon: \"icon-single\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"\",\n    isCountDate: false,\n    mathExp: \"\",\n    isStartDate: \"\",\n    isEndDate: \"\",\n    countFormat: \"day\",\n    dataType: \"string|number\",\n    validateList: [],\n    validate: \"\",\n    validateType: \"confirmed|email|regex|min|max|min_value|max_value|isAfter|isBefore|isStart|isEnd|numeric|between|is|digits|mobile|required|row_unique|alpha_spaces|alpha_dash|alpha_num|alpha|frontJSValidate|backendValidate\",\n    advancedProperty: \"isInputEdit|isBindIdentity|inputType|bindPreAndSufFix\",\n    placeholder: \"\",\n    disabled: false,\n    basicsProperty: \"input|dateCount|placeholder\",\n    bindIdentityjson: {},\n    //流水号对象\n    isBindPreAndSufFix: false,\n    bindPreAndSufFixjson: {\n      preFix: \"\",\n      sufSix: \"\"\n    },\n    formulasDiyJs: \"\",\n    showCondition: {\n      target: '',\n      fieldPath: '',\n      value: ''\n    }\n  }\n}, {\n  ctrlType: \"textarea\",\n  name: \"\",\n  desc: \"多行文本\",\n  icon: \"icon-textarea\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"\",\n    dataType: \"string|text\",\n    validateList: [],\n    validateType: \"regex|min|max|required|row_unique|frontJSValidate|backendValidate\",\n    advancedProperty: \"isEditor|isInputEdit\",\n    disabled: false,\n    placeholder: \"\",\n    basicsProperty: \"placeholder\",\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"property-text\",\n  name: \"\",\n  desc: \"属性文本\",\n  icon: \"icon-textarea\",\n  options: {\n    width: \"100%\",\n    defaultValue: \"\",\n    dataType: \"string|text\",\n    validateList: [],\n    validateType: \"regex|min|max|required|row_unique|frontJSValidate|backendValidate\",\n    disabled: false,\n    placeholder: \"\",\n    basicsProperty: \"property-text\",\n    advancedProperty: \"isEditor\",\n    textValue: \"\",\n    formulasDiyJs: \"\",\n    textAlign: 'left'\n  }\n}, {\n  ctrlType: \"number\",\n  name: \"\",\n  desc: \"数字\",\n  icon: \"icon-number\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: 0,\n    validateType: \"min_value|max_value|confirmed|numeric|between|digits|required|row_unique|frontJSValidate|mobile\",\n    validateList: [],\n    dataType: \"number\",\n    filterthousandBit: \"\",\n    filtercurrency: \"\",\n    min: 0,\n    max: 99999,\n    step: 1,\n    decimalDigits: 2,\n    maxDecimalDigits: 0,\n    mathExp: \"\",\n    disabled: false,\n    controlsPosition: \"\",\n    advancedProperty: \"inputType|bindPreAndSufFix\",\n    basicsProperty: \"number|currency|placeholder|dateCount\",\n    company: \"\",\n    //扩展单位配置项,\n    formulasDiyJs: \"\",\n    bindPreAndSufFixjson: {\n      preFix: \"\",\n      sufSix: \"\"\n    }\n  }\n}, {\n  ctrlType: \"currency\",\n  name: \"\",\n  desc: \"货币\",\n  icon: \"icon-currency\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    required: false,\n    dataType: \"number\",\n    defaultValue: 0,\n    filterthousandBit: \"\",\n    filtercurrency: \"\",\n    min: 1,\n    max: 99999,\n    step: 1,\n    decimalDigits: 0,\n    maxDecimalDigits: 0,\n    disabled: false,\n    controlsPosition: \"\",\n    mathExp: \"\",\n    advancedProperty: \"currencyControl\",\n    basicsProperty: \"currency|placeholder\",\n    formulasDiyJs: \"\",\n    validateType: \"min_value|max_value|confirmed|numeric|between|digits|required|row_unique|frontJSValidate\",\n    validateList: []\n  }\n}, {\n  ctrlType: \"radio\",\n  name: \"\",\n  desc: \"单选框\",\n  icon: \"icon-radio-active\",\n  options: {\n    inline: false,\n    defaultValue: \"\",\n    dataType: \"string|number\",\n    showLabel: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    options: [],\n    required: false,\n    width: \"\",\n    remote: false,\n    remoteOptions: [],\n    props: {\n      value: \"value\",\n      label: \"label\"\n    },\n    remoteFunc: \"\",\n    disabled: false,\n    advancedProperty: \"isVertical|choiceType\",\n    //高级属性\n    choiceType: \"static\",\n    //默认固定值\n    customQuery: {},\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    linkage: [],\n    //联动校验表达式\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"checkbox\",\n  name: \"\",\n  desc: \"多选框\",\n  icon: \"icon-check-box\",\n  options: {\n    inline: false,\n    dataType: \"string|number\",\n    defaultValue: [],\n    showLabel: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    options: [],\n    required: false,\n    width: \"\",\n    remote: false,\n    remoteOptions: [],\n    props: {\n      value: \"value\",\n      label: \"label\"\n    },\n    remoteFunc: \"\",\n    disabled: false,\n    advancedProperty: \"isVertical|choiceType\",\n    //高级属性\n    choiceType: \"static\",\n    //默认固定值\n    customQuery: {},\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    linkage: [],\n    //联动校验表达式\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"date\",\n  name: \"\",\n  desc: \"日期\",\n  icon: \"icon-date\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"\",\n    readonly: false,\n    disabled: false,\n    dataType: \"date\",\n    editable: true,\n    clearable: true,\n    placeholder: \"\",\n    startPlaceholder: \"\",\n    validateType: \"isAfter|isBefore|isStart|isEnd|required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    endPlaceholder: \"\",\n    type: \"date\",\n    inputFormat: \"yyyy-MM-dd\",\n    timestamp: false,\n    required: false,\n    basicsProperty: \"date|placeholder\",\n    bindPreAndSufFixjson: {\n      preFix: \"\",\n      sufSix: \"\"\n    },\n    advancedProperty: \"bindPreAndSufFix\",\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"time\",\n  name: \"\",\n  desc: \"时间\",\n  icon: \"icon-time\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"21:19:56\",\n    readonly: false,\n    dataType: \"date\",\n    disabled: false,\n    editable: true,\n    clearable: true,\n    placeholder: \"\",\n    startPlaceholder: \"\",\n    type: \"select\",\n    //选择器格式\n    endPlaceholder: \"\",\n    isRange: false,\n    arrowControl: true,\n    format: \"HH:mm:ss\",\n    inputFormat: \"HH:mm:ss\",\n    required: false,\n    basicsProperty: \"time\",\n    formulasDiyJs: \"\",\n    validateList: [],\n    validate: \"\",\n    validateType: \"required\"\n  }\n}, {\n  ctrlType: \"selector\",\n  name: \"\",\n  desc: \"选择器\",\n  icon: \"icon-user\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"\",\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    required: false,\n    dataType: \"string\",\n    pattern: \"\",\n    placeholder: \"\",\n    disabled: false,\n    selector: {\n      type: {\n        alias: \"eip-user-selector\"\n      }\n    },\n    //选择器对象\n    bind: [{\n      alias: \"eip-user-selector\",\n      key: \"id\",\n      value: \"用户ID\"\n    }, {\n      alias: \"eip-user-selector\",\n      key: \"account\",\n      value: \"用户账号\"\n    }, {\n      alias: \"eip-user-selector\",\n      key: \"fullname\",\n      value: \"用户姓名\"\n    }, {\n      alias: \"eip-user-selector\",\n      key: \"mobile\",\n      value: \"用户手机\"\n    }, {\n      alias: \"eip-user-selector\",\n      key: \"email\",\n      value: \"用户邮箱\"\n    }],\n    basicsProperty: \"selector\"\n  }\n}, {\n  ctrlType: \"dialog\",\n  name: \"\",\n  desc: \"对话框\",\n  icon: \"icon-dialog\",\n  placeholder: \"\",\n  options: {\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    defaultType: \"String\",\n    basicsProperty: \"custDialog|placeholder\",\n    customDialogjson: {\n      name: \"请选择\",\n      icon: \"\",\n      custDialog: {\n        selectNum: \"\",\n        conditions: [],\n        mappingConf: [],\n        custQueryJson: []\n      },\n      resultField: []\n    }\n  }\n}, {\n  ctrlType: \"select\",\n  name: \"\",\n  desc: \"下拉框\",\n  isMultiple: false,\n  icon: \"icon-select\",\n  options: {\n    width: \"100%\",\n    isWidth: true,\n    defaultValue: \"\",\n    multiple: false,\n    disabled: false,\n    clearable: false,\n    placeholder: \"\",\n    required: false,\n    showLabel: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    dataType: \"string|number\",\n    validate: \"\",\n    options: [],\n    remote: false,\n    filterable: false,\n    allowCreate: false,\n    remoteOptions: [],\n    props: {\n      value: \"value\",\n      label: \"label\"\n    },\n    remoteFunc: \"\",\n    basicsProperty: \"selectConfig|choiceType|placeholder\",\n    choiceType: \"static\",\n    //默认固定值\n    customQuery: {\n      custQueryJson: [],\n      valueBind: \"\",\n      labelBind: \"\",\n      conditionfield: []\n    },\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    linkage: [],\n    //联动校验表达式\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"dropdown\",\n  name: \"\",\n  desc: \"下拉树\",\n  icon: \"icon-dropdown-tree\",\n  isMultiple: false,\n  options: {\n    defaultValue: \"\",\n    multiple: false,\n    disabled: false,\n    clearable: false,\n    placeholder: \"\",\n    required: false,\n    showLabel: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    width: \"\",\n    options: [],\n    remote: false,\n    filterable: false,\n    allowCreate: false,\n    dataType: \"string|number\",\n    remoteOptions: [],\n    props: {\n      value: \"value\",\n      label: \"label\"\n    },\n    remoteFunc: \"\",\n    basicsProperty: \"selectConfig|choiceType|placeholder\",\n    choiceType: \"dynamic\",\n    //默认固定值\n    customQuery: {\n      custQueryJson: [],\n      valueBind: \"\",\n      labelBind: \"\",\n      conditionfield: []\n    },\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"attachment\",\n  name: \"\",\n  desc: \"附件\",\n  icon: \"icon-attachment\",\n  options: {\n    width: \"100%\",\n    validateType: \"required\",\n    validateList: [],\n    validate: \"\",\n    defaultValue: \"\",\n    required: false,\n    dataType: \"string\",\n    pattern: \"\",\n    placeholder: \"\",\n    disabled: false,\n    basicsProperty: \"fileupload\",\n    propConf: [{\n      name: \"prop1\"\n    }, {\n      name: \"prop2\"\n    }, {\n      name: \"prop3\"\n    }, {\n      name: \"prop4\"\n    }, {\n      name: \"prop5\"\n    }, {\n      name: \"prop6\"\n    }],\n    //附件扩展属性配置\n    file: {\n      multiple: true,\n      simplicity: true,\n      limit: \"5\",\n      acceptType: 'any',\n      acceptStr: '',\n      size: '50',\n      allowDownload: false,\n      allowPreview: true,\n      accept: [\"jpg\", \"jpeg\", \"png\", \"bmp\", \"pdf\", \"JPG\", \"JPEG\", \"PNG\", \"BMP\", \"PDF\", \"doc\", \"docx\", \"xls\", \"xlsx\", \"ppt\", \"pptx\", \"rtf\", \"txt\", \"zip\", \"rar\", \"vsd\", \"dwg\", \"mp4\", \"avi\", \"3gp\", \"rmvb\", \"rm\", \"wmv\"]\n    } //文件上传对象\n\n  }\n}, {\n  ctrlType: \"switch\",\n  name: \"\",\n  desc: \"开关\",\n  icon: \"icon-switch\",\n  options: {\n    defaultValue: \"true\",\n    activeValue: \"true\",\n    inactiveValue: \"false\",\n    activeText: \"\",\n    inactiveText: \"\",\n    disabled: true,\n    validateType: \"required\",\n    validateList: [],\n    validate: \"\",\n    dataType: \"string|number\",\n    formulasDiyJs: \"\"\n  }\n}, {\n  ctrlType: \"dic\",\n  name: \"\",\n  desc: \"数据字典\",\n  icon: \"icon-dic\",\n  options: {\n    defaultValue: \"\",\n    basicsProperty: \"dicConfig\",\n    bind: [],\n    //绑定\n    dic: \"\",\n    //字典别名\n    filterable: false,\n    //字典是否可搜索\n    placeholder: \"\",\n    validateList: [],\n    validate: \"\",\n    validateType: \"required\",\n    dataType: \"string\"\n  }\n}, {\n  ctrlType: \"tag\",\n  name: \"\",\n  desc: \"标签\",\n  icon: \"el-icon-news\",\n  options: {\n    dataType: \"string\",\n    defaultValue: [],\n    lableColor: \"\",\n    basicsProperty: \"tagConfig\",\n    bind: [],\n    //绑定\n    tag: \"\",\n    //标签别名\n    filterable: false,\n    //标签是否可搜索\n    placeholder: \"请选择\",\n    expand: false\n  },\n  isMultiple: true\n}, {\n  ctrlType: \"imageViewer\",\n  name: \"\",\n  desc: \"图片\",\n  icon: \"icon-image\",\n  options: {\n    defaultValue: [],\n    size: {},\n    isDisplay: false,\n    uploadType: \"local\",\n    fileJson: \"\",\n    tokenFunc: \"funcGetToken\",\n    basicsProperty: \"imageViewer\",\n    validateType: \"required\",\n    validateList: [],\n    validate: \"\",\n    file: {\n      multiple: true,\n      limit: \"3\",\n      allowDownload: false,\n      allowPreview: true\n    }\n  }\n}, {\n  ctrlType: \"amap\",\n  name: \"\",\n  desc: \"高德地图\",\n  icon: \"icon-landmark\",\n  options: {\n    width: \"100%\",\n    defaultValue: \"\",\n    addressMap: \"\",\n    addressName: \"\",\n    dataType: \"varchar\",\n    noBindModel: true,\n    placeholder: \"\",\n    heightMap: \"350\"\n  }\n}, {\n  ctrlType: \"related-process\",\n  name: \"\",\n  desc: \"相关流程\",\n  icon: \"icon-flow2\",\n  options: {\n    defaultType: \"String\",\n    basicsProperty: \"isPaging\",\n    isPaging: true,\n    //是否分页\n    pageSize: 10 //默认分页大小\n\n  }\n}, {\n  ctrlType: \"autocomplete\",\n  name: \"\",\n  desc: \"输入建议\",\n  icon: \"icon-autocomplete\",\n  options: {\n    dataType: \"string|number\",\n    validateType: \"confirmed|email|regex|min|max|min_value|max_value|isAfter|isBefore|isStart|isEnd|numeric|between|is|digits|mobile|required|row_unique|alpha_spaces|alpha_dash|alpha_num|alpha|frontJSValidate\",\n    placeholder: \"\",\n    defaultValue: \"\",\n    validateList: [],\n    disabled: false,\n    validate: \"\",\n    required: false,\n    width: \"100%\",\n    basicsProperty: \"selectConfig|choiceType\",\n    //高级属性\n    choiceType: \"static\",\n    //默认固定值\n    customQuery: {},\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    options: []\n  }\n}, {\n  ctrlType: \"signature\",\n  name: \"\",\n  desc: \"签章\",\n  icon: \"icon-authorization\",\n  options: {\n    required: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    defaultValue: [],\n    width: \"\",\n    maxPeople: 10\n  }\n}];\nexport var advanceComponents = [{\n  ctrlType: \"button\",\n  tableName: \"\",\n  boDefAlias: \"\",\n  name: \"\",\n  desc: \"按钮\",\n  icon: \"icon-button\",\n  options: {\n    noBindModel: false,\n    defaultType: \"String\",\n    basicsProperty: \"onetextBtn\",\n    bindEventjson: {\n      name: \"选择\",\n      icon: \"\",\n      isShowInput: true\n    },\n    formulasDiyJs: \"\",\n    showCondition: {\n      target: '',\n      fieldPath: '',\n      value: ''\n    }\n  },\n  noTitle: false,\n  noPlaceholder: false,\n  noTooltip: false\n}, // {\n//     ctrlType: 'relation',\n//     name: '',\n//     desc: '关联数据',\n//     icon: 'icon-relation',\n//     options: {\n//         validateType: 'required|row_unique|frontJSValidate',\n//         validateList: [],\n//         validate: \"\",\n//         defaultType: 'String',\n//         basicsProperty:'relation',\n//         customQuery:{valueBind:\"\",labelBind:\"\",conditionfield:[]},//动态值对象\n//         bind:[],//绑定的返回值\n//     }\n// },\n{\n  ctrlType: \"immediate-single\",\n  tableName: \"\",\n  boDefAlias: \"\",\n  name: \"\",\n  desc: \"实时单行\",\n  icon: \"icon-single2\",\n  options: {\n    width: \"100%\",\n    defaultType: \"String\",\n    noBindModel: true,\n    advancedProperty: \"script\"\n  }\n}, {\n  ctrlType: \"immediate-textarea\",\n  tableName: \"\",\n  boDefAlias: \"\",\n  name: \"\",\n  desc: \"实时多行\",\n  icon: \"icon-textarea2\",\n  options: {\n    width: \"100%\",\n    defaultValue: \"\",\n    dataType: \"string|text\",\n    noBindModel: true,\n    placeholder: \"\",\n    basicsProperty: \"script\"\n  }\n}, {\n  ctrlType: \"milepost\",\n  name: \"\",\n  desc: \"里程碑\",\n  icon: \"icon-milepost\",\n  noTitle: true,\n  noPlaceholder: true,\n  noTooltip: true,\n  options: {\n    direction: \"horizontal\",\n    placeholder: \"\",\n    defaultValue: \"\",\n    width: \"100%\",\n    basicsProperty: \"stepControl\",\n    steps: [{\n      title: \"\",\n      description: \"\"\n    }]\n  }\n}, {\n  ctrlType: \"eip-cascader\",\n  name: \"\",\n  desc: \"级联\",\n  icon: \"icon-cascader\",\n  options: {\n    required: false,\n    validateType: \"required|row_unique|frontJSValidate\",\n    validateList: [],\n    validate: \"\",\n    defaultValue: [],\n    width: \"\",\n    placeholder: \"\",\n    disabled: false,\n    clearable: false,\n    remote: true,\n    remoteOptions: [],\n    props: {\n      value: \"value\",\n      label: \"label\",\n      children: \"children\"\n    },\n    remoteFunc: \"\",\n    basicsProperty: \"selectConfig|choiceType\",\n    choiceType: \"dynamic\",\n    //默认固定值\n    customQuery: {\n      valueBind: \"\",\n      labelBind: \"\",\n      conditionfield: []\n    },\n    //动态值对象\n    bind: [],\n    //绑定的返回值\n    linkage: [] //联动校验表达式\n\n  }\n}, {\n  ctrlType: \"dataView\",\n  name: \"数据视图\",\n  desc: \"数据视图\",\n  icon: \"icon-list\",\n  isLayout: true,\n  templateKey: \"\",\n  templateId: \"\",\n  templateObj: {},\n  templateField: [],\n  options: {\n    showLabel: true,\n    boDefAlias: \"\",\n    selectList: [],\n    bindList: []\n  },\n  customDialogjson: {\n    name: \"数据视图\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    resultField: []\n  },\n  subtableBackfill: false\n}, {\n  ctrlType: \"text\",\n  tableName: \"\",\n  boDefAlias: \"\",\n  name: \"\",\n  desc: \"文本\",\n  icon: \"icon-text\",\n  options: {\n    defaultValue: \"This is a text\",\n    noBindModel: true,\n    customClass: \"\",\n    basicsProperty: \"textValue\"\n  }\n}, {\n  ctrlType: \"QRcode\",\n  name: \"\",\n  desc: \"二维码\",\n  icon: \"el-icon-s-grid\",\n  options: {\n    noBindModel: true,\n    customClass: \"\"\n  }\n}, {\n  ctrlType: \"iframe\",\n  name: \"\",\n  desc: \"iframe面板\",\n  icon: \"icon-iframe\",\n  noBasics: true,\n  options: {\n    iframeSrc: \"\",\n    iframeSrcHeight: \"300\",\n    noBindModel: true,\n    iframeSrcWidth: \"100%\",\n    frameborder: \"1\",\n    lableColor: \"\",\n    basicsProperty: \"iframe\"\n  }\n}, {\n  ctrlType: \"image\",\n  name: \"\",\n  desc: \"背景图片\",\n  icon: \"icon-image\",\n  options: {\n    defaultValue: [],\n    size: {},\n    isDisplay: false,\n    noBindModel: true,\n    imgSrc: \"\",\n    fileJson: \"\",\n    tokenFunc: \"funcGetToken\",\n    basicsProperty: \"img\"\n  }\n} // {\n//   ctrlType: \"contractPreview\",\n//   name: \"\",\n//   desc: \"合同预览\",\n//   icon: \"icon-iframe\",\n//   noBasics: true,\n//   options: {\n//     iframeSrc: \"\",\n//     iframeSrcHeight: \"500\",\n//     noBindModel: true,\n//     iframeSrcWidth: \"100%\",\n//     frameborder: \"1\",\n//     lableColor: \"\",\n//     basicsProperty: \"contract\"\n//   }\n// }\n];\nexport var layoutComponents = [{\n  ctrlType: \"div\",\n  name: \"\",\n  desc: \"div布局\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  columns: [{\n    span: \"div布局\",\n    list: [],\n    permission: \"\",\n    permissionPath: \"\"\n  }],\n  options: {\n    gutter: 0,\n    nextCheck: \"\",\n    type: \"\",\n    //风格类型\n    justify: \"start\",\n    align: \"top\",\n    backgroundColor: '#FFFFFF',\n    width: '',\n    height: '100%',\n    padding: '',\n    margin: '',\n    radius: ''\n  }\n}, {\n  ctrlType: \"page\",\n  name: \"\",\n  desc: \"分页布局\",\n  icon: \"icon-page-seprator\",\n  isLayout: true,\n  columns: [{\n    list: []\n  }]\n}, {\n  ctrlType: \"tab\",\n  name: \"\",\n  desc: \"tab布局\",\n  icon: \"icon-tab\",\n  isLayout: true,\n  columns: [{\n    span: \"标签页1\",\n    list: [],\n    permission: \"\",\n    permissionPath: \"\"\n  }],\n  options: {\n    gutter: 0,\n    nextCheck: \"\",\n    type: \"\",\n    //风格类型\n    justify: \"start\",\n    align: \"top\"\n  }\n}, {\n  ctrlType: \"accordion\",\n  name: \"\",\n  desc: \"折叠面板\",\n  icon: \"icon-accordion\",\n  isLayout: true,\n  columns: [{\n    span: \"折叠面板\",\n    idKey: Date.parse(new Date()) + \"a\",\n    isOpen: false,\n    list: []\n  }],\n  options: {\n    gutter: 0,\n    justify: \"start\",\n    nextCheck: \"\",\n    accordion: \"false\",\n    activeNames: [],\n    align: \"top\"\n  }\n}, {\n  ctrlType: \"grid\",\n  name: \"\",\n  desc: \"栅格布局\",\n  icon: \"icon-grid\",\n  isLayout: true,\n  columns: [{\n    span: 12,\n    list: []\n  }, {\n    span: 12,\n    list: []\n  }],\n  options: {\n    gutter: 0,\n    justify: \"start\",\n    align: \"top\"\n  }\n}, {\n  ctrlType: \"table\",\n  name: \"\",\n  desc: \"表格布局\",\n  icon: \"icon-grid\",\n  isLayout: true,\n  rows: [{\n    cols: [{\n      colspan: 1,\n      list: []\n    }, {\n      colspan: 1,\n      list: []\n    }]\n  }, {\n    cols: [{\n      colspan: 1,\n      list: []\n    }, {\n      colspan: 1,\n      list: []\n    }]\n  }, {\n    cols: [{\n      colspan: 1,\n      list: []\n    }, {\n      colspan: 1,\n      list: []\n    }]\n  }],\n  options: {\n    gutter: 0,\n    justify: \"start\",\n    align: \"top\",\n    lineHeight: 40,\n    borderColor: '#b5b5b5',\n    borderWidth: 1,\n    fontColor: '#808080',\n    labelWidthType: 'percent',\n    //percent：百分比，px：像素\n    labelWidth: 30\n  }\n}, {\n  ctrlType: \"subtable\",\n  name: \"子表\",\n  desc: \"子表\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  customHeader: \"\",\n  list: [],\n  options: {\n    showLabel: true,\n    boSubEntity: \"\",\n    subTablePath: \"\",\n    relation: \"\",\n    maxRow: 0\n  },\n  customQuery: {\n    isUse: false,\n    resultfield: []\n  },\n  customDialogjson: {\n    name: \"子表回填\",\n    icon: \"\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    orgConfig: {\n      name: '',\n      code: '',\n      id: ''\n    },\n    resultField: []\n  },\n  subtableBackfill: false,\n  initTemplateData: false,\n  initTemplateDataType: 'empty'\n}, {\n  ctrlType: \"subDiv\",\n  name: \"div子表\",\n  desc: \"div子表\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  customHeader: \"\",\n  list: [],\n  options: {\n    showLabel: true,\n    boSubEntity: \"\",\n    subTablePath: \"\",\n    subDivTablePath: \"\",\n    relation: \"\",\n    maxRow: 0\n  },\n  customQuery: {\n    isUse: false,\n    resultfield: []\n  },\n  customDialogjson: {\n    name: \"子表回填\",\n    icon: \"\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    orgConfig: {\n      name: '',\n      code: '',\n      id: ''\n    },\n    resultField: []\n  },\n  subtableBackfill: false,\n  initTemplateData: false,\n  initTemplateDataType: 'empty'\n}, {\n  ctrlType: \"suntable\",\n  name: \"孙表\",\n  desc: \"孙表\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  customHeader: \"\",\n  list: [],\n  options: {\n    showLabel: true,\n    boSubEntity: \"\",\n    subTablePath: \"\",\n    relation: \"\",\n    maxRow: 0\n  },\n  customDialogjson: {\n    name: \"孙表回填\",\n    icon: \"\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    resultField: []\n  },\n  subtableBackfill: false\n}, {\n  ctrlType: \"sunDiv\",\n  name: \"div孙表\",\n  desc: \"div孙表\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  customHeader: \"\",\n  list: [],\n  options: {\n    showLabel: true,\n    boSubEntity: \"\",\n    subTablePath: \"\",\n    relation: \"\",\n    maxRow: 0\n  },\n  customDialogjson: {\n    name: \"孙表回填\",\n    icon: \"\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    resultField: []\n  },\n  subtableBackfill: false\n}, {\n  ctrlType: \"hottable\",\n  name: \"hotTable\",\n  desc: \"hotTable\",\n  icon: \"icon-table2\",\n  isLayout: true,\n  showTitle: true,\n  customHeader: \"\",\n  list: [],\n  options: {\n    showLabel: true,\n    boSubEntity: \"\",\n    subTablePath: \"\",\n    relation: \"\",\n    colHeadersRelations: [],\n    //表头数据\n    templateContent: {},\n    initFillbackData: [],\n    height: 80,\n    crossMapping: [],\n    //跨表取数\n    nestedHeaders: [],\n    //嵌套表头\n    mainTableCalcs: [],\n    //主表字段统计\n    cellCalcs: [],\n    //单元格计算公式\n    initSumRowField: '',\n    //统计行标签字段\n    initSumRowValue: '' //统计行标签字段值\n\n  },\n  customDialogjson: {\n    name: \"子表回填\",\n    icon: \"\",\n    custDialog: {\n      conditions: [],\n      mappingConf: []\n    },\n    resultField: [],\n    orgConfig: {\n      name: '',\n      code: '',\n      id: ''\n    }\n  },\n  subtableBackfill: false,\n  initTemplateData: false,\n  initTemplateDataType: 'empty',\n  addInitTemplateData: false,\n  //允许添加初始化数据\n  addInitBtnName: '添加初始化数据',\n  //添加初始化数据按钮\n  initSumRow: false //初始化统计行\n\n}, {\n  ctrlType: \"divider\",\n  isLayout: true,\n  noTitle: true,\n  name: \"分割线\",\n  desc: \"分割线\",\n  icon: \"el-icon-minus\",\n  options: {\n    customDialogjson: {\n      icon: \"\"\n    },\n    basicsProperty: \"divider\",\n    noBindModel: true,\n    customClass: \"\",\n    position: \"center\",\n    content: \"\",\n    color: \"#DCDFE6\"\n  }\n}];\nexport var validateRules = [{\n  key: \"confirmed\",\n  isInput: true,\n  isBoData: true,\n  type: \"string|number|text|date\",\n  inputType: \"select\",\n  //输入框类型\n  name: \"相同的值\"\n}, {\n  key: \"email\",\n  name: \"电子邮箱\"\n}, {\n  key: \"regex\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"*正则表达式\"\n}, {\n  key: \"min\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"*最小文本长度\"\n}, {\n  key: \"max\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"*最大文本长度\"\n}, {\n  key: \"min_value\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"最小数值\"\n}, {\n  key: \"max_value\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"最大数值\"\n}, {\n  key: \"isAfter\",\n  isInput: true,\n  inputType: \"select\",\n  //输入框类型\n  type: \"date\",\n  name: \"日期晚于\"\n}, {\n  key: \"isBefore\",\n  isInput: true,\n  inputType: \"select\",\n  //输入框类型\n  type: \"date\",\n  name: \"日期早于\"\n}, {\n  key: \"isStart\",\n  isInput: true,\n  inputType: \"select\",\n  //输入框类型\n  type: \"date\",\n  name: \"日期不早于\"\n}, {\n  key: \"isEnd\",\n  isInput: true,\n  inputType: \"select\",\n  //输入框类型\n  type: \"date\",\n  name: \"日期不晚于\"\n}, {\n  key: \"numeric\",\n  name: \"整数\"\n}, {\n  key: \"between\",\n  isInput: true,\n  inputType: \"twoInput\",\n  //输入框类型\n  name: \"指定范围的数字(包含最小/大值)\"\n}, {\n  key: \"is\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"*指定的值\"\n}, {\n  key: \"digits\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"指定位数的数字\"\n}, {\n  key: \"mobile\",\n  name: \"手机号码\"\n}, {\n  key: \"required\",\n  name: \"*必填\"\n}, //{\n//  isInput: true,\n//  key: \"row_unique\",\n//  name: \"*行唯一\"\n//},\n{\n  key: \"alpha_spaces\",\n  name: \"字母空格\"\n}, {\n  key: \"alpha_dash\",\n  name: \"字母数字横线下划线\"\n}, {\n  key: \"alpha_num\",\n  name: \"字母数字\"\n}, {\n  key: \"alpha\",\n  name: \"字母\"\n}, {\n  key: \"frontJSValidate\",\n  isInput: true,\n  inputType: \"button\",\n  //输入框类型\n  name: \"JS方法校验\"\n}, {\n  key: \"backendValidate\",\n  isInput: true,\n  inputType: \"input\",\n  //输入框类型\n  name: \"后端校验\"\n} // {\n//   key: \"uniqueValidate\",\n//   name: \"唯一性校验\"\n// }\n];\nexport default {\n  isLayoutComponents: function isLayoutComponents(type) {\n    if (type == \"tab\" || type == \"subtable\" || type == \"subDiv\" || type == \"accordion\" || type == \"page\" || type == \"grid\" || type == \"dataView\" || type == \"table\") {\n      return true;\n    }\n\n    return false;\n  },\n  isGridLayoutComponents: function isGridLayoutComponents(type) {\n    if (type == \"tab\" || type == \"accordion\" || type == \"page\" || type == \"sunDiv\" || type == \"suntable\") {\n      return true;\n    }\n\n    return false;\n  },\n  handleLayoutComponents: function handleLayoutComponents(vueInst, layoutRow, fieldList, newFieldIndex) {\n    var _this2 = this;\n\n    //针对字段拖入的校验\n    if (layoutRow && fieldList && fieldList[newFieldIndex]) {\n      var field = fieldList[newFieldIndex];\n\n      if (!this.validateLayoutField(vueInst, layoutRow, field)) {\n        fieldList.splice(newFieldIndex, 1);\n        return false;\n      }\n    }\n\n    var this_ = vueInst;\n    var isPass = true;\n    vueInst.data.list.forEach(function (l) {\n      if (_this2.isLayoutComponents(l.ctrlType)) {\n        if (l.columns) {\n          l.columns.forEach(function (c) {\n            if (c.list) {\n              c.list = c.list.filter(function (element) {\n                if (l.ctrlType == \"tab\" || l.ctrlType == \"accordion\" || l.ctrlType == \"subtable\") {\n                  if (_this2.isGridLayoutComponents(element.ctrlType) && !(l.ctrlType == 'accordion' && element.ctrlType == 'tab')) {\n                    this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                    isPass = false;\n                    return false;\n                  }\n                } else {\n                  if (l.ctrlType == \"grid\" && (element.ctrlType == \"sunDiv\" || element.ctrlType == \"suntable\")) {\n                    this_.$message.warning(\"孙表只能存在子表中\");\n                    isPass = false;\n                    return false;\n                  }\n\n                  if (_this2.isLayoutComponents(element.ctrlType)) {\n                    this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                    isPass = false;\n                    return false;\n                  }\n\n                  if (l.ctrlType == \"grid\" && element.ctrlType == \"hottable\") {\n                    this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                    isPass = false;\n                    return false;\n                  }\n                }\n\n                return true;\n              });\n            }\n          });\n        } else if (l.list) {\n          if (l.ctrlType == \"subDiv\") {\n            l.list = l.list.filter(function (c) {\n              if (_this2.isLayoutComponents(c.ctrlType) && c.ctrlType != \"grid\") {\n                this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                isPass = false;\n                return false;\n              }\n\n              return true;\n            });\n          } else {\n            l.list = l.list.filter(function (c) {\n              if (_this2.isLayoutComponents(c.ctrlType)) {\n                this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                isPass = false;\n                return false;\n              }\n\n              return true;\n            });\n          }\n        } else if (l.rows) {\n          // 表格布局\n          l.rows.forEach(function (row) {\n            row.cols.forEach(function (col) {\n              col.list = col.list.filter(function (c) {\n                if (_this2.isLayoutComponents(c.ctrlType) || c.ctrlType == \"sunDiv\" || c.ctrlType == \"suntable\" || c.ctrlType == \"divider\") {\n                  this_.$message.warning(\"布局字段中不允许再拖入布局字段\");\n                  isPass = false;\n                  return false;\n                }\n\n                return true;\n              });\n            });\n          });\n        }\n      }\n    }); //布局字段中不允许再拖入布局字段时还原上传控件的顺序\n\n    if (!isPass && window.panelList) {\n      vueInst.data.list = window.panelList;\n    }\n\n    return isPass;\n  },\n  validateLayoutField: function validateLayoutField(vueInst, layout, field) {\n    //这里的校验只针对字段属性拖入和快速复用拖入的\n    var _this = this;\n\n    if (field && (field.dragType == 'field' || field.dragType == 'copy')) {\n      if (field.fieldPath.split('.').length == 2 && field.fieldPath.indexOf('item.') != 0) {\n        //主表字段\n        if (layout.parentNodeType == 'sub' || layout.ctrlType == 'subtable' || layout.ctrlType == 'subDiv') {\n          vueInst.$message.warning(\"子表布局中不允许拖入主表字段。\");\n          return false;\n        } else if (layout.parentNodeType == 'sun' || layout.ctrlType == 'suntable' || layout.ctrlType == 'sunDiv') {\n          vueInst.$message.warning(\"孙表布局中不允许拖入主表字段。\");\n          return false;\n        }\n      } else if (field.fieldPath.split('.').length == 2 && field.fieldPath.indexOf('item.') == 0) {\n        //子表字段\n        if ((layout.ctrlType == 'subtable' || layout.ctrlType == 'subDiv') && !layout.options.boSubEntity) {\n          vueInst.$message.warning(\"请先绑定子表。\");\n          return false;\n        } else if (!layout.parentNodeType && !(layout.ctrlType == 'subtable' || layout.ctrlType == 'subDiv')) {\n          vueInst.$message.warning(\"主表布局中不允许拖入子表字段。\");\n          return false;\n        } else if (layout.parentNodeType == 'sun') {\n          vueInst.$message.warning(\"孙表布局中不允许拖入子表字段。\");\n          return false;\n        } else if (layout.options.boSubEntity && layout.options.boSubEntity != field.tableName) {\n          vueInst.$message.warning(\"子表布局绑定的BO实体与拖入字段所属BO实体不一致。\");\n          return false;\n        }\n      } else if (field.fieldPath.split('.').length == 4) {\n        //孙表字段\n        if ((layout.ctrlType == 'suntable' || layout.ctrlType == 'sunDiv') && !layout.options.boSubEntity) {\n          vueInst.$message.warning(\"请先绑定孙表。\");\n          return false;\n        } else if (!layout.parentNodeType) {\n          vueInst.$message.warning(\"主表布局中不允许拖入孙表字段。\");\n          return false;\n        } else if (layout.parentNodeType == 'sub' && !(layout.ctrlType == 'suntable' || layout.ctrlType == 'sunDiv')) {\n          vueInst.$message.warning(\"子表布局中不允许拖入孙表字段。\");\n          return false;\n        } else if (layout.options.boSubEntity && layout.options.boSubEntity != field.tableName) {\n          vueInst.$message.warning(\"孙表布局绑定的BO实体与拖入字段所属BO实体不一致。\");\n          return false;\n        }\n      }\n    }\n\n    return true;\n  }\n};",null]}