@mdsfe/mds-ui 0.3.0-20 → 0.3.0-23

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.
Files changed (63) hide show
  1. package/dist/_util/iconfont/index.js +1 -1
  2. package/dist/datepicker.js +356 -138
  3. package/dist/font/iconfont.06c8a26.woff +0 -0
  4. package/dist/font/iconfont.c9840a2.woff2 +0 -0
  5. package/dist/font/{iconfont.bf5c999.ttf → iconfont.dffa89c.ttf} +0 -0
  6. package/dist/index.js +1 -1
  7. package/dist/mds-ui.min.css +1 -1
  8. package/dist/mds-ui.min.js +374 -158
  9. package/dist/style/affix.css +1 -1
  10. package/dist/style/alert.css +1 -1
  11. package/dist/style/anchor.css +1 -1
  12. package/dist/style/avatar.css +1 -1
  13. package/dist/style/badge.css +1 -1
  14. package/dist/style/bordershadow.css +1 -1
  15. package/dist/style/breadcrumb.css +1 -1
  16. package/dist/style/button.css +1 -1
  17. package/dist/style/card.css +1 -1
  18. package/dist/style/carousel.css +1 -1
  19. package/dist/style/checkbox.css +1 -1
  20. package/dist/style/col.css +1 -1
  21. package/dist/style/collapse.css +1 -1
  22. package/dist/style/color.css +1 -1
  23. package/dist/style/datepicker.css +8 -1
  24. package/dist/style/divider.css +1 -1
  25. package/dist/style/drawer.css +1 -1
  26. package/dist/style/dropdown.css +1 -1
  27. package/dist/style/empty.css +1 -1
  28. package/dist/style/font.css +1 -1
  29. package/dist/style/form.css +1 -1
  30. package/dist/style/icon.css +1 -1
  31. package/dist/style/input.css +1 -1
  32. package/dist/style/inputnumber.css +1 -1
  33. package/dist/style/layout.css +1 -1
  34. package/dist/style/list.css +1 -1
  35. package/dist/style/loading.css +1 -1
  36. package/dist/style/menu.css +1 -1
  37. package/dist/style/modal.css +1 -1
  38. package/dist/style/notification.css +1 -1
  39. package/dist/style/pagination.css +1 -1
  40. package/dist/style/popconfirm.css +1 -1
  41. package/dist/style/popover.css +1 -1
  42. package/dist/style/progress.css +1 -1
  43. package/dist/style/radio.css +1 -1
  44. package/dist/style/rate.css +1 -1
  45. package/dist/style/row.css +1 -1
  46. package/dist/style/select.css +1 -1
  47. package/dist/style/slider.css +1 -1
  48. package/dist/style/slottable.css +1 -1
  49. package/dist/style/steps.css +1 -1
  50. package/dist/style/switch.css +1 -1
  51. package/dist/style/table.css +1 -1
  52. package/dist/style/tabs.css +1 -1
  53. package/dist/style/tag.css +1 -1
  54. package/dist/style/text.css +1 -1
  55. package/dist/style/timeline.css +1 -1
  56. package/dist/style/timepicker.css +1 -1
  57. package/dist/style/tooltip.css +1 -1
  58. package/dist/style/tree.css +1 -1
  59. package/dist/style/typography.css +1 -1
  60. package/dist/style/upload.css +1 -1
  61. package/package.json +1 -1
  62. package/dist/font/iconfont.ba42e6f.woff +0 -0
  63. package/dist/font/iconfont.d8e6666.woff2 +0 -0
@@ -44093,12 +44093,12 @@ var datepicker_style_transition = __webpack_require__(393);
44093
44093
 
44094
44094
 
44095
44095
 
