vxe-table 3.4.11 → 3.4.12-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -21,10 +21,16 @@ var _default2 = {
21
21
  title: [String, Number],
22
22
  content: [String, Number],
23
23
  disabled: Boolean,
24
+ strict: {
25
+ type: Boolean,
26
+ default: function _default() {
27
+ return _conf.default.radioButton.strict;
28
+ }
29
+ },
24
30
  size: {
25
31
  type: String,
26
32
  default: function _default() {
27
- return _conf.default.radio.size || _conf.default.size;
33
+ return _conf.default.radioButton.size || _conf.default.size;
28
34
  }
29
35
  }
30
36
  },
@@ -40,6 +46,10 @@ var _default2 = {
40
46
  isDisabled: function isDisabled() {
41
47
  var $xeradiogroup = this.$xeradiogroup;
42
48
  return this.disabled || $xeradiogroup && $xeradiogroup.disabled;
49
+ },
50
+ isStrict: function isStrict() {
51
+ var $xeradiogroup = this.$xeradiogroup;
52
+ return $xeradiogroup ? $xeradiogroup.strict : this.strict;
43
53
  }
44
54
  },
45
55
  render: function render(h) {
@@ -73,29 +83,43 @@ var _default2 = {
73
83
  checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
74
84
  },
75
85
  on: {
76
- change: this.changeEvent
86
+ change: this.changeEvent,
87
+ click: this.clickEvent
77
88
  }
78
89
  }), h('span', {
79
90
  class: 'vxe-radio--label'
80
91
  }, $scopedSlots.default ? $scopedSlots.default.call(this, {}) : [_tools.UtilTools.getFuncText(content)])]);
81
92
  },
