{"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]}