{"remainingRequest":"/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/src/components/modulesDetail/FormMapping.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/src/components/modulesDetail/FormMapping.vue","mtime":1701674859502},{"path":"/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/node_modules/babel-loader/lib/index.js","mtime":1701674874357},{"path":"/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/node_modules/cache-loader/dist/cjs.js","mtime":1701674874584},{"path":"/data/jenkins/workspace/test-v5in-source-front-01/src/badp-bcxin-5.x/obpm-designer-web/node_modules/vue-loader/lib/index.js","mtime":1701674874903}],"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\nimport {\n reqDbTableMapping,\n getDbColumnMapping,\n reqSynchronousDBData,\n getModuleForm,\n getFieldData\n} from '@/service/FormApi.js'\n\nimport { getDomainList } from '@/service/ReportApi.js'\nexport default {\n name: 'FormMapping',\n data() {\n return {\n tableName: '', // 数据库表格名称\n mappingtb: [], // 配置字段名称\n name: \"\", // 表单名称\n dbOptions: [],\n mappingHeight: 300,\n scopeByFieldOption: [], //字段名称选项\n scopeByColumnOption: [], // \t列名称选项\n\n synchronousDBDataDialog: false, // 同步数据弹框\n domainName: '', // 企业域值\n domainOptions: [], // 企业域选项值\n\n loading: false\n }\n },\n props: {\n type: Number, // 表单类型\n formId: String, // 表单id\n isEdit: Boolean\n },\n methods: {\n /**\n * 动态计算页面table高度\n */\n getScollerHeight() {\n setTimeout(() => {\n let clientHeight = document.documentElement.clientHeight || document.body.clientHeight;\n //60 头部, 32 面包屑, 41 第一层页签, 40 第二层页签, 50 列表标题, 71 查询, 20 父组件外边距, 40分页, 16 外边距\n //这个组件在父组件dialog中高度给的85%,54 弹窗标题 30 弹窗底部padding 50 第一季页签 20机动距离\n this.mappingHeight = clientHeight - 60 -32 -41 - 50 - 24*4 - 28; // 24: 分割线的margin, 28数据库表格名称\n }, 100);\n },\n /**\n * 校验表单\n */\n verifyMapping() {\n //todo\n if (this.mappingtb.length > 0 && this.type == 65536) {\n for (let i = 0; i < this.mappingtb.length; i++) {\n if (\n this.mappingtb[i].columnName == '' ||\n this.mappingtb[i].columnName == this.$t('btns.select')\n ) {\n this.$message.error(this.$t('placeholder.filed'))\n this.saveDisabled = false\n return false\n }\n if (\n this.mappingtb[i].fieldName == '' ||\n this.mappingtb[i].fieldName == this.$t('btns.select')\n ) {\n this.$message.error(this.$t('msg.choose_field'))\n this.saveDisabled = false\n return false\n }\n }\n let obj = {\n formName: this.name,\n tableName: this.tableName,\n columnMappings: this.mappingtb,\n }\n return JSON.stringify(obj)\n }\n\n let obj = {\n formName: this.name,\n tableName: this.tableName,\n columnMappings: this.mappingtb,\n }\n return JSON.stringify(obj)\n },\n /**\n * 映射 数据库值发生改变\n */\n changeDBColumnData() {\n this.getDbColumnMapping()\n this.mappingtb.forEach((elm) => {\n elm.columnName = this.$t('btns.select')\n })\n },\n\n /**\n * 映射 同步数据弹窗\n */\n synchronousDBData() {\n if (this.tableName === '') {\n return this.$message.error(this.$t('msg.select_db'))\n } else if (this.mappingtb.length === 0) {\n return this.$message.error(this.$t('msg.select_field'))\n } else if (\n this.mappingtb[0].field === '' ||\n this.mappingtb[0].column === ''\n ) {\n return this.$message.error(this.$t('placeholder.name'))\n }\n this.getDomainData()\n this.synchronousDBDataDialog = true\n },\n\n /**\n * 映射 企业域\n */\n getDomainData() {\n getDomainList({\n onSucess: (response) => {\n console.log(response)\n if (response.data.errcode == 0) {\n this.domainOptions = response.data.data\n }\n },\n })\n },\n\n /**\n * 映射数据库表格名称\n */\n getDbTableMapping() {\n let params = { appId: sessionStorage.getItem('appId') }\n reqDbTableMapping(params, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n let listObj = response.data.data\n let arr = []\n for (let i in listObj) {\n arr.push({\n value: listObj[i],\n label: listObj[i],\n })\n }\n this.dbOptions = arr\n }\n },\n })\n },\n\n /**\n * 映射 获取字段名称\n */\n getDBFieldOption() {\n let formId = this.formId\n getFieldData(formId, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n this.scopeByFieldOption = response.data.data\n }\n },\n })\n },\n\n /**\n * 映射 获取数据库列名称映射\n */\n getDbColumnMapping() {\n let params = {\n appId: sessionStorage.getItem('appId'),\n tableName: this.tableName,\n }\n getDbColumnMapping(params, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n let listObj = response.data.data\n let arr = []\n for (let i in listObj) {\n arr.push({\n value: listObj[i],\n label: listObj[i],\n })\n }\n this.scopeByColumnOption = arr\n }\n },\n })\n },\n\n /**\n * 添加\n */\n addDbParams() {\n this.mappingtb.push({ fieldName: '', columnName: '' })\n },\n /**\n * 删除\n */\n delDbParams(index) {\n this.mappingtb.splice(index, 1)\n },\n /**\n * 取消同步数据\n */\n cancelSynchronousDBData() {\n this.domainName === ''\n this.synchronousDBDataDialog = false\n },\n\n /**\n * 弹框确认数据\n */\n confirmSynchronousDBData() {\n if (this.domainName === '') {\n return this.$message.error(this.$t('msg.choose_domain'))\n }\n let params = {\n ...this.params,\n tableName: this.tableName,\n domainId: this.domainName,\n id: this.formId\n }\n reqSynchronousDBData(params, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n this.$message.success(this.$t('msg.sync_data_ss'))\n }\n },\n })\n this.synchronousDBDataDialog = false\n },\n\n /**\n * 表单映射-添加字段-选择字段名称\n */\n selectDBField(row) {\n let index = 0\n this.mappingtb.forEach((elm) => {\n if (elm.fieldName == row.fieldName && index != 0) {\n this.$message.error(this.$t('msg.field_occupied'))\n } else if (elm.fieldName == row.fieldName && index == 0) {\n index++\n }\n })\n },\n /**\n * 表单映射-添加字段-选择列名称\n */\n selectColumnField(row) {\n let index = 0\n this.mappingtb.forEach((elm) => {\n if (elm.columnName == row.columnName && index != 0) {\n this.$message.error(this.$t('msg.field_occupied'))\n } else if (elm.columnName == row.columnName && index == 0) {\n index++\n }\n })\n },\n\n /**\n * 获取表单映射详情\n */\n getMappingData(){\n this.loading = true\n getModuleForm(this.formId, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n this.loading = false\n let data = response.data.data\n this.tableName = data.mappingStr ? JSON.parse(data.mappingStr).tableName : \"\", // 数据库表\n this.mappingtb = data.mappingStr ? JSON.parse(data.mappingStr).columnMappings : [] // 字段名称\n this.name = data.name\n\n if (this.tableName) this.getDbColumnMapping()\n }else{\n this.loading = false\n }\n },\n });\n }\n },\n mounted() {\n this.getScollerHeight()\n if(this.isEdit)\n this.getMappingData()\n this.getDbTableMapping()\n this.getDBFieldOption()\n },\n}\n",null]}