优化数组的操作;优化组件:value传递;完成多选框组件
parent
d769c8d31d
commit
5ecec460cb
|
@ -1981,17 +1981,18 @@ const _Anot = (function() {
|
||||||
$emit.call(this.$up, this.$pathname)
|
$emit.call(this.$up, this.$pathname)
|
||||||
},
|
},
|
||||||
set: function(index, val) {
|
set: function(index, val) {
|
||||||
if (index >>> 0 === index && this[index] !== val) {
|
index = index >>> 0
|
||||||
if (index > this.length) {
|
if (index > this.length) {
|
||||||
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
||||||
}
|
}
|
||||||
|
if (this[index] !== val) {
|
||||||
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
||||||
this.splice(index, 1, val)
|
this.splice(index, 1, val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
contains: function(el) {
|
contains: function(el) {
|
||||||
//判定是否包含
|
//判定是否包含
|
||||||
return this.indexOf(el) !== -1
|
return this.indexOf(el) > -1
|
||||||
},
|
},
|
||||||
ensure: function(el) {
|
ensure: function(el) {
|
||||||
if (!this.contains(el)) {
|
if (!this.contains(el)) {
|
||||||
|
@ -2008,11 +2009,9 @@ const _Anot = (function() {
|
||||||
return this.removeAt(this.indexOf(el))
|
return this.removeAt(this.indexOf(el))
|
||||||
},
|
},
|
||||||
removeAt: function(index) {
|
removeAt: function(index) {
|
||||||
|
index = index >>> 0
|
||||||
//移除指定索引上的元素
|
//移除指定索引上的元素
|
||||||
if (index >>> 0 === index) {
|
|
||||||
return this.splice(index, 1)
|
return this.splice(index, 1)
|
||||||
}
|
|
||||||
return []
|
|
||||||
},
|
},
|
||||||
size: function() {
|
size: function() {
|
||||||
//取得数组长度,这个函数可以同步视图,length不能
|
//取得数组长度,这个函数可以同步视图,length不能
|
||||||
|
@ -3747,7 +3746,7 @@ const _Anot = (function() {
|
||||||
var componentQueue = []
|
var componentQueue = []
|
||||||
var widgetList = []
|
var widgetList = []
|
||||||
var componentHooks = {
|
var componentHooks = {
|
||||||
construct: noop,
|
__init__: noop,
|
||||||
componentWillMount: noop,
|
componentWillMount: noop,
|
||||||
componentDidMount: noop,
|
componentDidMount: noop,
|
||||||
childComponentDidMount: noop,
|
childComponentDidMount: noop,
|
||||||
|
@ -3834,10 +3833,20 @@ const _Anot = (function() {
|
||||||
parentVm.$watch(valueKey, function(val) {
|
parentVm.$watch(valueKey, function(val) {
|
||||||
parentVm.$fire('component!' + $id + '!value', val)
|
parentVm.$fire('component!' + $id + '!value', val)
|
||||||
})
|
})
|
||||||
|
if (Array.isArray(state.value)) {
|
||||||
|
hooks.watch['value.length'] = hooks.watch['value.length']
|
||||||
|
? [hooks.watch['value.length']]
|
||||||
|
: []
|
||||||
|
hooks.watch['value.length'].push(function(val) {
|
||||||
|
parentVm[valueKey] = this.value.$model
|
||||||
|
})
|
||||||
|
} else {
|
||||||
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
||||||
hooks.watch.value.push(function(val) {
|
hooks.watch.value.push(function(val) {
|
||||||
parentVm[valueKey] = val
|
parentVm[valueKey] = val
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
delete props[':value']
|
delete props[':value']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3850,7 +3859,15 @@ const _Anot = (function() {
|
||||||
Object.assign(hooks.props, props)
|
Object.assign(hooks.props, props)
|
||||||
Object.assign(hooks.state, state)
|
Object.assign(hooks.state, state)
|
||||||
|
|
||||||
hooks.construct.call(elem, hooks.props, hooks.state)
|
var __READY__ = false
|
||||||
|
|
||||||
|
hooks.__init__.call(elem, hooks.props, hooks.state, function next() {
|
||||||
|
__READY__ = true
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!__READY__) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
hooks.$id = $id
|
hooks.$id = $id
|
||||||
|
|
||||||
|
@ -3863,7 +3880,7 @@ const _Anot = (function() {
|
||||||
render
|
render
|
||||||
} = hooks
|
} = hooks
|
||||||
|
|
||||||
delete hooks.construct
|
delete hooks.__init__
|
||||||
delete hooks.componentWillMount
|
delete hooks.componentWillMount
|
||||||
delete hooks.componentDidMount
|
delete hooks.componentDidMount
|
||||||
delete hooks.childComponentDidMount
|
delete hooks.childComponentDidMount
|
||||||
|
|
|
@ -1996,17 +1996,18 @@
|
||||||
$emit.call(this.$up, this.$pathname)
|
$emit.call(this.$up, this.$pathname)
|
||||||
},
|
},
|
||||||
set: function(index, val) {
|
set: function(index, val) {
|
||||||
if (index >>> 0 === index && this[index] !== val) {
|
index = index >>> 0
|
||||||
if (index > this.length) {
|
if (index > this.length) {
|
||||||
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
||||||
}
|
}
|
||||||
|
if (this[index] !== val) {
|
||||||
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
||||||
this.splice(index, 1, val)
|
this.splice(index, 1, val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
contains: function(el) {
|
contains: function(el) {
|
||||||
//判定是否包含
|
//判定是否包含
|
||||||
return this.indexOf(el) !== -1
|
return this.indexOf(el) > -1
|
||||||
},
|
},
|
||||||
ensure: function(el) {
|
ensure: function(el) {
|
||||||
if (!this.contains(el)) {
|
if (!this.contains(el)) {
|
||||||
|
@ -2023,11 +2024,9 @@
|
||||||
return this.removeAt(this.indexOf(el))
|
return this.removeAt(this.indexOf(el))
|
||||||
},
|
},
|
||||||
removeAt: function(index) {
|
removeAt: function(index) {
|
||||||
|
index = index >>> 0
|
||||||
//移除指定索引上的元素
|
//移除指定索引上的元素
|
||||||
if (index >>> 0 === index) {
|
|
||||||
return this.splice(index, 1)
|
return this.splice(index, 1)
|
||||||
}
|
|
||||||
return []
|
|
||||||
},
|
},
|
||||||
size: function() {
|
size: function() {
|
||||||
//取得数组长度,这个函数可以同步视图,length不能
|
//取得数组长度,这个函数可以同步视图,length不能
|
||||||
|
@ -3762,7 +3761,7 @@
|
||||||
var componentQueue = []
|
var componentQueue = []
|
||||||
var widgetList = []
|
var widgetList = []
|
||||||
var componentHooks = {
|
var componentHooks = {
|
||||||
construct: noop,
|
__init__: noop,
|
||||||
componentWillMount: noop,
|
componentWillMount: noop,
|
||||||
componentDidMount: noop,
|
componentDidMount: noop,
|
||||||
childComponentDidMount: noop,
|
childComponentDidMount: noop,
|
||||||
|
@ -3849,10 +3848,20 @@
|
||||||
parentVm.$watch(valueKey, function(val) {
|
parentVm.$watch(valueKey, function(val) {
|
||||||
parentVm.$fire('component!' + $id + '!value', val)
|
parentVm.$fire('component!' + $id + '!value', val)
|
||||||
})
|
})
|
||||||
|
if (Array.isArray(state.value)) {
|
||||||
|
hooks.watch['value.length'] = hooks.watch['value.length']
|
||||||
|
? [hooks.watch['value.length']]
|
||||||
|
: []
|
||||||
|
hooks.watch['value.length'].push(function(val) {
|
||||||
|
parentVm[valueKey] = this.value.$model
|
||||||
|
})
|
||||||
|
} else {
|
||||||
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
||||||
hooks.watch.value.push(function(val) {
|
hooks.watch.value.push(function(val) {
|
||||||
parentVm[valueKey] = val
|
parentVm[valueKey] = val
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
delete props[':value']
|
delete props[':value']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3865,7 +3874,15 @@
|
||||||
Object.assign(hooks.props, props)
|
Object.assign(hooks.props, props)
|
||||||
Object.assign(hooks.state, state)
|
Object.assign(hooks.state, state)
|
||||||
|
|
||||||
hooks.construct.call(elem, hooks.props, hooks.state)
|
var __READY__ = false
|
||||||
|
|
||||||
|
hooks.__init__.call(elem, hooks.props, hooks.state, function next() {
|
||||||
|
__READY__ = true
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!__READY__) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
hooks.$id = $id
|
hooks.$id = $id
|
||||||
|
|
||||||
|
@ -3878,7 +3895,7 @@
|
||||||
render
|
render
|
||||||
} = hooks
|
} = hooks
|
||||||
|
|
||||||
delete hooks.construct
|
delete hooks.__init__
|
||||||
delete hooks.componentWillMount
|
delete hooks.componentWillMount
|
||||||
delete hooks.componentDidMount
|
delete hooks.componentDidMount
|
||||||
delete hooks.childComponentDidMount
|
delete hooks.childComponentDidMount
|
||||||
|
|
|
@ -1981,17 +1981,18 @@ const _Anot = (function() {
|
||||||
$emit.call(this.$up, this.$pathname)
|
$emit.call(this.$up, this.$pathname)
|
||||||
},
|
},
|
||||||
set: function(index, val) {
|
set: function(index, val) {
|
||||||
if (index >>> 0 === index && this[index] !== val) {
|
index = index >>> 0
|
||||||
if (index > this.length) {
|
if (index > this.length) {
|
||||||
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
||||||
}
|
}
|
||||||
|
if (this[index] !== val) {
|
||||||
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
||||||
this.splice(index, 1, val)
|
this.splice(index, 1, val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
contains: function(el) {
|
contains: function(el) {
|
||||||
//判定是否包含
|
//判定是否包含
|
||||||
return this.indexOf(el) !== -1
|
return this.indexOf(el) > -1
|
||||||
},
|
},
|
||||||
ensure: function(el) {
|
ensure: function(el) {
|
||||||
if (!this.contains(el)) {
|
if (!this.contains(el)) {
|
||||||
|
@ -2008,11 +2009,9 @@ const _Anot = (function() {
|
||||||
return this.removeAt(this.indexOf(el))
|
return this.removeAt(this.indexOf(el))
|
||||||
},
|
},
|
||||||
removeAt: function(index) {
|
removeAt: function(index) {
|
||||||
|
index = index >>> 0
|
||||||
//移除指定索引上的元素
|
//移除指定索引上的元素
|
||||||
if (index >>> 0 === index) {
|
|
||||||
return this.splice(index, 1)
|
return this.splice(index, 1)
|
||||||
}
|
|
||||||
return []
|
|
||||||
},
|
},
|
||||||
size: function() {
|
size: function() {
|
||||||
//取得数组长度,这个函数可以同步视图,length不能
|
//取得数组长度,这个函数可以同步视图,length不能
|
||||||
|
@ -3747,7 +3746,7 @@ const _Anot = (function() {
|
||||||
var componentQueue = []
|
var componentQueue = []
|
||||||
var widgetList = []
|
var widgetList = []
|
||||||
var componentHooks = {
|
var componentHooks = {
|
||||||
construct: noop,
|
__init__: noop,
|
||||||
componentWillMount: noop,
|
componentWillMount: noop,
|
||||||
componentDidMount: noop,
|
componentDidMount: noop,
|
||||||
childComponentDidMount: noop,
|
childComponentDidMount: noop,
|
||||||
|
@ -3834,10 +3833,20 @@ const _Anot = (function() {
|
||||||
parentVm.$watch(valueKey, function(val) {
|
parentVm.$watch(valueKey, function(val) {
|
||||||
parentVm.$fire('component!' + $id + '!value', val)
|
parentVm.$fire('component!' + $id + '!value', val)
|
||||||
})
|
})
|
||||||
|
if (Array.isArray(state.value)) {
|
||||||
|
hooks.watch['value.length'] = hooks.watch['value.length']
|
||||||
|
? [hooks.watch['value.length']]
|
||||||
|
: []
|
||||||
|
hooks.watch['value.length'].push(function(val) {
|
||||||
|
parentVm[valueKey] = this.value.$model
|
||||||
|
})
|
||||||
|
} else {
|
||||||
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
||||||
hooks.watch.value.push(function(val) {
|
hooks.watch.value.push(function(val) {
|
||||||
parentVm[valueKey] = val
|
parentVm[valueKey] = val
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
delete props[':value']
|
delete props[':value']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3850,7 +3859,15 @@ const _Anot = (function() {
|
||||||
Object.assign(hooks.props, props)
|
Object.assign(hooks.props, props)
|
||||||
Object.assign(hooks.state, state)
|
Object.assign(hooks.state, state)
|
||||||
|
|
||||||
hooks.construct.call(elem, hooks.props, hooks.state)
|
var __READY__ = false
|
||||||
|
|
||||||
|
hooks.__init__.call(elem, hooks.props, hooks.state, function next() {
|
||||||
|
__READY__ = true
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!__READY__) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
hooks.$id = $id
|
hooks.$id = $id
|
||||||
|
|
||||||
|
@ -3863,7 +3880,7 @@ const _Anot = (function() {
|
||||||
render
|
render
|
||||||
} = hooks
|
} = hooks
|
||||||
|
|
||||||
delete hooks.construct
|
delete hooks.__init__
|
||||||
delete hooks.componentWillMount
|
delete hooks.componentWillMount
|
||||||
delete hooks.componentDidMount
|
delete hooks.componentDidMount
|
||||||
delete hooks.childComponentDidMount
|
delete hooks.childComponentDidMount
|
||||||
|
|
|
@ -1996,17 +1996,18 @@
|
||||||
$emit.call(this.$up, this.$pathname)
|
$emit.call(this.$up, this.$pathname)
|
||||||
},
|
},
|
||||||
set: function(index, val) {
|
set: function(index, val) {
|
||||||
if (index >>> 0 === index && this[index] !== val) {
|
index = index >>> 0
|
||||||
if (index > this.length) {
|
if (index > this.length) {
|
||||||
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
throw Error(index + 'set方法的第一个参数不能大于原数组长度')
|
||||||
}
|
}
|
||||||
|
if (this[index] !== val) {
|
||||||
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
$emit.call(this.$up, this.$pathname + '.*', [val, this[index]])
|
||||||
this.splice(index, 1, val)
|
this.splice(index, 1, val)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
contains: function(el) {
|
contains: function(el) {
|
||||||
//判定是否包含
|
//判定是否包含
|
||||||
return this.indexOf(el) !== -1
|
return this.indexOf(el) > -1
|
||||||
},
|
},
|
||||||
ensure: function(el) {
|
ensure: function(el) {
|
||||||
if (!this.contains(el)) {
|
if (!this.contains(el)) {
|
||||||
|
@ -2023,11 +2024,9 @@
|
||||||
return this.removeAt(this.indexOf(el))
|
return this.removeAt(this.indexOf(el))
|
||||||
},
|
},
|
||||||
removeAt: function(index) {
|
removeAt: function(index) {
|
||||||
|
index = index >>> 0
|
||||||
//移除指定索引上的元素
|
//移除指定索引上的元素
|
||||||
if (index >>> 0 === index) {
|
|
||||||
return this.splice(index, 1)
|
return this.splice(index, 1)
|
||||||
}
|
|
||||||
return []
|
|
||||||
},
|
},
|
||||||
size: function() {
|
size: function() {
|
||||||
//取得数组长度,这个函数可以同步视图,length不能
|
//取得数组长度,这个函数可以同步视图,length不能
|
||||||
|
@ -3762,7 +3761,7 @@
|
||||||
var componentQueue = []
|
var componentQueue = []
|
||||||
var widgetList = []
|
var widgetList = []
|
||||||
var componentHooks = {
|
var componentHooks = {
|
||||||
construct: noop,
|
__init__: noop,
|
||||||
componentWillMount: noop,
|
componentWillMount: noop,
|
||||||
componentDidMount: noop,
|
componentDidMount: noop,
|
||||||
childComponentDidMount: noop,
|
childComponentDidMount: noop,
|
||||||
|
@ -3849,10 +3848,20 @@
|
||||||
parentVm.$watch(valueKey, function(val) {
|
parentVm.$watch(valueKey, function(val) {
|
||||||
parentVm.$fire('component!' + $id + '!value', val)
|
parentVm.$fire('component!' + $id + '!value', val)
|
||||||
})
|
})
|
||||||
|
if (Array.isArray(state.value)) {
|
||||||
|
hooks.watch['value.length'] = hooks.watch['value.length']
|
||||||
|
? [hooks.watch['value.length']]
|
||||||
|
: []
|
||||||
|
hooks.watch['value.length'].push(function(val) {
|
||||||
|
parentVm[valueKey] = this.value.$model
|
||||||
|
})
|
||||||
|
} else {
|
||||||
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
hooks.watch.value = hooks.watch.value ? [hooks.watch.value] : []
|
||||||
hooks.watch.value.push(function(val) {
|
hooks.watch.value.push(function(val) {
|
||||||
parentVm[valueKey] = val
|
parentVm[valueKey] = val
|
||||||
})
|
})
|
||||||
|
}
|
||||||
|
|
||||||
delete props[':value']
|
delete props[':value']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3865,7 +3874,15 @@
|
||||||
Object.assign(hooks.props, props)
|
Object.assign(hooks.props, props)
|
||||||
Object.assign(hooks.state, state)
|
Object.assign(hooks.state, state)
|
||||||
|
|
||||||
hooks.construct.call(elem, hooks.props, hooks.state)
|
var __READY__ = false
|
||||||
|
|
||||||
|
hooks.__init__.call(elem, hooks.props, hooks.state, function next() {
|
||||||
|
__READY__ = true
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!__READY__) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
hooks.$id = $id
|
hooks.$id = $id
|
||||||
|
|
||||||
|
@ -3878,7 +3895,7 @@
|
||||||
render
|
render
|
||||||
} = hooks
|
} = hooks
|
||||||
|
|
||||||
delete hooks.construct
|
delete hooks.__init__
|
||||||
delete hooks.componentWillMount
|
delete hooks.componentWillMount
|
||||||
delete hooks.componentDidMount
|
delete hooks.componentDidMount
|
||||||
delete hooks.childComponentDidMount
|
delete hooks.childComponentDidMount
|
||||||
|
|
|
@ -194,7 +194,7 @@ export default Anot.component('datepicker', {
|
||||||
</dl>
|
</dl>
|
||||||
</div>`
|
</div>`
|
||||||
},
|
},
|
||||||
construct: function(props, state) {
|
__init__: function(props, state, next) {
|
||||||
// 日期格式化, 不显示时间时, 默认会调用过滤器的格式'Y-m-d H:i:s'
|
// 日期格式化, 不显示时间时, 默认会调用过滤器的格式'Y-m-d H:i:s'
|
||||||
if (!props.showTime && !props.format) {
|
if (!props.showTime && !props.format) {
|
||||||
props.format = 'Y-m-d'
|
props.format = 'Y-m-d'
|
||||||
|
@ -267,6 +267,7 @@ export default Anot.component('datepicker', {
|
||||||
delete props.maxDate
|
delete props.maxDate
|
||||||
delete props.hostPush
|
delete props.hostPush
|
||||||
delete props.disabled
|
delete props.disabled
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
componentWillMount: function() {
|
componentWillMount: function() {
|
||||||
this.resetCalendarTable()
|
this.resetCalendarTable()
|
||||||
|
|
|
@ -11,16 +11,16 @@ const log = console.log
|
||||||
Anot.ui.form = '0.1.0'
|
Anot.ui.form = '0.1.0'
|
||||||
// 按钮
|
// 按钮
|
||||||
Anot.component('button', {
|
Anot.component('button', {
|
||||||
construct(props, state) {
|
__init__(props, state, next) {
|
||||||
state.text = this.textContent
|
state.text = this.textContent
|
||||||
state.style = { 'border-radius': props.radius }
|
state.style = { 'border-radius': props.radius }
|
||||||
this.classList.add('do-fn-noselect')
|
this.classList.add('do-fn-noselect')
|
||||||
this.classList.add('do-button')
|
this.classList.add('do-button')
|
||||||
|
this.classList.add(props.color || 'grey')
|
||||||
this.setAttribute(':click', 'onClick')
|
this.setAttribute(':click', 'onClick')
|
||||||
this.setAttribute(':class', '{disabled: disabled}')
|
this.setAttribute(':class', '{disabled: disabled}')
|
||||||
this.setAttribute(':css', 'style')
|
this.setAttribute(':css', 'style')
|
||||||
|
|
||||||
this.classList.add(props.color || 'grey')
|
|
||||||
if (props.size) {
|
if (props.size) {
|
||||||
this.classList.add(props.size)
|
this.classList.add(props.size)
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,8 @@ Anot.component('button', {
|
||||||
delete props.disabled
|
delete props.disabled
|
||||||
delete props.color
|
delete props.color
|
||||||
delete props.size
|
delete props.size
|
||||||
|
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
let icon = ''
|
let icon = ''
|
||||||
|
@ -63,7 +65,7 @@ Anot.component('button', {
|
||||||
|
|
||||||
// 单选按钮
|
// 单选按钮
|
||||||
Anot.component('radio', {
|
Anot.component('radio', {
|
||||||
construct(props, state) {
|
__init__(props, state, next) {
|
||||||
state.text = this.textContent
|
state.text = this.textContent
|
||||||
state.checked = state.value === props.label
|
state.checked = state.value === props.label
|
||||||
if (props.hasOwnProperty('disabled')) {
|
if (props.hasOwnProperty('disabled')) {
|
||||||
|
@ -71,15 +73,14 @@ Anot.component('radio', {
|
||||||
}
|
}
|
||||||
this.classList.add('do-radio')
|
this.classList.add('do-radio')
|
||||||
this.classList.add('do-fn-noselect')
|
this.classList.add('do-fn-noselect')
|
||||||
|
|
||||||
if (!state.disabled) {
|
|
||||||
this.classList.add(props.color || 'grey')
|
this.classList.add(props.color || 'grey')
|
||||||
}
|
|
||||||
this.setAttribute(':class', '{disabled: disabled, checked: checked}')
|
this.setAttribute(':class', '{disabled: disabled, checked: checked}')
|
||||||
this.setAttribute(':click', 'onClick')
|
this.setAttribute(':click', 'onClick')
|
||||||
|
|
||||||
delete props.disabled
|
delete props.disabled
|
||||||
delete props.color
|
delete props.color
|
||||||
|
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
return `
|
return `
|
||||||
|
@ -113,21 +114,20 @@ Anot.component('radio', {
|
||||||
|
|
||||||
// 开关
|
// 开关
|
||||||
Anot.component('switch', {
|
Anot.component('switch', {
|
||||||
construct(props, state) {
|
__init__(props, state, next) {
|
||||||
if (props.hasOwnProperty('disabled')) {
|
if (props.hasOwnProperty('disabled')) {
|
||||||
state.disabled = true
|
state.disabled = true
|
||||||
}
|
}
|
||||||
|
|
||||||
this.classList.add('do-switch')
|
this.classList.add('do-switch')
|
||||||
this.classList.add('do-fn-noselect')
|
this.classList.add('do-fn-noselect')
|
||||||
if (!state.disabled) {
|
|
||||||
this.classList.add(props.color || 'grey')
|
this.classList.add(props.color || 'grey')
|
||||||
}
|
|
||||||
this.setAttribute(':class', '{disabled: disabled, checked: value}')
|
this.setAttribute(':class', '{disabled: disabled, checked: value}')
|
||||||
this.setAttribute(':click', 'onClick')
|
this.setAttribute(':click', 'onClick')
|
||||||
|
|
||||||
delete props.disabled
|
delete props.disabled
|
||||||
delete props.color
|
delete props.color
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
return `
|
return `
|
||||||
|
@ -148,4 +148,62 @@ Anot.component('switch', {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 多选
|
||||||
|
Anot.component('checkbox', {
|
||||||
|
__init__(props, state, next) {
|
||||||
|
if (!Array.isArray(state.value)) {
|
||||||
|
this.parentNode.removeChild(this)
|
||||||
|
Anot.error('多选框的传入值必须一个数组', TypeError)
|
||||||
|
}
|
||||||
|
state.text = this.textContent
|
||||||
|
state.checked = state.value.indexOf(props.label) > -1
|
||||||
|
if (props.hasOwnProperty('disabled')) {
|
||||||
|
state.disabled = true
|
||||||
|
}
|
||||||
|
|
||||||
|
this.classList.add('do-checkbox')
|
||||||
|
this.classList.add('do-fn-noselect')
|
||||||
|
this.classList.add(props.color || 'grey')
|
||||||
|
this.setAttribute(':class', '{disabled: disabled, checked: checked}')
|
||||||
|
this.setAttribute(':click', 'onClick')
|
||||||
|
|
||||||
|
delete props.disabled
|
||||||
|
delete props.color
|
||||||
|
next()
|
||||||
|
},
|
||||||
|
render() {
|
||||||
|
return `
|
||||||
|
<span class="do-checkbox__box">
|
||||||
|
<i class="do-icon-get" :visible="checked"></i>
|
||||||
|
</span>
|
||||||
|
<span class="do-checkbox__text" :text="text"></span>
|
||||||
|
`
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
value: [],
|
||||||
|
text: '',
|
||||||
|
checked: false,
|
||||||
|
disabled: false
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onClick() {
|
||||||
|
if (this.disabled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let { label } = this.props
|
||||||
|
let list = this.value.$model
|
||||||
|
for (let i in list) {
|
||||||
|
if (list[i] === label) {
|
||||||
|
this.checked = false
|
||||||
|
this.value.removeAt.call(this.value, i)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.checked = true
|
||||||
|
this.value.push(label)
|
||||||
|
// this.value = !this.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
export default Anot
|
export default Anot
|
||||||
|
|
|
@ -55,65 +55,56 @@
|
||||||
|
|
||||||
.do-radio {position:relative;display:inline-block;width:auto;height:30px;padding:0 10px;line-height:30px;text-align:center;cursor:default;font-size:14px;
|
.do-radio {position:relative;display:inline-block;width:auto;height:30px;padding:0 10px;line-height:30px;text-align:center;cursor:default;font-size:14px;
|
||||||
|
|
||||||
&.disabled {cursor:not-allowed;}
|
|
||||||
|
|
||||||
&__box {float:left;width:20px;height:20px;margin:5px;border:1px solid nth($cgr, 1);border-radius:50%;
|
&__box {float:left;width:20px;height:20px;margin:5px;border:1px solid nth($cgr, 1);border-radius:50%;}
|
||||||
|
|
||||||
}
|
|
||||||
&.checked &__box::after {display:block;width:14px;height:14px;margin:2px;border-radius:50%;content:""}
|
&.checked &__box::after {display:block;width:14px;height:14px;margin:2px;border-radius:50%;content:""}
|
||||||
|
|
||||||
&__text {color:nth($cgr, 1);}
|
|
||||||
|
|
||||||
|
|
||||||
&.teal &__box {border-color:nth($ct, 1);
|
&.teal &__box {border-color:nth($ct, 1);
|
||||||
&::after {background:nth($ct, 1);}
|
&::after {background:nth($ct, 1);}
|
||||||
}
|
}
|
||||||
&.teal &__text {color:nth($ct, 1);}
|
&.teal {color:nth($ct, 1);}
|
||||||
|
|
||||||
&.green &__box {border-color:nth($cg, 1);
|
&.green &__box {border-color:nth($cg, 1);
|
||||||
&::after {background:nth($cg, 1);}
|
&::after {background:nth($cg, 1);}
|
||||||
}
|
}
|
||||||
&.green &__text {color:nth($cg, 1);}
|
&.green {color:nth($cg, 1);}
|
||||||
|
|
||||||
&.blue &__box {border-color:nth($cb, 1);
|
&.blue &__box {border-color:nth($cb, 1);
|
||||||
&::after {background:nth($cb, 1);}
|
&::after {background:nth($cb, 1);}
|
||||||
}
|
}
|
||||||
&.blue &__text {color:nth($cb, 1);}
|
&.blue {color:nth($cb, 1);}
|
||||||
|
|
||||||
&.purple &__box {border-color:nth($cpp, 1);
|
&.purple &__box {border-color:nth($cpp, 1);
|
||||||
&::after {background:nth($cpp, 1);}
|
&::after {background:nth($cpp, 1);}
|
||||||
}
|
}
|
||||||
&.purple &__text {color:nth($cpp, 1);}
|
&.purple {color:nth($cpp, 1);}
|
||||||
|
|
||||||
&.red &__box {border-color:nth($cr, 1);
|
&.red &__box {border-color:nth($cr, 1);
|
||||||
&::after {background:nth($cr, 1);}
|
&::after {background:nth($cr, 1);}
|
||||||
}
|
}
|
||||||
&.red &__text {color:nth($cr, 1);}
|
&.red {color:nth($cr, 1);}
|
||||||
|
|
||||||
&.orange &__box {border-color:nth($co, 1);
|
&.orange &__box {border-color:nth($co, 1);
|
||||||
&::after {background:nth($co, 1);}
|
&::after {background:nth($co, 1);}
|
||||||
}
|
}
|
||||||
&.orange &__text {color:nth($co, 1);}
|
&.orange {color:nth($co, 1);}
|
||||||
|
|
||||||
&.plain &__box {border-color:nth($cp, 3);
|
&.plain &__box {border-color:nth($cp, 3);
|
||||||
&::after {background:nth($cp, 3);}
|
&::after {background:nth($cp, 3);}
|
||||||
}
|
}
|
||||||
&.plain &__text {color:nth($cp, 3);}
|
&.plain {color:nth($cp, 3);}
|
||||||
|
|
||||||
&.grey &__box {border-color:nth($cgr, 1);
|
&.grey &__box {border-color:nth($cgr, 1);
|
||||||
&::after {background:nth($cgr, 1);}
|
&::after {background:nth($cgr, 1);}
|
||||||
}
|
}
|
||||||
&.grey &__text {color:nth($cgr, 1);}
|
&.grey {color:nth($cgr, 1);}
|
||||||
|
|
||||||
|
|
||||||
&.disabled &__box {border-color:nth($cp, 1);
|
&.disabled {color:nth($cp, 3);cursor:not-allowed;text-decoration:line-through;}
|
||||||
&::after {background:nth($cp, 1);}
|
&.disabled.checked {color:nth($cgr, 2);}
|
||||||
|
&.disabled &__box {border-color:nth($cp, 3);
|
||||||
|
&::after {background:nth($cp, 3);}
|
||||||
}
|
}
|
||||||
&.disabled &__text {color:nth($cp, 1);}
|
|
||||||
&.disabled.checked &__text {color:nth($cgr, 1);}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -162,3 +153,51 @@
|
||||||
&.disabled &__label::before {right:7px;}
|
&.disabled &__label::before {right:7px;}
|
||||||
&.disabled.checked &__label::before {left:7px;}
|
&.disabled.checked &__label::before {left:7px;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.do-checkbox {position:relative;display:inline-block;width:auto;height:30px;padding:0 10px;line-height:30px;text-align:center;cursor:default;font-size:14px;
|
||||||
|
|
||||||
|
|
||||||
|
&__box {float:left;width:20px;height:20px;margin:5px;line-height:18px;border:1px solid nth($cgr, 1);border-radius:3px;font-size:18px;text-align:center;
|
||||||
|
|
||||||
|
}
|
||||||
|
&.checked &__box {color:#fff;font-weight:bold;}
|
||||||
|
|
||||||
|
&.grey {color:nth($cgr, 1);}
|
||||||
|
&.grey &__box {border-color:nth($cgr, 1);}
|
||||||
|
&.grey.checked &__box {background:nth($cgr, 1);}
|
||||||
|
|
||||||
|
&.teal {color:nth($ct, 1);}
|
||||||
|
&.teal &__box {border-color:nth($ct, 1);}
|
||||||
|
&.teal.checked &__box {background:nth($ct, 1);}
|
||||||
|
|
||||||
|
&.green {color:nth($cg, 1);}
|
||||||
|
&.green &__box {border-color:nth($cg, 1);}
|
||||||
|
&.green.checked &__box {background:nth($cg, 1);}
|
||||||
|
|
||||||
|
&.blue {color:nth($cb, 1);}
|
||||||
|
&.blue &__box {border-color:nth($cb, 1);}
|
||||||
|
&.blue.checked &__box {background:nth($cb, 1);}
|
||||||
|
|
||||||
|
&.purple {color:nth($cpp, 1);}
|
||||||
|
&.purple &__box {border-color:nth($cpp, 1);}
|
||||||
|
&.purple.checked &__box {background:nth($cpp, 1);}
|
||||||
|
|
||||||
|
&.orange {color:nth($co, 1);}
|
||||||
|
&.orange &__box {border-color:nth($co, 1);}
|
||||||
|
&.orange.checked &__box {background:nth($co, 1);}
|
||||||
|
|
||||||
|
&.plain {color:nth($cp, 3);}
|
||||||
|
&.plain &__box {border-color:nth($cp, 3);}
|
||||||
|
&.plain.checked &__box {background:nth($cp, 3);}
|
||||||
|
|
||||||
|
&.red {color:nth($cr, 1);}
|
||||||
|
&.red &__box {border-color:nth($cr, 1);}
|
||||||
|
&.red.checked &__box {background:nth($cr, 1);}
|
||||||
|
|
||||||
|
&.disabled {cursor:not-allowed;color:nth($cp, 3);text-decoration:line-through;}
|
||||||
|
&.disabled &__box {border-color:nth($cp, 3);}
|
||||||
|
&.disabled.checked {color:nth($cgr, 2);}
|
||||||
|
&.disabled.checked &__box {background:nth($cp, 3);}
|
||||||
|
|
||||||
|
}
|
|
@ -263,11 +263,12 @@ class MEObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
Anot.component('meditor', {
|
Anot.component('meditor', {
|
||||||
construct: function(props, state) {
|
__init__: function(props, state, next) {
|
||||||
if (props.hasOwnProperty('$show')) {
|
if (props.hasOwnProperty('$show')) {
|
||||||
state.editorVisible = props.$show
|
state.editorVisible = props.$show
|
||||||
delete props.$show
|
delete props.$show
|
||||||
}
|
}
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render: function() {
|
render: function() {
|
||||||
let toolbar = (this.toolbar || DEFAULT_TOOLBAR).map(it => tool(it)).join('')
|
let toolbar = (this.toolbar || DEFAULT_TOOLBAR).map(it => tool(it)).join('')
|
||||||
|
|
|
@ -37,7 +37,10 @@ function calculate({ currPage, maxPageShow, totalPage }) {
|
||||||
}
|
}
|
||||||
// 更新组件
|
// 更新组件
|
||||||
function update(currPage, vm) {
|
function update(currPage, vm) {
|
||||||
const { totalPage, props: { maxPageShow } } = vm
|
const {
|
||||||
|
totalPage,
|
||||||
|
props: { maxPageShow }
|
||||||
|
} = vm
|
||||||
vm.currPage = vm.inputPage = currPage
|
vm.currPage = vm.inputPage = currPage
|
||||||
if (typeof vm.props.onPageChange === 'function') {
|
if (typeof vm.props.onPageChange === 'function') {
|
||||||
vm.props.onPageChange(currPage)
|
vm.props.onPageChange(currPage)
|
||||||
|
@ -88,7 +91,7 @@ const tmpls = {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Anot.component('pager', {
|
export default Anot.component('pager', {
|
||||||
construct: function(props, state) {
|
__init__: function(props, state, next) {
|
||||||
props.theme = +props.theme || 1
|
props.theme = +props.theme || 1
|
||||||
if (props.simpleMode) {
|
if (props.simpleMode) {
|
||||||
props.theme = 1
|
props.theme = 1
|
||||||
|
@ -119,6 +122,7 @@ export default Anot.component('pager', {
|
||||||
delete props.pageSize
|
delete props.pageSize
|
||||||
delete props.color
|
delete props.color
|
||||||
delete props.size
|
delete props.size
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render: function(slots) {
|
render: function(slots) {
|
||||||
let { layout, theme, simpleMode } = this.props
|
let { layout, theme, simpleMode } = this.props
|
||||||
|
|
|
@ -219,7 +219,7 @@ class Router {
|
||||||
}
|
}
|
||||||
|
|
||||||
Anot.component('link', {
|
Anot.component('link', {
|
||||||
construct(props, state) {
|
__init__(props, state, next) {
|
||||||
let { mode } = Anot.router.options
|
let { mode } = Anot.router.options
|
||||||
if (!props.to) {
|
if (!props.to) {
|
||||||
return
|
return
|
||||||
|
@ -231,6 +231,7 @@ Anot.component('link', {
|
||||||
state.link = props.to
|
state.link = props.to
|
||||||
}
|
}
|
||||||
delete props.to
|
delete props.to
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
render() {
|
render() {
|
||||||
return '<a :attr-href="link" :text="props.label"></a>'
|
return '<a :attr-href="link" :text="props.label"></a>'
|
||||||
|
|
|
@ -75,7 +75,7 @@ export default Anot.component('tree', {
|
||||||
</ul>
|
</ul>
|
||||||
`
|
`
|
||||||
},
|
},
|
||||||
construct: function(props, state) {
|
__init__: function(props, state, next) {
|
||||||
props.id = props.id || 'id'
|
props.id = props.id || 'id'
|
||||||
props.label = props.label || 'label'
|
props.label = props.label || 'label'
|
||||||
props.parent = props.parent || 'parent'
|
props.parent = props.parent || 'parent'
|
||||||
|
@ -84,6 +84,7 @@ export default Anot.component('tree', {
|
||||||
state.multiCheck = !!props.multiCheck
|
state.multiCheck = !!props.multiCheck
|
||||||
delete props.list
|
delete props.list
|
||||||
delete props.multiCheck
|
delete props.multiCheck
|
||||||
|
next()
|
||||||
},
|
},
|
||||||
componentDidMount: function() {
|
componentDidMount: function() {
|
||||||
this.list.forEach(it => {
|
this.list.forEach(it => {
|
||||||
|
|
Reference in New Issue