82
93
  methods: {
94
+ handleValue: function handleValue(label, evnt) {
95
+ var $xeradiogroup = this.$xeradiogroup;
96
+ var params = {
97
+ label: label,
98
+ $event: evnt
99
+ };
100
+
101
+ if ($xeradiogroup) {
102
+ $xeradiogroup.handleChecked(params);
103
+ } else {
104
+ this.$emit('input', label);
105
+ this.$emit('change', params);
106
+ }
107
+ },
83
108
  changeEvent: function changeEvent(evnt) {
84
- var $xeradiogroup = this.$xeradiogroup,
85
- isDisabled = this.isDisabled,
86
- label = this.label;
109
+ var isDisabled = this.isDisabled;
87
110
 
88
111
  if (!isDisabled) {
89
- var params = {
90
- label: label,
91
- $event: evnt
92
- };
112
+ this.handleValue(this.label, evnt);
113
+ }
114
+ },
115
+ clickEvent: function clickEvent(evnt) {
116
+ var $xeradiogroup = this.$xeradiogroup,
117
+ isDisabled = this.isDisabled,
118
+ isStrict = this.isStrict;
93
119
 
94
- if ($xeradiogroup) {
95
- $xeradiogroup.handleChecked(params);
96
- } else {
97
- this.$emit('input', label);
98
- this.$emit('change', params);
120
+ if (!isDisabled && !isStrict) {
121
+ if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
122
+ this.handleValue(null, evnt);
99
123
  }
100
124
  }
101
125
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeRadioButton",props:{value:[String,Number,Boolean],label:[String,Number,Boolean],title:[String,Number],content:[String,Number],disabled:Boolean,size:{type:String,default:function(){return _conf.default.radio.size||_conf.default.size}}},inject:{$xeradiogroup:{default:null}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize},isDisabled:function(){var e=this.$xeradiogroup;return this.disabled||e&&e.disabled}},render:function(e){var t=this.$scopedSlots,i=this.$xeradiogroup,r=this.isDisabled,a=this.title,n=this.vSize,o=this.value,l=this.label,s=this.content,u={};return a&&(u.title=a),e("label",{class:["vxe-radio","vxe-radio-button",(_defineProperty(a={},"size--".concat(n),n),_defineProperty(a,"is--disabled",r),a)],attrs:u},[e("input",{class:"vxe-radio--input",attrs:{type:"radio",name:i?i.name:null,disabled:r},domProps:{checked:i?i.value===l:o===l},on:{change:this.changeEvent}}),e("span",{class:"vxe-radio--label"},t.default?t.default.call(this,{}):[_tools.UtilTools.getFuncText(s)])])},methods:{changeEvent:function(e){var t=this.$xeradiogroup,i=this.isDisabled,r=this.label;i||(e={label:r,$event:e},t?t.handleChecked(e):(this.$emit("input",r),this.$emit("change",e)))}}};exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeRadioButton",props:{value:[String,Number,Boolean],label:[String,Number,Boolean],title:[String,Number],content:[String,Number],disabled:Boolean,strict:{type:Boolean,default:function(){return _conf.default.radioButton.strict}},size:{type:String,default:function(){return _conf.default.radioButton.size||_conf.default.size}}},inject:{$xeradiogroup:{default:null}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize},isDisabled:function(){var e=this.$xeradiogroup;return this.disabled||e&&e.disabled},isStrict:function(){var e=this.$xeradiogroup;return(e||this).strict}},render:function(e){var t=this.$scopedSlots,i=this.$xeradiogroup,n=this.isDisabled,a=this.title,r=this.vSize,l=this.value,o=this.label,s=this.content,u={};return a&&(u.title=a),e("label",{class:["vxe-radio","vxe-radio-button",(_defineProperty(a={},"size--".concat(r),r),_defineProperty(a,"is--disabled",n),a)],attrs:u},[e("input",{class:"vxe-radio--input",attrs:{type:"radio",name:i?i.name:null,disabled:n},domProps:{checked:i?i.value===o:l===o},on:{change:this.changeEvent,click:this.clickEvent}}),e("span",{class:"vxe-radio--label"},t.default?t.default.call(this,{}):[_tools.UtilTools.getFuncText(s)])])},methods:{handleValue:function(e,t){var i=this.$xeradiogroup,t={label:e,$event:t};i?i.handleChecked(t):(this.$emit("input",e),this.$emit("change",t))},changeEvent:function(e){this.isDisabled||this.handleValue(this.label,e)},clickEvent:function(e){var t=this.$xeradiogroup,i=this.isDisabled,n=this.isStrict;i||n||this.label===(t||this).value&&this.handleValue(null,e)}}};exports.default=_default2;
@@ -16,10 +16,16 @@ var _default2 = {
16
16
  props: {
17
17
  value: [String, Number, Boolean],
18
18
  disabled: Boolean,
19
+ strict: {
20
+ type: Boolean,
21
+ default: function _default() {
22
+ return _conf.default.radioGroup.strict;
23
+ }
24
+ },
19
25
  size: {
20
26
  type: String,
21
27
  default: function _default() {
22
- return _conf.default.radio.size || _conf.default.size;
28
+ return _conf.default.radioGroup.size || _conf.default.size;
23
29
  }
24
30
  }
25
31
  },
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2={name:"VxeRadioGroup",props:{value:[String,Number,Boolean],disabled:Boolean,size:{type:String,default:function(){return _conf.default.radio.size||_conf.default.size}}},provide:function(){return{$xeradiogroup:this}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize}},data:function(){return{name:_xeUtils.default.uniqueId("xegroup_")}},render:function(e){var t=this.$scopedSlots;return e("div",{class:"vxe-radio-group"},t.default?t.default.call(this,{}):[])},methods:{handleChecked:function(e){this.$emit("input",e.label),this.$emit("change",e)}}};exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default2={name:"VxeRadioGroup",props:{value:[String,Number,Boolean],disabled:Boolean,strict:{type:Boolean,default:function(){return _conf.default.radioGroup.strict}},size:{type:String,default:function(){return _conf.default.radioGroup.size||_conf.default.size}}},provide:function(){return{$xeradiogroup:this}},computed:{vSize:function(){return this.size||this.$parent.size||this.$parent.vSize}},data:function(){return{name:_xeUtils.default.uniqueId("xegroup_")}},render:function(e){var t=this.$scopedSlots;return e("div",{class:"vxe-radio-group"},t.default?t.default.call(this,{}):[])},methods:{handleChecked:function(e){this.$emit("input",e.label),this.$emit("change",e)}}};exports.default=_default2;
@@ -25,6 +25,12 @@ var _default2 = {
25
25
  content: [String, Number],
26
26
  disabled: Boolean,
27
27
  name: String,
28
+ strict: {
29
+ type: Boolean,
30
+ default: function _default() {
31
+ return _conf.default.radio.strict;
32
+ }
33
+ },
28
34
  size: {
29
35
  type: String,
30
36
  default: function _default() {
@@ -41,11 +47,14 @@ var _default2 = {
41
47
  isDisabled: function isDisabled() {
42
48
  var $xeradiogroup = this.$xeradiogroup;
43
49
  return this.disabled || $xeradiogroup && $xeradiogroup.disabled;
50
+ },
51
+ isStrict: function isStrict() {
52
+ var $xeradiogroup = this.$xeradiogroup;
53
+ return $xeradiogroup ? $xeradiogroup.strict : this.strict;
44
54
  }
45
55
  },
46
56
  render: function render(h) {
47
- var _ref,
48
- _this = this;
57
+ var _ref;
49
58
 
50
59
  var $scopedSlots = this.$scopedSlots,
51
60
  $xeradiogroup = this.$xeradiogroup,
@@ -76,22 +85,8 @@ var _default2 = {
76
85
  checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
77
86
  },
78
87
  on: {
79
- change: function change(evnt) {
80
- if (!isDisabled) {
81
- var params = {
82
- label: label,
83
- $event: evnt
84
- };
85
-
86
- if ($xeradiogroup) {
87
- $xeradiogroup.handleChecked(params);
88
- } else {
89
- _this.$emit('input', label);
90
-
91
- _this.$emit('change', params);
92
- }
93
- }
94
- }
88
+ change: this.changeEvent,
89
+ click: this.clickEvent
95
90
  }
96
91
  }), h('span', {
97
92
  class: 'vxe-radio--icon'
@@ -100,22 +95,35 @@ var _default2 = {
100
95
  }, $scopedSlots.default ? $scopedSlots.default.call(this, {}) : [_tools.UtilTools.getFuncText(content)])]);
101
96
  },
