{"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\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\PropertyPanel.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\PropertyPanel.vue","mtime":1675071992022},{"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\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es7.object.get-own-property-descriptors\";\nimport \"core-js/modules/es6.object.keys\";\nimport _defineProperty from \"D:/jenkins/workspace/xq-web-bpm/node_modules/@babel/runtime/helpers/esm/defineProperty\";\nimport \"core-js/modules/es6.string.ends-with\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\nimport form from '@/api/form.js';\nimport { Base64 } from 'js-base64';\nimport deepmerge from 'deepmerge';\nimport { advanceComponents, basicComponents, layoutComponents } from '@/api/controlsConfig.js';\nimport LayoutProperty from '@/components/form/LayoutProperty.vue';\nimport AdvancedProperty from '@/components/form/AdvancedProperty.vue';\nimport BasicsProperty from '@/components/form/BasicsProperty.vue';\nimport htEditor from '@/components/common/HtEditor.vue';\nimport i18nMessageEdit from '@/components/system/I18nMessageEdit.vue';\nimport WidgetFormBus from '@/components/form/bus/WidgetFormBus.js';\nimport utils from '@/hotent-ui-util.js';\n\nvar EipSysTypeSelector = function EipSysTypeSelector() {\n return import('@/components/selector/EipSysTypeSelector.vue');\n};\n\nexport default {\n name: 'property-panel',\n props: ['data', 'boDefData', 'formData', 'mainBoFields', 'subTables', 'sunTablesMap'],\n components: {\n LayoutProperty: LayoutProperty,\n AdvancedProperty: AdvancedProperty,\n BasicsProperty: BasicsProperty,\n htEditor: htEditor,\n i18nMessageEdit: i18nMessageEdit,\n EipSysTypeSelector: EipSysTypeSelector\n },\n data: function data() {\n return {\n formCollapseActiveNames: 'formBasic',\n basicComponents: basicComponents,\n layoutComponents: layoutComponents,\n advanceComponents: advanceComponents,\n copyAdvanceComponents: '',\n activeTabName: 'field',\n avtiveCollapseName: 'basic',\n field: this.data,\n formObj: this.formData,\n dialogincluddingFileVisible: false,\n //引入脚本dialog\n formSettingVisible: false,\n //表单配置dialog\n formSetting: {\n align: 'right',\n customColon: false,\n fontColor: 'rgb(150, 151, 153)'\n },\n formHtmlUrl: '',\n //获取表单HTML url\n formHtml: '',\n //表单html数据\n formExpand: \"\",\n //表单json数据\n isWatch: false,\n includeFiles: {\n diyFile: '',\n diyCss: '',\n diyJs: ''\n },\n //引入脚本和样式对象\n tableFields: [],\n filterListType: ['number', 'currency', 'date', 'amap'],\n clobFieldList: [\"textarea\", \"dialog\", \"imageViewer\", \"related-process\", \"signature\", \"button\", \"immediate-single\", \"immediate-textarea\", \"milepost\", \"eip-cascader\", \"dataView\", \"text\", \"QRcode\", \"iframe\", \"image\"],\n //大文本类型字段允许绑定的控件\n allBoData: [],\n formVarData: [],\n returnData: [],\n cmOptions: {\n value: '',\n mode: 'vue',\n readOnly: false,\n smartIndent: true,\n tabSize: 2,\n theme: 'base16-light',\n lineNumbers: true,\n line: true\n },\n cmOptions2: {\n value: '',\n mode: 'javascript',\n readOnly: false,\n smartIndent: true,\n tabSize: 2,\n theme: 'base16-light',\n lineNumbers: true,\n line: true\n },\n i18nMessageKey: '',\n createKeyMap: {\n text: true,\n image: true,\n 'immediate-single': true,\n 'immediate-textarea': true\n },\n sunTables: [],\n currentBoSubEntity: '',\n fieldIndexData: {},\n noAttrFieldList: []\n };\n },\n created: function created() {\n var _this2 = this;\n\n var me_ = this; //表单初始化时收集无属性控件字段\n\n WidgetFormBus.$on(\"initNoAttrField\", function (obj) {\n if (_this2.isNoAttrField(obj) && obj.tableName) {\n me_.noAttrFieldListChange(obj, true);\n }\n });\n },\n methods: {\n //重置表单配置信息\n formSettingReset: function formSettingReset() {\n this.formSetting = {\n align: 'right',\n customColon: false,\n fontColor: 'rgb(150, 151, 153)'\n };\n this.formData.formSetting = '';\n },\n //打开表单配置弹框\n formSettingClick: function formSettingClick() {\n if (this.formData.formSetting) {\n this.formSetting = JSON.parse(this.formData.formSetting);\n }\n\n this.formSettingVisible = true;\n },\n //保存表单配置信息\n formSettingOk: function formSettingOk() {\n this.formData.formSetting = JSON.stringify(this.formSetting);\n this.formSettingVisible = false;\n },\n saveValidate: function saveValidate() {\n var _this3 = this;\n\n var this_ = this;\n utils.validateForm(this, 'editBpmForm').then(function () {\n //手机表单保存时 表单类型指定为手机表单类型\n if (this_.formData.formType && this_.formData.formType != 'mobile') {\n this_.formData.formType = 'pc';\n } // this.formData.name = this.formData.formName;\n\n\n this_.$emit('saveEnd');\n }).catch(function (reason) {\n var rules = reason.map(function (obj) {\n return obj.rule;\n });\n\n if (this_.formData && this_.formData.typeName && this_.formData.name && this_.formData.formKey) {\n if (rules.includes('isExist')) {\n _this3.$message.error('表单别名重复');\n } else if (rules.includes('regex')) {\n _this3.$message.error('只能输入字母、数字、下划线,且以字母开头');\n }\n } else {\n //获取到报错后的规则数组\n if (rules.includes('required')) {\n _this3.$message.error('请完整填写表单内容');\n } else if (rules.includes('isExist')) {\n _this3.$message.error('表单别名重复');\n }\n }\n\n _this3.activeTabName = 'form';\n });\n },\n filterFields: function filterFields(obj) {\n if ((obj.columnType == \"clob\" || obj.dataType == \"clob\") && this.clobFieldList.indexOf(this.field.ctrlType) == -1) {\n return false;\n }\n\n if (this.filterListType.indexOf(this.field.ctrlType) > -1) {\n if (this.field.ctrlType == \"date\" && this.field.options.dataType != \"date\") {\n this.field.options.dataType = \"date\";\n }\n\n return obj.dataType == this.field.options.dataType;\n } else if (obj.nodeType == 'sub') {\n return false;\n } else {\n return true;\n }\n },\n //高级控件\n filterAdvanceFields: function filterAdvanceFields(obj) {\n //子/孙表不能选择的控件类型 返回false 不能选择\n var types = ['dataView', 'QRcode', 'milepost'];\n\n if (this.field.boSubEntity && types.includes(obj.ctrlType)) {\n return false;\n }\n\n return true;\n },\n //常用控件\n filterFieldsByCurrentField: function filterFieldsByCurrentField(obj) {\n //子/孙表不能选择的控件类型 返回false 不能选择\n var types = ['related-process', 'amap'];\n\n if (this.field.boSubEntity && types.includes(obj.ctrlType)) {\n return false;\n }\n\n if (!obj.options.dataType) {\n return true;\n }\n\n if (!this.field.options) {\n return true;\n }\n\n if (!this.field.options.dataType) {\n return true;\n }\n\n if (this.field.options.dataType == obj.options.dataType) {\n return true;\n }\n\n var dataTypes = obj.options.dataType.split('|');\n\n if (dataTypes.indexOf('string') != -1) {\n dataTypes.push('varchar');\n dataTypes.push('nvarchar');\n } // 数字控件不能绑定日期控件\n\n\n if (this.field.options.dataType == 'number') {\n return obj.options.dataType != 'date';\n } // 日期控件不能绑定数字控件\n\n\n if (this.field.options.dataType == 'date') {\n return obj.options.dataType != 'number';\n } // 大文本类型默认多行文本\n\n\n if (this.field.options.dataType == 'clob') {\n if (obj.ctrlType == 'textarea') {\n return true;\n }\n } // 字符串类型可以选择所有字段\n\n\n var charArr = ['string', 'varchar', 'nvarchar']; // 需要兼容以前的代码 this.field.options.dataType == \"\"\n\n var result = this.field.options.dataType.split('|').filter(function (item) {\n return dataTypes.indexOf(item) != -1 || charArr.indexOf(item) != -1;\n });\n\n if (result && result.length >= 1) {\n return true;\n }\n\n return false;\n },\n\n /**\r\n * 新旧属性的替换,并保留原有的双向绑定,\r\n * 具体逻辑为:\r\n * 1.新属性有值的,旧属性没有的,新增\r\n * 2.新属性没有的,旧属性有的,删除\r\n * 3.新属性有的,旧属性也有,,则保留旧属性(desc等一些特殊key 需要特殊逻辑处理)\r\n */\n attributeToReplace: function attributeToReplace(oldV, newV) {\n for (var key in oldV) {\n //2.新属性没有的,旧属性有的,删除\n if (key != \"key\" && newV[key] === undefined && (oldV[key] || oldV[key] === \"\")) {\n delete oldV[key];\n }\n }\n\n for (var _key in newV) {\n var value = newV[_key]; //1.新属性有值的,旧属性没有的,新增\n\n if (oldV[_key] === undefined || oldV[_key] === '') {\n this.$set(oldV, _key, value); //3.新属性有的,旧属性也有,,则保留旧属性(options等一些特殊key 需要特殊逻辑处理)\n } else {\n if (_key === 'options') {\n // 保留绑定的dataType\n var boDataType = oldV[_key].dataType;\n oldV[_key] = value;\n\n if (boDataType) {\n oldV[_key].dataType = boDataType;\n }\n }\n }\n } //旧属性有值 和新属性的值不一样 要重置\n\n\n for (var keys in oldV) {\n if (!(oldV[keys] instanceof Object)) {\n if (oldV[keys] != newV[keys] && newV[keys] != undefined) {\n oldV[keys] = newV[keys];\n }\n }\n }\n },\n //切换控件类型对应改变属性\n changeCtrlType: function changeCtrlType(isClean) {\n var me_ = this;\n var selectObj = deepmerge({}, me_.field, {\n clone: true\n });\n basicComponents.forEach(function (item) {\n if (me_.field.ctrlType == item.ctrlType) {\n // me_.field = deepmerge({}, item, { clone: true });\n var i = deepmerge({}, item, {\n clone: true\n });\n i.parentNodeType = me_.data.parentNodeType;\n i.boSubEntity = me_.data.boSubEntity;\n me_.attributeToReplace(me_.field, i);\n me_.field.key = me_.data.key;\n\n if (!isClean) {\n me_.field.boDefId = selectObj.boDefId;\n me_.field.target = selectObj.target;\n me_.field.boAttrId = selectObj.boAttrId;\n me_.field.fieldPath = selectObj.fieldPath;\n me_.field.name = selectObj.name;\n me_.field.desc = selectObj.desc;\n me_.field.title = selectObj.desc;\n me_.field.entId = selectObj.entId;\n me_.field.boDefAlias = selectObj.boDefAlias;\n me_.field.tableName = selectObj.tableName;\n me_.field.columnType = selectObj.columnType;\n me_.field.options.format = selectObj.options.format;\n me_.field.options.inputFormat = selectObj.options.format;\n me_.field.options.decimalDigits = selectObj.decimalLen;\n me_.field.options.maxDecimalDigits = selectObj.decimalLen;\n } //me_.$emit(\"data:update\", me_.field);\n //WidgetFormBus.$emit(\"changeCtrlType\", me_.field);\n\n }\n });\n advanceComponents.forEach(function (item) {\n if (me_.field.ctrlType == item.ctrlType) {\n // me_.field = deepmerge({}, item, { clone: true });\n var e = deepmerge({}, item, {\n clone: true\n });\n e.parentNodeType = me_.data.parentNodeType;\n e.boSubEntity = me_.data.boSubEntity;\n me_.attributeToReplace(me_.field, e);\n me_.field.key = me_.data.key;\n\n if (!isClean) {\n me_.field.boDefId = selectObj.boDefId;\n me_.field.target = selectObj.target;\n me_.field.boAttrId = selectObj.boAttrId;\n me_.field.fieldPath = selectObj.fieldPath;\n me_.field.name = selectObj.name;\n me_.field.desc = selectObj.desc;\n me_.field.title = selectObj.desc;\n me_.field.entId = selectObj.entId;\n me_.field.boDefAlias = selectObj.boDefAlias;\n me_.field.tableName = selectObj.tableName;\n me_.field.columnType = selectObj.columnType;\n me_.field.options.format = selectObj.format;\n me_.field.options.inputFormat = selectObj.format;\n me_.field.options.decimalDigits = selectObj.decimalLen;\n me_.field.options.maxDecimalDigits = selectObj.decimalLen;\n } // WidgetFormBus.$emit(\"changeCtrlType\", me_.field);\n\n }\n });\n me_.$nextTick(function () {\n me_.$emit('update:data', me_.field);\n });\n },\n //引入脚本和样式对象保存\n includeFilesOk: function includeFilesOk() {\n var _this4 = this;\n\n if (!this.formHtml) {\n this.$message.warning('模板HTML不能为空!');\n return;\n }\n\n this.dialogincluddingFileVisible = false;\n form.saveFormJs({\n formId: this.formData.id,\n diyJs: this.includeFiles.diyJs,\n formHtml: Base64.encode(this.formHtml, 'utf-8'),\n formExpand: Base64.encode(this.formExpand, 'utf-8')\n }).then(function (resp) {\n if (resp.state) {\n _this4.$message.success(resp.message);\n }\n });\n },\n variablesClick: function variablesClick(data) {\n this.includeFiles.diyJs += data.value;\n },\n afterformHtml: function afterformHtml(data) {\n this.formExpand = data.bpmForm.formExpand;\n this.formHtml = data.bpmForm.formHtml;\n this.includeFiles.diyJs = data.bpmForm.diyJs;\n },\n includdingFile: function includdingFile() {\n this.dialogincluddingFileVisible = true;\n this.formHtmlUrl = '/form/form/v1/previewDesignVue?formId=' + this.formData.id;\n this.includeFiles = this.formData.includeFiles ? Base64.decode(this.formData.includeFiles, 'utf-8') : {\n diyFile: ' ',\n diyCss: ' ',\n diyJs: ' '\n };\n },\n handleClick: function handleClick(tab, event) {\n console.info(tab);\n },\n // 改变地图地址绑定的字段 设置fieldPath\n changeMap: function changeMap(value) {\n var selectObj = null;\n this.tableFields.forEach(function (boData) {\n if (!selectObj) {\n selectObj = boData.children.find(function (opt) {\n return opt.name === value;\n });\n\n if (selectObj) {\n selectObj.boDefAlias = boData.boDefAlias || boData.fieldPath.split('.')[0];\n selectObj.tableName = boData.name;\n }\n }\n });\n this.field.options.addressMap = selectObj.path + '.' + selectObj.name;\n },\n // 改变绑定的字段 设置fieldPath\n change: function change(value) {\n var _this5 = this;\n\n var selectObj = null;\n this.fieldIndexData = {};\n this.tableFields.forEach(function (boData) {\n boData.children.forEach(function (v, i) {\n var keyName = v.name;\n\n if (value.indexOf('.') != -1) {\n keyName = v.path + '.' + v.name;\n }\n\n if (v.isRequired && keyName == value) {\n if (!_this5.fieldIndexData.fieldName) {\n _this5.fieldIndexData.fieldName = v.fieldName;\n _this5.fieldIndexData.index = i;\n }\n }\n });\n\n if (!selectObj) {\n selectObj = boData.children.find(function (opt) {\n return opt.name === value;\n });\n\n if (value.indexOf('.') != -1) {\n selectObj = boData.children.find(function (opt) {\n return opt.path + '.' + opt.name === value;\n });\n }\n\n if (selectObj) {\n selectObj.boDefAlias = boData.boDefAlias || boData.path.split('.')[0];\n selectObj.tableName = boData.name;\n }\n }\n });\n\n if (!selectObj) {\n if (this.field.parentNodeType == 'sub') {\n this.field.fieldPath = 'item.' + value;\n this.field.name = 'item.' + value;\n } else {\n this.$message.warning('只允许子表绑定虚拟字段');\n }\n\n return;\n }\n\n this.field.boDefId = selectObj.boDefId;\n this.field.boAttrId = selectObj.id;\n\n if (this.field.parentNodeType == 'sub') {\n this.field.fieldPath = 'item.' + selectObj.name;\n } else {\n this.field.fieldPath = selectObj.path + '.' + selectObj.name;\n }\n\n this.field.options.dataType = selectObj.dataType;\n this.field.name = selectObj.name;\n this.field.desc = selectObj.desc;\n this.field.title = selectObj.desc;\n this.field.entId = selectObj.entId;\n this.field.boDefAlias = selectObj.boDefAlias;\n this.field.tableName = selectObj.tableName;\n this.field.columnType = selectObj.columnType;\n\n if (selectObj.dataType == 'date') {\n this.field.options.format = selectObj.format;\n this.field.options.inputFormat = selectObj.format;\n } else if (selectObj.dataType == 'number') {\n this.field.options.maxDecimalDigits = selectObj.decimalLen;\n this.field.options.decimalDigits = selectObj.decimalLen;\n }\n },\n //给无属性控件设置关联ent属性\n changeNoAttrFile: function changeNoAttrFile(value) {\n var _this = this;\n\n this.tableFields.forEach(function (ent) {\n if (ent.name == value) {\n _this.$set(_this.field, 'entId', ent.id);\n\n _this.$set(_this.field, 'boDefId', ent.boDefId);\n }\n });\n },\n isChangeWatch: function isChangeWatch() {\n this.isWatch = true;\n },\n editI18nMessage: function editI18nMessage(after) {\n this.i18nMessageKey = this.field.fieldPath || this.field.path;\n\n if (this.createKeyMap[this.field.ctrlType]) {\n this.i18nMessageKey = this.formData.formKey + '.' + this.field.ctrlType + Math.random() * 5000;\n }\n\n if (this.i18nMessageKey && after) {\n this.i18nMessageKey += after;\n }\n\n this.$refs.i18nMessageEdit.handleOpen();\n },\n afterSaveI18n: function afterSaveI18n(data) {\n data.key = data.key.replace('$', '#');\n\n if (data.prop.endsWith('placeholder')) {\n this.field.options.placeholder = data.key;\n this.field.options.placeholder_zh = data.desc;\n } else if (data.prop.endsWith('tip')) {\n this.tooltip = data.key;\n } else {\n this.field.desc = data.key;\n this.field.desc_zh = data.desc;\n }\n },\n isNoAttrField: function isNoAttrField(field) {\n if (!field) {\n field = this.field;\n }\n\n if (field.ctrlType == 'text' || field.ctrlType == 'immediate-single' || field.ctrlType == 'immediate-textarea' || field.ctrlType == 'button' && !field.options.bindEventjson.isShowInput) {\n return true;\n }\n\n return false;\n },\n noAttrFieldListChange: function noAttrFieldListChange(field, isAdd) {\n var _this6 = this;\n\n //无属性控件的变化实时其更新联动列表\n var inList = false;\n this.noAttrFieldList.forEach(function (item) {\n if (item.key === field.key) {\n if (isAdd) {\n inList = true;\n } else {\n _this6.noAttrFieldList.remove(item);\n\n return;\n }\n }\n });\n\n if (isAdd && !inList) {\n if (field.ctrlType == 'button') {\n field.desc = field.options.bindEventjson.name;\n }\n\n this.noAttrFieldList.push(field);\n }\n }\n },\n watch: {\n data: function data(val) {\n this.field = val;\n },\n field: {\n handler: function handler(val) {\n var _this7 = this;\n\n // 下拉框 多选isMultiple 属性废弃 使用options.multiple属性 为了兼容以前的代码 将isMultiple true 值赋值给 options.multiple属性\n if (val.ctrlType == 'select' && val.isMultiple) {\n val.options.multiple = true;\n val.isMultiple = false;\n }\n\n if (val.parentNodeType == 'sub' || val.parentNodeType == 'sun') {\n if (val.boSubEntity) {\n this.currentBoSubEntity = val.boSubEntity;\n this.tableFields = this.subTables.filter(function (item) {\n return item.name === val.boSubEntity;\n });\n\n if (this.tableFields.length > 0) {\n for (var e = 0; e < this.tableFields.length; e++) {\n if (this.tableFields[e].children.length > 0) {\n for (var w = 0; w < this.tableFields[e].children.length; w++) {\n this.tableFields[e].children[w].keyName = this.tableFields[e].children[w].name;\n }\n }\n }\n }\n } //如果是孙表,则选取子表里的孙表供选择绑定\n\n\n if ((val.ctrlType == 'suntable' || val.ctrlType == 'sunDiv') && this.currentBoSubEntity) {\n this.sunTables = this.sunTablesMap[this.currentBoSubEntity] || [];\n } //如果是孙表里的控件,则找到这个一个孙表供其选择属性\n\n\n if (val.parentNodeType == 'sun') {\n for (var subName in this.sunTablesMap) {\n var sunTabs = this.sunTablesMap[subName];\n\n if (sunTabs) {\n sunTabs.forEach(function (sunTab) {\n if (sunTab.name == _this7.currentBoSubEntity) {\n _this7.tableFields = [sunTab];\n }\n });\n\n if (this.tableFields.length > 0) {\n for (var o = 0; o < this.tableFields.length; o++) {\n if (this.tableFields[o].children.length > 0) {\n for (var h = 0; h < this.tableFields[o].children.length; h++) {\n this.tableFields[o].children[h].keyName = this.tableFields[o].children[h].name;\n }\n }\n }\n }\n }\n }\n }\n } else {\n if (this.mainBoFields.length > 0) {\n for (var y = 0; y < this.mainBoFields.length; y++) {\n if (this.mainBoFields[y].children.length > 0) {\n for (var t = 0; t < this.mainBoFields[y].children.length; t++) {\n this.mainBoFields[y].children[t].keyName = this.mainBoFields[y].children[t].path + '.' + this.mainBoFields[y].children[t].name;\n }\n }\n }\n }\n\n if (val && val.ctrlType == 'time') {\n this.tableFields = JSON.parse(JSON.stringify(this.mainBoFields));\n this.tableFields.forEach(function (table) {\n if (table.children) {\n var newFileds = [];\n table.children = table.children.filter(function (f) {\n return f.dataType != 'date' && f.dataType != 'number';\n });\n }\n });\n } else {\n this.mainBoFields.forEach(function (item) {\n for (var q = 0; q < item.children.length; q++) {\n for (var i = 0; i < item.children.length - 1 - q; i++) {\n if (item.children[i].index > item.children[i + 1].index) {\n var temp = item.children[i];\n item.children[i] = item.children[i + 1];\n item.children[i + 1] = temp;\n }\n }\n }\n });\n this.tableFields = this.mainBoFields;\n }\n } //合并数组对象\n\n\n var allBoData = [];\n var formVarData = [];\n var returnData = []; //对话框返回值选择的字段信息 主表对应主表,子表对应子表,孙表对应孙表。\n\n var returnTypes = ['select', 'dropdown', 'dialog'];\n\n if ((val.ctrlType == 'suntable' || val.ctrlType == 'sunDiv') && this.currentBoSubEntity || val.parentNodeType == 'sun') {\n this.mainBoFields.forEach(function (mainBoField) {\n formVarData.push(_objectSpread({}, mainBoField));\n allBoData.push(_objectSpread({}, mainBoField));\n });\n\n if (this.sunTables && this.sunTables.length > 0) {\n this.sunTables.forEach(function (sunTable) {\n if (val.parentNodeType == 'sun') {\n if (sunTable.name == val.boSubEntity) {\n allBoData.push(_objectSpread({}, sunTable));\n formVarData.push(_objectSpread({}, sunTable));\n returnData.push(_objectSpread({}, sunTable));\n }\n } else {\n allBoData.push(_objectSpread({}, sunTable));\n formVarData.push(_objectSpread({}, sunTable));\n returnData.push(_objectSpread({}, sunTable));\n }\n });\n }\n } else {\n if (val.parentNodeType != 'sub' && returnTypes.includes(val.ctrlType)) {\n //添加主表字段\n this.mainBoFields.forEach(function (mainBoField) {\n returnData.push(_objectSpread({}, mainBoField));\n });\n } else if (val.parentNodeType == 'sub' && returnTypes.includes(val.ctrlType)) {\n //添加子表字段\n this.subTables.forEach(function (subTable) {\n returnData.push(_objectSpread({}, subTable));\n });\n } //添加主表字段\n\n\n this.mainBoFields.forEach(function (mainBoField) {\n allBoData.push(_objectSpread({}, mainBoField));\n });\n this.subTables.forEach(function (subTable) {\n allBoData.push(_objectSpread({}, subTable));\n var sunTabs = _this7.sunTablesMap[subTable.name];\n\n if (sunTabs) {\n sunTabs.forEach(function (sunTab) {\n allBoData.push(_objectSpread({}, sunTab));\n });\n }\n });\n formVarData = allBoData;\n } //判断无属性控件 按钮\n\n\n if (this.isNoAttrField() && this.tableFields && this.tableFields.length > 0) {\n if (!val.name) {\n this.$set(val, 'name', 'c_' + val.key);\n }\n\n if (!val.boDefAlias) {\n this.$set(val, 'boDefAlias', this.tableFields[0].boDefAlias);\n }\n\n if (!val.tableName) {\n this.$set(val, 'tableName', this.tableFields[0].name);\n this.changeNoAttrFile(this.tableFields[0].name);\n }\n\n this.noAttrFieldListChange(val, true);\n } else if (val.ctrlType == 'button' && val.options.bindEventjson.isShowInput) {\n this.noAttrFieldListChange(val, false);\n }\n\n this.allBoData = allBoData;\n this.formVarData = formVarData;\n this.returnData = returnData;\n this.$emit('update:data', val); //通过模板生成的表单字段需更改为 建模别名.字段名 (解决2个不同的建模,但主表建模字段一样)\n\n if (val.target && val.parentNodeType != 'sub' && val.parentNodeType != 'sun') {\n val.target = val.boDefAlias + '.' + val.name;\n }\n },\n deep: true\n },\n 'field.ctrlType': {\n handler: function handler(newVal, oldVal) {\n if (oldVal == undefined || newVal == undefined || newVal == oldVal) {\n return;\n }\n\n if (!this.isWatch) {\n return;\n }\n\n if (oldVal == 'number' || oldVal == 'currency') {\n if (newVal == 'date' || newVal == 'time') {\n this.changeCtrlType(true);\n } else {\n this.changeCtrlType(false);\n }\n } else if (oldVal == 'date' || oldVal == 'time') {\n if (newVal == 'number' || newVal == 'currency') {\n this.changeCtrlType(true);\n } else {\n this.changeCtrlType(false);\n }\n } else if (newVal == 'select') {\n this.changeCtrlType(false);\n } else {\n if (newVal == 'number' || newVal == 'currency') {\n if (this.field.columnType == 'number') {\n this.changeCtrlType(false);\n } else {\n this.changeCtrlType(true);\n }\n } else if (newVal == 'date' || newVal == 'time') {\n if (this.field.columnType == 'date') {\n this.changeCtrlType(false);\n } else {\n this.changeCtrlType(true);\n }\n } else {\n this.changeCtrlType(false);\n }\n }\n\n this.isWatch = false;\n }\n }\n },\n mounted: function mounted() {\n // 声明\n this.$validator = this.$root.$validator; // 复制高级字段列表\n\n this.copyAdvanceComponents = this.advanceComponents.slice();\n },\n destroyed: function destroyed() {}\n};",null]}