UNPKG

vue-ant-patterns

Version:

vue-ant-patterns

107 lines (101 loc) 3.05 kB
import _extends from 'babel-runtime/helpers/extends'; /* * @Author: your name * @Date: 2020-06-08 16:22:44 * @LastEditTime: 2021-05-12 10:14:30 * @LastEditors: w.pengfei * @Description: 动态加载组件 * @FilePath: \hcm6-patterns\biz\b-search-helper\dyCustom.js */ import { strTrim } from '../_biz-utils/string'; export default { props: { params: Object, isSingle: Boolean, comPath: String, vSelectedRowKeys: Array, vSelectedRows: Array, treeSelectedKeys: Array }, data: function data() { var _$props = this.$props, vSelectedRowKeys = _$props.vSelectedRowKeys, vSelectedRows = _$props.vSelectedRows; return { comName: '', v_selecteKeys: vSelectedRowKeys, v_selectedRows: vSelectedRows, comParams: {}, path: '' }; }, created: function created() { var _$props2 = this.$props, comPath = _$props2.comPath, params = _$props2.params; var path = strTrim(comPath).split('?')[0]; // sting 转成object var comParams = this.toQueryObject(strTrim(comPath).split('?')[1]); this.path = path; this.comName = path.split('.vue')[0]; this.comParams = _extends(comParams || {}, params); // 传参 try { // this.$options.components[this.comName] = require(`@/views/${path}`)['default']; this.$options.components[this.comName] = function () { // 解决异步程序 try 失效 try { return import('@/views/' + path); } catch (e) { console.log(e); return null; } }; } catch (e) {} }, methods: { selectHandler: function selectHandler(selectedRowKeys, selectedRows) { this.v_selecteKeys = selectedRowKeys; this.v_selectedRows = selectedRows; this.$emit('select', selectedRowKeys, selectedRows); }, // string转成object 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; } }, mounted: function mounted() { this.$emit('dyComMounted', this); }, render: function render(createElement) { var _$props3 = this.$props, vSelectedRowKeys = _$props3.vSelectedRowKeys, vSelectedRows = _$props3.vSelectedRows, isSingle = _$props3.isSingle; var comParams = this.comParams, comName = this.comName; return createElement(comName, { props: _extends({}, this.$props, { dSelectedRowKeys: vSelectedRowKeys, dSelectedRows: vSelectedRows, comParams: comParams, isSingle: isSingle }), on: _extends({}, this.$listeners, { select: this.selectHandler }), ref: 'dyCustom' }); } };