UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

1,018 lines (876 loc) 33.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof2 = require('babel-runtime/helpers/typeof'); var _typeof3 = _interopRequireDefault(_typeof2); var _defineProperty2 = require('babel-runtime/helpers/defineProperty'); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var _extends2 = require('babel-runtime/helpers/extends'); var _extends3 = _interopRequireDefault(_extends2); var _antDesignVue = require('ant-design-vue'); var _basicProps = require('./basicProps'); var _basicProps2 = _interopRequireDefault(_basicProps); var _modalContent = require('./modalContent'); var _modalContent2 = _interopRequireDefault(_modalContent); var _vueTypes = require('ant-design-vue/lib/_util/vue-types'); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _propsUtil = require('ant-design-vue/lib/_util/props-util'); var _request = require('../_biz-utils/request'); var _request2 = _interopRequireDefault(_request); var _utils = require('../../lib/_utils'); var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); var _dModal = require('../../lib/d-modal'); var _dModal2 = _interopRequireDefault(_dModal); var _dContainer = require('../../lib/d-container'); var _dContainer2 = _interopRequireDefault(_dContainer); var _extend = require('extend'); var _extend2 = _interopRequireDefault(_extend); var _string = require('../_biz-utils/string'); var _defaultProps = require('../b-tree/defaultProps'); var _defaultProps2 = _interopRequireDefault(_defaultProps); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var Horizontal = _dContainer2['default'].Horizontal, Vertical = _dContainer2['default'].Vertical; var Value = _vueTypes2['default'].shape({ key: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].number]) }).loose; var API_PLATFORM = (global || window).globalJSConfig.SERVICE_CONFIG.API_PLATFORM; var _globalJSConfig = (global || window).globalJSConfig, API_PREFIX = _globalJSConfig.API_PREFIX, API_HOST = _globalJSConfig.API_HOST; var Option = _antDesignVue.Select.Option; var getSelectorInfoUrl = API_PLATFORM + 'selectorInfoController/getSelectorInfo'; exports['default'] = { name: 'BSearchHelper', mixins: [_modalContent2['default']], props: (0, _extends3['default'])({}, _basicProps2['default'], { // 模式 mode: _vueTypes2['default'].oneOf(['modal', 'page']).def('modal'), // ...defaultProps, tmpPrefixCls: _vueTypes2['default'].string.def('depot-search-helper'), defaultValue: _vueTypes2['default'].oneOfType([String, Object, _vueTypes2['default'].arrayOf(Object)]), value: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].number, _vueTypes2['default'].arrayOf(_vueTypes2['default'].oneOfType([Value, _vueTypes2['default'].string, _vueTypes2['default'].number])), Value]), code: _vueTypes2['default'].string, // 搜索助手编码 disabled: _vueTypes2['default'].bool, // 是否禁用 width: _vueTypes2['default'].string, // 弹框宽度 searchStatus: _vueTypes2['default'].oneOf(['edit', 'view']).def('edit'), modalType: _vueTypes2['default'].bool.def(false), // 是否是点按钮打开弹框方式 beforeHandlerOKCallback: _vueTypes2['default']['function'], // 日期选项 dateOptions: _vueTypes2['default'].object, // 维度 dimensionOptions: _vueTypes2['default'].object, // 搜索选项默认值 searchOptionsData: _vueTypes2['default'].object, // 搜索结果下拉菜单选中的查询选项 searchSelectOptions: _vueTypes2['default'].object, requestParam: _vueTypes2['default'].object, requestSubParam: _vueTypes2['default'].object, rel: _defaultProps2['default'].rel, renderKey: _defaultProps2['default'].renderKey, multiple: _vueTypes2['default'].bool.def(false), // 客户化需要指定单选还是多选 valueField: _vueTypes2['default'].string, // 客户化需要指定页面显示key displayField: _vueTypes2['default'].string, // 客户化需要指定页面显示name defcondition: _vueTypes2['default'].object, // 列表页面配置-默认条件 customServe: _vueTypes2['default'].string, // 列表页面配置-自定义数据查询接口 defaultParams: _vueTypes2['default'].object, // 自定义页面需要的参数 treeSelectedKeys: _vueTypes2['default'].Array, // 树和列表形式,树选中的值 treeOtherParams: _vueTypes2['default'].object // 树的其它参数 }), data: function data() { var _$props = this.$props, value = _$props.value, searchStatus = _$props.searchStatus, rel = _$props.rel, renderKey = _$props.renderKey, valueField = _$props.valueField, displayField = _$props.displayField, defaultParams = _$props.defaultParams, mode = _$props.mode, treeSelectedKeys = _$props.treeSelectedKeys, treeOtherParams = _$props.treeOtherParams; return { modalVisible: false, // 是否显示弹框 optionList: [], searchHelperData: {}, // 搜索助手配置 title: null, // 搜索助手名称 bCustomize: false, comUrl: null, // 客户化组件路径 sKey: valueField, // 值属性字段 sValue: displayField, // 显示属性字段 cType: null, // 搜索助手类型: 树+列表1, 树2, 列表3, selectMode: null, // 选择模式: 0-单选, 1-多选 listCode: null, // 列表编码 selectedRowKeys: [], selectedRows: [], v_oldSelectedRowKeys: [], // 旧的选择项keys v_oldSelectedRows: [], // 旧的选择 selectedData: [], // 选择项 // v_inputValue: value || undefined, // ''和null要转成undefined,placeholder才会显示 v_inputValue: undefined, // ''和null要转成undefined,placeholder才会显示 v_status: searchStatus, v_viewName: '', s_defcondition: { // ouHid: '', // treeId: '', }, // 列表默认条件,用于与树关联 s_rel: rel, s_renderKey: renderKey, s_paramObj: _defaultProps.paramObj, s_paramSubObj: _defaultProps.paramSubObj, s_searchOptions: _defaultProps.searchDefaultOps, // 查询关键词, 与查询选中节点的相关节点 s_customTableService: null, // treeSelectItem: null, treeSelectItems: null, params: defaultParams, // 参数 treeSelectedRowKeys: treeSelectedKeys || [], // 树选择的keys isPage: mode === 'page', bChanged: false, // 标记是否是内部触发的value改变, bFirstInitialEvent: false, // 是否第一次进入 treeParams: treeOtherParams || {}, // 单独设置树的参数 bChangeDate: false, // 是否可以改变日期 bChangeDim: false // 是否可以改变组织 }; }, watch: { searchStatus: function searchStatus(v) { this.v_status = v; }, code: function code(val) { this.getSearchHelperConfig(); }, value: function value(val, old) { // 如果不是内部触发的数据改变,不调用回显接口 if (!this.bChanged) { if (val) { this.getSelectedData(val); } else { // 清空 this.clearSelected(); this.setInputValue(''); } } else { this.bChanged = false; } }, mode: function mode(v) { this.isPage = v === 'page'; } }, model: { prop: 'value', event: 'change' }, created: function created() { var value = this.$props.value; // 初始化有数据时候 if (Array.isArray(value) && value.length > 0) { this.selectedRowKeys = value; } else if (typeof value === 'string' && value) { this.selectedRowKeys.push(value); } this.getSearchHelperConfig(); }, computed: { // 选择行 rowSelection: function rowSelection() { var _this = this; var isSingleSelect = _this.isSingleSelect(); return { type: isSingleSelect ? 'radio' : 'checkbox', selectedAllRows: this.selectedRows, selectedAllRowKeys: isSingleSelect ? this.selectedRowKeys.slice(0, 1) : this.selectedRowKeys, onSelectTotle: function onSelectTotle(selectedAllRowKeys, selectedAllRows, selected, changeRows) { _this.selectedRowKeys = selectedAllRowKeys; _this.selectedRows = selectedAllRows; if (_this.isSingleSelect()) { // 单选延时关闭弹框,让用户可以看到选择的项 setTimeout(function () { _this.handleOk(); }, 500); } } }; } }, methods: { // 设置搜索助手显示的值 setInputValue: function setInputValue(val) { if (val && val.length === 1) { this.v_inputValue = val[0]; } else { this.v_inputValue = val; } }, // 设置option选项 setSelectedRows: function setSelectedRows(val) { if (val) { if (Array.isArray(val)) { this.selectedRows = val; } else { this.selectedRows = JSON.parse(JSON.stringify(val)); } } }, /** * @description: 动态拼接options * @param {type} * @return: */ getOptions: function getOptions() { var h = this.$createElement; var selectedItems = this.selectedRows; var sKey = this.sKey, sValue = this.sValue; var options = []; if (Array.isArray(selectedItems)) { // 数组类型-多选 options = selectedItems; } else { // 对象-单选 options.push(selectedItems); } return options.map(function (item, index) { return h( Option, { key: item[sKey] }, [item[sValue]] ); }); }, setNewSearchValue: function setNewSearchValue() { var _this2 = this; var tmpVal = []; if (Array.isArray(this.selectedRows)) { this.selectedRows.forEach(function (item, index) { tmpVal.push(item[_this2.sKey]); }); } else { tmpVal.push(this.selectedRows[this.sKey]); } // this.v_inputValue = tmpVal; this.setInputValue(tmpVal); var bIsSingleSelect = this.isSingleSelect(); var changeVal = (0, _extends3['default'])([], tmpVal); // 如果是单选,返回值转成字符,多选一直是数组 if (bIsSingleSelect && changeVal.length === 1) { changeVal = changeVal[0]; // 只有一条数据,不返回数组 } this.bChanged = true; var selectedRowKeys = this.selectedRowKeys, selectedRows = this.selectedRows, sKey = this.sKey, sValue = this.sValue, treeSelectItem = this.treeSelectItem, treeSelectItems = this.treeSelectItems, treeSelectedRowKeys = this.treeSelectedRowKeys; this.$emit('change', changeVal, { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems, treeSelectedRowKeys: treeSelectedRowKeys }); // this.$emit('change', changeVal); }, // 获取搜索助手配置项 getSearchHelperConfig: function getSearchHelperConfig() { var _this3 = this; var code = this.$props.code; if (code) { (0, _request2['default'])({ url: getSelectorInfoUrl, data: { selectorCode: code } }).then(function (_ref) { var data = _ref.data; _this3.searchHelperData = data.data; _this3.setCommonData(); }); } }, // 根据配置设置data setCommonData: function setCommonData() { var searchHelperData = this.searchHelperData; if ((0, _utils.isEmptyObj)(searchHelperData)) { return; } this.title = searchHelperData.name; this.bCustomize = searchHelperData.isCustomer; this.comUrl = searchHelperData.isCustomer ? searchHelperData.url : null; this.sKey = searchHelperData.valueField; this.sValue = searchHelperData.displayField; this.selectMode = searchHelperData.selectMode; if (!searchHelperData.isCustomer) { // 自定义组件不处理 this.cType = searchHelperData.cType; this.listCode = searchHelperData.listCode; this.s_customTableService = searchHelperData.customTableService; } // 树类型的-自定义sKey, sValue var sKey = this.sKey, sValue = this.sValue; if (sKey === null && this.cType === 1) { // 只有树的情况,重新设置sKey和sValue this.setSkEY(); this.setSValue(); } var ids = this.$props.value; if (ids) { this.getSelectedData(ids, true); } }, // 树类型的重新设置skey setSkEY: function setSkEY() { // 只有树的情况 var s_rel = this.s_rel, searchHelperData = this.searchHelperData; var valueTreeRel = searchHelperData.valueTreeRel; // 父子节点关系数据 var t_valueTreeRelArr = []; if (valueTreeRel) { var tmp_valueTreeRel = (0, _string.strTrim)(valueTreeRel, true).split(','); tmp_valueTreeRel.forEach(function (item, index) { if (item.split('.').length > 1) { t_valueTreeRelArr.push(item.split('.')); } else { t_valueTreeRelArr.push(item); } }); } else { t_valueTreeRelArr = s_rel; } this.sKey = t_valueTreeRelArr[0][1]; }, // 树类型重新设置sValue setSValue: function setSValue() { // 处理树的显示name var s_renderKey = this.s_renderKey, searchHelperData = this.searchHelperData; var displayTreeField = searchHelperData.displayTreeField; var t_renderKey = []; if (displayTreeField) { t_renderKey = displayTreeField.split('.'); } else { t_renderKey = s_renderKey; } this.sValue = t_renderKey[1]; }, // 根据id获取对应的数据结构用于数据的显示 getSelectedData: function () { var _ref2 = (0, _asyncToGenerator3['default'])( /*#__PURE__*/_regenerator2['default'].mark(function _callee(ids) { var _this4 = this; var bFirst = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var searchHelperData, sKey, tmpIds, url, data, _paramObj, res, resData, resultArr, selectedRows, _sKey; return _regenerator2['default'].wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: searchHelperData = this.searchHelperData, sKey = this.sKey; tmpIds = []; if (Array.isArray(ids)) { // tmpIds = this.isSingleSelect() ? ids[0] : ids; tmpIds = ids; // 都按数组传递 } else { tmpIds.push(ids); } if (!(tmpIds.length > 0)) { _context.next = 15; break; } if (!(0, _utils.isEmptyObj)(searchHelperData)) { _context.next = 6; break; } return _context.abrupt('return'); case 6: // 需要配置获取数据详情的方法 url = this.getSelectorUrl(); data = {}; data.ids = tmpIds; _paramObj = { url: url, data: data }; _context.next = 12; return (0, _request2['default'])(_paramObj); case 12: res = _context.sent; resData = res.data.data; // request({ // url: url, // data: data, // }).then(({ data }) => { if (resData && resData.length > 0) { this.$emit('propertyChange', resData, bFirst); if (searchHelperData.cType === 0 || searchHelperData.cType === 2) { // 有列表的需要转换下大小写 resultArr = []; resData.map(function (value, index) { resultArr.push(_this4.upperJSONKey(value)); }); this.setSelectedRows(resultArr); } else { this.setSelectedRows(resData); } // 这里应该处理下,如果没匹配到ids, 就不赋值 selectedRows = this.selectedRows, _sKey = this.sKey; // let bFind = false; selectedRows.map(function (item) { if (item[_sKey] && -1 !== tmpIds.indexOf(item[_sKey])) { // bFind = true; _this4.setInputValue(tmpIds); } }); // if(!bFind) { // this.setInputValue(null); // } this.selectedRowKeys = tmpIds; } // }); case 15: case 'end': return _context.stop(); } } }, _callee, this); })); function getSelectedData(_x2) { return _ref2.apply(this, arguments); } return getSelectedData; }(), // 获取回显接口地址 getSelectorUrl: function getSelectorUrl() { var searchHelperData = this.searchHelperData; var system = searchHelperData.system, controlName = searchHelperData.controlName; // system是常数代码,不同的code代表不同的服务 return API_HOST + system.code + '/' + API_PREFIX + controlName; // return system === 0 ? `${API_PLATFORM}${controlName}` : `${API_PLATFORM}${controlName}`; }, // 获取树接口地址 getTreeBaseUrl: function getTreeBaseUrl(treeControlName) { var searchHelperData = this.searchHelperData; var treeSystem = searchHelperData.treeSystem; // system是常数代码,不同的code代表不同的服务 return API_HOST + treeSystem.code + '/' + API_PREFIX + treeControlName; // return treeSystem === 0 ? `${API_PLATFORM}${treeControlName}` : `${API_PLATFORM}${treeControlName}`; }, // 大写转换 upperJSONKey: function upperJSONKey(jsonObj) { var newObj = {}; for (var key in jsonObj) { newObj['' + key.toUpperCase() + ''] = jsonObj[key]; delete jsonObj[key]; } return newObj; }, // 自定义搜索助手输入框右侧图标 renderSuffixIcon: function renderSuffixIcon() { var _this5 = this; var h = this.$createElement; var suffixIconProps = { 'class': 'search-btn-icon', props: { disabled: this.$props.disabled }, on: { click: function click() { _this5.openDialog(); } } }; return h( 'd-icon-button', suffixIconProps, [h('d-icon', { attrs: { type: 'search' } })] ); }, // 弹框确定 handleOk: function handleOk(e) { var _$props2 = this.$props, beforeHandlerOKCallback = _$props2.beforeHandlerOKCallback, modalType = _$props2.modalType; var selectedRowKeys = this.selectedRowKeys; var selectedRows = this.selectedRows; var sKey = this.sKey, sValue = this.sValue, treeSelectItem = this.treeSelectItem, treeSelectItems = this.treeSelectItems, isPage = this.isPage, treeSelectedRowKeys = this.treeSelectedRowKeys; var bResult = true; if (beforeHandlerOKCallback) { bResult = beforeHandlerOKCallback({ selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems }); } // 是否可以关闭弹框继续操作 if (bResult) { this.$emit('select', { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems, treeSelectedRowKeys: treeSelectedRowKeys }); /** * 页面类型 */ if (isPage) { this.$emit('change', /* val */selectedRowKeys[0], { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems, treeSelectedRowKeys: treeSelectedRowKeys }); return { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems, treeSelectedRowKeys: treeSelectedRowKeys }; } this.modalVisible = false; this.bFirstInitialEvent = false; this.v_oldSelectedRows = (0, _extend2['default'])(true, [], selectedRows); // 保留一份旧的 if (modalType === true) { this.clearSelected(); } else { this.setNewSearchValue(); } } }, // 取消弹框 handleCancel: function handleCancel(e) { var sKey = this.sKey, sValue = this.sValue, treeSelectItem = this.treeSelectItem, treeSelectItems = this.treeSelectItems, selectedRowKeys = this.selectedRowKeys, selectedRows = this.selectedRows, isPage = this.isPage; var modalType = this.$props.modalType; // const selectedRowKeys = this.selectedRowKeys; // this.$refs.searchHelper.value; // const selectedRows = this.selectedRows; if (isPage) { this.clearSelected(); return; } if (modalType === true) { this.clearSelected(); } this.$emit('modalCancel', { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems }); this.modalVisible = false; this.bFirstInitialEvent = false; }, /* 设置弹框 单选操作-不显示确定按钮 */ renderModal: function renderModal() { var _cx; var h = this.$createElement; var _$props3 = this.$props, mode = _$props3.mode, tmpPrefixCls = _$props3.tmpPrefixCls; var dialogW = this.cType === 0 ? '1000px' : this.cType === 1 ? '600px' : '1000px'; var bIsSingleSelect = this.isSingleSelect(); var contentProps = { 'class': (0, _classnames2['default'])((_cx = {}, (0, _defineProperty3['default'])(_cx, 'modal-single-content', bIsSingleSelect), (0, _defineProperty3['default'])(_cx, 'modal-multiple-content', !bIsSingleSelect), _cx)) }; var title = this.title, modalVisible = this.modalVisible; var modalProps = { props: { size: this.cType === 1 ? 'small' : 'large', title: title, visible: modalVisible, destroyOnClose: true, wrapClassName: tmpPrefixCls }, on: { ok: this.handleOk, cancel: this.handleCancel } }; if (mode === 'page') { return this.renderMainContent(); } return h( _dModal2['default'], modalProps, [this.isSingleSelect() ? h( 'div', { slot: 'footer' }, [h( _antDesignVue.Button, { on: { 'click': this.handleCancel } }, ['\u53D6\u6D88'] )] ) : null, this.renderMainContent()] ); }, // 显示弹框 openDialog: function openDialog() { var _this6 = this; var v_inputValue = this.v_inputValue, selectedRowKeys = this.selectedRowKeys; if ((v_inputValue === undefined || v_inputValue.length === 0) && selectedRowKeys.length > 0) { // 不一致,要清空selectedRowKeys this.clearSelected(); } else { // 如果是多选 if (Array.isArray(v_inputValue) && v_inputValue.length > 0 && v_inputValue.length !== selectedRowKeys.length) { // 输入框里的值和弹框里的不一致的情况,以输入框的为准 this.selectedRowKeys = v_inputValue; var v_oldSelectedRowKeys = this.v_oldSelectedRowKeys; this.setSelectedRows(v_oldSelectedRowKeys); } } this.modalVisible = true; setTimeout(function () { // 是否禁用组织树的维度和日期,默认是不禁用的 if (_this6.bChangeDate) { _this6.$refs.selectorTree.setDisable('date', _this6.bChangeDate); } if (_this6.bChangeDim) { _this6.$refs.selectorTree.setDisable('dimension', _this6.bChangeDim); } _this6.$emit('modalShowEvent', _this6.$refs.selectorTree); }, 100); }, /** * @description: 编辑状态的渲染 * @param {type} * @return: */ renderEditSelector: function renderEditSelector() { var _this7 = this, _cx2; var h = this.$createElement; var tmpPrefixCls = this.tmpPrefixCls, $listeners = this.$listeners, $props = this.$props, isPage = this.isPage; var multiple = $props.multiple, width = $props.width, disabled = $props.disabled, mode = $props.mode; var others = (0, _propsUtil.getOptionProps)(this); var selectMode = this.selectMode, v_inputValue = this.v_inputValue, sKey = this.sKey; var searchProps = { 'class': tmpPrefixCls + '-container-inner', props: (0, _extends3['default'])({}, others, { showArrow: false, mode: multiple === true ? 'multiple' : selectMode === 1 ? 'multiple' : '', // mode: this.isCustomize() === false ? // (selectMode === 1 ? 'multiple' : '') : multiple === true ? 'multiple' : '', open: false, // 隐藏下拉菜单 value: selectMode === 1 ? v_inputValue || [] : v_inputValue // 多选情况下需要默认''需要转成[] }), attrs: { readOnly: true }, on: (0, _extends3['default'])({}, $listeners, { change: function change(val) { if (val === undefined || val === null || val.length === 0) { // 清空弹框里选中状态 _this7.clearSelected(); } _this7.setInputValue(val); _this7.bChanged = true; var selectedRowKeys = _this7.selectedRowKeys, selectedRows = _this7.selectedRows, sKey = _this7.sKey, sValue = _this7.sValue, treeSelectItem = _this7.treeSelectItem, treeSelectItems = _this7.treeSelectItems, treeSelectedRowKeys = _this7.treeSelectedRowKeys; _this7.$emit('change', val, { selectedRowKeys: selectedRowKeys, selectedRows: selectedRows, sKey: sKey, sValue: sValue, treeSelectItem: treeSelectItem, treeSelectItems: treeSelectItems, treeSelectedRowKeys: treeSelectedRowKeys }); // this.$emit('change', val); }, // 删除标签 deselect: function deselect(value) { var selectedRowKeys = _this7.selectedRowKeys, selectedRows = _this7.selectedRows; _this7.$emit('deselect', value); selectedRows.map(function (item, index) { if (item[sKey] === value) { selectedRows.splice(index, 1); var newArr = selectedRowKeys.filter(function (T) { return T !== value; }); _this7.selectedRowKeys = newArr; } }); } }) }; var cls = (0, _classnames2['default'])((_cx2 = {}, (0, _defineProperty3['default'])(_cx2, '' + tmpPrefixCls, 1), (0, _defineProperty3['default'])(_cx2, tmpPrefixCls + '-container', 1), (0, _defineProperty3['default'])(_cx2, 'flex', isPage), (0, _defineProperty3['default'])(_cx2, 'flex-col', isPage), (0, _defineProperty3['default'])(_cx2, 'flex-grow', isPage), _cx2)); var wrapperDivProps = { 'class': cls, style: { width: isPage ? '100%' : width !== undefined ? width : '100%' }, on: { click: function click(e) { // 页面模式 if (isPage) return; // 点击输入框也能打开弹框 if (e.target.className !== 'ant-select-selection__rendered' && !e.target.className.includes('ant-select-selection') && e.target.className !== 'ant-select-selection__placeholder') { return; } _this7.openDialog(); } } }; return h( _dContainer2['default'], wrapperDivProps, [isPage ? null : h( _antDesignVue.Select, searchProps, [this.getOptions()] ), isPage ? null : this.renderSuffixIcon(), !disabled ? this.renderModal() : ''] ); }, /** * @description: 查看状态的渲染 * @param {type} * @return: */ renderViewSelector: function renderViewSelector() { var h = this.$createElement; var selectedRows = this.selectedRows, sValue = this.sValue; var showName = []; if (selectedRows && selectedRows.length > 0) { showName = selectedRows.map(function (item, index) { return item[sValue]; }); } return h('span', [showName.join(',')]); }, /** * @description: query string转成object * @param {type} * @return: */ toQueryObject: function toQueryObject(queryString) { var queryObj = {}; if (!!queryString) { var foo = queryString.split('&'); for (var i = foo.length; i--;) { var index = foo[i].indexOf('='); if (index !== -1) { var n = foo[i].substring(0, index); var v = foo[i].substring(index + 1, foo[i].length); queryObj[n] = v; } } } return queryObj; }, /** * @description: 设置参数 * @param {type} * @return: */ setParams: function setParams(value) { var params = {}; if (typeof value === 'string') { params = this.toQueryObject(value); } else if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3['default'])(value)) === 'object') { params = value; } // this.params = (0, _extends3['default'])(this.params || {}, params); }, /** * @description: 单独设置树的参数 * @param {type} * @return {type} */ setTreeParams: function setTreeParams(obj) { this.treeParams = obj; }, /** * Params Getter & Setter * @returns */ getParams: function getParams() { return this.params; }, // 清空选中项 clearSelected: function clearSelected() { this.selectedRows = []; this.selectedRowKeys = []; this.treeSelectedRowKeys = []; this.treeSelectItem = null; this.treeSelectItems = null; }, // 组织树是否可以改变日期 changeDate: function changeDate(bFlag) { this.bChangeDate = bFlag; }, // 组织树是否可以改变维度 changeDim: function changeDim(bFlag) { this.bChangeDim = bFlag; }, // 获取对应的数据 getData: function getData() { var isSingleSelect = this.isSingleSelect(); if (isSingleSelect) { return this.selectedRows[0] || {}; } else { return this.selectedRows; } }, // 删除指定的key clearSetParams: function clearSetParams(key) { var tmpParams = this.params; if (key) { delete tmpParams[key]; this.params = (0, _extends3['default'])({}, tmpParams); } } }, render: function render() { var v_status = this.v_status, $props = this.$props; var modalType = $props.modalType; return modalType === false ? v_status === 'edit' ? this.renderEditSelector() : this.renderViewSelector() : this.renderModal(); } };