{"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/ViewData.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/ViewData.vue","mtime":1701674859503},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\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 getModuleViewData,\n getSystemScreeningFields,\n getScopeByField,\n getFormValueStoreFields,\n} from '@/service/ViewApi.js'\nimport { getModuleFormList, getModuleForm } from '@/service/FormApi.js'\nimport config from '@/assets/json/config.json'\nimport ScriptEditorSelect from '@/components/Common/scriptEditor'\nimport { obj2Arr } from '@/utils/utils.js'\nexport default {\n name: 'ViewData',\n components:{\n ScriptEditorSelect\n },\n data() {\n return {\n menuHeight:\n document.documentElement.clientHeight ||\n document.body.clientHeight - 60 - 32 - 41 - 50 - 20 - 16,\n viewDataForm: {\n editMode: '00', //数据页面的单选\n relatedForm: '', //数据来源表单\n searchFormId: '', //查询模板id\n\n commonFilterCondition: [], //常用查询字段\n authorityCondition: [], //系统筛选条件\n filterCondition: [], //表单过滤条件\n\n filterScript: '', //dql编辑器\n sqlFilterScript: '', //过滤脚本(编辑模式为Sql模式)\n procedureFilterScript: '', //过滤脚本(编辑模式为存储过程模式)\n },\n // 视图数据页面\n dataSourcesOptions: [], //数据来源表单数组\n queryOptions: [], //查询模板数组\n searchField: [], //常用查询字段-查询字段\n formValueOptions: [], //表单过滤条件遍历\n systemOptions: config.systemOptions, // 系统变量\n systemScreeningOptions: [], //系统筛选条件遍历\n // scopeByFieldOptions: [], //系统筛选条件作用域遍历\n currentDataSourcesOption: {}, // 当前选中的数据来源表单\n initData: {}, // 初始化的数据\n pickerOptions: {\n shortcuts: [\n {\n text: this.$t('view.today'),\n onClick(picker) {\n picker.$emit('pick', new Date())\n },\n },\n {\n text: this.$t('view.yestoday'),\n onClick(picker) {\n const date = new Date()\n date.setTime(date.getTime() - 3600 * 1000 * 24)\n picker.$emit('pick', date)\n },\n },\n {\n text: this.$t('view.last_week'),\n onClick(picker) {\n const date = new Date()\n date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)\n picker.$emit('pick', date)\n },\n },\n ],\n },\n\n radioSwitchover: {\n formShow: true, //表单显示\n searchShow: true, //查询显示\n commonShow: true, //常用查询显示\n queryShow: true, //系统筛选显示\n scriptShow: false, //脚本编辑器显示\n },\n operator: config.operator,\n type: config.type, //表单过滤条件-操作符-文本\n loading: false,\n ajaxNum: 0, // 请求的次数\n\n scriptEditorVisible: false, // 脚本编辑器弹窗\n currentScriptEditor: '', // 当前点击的是哪一个脚本编辑器\n }\n },\n props: {\n intValue: String,\n isEdit: Boolean,\n viewId: String,\n moduleId: String,\n },\n watch: {\n ajaxNum() {\n if (this.ajaxNum > 0) {\n this.loading = true\n } else {\n this.loading = false\n }\n },\n },\n methods: {\n /**\n * 单选框切换\n */\n radioChange(val) {\n let radioSwitchover = {\n ...this.radioSwitchover,\n formShow: true, //表单显示\n searchShow: true, //查询显示\n commonShow: true, //常用查询显示\n queryShow: true, //系统筛选显示\n scriptShow: false, //脚本编辑器显示\n }\n this.radioSwitchover = radioSwitchover\n if (val != '00') {\n this.radioSwitchover.formShow = false\n this.radioSwitchover.queryShow = false\n this.radioSwitchover.scriptShow = true\n }\n\n // 不保存的情况下视图列是否显示表单和表单字段\n let obj = {\n ...this.$store.state.currentDataSourcesOption,\n ...this.viewDataForm\n }\n this.$store.commit('setCurrentDataSources',obj)\n },\n\n /**\n *获取到当前数据项传给列的批量新建\n */\n changeDataSourcesOption() {\n this.dataSourcesOptions.some((item) => {\n if (item.id === this.viewDataForm.relatedForm) {\n this.currentDataSourcesOption = item\n }\n })\n\n // 需要判断要有id再请求\n if (this.viewDataForm.relatedForm != '') {\n this.getFormValueStoreFields() // 重新获取表单过滤条件的数据\n }\n },\n\n /**\n * 常用查询添加\n */\n addSearch() {\n if (this.viewDataForm.commonFilterCondition.length == 2) {\n this.$message.error(this.$t('view.select_num'))\n return false\n }\n this.viewDataForm.commonFilterCondition.push({\n field: this.searchField.length > 0 ? this.searchField[0].id : '',\n isCommonFilter: 'true',\n paramKey: Date.now(),\n })\n },\n\n /**\n * 常用查询删除\n */\n delSearch(index) {\n this.viewDataForm.commonFilterCondition.splice(index, 1)\n },\n\n /**\n * 查询表单字段\n */\n searchSelect(val) {\n if (!val) return false\n getModuleForm(val, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n let list = []\n let data = response.data.data\n let arr = data.allFieldNames ? data.allFieldNames : []\n if (arr.length > 0) {\n for (let i = 0; i < arr.length; i++) {\n let value = arr[i]\n let obj = {}\n obj.id = value\n obj.name = value\n list.push(obj)\n }\n this.searchField = list\n } else {\n this.searchField = [\n {\n id: 0,\n name: '',\n },\n ]\n }\n //判断当前的常用查询字段是否为0\n if(this.viewDataForm.commonFilterCondition.length!=0){\n //循环当前的查询字段的数组\n this.viewDataForm.commonFilterCondition.forEach((item,index)=>{\n //flag用来判断当前的字段是否在数组中\n let flag=true\n if(this.searchField.length!=0){\n this.searchField.forEach((item1,index1)=>{\n if(item1.id==item.field){\n flag=false\n }\n })\n if(flag){\n item.field=this.searchField[0].id\n }\n }\n })\n }\n }\n },\n })\n },\n\n /**\n * 常用查询字段值相同\n */\n changeSearchField() {\n if (this.viewDataForm.commonFilterCondition.length == 2) {\n // console.log(this.viewDataForm.commonFilterCondition)\n if (\n this.viewDataForm.commonFilterCondition[0].field ==\n this.viewDataForm.commonFilterCondition[1].field\n ) {\n return this.$message.error(this.$t('msg.same_confition'))\n }\n }\n },\n\n /**\n * 系统筛选条件添加\n */\n async addSystem() {\n if (!this.viewDataForm.relatedForm)\n return this.$message.warning(this.$t('msg.select_dataform'))\n\n let response = await getSystemScreeningFields(this.viewDataForm.relatedForm)\n this.viewDataForm.authorityCondition.push({\n _authFields: '',\n _authFieldScope: '',\n _scopeByFieldOptions: obj2Arr(response.data.data)\n })\n },\n\n /**\n * 系统筛选条件删除\n */\n delSystem(index) {\n this.viewDataForm.authorityCondition.splice(index, 1)\n },\n /**\n 系统筛选\n */\n async selectSystemScreening(row) {\n // 清空当前作用域的值\n if (row._authFields) {\n this.ajaxNum++;\n let response = await getScopeByField(row._authFields)\n row._scopeByFieldOptions = obj2Arr(response.data.data)\n // 默认选中第一个值\n row._authFieldScope = row._scopeByFieldOptions[0].id;\n this.ajaxNum--;\n }\n },\n /**\n * 强制更新v-model不生效\n */\n changeFrom(row, index) {\n this.$set(this.viewDataForm.filterCondition, index, row)\n },\n\n /**\n * 表单过滤条件添加\n */\n addFrom() {\n if (this.viewDataForm.relatedForm == '')\n return this.$message.warning(this.$t('msg.select_dataform'))\n this.viewDataForm.filterCondition.push({\n field:\n this.formValueOptions.length > 0 ? this.formValueOptions[0].id : '',\n operator: 'LIKE',\n type: '00',\n ipField: '',\n numField: 0,\n daField: '',\n sfField: this.searchField.length > 0 ? this.searchField[0].id : '',\n syField:\n this.systemOptions.length > 0 ? this.systemOptions[0].value : '',\n })\n },\n\n /**\n * 表单过滤条件删除\n */\n delFrom(index) {\n this.viewDataForm.filterCondition.splice(index, 1)\n },\n\n /**\n * 表单过滤条件数据\n */\n getFormValueStoreFields() {\n this.ajaxNum++\n getFormValueStoreFields(this.viewDataForm.relatedForm, {\n onSucess: (response) => {\n this.ajaxNum--\n if (response.data.errcode == 0) {\n this.formValueOptions = obj2Arr(response.data.data)\n // 判断表单过滤条件的值在这里是否有,如果有就查是否有当前的id,如果没有就重置\n let resetFlag = false\n this.viewDataForm.filterCondition.map((item) => {\n for (let i = 0; i < list.length; i++) {\n if (list[i].id == item.field) {\n resetFlag = true\n break\n }\n }\n if (!resetFlag) {\n item.field = ''\n }\n })\n }\n },\n })\n },\n\n /**\n * 获取作用域的值\n */\n async getScopeByField(row) {\n this.ajaxNum++;\n let response = await getScopeByField(row._authFields);\n this.ajaxNum--;\n row._scopeByFieldOptions = obj2Arr(response.data.data);\n },\n\n /**\n * 系统筛选条件数据\n */\n async getSystemScreeningFields() {\n this.ajaxNum++\n let response = await getSystemScreeningFields(this.viewDataForm.relatedForm)\n this.ajaxNum--\n this.systemScreeningOptions = obj2Arr(response.data.data)\n },\n\n /**\n * 数据来源表单\n */\n getModuleFormList() {\n this.ajaxNum++\n let params = {\n moduleId: this.moduleId,\n name: '',\n description: '',\n type: '',\n pageNo: 1,\n linesPerPage: 100000,\n }\n getModuleFormList(params, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n let data = response.data.data.datas\n let dataArr = []\n let queryArr = []\n for (let i = 0; i < data.length; i++) {\n if (data[i].type == 1) {\n dataArr.push(data[i])\n } else if (data[i].type == 256) {\n queryArr.push(data[i])\n } else if (data[i].type == 65536) {\n dataArr.push(data[i])\n }\n }\n this.dataSourcesOptions = dataArr // 普通表单和映射表单的数组\n // 查询表单数组[网格视图过滤查询表单]\n if (this.currentDataSourcesOption.openType == 288) {\n this.queryOptions = queryArr.filter((item) => item.type != 256)\n } else {\n this.queryOptions = queryArr\n }\n\n // 判断是否有 数据来源表单 id\n let relatedFormFlag = false\n this.dataSourcesOptions.some((item) => {\n if (item.id === this.viewDataForm.relatedForm) {\n relatedFormFlag = true\n }\n })\n if (!relatedFormFlag) {\n // 清空数据来源id\n this.viewDataForm.relatedForm = ''\n // 当前选中值的数据来源id\n this.currentDataSourcesOption.relatedForm = ''\n }\n\n // 判断是否有 查询模板 id\n let searchFormIdFlag = false\n this.queryOptions.some((item) => {\n if (item.id === this.viewDataForm.searchFormId) {\n searchFormIdFlag = true\n }\n })\n if (!searchFormIdFlag) {\n this.viewDataForm.searchFormId = ''\n }\n\n this.ajaxNum--\n }\n },\n })\n },\n \n /**\n * 显示脚本编辑器弹框\n */\n showScriptEditor(val) {\n this.scriptEditorVisible = true\n this.currentScriptEditor = val\n },\n\n /**\n * 将脚本编辑器的值写入到textarea中\n */\n handleScriptEditor(val) {\n if (this.currentScriptEditor === 'filterScript') {\n // 视图数据dql\n this.viewDataForm.filterScript = val\n } else if (this.currentScriptEditor === 'sqlFilterScript') {\n // 视图数据sql\n this.viewDataForm.sqlFilterScript = val\n } else if (this.currentScriptEditor === 'procedureFilterScript') {\n // 视图数据代码存储过程\n this.viewDataForm.procedureFilterScript = val\n }\n },\n\n /**\n * 获取视图的数据\n */\n getViewData() {\n this.ajaxNum++\n getModuleViewData(this.viewId, {\n onSucess: (response) => {\n if (response.data.errcode == 0) {\n this.ajaxNum--\n\n let data = response.data.data\n\n this.viewDataForm.relatedForm = data.relatedForm\n this.viewDataForm.editMode = data.editMode // 单选组的值\n this.viewDataForm.searchFormId = data.searchFormId\n ? data.searchFormId\n : '' // 查询表单id\n this.viewDataForm.authorityCondition = data.authorityCondition\n ? eval(data.authorityCondition)\n : [] // 系统筛选条件\n\n this.viewDataForm.filterCondition = data.filterCondition\n ? eval(data.filterCondition)\n : [] // 表单过滤条件\n\n this.viewDataForm.commonFilterCondition = data.commonFilterCondition\n ? eval(data.commonFilterCondition)\n : [] // 常用查询字段\n this.viewDataForm.filterScript = data.filterScript\n ? data.filterScript\n : '' // 过滤脚本(编辑模式为Dql模式)\n this.viewDataForm.sqlFilterScript = data.sqlFilterScript\n ? data.sqlFilterScript\n : '' //过滤脚本(编辑模式为Sql模式)\n this.viewDataForm.procedureFilterScript = data.procedureFilterScript\n ? data.procedureFilterScript\n : '' //过滤脚本(编辑模式为存储过程模式)\n\n this.currentDataSourcesOption = data // 当前的数据【传给列的批量创建】\n\n //表单过滤条件数据处理【添加后不能修改值】\n if (this.viewDataForm.filterCondition.length > 0) {\n this.viewDataForm.filterCondition.map((item) => {\n item.ipField = ''\n item.numField = 0\n item.daField = ''\n item.sfField = ''\n item.syField = ''\n console.log(this.viewDataForm.filterCondition)\n switch (item.type) {\n case '00':\n item.ipField = item.match\n break\n case '01':\n item.numField = Number(item.match)\n break\n case '02':\n item.daField = item.match\n break\n case '03':\n item.sfField = item.match\n break\n case '04':\n item.syField = item.match\n break\n default:\n break\n }\n })\n }\n\n if (this.viewDataForm.relatedForm) {\n this.getSystemScreeningFields() // 系统筛选条件数据\n this.getFormValueStoreFields() // 表单过滤条件数据\n }\n \n if (this.viewDataForm.searchFormId) {\n this.searchSelect(this.viewDataForm.searchFormId) // 常用查询字段\n }\n // 作用域\n if (this.viewDataForm.authorityCondition.length > 0) {\n this.viewDataForm.authorityCondition.forEach(async (item) =>{\n this.ajaxNum++\n let response = await getScopeByField(item._authFields)\n item._scopeByFieldOptions = obj2Arr(response.data.data)\n this.ajaxNum--\n this.$set(item, 'authorityCondition', item)\n })\n }\n\n // 单选框组的内容显示\n this.radioChange(this.viewDataForm.editMode)\n }\n },\n })\n },\n save() {\n let dataflag = false\n if (\n !this.viewDataForm.relatedForm &&\n this.viewDataForm.editMode == '00'\n ) {\n this.$message.warning(this.$t('msg.jump_select_dataform'))\n dataflag = true\n }\n\n switch (this.viewDataForm.editMode) {\n case '00':\n if (this.viewDataForm.commonFilterCondition.length > 0) {\n this.viewDataForm.commonFilterCondition.forEach((item) => {\n if (item.field === '') dataflag = true\n })\n if (dataflag) {\n this.$message.error(this.$t('msg.condition_empty'))\n return false;\n }\n if (\n this.viewDataForm.commonFilterCondition.length > 1 &&\n this.viewDataForm.commonFilterCondition[0].field ==\n this.viewDataForm.commonFilterCondition[1].field\n ) {\n this.$message.error(this.$t('msg.same_confition'))\n return false;\n }\n }\n\n // 一键生成视图转换后filterCondition为undefined的问题\n if (this.viewDataForm.filterCondition == undefined) {\n this.viewDataForm.filterCondition = []\n }\n\n if (\n this.viewDataForm.filterCondition &&\n this.viewDataForm.filterCondition.length > 0\n ) {\n this.viewDataForm.filterCondition.map((item) => {\n if (item.field == '') {\n dataflag = true;\n } else {\n switch (item.type) {\n case '00':\n item.match = item.ipField\n break\n case '01':\n item.match = item.numField + ''\n break\n case '02':\n item.match = item.daField\n break\n case '03':\n item.match = item.sfField\n break\n case '04':\n item.match = item.syField\n break\n default:\n item.match = ''\n break\n }\n }\n })\n if(dataflag){\n this.$message.error(this.$t('msg.config'));\n return false;\n }\n }\n }\n\n // 网格视图下不支持查询表单\n if(this.$store.state.currentDataSourcesOption.openType == '288' && this.viewDataForm.searchFormId){\n this.$message.warning(this.$t('msg.unsupport_form'))\n return false;\n }\n\n if (dataflag) {\n return false\n } else {\n let tempAuthority = []\n // 将系统筛选条件删除其中的数组\n this.viewDataForm.authorityCondition.map(item => tempAuthority.push({\n _authFields: item._authFields,\n _authFieldScope: item._authFieldScope\n }))\n\n return {\n ...this.viewDataForm,\n authorityCondition: JSON.stringify(tempAuthority), // 系统筛选条件\n filterCondition: JSON.stringify(this.viewDataForm.filterCondition), // 表单过滤条件\n commonFilterCondition: JSON.stringify(this.viewDataForm.commonFilterCondition), // 表单查询字段\n }\n }\n },\n },\n mounted() {\n this.getModuleFormList() // 数据来源表单\n if (this.isEdit) {\n this.getViewData()\n }\n },\n computed:{\n /**\n * textarea 传给 脚本编辑器的值\n */\n showScritptEditorCode() {\n let code\n if (this.currentScriptEditor === 'filterScript') {\n // 视图数据dql\n code = this.viewDataForm.filterScript\n } else if (this.currentScriptEditor === 'sqlFilterScript') {\n // 视图数据sql\n code = this.viewDataForm.sqlFilterScript\n } else if (this.currentScriptEditor === 'procedureFilterScript') {\n // 视图数据代码存储过程\n code = this.viewDataForm.procedureFilterScript\n }\n return code\n },\n }\n}\n",null]}