{"remainingRequest":"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\\BasicsProperty.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\BasicsProperty.vue","mtime":1675071991960},{"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":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport ValidataProperty from \"@/components/form/ValidataProperty.vue\";\r\nimport FormVarSelector from \"@/components/form/FormVarSelector.vue\";\r\nimport ImgFileUpload from \"@/components/common/ImgFileUpload.vue\";\r\nimport IconDialog from \"@/components/dialog/IconDialog.vue\";\r\nimport { isArray } from \"util\";\r\nimport { Base64 } from \"js-base64\";\r\nimport form from \"@/api/form.js\";\r\nimport HtFormItem from \"bpm_el_ui/src/components/common/HtFormItem\";\r\nimport i18nMessageEdit from \"@/components/system/I18nMessageEdit.vue\";\r\nimport FormulasDialog from \"@/components/form/customView/FormulasDialog.vue\";\r\n\r\nexport default {\r\n  name: \"basics-property\",\r\n  props: [\"data\", \"mainBoFields\", \"boDefData\", \"allBoData\",\"formVarData\",\"returnData\",\"formType\",\"linkageNoAttrFieldList\"],\r\n  components: {\r\n    HtFormItem,\r\n    ValidataProperty,\r\n    IconDialog,\r\n    FormVarSelector,\r\n    ImgFileUpload,\r\n    i18nMessageEdit,\r\n    FormulasDialog\r\n  },\r\n  data() {\r\n    return {\r\n      selectQueryDialog: false,\r\n      dialogQuery: false,\r\n      dialogImageUrl: \"\",\r\n      dialogVisible: false,\r\n      effectObj: {\r\n        linkageType:\"field\",\r\n        validateObj: {\r\n          fieldPath: this.data.fieldPath,\r\n          options: {\r\n            validateList: [],\r\n            validate: \"\",\r\n            validateType:\r\n              \"confirmed|email|regex|min|max|min_value|max_value|isAfter|isBefore|isStart|isEnd|numeric|between|is|digits|mobile|required|alpha_spaces|alpha_dash|alpha_num|alpha|method\"\r\n          }\r\n        }\r\n      },\r\n      field: this.data,\r\n      customQuerys: [],\r\n      customQueryUrl: \"\",\r\n      fields: [],\r\n      filterListType: [\"number\", \"currency\", \"date\", \"amap\"],\r\n      dialogLinkageVisible: false, //联动设置对话框\r\n      linkage: [\r\n        {\r\n          value: \"\",\r\n          effect: [\r\n            {\r\n              validateObj: {\r\n                fieldPath: this.data.fieldPath,\r\n                options: {\r\n                  validateList: [],\r\n                  validate: \"\",\r\n                  validateType:\r\n                    \"confirmed|email|regex|min|max|min_value|max_value|isAfter|isBefore|isStart|isEnd|numeric|between|is|digits|mobile|required|alpha_spaces|alpha_dash|alpha_num|alpha|method\"\r\n                }\r\n              }\r\n            }\r\n          ]\r\n        }\r\n      ], //联动表达式\r\n      items: [\r\n        //联动校验显示隐藏\r\n        { key: \"n\", value: \"隐藏\" },\r\n        { key: \"w\", value: \"显示\" },\r\n        { key: \"b\", value: \"必填\" }\r\n      ],\r\n      selectors: [\r\n        //选择器数组\r\n        {\r\n          name: \"用户选择器\",\r\n          alias: \"eip-user-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"用户ID\" },\r\n            { key: \"account\", value: \"用户账号\" },\r\n            { key: \"fullname\", value: \"用户姓名\" },\r\n            { key: \"mobile\", value: \"用户手机\" },\r\n            { key: \"email\", value: \"用户邮箱\" }\r\n          ]\r\n        },\r\n        {\r\n          name: \"组织选择器\",\r\n          alias: \"eip-org-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"组织ID\" },\r\n            { key: \"code\", value: \"组织代码\" },\r\n            { key: \"name\", value: \"组织名称\" },\r\n            { key: \"pathName\", value: \"组织路径\" }\r\n          ]\r\n        },\r\n        {\r\n          name: \"角色选择器\",\r\n          alias: \"eip-role-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"角色ID\" },\r\n            { key: \"code\", value: \"角色代码\" },\r\n            { key: \"name\", value: \"角色名称\" }\r\n          ]\r\n        },\r\n        {\r\n          name: \"职务选择器\",\r\n          alias: \"eip-job-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"职务ID\" },\r\n            { key: \"code\", value: \"职务代码\" },\r\n            { key: \"name\", value: \"职务名称\" }\r\n          ]\r\n        },\r\n        {\r\n          name: \"岗位选择器\",\r\n          alias: \"eip-post-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"岗位ID\" },\r\n            { key: \"code\", value: \"岗位代码\" },\r\n            { key: \"name\", value: \"岗位名称\" }\r\n          ]\r\n        },\r\n        {\r\n          name: \"维度选择器\",\r\n          alias: \"eip-demension-selector\",\r\n          fields: [\r\n            { key: \"id\", value: \"维度ID\" },\r\n            { key: \"code\", value: \"维度代码\" },\r\n            { key: \"demName\", value: \"维度名称\" }\r\n          ]\r\n        }\r\n      ],\r\n      dialogcustDialogVisible: false, //对话框\r\n      customDialogs: [], //对话框列表数据\r\n      custDialogprop: {}, //对话框返回值对象\r\n      config: {\r\n        initialFrameHeight: 240,\r\n        UEDITOR_HOME_URL: window.location.origin +'/'+ window.location.pathname.split('/')[1]+'/static/ueditor/',\r\n        toolbars: [\r\n          [\r\n            // 'source', //源代码\r\n            'undo', //撤销\r\n            'bold', //加粗\r\n            'indent', //首行缩进\r\n            'italic', //斜体\r\n            'underline', //下划线\r\n            'strikethrough', //删除线\r\n            'subscript', //下标\r\n            'fontborder', //字符边框\r\n            'superscript', //上标\r\n            'formatmatch', //格式刷\r\n            'forecolor',//字体颜色\r\n            'justifyleft', //居左对齐\r\n            'justifycenter', //居中对齐\r\n            'justifyright', //居右对齐\r\n            'justifyjustify', //两端对齐\r\n            'fontfamily', //字体\r\n            'fontsize', //字号\r\n            'insertorderedlist', //有序列表\r\n            'insertunorderedlist', //无序列表\r\n            'lineheight',//行间距\r\n            'inserttable', //插入表格\r\n          ]\r\n        ],\r\n        // 初始容器宽度\r\n        initialFrameWidth: \"100%\",\r\n        zIndex:9999,\r\n        enableAutoSave: false,\r\n        readonly : false\r\n      },\r\n      upLoadAcceptList: [\r\n        \"jpg\",\r\n        \"jpeg\",\r\n        \"png\",\r\n        \"bmp\",\r\n        \"pdf\",\r\n        \"JPG\",\r\n        \"JPEG\",\r\n        \"PNG\",\r\n        \"BMP\",\r\n        \"PDF\",\r\n        \"doc\",\r\n        \"docx\",\r\n        \"xls\",\r\n        \"xlsx\",\r\n        \"ppt\",\r\n        \"pptx\",\r\n        \"rtf\",\r\n        \"txt\",\r\n        \"zip\",\r\n        \"rar\",\r\n        \"vsd\",\r\n        \"dwg\",\r\n        \"mp4\",\r\n        \"avi\",\r\n        \"3gp\",\r\n        \"rmvb\",\r\n        \"rm\",\r\n        \"wmv\"\r\n      ], //附件上传支持的类型\r\n      dialogTextVisible: false, //属性文本对话框\r\n      textValue: \"\", //属性文本值\r\n      dialogScriptVisible: false, //自定义js脚本对话框\r\n      diyScript: \"\", //自定义js脚本对话框表单值\r\n      scriptText: \"\", //自定义js脚本对话框值\r\n      isBnt: false, //是否按钮脚本\r\n      dicData: [],\r\n      tagData: [],\r\n      dicDefaultProps: {\r\n        children: \"children\",\r\n        label: \"name\"\r\n      },\r\n      custDialogpropKey: 1,\r\n      i18nMessageKey: \"\",\r\n      createKeyMap: {\r\n        text: true,\r\n        image: true,\r\n        \"immediate-single\": true,\r\n        \"immediate-textarea\": true\r\n      },\r\n      companys: [\r\n        {\r\n          label: \"台\"\r\n        },\r\n        {\r\n          label: \"件\"\r\n        },\r\n        {\r\n          label: \"元\"\r\n        }\r\n      ],\r\n      subTables: [], //子表对象\r\n      linkageTypeList: [{key:'field',desc:'字段'},{key:'subTable',desc:'子表'}], //联动类型列表\r\n    };\r\n  },\r\n  methods: {\r\n    //附件类型全选\r\n    selectAll(){\r\n      this.field.options.file.accept=[...this.upLoadAcceptList];\r\n    },\r\n    //附件类型全不选\r\n    selectNotAll(){\r\n      this.field.options.file.accept=[];\r\n    },\r\n    //附件类型反选\r\n    counterSelect(){\r\n      let list = [...this.upLoadAcceptList];\r\n      for(var i=0;i<this.field.options.file.accept.length;i++){\r\n        for(var j=0;j< list.length;j++){\r\n            if(list[j] == this.field.options.file.accept[i]){\r\n              list.splice(j,1);\r\n              break;\r\n          }\r\n        }\r\n      }\r\n      this.field.options.file.accept = list;\r\n    },\r\n    changeShowCondition(value){\r\n      if(value){\r\n        this.field.options.showCondition.fieldPath = \"item.\" + this.field.options.showCondition.target;\r\n      }else{\r\n        this.field.options.showCondition.fieldPath =\"\";\r\n      }\r\n    },\r\n    filterFields(obj) {\r\n      if (this.filterListType.indexOf(this.field.ctrlType) > -1) {\r\n        return obj.dataType == this.field.options.dataType;\r\n      } else if (obj.nodeType == \"sub\") {\r\n        return false;\r\n      } else {\r\n        return true;\r\n      }\r\n    },\r\n    formulasDialog() {\r\n      if (!this.field.fieldPath) {\r\n        this.$message(\"请选择需要修改的组件或绑定属性\");\r\n        return;\r\n      }\r\n      this.$refs.formulasDialog.handleOpen();\r\n    },\r\n    //选择子表，控制子表权限\r\n    subTableChange(value, data) {},\r\n    afterSaveI18n(data) {\r\n      data.key = data.key.replace(\"$\", \"#\");\r\n      if (data.prop.endsWith(\"placeholder\")) {\r\n        this.field.options.placeholder = data.key;\r\n        this.field.options.placeholder_zh = data.desc;\r\n      } else if (data.prop.endsWith(\"tip\")) {\r\n        this.tooltip = data.key;\r\n      } else {\r\n        this.field.desc = data.key;\r\n        this.field.desc_zh = data.desc;\r\n      }\r\n    },\r\n    editI18nMessage(after) {\r\n      this.i18nMessageKey = this.field.fieldPath || this.field.path;\r\n      if (this.createKeyMap[this.field.ctrlType]) {\r\n        this.i18nMessageKey =\r\n          this.formData.formKey +\r\n          \".\" +\r\n          this.field.ctrlType +\r\n          Math.random() * 5000;\r\n      }\r\n      if (this.i18nMessageKey && after) {\r\n        this.i18nMessageKey += after;\r\n      }\r\n      this.$refs.i18nMessageEdit.handleOpen();\r\n    },\r\n    //关闭联动设置对话框\r\n    closeDialogLinkage() {\r\n      this.dialogLinkageVisible = false;\r\n      this.linkage.length = 0;\r\n    },\r\n    getEffectsTargetOptions(){\r\n      let boDataList = [];\r\n      if(this.field.parentNodeType){\r\n        boDataList = this.allBoData.filter(tab => tab.name == this.field.boSubEntity);\r\n      }else{\r\n        boDataList = this.allBoData;\r\n      }\r\n      let linkageBoDataList = JSON.parse(JSON.stringify(boDataList));\r\n      //处理联动无属性字段\r\n      try {\r\n        if(this.effectObj.linkageType=='field' && this.linkageNoAttrFieldList && this.linkageNoAttrFieldList.length>0){\r\n          let tableName = this.field.parentNodeType? this.field.boSubEntity : '';\r\n          let noAttrObj = {name:'noAttrField',desc:'无属性字段',children:[]};\r\n          this.linkageNoAttrFieldList.forEach(item =>{\r\n            if(!tableName || item.tableName === tableName){\r\n              if(item.ctrlType == 'button'){\r\n                item.desc = item.options.bindEventjson.name;\r\n              }\r\n              noAttrObj.children.push(item);\r\n            }\r\n          });\r\n          if(noAttrObj.children.length>0){\r\n             linkageBoDataList.push(noAttrObj);\r\n          }\r\n        }\r\n      } catch (error) {\r\n        console.log('联动添加无属性字段'+error);\r\n      }\r\n      return JSON.parse(JSON.stringify(linkageBoDataList));;\r\n    },\r\n    getLinkageTypeList(effects){\r\n      if(this.field.parentNodeType){\r\n        effects.boType = this.field.parentNodeType?this.field.parentNodeType:'sub';\r\n        return this.linkageTypeList.filter(type => type.key == 'field');\r\n      }else{\r\n         effects.boType = 'main';\r\n        return this.linkageTypeList;\r\n      }\r\n    },\r\n    //按钮控件如果选择了不显示输入框,可以不用绑定属性\r\n    clickNoBindModel(value) {\r\n      if (!value) {\r\n        this.field.fieldPath = \"\";\r\n        this.field.options.noBindModel = true;\r\n        this.field.noTitle = true;\r\n        this.field.noPlaceholder = true;\r\n        this.field.noTooltip = true;\r\n      } else {\r\n        this.field.options.noBindModel = false;\r\n        this.field.noTitle = false;\r\n        this.field.noPlaceholder = false;\r\n        this.field.noTooltip = false;\r\n      }\r\n    },\r\n    icons(icon) {\r\n      if (this.field.ctrlType == \"button\") {\r\n        this.field.options.bindEventjson.icon = icon;\r\n      } else {\r\n        this.field.options.customDialogjson.icon = icon;\r\n      }\r\n    },\r\n    scriptOk() {\r\n      this.dialogScriptVisible = false;\r\n      if (!this.scriptText) {\r\n        this.field.options.script = \"\";\r\n        return;\r\n      }\r\n      if (!this.isBnt) {\r\n        this.field.options.script = Base64.encode(this.scriptText);\r\n      } else {\r\n        this.field.options.script = Base64.encode(this.scriptText);\r\n      }\r\n    },\r\n    async diyScriptChange(myValue) {\r\n      const myField = this.$refs.scriptText;\r\n      var value = myValue;\r\n      if (myField.selectionStart || myField.selectionStart === 0) {\r\n        var startPos = myField.selectionStart;\r\n        var endPos = myField.selectionEnd;\r\n        this.scriptText =\r\n          myField.value.substring(0, startPos) +\r\n          value +\r\n          myField.value.substring(endPos, myField.value.length);\r\n        await this.$nextTick(); // 这句是重点, 圈起来\r\n        myField.focus();\r\n        myField.setSelectionRange(endPos + value.length, endPos + value.length);\r\n      } else {\r\n        this.scriptText += value;\r\n      }\r\n    },\r\n    autoRunJSScript(isBnt) {\r\n      if (isBnt) {\r\n        this.isBnt = true;\r\n      }\r\n      this.dialogScriptVisible = true;\r\n      if (!this.field.options.script) return;\r\n      this.scriptText = Base64.decode(this.field.options.script);\r\n    },\r\n    textClick(node) {\r\n      var value = \"\";\r\n      if (node.nodeType == \"field\") {\r\n        value = \"{{data.\" + node.path + \".\" + node.name + \"}}\";\r\n      } else if (node.nodeType == \"var\") {\r\n        value = \"{\" + node.desc + \":\" + node.name + \"}\";\r\n      }\r\n      this.textValue = this.textValue + value;\r\n    },\r\n    handleRemove(file, fileList) {\r\n      console.log(file, fileList);\r\n    },\r\n    handlePictureCardPreview(file) {\r\n      this.dialogImageUrl = file.url;\r\n      this.dialogVisible = true;\r\n    },\r\n    // 对话框确定事件\r\n    custDialogOk(isDialog) {\r\n      //对话框返回值\r\n      if (this.custDialogprop && this.field.ctrlType == \"dialog\") {\r\n        var mappingConf = [];\r\n        for (var key in this.custDialogprop) {\r\n          mappingConf.push({\r\n            from: key,\r\n            target: [this.custDialogprop[key]],\r\n            targetSub: [this.custDialogprop[key]]\r\n          });\r\n        }\r\n        this.field.options.customDialogjson.custDialog.mappingConf = mappingConf;\r\n        //关联数据返回值对象\r\n      } else if (this.custDialogprop && this.field.ctrlType == \"relation\") {\r\n        this.field.options.gangedBind = this.custDialogprop;\r\n      }\r\n      this.dialogcustDialogVisible = false;\r\n    },\r\n    //对话框返回值解除绑定事件\r\n    unbind(key) {\r\n      for (var item in this.custDialogprop) {\r\n        if (key == item) {\r\n          this.$set(this.custDialogprop, key, \"\");\r\n          delete this.custDialogprop[key];\r\n        }\r\n      }\r\n    },\r\n    //对话框change事件\r\n    changeCustDialog() {\r\n      const this_ = this;\r\n      this_.custDialogprop = {};\r\n      this_.field.options.customDialogjson.custDialog.conditions = [];\r\n      this_.field.options.customDialogjson.custDialog.mappingConf = [];\r\n      this_.field.options.customDialogjson.custDialog.custQueryJson = [];\r\n      this_.field.options.customDialogjson.custDialog.selectNum = \"\";\r\n      if (this_.customDialogs.length == 0) return;\r\n      if (this_.field.options.customDialogjson.custDialog.alias == null) {\r\n        this_.field.options.customDialogjson.custDialog.conditions = [];\r\n        return;\r\n      }\r\n      for (var i = 0, d; (d = this_.customDialogs[i++]); ) {\r\n        if (d.alias == this_.field.options.customDialogjson.custDialog.alias) {\r\n          this_.field.options.customDialogjson.custDialog.selectNum =\r\n            d.selectNum; //单选多选  1：单选。-1：多选\r\n          let treeData;\r\n          if (d.style===2){\r\n            let combineConfig = JSON.parse(d.combinationRule);\r\n            let listDialog = this_.customDialogs.filter(item => item.alias === combineConfig.rightDialog);\r\n            treeData = JSON.parse(listDialog[0].resultfield);\r\n            this_.field.options.customDialogjson.custDialog.type = \"combiDialog\";\r\n          }\r\n          if (d.listDialog && d.listDialog.resultfield) {\r\n            treeData = eval(\"(\" + d.listDialog.resultfield + \")\");\r\n            this_.field.options.customDialogjson.custDialog.type =\r\n              \"combiDialog\";\r\n          }\r\n          if (d.resultfield && d.resultfield!=='[]') {\r\n            treeData = eval(\"(\" + d.resultfield + \")\");\r\n            this_.field.options.customDialogjson.custDialog.type = \"custDialog\";\r\n          }\r\n          for (let q = 0, f; (f = treeData[q++]); ) {\r\n            f.field = f.comment;\r\n          }\r\n          this_.field.options.customDialogjson.resultField = treeData;\r\n          let conditionList = eval(\"(\" + d.conditionfield + \")\");\r\n          this_.field.options.customDialogjson.custDialog.conditions = [];\r\n          //只处理类型等于1的对话框参数（defaultType：1：用户输入，2：固定值 ，3：参数传入）\r\n          if (conditionList && conditionList.length > 0) {\r\n            for (let j = 0, c; (c = conditionList[j++]); ) {\r\n              if (c.defaultType == \"3\") {\r\n                let has = false;\r\n                if (!has)\r\n                  this_.field.options.customDialogjson.custDialog.conditions.push(\r\n                    c\r\n                  );\r\n              }\r\n            }\r\n          }\r\n        }\r\n      }\r\n    },\r\n    custDialogClick() {\r\n      this.dialogcustDialogVisible = true;\r\n      var initConf = this.field.options.customDialogjson.custDialog.mappingConf;\r\n      if (initConf) {\r\n        for (var i = 0, c; (c = initConf[i++]); ) {\r\n          if (!c) continue;\r\n          var target = c.target;\r\n          if (target) target = target.join(\",\");\r\n          this.custDialogprop[c.from] = target;\r\n\r\n          var targetSub = c.targetSub;\r\n          if (targetSub) targetSub = targetSub.join(\",\");\r\n          this.custDialogprop[c.from] = targetSub;\r\n        }\r\n      }\r\n    },\r\n    changeFieldBind() {\r\n      if (\r\n        !this.field ||\r\n        !this.field.options ||\r\n        !this.field.options.selector ||\r\n        !this.field.options.selector.type\r\n      )\r\n        return;\r\n      var alias = this.field.options.selector.type.alias,\r\n        oldBind = this.field.options.bind;\r\n      if (!alias) {\r\n        delete this.field.options;\r\n        return;\r\n      }\r\n      if (\r\n        oldBind &&\r\n        oldBind.length > 0 &&\r\n        this.field.options.bind[0].alias == alias\r\n      )\r\n        return;\r\n      var keyValues = [];\r\n      for (var i = 0; i < this.selectors.length; i++) {\r\n        if (alias == this.selectors[i].alias) {\r\n          var fields = this.selectors[i].fields;\r\n          for (var j = 0; j < fields.length; j++) {\r\n            keyValues.push({\r\n              alias: alias,\r\n              key: fields[j].key,\r\n              value: fields[j].value\r\n            });\r\n          }\r\n        }\r\n      }\r\n      this.field.options.bind = [];\r\n      this.field.options.bind = keyValues;\r\n    },\r\n    linkageOk() {\r\n      if (this.field.ctrlType == \"select\") {\r\n        if (this.linkage.length == 0) {\r\n          this.dialogLinkageVisible = false;\r\n          this.field.options.linkage = [];\r\n        } else {\r\n          try {\r\n            this.linkage.forEach(column => {\r\n              column.effect.forEach(effects => {\r\n                if (effects.type && (effects.target || effects.targetSub)) {\r\n                  this.dialogLinkageVisible = false;\r\n                  this.field.options.linkage = [...this.linkage];\r\n                  // Object.assign(this.field.options.linkage, this.linkage);\r\n                } else {\r\n                  this.$message({ message: \"请将信息填写完整\", type: \"warning\" });\r\n                  throw new Error('breakForEach');\r\n                  return false;\r\n                }\r\n              });\r\n            });\r\n          }catch(e){\r\n            if (e.message != 'breakForEach') throw e;\r\n          }\r\n        }\r\n      } else {\r\n        this.dialogLinkageVisible = false;\r\n        this.field.options.linkage = [...this.linkage];\r\n        // Object.assign(this.field.options.linkage, this.linkage);\r\n      }\r\n    },\r\n    addRows() {\r\n      this.linkage.push({\r\n        value: \"\",\r\n        effect: [\r\n          {\r\n            linkageType:\"field\",\r\n            validateObj: {\r\n              fieldPath: this.field.fieldPath,\r\n              options: {\r\n                validateList: [],\r\n                validate: \"\",\r\n                validateType:\r\n                  \"confirmed|email|regex|min|max|min_value|max_value|isAfter|isBefore|isStart|isEnd|numeric|between|is|digits|mobile|required|alpha_spaces|alpha_dash|alpha_num|alpha|method\"\r\n              }\r\n            }\r\n          }\r\n        ]\r\n      });\r\n    },\r\n    //打开联动设置对话框\r\n    openLinkage() {\r\n      this.subTables = [];\r\n      for (let i = 0; i < this.allBoData.length; i++) {\r\n        if (this.allBoData[i].nodeType == \"sub\") {\r\n          this.subTables.push(this.allBoData[i]);\r\n        }\r\n      }\r\n      if (this.field.options.linkage && this.field.options.linkage.length > 0) {\r\n        this.linkage = [...this.field.options.linkage];\r\n      }else{\r\n        this.linkage = [];\r\n      }\r\n      this.dialogLinkageVisible = true;\r\n    },\r\n    // 当字段与关联查询绑定后，将关联查询中多余的属性删除\r\n    slimCustomQuery(customQuery) {\r\n      if (customQuery && customQuery.constructor == Object) {\r\n        // 删除多余的属性\r\n        delete customQuery[\"id\"];\r\n        delete customQuery[\"createTime\"];\r\n        delete customQuery[\"pkVal\"];\r\n        delete customQuery[\"objName\"];\r\n        delete customQuery[\"needPage\"];\r\n        delete customQuery[\"pageSize\"];\r\n        delete customQuery[\"dsalias\"];\r\n        delete customQuery[\"dataParam\"];\r\n        delete customQuery[\"sortfield\"];\r\n        delete customQuery[\"diySql\"];\r\n        delete customQuery[\"isTable\"];\r\n        delete customQuery[\"sqlBuildType\"];\r\n        // delete customQuery[\"dsType\"];\r\n        delete customQuery[\"url\"];\r\n        delete customQuery[\"header\"];\r\n        delete customQuery[\"requestType\"];\r\n        delete customQuery[\"pageKey\"];\r\n        delete customQuery[\"pageSizeKey\"];\r\n        delete customQuery[\"totalKey\"];\r\n        delete customQuery[\"listKey\"];\r\n      }\r\n    },\r\n    //选择下拉框控件并绑定关联查询\r\n    setSelectQuery(alias, index) {\r\n      const _this = this;\r\n      _this.customQuerys.forEach(item => {\r\n        //判断选择的关联查询是否存在\r\n        if (alias == item.alias) {\r\n          if (typeof item.conditionfield == \"string\") {\r\n            item.conditionfield = JSON.parse(item.conditionfield); //parseToJson(item.customQuery.conditionfield);\r\n            item.resultfield = JSON.parse(item.resultfield); // parseToJson(item.customQuery.resultfield);\r\n            item.conditionfield.forEach(res => {\r\n              _this.$set(res, \"fieldPath\", \"\"); //关联查询条件字段绑定的表单参数路径\r\n            });\r\n            item.resultfield.forEach(res => {\r\n              _this.$set(res, \"fieldPath\", \"\"); //关联查询返回字段绑定的表单参数路径\r\n            });\r\n          }\r\n          //把当前对象克隆一份到控件属性配置\r\n          Object.assign(\r\n            _this.field.options.customQuery.custQueryJson[index],\r\n            item\r\n          );\r\n          // 删除多余属性\r\n          _this.slimCustomQuery(\r\n            _this.field.options.customQuery.custQueryJson[index]\r\n          );\r\n        }\r\n      });\r\n    },\r\n    //打开下拉框绑定关联查询弹框\r\n    showSelectQueryDialog() {\r\n      this.selectQueryDialog = true;\r\n    },\r\n    //打开对话框绑定关联查询弹框\r\n    showDialogQuery() {\r\n      this.dialogQuery = true;\r\n    },\r\n    //选择对话框控件并绑定关联查询\r\n    setDialogQuery(alias, index) {\r\n      const _this = this;\r\n      _this.customQuerys.forEach(item => {\r\n        //判断选择的关联查询是否存在\r\n        if (alias == item.alias) {\r\n          if (typeof item.conditionfield == \"string\") {\r\n            item.conditionfield = JSON.parse(item.conditionfield); //parseToJson(item.customQuery.conditionfield);\r\n            item.resultfield = JSON.parse(item.resultfield); // parseToJson(item.customQuery.resultfield);\r\n            item.conditionfield.forEach(res => {\r\n              _this.$set(res, \"fieldPath\", \"\"); //关联查询条件字段绑定的表单参数路径\r\n            });\r\n            item.resultfield.forEach(res => {\r\n              _this.$set(res, \"fieldPath\", \"\"); //关联查询返回字段绑定的表单参数路径\r\n            });\r\n          }\r\n          //把当前对象克隆一份到控件属性配置\r\n          Object.assign(\r\n            _this.field.options.customDialogjson.custDialog.custQueryJson[\r\n              index\r\n            ],\r\n            item\r\n          );\r\n          _this.slimCustomQuery(\r\n            _this.field.options.customDialogjson.custDialog.custQueryJson[index]\r\n          );\r\n        }\r\n      });\r\n    },\r\n    //选择动态选项\r\n    setCurrentCustomQuery() {\r\n      const _this = this;\r\n      _this.field.options.customQuery.custQueryJson = [];\r\n      _this.customQuerys.forEach(item => {\r\n        if (_this.field.options.customQuery.alias == item.alias) {\r\n          if (typeof item.conditionfield == \"string\") {\r\n            item.conditionfield = JSON.parse(item.conditionfield); //parseToJson(item.customQuery.conditionfield);\r\n            item.resultfield = JSON.parse(item.resultfield); // parseToJson(item.customQuery.resultfield);\r\n          }\r\n          //把当前对象克隆一份到控件属性配置\r\n          Object.assign(_this.field.options.customQuery, item);\r\n          _this.slimCustomQuery(_this.field.options.customQuery);\r\n        }\r\n      });\r\n      //删除掉无效的参数\r\n      var bind = [];\r\n      this.field.options.customQuery.conditionfield.forEach(item => {\r\n        if (item.defaultType == 1) {\r\n          bind.push(item);\r\n        }\r\n      });\r\n      this.field.options.bind = bind;\r\n      //切换关联数据设置项或下拉框动态值 同时清空绑定返回值、参数绑定、选项绑定\r\n      this.custDialogprop = {};\r\n      this.field.options.gangedBind = {};\r\n      this.field.options.customQuery.valueBind = \"\";\r\n      this.field.options.customQuery.labelBind = \"\";\r\n      if (this.field.options.customQuery.conditionfield) {\r\n        this.field.options.customQuery.conditionfield.forEach(element => {\r\n          this.$set(element, \"fieldPath\", \"\");\r\n        });\r\n      }\r\n    },\r\n    //切换固定选项和动态选项时\r\n    dynamicClick() {\r\n      this.customQueryUrl = \"/form/customQuery/v1/list\";\r\n      this.field.options.customQuery = {\r\n        valueBind: \"\",\r\n        labelBind: \"\",\r\n        conditionfield: [],\r\n        custQueryJson: []\r\n      };\r\n      this.field.options.bind = [];\r\n      this.field.options.options = [];\r\n      if (this.field.options.choiceType == \"dynamic\") {\r\n        this.field.options.linkage = [];\r\n      }\r\n    },\r\n    //数据字典列表\r\n    afterDicLoadData(data) {\r\n      this.dicData = data.rows;\r\n    },\r\n    dicClick(visible) {\r\n      if (this.dicData && this.dicData.length > 0)\r\n        return;\r\n      form.getCategory(\"DIC\", data => {\r\n        this.dicData = data.data;\r\n      });\r\n    },\r\n    tagClick(visible){\r\n      if (this.tagData && this.tagData.length > 0)\r\n        return;\r\n      form.getCategory(\"TAG\", data => {\r\n        this.tagData = data.data.filter(item => item.id==='31120')[0].children;\r\n      });\r\n    },\r\n    dicNodeClick(data) {\r\n      this.field.options.dic = data.typeKey;\r\n      this.field.options.dicName = data.name;\r\n      this.$refs.dicSelect.blur();\r\n    },\r\n    tagNodeClick(data){\r\n      this.field.options.tag = data.typeKey;\r\n      this.field.options.tagName = data.name;\r\n      this.$refs.tagSelect.blur();\r\n    },\r\n    afterCustomQueryLoadData(data) {\r\n      this.customQuerys = data.rows;\r\n    },\r\n    afterCustomDialogLoadData(data) {\r\n      this.customDialogs = data;\r\n    },\r\n    //判断控件是否有特殊基础属性\r\n    isBasicsProperty(basicsProperty, alias) {\r\n      if (basicsProperty && alias) {\r\n        const basicsPropertys = basicsProperty.split(\"|\");\r\n        if (basicsPropertys.includes(alias)) {\r\n          return true;\r\n        } else {\r\n          return false;\r\n        }\r\n      }\r\n      return false;\r\n    },\r\n    clearFunction() {\r\n      this.field.options.mathExp = undefined;\r\n    },\r\n    updateCustDialogprop() {\r\n      this.$forceUpdate();\r\n    },\r\n    addEffectObj(effect, effectObj) {\r\n      let cloneObj = JSON.parse(JSON.stringify(effectObj));\r\n      if (cloneObj.validateObj) {\r\n        if (cloneObj.validateObj.options) {\r\n          cloneObj.validateObj.options.validateList = [];\r\n        }\r\n      }\r\n      effect.push(cloneObj);\r\n    },\r\n    copyEffectObj(effect, effectObj) {\r\n      effect.push(JSON.parse(JSON.stringify(effectObj)));\r\n    },\r\n    copyEffect(column) {\r\n      this.linkage.push(JSON.parse(JSON.stringify(column)));\r\n    },\r\n    filteredAllBoData(){\r\n      this.field\r\n    },\r\n    getEffectsTarget(group,item){\r\n      let groupName = group.name === 'noAttrField'?item.tableName:group.name;\r\n      return item.path + '.' + item.name + '|' + groupName + '.' + item.name;\r\n    },\r\n  },\r\n  watch: {\r\n    data(val) {\r\n      if (val.options && val.options.selector) {\r\n        if (!val.options.selector.isSingle) {\r\n          this.$set(val.options.selector,'isSingle',false);\r\n        }\r\n        if (!val.options.selector.selectCurrent) {\r\n          this.$set(val.options.selector,'selectCurrent',false);\r\n        }\r\n      }\r\n      this.field = val;\r\n    },\r\n    field: {\r\n      handler(val) {\r\n        this.$emit(\"update:data\", val);\r\n      },\r\n      deep: true\r\n    }\r\n  }\r\n};\r\n",null]}