v1.1.5
This commit is contained in:
@@ -90,12 +90,13 @@ class Framework extends Component{
|
||||
})
|
||||
}
|
||||
|
||||
load(data, dataObj, flatData, parent){
|
||||
load(data, dataObj, flatData, parent, level = 0){
|
||||
const { prop, tree } = this.props;
|
||||
const { children, optgroup, value, selected, disabled } = prop;
|
||||
data.forEach(item => {
|
||||
//数据提取/处理
|
||||
item.__node = { parent, loading: item.__node && item.__node.loading }
|
||||
item.__node = { parent, level, loading: item.__node && item.__node.loading },
|
||||
console.log(item);
|
||||
|
||||
dataObj[item[value]] = item;
|
||||
flatData.push(item);
|
||||
@@ -104,7 +105,7 @@ class Framework extends Component{
|
||||
if(child && isArray(child)){
|
||||
let len = child.length;
|
||||
if(len > 0){
|
||||
this.load(child, dataObj, flatData, item);
|
||||
this.load(child, dataObj, flatData, item, level + 1);
|
||||
|
||||
//是否包含子节点
|
||||
item[optgroup] = true;
|
||||
@@ -123,7 +124,7 @@ class Framework extends Component{
|
||||
//检查子节点的数据是否都被选中
|
||||
let slen = child.filter(i => i[selected] === true || i.__node.selected === true).length;
|
||||
item.__node.selected = slen === len;
|
||||
item.__node.half = slen > 0 && slen < len;
|
||||
item.__node.half = slen > 0 && slen < len || child.filter(i => i.__node.half === true).length > 0;
|
||||
item.__node.disabled = child.filter(i => i[disabled] === true || i.__node.disabled === true).length === len;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -261,8 +261,8 @@ class Tree extends Component{
|
||||
child.length === 0 && (expand = false)
|
||||
return (
|
||||
<div class="xm-tree">
|
||||
{ tree.showFolderIcon && tree.showLine && expand && <i class='left-line left-line-group' style={ {left: indent + 3 + 'px'} }></i> }
|
||||
{ renderItem(item, indent, child.length === 0 && item.__node.loading === false ? 0 : expand) }
|
||||
{ tree.showFolderIcon && tree.showLine && expand && child.length > 1 && <i class='left-line left-line-group' style={ {left: indent + 3 + 'px'} }></i> }
|
||||
{ renderItem(item, indent, child.length === 0 && (!tree.lazy || tree.lazy && item.__node.loading === false) ? 0 : expand) }
|
||||
{ expand && <div class="xm-tree-box">{ child.map(c => renderGroup(c, indent)) }</div> }
|
||||
</div>
|
||||
)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { h, Component, render } from 'preact'
|
||||
import { datas, optionData, childData } from '@/index.js';
|
||||
import { selector, warn, listenerClose, isArray, deepMerge, exchangeOptionsData } from '@/common/util'
|
||||
import { warn, listenerClose, isArray, deepMerge, exchangeOptionsData } from '@/common/util'
|
||||
import Framework from '@/components/framework'
|
||||
import defaultOptions from '@/config/options'
|
||||
|
||||
@@ -28,7 +28,7 @@ class xmOptions {
|
||||
this.options = deepMerge(this.options, options);
|
||||
|
||||
//如果dom不存在, 则不进行渲染事项
|
||||
let dom = selector(this.options.el);
|
||||
let { dom } = this.options;
|
||||
if(!dom){
|
||||
warn(`没有找到渲染对象: ${options.el}, 请检查`)
|
||||
return ;
|
||||
|
||||
14
src/index.js
14
src/index.js
@@ -10,10 +10,18 @@ export default {
|
||||
name,
|
||||
version,
|
||||
render(options) {
|
||||
let { el } = options;
|
||||
let { el } = options;
|
||||
options.dom = selector(el);
|
||||
|
||||
if(el.nodeType){
|
||||
let id = "DOM_RENDER_" + Date.now() + '_' + Math.random();
|
||||
el.setAttribute(name, id);
|
||||
el = `[${name}='${id}']`
|
||||
options.el = el;
|
||||
}
|
||||
optionData[el] = options;
|
||||
|
||||
let instance = new Select(options);
|
||||
|
||||
let instance = new Select(options);
|
||||
//已经渲染
|
||||
if (instance) {
|
||||
datas[el] = instance;
|
||||
|
||||
Reference in New Issue
Block a user