UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

215 lines (184 loc) 6.98 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray'); var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _extend = require('extend'); var _extend2 = _interopRequireDefault(_extend); var _bizUtils = require('../_biz-utils'); var _utils = require('../../lib/_utils'); var _utils2 = require('./utils'); var _defaultProps = require('./defaultProps'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * 仅用程序于拆分 */ exports['default'] = { name: 'tree-search', methods: { /** * 从搜索结果中选中某一项 * 根据选中项查询与其相关的父级节点 * * 如果当前节点 或 其父级节点已经存在, -- 则不在去查询 * * bizInvoke 业务层调用 */ searchSelect: function searchSelect(key, itemData) { var _this = this; var _$props = this.$props, rel = _$props.rel, searchSelectOptions = _$props.searchSelectOptions; var sOps = (0, _extend2['default'])(true, {}, _defaultProps.searchSelectDefaultOps, searchSelectOptions); var url = sOps.url, method = sOps.method, _sOps$data = sOps.data, data = _sOps$data === undefined ? {} : _sOps$data; var listData = this.listData, vDateUnix = this.vDateUnix, nowDate = this.nowDate, dimensionValue = this.dimensionValue; /** * 在已有的数据中找到匹配的项 */ var isExistCur = listData.find(function (it) { return key === (0, _utils.relationHandler)(rel[0], it); }); var isExistParent = itemData ? listData.find(function (it) { return (0, _utils.relationHandler)(rel[1], it) === (0, _utils.relationHandler)(rel[0], itemData); }) : null; /** * 是否存在, 如果存在则不再向下执行 * 选中节点, 并展开其父级 * TODO: * 感觉这里逻辑有问题 */ if (isExistCur || isExistParent) { var cloneItem = (0, _extend2['default'])({}, isExistCur); this.selectCur(isExistCur); this.$emit('searchSelect', { key: key, itemData: cloneItem }); return new Promise(function (resolve, reject) { resolve(); }); } this.$root.isLoading = true; var queryKey = itemData ? (0, _utils.relationHandler)(rel[0], itemData) : key; /** * 有地儿可能不用维度日期 * 以后有需求在整理 * 暂时来看和组织相关的都需要维度 */ var vData = (0, _extend2['default'])({ dimensionId: dimensionValue, queryDate: vDateUnix || nowDate.valueOf() }, data); if (!vData.dimensionId) { vData.dimensionId = dimensionValue; } if (!vData.queryDate) { vData.queryDate = vDateUnix || nowDate.valueOf(); } var reqParams = { url: url, method: method, data: (0, _extends3['default'])({}, vData, { hid: queryKey }, this.getRequestParams()) }; // get parent return (0, _bizUtils.request)(reqParams).then(function (res) { var resData = res.data; var msg = resData.msg, code = resData.code, data = resData.data; if (code !== 200) { return Promise.reject(msg); } /** * 不明错误, data 会有空的情况 */ if (!data || !data.length) return; data.map(function (it) { // const t = this.$refs.swTree.$refs.insRef.$refs.tree.domTreeNodes; var nodeKey = (0, _utils.relationHandler)(rel[0], it); // const nodeParentKey = relationHandler(rel[1], it); // const name = relationHandler(this.renderKey, it); _this.vOpenKeys = [].concat((0, _toConsumableArray3['default'])(new Set([].concat((0, _toConsumableArray3['default'])(_this.vOpenKeys), [nodeKey])))); // console.log(name, nodeKey, nodeParentKey); // if (t && t[nodeKey]) { // return this.getCategoryItemChildren(t[nodeKey]); // } }).filter(function (T) { return T; }); /** * 获取到匹配的节点 */ var matchItem = itemData || data.find(function (it) { var nodeKey = (0, _utils.relationHandler)(rel[0], it); return nodeKey === key; }); _this.selectCur(matchItem); _this.$emit('searchSelect', { key: key, itemData: matchItem }); return res; })['catch'](function (e) { console.error(e); _this.$message.error(e); return Promise.reject(e); })['finally'](function () { _this.$root.isLoading = false; }); }, // 查找 item 祖先节点 id searchGetAncestors: function searchGetAncestors(item) { var rel = this.$props.rel; var listData = this.listData; var parentKeys = []; var curID = (0, _utils.relationHandler)(rel[0], item); var cur_Obj = listData.find(function (it) { if ((0, _utils.relationHandler)(rel[0], it) === curID) { return it; } }); var pid = (0, _utils.relationHandler)(rel[1], cur_Obj); function getParent(parentId) { if (!parentId || parentId === '-1' || parentId === 'null') return; listData.map(function (it) { var itemId = (0, _utils.relationHandler)(rel[0], it); if (itemId === parentId) { parentKeys.push(itemId); getParent((0, _utils.relationHandler)(rel[1], it)); } }); } getParent(pid); return parentKeys; }, // 根据 item 选择节点, 以祖先节点 selectCur: function selectCur(item) { var _$props2 = this.$props, multiple = _$props2.multiple, searchOptions = _$props2.searchOptions, rel = _$props2.rel; var vOpenKeys = this.vOpenKeys, vSelectedKeys = this.vSelectedKeys; var curKey = (0, _utils.relationHandler)(rel[0], item); var parentKeys = this.searchGetAncestors(item); this.vOpenKeys = [].concat((0, _toConsumableArray3['default'])(new Set([].concat((0, _toConsumableArray3['default'])(vOpenKeys), (0, _toConsumableArray3['default'])(parentKeys), [curKey])))); if (multiple) { this.vSelectedKeys = [].concat((0, _toConsumableArray3['default'])(new Set([].concat((0, _toConsumableArray3['default'])(vSelectedKeys), [curKey])))); } else { this.vSelectedKeys = [curKey]; } } } }; /* * @Author: w.pengfei * @Date: 2020-09-06 11:56:55 * @LastEditTime: 2020-12-14 16:39:26 * @Description: '' * @LastEditors: w.pengfei */