44096
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/picker.vue?vue&type=template&id=542e3f0e&
44097
- var pickervue_type_template_id_542e3f0e_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.ranged)?_c('mds-input',_vm._b({directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",class:_vm.wrapperClass,attrs:{"readonly":!_vm.editable || _vm.readonly || _vm.type === 'dates' || _vm.type === 'week',"disabled":_vm.pickerDisabled,"size":_vm.pickerSize,"name":_vm.name,"placeholder":_vm.placeholder,"value":_vm.displayValue,"validateEvent":false,"role":"picker"},on:{"focus":_vm.handleFocus,"input":function (value) { return _vm.userInput = value; },"change":_vm.handleChange},nativeOn:{"keydown":function($event){return _vm.handleKeydown($event)},"mouseenter":function($event){return _vm.handleMouseEnter($event)},"mouseleave":function($event){_vm.showClose = false}}},'mds-input',_vm.firstInputId,false),[(_vm.showCalendar)?_c('i',{staticClass:"mdsicon mdsicon-line-calendar",class:_vm.triggerClass,attrs:{"slot":"suffix"},on:{"click":_vm.handleFocus},slot:"suffix"}):_vm._e(),_vm._v(" "),(_vm.haveTrigger)?_c('i',{staticClass:"mdsicon",class:[_vm.showClose ? '' + _vm.clearIcon : '',(_vm.prefixCls + "-close-icon")],attrs:{"slot":"suffix"},on:{"click":_vm.handleClickIcon},slot:"suffix"}):_vm._e()]):_c('div',{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",class:_vm.wrapperRangeClass,on:{"click":_vm.handleRangeClick,"mouseenter":_vm.handleMouseEnter,"mouseleave":function($event){_vm.showClose = false},"keydown":_vm.handleKeydown}},[_c('input',_vm._b({class:(_vm.prefixCls + "-editor-range-input"),attrs:{"autocomplete":"off","placeholder":_vm.startPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[0]},domProps:{"value":_vm.displayValue && _vm.displayValue[0]},on:{"input":_vm.handleStartInput,"change":_vm.handleStartChange,"focus":_vm.handleFocus}},'input',_vm.firstInputId,false)),_vm._v(" "),_vm._t("range-separator",[_c('span',{staticClass:"mds-range-separator",style:({color: _vm.type==='datetimerangeflat'? '#303133' : ''})},[_vm._v(_vm._s(_vm.rangeSeparator))])]),_vm._v(" "),_c('input',_vm._b({class:(_vm.prefixCls + "-editor-range-input"),attrs:{"autocomplete":"off","placeholder":_vm.endPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[1]},domProps:{"value":_vm.displayValue && _vm.displayValue[1]},on:{"input":_vm.handleEndInput,"change":_vm.handleEndChange,"focus":_vm.handleFocus}},'input',_vm.secondInputId,false)),_vm._v(" "),(_vm.showCalendar)?_c('i',{class:[ 'mdsicon', ((this.prefixCls) + "-editor-range-icon-pos"), _vm.triggerClass]}):_vm._e(),_vm._v(" "),(_vm.haveTrigger)?_c('i',{staticClass:"mdsicon",class:[_vm.showClose ? '' + _vm.clearIcon : '', (_vm.prefixCls + "-close-icon " + (this.prefixCls) + "-editor-range-icon-pos")],on:{"click":_vm.handleClickIcon}}):_vm._e()],2)}
44098
- var pickervue_type_template_id_542e3f0e_staticRenderFns = []
44096
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/picker.vue?vue&type=template&id=12fefd94&
44097
+ var pickervue_type_template_id_12fefd94_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.ranged)?_c('mds-input',_vm._b({directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",class:_vm.wrapperClass,attrs:{"readonly":!_vm.editable || _vm.readonly || _vm.type === 'dates' || _vm.type === 'week',"disabled":_vm.pickerDisabled,"size":_vm.pickerSize,"name":_vm.name,"placeholder":_vm.placeholder,"value":_vm.displayValue,"validateEvent":false,"role":"picker"},on:{"focus":_vm.handleFocus,"input":function (value) { return _vm.userInput = value; },"change":_vm.handleChange},nativeOn:{"keydown":function($event){return _vm.handleKeydown($event)},"mouseenter":function($event){return _vm.handleMouseEnter($event)},"mouseleave":function($event){_vm.showClose = false}}},'mds-input',_vm.firstInputId,false),[(_vm.showCalendar)?_c('i',{staticClass:"mdsicon mdsicon-line-calendar",class:_vm.triggerClass,attrs:{"slot":"suffix"},on:{"click":_vm.handleFocus},slot:"suffix"}):_vm._e(),_vm._v(" "),(_vm.haveTrigger)?_c('i',{staticClass:"mdsicon",class:[_vm.showClose ? '' + _vm.clearIcon : '',(_vm.prefixCls + "-close-icon")],attrs:{"slot":"suffix"},on:{"click":_vm.handleClickIcon},slot:"suffix"}):_vm._e()]):_c('div',{directives:[{name:"clickoutside",rawName:"v-clickoutside",value:(_vm.handleClose),expression:"handleClose"}],ref:"reference",class:_vm.wrapperRangeClass,on:{"click":_vm.handleRangeClick,"mouseenter":_vm.handleMouseEnter,"mouseleave":function($event){_vm.showClose = false},"keydown":_vm.handleKeydown}},[_c('input',_vm._b({class:(_vm.prefixCls + "-editor-range-input"),attrs:{"autocomplete":"off","placeholder":_vm.startPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[0]},domProps:{"value":_vm.displayValue && _vm.displayValue[0]},on:{"input":_vm.handleStartInput,"change":_vm.handleStartChange,"focus":_vm.handleFocus}},'input',_vm.firstInputId,false)),_vm._v(" "),_vm._t("range-separator",[_c('span',{staticClass:"mds-range-separator",style:({color: _vm.type==='datetimerangeflat'? '#303133' : ''})},[_vm._v(_vm._s(_vm.rangeSeparator))])]),_vm._v(" "),_c('input',_vm._b({class:(_vm.prefixCls + "-editor-range-input"),attrs:{"autocomplete":"off","placeholder":_vm.endPlaceholder,"disabled":_vm.pickerDisabled,"readonly":!_vm.editable || _vm.readonly,"name":_vm.name && _vm.name[1]},domProps:{"value":_vm.displayValue && _vm.displayValue[1]},on:{"input":_vm.handleEndInput,"change":_vm.handleEndChange,"focus":_vm.handleFocus}},'input',_vm.secondInputId,false)),_vm._v(" "),(_vm.showCalendar)?_c('i',{class:[ 'mdsicon', ((this.prefixCls) + "-editor-range-icon-pos"), _vm.triggerClass]}):_vm._e(),_vm._v(" "),(_vm.haveTrigger)?_c('i',{staticClass:"mdsicon",class:[_vm.showClose ? '' + _vm.clearIcon : '', (_vm.prefixCls + "-close-icon " + (this.prefixCls) + "-editor-range-icon-pos")],on:{"click":_vm.handleClickIcon}}):_vm._e()],2)}
44098
+ var pickervue_type_template_id_12fefd94_staticRenderFns = []
44099
44099
 
44100
44100
 
44101
- // CONCATENATED MODULE: ./components/datepicker/picker/picker.vue?vue&type=template&id=542e3f0e&
44101
+ // CONCATENATED MODULE: ./components/datepicker/picker/picker.vue?vue&type=template&id=12fefd94&
44102
44102
 
44103
44103
  // EXTERNAL MODULE: ./components/_util/date.js
44104
44104
  var _util_date = __webpack_require__(41);
@@ -44828,6 +44828,10 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
44828
44828
  pickerType: {
44829
44829
  type: String,
44830
44830
  default: 'date'
44831
+ },
44832
+ appendToBody: {
44833
+ type: Boolean,
44834
+ default: true // 默认插入到 body
44831
44835
  }
44832
44836
  },
44833
44837
 
@@ -45225,31 +45229,46 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45225
45229
  }
45226
45230
  this.$emit('focus', this);
45227
45231
  },
