v1.1.5
This commit is contained in:
		
							parent
							
								
									5f7d923b9c
								
							
						
					
					
						commit
						6cc1f00d38
					
				
							
								
								
									
										11
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@ -1,5 +1,16 @@
 | 
				
			|||||||
## 更新日志
 | 
					## 更新日志
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 1.1.5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*2019-12-12*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#### Bug fixes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 修复el为dom模式时, 点击页面其他位置无法关闭下拉的问题
 | 
				
			||||||
 | 
					- 修复tree模式的虚线显示问题
 | 
				
			||||||
 | 
					- 修复tree默认选中半选状态不完全的问题
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 1.1.4
 | 
					### 1.1.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*2019-12-09*
 | 
					*2019-12-09*
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										4
									
								
								dist/static/2.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/static/2.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										4
									
								
								dist/static/3.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/static/3.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										10
									
								
								dist/static/docs.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								dist/static/docs.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								dist/static/wx.b556b2e.jpg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dist/static/wx.b556b2e.jpg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 101 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								dist/static/wx.f391ad4.jpg
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								dist/static/wx.f391ad4.jpg
									
									
									
									
										vendored
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 81 KiB  | 
							
								
								
									
										4
									
								
								dist/xm-select.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								dist/xm-select.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 101 KiB  | 
