{"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]}