v1.0.13
bug修复
This commit is contained in:
parent
b3026c7dce
commit
53521d7854
15
CHANGELOG.md
15
CHANGELOG.md
@ -1,5 +1,20 @@
|
|||||||
## 更新日志
|
## 更新日志
|
||||||
|
|
||||||
|
### 1.0.13
|
||||||
|
|
||||||
|
*2019-11-07*
|
||||||
|
|
||||||
|
#### 新增
|
||||||
|
|
||||||
|
- `get`方法新增`single`参数, 可以获取单实例
|
||||||
|
|
||||||
|
#### Bug fixes
|
||||||
|
|
||||||
|
- 修复`reset`方法报错
|
||||||
|
- 修复IE下工具条全选数据错误
|
||||||
|
- 修改文档简单兼容IE
|
||||||
|
|
||||||
|
|
||||||
### 1.0.12
|
### 1.0.12
|
||||||
|
|
||||||
*2019-10-24*
|
*2019-10-24*
|
||||||
|
2
dist/static/2.js
vendored
2
dist/static/2.js
vendored
File diff suppressed because one or more lines are too long
2
dist/static/3.js
vendored
2
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
2
dist/xm-select.js
vendored
2
dist/xm-select.js
vendored
File diff suppressed because one or more lines are too long
@ -1,3 +1,4 @@
|
|||||||
|
import "babel-polyfill"
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import ElementUI from 'element-ui';
|
import ElementUI from 'element-ui';
|
||||||
import 'element-ui/lib/theme-chalk/index.css';
|
import 'element-ui/lib/theme-chalk/index.css';
|
||||||
@ -15,7 +16,6 @@ Vue.component('demo-block', demoBlock);
|
|||||||
|
|
||||||
import './assets/common.less'
|
import './assets/common.less'
|
||||||
|
|
||||||
|
|
||||||
const router = new VueRouter({
|
const router = new VueRouter({
|
||||||
mode: 'hash',
|
mode: 'hash',
|
||||||
base: __dirname,
|
base: __dirname,
|
||||||
|
@ -11,8 +11,8 @@
|
|||||||
<script>
|
<script>
|
||||||
var demo1 = xmSelect.render({
|
var demo1 = xmSelect.render({
|
||||||
el: '#demo1',
|
el: '#demo1',
|
||||||
radio: true,
|
radio: true,
|
||||||
clickClose: true,
|
clickClose: true,
|
||||||
model: {
|
model: {
|
||||||
icon: 'hidden',
|
icon: 'hidden',
|
||||||
label: {
|
label: {
|
||||||
@ -29,8 +29,8 @@ var demo1 = xmSelect.render({
|
|||||||
|
|
||||||
var demo2 = xmSelect.render({
|
var demo2 = xmSelect.render({
|
||||||
el: '#demo2',
|
el: '#demo2',
|
||||||
radio: true,
|
radio: true,
|
||||||
clickClose: true,
|
clickClose: true,
|
||||||
theme: {
|
theme: {
|
||||||
color: '#5FB878',
|
color: '#5FB878',
|
||||||
},
|
},
|
||||||
|
@ -3,7 +3,12 @@
|
|||||||
|
|
||||||
### 全局方法 get
|
### 全局方法 get
|
||||||
|
|
||||||
|
:::warning
|
||||||
|
get方法默认返回的是符合条件的数组,
|
||||||
|
:::
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
//所有
|
//所有
|
||||||
xmSelect.get();
|
xmSelect.get();
|
||||||
//字符串
|
//字符串
|
||||||
@ -14,6 +19,8 @@ xmSelect.get(/demo.*/);
|
|||||||
xmSelect.get((el) => {
|
xmSelect.get((el) => {
|
||||||
return el == '#demo1' || el == '#xm3'
|
return el == '#demo1' || el == '#xm3'
|
||||||
});
|
});
|
||||||
|
//获取单实例
|
||||||
|
xmSelect.get('#demo2', true);
|
||||||
```
|
```
|
||||||
|
|
||||||
:::demo
|
:::demo
|
||||||
@ -26,6 +33,7 @@ xmSelect.get((el) => {
|
|||||||
<div><button class="btn" id="btn2">get(字符串)</button></div>
|
<div><button class="btn" id="btn2">get(字符串)</button></div>
|
||||||
<div><button class="btn" id="btn3">get(正则)</button></div>
|
<div><button class="btn" id="btn3">get(正则)</button></div>
|
||||||
<div><button class="btn" id="btn4">get(过滤方法)</button></div>
|
<div><button class="btn" id="btn4">get(过滤方法)</button></div>
|
||||||
|
<div><button class="btn" id="btn5">get(获取单实例)</button></div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
@ -61,6 +69,11 @@ document.getElementById('btn4').onclick = function(){
|
|||||||
});
|
});
|
||||||
alert('自定义方法的实例: ' + xmList.length)
|
alert('自定义方法的实例: ' + xmList.length)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.getElementById('btn5').onclick = function(){
|
||||||
|
var demo2 = xmSelect.get('#demo2', true);
|
||||||
|
alert('获取单实例#demo2当前选中值: ' + demo2.getValue('nameStr'));
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
```
|
```
|
||||||
:::
|
:::
|
||||||
|
@ -172,7 +172,7 @@ list: [ "ALL", "CLEAR",
|
|||||||
| 事件名 | 说明 | 参数 | 返回值 |
|
| 事件名 | 说明 | 参数 | 返回值 |
|
||||||
| ------ | ------------------ | -------- | -------- |
|
| ------ | ------------------ | -------- | -------- |
|
||||||
| render | 渲染多选 | (options: 配置项) | 实例对象 |
|
| render | 渲染多选 | (options: 配置项) | 实例对象 |
|
||||||
| get | 获取页面中已经渲染的多选 | (filter: 过滤`el`) | 符合条件的实例数组 |
|
| get | 获取页面中已经渲染的多选 | (filter: 过滤`el`, single: 是否返回单实例) | 符合条件的实例数组 |
|
||||||
| batch | 批量操作已渲染的多选 | (filter: 过滤`el`, method: 方法, ...方法参数) | 符合条件的实例数组 |
|
| batch | 批量操作已渲染的多选 | (filter: 过滤`el`, method: 方法, ...方法参数) | 符合条件的实例数组 |
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -186,6 +186,8 @@ xmSelect.get(/.*demo1.*/); //正则获取
|
|||||||
xmSelect.get(function(el){
|
xmSelect.get(function(el){
|
||||||
return el == '#demo1' || el == '#demo2';
|
return el == '#demo1' || el == '#demo2';
|
||||||
});
|
});
|
||||||
|
//单实例
|
||||||
|
xmSelect.get('#demo2', true);
|
||||||
|
|
||||||
//batch 使用方式
|
//batch 使用方式
|
||||||
//批量执行禁用
|
//批量执行禁用
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "xm-select",
|
"name": "xm-select",
|
||||||
"version": "1.0.12",
|
"version": "1.0.13",
|
||||||
"description": "始于Layui的select多选解决方案",
|
"description": "始于Layui的select多选解决方案",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -14,6 +14,7 @@
|
|||||||
"@babel/preset-env": "^7.4.2",
|
"@babel/preset-env": "^7.4.2",
|
||||||
"babel-loader": "^8.0.5",
|
"babel-loader": "^8.0.5",
|
||||||
"babel-plugin-transform-react-jsx": "^6.24.1",
|
"babel-plugin-transform-react-jsx": "^6.24.1",
|
||||||
|
"babel-polyfill": "^6.26.0",
|
||||||
"clean-webpack-plugin": "^3.0.0",
|
"clean-webpack-plugin": "^3.0.0",
|
||||||
"cross-env": "^6.0.0",
|
"cross-env": "^6.0.0",
|
||||||
"css-loader": "^3.0.0",
|
"css-loader": "^3.0.0",
|
||||||
|
@ -77,7 +77,7 @@ export function deepMerge(obj1, obj2) {
|
|||||||
export function mergeArr(arr1, arr2, prop) {
|
export function mergeArr(arr1, arr2, prop) {
|
||||||
let value = prop.value;
|
let value = prop.value;
|
||||||
let result = [...arr2];
|
let result = [...arr2];
|
||||||
for (let i in arr1) {
|
for (let i = 0; i < arr1.length; i++) {
|
||||||
let item = arr1[i];
|
let item = arr1[i];
|
||||||
if (!arr2.find(a => a[value] == item[value])) {
|
if (!arr2.find(a => a[value] == item[value])) {
|
||||||
result.push(item);
|
result.push(item);
|
||||||
|
@ -79,7 +79,7 @@ class xmOptions {
|
|||||||
//更新渲染
|
//更新渲染
|
||||||
this.update({ ...initData[initVal.el]});
|
this.update({ ...initData[initVal.el]});
|
||||||
//子组件初始化
|
//子组件初始化
|
||||||
childs[this.options.el].reset();
|
childs[this.options.el].reset(this.options, true);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,12 +21,12 @@ class Framework extends Component{
|
|||||||
this.bodyView = null;
|
this.bodyView = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
reset(props){
|
reset(props, refresh = false){
|
||||||
//用于多选上限的边框颜色变化
|
//用于多选上限的边框颜色变化
|
||||||
this.updateBorderColor('');
|
this.updateBorderColor('');
|
||||||
let old = this.state.data;
|
let old = this.state.data;
|
||||||
this.resetDate(props.data);
|
this.resetDate(props.data);
|
||||||
JSON.stringify(props.data) !== JSON.stringify(old) && this.value(props.initValue ? props.initValue : this.findValue(this.state.data), !!this.state.show);
|
(JSON.stringify(props.data) !== JSON.stringify(old) || refresh) && this.value(props.initValue ? props.initValue : this.findValue(this.state.data), !!this.state.show);
|
||||||
}
|
}
|
||||||
|
|
||||||
findValue(data){
|
findValue(data){
|
||||||
|
@ -19,7 +19,7 @@ const xmSelect = {
|
|||||||
}
|
}
|
||||||
return instance;
|
return instance;
|
||||||
},
|
},
|
||||||
get(filter){
|
get(filter, single){
|
||||||
let type = Object.prototype.toString.call(filter);
|
let type = Object.prototype.toString.call(filter);
|
||||||
let method;
|
let method;
|
||||||
switch (type){
|
switch (type){
|
||||||
@ -36,7 +36,8 @@ const xmSelect = {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
let keys = Object.keys(object)
|
let keys = Object.keys(object)
|
||||||
return (method ? keys.filter(method) : keys).map(key => object[key]).filter(instance => selector(instance.options.el));
|
let list = (method ? keys.filter(method) : keys).map(key => object[key]).filter(instance => selector(instance.options.el));
|
||||||
|
return single ? list[0] : list;
|
||||||
},
|
},
|
||||||
batch(filter, method){
|
batch(filter, method){
|
||||||
let args = [ ...arguments ];
|
let args = [ ...arguments ];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user