45228
- hidePicker: function hidePicker() {
45229
- if (this.picker) {
45230
- this.picker.resetView && this.picker.resetView();
45231
- this.pickerVisible = this.picker.visible = false;
45232
- this.destroyPopper();
45233
- }
45234
- },
45232
+
45233
+
45234
+ // 修复 showPicker 方法
45235
45235
  showPicker: function showPicker() {
45236
45236
  var _this2 = this;
45237
45237
 
45238
45238
  if (this.$isServer) return;
45239
- if (!this.picker) {
45239
+
45240
+ // 如果面板已存在,先重置状态
45241
+ if (this.picker) {
45242
+ this.picker.resetView && this.picker.resetView();
45243
+ this.picker.visible = false;
45244
+ } else {
45245
+ // 面板不存在时才创建
45240
45246
  this.mountPicker();
45241
45247
  }
45248
+
45249
+ // 设置面板可见
45242
45250
  this.pickerVisible = this.picker.visible = true;
45243
45251
 
45252
+ // 确保面板在正确的位置
45253
+ this.ensurePanelPosition();
45254
+
45255
+ // 更新 Popper 定位
45244
45256
  this.updatePopper();
45245
45257
 
45258
+ // 重置面板状态
45246
45259
  this.picker.value = this.parsedValue;
45247
45260
  this.picker.resetView && this.picker.resetView();
45248
45261
 
45249
45262
  this.$nextTick(function () {
45250
45263
  _this2.picker.adjustSpinners && _this2.picker.adjustSpinners();
45264
+ // 再次确保位置正确并更新定位
45265
+ _this2.ensurePanelPosition();
45266
+ _this2.updatePopper();
45251
45267
  });
45252
45268
  },
45269
+
45270
+
45271
+ // 修复 mountPicker 方法
45253
45272
  mountPicker: function mountPicker() {
45254
45273
  var _this3 = this;
45255
45274
 
@@ -45257,16 +45276,25 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45257
45276
  this.picker = new Panel({
45258
45277
  propsData: {
45259
45278
  pickerType: this.type,
45260
- referenceElm: this.reference, // 关键:传递 referenceElm
45279
+ referenceElm: this.reference,
45261
45280
  popperClass: this.popperClass,
45262
- appendToBody: true,
45263
- placement: 'bottom-start' // 关键
45281
+ appendToBody: this.appendToBody, // 使用组件的 appendToBody 配置
45282
+ placement: this.placement
45264
45283
  }
45265
45284
  }).$mount();
45266
- // 只对非季度类型 appendChild
45285
+
45286
+ // 根据配置决定插入位置
45267
45287
  if (this.type !== 'quarter') {
45268
- this.$el.appendChild(this.picker.$el);
45288
+ if (this.appendToBody !== false) {
45289
+ // 插入到 body 下
45290
+ document.body.appendChild(this.picker.$el);
45291
+ } else {
45292
+ // 插入到当前元素下
45293
+ this.$el.appendChild(this.picker.$el);
45294
+ }
45269
45295
  }
45296
+
45297
+ // 设置面板属性
45270
45298
  this.picker.defaultValue = this.defaultValue;
45271
45299
  this.picker.defaultTime = this.defaultTime;
45272
45300
  this.picker.popperClass = this.popperClass;
@@ -45278,58 +45306,41 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45278
45306
  this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;
45279
45307
  this.picker.listenScroll = this.listenScroll;
45280
45308
  this.picker.step = this.step;
45309
+
45310
+ // 监听格式变化
45281
45311
  this.$watch('format', function (format) {
45282
45312
  _this3.picker.format = format;
45283
45313
  });
45284
45314
 
45285
- var updateOptions = function updateOptions() {
45286
- var options = _this3.pickerOptions;
45287
-
45288
- if (options && options.selectableRange) {
45289
- var ranges = options.selectableRange;
45290
- var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;
45291
- var format = DEFAULT_FORMATS.timerange;
45292
-
45293
- ranges = Array.isArray(ranges) ? ranges : [ranges];
45294
- _this3.picker.selectableRange = ranges.map(function (range) {
45295
- return parser(range, format, _this3.rangeSeparator);
45296
- });
45297
- }
45298
-
45299
- for (var option in options) {
45300
- if (options.hasOwnProperty(option) &&
45301
- // 忽略 time-picker 的该配置项
45302
- option !== 'selectableRange') {
45303
- _this3.picker[option] = options[option];
45304
- }
45305
- }
45306
-
45307
- // main format must prevail over undocumented pickerOptions.format
45308
- if (_this3.format) {
45309
- _this3.picker.format = _this3.format;
45310
- }
45311
- };
45312
- updateOptions();
45313
- this.unwatchPickerOptions = this.$watch('pickerOptions', function () {
45314
- return updateOptions();
45315
- }, { deep: true });
45316
- // this.$el.appendChild(this.picker.$el)
45317
- this.picker.resetView && this.picker.resetView();
45315
+ // 更新选项
45316
+ this.updatePickerOptions();
45318
45317
 
45318
+ // 设置事件监听
45319
45319
  this.picker.$on('dodestroy', this.doDestroy);
45320
+
45321
+ // 修复 pick 事件处理
45320
45322
  this.picker.$on('pick', function () {
45321
45323
  var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
45322
45324
  var visible = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
45323
45325
 
45324
45326
  _this3.userInput = null;
45325
- _this3.pickerVisible = _this3.picker.visible = visible;
45327
+
45328
+ if (visible === false) {
45329
+ // 隐藏面板但不销毁
45330
+ _this3.pickerVisible = false;
45331
+ _this3.picker.visible = false;
45332
+ _this3.hidePicker();
45333
+ } else {
45334
+ // 保持面板可见
45335
+ _this3.pickerVisible = true;
45336
+ _this3.picker.visible = true;
45337
+ }
45338
+
45326
45339
  _this3.emitInput(date);
45327
45340
  _this3.picker.resetView && _this3.picker.resetView();
45328
- if (!visible) {
45329
- _this3.unmountPicker();
45330
- }
45331
45341
  });
45332
45342
 
45343
+ // 其他事件监听保持不变
45333
45344
  this.picker.$on('select-range', function (start, end, pos) {
45334
45345
  if (_this3.refInput.length === 0) return;
45335
45346
  if (!pos || pos === 'min') {
@@ -45341,14 +45352,99 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45341
45352
  }
45342
45353
  });
45343
45354
  },
45355
+
45356
+
45357
+ // 新增方法:更新面板选项
45358
+ updatePickerOptions: function updatePickerOptions() {
45359
+ var _this4 = this;
45360
+
45361
+ var options = this.pickerOptions;
45362
+
45363
+ if (options && options.selectableRange) {
45364
+ var ranges = options.selectableRange;
45365
+ var parser = TYPE_VALUE_RESOLVER_MAP.datetimerange.parser;
45366
+ var format = DEFAULT_FORMATS.timerange;
45367
+
45368
+ ranges = Array.isArray(ranges) ? ranges : [ranges];
45369
+ this.picker.selectableRange = ranges.map(function (range) {
45370
+ return parser(range, format, _this4.rangeSeparator);
45371
+ });
45372
+ }
45373
+
45374
+ for (var option in options) {
45375
+ if (options.hasOwnProperty(option) && option !== 'selectableRange') {
45376
+ this.picker[option] = options[option];
45377
+ }
45378
+ }
45379
+
45380
+ // 主格式优先
45381
+ if (this.format) {
45382
+ this.picker.format = this.format;
45383
+ }
45384
+ },
45385
+
45386
+
45387
+ // 修复 hidePicker 方法
45388
+ hidePicker: function hidePicker() {
45389
+ if (this.picker) {
45390
+ this.picker.resetView && this.picker.resetView();
45391
+ this.pickerVisible = this.picker.visible = false;
45392
+
45393
+ // 不要立即销毁面板,只是隐藏
45394
+ // this.destroyPopper()
45395
+
45396
+ // 确保面板位置正确
45397
+ this.ensurePanelPosition();
45398
+ }
45399
+ },
45400
+
45401
+
45402
+ // 确保面板位置正确的方法
45403
+ ensurePanelPosition: function ensurePanelPosition() {
45404
+ var _this5 = this;
45405
+
45406
+ if (!this.picker || !this.picker.$el) return;
45407
+
45408
+ var panelEl = this.picker.$el;
45409
+ var currentParent = panelEl.parentNode;
45410
+
45411
+ // 检查面板是否在正确的位置
45412
+ if (this.appendToBody !== false && currentParent !== document.body) {
45413
+ // 面板不在 body 下,需要移动到 body
45414
+ if (currentParent) {
45415
+ currentParent.removeChild(panelEl);
45416
+ }
45417
+ document.body.appendChild(panelEl);
45418
+
45419
+ // 重新计算定位
45420
+ this.$nextTick(function () {
45421
+ _this5.updatePopper();
45422
+ });
45423
+ } else if (this.appendToBody === false && currentParent !== this.$el) {
45424
+ // 面板不在当前元素下,需要移动
45425
+ if (currentParent) {
45426
+ currentParent.removeChild(panelEl);
45427
+ }
45428
+ this.$el.appendChild(panelEl);
45429
+ }
45430
+ },
45431
+
45432
+
45433
+ // 修复 unmountPicker 方法
45344
45434
  unmountPicker: function unmountPicker() {
45345
45435
  if (this.picker) {
45436
+ // 确保面板从正确的父元素中移除
45437
+ if (this.picker.$el && this.picker.$el.parentNode) {
45438
+ this.picker.$el.parentNode.removeChild(this.picker.$el);
45439
+ }
45440
+
45346
45441
  this.picker.$destroy();
45347
45442
  this.picker.$off();
45443
+
45348
45444
  if (typeof this.unwatchPickerOptions === 'function') {
45349
45445
  this.unwatchPickerOptions();
45350
45446
  }
45351
- if (this.picker.$el.parentNode) this.picker.$el.parentNode.removeChild(this.picker.$el);
45447
+
45352
45448
  this.picker = null;
45353
45449
  }
45354
45450
  },
@@ -45397,6 +45493,11 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45397
45493
  var selectedMonth = this.value.getMonth();
45398
45494
  return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
45399
45495
  }
45496
+ },
45497
+
45498
+ // 生命周期钩子
45499
+ beforeDestroy: function beforeDestroy() {
45500
+ this.unmountPicker();
45400
45501
  }
45401
45502
  });
45402
45503
  // CONCATENATED MODULE: ./components/datepicker/picker/picker.vue?vue&type=script&lang=js&
@@ -45411,8 +45512,8 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
45411
45512
 