@ -11,12 +11,12 @@ var demo1 = xmSelect.render({
 | 
				
			|||||||
	pageSize: 2,
 | 
						pageSize: 2,
 | 
				
			||||||
	autoRow: true,
 | 
						autoRow: true,
 | 
				
			||||||
	tree: {
 | 
						tree: {
 | 
				
			||||||
		strict: false,
 | 
							strict: true,
 | 
				
			||||||
		show: true,
 | 
							show: true,
 | 
				
			||||||
		showFolderIcon: true,
 | 
							showFolderIcon: true,
 | 
				
			||||||
		showLine: true,
 | 
							showLine: true,
 | 
				
			||||||
		indent: 20,
 | 
							indent: 20,
 | 
				
			||||||
		expandedKeys: [ -1, -2 ],
 | 
							expandedKeys: [ 14 ],
 | 
				
			||||||
		lazy: true,
 | 
							lazy: true,
 | 
				
			||||||
		load: function(item, cb){
 | 
							load: function(item, cb){
 | 
				
			||||||
			setTimeout(function(){
 | 
								setTimeout(function(){
 | 
				
			||||||
@ -38,14 +38,20 @@ var demo1 = xmSelect.render({
 | 
				
			|||||||
		show: true
 | 
							show: true
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	height: 'auto',
 | 
						height: 'auto',
 | 
				
			||||||
	initValue: [],
 | 
					 | 
				
			||||||
	on: function(a){
 | 
						on: function(a){
 | 
				
			||||||
		console.log(this)
 | 
							console.log(this)
 | 
				
			||||||
	}.bind('#demo1'),
 | 
						}.bind('#demo1'),
 | 
				
			||||||
	data(){
 | 
						data(){
 | 
				
			||||||
		return [
 | 
							return [
 | 
				
			||||||
			{name: '北京市时代峰峻莱克斯顿荆防颗粒受到了开发建设的路口附近', value: -1, children: [
 | 
								{name: '北京市时代峰峻莱克斯顿荆防颗粒受到了开发建设的路口附近', value: -1, children: [
 | 
				
			||||||
				{name: '朝阳区', value: 1, children: []},
 | 
									{name: '朝阳区', value: 1, children: [
 | 
				
			||||||
 | 
										{name: '河北省', value: -12, children: [
 | 
				
			||||||
 | 
											{name: '廊坊市', value: 14, selected: true},
 | 
				
			||||||
 | 
											{name: '石家庄', value: 15},
 | 
				
			||||||
 | 
											{name: '邯郸市', value: 16},
 | 
				
			||||||
 | 
										]}
 | 
				
			||||||
 | 
										
 | 
				
			||||||
 | 
									]},
 | 
				
			||||||
				{name: '海淀区', value: 2},
 | 
									{name: '海淀区', value: 2},
 | 
				
			||||||
				{name: '通州区', value: 3},
 | 
									{name: '通州区', value: 3},
 | 
				
			||||||
			]},
 | 
								]},
 | 
				
			||||||
 | 
				
			|||||||
@ -1,9 +1,5 @@
 | 
				
			|||||||
## 安装
 | 
					## 安装
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 投票 ^_^
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
谢谢大家投出宝贵的一票,[2019 年度最受欢迎开源中国软件评选](https://www.oschina.net/p/xm-select)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### 简介
 | 
					### 简介
 | 
				
			||||||
 | 
					
 | 
				
			||||||
:::tip
 | 
					:::tip
 | 
				
			||||||
@ -24,9 +20,11 @@ maplemei, 热爱前端的Java程序猿, 如果喜欢作者的插件, 可以请
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
### 打赏
 | 
					### 打赏
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					喜欢就支持一下吧
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<p>
 | 
					<p>
 | 
				
			||||||
	<a href="javascript:;">
 | 
						<a href="javascript:;">
 | 
				
			||||||
		<img src="../assets/wx.jpg" alt="打赏" width="300">
 | 
							<img src="../assets/wx.jpg" alt="打赏" width="300" style="border: 1px solid #EFEFEF">
 | 
				
			||||||
	</a>
 | 
						</a>
 | 
				
			||||||
</p>
 | 
					</p>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
	"name": "xm-select",
 | 
						"name": "xm-select",
 | 
				
			||||||
	"version": "1.1.4",
 | 
						"version": "1.1.5",
 | 
				
			||||||
	"description": "始于Layui的select多选解决方案",
 | 
						"description": "始于Layui的select多选解决方案",
 | 
				
			||||||
	"main": "index.js",
 | 
						"main": "index.js",
 | 
				
			||||||
	"scripts": {
 | 
						"scripts": {
 | 
				
			||||||
 | 
				
			|||||||
@ -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 { prop, tree } = this.props;
 | 
				
			||||||
		const { children, optgroup, value, selected, disabled } = prop;
 | 
							const { children, optgroup, value, selected, disabled } = prop;
 | 
				
			||||||
		data.forEach(item => {
 | 
							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;
 | 
								dataObj[item[value]] = item;
 | 
				
			||||||
			flatData.push(item);
 | 
								flatData.push(item);
 | 
				
			||||||
@ -104,7 +105,7 @@ class Framework extends Component{
 | 
				
			|||||||
			if(child && isArray(child)){
 | 
								if(child && isArray(child)){
 | 
				
			||||||
				let len = child.length;
 | 
									let len = child.length;
 | 
				
			||||||
				if(len > 0){
 | 
									if(len > 0){
 | 
				
			||||||
					this.load(child, dataObj, flatData, item);
 | 
										this.load(child, dataObj, flatData, item, level + 1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					//是否包含子节点
 | 
										//是否包含子节点
 | 
				
			||||||
					item[optgroup] = true;
 | 
										item[optgroup] = true;
 | 
				
			||||||
@ -123,7 +124,7 @@ class Framework extends Component{
 | 
				
			|||||||
					//检查子节点的数据是否都被选中
 | 
										//检查子节点的数据是否都被选中
 | 
				
			||||||
					let slen = child.filter(i => i[selected] === true || i.__node.selected === true).length;
 | 
										let slen = child.filter(i => i[selected] === true || i.__node.selected === true).length;
 | 
				
			||||||
					item.__node.selected = slen === len;
 | 
										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;
 | 
										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)
 | 
									child.length === 0 && (expand = false)
 | 
				
			||||||
				return (
 | 
									return (
 | 
				
			||||||
					<div class="xm-tree">
 | 
										<div class="xm-tree">
 | 
				
			||||||
						{ tree.showFolderIcon && tree.showLine && expand && <i class='left-line left-line-group' style={ {left: indent + 3 + 'px'} }></i> }
 | 
											{ 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 && item.__node.loading === false ? 0 : expand) }
 | 
											{ 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> }
 | 
											{ expand && <div class="xm-tree-box">{ child.map(c => renderGroup(c, indent)) }</div> }
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				)
 | 
									)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,6 +1,6 @@
 | 
				
			|||||||
import { h, Component, render } from 'preact'
 | 
					import { h, Component, render } from 'preact'
 | 
				
			||||||
import { datas, optionData, childData } from '@/index.js';
 | 
					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 Framework from '@/components/framework'
 | 
				
			||||||
import defaultOptions from '@/config/options'
 | 
					import defaultOptions from '@/config/options'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -28,7 +28,7 @@ class xmOptions {
 | 
				
			|||||||
		this.options = deepMerge(this.options, options);
 | 
							this.options = deepMerge(this.options, options);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//如果dom不存在, 则不进行渲染事项
 | 
							//如果dom不存在, 则不进行渲染事项
 | 
				
			||||||
		let dom = selector(this.options.el);
 | 
							let { dom } = this.options;
 | 
				
			||||||
		if(!dom){
 | 
							if(!dom){
 | 
				
			||||||
			warn(`没有找到渲染对象: ${options.el}, 请检查`)
 | 
								warn(`没有找到渲染对象: ${options.el}, 请检查`)
 | 
				
			||||||
			return ;
 | 
								return ;
 | 
				
			||||||
 | 
				
			|||||||
@ -11,6 +11,14 @@ export default {
 | 
				
			|||||||
	version,
 | 
						version,
 | 
				
			||||||
	render(options) {
 | 
						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;
 | 
							optionData[el] = options;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		let instance = new Select(options);
 | 
							let instance = new Select(options);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user