{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\querySql\\DynamicView.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\querySql\\DynamicView.vue","mtime":1667804639477},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport { Message } from \"element-ui\";\r\nimport { Loading } from \"element-ui\";\r\nimport HtCheckbox from \"@/components/control/HtCheckbox.vue\";\r\nimport HtDialog from \"@/components/control/HtDialog.vue\";\r\nimport HtDialogBtn from \"@/components/control/htDialogBtn.vue\";\r\nimport utils from \"@/utils.js\";\r\nimport req from \"@/request.js\";\r\nimport { Base64 } from \"js-base64\";\r\nimport Vue from \"vue\";\r\n\r\nexport default {\r\n name: \"dynamic-view\",\r\n props: {\r\n single: String,\r\n sqlAlias: String,\r\n alias: String,\r\n html: String,\r\n queryView:Object\r\n },\r\n created() {\r\n this.init();\r\n },\r\n watch: {\r\n html: function(newVal) {\r\n if (newVal) {\r\n this.init();\r\n }\r\n }\r\n },\r\n methods: {\r\n init() {\r\n Vue.component(\"ht-runtime-template\", {\r\n props: {\r\n single: String,\r\n sqlAlias: String,\r\n alias: String,\r\n html: String,\r\n queryView: Object\r\n },\r\n template: this.html,\r\n data() {\r\n return {\r\n bpmRunTime: window.context.bpmRunTime,\r\n fileList: [],\r\n tableData: { selectRows: [], querys: \"\" },\r\n dialogExportVisible: false,\r\n exportData: { getType: \"all\", expField: [] },\r\n exportSellection: [],\r\n searchForm: {},\r\n displayFields: [],\r\n alarmSettingMap: {},\r\n summaryTypeMap: {},\r\n queryForm: {\r\n queryData: \"\"\r\n },\r\n uploadParams: { id: [] },\r\n formType: false,\r\n labelPosition: \"left\",\r\n incons: \"el-icon-arrow-down\",\r\n formatterMap: {},\r\n options: {\r\n fullscreen: true,\r\n lock: true\r\n },\r\n uploadError: \"/runtime/photoErrorCsv/v1/uploadErrorList\",\r\n upoadPdfToAzure:\r\n window.context.bpmRunTime + \"/runtime/blob/v1/upoadPdfToAzure\",\r\n uploadUnprepare: \"/runtime/blob/v1/upoadToAzure\",\r\n summarySetting:[],\r\n activeNames: ['1']\r\n };\r\n },\r\n computed: mapState({\r\n rows: state => state.form.querySqlViewRows,\r\n pagination: state => state.form.querySqlViewPagination,\r\n total: state => state.form.querySqlViewTotal,\r\n uploadHeaders: state => {\r\n return { Authorization: `Bearer ${state.login.currentUser.token}` };\r\n },\r\n uploadErrorHttp() {\r\n return this.bpmRunTime + this.uploadError;\r\n },\r\n uploadUnprepareHttp() {\r\n return this.bpmRunTime + this.uploadUnprepare;\r\n }\r\n }),\r\n components: {\r\n HtCheckbox,\r\n HtDialog,\r\n HtDialogBtn\r\n },\r\n watch: {\r\n formKey: function(newVal) {\r\n if (newVal) {\r\n this.init();\r\n }\r\n },\r\n \"tableData.selectRows\": function(newVal) {\r\n if (newVal.length > 0) {\r\n let me_ = this;\r\n me_.uploadParams.id = [];\r\n newVal.forEach(item => {\r\n me_.uploadParams.id.push(item.INSTID);\r\n });\r\n }\r\n },\r\n $route: \"init\",\r\n queryView: {\r\n handler(newVal, oldVal) {\r\n if (newVal.shows){\r\n let displayField = utils.parseToJson(newVal.shows);\r\n for (var i = 0; i < displayField.length; i++) {\r\n if (displayField[i].hidden == 0) {\r\n this.displayFields.push(displayField[i]);\r\n if (displayField[i].summaryType) {\r\n this.summaryTypeMap[displayField[i].fieldName] = displayField[i].summaryType;\r\n }\r\n }\r\n if (displayField[i].formater) {\r\n this.formatterMap[displayField[i].fieldName] = displayField[i].formater;\r\n }\r\n if (displayField[i].alarmSetting) {\r\n this.alarmSettingMap[displayField[i].fieldName] = displayField[i].alarmSetting;\r\n }\r\n }\r\n }\r\n if (newVal.summarySetting){\r\n this.summarySetting = JSON.parse(newVal.summarySetting);\r\n }\r\n },\r\n immediate: true\r\n }\r\n },\r\n\r\n methods: {\r\n //打印\r\n printList(){\r\n document.body.innerHTML = document.getElementById(\"printData\").innerHTML;\r\n window.print();\r\n location.reload();\r\n },\r\n //生成二维码\r\n\r\n //路由跳转\r\n routerPush(url) {\r\n this.$router.push(url);\r\n },\r\n //查看与处理流程按钮\r\n dispose(row) {\r\n let url;\r\n if (row.TASKID) {\r\n //审批任务\r\n url = \"/task/\" + row.TASKID;\r\n } else {\r\n //查看流程实例\r\n url = \"/inst/\" + row.INSTID;\r\n }\r\n this.$router.push(url);\r\n },\r\n\r\n handleSizeChange: function(size) {\r\n //每页下拉显示数据\r\n this.$store.dispatch(\"form/setQuerySqlViewPaginationSize\", size);\r\n this.search();\r\n },\r\n handleCurrentChange: function(currentPage) {\r\n //点击第几页\r\n this.$store.dispatch(\r\n \"form/setQuerySqlViewPaginationPageNum\",\r\n currentPage\r\n );\r\n this.search();\r\n },\r\n //回车查询\r\n searchEnterFun: function(e) {\r\n let keyCode = window.event ? e.keyCode : e.which\r\n if (keyCode == 13) {\r\n this.search('find')\r\n }\r\n },\r\n search(str) {\r\n const loading = this.$loading(this.options);\r\n let params = {};\r\n if (str == \"find\") {\r\n this.$store.dispatch(\"form/setQuerySqlViewPaginationPageNum\", 1);\r\n }\r\n //判断为合并查询还是分开查询\r\n if (this.formType) {\r\n params = this.getQueryFilter();\r\n } else {\r\n //判断是否配置了合并查询\r\n if ($(\".search-query\").length > 0) {\r\n params = this.getConditionQuery();\r\n } else {\r\n params = this.getQueryFilter();\r\n }\r\n }\r\n if ($.isEmptyObject(this.searchForm)) {\r\n this.$store\r\n .dispatch(\"form/getQuerySqlViewByPagination\", params)\r\n .then(() => {\r\n loading.close();\r\n });\r\n } else {\r\n this.$store\r\n .dispatch(\"form/getQuerySqlViewByPagination\", params)\r\n .then(() => {\r\n loading.close();\r\n });\r\n }\r\n },\r\n getQueryFilter() {\r\n let operationMap = this.getSearchItems();//查询条件类型\r\n let fieldQueryMap = this.getFieldQuery();//查询条件字段\r\n let specialMap = this.getSpecialMap(); //获取特殊查询情况(自定义对话框)\r\n let querys = []; //查询条件\r\n let queryFilter = {};\r\n let pageBean = { pageBean: this.pagination };\r\n let params = { sqlAlias: this.sqlAlias, alias: this.alias };\r\n params.pagination = pageBean;\r\n if ($.isEmptyObject(this.searchForm)) {\r\n return params;\r\n } else {\r\n for (var key in this.searchForm) {\r\n if (\r\n typeof this.searchForm[key] != \"undefined\" &&\r\n this.searchForm[key] != \"\"\r\n ) {\r\n if (this.searchForm[key] instanceof Array) {\r\n if (operationMap[key]===\"BETWEEN\"){\r\n let valueArray = [];\r\n for (let i=0;i{\r\n querys.push({\r\n property: key,\r\n value: v,\r\n group: \"main\",\r\n operation: operationMap[key],\r\n relation: \"AND\"\r\n });\r\n })\r\n } else {\r\n querys.push({\r\n property: key,\r\n value: this.searchForm[key],\r\n group: \"main\",\r\n operation: operationMap[key],\r\n relation: \"AND\"\r\n });\r\n }\r\n }\r\n }\r\n queryFilter = { pageBean: this.pagination, querys };\r\n params.pagination = queryFilter;\r\n return params;\r\n }\r\n },\r\n //获取查询条件类型\r\n getSearchItems() {\r\n let searchItems = $(\".search-item\");\r\n let operationMap = {};//查询条件类型\r\n let operationType = {\r\n LK: \"LIKE\",\r\n EQ: \"EQUAL\",\r\n between: \"BETWEEN\",\r\n LFK: \"LEFT_LIKE\",\r\n RHK: \"RIGHT_LIKE\",\r\n NE: \"NOT_EQUAL\",\r\n LT: \"LESS\",\r\n LE: \"LESS_EQUAL\",\r\n GT: \"GREAT\",\r\n GE: \"GREAT_EQUAL\"\r\n };\r\n if (searchItems) {\r\n for (var i = 0; i < searchItems.length; i++) {\r\n var operation = \"=\";\r\n if (typeof $(searchItems[i]).attr(\"ht-query\") != \"undefined\") {\r\n //查询条件类型\r\n operation = $(searchItems[i]).attr(\"operation\");\r\n operationMap[$(searchItems[i]).attr(\"ht-query\")] =\r\n typeof operationType[operation] != \"undefined\"\r\n ? operationType[operation]\r\n : operation;\r\n } else if (\r\n typeof $(searchItems[i])\r\n .children()\r\n .attr(\"ht-query\") != \"undefined\"\r\n ) {\r\n //查询条件类型\r\n operation = $(searchItems[i])\r\n .children()\r\n .attr(\"operation\");\r\n operationMap[\r\n $(searchItems[i])\r\n .children()\r\n .attr(\"ht-query\")\r\n ] =\r\n typeof operationType[operation] != \"undefined\"\r\n ? operationType[operation]\r\n : operation;\r\n }\r\n }\r\n }\r\n return operationMap;\r\n },\r\n //获取查询条件字段\r\n getFieldQuery() {\r\n let searchItems = $(\".search-item\");\r\n let fieldQueryMap = {};//查询条件字段\r\n\r\n if (searchItems) {\r\n for (var i = 0; i < searchItems.length; i++) {\r\n if (typeof $(searchItems[i]).attr(\"ht-query\") != \"undefined\") {\r\n //查询条件字段\r\n fieldQueryMap[$(searchItems[i]).attr(\"ht-query\")] = $(searchItems[i]).attr(\"field-query\");\r\n } else if (\r\n typeof $(searchItems[i])\r\n .children()\r\n .attr(\"ht-query\") != \"undefined\"\r\n ) {\r\n //查询条件字段\r\n fieldQueryMap[$(searchItems[i]).children().attr(\"ht-query\")] = $(searchItems[i]).children().attr(\"field-query\");\r\n }\r\n }\r\n }\r\n return fieldQueryMap;\r\n },\r\n //获取特殊查询情况(自定义对话框)\r\n getSpecialMap() {\r\n let searchItems = $(\".search-item\");\r\n let fieldQueryMap = {};//查询条件字段\r\n\r\n if (searchItems) {\r\n for (var i = 0; i < searchItems.length; i++) {\r\n if (typeof $(searchItems[i]).attr(\"ht-query\") != \"undefined\") {\r\n //查询条件字段\r\n fieldQueryMap[$(searchItems[i]).attr(\"ht-query\")] =\r\n typeof $(searchItems[i]).attr(\"special-query\") != \"undefined\"\r\n ? true\r\n : false;\r\n } else if (\r\n typeof $(searchItems[i])\r\n .children()\r\n .attr(\"ht-query\") != \"undefined\"\r\n ) {\r\n //查询条件字段\r\n fieldQueryMap[$(searchItems[i]).children().attr(\"ht-query\")] =\r\n typeof $(searchItems[i]).children().attr(\"special-query\") != \"undefined\"\r\n ? true\r\n : false;\r\n }\r\n }\r\n }\r\n return fieldQueryMap;\r\n },\r\n getConditionQuery() {\r\n let searchAll = $(\".search-query\");\r\n let values = \"\";\r\n let querys = []; //查询条件\r\n let queryFilter = {};\r\n let pageBean = { pageBean: this.pagination };\r\n let params = { sqlAlias: this.sqlAlias, alias: this.alias };\r\n params.pagination = pageBean;\r\n if (this.queryForm.queryData == \"\") {\r\n return params;\r\n } else {\r\n if (\r\n typeof $($(searchAll[0]).children()[0]).attr(\r\n \"ht-quick-search\"\r\n ) != \"undefined\"\r\n ) {\r\n values = $($(searchAll[0]).children()[0]).attr(\r\n \"ht-quick-search\"\r\n );\r\n var arr = values.split(\",\");\r\n for (let value of arr) {\r\n querys.push({\r\n property: value,\r\n value: this.queryForm.queryData,\r\n group: \"main\",\r\n operation: \"LIKE\",\r\n relation: \"OR\"\r\n });\r\n }\r\n }\r\n }\r\n queryFilter = { pageBean: this.pagination, querys };\r\n params.pagination = queryFilter;\r\n return params;\r\n },\r\n //打开高级检索\r\n advanced() {\r\n this.formType = !this.formType;\r\n if (this.formType) {\r\n this.incons = \"el-icon-arrow-up\";\r\n this.queryForm.queryData = \"\";\r\n } else {\r\n this.incons = \"el-icon-arrow-down\";\r\n this.searchForm = {};\r\n }\r\n },\r\n reset() {\r\n this.queryForm.queryData = \"\";\r\n this.searchForm = {};\r\n this.search('find')\r\n },\r\n handleSelectionChange(val) {\r\n this.tableData.selectRows = val;\r\n },\r\n\r\n selectable(row, index) {\r\n if (row.BATCH_COVER_FLAG != \"YES\" && row.NODEID == \"UserTask171\") {\r\n return true;\r\n }\r\n return false;\r\n },\r\n //点击导出按钮\r\n exports() {\r\n this.dialogExportVisible = true;\r\n },\r\n\r\n punchOrder() {\r\n this.$store\r\n .dispatch(\"storeProcess/downLoadToFile\", \"Batchkeijyo\")\r\n .then(res => {});\r\n },\r\n\r\n handleRemove(file, fileList) {\r\n console.log(file, fileList);\r\n },\r\n beforeAvatarUpload(file) {\r\n var fileName = new Array();\r\n fileName = file.name.split(\".\");\r\n const extension = fileName[fileName.length - 1] === \"pdf\";\r\n if (!extension) {\r\n this.$message({\r\n message: \"上传模板只能是PDF格式!\",\r\n type: \"warning\"\r\n });\r\n return false;\r\n }\r\n if (this.tableData.selectRows.length == 0) {\r\n this.$message({\r\n type: \"warning\",\r\n message: \"请选择要上传送付状的案件\"\r\n });\r\n return false;\r\n }\r\n return true;\r\n },\r\n\r\n onSuccessUpload(response, file, fileLis) {\r\n this.$message.success(\"送付状成功\");\r\n window.location.reload();\r\n },\r\n handlePreview(file) {\r\n },\r\n //确定导出\r\n submitExport() {\r\n if (!this.exportData || this.exportData.expField.length < 1) {\r\n this.$message({\r\n type: \"info\",\r\n message: \"请选择要导出的字段!\"\r\n });\r\n return;\r\n }\r\n let expField = \"\";\r\n for (var i = 0; i < this.exportData.expField.length; i++) {\r\n if (i > 0) {\r\n expField += \",\";\r\n }\r\n expField += this.exportData.expField[i].fieldName;\r\n }\r\n expField = Base64.encode(expField).replace(/\\+/g,\"%2B\");\r\n let params = { sqlAlias: this.sqlAlias, alias: this.alias };\r\n let data = {\r\n sqlAlias: this.sqlAlias,\r\n alias: this.alias,\r\n getType: this.exportData.getType,\r\n expField: expField\r\n };\r\n data.query = this.getQueryFilter().pagination;\r\n let loadingInstance = Loading.service({ fullscreen: true }); //开始\r\n this.$store.dispatch(\"form/querySqlViewExport\", data).then(() => {\r\n loadingInstance.close(); // 结束\r\n this.dialogExportVisible = false;\r\n });\r\n },\r\n\r\n //取消导出\r\n exportCancel() {\r\n this.dialogExportVisible = false;\r\n this.exportData.expField = [];\r\n },\r\n\r\n handleExportSelectionChange(val) {\r\n this.exportData.expField = [];\r\n if (val) {\r\n this.exportData.expField = val;\r\n }\r\n },\r\n\r\n //全选\r\n handleExportSelectAll() {\r\n this.exportData.expField = this.displayFields;\r\n },\r\n\r\n //排序\r\n sort(index, type) {\r\n if (\"up\" == type) {\r\n if (index === 0) {\r\n this.$message({\r\n message: \"已经是列表中第一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let temp = this.displayFields[index - 1];\r\n Vue.set(\r\n this.displayFields,\r\n index - 1,\r\n this.displayFields[index]\r\n );\r\n Vue.set(this.displayFields, index, temp);\r\n }\r\n } else {\r\n if (index === this.displayFields.length - 1) {\r\n this.$message({\r\n message: \"已经是列表中最后一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n this.isTransition = true;\r\n let i = this.displayFields[index + 1];\r\n Vue.set(\r\n this.displayFields,\r\n index + 1,\r\n this.displayFields[index]\r\n );\r\n Vue.set(this.displayFields, index, i);\r\n }\r\n }\r\n },\r\n\r\n getSubEntsByFormKey(refId) {\r\n let _me = this;\r\n _me.tabs = [];\r\n if (!_me.ents || _me.ents.length < 1) {\r\n this.$store\r\n .dispatch(\"form/getSubEntsByFormKey\", this.templateInfo.alias)\r\n .then(ents => {\r\n _me.ents = ents;\r\n this.getSubData(_me, refId);\r\n });\r\n } else {\r\n this.getSubData(_me, refId);\r\n }\r\n },\r\n getSummaries(param) {\r\n let _summaryTypeMap = this.summaryTypeMap;\r\n const { columns, data } = param;\r\n const sums = [];\r\n columns.forEach((column, index) => {\r\n if (index === 0) {\r\n sums[index] = \"合计\";\r\n return;\r\n }\r\n if (\r\n _summaryTypeMap[column.property] &&\r\n _summaryTypeMap[column.property] == \"sum\"\r\n ) {\r\n const values = data.map(item => Number(item[column.property]));\r\n if (!values.every(value => isNaN(value))) {\r\n sums[index] = values.reduce((prev, curr) => {\r\n const value = Number(curr);\r\n if (!isNaN(value)) {\r\n return prev + curr;\r\n } else {\r\n return prev;\r\n }\r\n }, 0);\r\n } else {\r\n sums[index] = \"N/A\";\r\n }\r\n }\r\n });\r\n\r\n return sums;\r\n },\r\n columnFormatter(row, column, cellValue) {\r\n let formatter = this.formatterMap[column.property];\r\n if (formatter) {\r\n try {\r\n var script =\r\n \"var formatterFunction = function(row,column,cellValue){ \" +\r\n formatter +\r\n \"};\";\r\n var result = eval(script + \"formatterFunction(row,column,cellValue);\");\r\n return result;\r\n } catch (e) {\r\n return cellValue;\r\n }\r\n } else {\r\n return cellValue;\r\n }\r\n },\r\n dateFormatter(row,column,cellValue){\r\n if(cellValue){\r\n return cellValue.replace(\".0\",\"\");\r\n }else{\r\n return cellValue;\r\n }\r\n },\r\n getAlarmColor(field, cellValue) {\r\n let alarmSetting = this.alarmSettingMap[field];\r\n let type = \"\";\r\n this.displayFields.forEach(item => {\r\n if (item.fieldName === field){\r\n type = item.dataType;\r\n }\r\n })\r\n if (alarmSetting) {\r\n try {\r\n let alarmSettingJson = utils.parseToJson(alarmSetting);\r\n let alarmScript = \"\";\r\n for (var i = 0; i < alarmSettingJson.length; i++) {\r\n let alarm = alarmSettingJson[i];\r\n let condition = alarm.condition;\r\n let conditionStr = \"\";\r\n for (var m = 0; m < condition.length; m++) {\r\n if (m > 0) {\r\n conditionStr += \" && \";\r\n }\r\n if (type==='number' || type ==='bigint' || type === 'int') {\r\n if(condition[m].op=='indexOf' && condition[m].val){\r\n conditionStr = conditionStr + \"'\" + cellValue + \"'.indexOf('\" + condition[m].val + \"')!=-1\";\r\n }else if(condition[m].op=='notIndexOf'){\r\n conditionStr = conditionStr + \"'\" + cellValue + \"'.indexOf('\" + condition[m].val + \"')==-1\";\r\n }else{\r\n conditionStr =\r\n conditionStr +\r\n cellValue +\r\n condition[m].op +\r\n condition[m].val;\r\n }\r\n } else {\r\n if(condition[m].op=='indexOf' && condition[m].val){\r\n conditionStr = conditionStr + \"'\" + cellValue + \"'.indexOf('\" + condition[m].val + \"')!=-1\";\r\n }else if(condition[m].op=='notIndexOf'){\r\n conditionStr = conditionStr + \"'\" + cellValue + \"'.indexOf('\" + condition[m].val + \"')==-1\";\r\n }else{\r\n conditionStr =\r\n conditionStr +\r\n \"'\" +\r\n cellValue +\r\n \"'\" +\r\n condition[m].op +\r\n \"'\" +\r\n condition[m].val +\r\n \"'\";\r\n }\r\n }\r\n //conditionStr = conditionStr+cellValue+condition[m].op+condition[m].val;\r\n }\r\n if (i > 0) {\r\n alarmScript += \" else \";\r\n }\r\n let colorStr = \"color:\" + alarm.color + \"\";\r\n alarmScript =\r\n alarmScript +\r\n \"if(\" +\r\n conditionStr +\r\n \"){return '\" +\r\n colorStr +\r\n \"';}\";\r\n }\r\n if (alarmScript) {\r\n alarmScript += 'else{ return \"\";}';\r\n var script =\r\n \"var alarmFunction = function(){ \" + alarmScript + \"};\";\r\n var result = eval(script + \"alarmFunction();\");\r\n return result;\r\n } else {\r\n return \"\";\r\n }\r\n } catch (e) {\r\n return \"\";\r\n }\r\n }\r\n },\r\n summary(method,field,decimal){\r\n let list = this.rows.filter(item => item[field]!==undefined && item[field]!==\"\").map(item => new Number(item[field]));\r\n if (method === \"count\"){\r\n return list.length;\r\n }else if (method === \"sum\"){\r\n return list.reduce((a,b) => a + b).toFixed(decimal);\r\n }else if (method === \"min\"){\r\n return Math.min(...list).toFixed(decimal);\r\n }else if (method === \"max\"){\r\n return Math.max(...list).toFixed(decimal);\r\n }else if (method === \"avg\"){\r\n return (list.reduce((a,b) => a + b) / list.length).toFixed(decimal);\r\n }\r\n },\r\n showSearchPane() {\r\n return true\r\n }\r\n }\r\n });\r\n }\r\n }\r\n};\r\n",null]}