{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\querySql\\DynamicView.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\querySql\\DynamicView.vue","mtime":1667327529653},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-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<this.searchForm[key].length;i++){\r\n                        valueArray.push(this.searchForm[key][i]);\r\n                      }\r\n                      querys.push({\r\n                        property: key,\r\n                        value: valueArray.join(\",\"),\r\n                        group: \"main\",\r\n                        operation: operationMap[key],\r\n                        relation: \"AND\"\r\n                      })\r\n                    }else{\r\n                      for (let i = 0; i < this.searchForm[key].length; i++) {\r\n                        querys.push({\r\n                          property: key,\r\n                          value: this.searchForm[key][i],\r\n                          group: \"main\",\r\n                          operation: operationMap[key],\r\n                          relation: \"AND\"\r\n                        });\r\n                      }\r\n                    }\r\n                  } else if(this.searchForm[key].includes(\",\") && !specialMap[key]){\r\n                    let arr = this.searchForm[key].split(\",\");\r\n                    for(let i=0; i<arr.length; i++){\r\n                      if(arr[i] == \"\" || arr[i] == null || typeof(arr[i]) == \"undefined\"){\r\n                        arr.splice(i,1);\r\n                        i= i-1;\r\n                      }\r\n                    }\r\n                    arr.forEach(v =>{\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]}