45412
45513
  var picker_component = normalizeComponent(
45413
45514
  picker_pickervue_type_script_lang_js_,
45414
- pickervue_type_template_id_542e3f0e_render,
45415
- pickervue_type_template_id_542e3f0e_staticRenderFns,
45515
+ pickervue_type_template_id_12fefd94_render,
45516
+ pickervue_type_template_id_12fefd94_staticRenderFns,
45416
45517
  false,
45417
45518
  null,
45418
45519
  null,
@@ -46484,18 +46585,18 @@ var month_table_component = normalizeComponent(
46484
46585
  )
46485
46586
 
46486
46587
  /* harmony default export */ var month_table = (month_table_component.exports);
46487
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/base/date-table.vue?vue&type=template&id=7e00b766&
46488
- var date_tablevue_type_template_id_7e00b766_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{class:(_vm.prefixCls + "-picker-panel-content-thead")},[_c('table',{class:(_vm.prefixCls + "-table-header"),attrs:{"cellspacing":"0","cellpadding":"0"}},[_c('tr',[(_vm.showWeekNumber)?_c('th',[_vm._v(_vm._s(_vm.t("mds.datepicker.week")))]):_vm._e(),_vm._v(" "),_vm._l((_vm.WEEKS),function(week,key){return _c('th',{key:key},[_vm._v("\n "+_vm._s(_vm.t("mds.datepicker.weeks." + week))+"\n ")])})],2)])]),_vm._v(" "),_c('div',{class:(_vm.prefixCls + "-picker-panel-content-line")}),_vm._v(" "),_c('div',{class:(_vm.prefixCls + "-picker-panel-content-tbody")},[_c('table',{class:[
46588
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/base/date-table.vue?vue&type=template&id=1c74037d&
46589
+ var date_tablevue_type_template_id_1c74037d_render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{class:(_vm.prefixCls + "-picker-panel-content-thead")},[_c('table',{class:(_vm.prefixCls + "-table-header"),attrs:{"cellspacing":"0","cellpadding":"0"}},[_c('tr',[(_vm.showWeekNumber)?_c('th',[_vm._v(_vm._s(_vm.t("mds.datepicker.week")))]):_vm._e(),_vm._v(" "),_vm._l((_vm.WEEKS),function(week,key){return _c('th',{key:key},[_vm._v("\n "+_vm._s(_vm.t("mds.datepicker.weeks." + week))+"\n ")])})],2)])]),_vm._v(" "),_c('div',{class:(_vm.prefixCls + "-picker-panel-content-line")}),_vm._v(" "),_c('div',{class:(_vm.prefixCls + "-picker-panel-content-tbody")},[_c('table',{class:[
46489
46590
  (_vm.prefixCls + "-table"),
46490
46591
  { 'is-week-mode': _vm.selectionMode === 'week' }
46491
46592
  ],attrs:{"cellspacing":"0","cellpadding":"0"},on:{"click":_vm.handleClick,"mousemove":_vm.handleMouseMove}},[_c('tbody',_vm._l((_vm.rows),function(row,key){return _c('tr',{key:key,class:[
46492
46593
  (_vm.prefixCls + "-table-row"),
46493
46594
  { current: _vm.isWeekActive(row[1]) }
46494
46595
  ]},_vm._l((row),function(cell,key){return _c('td',{key:key,class:_vm.getCellClasses(cell)},[_c('div',[_c('span',[_vm._v(_vm._s(cell.text))])])])}),0)}),0)])])])}
46495
- var date_tablevue_type_template_id_7e00b766_staticRenderFns = []
46596
+ var date_tablevue_type_template_id_1c74037d_staticRenderFns = []
46496
46597
 
46497
46598
 
46498
- // CONCATENATED MODULE: ./components/datepicker/base/date-table.vue?vue&type=template&id=7e00b766&
46599
+ // CONCATENATED MODULE: ./components/datepicker/base/date-table.vue?vue&type=template&id=1c74037d&
46499
46600
 
46500
46601
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib?cacheDirectory=true!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/base/date-table.vue?vue&type=script&lang=js&
46501
46602
 
@@ -46568,7 +46669,8 @@ var date_tablevue_type_script_lang_js_getDateTimestamp = function getDateTimesta
46568
46669
  // return a new array if modification occurs
46569
46670
  // return the original array otherwise
46570
46671
  var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray(arr, pred) {
46571
- var idx = typeof pred === 'function' ? arrayFindIndex(arr, pred) : arr.indexOf(pred);
46672
+ var idx = typeof pred === 'function' ? arr.findIndex(pred) // 使用原生 findIndex 方法
46673
+ : arr.indexOf(pred);
46572
46674
  return idx >= 0 ? [].concat(toConsumableArray_default()(arr.slice(0, idx)), toConsumableArray_default()(arr.slice(idx + 1))) : arr;
46573
46675
  };
46574
46676
 
@@ -46647,27 +46749,29 @@ var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray
46647
46749
  rows: function rows() {
46648
46750
  var _this = this;
46649
46751
 
46650
- // TODO: refactory rows / getCellClasses
46752
+ // 确保每次计算都从干净的状态开始
46651
46753
  var date = new Date(this.year, this.month, 1);
46652
- var day = getFirstDayOfMonth(date); // day of first day
46754
+ var day = getFirstDayOfMonth(date);
46653
46755
  var dateCountOfMonth = getDayCountOfMonth(date.getFullYear(), date.getMonth());
46654
46756
  var dateCountOfLastMonth = getDayCountOfMonth(date.getFullYear(), date.getMonth() === 0 ? 11 : date.getMonth() - 1);
46655
46757
 
46656
46758
  day = day === 0 ? 7 : day;
46657
-
46658
46759
  var offset = this.offsetDay;
46659
46760
  var rows = this.tableRows;
46660
46761
  var count = 1;
46661
-
46662
46762
  var startDate = this.startDate;
46663
46763
  var disabledDate = this.disabledDate;
46664
46764
  var cellClassName = this.cellClassName;
46765
+
46766
+ // 关键修复:确保 selectedDate 是当前有效的选择状态
46665
46767
  var selectedDate = this.selectionMode === 'dates' ? coerceTruthyValueToArray(this.value) : [];
46768
+
46666
46769
  var now = date_tablevue_type_script_lang_js_getDateTimestamp(new Date());
46667
46770
 
46668
46771
  for (var i = 0; i < 6; i++) {
46669
46772
  var row = rows[i];
46670
46773
 
46774
+ // 重置行状态
46671
46775
  if (this.showWeekNumber) {
46672
46776
  if (!row[0]) {
46673
46777
  row[0] = {
@@ -46679,33 +46783,51 @@ var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray
46679
46783
 
46680
46784
  var _loop = function _loop(j) {
46681
46785
  var cell = row[_this.showWeekNumber ? j + 1 : j];
46682
- if (!cell) {
46683
- cell = {
46684
- row: i,
46685
- column: j,
46686
- type: 'normal',
46687
- inRange: false,
46688
- start: false,
46689
- end: false
46690
- };
46691
- }
46692
46786
 
46693
- cell.type = 'normal';
46787
+ // 关键修复:每次都创建新的 cell 对象,避免状态污染
46788
+ cell = {
46789
+ row: i,
46790
+ column: j,
46791
+ type: 'normal',
46792
+ inRange: false,
46793
+ start: false,
46794
+ end: false,
46795
+ disabled: false,
46796
+ selected: false,
46797
+ customClass: null
46798
+ };
46694
46799
 
46695
46800
  var index = i * 7 + j;
46696
46801
  var time = nextDate(startDate, index - offset).getTime();
46697
- cell.inRange = time >= date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate) && time <= date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);
46698
- cell.start = _this.minDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate);
46699
- cell.end = _this.maxDate && time === date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);
46700
- var isToday = time === now;
46802
+ var cellDate = new Date(time);
46803
+
46804
+ // 正确计算范围状态
46805
+ if (_this.minDate && _this.maxDate) {
46806
+ var minTime = date_tablevue_type_script_lang_js_getDateTimestamp(_this.minDate);
46807
+ var maxTime = date_tablevue_type_script_lang_js_getDateTimestamp(_this.maxDate);
46808
+ cell.inRange = time >= minTime && time <= maxTime;
46809
+ cell.start = time === minTime;
46810
+ cell.end = time === maxTime;
46811
+ }
46812
+
46813
+ // 正确计算选中状态
46814
+ if (_this.selectionMode === 'dates') {
46815
+ cell.selected = selectedDate.some(function (date) {
46816
+ return date && date.getTime() === cellDate.getTime();
46817
+ });
46818
+ } else if (_this.selectionMode === 'day' && _this.value) {
46819
+ cell.selected = _this.value.getTime() === cellDate.getTime();
46820
+ }
46701
46821
 
46822
+ // 其他状态计算...
46823
+ var isToday = time === now;
46702
46824
  if (isToday) {
46703
46825
  cell.type = 'today';
46704
46826
  }
46705
46827
 
46828
+ // 日期文本计算...
46706
46829
  if (i >= 0 && i <= 1) {
46707
46830
  var numberOfDaysFromPreviousMonth = day + offset < 0 ? 7 + day + offset : day + offset;
46708
-
46709
46831
  if (j + i * 7 >= numberOfDaysFromPreviousMonth) {
46710
46832
  cell.text = count++;
46711
46833
  } else {
@@ -46721,29 +46843,19 @@ var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray
46721
46843
  }
46722
46844
  }
46723
46845
 
46724
- var cellDate = new Date(time);
46846
+ // 禁用状态
46725
46847
  cell.disabled = typeof disabledDate === 'function' && disabledDate(cellDate);
46726
- cell.selected = arrayFind(selectedDate, function (date) {
46727
- return (date && date.getTime()) === (cellDate && cellDate.getTime());
46728
- });
46848
+
46849
+ // 自定义类名
46729
46850
  cell.customClass = typeof cellClassName === 'function' && cellClassName(cellDate);
46851
+
46852
+ // 更新行数据
46730
46853
  _this.$set(row, _this.showWeekNumber ? j + 1 : j, cell);
46731
46854
  };
46732
46855
 
46733
46856
  for (var j = 0; j < 7; j++) {
46734
46857
  _loop(j);
46735
46858
  }
46736
-
46737
- if (this.selectionMode === 'week') {
46738
- var start = this.showWeekNumber ? 1 : 0;
46739
- var end = this.showWeekNumber ? 7 : 6;
46740
- var isWeekActive = this.isWeekActive(row[start + 1]);
46741
-
46742
- row[start].inRange = isWeekActive;
46743
- row[start].start = isWeekActive;
46744
- row[end].inRange = isWeekActive;
46745
- row[end].end = isWeekActive;
46746
- }
46747
46859
  }
46748
46860
 
46749
46861
  return rows;
@@ -46875,11 +46987,11 @@ var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray
46875
46987
 
46876
46988
  var _cell = row[j];
46877
46989
  var index = i * 7 + j + (this.showWeekNumber ? -1 : 0);
46878
- var time = nextDate(startDate, index - this.offsetDay).getTime();
46990
+ var _time = nextDate(startDate, index - this.offsetDay).getTime();
46879
46991
 
46880
- _cell.inRange = minDate && time >= minDate && time <= maxDate;
46881
- _cell.start = minDate && time === minDate;
46882
- _cell.end = maxDate && time === maxDate;
46992
+ _cell.inRange = minDate && _time >= minDate && _time <= maxDate;
46993
+ _cell.start = minDate && _time === minDate;
46994
+ _cell.end = maxDate && _time === maxDate;
46883
46995
  }
