{"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\\HtColumn.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\common\\HtColumn.vue","mtime":1675071991631},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport req from \"@/request.js\";\r\nimport portal from \"@/api/portal.js\";\r\nimport flow from \"@/api/flow.js\";\r\nimport VRuntimeTemplate from \"v-runtime-template\";\r\nconst eipChart = () => import(\"@/components/form/chart/EipChart.vue\");\r\nconst chart = () => import(\"@/components/form/chart/Chart.vue\");\r\nimport CustomDialogShowDetail from \"@/views/form/customDialog/CustomDialogShowDetail.vue\";\r\nimport HtChart from \"./HtChart\"\r\n\r\nlet Base64 = require(\"js-base64\").Base64;\r\nimport {mapState} from \"vuex\";\r\nimport hotentUiUtils from \"@/hotent-ui-util.js\";\r\n\r\nexport default {\r\n  name: \"ht-column\",\r\n  components: { VRuntimeTemplate, eipChart, chart ,CustomDialogShowDetail,HtChart},\r\n  props: {\r\n    columnAlias: {\r\n      type: String,\r\n      required: true\r\n    },\r\n    // 是否来自于预览页面\r\n    fromPreview:{\r\n      type:Boolean,\r\n      default:false\r\n    },\r\n    //是否存在tab标签中\r\n    isTab:{\r\n      type:Boolean,\r\n      default:false\r\n    },\r\n  },\r\n  data() {\r\n    return {\r\n      isCommon: false,\r\n      isChart: false,\r\n      isReport: false,\r\n      isCustomDialog:false,\r\n      chartId: \"\",\r\n      reportOption: {},\r\n      loading: true,\r\n      html: \"<span>本栏目无模板</span>\",\r\n      data: {},\r\n      column: {},\r\n      customDialog:{alias:\"\"},\r\n      pageBean: { page: 1, pageSize: 10, total: 0, showTotal: true },\r\n      canDisplay:true\r\n    };\r\n  },\r\n  watch: {\r\n    \"column.colHeight\": function(val) {\r\n      if (val && val > 0) {\r\n        this.$refs.colBody.style.height = val + \"px\";\r\n      }\r\n    },\r\n    \"pageBean.page\": function(val) {\r\n      if (val && val > 0 && this.column.needPage == 1) {\r\n        this.load();\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.load();\r\n  },\r\n  computed: {\r\n    ...mapState({\r\n      token: state => state.login.currentUser.token\r\n    })\r\n  },\r\n  methods: {\r\n    goToFront(path){\r\n      let url = window.context.front+path+\"?token=\"+this.token;\r\n      window.open(url, \"_blank\");\r\n    },\r\n    openMore(url) {\r\n      this.$router.push({ path: url });\r\n    },\r\n    refresh() {\r\n      this.load();\r\n    },\r\n    close() {\r\n      this.$refs.col.remove();\r\n    },\r\n    load() {\r\n      this.loading = true;\r\n      let this_ = this;\r\n      portal.getColumnByAlias(this.columnAlias).then(data => {\r\n        this_.column = data;\r\n        //计算该栏目是否展示\r\n        if(this_.fromPreview){\r\n          this_.canDisplay=true;\r\n        }else{\r\n          this_.canDisplay=this_.column.displayRights;\r\n        }\r\n        //如果无展示权限，则不进行栏目数据渲染了，并隐藏整个组件\r\n        if(!this_.canDisplay){\r\n          this.loading = false;\r\n          return;\r\n        }\r\n\r\n        if (this_.column.colType && (this_.column.colType == 1 || this_.column.colType == 4)) {\r\n          let dataParam = JSON.parse(this_.column.dataParam);\r\n          if (dataParam.chartType == 2) {\r\n            this_.chartId = dataParam.id;\r\n            this_.isChart = true;\r\n            this_.loading = false;\r\n          } else {\r\n            this_.isReport = true;\r\n            this_.getChartsData(dataParam);\r\n          }\r\n        } else {\r\n          //自定义对话框\r\n          if(this_.column.dataMode === 1){\r\n            this_.getCustomDialogData();\r\n          }\r\n          //restful查询\r\n          else if(this_.column.dataMode === 3){\r\n            this_.isCommon = true;\r\n            this_.getDataToParse();\r\n          }else{\r\n            this.isCommon = true;\r\n            this.dencodeHtml();\r\n            this.loading = false;\r\n          }\r\n        }\r\n      });\r\n    },\r\n    //图标\r\n    getChartsData(dataParam) {\r\n      flow.getEchartsData(dataParam.id).then(\r\n        response => {\r\n          if (response && response.value) {\r\n            let opt = response.value;\r\n            if (opt.constructor == Array) {\r\n              opt = opt[0];\r\n            }\r\n            this.reportOption = { ...opt };\r\n          }\r\n          this.loading = false;\r\n        },\r\n        err => {\r\n          this.loading = false;\r\n          this.html = `<span style='color:red;'>${err}</span>`;\r\n        }\r\n      );\r\n    },\r\n    getDataToParse() {\r\n      let column = this.column;\r\n      if (!column.dataFrom) {\r\n        this.dencodeHtml();\r\n        this.loading = false;\r\n        return;\r\n      }\r\n      //post请求参数\r\n      let queryParams = {};\r\n      //如果需要分页\r\n      if (column.needPage === 1) {\r\n        queryParams.pageBean = this.pageBean;\r\n      }\r\n      //get请求参数\r\n      let urlParam = \"\";\r\n      if (column.dataParam) {\r\n        let ctx = {};\r\n        const  curUserDetail= this.$store.state.user.currentUserDetail;\r\n        if (curUserDetail.user) {\r\n          ctx.curUserAccount = curUserDetail.user.account;\r\n          ctx.curUserId = curUserDetail.user.id;\r\n        }\r\n        column.dataParam =  hotentUiUtils.parseExp(column.dataParam, ctx);\r\n      }\r\n      let dataParam = JSON.parse(column.dataParam || \"[]\");\r\n      if (dataParam) {\r\n        for (var i = 0; i < dataParam.length; i++) {\r\n          var value = dataParam[i][\"value\"];\r\n          var name = dataParam[i][\"name\"];\r\n          if (column.requestType == \"POST\") {\r\n            try {\r\n              value = JSON.parse(value);\r\n            } catch (e) {}\r\n            queryParams[name] = value;\r\n            //如果参数中也设置了分页\r\n            if (name === \"pageBean\") {\r\n              this.pageBean = value;\r\n            }\r\n          } else {\r\n            urlParam =\r\n              i > 0\r\n                ? urlParam + \"&\" + name + \"=\" + value\r\n                : \"?\" + name + \"=\" + value;\r\n          }\r\n        }\r\n      }\r\n      //请求获取数据\r\n      if (column.requestType && column.requestType == \"POST\") {\r\n        req.post(column.dataFrom, queryParams).then(\r\n          response => {\r\n            this.data = response.data;\r\n            this.loading = false;\r\n            if (this.column.needPage === 1) {\r\n              this.pageBean.page = this.data.page || 1;\r\n              this.pageBean.pageSize = this.data.pageSize || 10;\r\n              this.pageBean.total = this.data.total || 0;\r\n            }\r\n            this.dencodeHtml();\r\n          },\r\n          err => {\r\n            this.loading = false;\r\n            this.html = `<span style='color:red;'>${err}</span>`;\r\n          }\r\n        );\r\n      } else {\r\n        req.get(column.dataFrom + urlParam).then(\r\n          response => {\r\n            this.data = response.data;\r\n            this.loading = false;\r\n            this.dencodeHtml();\r\n          },\r\n          err => {\r\n            this.loading = false;\r\n            this.html = `<span style='color:red;'>${err}</span>`;\r\n          }\r\n        );\r\n      }\r\n    },\r\n    getCustomDialogData(){\r\n      let this_ = this;\r\n      let dataFrom = JSON.parse(this.column.dataFrom||\"{}\");\r\n      if(!dataFrom.alias){\r\n        this_.loading = false;\r\n        this_.isCommon = true;\r\n        this.dencodeHtml();\r\n        return;\r\n      }\r\n      let url = \"${form}/form/customDialog/v1/getByAlias?alias=\"+dataFrom.alias;\r\n      req.get(url).then(function(customDialog) {\r\n        customDialog = customDialog.data;\r\n        //格式化对话框的显示字段、返回字段、条件字段、排序字段\r\n        customDialog.displayfield = JSON.parse(customDialog.displayfield);\r\n        for (let i = 0; i < customDialog.displayfield.length; i++) {\r\n          customDialog.displayfield[i].field = customDialog.displayfield[\r\n            i\r\n          ].field.toUpperCase();\r\n        }\r\n        customDialog.resultfield = JSON.parse(customDialog.resultfield);\r\n        customDialog.sortfield = JSON.parse(customDialog.sortfield);\r\n        customDialog.conditionfield = JSON.parse(customDialog.conditionfield);\r\n        //列表\r\n        if (customDialog.style == 0) {\r\n          this_.customDialog = customDialog;\r\n          this_.isCustomDialog=true;\r\n          this_.loading = false;\r\n          setTimeout(() => {\r\n            this_.$refs.customDialogShowDetail.initData(); //显示自定义对话框列表预览弹框\r\n          });\r\n        }\r\n      });\r\n    },\r\n    dencodeHtml() {\r\n      if (this.column.templateHtml) {\r\n        this.column.html = Base64.decode(this.column.templateHtml);\r\n      }\r\n    }\r\n  }\r\n};\r\n",null]}