102
97
  methods: {
98
+ handleValue: function handleValue(label, evnt) {
99
+ var $xeradiogroup = this.$xeradiogroup;
100
+ var params = {
101
+ label: label,
102
+ $event: evnt
103
+ };
104
+
105
+ if ($xeradiogroup) {
106
+ $xeradiogroup.handleChecked(params);
107
+ } else {
108
+ this.$emit('input', label);
109
+ this.$emit('change', params);
110
+ }
111
+ },
103
112
  changeEvent: function changeEvent(evnt) {
104
- var $xeradiogroup = this.$xeradiogroup,
105
- isDisabled = this.isDisabled,
106
- label = this.label;
113
+ var isDisabled = this.isDisabled;
107
114
 
108
115
  if (!isDisabled) {
109
- var params = {
110
- label: label,
111
- $event: evnt
112
- };
116
+ this.handleValue(this.label, evnt);
117
+ }
118
+ },
119
+ clickEvent: function clickEvent(evnt) {
120
+ var $xeradiogroup = this.$xeradiogroup,
121
+ isDisabled = this.isDisabled,
122
+ isStrict = this.isStrict;
113
123
 
114
- if ($xeradiogroup) {
115
- $xeradiogroup.handleChecked(params);
116
- } else {
117
- this.$emit('input', label);
118
- this.$emit('change', params);
124
+ if (!isDisabled && !isStrict) {
125
+ if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
126
+ this.handleValue(null, evnt);
119
127
  }
120
128
  }
121
129
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeRadio",mixins:[_size.default],props:{value:[String,Number,Boolean],label:[String,Number,Boolean],title:[String,Number],content:[String,Number],disabled:Boolean,name:String,size:{type:String,default:function(){return _conf.default.radio.size||_conf.default.size}}},inject:{$xeradiogroup:{default:null}},computed:{isDisabled:function(){var e=this.$xeradiogroup;return this.disabled||e&&e.disabled}},render:function(e){var t=this,i=this.$scopedSlots,a=this.$xeradiogroup,n=this.isDisabled,r=this.title,l=this.vSize,s=this.value,o=this.label,u=this.name,d=this.content,c={};return r&&(c.title=r),e("label",{class:["vxe-radio",(_defineProperty(r={},"size--".concat(l),l),_defineProperty(r,"is--disabled",n),r)],attrs:c},[e("input",{class:"vxe-radio--input",attrs:{type:"radio",name:a?a.name:u,disabled:n},domProps:{checked:a?a.value===o:s===o},on:{change:function(e){n||(e={label:o,$event:e},a?a.handleChecked(e):(t.$emit("input",o),t.$emit("change",e)))}}}),e("span",{class:"vxe-radio--icon"}),e("span",{class:"vxe-radio--label"},i.default?i.default.call(this,{}):[_tools.UtilTools.getFuncText(d)])])},methods:{changeEvent:function(e){var t=this.$xeradiogroup,i=this.isDisabled,a=this.label;i||(e={label:a,$event:e},t?t.handleChecked(e):(this.$emit("input",a),this.$emit("change",e)))}}};exports.default=_default2;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _tools=require("../../tools"),_conf=_interopRequireDefault(require("../../v-x-e-table/src/conf")),_size=_interopRequireDefault(require("../../mixins/size"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperty(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}var _default2={name:"VxeRadio",mixins:[_size.default],props:{value:[String,Number,Boolean],label:[String,Number,Boolean],title:[String,Number],content:[String,Number],disabled:Boolean,name:String,strict:{type:Boolean,default:function(){return _conf.default.radio.strict}},size:{type:String,default:function(){return _conf.default.radio.size||_conf.default.size}}},inject:{$xeradiogroup:{default:null}},computed:{isDisabled:function(){var e=this.$xeradiogroup;return this.disabled||e&&e.disabled},isStrict:function(){var e=this.$xeradiogroup;return(e||this).strict}},render:function(e){var t=this.$scopedSlots,i=this.$xeradiogroup,a=this.isDisabled,r=this.title,n=this.vSize,l=this.value,s=this.label,o=this.name,u=this.content,d={};return r&&(d.title=r),e("label",{class:["vxe-radio",(_defineProperty(r={},"size--".concat(n),n),_defineProperty(r,"is--disabled",a),r)],attrs:d},[e("input",{class:"vxe-radio--input",attrs:{type:"radio",name:i?i.name:o,disabled:a},domProps:{checked:i?i.value===s:l===s},on:{change:this.changeEvent,click:this.clickEvent}}),e("span",{class:"vxe-radio--icon"}),e("span",{class:"vxe-radio--label"},t.default?t.default.call(this,{}):[_tools.UtilTools.getFuncText(u)])])},methods:{handleValue:function(e,t){var i=this.$xeradiogroup,t={label:e,$event:t};i?i.handleChecked(t):(this.$emit("input",e),this.$emit("change",t))},changeEvent:function(e){this.isDisabled||this.handleValue(this.label,e)},clickEvent:function(e){var t=this.$xeradiogroup,i=this.isDisabled,a=this.isStrict;i||a||this.label===(t||this).value&&this.handleValue(null,e)}}};exports.default=_default2;
@@ -288,7 +288,17 @@ var _default = {
288
288
  button: {// size: null,
289
289
  // transfer: false
290
290
  },
291
- radio: {// size: null
291
+ radio: {
292
+ // size: null,
293
+ strict: true
294
+ },
295
+ radioButton: {
296
+ // size: null,
297
+ strict: true
298
+ },
299
+ radioGroup: {
300
+ // size: null,
301
+ strict: true
292
302
  },
293
303
  checkbox: {// size: null
294
304
  },
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",_default={size:null,zIndex:999,version:0,emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,radioConfig:{strict:!0},checkboxConfig:{strict:!0},validConfig:{showMessage:!0,message:"default"},sortConfig:{showIcon:!0},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",children:"children",hasChild:"hasChild",mapChildren:"_X_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0},importConfig:{modes:["insert","covering"]},exportConfig:{modes:["current","selected"]},printConfig:{modes:["current","selected"]},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{selectCellByHeader:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{enabled:!0,gt:60},scrollY:{enabled:!0,gt:100}},export:{types:{}},icon:{TABLE_SORT_ASC:iconPrefix+"caret-top",TABLE_SORT_DESC:iconPrefix+"caret-bottom",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit-outline",TABLE_HELP:iconPrefix+"question",TABLE_TREE_LOADED:iconPrefix+"refresh roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"refresh roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",BUTTON_DROPDOWN:iconPrefix+"arrow-bottom",BUTTON_LOADING:iconPrefix+"refresh roll",SELECT_LOADED:iconPrefix+"refresh roll",SELECT_OPEN:iconPrefix+"caret-bottom rotate180",SELECT_CLOSE:iconPrefix+"caret-bottom",PAGER_JUMP_PREV:iconPrefix+"d-arrow-left",PAGER_JUMP_NEXT:iconPrefix+"d-arrow-right",PAGER_PREV_PAGE:iconPrefix+"arrow-left",PAGER_NEXT_PAGE:iconPrefix+"arrow-right",PAGER_JUMP_MORE:iconPrefix+"more",INPUT_CLEAR:iconPrefix+"close",INPUT_PWD:iconPrefix+"eye-slash",INPUT_SHOW_PWD:iconPrefix+"eye",INPUT_PREV_NUM:iconPrefix+"caret-top",INPUT_NEXT_NUM:iconPrefix+"caret-bottom",INPUT_DATE:iconPrefix+"calendar",INPUT_SEARCH:iconPrefix+"search",MODAL_ZOOM_IN:iconPrefix+"square",MODAL_ZOOM_OUT:iconPrefix+"zoomout",MODAL_CLOSE:iconPrefix+"close",MODAL_INFO:iconPrefix+"info",MODAL_SUCCESS:iconPrefix+"success",MODAL_WARNING:iconPrefix+"warning",MODAL_ERROR:iconPrefix+"error",MODAL_QUESTION:iconPrefix+"question",MODAL_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_REFRESH:iconPrefix+"refresh",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_ZOOM_IN:iconPrefix+"zoomin",TOOLBAR_TOOLS_ZOOM_OUT:iconPrefix+"zoomout",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"menu",FORM_PREFIX:iconPrefix+"question",FORM_SUFFIX:iconPrefix+"question",FORM_FOLDING:iconPrefix+"arrow-top rotate180",FORM_UNFOLDING:iconPrefix+"arrow-top"},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,message:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},tooltip:{trigger:"hover",theme:"dark",leaveDelay:300},pager:{},form:{validConfig:{showMessage:!0,autoPos:!0},titleAsterisk:!0},input:{minDate:new Date(1900,0,1),maxDate:new Date(2100,0,1),startDay:1,selectDay:1,digits:2,controls:!0},textarea:{},select:{multiCharOverflow:8},toolbar:{},button:{},radio:{},checkbox:{},switch:{},modal:{top:15,showHeader:!0,minWidth:340,minHeight:140,lockView:!0,mask:!0,duration:3e3,marginSize:0,dblclickZoom:!0,showTitleOverflow:!0,animat:!0,showClose:!0,draggable:!0,storageKey:"VXE_MODAL_POSITION"},list:{scrollY:{enabled:!0,gt:100}},i18n:function(e){return e}};exports.default=_default;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var iconPrefix="vxe-icon--",_default={size:null,zIndex:999,version:0,emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,radioConfig:{strict:!0},checkboxConfig:{strict:!0},validConfig:{showMessage:!0,message:"default"},sortConfig:{showIcon:!0},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",children:"children",hasChild:"hasChild",mapChildren:"_X_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0},importConfig:{modes:["insert","covering"]},exportConfig:{modes:["current","selected"]},printConfig:{modes:["current","selected"]},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{selectCellByHeader:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{enabled:!0,gt:60},scrollY:{enabled:!0,gt:100}},export:{types:{}},icon:{TABLE_SORT_ASC:iconPrefix+"caret-top",TABLE_SORT_DESC:iconPrefix+"caret-bottom",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit-outline",TABLE_HELP:iconPrefix+"question",TABLE_TREE_LOADED:iconPrefix+"refresh roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"refresh roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",BUTTON_DROPDOWN:iconPrefix+"arrow-bottom",BUTTON_LOADING:iconPrefix+"refresh roll",SELECT_LOADED:iconPrefix+"refresh roll",SELECT_OPEN:iconPrefix+"caret-bottom rotate180",SELECT_CLOSE:iconPrefix+"caret-bottom",PAGER_JUMP_PREV:iconPrefix+"d-arrow-left",PAGER_JUMP_NEXT:iconPrefix+"d-arrow-right",PAGER_PREV_PAGE:iconPrefix+"arrow-left",PAGER_NEXT_PAGE:iconPrefix+"arrow-right",PAGER_JUMP_MORE:iconPrefix+"more",INPUT_CLEAR:iconPrefix+"close",INPUT_PWD:iconPrefix+"eye-slash",INPUT_SHOW_PWD:iconPrefix+"eye",INPUT_PREV_NUM:iconPrefix+"caret-top",INPUT_NEXT_NUM:iconPrefix+"caret-bottom",INPUT_DATE:iconPrefix+"calendar",INPUT_SEARCH:iconPrefix+"search",MODAL_ZOOM_IN:iconPrefix+"square",MODAL_ZOOM_OUT:iconPrefix+"zoomout",MODAL_CLOSE:iconPrefix+"close",MODAL_INFO:iconPrefix+"info",MODAL_SUCCESS:iconPrefix+"success",MODAL_WARNING:iconPrefix+"warning",MODAL_ERROR:iconPrefix+"error",MODAL_QUESTION:iconPrefix+"question",MODAL_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_REFRESH:iconPrefix+"refresh",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"refresh roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_ZOOM_IN:iconPrefix+"zoomin",TOOLBAR_TOOLS_ZOOM_OUT:iconPrefix+"zoomout",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"menu",FORM_PREFIX:iconPrefix+"question",FORM_SUFFIX:iconPrefix+"question",FORM_FOLDING:iconPrefix+"arrow-top rotate180",FORM_UNFOLDING:iconPrefix+"arrow-top"},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,message:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},tooltip:{trigger:"hover",theme:"dark",leaveDelay:300},pager:{},form:{validConfig:{showMessage:!0,autoPos:!0},titleAsterisk:!0},input:{minDate:new Date(1900,0,1),maxDate:new Date(2100,0,1),startDay:1,selectDay:1,digits:2,controls:!0},textarea:{},select:{multiCharOverflow:8},toolbar:{},button:{},radio:{strict:!0},radioButton:{strict:!0},radioGroup:{strict:!0},checkbox:{},switch:{},modal:{top:15,showHeader:!0,minWidth:340,minHeight:140,lockView:!0,mask:!0,duration:3e3,marginSize:0,dblclickZoom:!0,showTitleOverflow:!0,animat:!0,showClose:!0,draggable:!0,storageKey:"VXE_MODAL_POSITION"},list:{scrollY:{enabled:!0,gt:100}},i18n:function(e){return e}};exports.default=_default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vxe-table",
3
- "version": "3.4.11",
3
+ "version": "3.4.12-beta.0",
4
4
  "description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟列表、虚拟树、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、弹窗、自定义模板、渲染器、贼灵活的配置项、扩展接口等...",
5
5
  "scripts": {
6
6
  "serve": "vue-cli-service serve",
@@ -9,7 +9,8 @@ export default {
9
9
  title: [String, Number],
10
10
  content: [String, Number],
11
11
  disabled: Boolean,
12
- size: { type: String, default: () => GlobalConfig.radio.size || GlobalConfig.size }
12
+ strict: { type: Boolean, default: () => GlobalConfig.radioButton.strict },
13
+ size: { type: String, default: () => GlobalConfig.radioButton.size || GlobalConfig.size }
13
14
  },
14
15
  inject: {
15
16
  $xeradiogroup: {
@@ -23,6 +24,10 @@ export default {
23
24
  isDisabled () {
24
25
  const { $xeradiogroup } = this
25
26
  return this.disabled || ($xeradiogroup && $xeradiogroup.disabled)
27
+ },
28
+ isStrict () {
29
+ const { $xeradiogroup } = this
30
+ return $xeradiogroup ? $xeradiogroup.strict : this.strict
26
31
  }
27
32
  },
28
33
  render (h) {
@@ -49,7 +54,8 @@ export default {
49
54
  checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
50
55
  },
51
56
  on: {
52
- change: this.changeEvent
57
+ change: this.changeEvent,
58
+ click: this.clickEvent
53
59
  }
54
60
  }),
55
61
  h('span', {
@@ -58,15 +64,27 @@ export default {
58
64
  ])
59
65
  },
60
66
  methods: {
67
+ handleValue (label, evnt) {
68
+ const { $xeradiogroup } = this
69
+ const params = { label, $event: evnt }
70
+ if ($xeradiogroup) {
71
+ $xeradiogroup.handleChecked(params)
72
+ } else {
73
+ this.$emit('input', label)
74
+ this.$emit('change', params)
75
+ }
76
+ },
61
77
  changeEvent (evnt) {
62
- const { $xeradiogroup, isDisabled, label } = this
78
+ const { isDisabled } = this
63
79
  if (!isDisabled) {
64
- const params = { label, $event: evnt }
65
- if ($xeradiogroup) {
66
- $xeradiogroup.handleChecked(params)
67
- } else {
68
- this.$emit('input', label)
69
- this.$emit('change', params)
80
+ this.handleValue(this.label, evnt)
81
+ }
82
+ },
83
+ clickEvent (evnt) {
84
+ const { $xeradiogroup, isDisabled, isStrict } = this
85
+ if (!isDisabled && !isStrict) {
86
+ if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
87
+ this.handleValue(null, evnt)
70
88
  }
71
89
  }
72
90
  }
@@ -6,7 +6,8 @@ export default {
6
6
  props: {
7
7
  value: [String, Number, Boolean],
8
8
  disabled: Boolean,
9
- size: { type: String, default: () => GlobalConfig.radio.size || GlobalConfig.size }
9
+ strict: { type: Boolean, default: () => GlobalConfig.radioGroup.strict },
10
+ size: { type: String, default: () => GlobalConfig.radioGroup.size || GlobalConfig.size }
10
11
  },
11
12
  provide () {
12
13
  return {
@@ -12,6 +12,7 @@ export default {
12
12
  content: [String, Number],
13
13
  disabled: Boolean,
14
14
  name: String,
15
+ strict: { type: Boolean, default: () => GlobalConfig.radio.strict },
15
16
  size: { type: String, default: () => GlobalConfig.radio.size || GlobalConfig.size }
16
17
  },
17
18
  inject: {
@@ -23,6 +24,10 @@ export default {
23
24
  isDisabled () {
24
25
  const { $xeradiogroup } = this
25
26
  return this.disabled || ($xeradiogroup && $xeradiogroup.disabled)
27
+ },
28
+ isStrict () {
29
+ const { $xeradiogroup } = this
30
+ return $xeradiogroup ? $xeradiogroup.strict : this.strict
26
31
  }
27
32
  },
28
33
  render (h) {
@@ -49,17 +54,8 @@ export default {
49
54
  checked: $xeradiogroup ? $xeradiogroup.value === label : value === label
50
55
  },
51
56
  on: {
52
- change: evnt => {
53
- if (!isDisabled) {
54
- const params = { label, $event: evnt }
55
- if ($xeradiogroup) {
56
- $xeradiogroup.handleChecked(params)
57
- } else {
58
- this.$emit('input', label)
59
- this.$emit('change', params)
60
- }
61
- }
62
- }
57
+ change: this.changeEvent,
58
+ click: this.clickEvent
63
59
  }
64
60
  }),
65
61
  h('span', {
@@ -71,15 +67,27 @@ export default {
71
67
  ])
72
68
  },
73
69
  methods: {
70
+ handleValue (label, evnt) {
71
+ const { $xeradiogroup } = this
72
+ const params = { label, $event: evnt }
73
+ if ($xeradiogroup) {
74
+ $xeradiogroup.handleChecked(params)
75
+ } else {
76
+ this.$emit('input', label)
77
+ this.$emit('change', params)
78
+ }
79
+ },
74
80
  changeEvent (evnt) {
75
- const { $xeradiogroup, isDisabled, label } = this
81
+ const { isDisabled } = this
76
82
  if (!isDisabled) {
77
- const params = { label, $event: evnt }
78
- if ($xeradiogroup) {
79
- $xeradiogroup.handleChecked(params)
80
- } else {
81
- this.$emit('input', label)
82
- this.$emit('change', params)
83
+ this.handleValue(this.label, evnt)
84
+ }
85
+ },
86
+ clickEvent (evnt) {
87
+ const { $xeradiogroup, isDisabled, isStrict } = this
88
+ if (!isDisabled && !isStrict) {
89
+ if (this.label === ($xeradiogroup ? $xeradiogroup.value : this.value)) {
90
+ this.handleValue(null, evnt)
83
91
  }
84
92
  }
85
93
  }
@@ -292,7 +292,16 @@ export default {
292
292
  // transfer: false
293
293
  },
294
294
  radio: {
295
- // size: null
295
+ // size: null,
296
+ strict: true
297
+ },
298
+ radioButton: {
299
+ // size: null,
300
+ strict: true
301
+ },
302
+ radioGroup: {
303
+ // size: null,
304
+ strict: true
296
305
  },
297
306
  checkbox: {
298
307
  // size: null