46884
46996
  }
46885
46997
  },
@@ -46979,8 +47091,8 @@ var date_tablevue_type_script_lang_js_removeFromArray = function removeFromArray
46979
47091
 
46980
47092
  var date_table_component = normalizeComponent(
46981
47093
  base_date_tablevue_type_script_lang_js_,
46982
- date_tablevue_type_template_id_7e00b766_render,
46983
- date_tablevue_type_template_id_7e00b766_staticRenderFns,
47094
+ date_tablevue_type_template_id_1c74037d_render,
47095
+ date_tablevue_type_template_id_1c74037d_staticRenderFns,
46984
47096
  false,
46985
47097
  null,
46986
47098
  null,
@@ -47840,8 +47952,8 @@ var date_component = normalizeComponent(
47840
47952
  )
47841
47953
 
47842
47954
  /* harmony default export */ var picker_date = (date_component.exports);
47843
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/range/date-range.vue?vue&type=template&id=32308f66&
47844
- var date_rangevue_type_template_id_32308f66_render = function () {
47955
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/range/date-range.vue?vue&type=template&id=535e73c9&
47956
+ var date_rangevue_type_template_id_535e73c9_render = function () {
47845
47957
  var _obj, _obj$1;
47846
47958
  var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{"name":"mds-date-zoom-in-top"},on:{"after-leave":function($event){return _vm.$emit('dodestroy')}}},[_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.visible),expression:"visible"}],class:_vm.wrapperClass},[_c('div',{class:((this.prefixCls) + "-picker-panel-wrapper")},[_c('div',{class:((this.prefixCls) + "-picker-panel-body")},[(_vm.isFlat)?_c('date-time-selecter',{attrs:{"maxDate":_vm.maxDate,"minDate":_vm.minDate,"format":_vm.format,"step":_vm.step,"visible":_vm.visible},on:{"pickMin":_vm.handleMinTimePick,"pickMax":_vm.handleMaxTimePick}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"is-left"},[(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[_c('i',{staticClass:"mdsicon mdsicon-line-caret-left-double",class:[
47847
47959
  (_vm.prefixCls + "-picker-panel-header-base-icon"),
@@ -47865,7 +47977,7 @@ var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transi
47865
47977
  (_vm.prefixCls + "-picker-panel-header-base-right"),
47866
47978
  (_vm.prefixCls + "-left-next-month"),
47867
47979
  { 'is-disabled': !_vm.enableMonthArrow }
47868
- ],attrs:{"aria-label":_vm.t("mds.datepicker.prevMonth")},on:{"click":_vm.leftNextMonth}}):_vm._e()]):_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[_c('span',{class:(_vm.prefixCls + "-picker-panel-header-label " + (this.prefixCls) + "-picker-timer-label")},[_vm._v(_vm._s(_vm.leftTimeLabel))])]),_vm._v(" "),(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-content")},[_c('date-table',{attrs:{"selection-mode":"range","date":_vm.leftDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{"changerange":_vm.handleChangeRange,"pick":_vm.handleRangePick}})],1):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.timePickerVisible),expression:"timePickerVisible"}],class:((this.prefixCls) + "-picker-panel-content")},[_c('time-picker',{ref:"minTimePicker",attrs:{"time-arrow-control":_vm.arrowControl,"visible":_vm.timePickerVisible,"step":_vm.step},on:{"pick":_vm.handleMinTimePick,"mounted":function($event){_vm.$refs.minTimePicker.format = _vm.timeFormat}}})],1)]),_vm._v(" "),_c('div',{staticClass:"is-right"},[(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[(_vm.unlinkPanels)?_c('i',{staticClass:"mdsicon mdsicon-line-caret-left-double",class:[
47980
+ ],attrs:{"aria-label":_vm.t("mds.datepicker.prevMonth")},on:{"click":_vm.leftNextMonth}}):_vm._e()]):_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[_c('span',{class:(_vm.prefixCls + "-picker-panel-header-label " + (this.prefixCls) + "-picker-timer-label")},[_vm._v(_vm._s(_vm.leftTimeLabel))])]),_vm._v(" "),(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-content")},[_c('date-table',{ref:"leftDateTable",attrs:{"selection-mode":"range","date":_vm.leftDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{"changerange":_vm.handleChangeRange,"pick":_vm.handleRangePick}})],1):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.timePickerVisible),expression:"timePickerVisible"}],class:((this.prefixCls) + "-picker-panel-content")},[_c('time-picker',{ref:"minTimePicker",attrs:{"time-arrow-control":_vm.arrowControl,"visible":_vm.timePickerVisible,"step":_vm.step},on:{"pick":_vm.handleMinTimePick,"mounted":function($event){_vm.$refs.minTimePicker.format = _vm.timeFormat}}})],1)]),_vm._v(" "),_c('div',{staticClass:"is-right"},[(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[(_vm.unlinkPanels)?_c('i',{staticClass:"mdsicon mdsicon-line-caret-left-double",class:[
47869
47981
  (_vm.prefixCls + "-picker-panel-header-base-icon"),
47870
47982
  (_vm.prefixCls + "-picker-panel-header-base-left"),
47871
47983
  (_vm.prefixCls + "-other-icon"),
@@ -47887,11 +47999,11 @@ var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transi
47887
47999
  (_vm.prefixCls + "-right-next-month"),
47888
48000
  (_vm.prefixCls + "-other-icon"),
47889
48001
  (_vm.prefixCls + "-picker-panel-header-base-right")
47890
- ],attrs:{"aria-label":_vm.t("mds.datepicker.prevMonth")},on:{"click":_vm.rightNextMonth}})]):_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[_c('span',{class:(_vm.prefixCls + "-picker-panel-header-label " + (this.prefixCls) + "-picker-timer-label")},[_vm._v(_vm._s(_vm.rightTimeLabel))])]),_vm._v(" "),(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-content")},[_c('date-table',{attrs:{"selection-mode":"range","date":_vm.rightDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{"changerange":_vm.handleChangeRange,"pick":_vm.handleRangePick}})],1):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.timePickerVisible),expression:"timePickerVisible"}],class:((this.prefixCls) + "-picker-panel-content")},[_c('time-picker',{ref:"maxTimePicker",attrs:{"time-arrow-control":_vm.arrowControl,"visible":_vm.timePickerVisible,"step":_vm.step},on:{"pick":_vm.handleMaxTimePick,"mounted":function($event){_vm.$refs.maxTimePicker.format = _vm.timeFormat}}})],1)])],1)]),_vm._v(" "),(_vm.showTime)?_c('div',{class:(_vm.prefixCls + "-picker-panel-footer")},[_c('mds-button',{class:( _obj = {}, _obj[(_vm.prefixCls + "-picker-panel-today-btn")] = true, _obj[(_vm.prefixCls + "-picker-panel-flat-clear")] = _vm.pickerType === 'datetimerangeflat', _obj ),attrs:{"type":"normal","size":"small"},on:{"click":_vm.handleClear}},[_vm._v("\n "+_vm._s(_vm.t('mds.datepicker.clear'))+"\n ")]),_vm._v(" "),(!_vm.isFlat)?_c('mds-button',{attrs:{"type":"normal","size":"small","disabled":!(this.maxDate && this.minDate)},on:{"click":_vm.selectTime}},[_vm._v("\n "+_vm._s(_vm.timePickerVisible ? '选择日期' : '选择时间')+"\n ")]):_vm._e(),_vm._v(" "),_c('mds-button',{class:( _obj$1 = {}, _obj$1[(_vm.prefixCls + "-picker-panel-time-picker")] = true, _obj$1[(_vm.prefixCls + "-picker-panel-flat-confirm")] = _vm.pickerType === 'datetimerangeflat', _obj$1[(_vm.prefixCls + "-picker-panel-sure-btn")] = true, _obj$1 ),attrs:{"plain":"","size":"small","type":"primary","ghost":"","disabled":_vm.btnDisabled},on:{"click":function($event){return _vm.handleConfirm(false)}}},[_vm._v("\n "+_vm._s(_vm.t('mds.datepicker.confirm'))+"\n ")])],1):_vm._e()])])}
47891
- var date_rangevue_type_template_id_32308f66_staticRenderFns = []
48002
+ ],attrs:{"aria-label":_vm.t("mds.datepicker.prevMonth")},on:{"click":_vm.rightNextMonth}})]):_c('div',{class:((this.prefixCls) + "-picker-panel-header")},[_c('span',{class:(_vm.prefixCls + "-picker-panel-header-label " + (this.prefixCls) + "-picker-timer-label")},[_vm._v(_vm._s(_vm.rightTimeLabel))])]),_vm._v(" "),(!_vm.timePickerVisible)?_c('div',{class:((this.prefixCls) + "-picker-panel-content")},[_c('date-table',{ref:"rightDateTable",attrs:{"selection-mode":"range","date":_vm.rightDate,"default-value":_vm.defaultValue,"min-date":_vm.minDate,"max-date":_vm.maxDate,"range-state":_vm.rangeState,"disabled-date":_vm.disabledDate,"cell-class-name":_vm.cellClassName,"first-day-of-week":_vm.firstDayOfWeek},on:{"changerange":_vm.handleChangeRange,"pick":_vm.handleRangePick}})],1):_vm._e(),_vm._v(" "),_c('div',{directives:[{name:"show",rawName:"v-show",value:(_vm.timePickerVisible),expression:"timePickerVisible"}],class:((this.prefixCls) + "-picker-panel-content")},[_c('time-picker',{ref:"maxTimePicker",attrs:{"time-arrow-control":_vm.arrowControl,"visible":_vm.timePickerVisible,"step":_vm.step},on:{"pick":_vm.handleMaxTimePick,"mounted":function($event){_vm.$refs.maxTimePicker.format = _vm.timeFormat}}})],1)])],1)]),_vm._v(" "),(_vm.showTime)?_c('div',{class:(_vm.prefixCls + "-picker-panel-footer")},[_c('mds-button',{class:( _obj = {}, _obj[(_vm.prefixCls + "-picker-panel-today-btn")] = true, _obj[(_vm.prefixCls + "-picker-panel-flat-clear")] = _vm.pickerType === 'datetimerangeflat', _obj ),attrs:{"type":"normal","size":"small"},on:{"click":_vm.handleClear}},[_vm._v("\n "+_vm._s(_vm.t('mds.datepicker.clear'))+"\n ")]),_vm._v(" "),(!_vm.isFlat)?_c('mds-button',{attrs:{"type":"normal","size":"small","disabled":!(this.maxDate && this.minDate)},on:{"click":_vm.selectTime}},[_vm._v("\n "+_vm._s(_vm.timePickerVisible ? '选择日期' : '选择时间')+"\n ")]):_vm._e(),_vm._v(" "),_c('mds-button',{class:( _obj$1 = {}, _obj$1[(_vm.prefixCls + "-picker-panel-time-picker")] = true, _obj$1[(_vm.prefixCls + "-picker-panel-flat-confirm")] = _vm.pickerType === 'datetimerangeflat', _obj$1[(_vm.prefixCls + "-picker-panel-sure-btn")] = true, _obj$1 ),attrs:{"plain":"","size":"small","type":"primary","ghost":"","disabled":_vm.btnDisabled},on:{"click":function($event){return _vm.handleConfirm(false)}}},[_vm._v("\n "+_vm._s(_vm.t('mds.datepicker.confirm'))+"\n ")])],1):_vm._e()])])}
48003
+ var date_rangevue_type_template_id_535e73c9_staticRenderFns = []
47892
48004
 
