{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\customDialog\\EipTreeDialog.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\views\\form\\customDialog\\EipTreeDialog.vue","mtime":1675071992960},{"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//\nimport { Message } from 'element-ui';\nimport req from \"@/request.js\";\nexport default {\n  name: \"eip-tree-dialog\",\n  props: {\n    //自定义对话框的别名\n    alias: {\n      type: String,\n      required: true\n    },\n    //自定义对话框的配置\n    customDialog: {\n      type: Object,\n      required: true\n    },\n    //动态传入的条件参数\n    mapParam: {\n      type: Object\n    },\n    ispreview: {\n      type: Boolean,\n      required: false,\n      default: true\n    }\n  },\n  data: function data() {\n    return {\n      nodeKey: \"ID_\",\n      //树数据Id （每个树节点用来作为唯一标识的属性，整棵树应该是唯一的）\n      showCheckbox: true,\n      //对话框单选还是多选 true：多选，false：单选\n      treeData: [],\n      //树数据\n      defaultProps: {\n        children: \"children\",\n        label: \"name\",\n        isLeaf: \"isLeaf\"\n      },\n      displayField: {},\n      treeList: []\n    };\n  },\n  methods: {\n    //显示对话框\n    showDialog: function showDialog() {\n      this.$refs.htTreeDialog.showDialog(); //判断树是否支持多选\n\n      if (this.customDialog.selectNum == 1) {\n        // 单选\n        this.showCheckbox = false;\n      } else {\n        this.showCheckbox = true;\n      } //把对话框配置的显示字段ID赋值给树形的树数据Id\n\n\n      this.nodeKey = this.customDialog.displayfield.id;\n      this.customDialogTreeShow(); //加载树\n    },\n    //加载树\n    customDialogTreeShow: function customDialogTreeShow() {\n      //得到对话框的配置\n      var customDialog = this.customDialog;\n      var mapParam = ''; //数据来源是数据源，且有动态参数传入时调用\n\n      var defaultPValue = \"\"; //父ID值\n      //判断是否有动态传入的条件参数\n\n      if (this.mapParam && JSON.stringify(this.mapParam) != \"{}\") {\n        for (var m in this.mapParam) {\n          defaultPValue = this.mapParam[m];\n          break;\n        }\n\n        mapParam = JSON.stringify(this.mapParam);\n        mapParam = mapParam.substring(1, mapParam.length - 1);\n      } //判断数据来源是否是数据源，如果是数据源请求类型就为GET请求；如果数据来源是REST接口，请求类型就获取对话框配置的请求；\n\n\n      var requestType = customDialog.dsType == \"dataSource\" ? \"GET\" : customDialog.requestType ? customDialog.requestType : \"POST\"; //数据来源是数据源的URL\n\n      var url = \"${form}/form/customDialog/v1/getTreeData?alias=\" + this.alias + \"&mapParam=\" + mapParam;\n      var paramsObj = {}; //数据来源是REST接口\n\n      if (customDialog.dsType != \"dataSource\") {\n        url = customDialog.url; //判断是否有条件字段\n\n        if (customDialog.conditionfield.length > 0) {\n          var conditions = customDialog.conditionfield; //条件字段\n\n          for (var i = 0; i < conditions.length; i++) {\n            var con = conditions[i]; //判断是否是POST请求\n\n            if (requestType == \"POST\") {\n              paramsObj[con.field] = con.defaultValue;\n            } else {\n              var ljChar = url.indexOf(\"?\") == -1 ? \"?\" : \"&\";\n              url = url + ljChar + con.field + \"=\" + con.defaultValue;\n            }\n          }\n        }\n      }\n\n      var requestParams = {};\n      requestParams.requestType = requestType;\n      requestParams.url = url;\n      requestParams.paramsObj = paramsObj;\n      this.searchTree(requestParams, defaultPValue);\n    },\n    //树形查询\n    searchTree: function searchTree(requestParams, defaultPValue) {\n      var this_ = this;\n      var query = requestParams.requestType == 'POST' ? req.post(requestParams.url, requestParams.paramsObj) : req.get(requestParams.url);\n      query.then(function (response) {\n        //显示字段配置\n        var displayfield = this_.customDialog.displayfield;\n        this_.displayField = displayfield; //把对话框配置的显示字段显示名称赋值给树形的显示值\n\n        this_.defaultProps.label = displayfield.displayName;\n        this_.treeList = response.data; //得到要加载树的信息\n\n        if (defaultPValue) {\n          displayfield.pvalue = defaultPValue;\n        }\n\n        this_.treeData = this_.toTreeData(response.data, displayfield.id, displayfield.pid, displayfield.displayName, displayfield.pvalue ? displayfield.pvalue : 0);\n      });\n    },\n    //加载树的信息\n    toTreeData: function toTreeData(data, id, pid, name, pvalue) {\n      // 建立个树形结构,需要定义个最顶层的父节点，pvalue是0\n      return this.translateDataToTree(data, pid, id, name, pvalue);\n    },\n    translateDataToTree: function translateDataToTree(data, pid, id, name, pvalue) {\n      //把树数据有子节点的数据全部过滤掉（只留父节点的数据）\n      var parents = data.filter(function (value) {\n        return value[id] == value[pid] || value[pid] == null || value[pid] == pvalue;\n      });\n\n      if (!parents) {\n        parents = data.filter(function (value) {\n          return value[pid] !== 'undefined' && value[pid] != null && value[id] != value[pid];\n        });\n      }\n\n      return parents;\n    },\n    //树节点 点击事件\n    loadTree: function loadTree(node, resolve) {\n      var _this = this;\n\n      if (node) {\n        resolve(this.treeList.filter(function (value) {\n          return value[_this.displayField.pid] === node.data[_this.displayField.id];\n        }));\n      } else {\n        resolve([]);\n      }\n    },\n    //确认事件\n    treeDialogOnConfirm: function treeDialogOnConfirm(data) {\n      //单选\n      if (this.customDialog.selectNum === 1 && data.constructor === Object && JSON.stringify(data) == \"{}\") {\n        Message.error(\"请至少选择一条数据\");\n        return;\n      } else if (this.customDialog.selectNum === 1 && data.constructor === Array && data.length > 0) {\n        //多选\n        Message.error(\"请至少选择一条数据\");\n        return;\n      } //拿到配置的返回字段\n\n\n      var returnStr = this.customDialog.resultfield; //返回字段的字段名有多少个\n\n      var field = new Array([returnStr.length]); //返回字段的返回名称有多少个\n\n      var comment = new Array([returnStr.length]);\n      var str = [];\n\n      for (var i = 0; i < returnStr.length; i++) {\n        //得到返回字段的字段名\n        field[i] = this.customDialog.dsType == 'dataSource' ? returnStr[i].field : returnStr[i].field; //得到返回字段的返回名称\n\n        comment[i] = this.customDialog.dsType == 'dataSource' ? returnStr[i].comment : returnStr[i].comment;\n      }\n\n      var s = []; //是否单选  1：单选；-1：多选\n\n      if (this.customDialog.selectNum === 1) {\n        s.push(data);\n        this.deleteChildren(s); //循环把树数组里面的子节点数据删除\n\n        var _temp = \"\";\n\n        for (var _i = 0; _i < comment.length; _i++) {\n          _temp += '\"' + comment[_i] + '\":\"' + s[0][field[_i]] + '\",';\n        } //去除字符串最后一个字符逗号\n\n\n        if (_temp != \"\") {\n          _temp = \"{\" + _temp.substring(0, _temp.length - 1) + \"}\";\n        }\n\n        str.push(JSON.parse(_temp));\n      } else {\n        s = data;\n        this.deleteChildren(s); //循环把树数组里面的子节点数据删除\n\n        for (var _i2 = 0; _i2 < s.length; _i2++) {\n          var temp = \"\";\n\n          for (var j = 0; j < comment.length; j++) {\n            temp += '\"' + comment[j] + '\":\"' + s[_i2][field[j]] + '\",';\n          } //去除字符串最后一个字符逗号\n\n\n          if (temp != \"\") {\n            temp = \"{\" + temp.substring(0, temp.length - 1) + \"}\";\n          }\n\n          str.push(JSON.parse(temp));\n        }\n      }\n\n      if (this.ispreview) {\n        Message.success(\"返回数据为：\" + JSON.stringify(str));\n      }\n\n      this.$emit(\"return-all-data\", s);\n      this.$emit('onConfirm', str);\n      this.$refs.htTreeDialog.handleClose(); //关闭对话框\n    },\n    //循环把树数组里面的子节点数据删除\n    deleteChildren: function deleteChildren(arrayVal) {\n      for (var i = 0; i < arrayVal.length; i++) {\n        delete arrayVal[i].children;\n      }\n    }\n  }\n};",null]}