{"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\\common\\TemplateComponent.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\common\\TemplateComponent.vue","mtime":1675071991694},{"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\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport form from \"@/api/form.js\";\r\nimport { Message } from \"element-ui\";\r\nimport { Loading } from \"element-ui\";\r\nimport VRuntimeTemplate from \"v-runtime-template\";\r\nimport { Base64 } from \"js-base64\";\r\nimport $ from 'jquery';\r\n\r\nexport default {\r\n  name: \"templatePreview\",\r\n  data() {\r\n    return {\r\n      alias:'',\r\n      html: \"\",\r\n      templateInfo: {},\r\n      tableData: { selectRows: [], querys: \"\" },\r\n      dialogExportVisible: false,\r\n      dialogSubVisible: false,\r\n      exportData: { getType: \"all\", expField: [] },\r\n      displayFields: [],\r\n      exportSellection: [],\r\n      tabs: [],\r\n      ents: [],\r\n      searchForm: {},\r\n      queryForm:{\r\n        queryData:\"\",\r\n      },\r\n      formType:false,\r\n      labelPosition: 'left',\r\n      incons:\"el-icon-arrow-down\",\r\n      options:{\r\n        fullscreen: true,\r\n        lock: true,\r\n      },\r\n      rows:[],\r\n      pagination:{page:1,pageSize:30,showTotal:true},\r\n      total:0,\r\n    };\r\n  },\r\n  components: {\r\n    VRuntimeTemplate,\r\n  },\r\n  watch: {\r\n    alias: function(newVal) {\r\n      if (newVal) {\r\n        this.init();\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.alias = this.$route.params.alias;\r\n  },\r\n  methods: {\r\n    // 根据当前alias初始化\r\n    init() {\r\n      const loading = this.$loading(this.options);\r\n      let _me = this;\r\n      form.getTemplateDataListForm(this.alias)\r\n        .then(result => {\r\n          loading.close();\r\n        if (result.state) {\r\n            _me.html = result.value;\r\n            this.search();\r\n        }\r\n      });\r\n      form.getBpmDataTemplateInfo(this.alias)\r\n        .then(result => {\r\n          loading.close();\r\n          if (result.state) {\r\n            _me.templateInfo = result.value;\r\n            if (_me.templateInfo.displayField) {\r\n              let displayField = JSON.parse( _me.templateInfo.displayField);\r\n              for (var i = 0; i < displayField.length; i++) {\r\n                if (displayField[i].type) {\r\n                  _me.displayFields.push(displayField[i]);\r\n                }\r\n              }\r\n            }\r\n          }\r\n      });\r\n    },\r\n    handleSizeChange: function(size) {\r\n      //每页下拉显示数据\r\n      this.pagination.pageSize = size;\r\n      this.search();\r\n    },\r\n    handleCurrentChange: function(currentPage) {\r\n      //点击第几页\r\n      this.pagination.page = currentPage;\r\n      this.search();\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.pagination.page = 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       form.getBpmTemplateByPagination(params)\r\n        .then(result => {\r\n          loading.close();\r\n          this.rows = result.rows;\r\n          this.total = result.total;\r\n          this.pagination.page = result.page;\r\n          this.pagination.pageSize = result.pageSize;\r\n      });\r\n    },\r\n    getQueryFilter() {\r\n      let operationMap = this.getSearchItems();\r\n      let querys = []; //查询条件\r\n      let queryFilter = {};\r\n      let pageBean = { pageBean: this.pagination };\r\n      let params = { templateId: this.templateInfo.id };\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              for ( var 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            }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    getSearchItems() {\r\n      let searchItems = $(\".search-item\");\r\n      let operationMap = {};\r\n      let operationType = {\r\n        like: \"LIKE\",\r\n        equal: \"EQUAL\",\r\n        between: \"BETWEEN\",\r\n        left_like: \"LEFT_LIKE\",\r\n        right_like: \"RIGHT_LIKE\"\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            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            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    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 = { templateId: this.templateInfo.id };\r\n      params.pagination = pageBean;\r\n      if (this.queryForm.queryData==\"\") {\r\n        return params;\r\n      }else {\r\n        if (typeof $($(searchAll[0]).children()[0]).attr(\"ht-quick-search\") != \"undefined\") {\r\n          values = $($(searchAll[0]).children()[0]).attr(\"ht-quick-search\");\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    //回车查询\r\n    searchEnterFun:function(e){\r\n        var keyCode = window.event? e.keyCode:e.which;\r\n        if(keyCode == 13){\r\n            this.search();\r\n        }\r\n    },\r\n    reset() {\r\n      this.queryForm.queryData=\"\";\r\n      this.searchForm = {};\r\n      this.search();\r\n    },\r\n    handleSelectionChange(val) {\r\n      this.tableData.selectRows = val;\r\n    },\r\n    deleted() {\r\n      if (\r\n        this.tableData.selectRows == null ||\r\n        this.tableData.selectRows.length == 0\r\n      ) {\r\n        this.$message.warning(\"请选择文件删除!\");\r\n        return false;\r\n      }\r\n      this.$confirm(\"此操作将删除该文件, 是否继续?\", \"提示\", {\r\n        confirmButtonText: \"确定\",\r\n        cancelButtonText: \"取消\",\r\n        type: \"warning\"\r\n      })\r\n        .then(() => {\r\n          var s = \"\";\r\n          for (var i = 0; i < this.tableData.selectRows.length; i++) {\r\n            s +=\r\n              s + this.tableData.selectRows[i][this.templateInfo.pkField] + \",\";\r\n          }\r\n          s = s.substring(0, s.length - 1);\r\n          let data = { ids: s, boAlias: this.templateInfo.boDefAlias };\r\n          this.$store.dispatch(\"form/deleteTemplateDataById\", data).then(() => {\r\n            this.search();\r\n          });\r\n        })\r\n        .catch(() => {\r\n          this.$message({\r\n            type: \"info\",\r\n            message: \"已取消删除\"\r\n          });\r\n        });\r\n    },\r\n    del(id) {\r\n      this.$confirm(\"此操作将删除该文件, 是否继续?\", \"提示\", {\r\n        confirmButtonText: \"确定\",\r\n        cancelButtonText: \"取消\",\r\n        type: \"warning\"\r\n      })\r\n        .then(() => {\r\n          let data = { ids: id, boAlias: this.templateInfo.boDefAlias };\r\n          this.$store.dispatch(\"form/deleteTemplateDataById\", data).then(() => {\r\n            this.search();\r\n          });\r\n        })\r\n        .catch(() => {\r\n          this.$message({\r\n            type: \"info\",\r\n            message: \"已取消删除\"\r\n          });\r\n        });\r\n    },\r\n    operating(templateId, id, action, defId, isStartFlow) {\r\n      if (!templateId) {\r\n        templateId = this.templateInfo.id;\r\n        action = \"add\";\r\n      }\r\n      var url = \"/statement/template/form/\" + this.alias + \"/\" + action;\r\n      if (id) {\r\n        url = url + \"?id=\" + id + \"&\";\r\n      } else {\r\n        url += \"?\";\r\n      }\r\n      var startFlowStr = \"startFlow=false\";\r\n      if (action == \"add\" && defId) {\r\n        startFlowStr = \"startFlow=true\";\r\n      } else if (id && isStartFlow === false && defId) {\r\n        startFlowStr = \"startFlow=true\";\r\n      }\r\n      this.$router.push(url + startFlowStr);\r\n    },\r\n    startFlow(id) {\r\n      let data = {\r\n        defKey: this.templateInfo.defId,\r\n        businessKey: id,\r\n        boAlias: this.templateInfo.boDefAlias\r\n      };\r\n      let loadingInstance = Loading.service({ fullscreen: true }); //开始\r\n      this.$store.dispatch(\"storeProcess/startForm\", data).then(result => {\r\n        loadingInstance.close(); // 结束\r\n        if (result.state) {\r\n          this.$message.success(result.message);\r\n          this.search();\r\n        } else {\r\n          this.disabled = false;\r\n          this.$message.error(result.message);\r\n        }\r\n      });\r\n    },\r\n    //点击导出按钮\r\n    exports() {\r\n      this.dialogExportVisible = true;\r\n    },\r\n\r\n    //显示子表对话框\r\n    showSubList(refId) {\r\n      this.getSubEntsByFormKey(refId);\r\n    },\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].name;\r\n      }\r\n      expField = Base64.encode(expField);\r\n      let data = {\r\n        boAlias: this.templateInfo.alias,\r\n        getType: this.exportData.getType,\r\n        expField: expField,\r\n        filterKey: \"\"\r\n      };\r\n      data.query = this.getQueryFilter().pagination;\r\n      let loadingInstance = Loading.service({ fullscreen: true }); //开始\r\n      this.$store.dispatch(\"form/templateExport\", 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    //取消子表对话框\r\n    subCancel() {\r\n      this.dialogSubVisible = false;\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          this.$set(this.displayFields, index - 1, this.displayFields[index]);\r\n          this.$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          this.$set(this.displayFields, index + 1, this.displayFields[index]);\r\n          this.$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\r\n    getSubData(_me, refId) {\r\n      _me.tabs = [];\r\n      let ents = _me.ents;\r\n      if (ents && ents.length > 0) {\r\n        for (var i = 0; i < ents.length; i++) {\r\n          var attributeList = ents[i].attributeList;\r\n          var tab = {\r\n            name: ents[i].tableName,\r\n            title: ents[i].comment,\r\n            attributeList: attributeList,\r\n            comment: ents[i].comment\r\n          };\r\n          this.$store\r\n            .dispatch(\"form/getSubData\", { name: ents[i].name, refId: refId })\r\n            .then(data => {\r\n              if (data && data.length > 0) {\r\n                tab.dataList = data;\r\n              } else {\r\n                tab.dataList = [];\r\n              }\r\n              _me.tabs.push(tab);\r\n              this.dialogSubVisible = true;\r\n            });\r\n        }\r\n      }\r\n    }\r\n  }\r\n};\r\n",null]}