47893
48005
 
47894
- // CONCATENATED MODULE: ./components/datepicker/range/date-range.vue?vue&type=template&id=32308f66&
48006
+ // CONCATENATED MODULE: ./components/datepicker/range/date-range.vue?vue&type=template&id=535e73c9&
47895
48007
 
47896
48008
  // EXTERNAL MODULE: ./node_modules/babel-runtime/helpers/slicedToArray.js
47897
48009
  var slicedToArray = __webpack_require__(47);
@@ -48492,6 +48604,8 @@ var datetime_select_component = normalizeComponent(
48492
48604
  //
48493
48605
  //
48494
48606
  //
48607
+ //
48608
+ //
48495
48609
 
48496
48610
 
48497
48611
 
@@ -48502,6 +48616,7 @@ var datetime_select_component = normalizeComponent(
48502
48616
 
48503
48617
 
48504
48618
 
48619
+ // 确保 calcDefaultValue 函数可用
48505
48620
  var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultValue(defaultValue) {
48506
48621
  if (Array.isArray(defaultValue)) {
48507
48622
  return [new Date(defaultValue[0]), new Date(defaultValue[1])];
@@ -48650,39 +48765,76 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48650
48765
 
48651
48766
  watch: {
48652
48767
  visible: function visible(val) {
48653
- val && (this.timePickerVisible = false);
48654
- },
48655
- minDate: function minDate(val) {
48656
48768
  var _this = this;
48657
48769
 
48658
- this.dateUserInput.min = null;
48659
- this.timeUserInput.min = null;
48660
- this.$nextTick(function () {
48661
- if (_this.$refs.maxTimePicker && _this.maxDate && _this.maxDate < _this.minDate) {
48662
- var format = 'HH:mm:ss';
48663
- _this.$refs.maxTimePicker.selectableRange = [[dateUtil_parseDate(dateUtil_formatDate(_this.minDate, format), format), dateUtil_parseDate('23:59:59', format)]];
48664
- }
48665
- });
48666
- if (val && this.$refs.minTimePicker) {
48667
- this.$refs.minTimePicker.date = val;
48668
- this.$refs.minTimePicker.value = val;
48770
+ if (val) {
48771
+ this.timePickerVisible = false;
48772
+ // 当面板显示时重置状态
48773
+ this.resetView();
48774
+ // 强制重新计算布局
48669
48775
  this.$nextTick(function () {
48670
- _this.$refs.maxTimePicker.adjustSpinners();
48776
+ _this.$forceUpdate();
48671
48777
  });
48672
48778
  }
48673
48779
  },
48674
- maxDate: function maxDate(val) {
48780
+
48781
+
48782
+ // 分别监听 minDate 和 maxDate
48783
+ minDate: function minDate(newVal, oldVal) {
48675
48784
  var _this2 = this;
48676
48785
 
48677
- this.dateUserInput.max = null;
48678
- this.timeUserInput.max = null;
48679
- if (val && this.$refs.maxTimePicker) {
48680
- this.$refs.maxTimePicker.date = val;
48681
- this.$refs.maxTimePicker.value = val;
48786
+ if (newVal !== oldVal && this.minDate) {
48787
+ this.dateUserInput.min = null;
48788
+ this.timeUserInput.min = null;
48682
48789
  this.$nextTick(function () {
48683
- _this2.$refs.minTimePicker.adjustSpinners();
48790
+ if (_this2.$refs.maxTimePicker && _this2.maxDate && _this2.maxDate < _this2.minDate) {
48791
+ var format = 'HH:mm:ss';
48792
+ _this2.$refs.maxTimePicker.selectableRange = [[dateUtil_parseDate(dateUtil_formatDate(_this2.minDate, format), format), dateUtil_parseDate('23:59:59', format)]];
48793
+ }
48684
48794
  });
48795
+ if (this.$refs.minTimePicker) {
48796
+ this.$refs.minTimePicker.date = this.minDate;
48797
+ this.$refs.minTimePicker.value = this.minDate;
48798
+ this.$nextTick(function () {
48799
+ _this2.$refs.maxTimePicker && _this2.$refs.maxTimePicker.adjustSpinners();
48800
+ });
48801
+ }
48685
48802
  }
48803
+
48804
+ // 强制子组件重新计算状态
48805
+ this.$nextTick(function () {
48806
+ if (_this2.$refs.leftDateTable) {
48807
+ _this2.$refs.leftDateTable.$forceUpdate();
48808
+ }
48809
+ if (_this2.$refs.rightDateTable) {
48810
+ _this2.$refs.rightDateTable.$forceUpdate();
48811
+ }
48812
+ });
48813
+ },
48814
+ maxDate: function maxDate(newVal, oldVal) {
48815
+ var _this3 = this;
48816
+
48817
+ if (newVal !== oldVal && this.maxDate) {
48818
+ this.dateUserInput.max = null;
48819
+ this.timeUserInput.max = null;
48820
+ if (this.$refs.maxTimePicker) {
48821
+ this.$refs.maxTimePicker.date = this.maxDate;
48822
+ this.$refs.maxTimePicker.value = this.maxDate;
48823
+ this.$nextTick(function () {
48824
+ _this3.$refs.minTimePicker && _this3.$refs.minTimePicker.adjustSpinners();
48825
+ });
48826
+ }
48827
+ }
48828
+
48829
+ // 强制子组件重新计算状态
48830
+ this.$nextTick(function () {
48831
+ if (_this3.$refs.leftDateTable) {
48832
+ _this3.$refs.leftDateTable.$forceUpdate();
48833
+ }
48834
+ if (_this3.$refs.rightDateTable) {
48835
+ _this3.$refs.rightDateTable.$forceUpdate();
48836
+ }
48837
+ });
48686
48838
  },
48687
48839
  value: function value(newVal) {
48688
48840
  if (!newVal) {
@@ -48720,24 +48872,28 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48720
48872
  }
48721
48873
  },
48722
48874
  format: function format() {
48723
- this.$refs.minTimePicker.format = this.timeFormat;
48724
- this.$refs.maxTimePicker.format = this.timeFormat;
48875
+ if (this.$refs.minTimePicker) {
48876
+ this.$refs.minTimePicker.format = this.timeFormat;
48877
+ }
48878
+ if (this.$refs.maxTimePicker) {
48879
+ this.$refs.maxTimePicker.format = this.timeFormat;
48880
+ }
48725
48881
  }
48726
48882
  },
48727
48883
 
48728
48884
  methods: {
48729
48885
  selectTime: function selectTime() {
48730
- var _this3 = this;
48886
+ var _this4 = this;
48731
48887
 
48732
48888
  this.timePickerVisible = !this.timePickerVisible;
48733
48889
  if (this.timePickerVisible) {
48734
48890
  this.$nextTick(function () {
48735
- _this3.$refs.maxTimePicker.date = _this3.maxDate;
48736
- _this3.$refs.maxTimePicker.value = _this3.maxDate;
48737
- _this3.$refs.maxTimePicker.adjustSpinners();
48738
- _this3.$refs.minTimePicker.date = _this3.minDate;
48739
- _this3.$refs.minTimePicker.value = _this3.minDate;
48740
- _this3.$refs.minTimePicker.adjustSpinners();
48891
+ _this4.$refs.maxTimePicker.date = _this4.maxDate;
48892
+ _this4.$refs.maxTimePicker.value = _this4.maxDate;
48893
+ _this4.$refs.maxTimePicker.adjustSpinners();
48894
+ _this4.$refs.minTimePicker.date = _this4.minDate;
48895
+ _this4.$refs.minTimePicker.value = _this4.minDate;
48896
+ _this4.$refs.minTimePicker.adjustSpinners();
48741
48897
  });
48742
48898
  }
48743
48899
  },
@@ -48746,12 +48902,36 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48746
48902
  this.maxDate = null;
48747
48903
  this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
48748
48904
  this.rightDate = dateUtil_nextMonth(this.leftDate);
48905
+
48906
+ // 重置 rangeState
48907
+ this.rangeState = {
48908
+ endDate: null,
48909
+ selecting: false,
48910
+ row: null,
48911
+ column: null
48912
+ };
48749
48913
  this.$emit('pick', null);
48750
48914
  },
48751
48915
  handleChangeRange: function handleChangeRange(val) {
48752
- this.minDate = val.minDate;
48753
- this.maxDate = val.maxDate;
48754
- this.rangeState = val.rangeState;
48916
+ var _this5 = this;
48917
+
48918
+ // 确保状态一致性
48919
+ if (val.minDate && val.maxDate) {
48920
+ this.minDate = new Date(val.minDate);
48921
+ this.maxDate = new Date(val.maxDate);
48922
+ }
48923
+
48924
+ // 更新 rangeState,确保所有字段都被正确设置
48925
+ this.rangeState = {
48926
+ endDate: val.rangeState ? val.rangeState.endDate : null,
48927
+ selecting: val.rangeState ? val.rangeState.selecting : false,
48928
+ row: val.rangeState ? val.rangeState.row : null,
48929
+ column: val.rangeState ? val.rangeState.column : null
48930
+
48931
+ // 强制重新计算 date-table 的状态
48932
+ };this.$nextTick(function () {
48933
+ _this5.$forceUpdate();
48934
+ });
48755
48935
  },
48756
48936
  handleDateInput: function handleDateInput(value, type) {
48757
48937
  this.dateUserInput[type] = value;
@@ -48794,7 +48974,7 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48794
48974
  }
48795
48975
  },
48796
48976
  handleTimeInput: function handleTimeInput(value, type) {
48797
- var _this4 = this;
48977
+ var _this6 = this;
48798
48978
 
48799
48979
  this.timeUserInput[type] = value;
48800
48980
  if (value.length !== this.timeFormat.length) return;
@@ -48804,12 +48984,12 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48804
48984
  if (type === 'min') {
48805
48985
  this.minDate = modifyTime(this.minDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
48806
48986
  this.$nextTick(function (_) {
48807
- return _this4.$refs.minTimePicker.adjustSpinners();
48987
+ return _this6.$refs.minTimePicker.adjustSpinners();
48808
48988
  });
48809
48989
  } else {
48810
48990
  this.maxDate = modifyTime(this.maxDate, parsedValue.getHours(), parsedValue.getMinutes(), parsedValue.getSeconds());
48811
48991
  this.$nextTick(function (_) {
48812
- return _this4.$refs.maxTimePicker.adjustSpinners();
48992
+ return _this6.$refs.maxTimePicker.adjustSpinners();
48813
48993
  });
48814
48994
  }
48815
48995
  }
@@ -48833,7 +49013,7 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48833
49013
  }
48834
49014
  },
48835
49015
  handleRangePick: function handleRangePick(val) {
48836
- var _this5 = this;
49016
+ var _this7 = this;
48837
49017
 
48838
49018
  var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
48839
49019
 
@@ -48850,8 +49030,8 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48850
49030
 
48851
49031
  // workaround for https://github.com/ElemeFE/element/issues/7539, should remove this block when we don't have to care about Chromium 55 - 57
48852
49032
  setTimeout(function () {
48853
- _this5.maxDate = maxDate;
48854
- _this5.minDate = minDate;
49033
+ _this7.maxDate = maxDate;
49034
+ _this7.minDate = minDate;
48855
49035
  }, 10);
48856
49036
  if (!close || this.showTime) return;
48857
49037
  this.handleConfirm();
@@ -48951,14 +49131,50 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48951
49131
  return Array.isArray(value) && value && value[0] && value[1] && isDate(value[0]) && isDate(value[1]) && value[0].getTime() <= value[1].getTime() && (typeof this.disabledDate === 'function' ? !this.disabledDate(value[0]) && !this.disabledDate(value[1]) : true);
48952
49132
  },
48953
49133
  resetView: function resetView() {
48954
- // NOTE: this is a hack to reset {min, max}Date on picker open.
48955
- // TODO: correct way of doing so is to refactor {min, max}Date to be dependent on value and internal selection state
48956
- // an alternative would be resetView whenever picker becomes visible, should also investigate date-panel's resetView
48957
- if (this.minDate && this.maxDate == null) {
48958
- this.rangeState.selecting = false;
49134
+ var _this8 = this;
49135
+
49136
+ // 完全重置所有状态
49137
+ this.rangeState = {
49138
+ endDate: null,
49139
+ selecting: false,
49140
+ row: null,
49141
+ column: null
49142
+
49143
+ // 重置日期状态
49144
+ };if (this.value && Array.isArray(this.value) && this.value.length === 2) {
49145
+ this.minDate = new Date(this.value[0]);
49146
+ this.maxDate = new Date(this.value[1]);
49147
+
49148
+ // 确保左右面板日期正确
49149
+ this.leftDate = new Date(this.value[0]);
49150
+ if (this.unlinkPanels) {
49151
+ this.rightDate = new Date(this.value[1]);
49152
+ } else {
49153
+ this.rightDate = dateUtil_nextMonth(this.leftDate);
49154
+ }
49155
+ } else {
49156
+ // 如果没有值,重置为默认状态
49157
+ this.minDate = null;
49158
+ this.maxDate = null;
49159
+ this.leftDate = date_rangevue_type_script_lang_js_calcDefaultValue(this.defaultValue)[0];
49160
+ this.rightDate = dateUtil_nextMonth(this.leftDate);
48959
49161
  }
48960
- this.minDate = this.value && isDate(this.value[0]) ? new Date(this.value[0]) : null;
48961
- this.maxDate = this.value && isDate(this.value[0]) ? new Date(this.value[1]) : null;
49162
+
49163
+ // 重置用户输入状态
49164
+ this.dateUserInput = { min: null, max: null };
49165
+ this.timeUserInput = { min: null, max: null
49166
+
49167
+ // 强制重新渲染所有子组件
49168
+ };this.$nextTick(function () {
49169
+ // 通知子组件重置状态
49170
+ if (_this8.$refs.leftDateTable) {
49171
+ _this8.$refs.leftDateTable.$forceUpdate();
49172
+ }
49173
+ if (_this8.$refs.rightDateTable) {
49174
+ _this8.$refs.rightDateTable.$forceUpdate();
49175
+ }
49176
+ _this8.$forceUpdate();
49177
+ });
48962
49178
  }
48963
49179
  },
48964
49180
 
@@ -48976,8 +49192,8 @@ var date_rangevue_type_script_lang_js_calcDefaultValue = function calcDefaultVal
48976
49192
 
48977
49193
  var date_range_component = normalizeComponent(
48978
49194
  range_date_rangevue_type_script_lang_js_,
48979
- date_rangevue_type_template_id_32308f66_render,
48980
- date_rangevue_type_template_id_32308f66_staticRenderFns,
49195
+ date_rangevue_type_template_id_535e73c9_render,
49196
+ date_rangevue_type_template_id_535e73c9_staticRenderFns,
48981
49197
  false,
48982
49198
  null,
48983
49199
  null,