1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- const prefixCls = 'i-radio';
- Component({
- externalClasses: ['i-class'],
- relations: {
- '../radio-group/index': {
- type: 'parent'
- }
- },
- properties: {
- value: {
- type: String,
- value: ''
- },
- checked: {
- type: Boolean,
- value: false
- },
- disabled: {
- type: Boolean,
- value: false
- },
- color: {
- type: String,
- value: '#2d8cf0'
- },
- position: {
- type: String,
- value: 'left', //left right
- observer: 'setPosition'
- }
- },
- data: {
- checked: true,
- positionCls: `${prefixCls}-radio-left`,
- },
- attached() {
- this.setPosition();
- },
- methods: {
- changeCurrent(current) {
- this.setData({ checked: current });
- },
- radioChange() {
- if (this.data.disabled) return;
- const item = { current: !this.data.checked, value: this.data.value };
- const parent = this.getRelationNodes('../radio-group/index')[0];
- parent ? parent.emitEvent(item) : this.triggerEvent('change', item);
- },
- setPosition() {
- this.setData({
- positionCls: this.data.position.indexOf('left') !== -1 ? `${prefixCls}-radio-left` : `${prefixCls}-radio-right`,
- });
- }
- }
- });
|