xt-element-ui 1.2.6 → 1.2.8

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.
package/lib/index.umd.js CHANGED
@@ -2355,6 +2355,13 @@ function addHours (dirtyDate, dirtyAmount) {
2355
2355
  module.exports = addHours
2356
2356
 
2357
2357
 
2358
+ /***/ }),
2359
+
2360
+ /***/ "1f2a":
2361
+ /***/ (function(module, exports, __webpack_require__) {
2362
+
2363
+ // extracted by mini-css-extract-plugin
2364
+
2358
2365
  /***/ }),
2359
2366
 
2360
2367
  /***/ "1fb5":
@@ -2882,6 +2889,17 @@ module.exports = isFuture
2882
2889
  /* unused harmony reexport * */
2883
2890
 
2884
2891
 
2892
+ /***/ }),
2893
+
2894
+ /***/ "2cd0":
2895
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2896
+
2897
+ "use strict";
2898
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1f2a");
2899
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
2900
+ /* unused harmony reexport * */
2901
+
2902
+
2885
2903
  /***/ }),
2886
2904
 
2887
2905
  /***/ "2d23":
@@ -121847,17 +121865,6 @@ function startOfISOYear (dirtyDate) {
121847
121865
  module.exports = startOfISOYear
121848
121866
 
121849
121867
 
121850
- /***/ }),
121851
-
121852
- /***/ "45be":
121853
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
121854
-
121855
- "use strict";
121856
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("a7e1");
121857
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_vue_cli_service_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
121858
- /* unused harmony reexport * */
121859
-
121860
-
121861
121868
  /***/ }),
121862
121869
 
121863
121870
  /***/ "48a6":
@@ -125293,13 +125300,6 @@ function isDate (argument) {
125293
125300
  module.exports = isDate
125294
125301
 
125295
125302
 
125296
- /***/ }),
125297
-
125298
- /***/ "a7e1":
125299
- /***/ (function(module, exports, __webpack_require__) {
125300
-
125301
- // extracted by mini-css-extract-plugin
125302
-
125303
125303
  /***/ }),
125304
125304
 
125305
125305
  /***/ "a852":
@@ -128179,6 +128179,7 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128179
128179
  tooltip: {
128180
128180
  borderWidth: 1,
128181
128181
  backgroundColor: "#ffffff",
128182
+ borderColor: "#dcdfe6",
128182
128183
  textStyle: {
128183
128184
  color: "#333333"
128184
128185
  },
@@ -128231,7 +128232,7 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128231
128232
  color: "#ffffff"
128232
128233
  },
128233
128234
  itemStyle: {
128234
- borderColor: variables_export_default.a.xtColorBorder
128235
+ borderColor: "#dcdfe6"
128235
128236
  }
128236
128237
  },
128237
128238
  gauge: {
@@ -128272,13 +128273,14 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128272
128273
  }
128273
128274
  },
128274
128275
  tooltip: {
128275
- backgroundColor: variables_export_default.a.xtColorBgOverlay,
128276
- borderColor: variables_export_default.a.xtColorBorder,
128276
+ backgroundColor: "#333333",
128277
128277
  borderWidth: 1,
128278
+ borderColor: "#dcdfe6",
128278
128279
  textStyle: {
128279
128280
  color: "#fff"
128280
128281
  }
128281
- }
128282
+ },
128283
+ trigger: "axis"
128282
128284
  });
128283
128285
 
128284
128286
  // CONCATENATED MODULE: ./src/components/ex-chart/utils.js
@@ -129275,13 +129277,13 @@ var xt_card_component = normalizeComponent(
129275
129277
  // CONCATENATED MODULE: ./src/components/xt-card/index.js
129276
129278
 
129277
129279
  /* harmony default export */ var components_xt_card = (xt_card);
129278
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=template&id=b2553886
129279
- var xt_card_itemvue_type_template_id_b2553886_render = function render(){var _vm=this,_c=_vm._self._c;return _c('ex-card',{staticClass:"xt-card-item",class:{ [`is-${_vm.type}`]: _vm.type ? true : false},attrs:{"bordered":false}},[_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]),_c('xt-flex-box',[_c('div',{staticStyle:{"width":"50%","margin-bottom":"5px"}},[_c('xt-text',{attrs:{"bold":"","size":"large","format":"thousand","type":_vm.type,"decimals":0},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:"value"}}),_c('div',{staticStyle:{"margin":"5px 0"}},[_c('xt-text',{attrs:{"size":"small"}},[_vm._v("较昨日")]),_c('xt-text',{attrs:{"format":"normal","type":_vm.diff > 0 ? 'success' : 'danger',"suffix":_vm.diff > 0 ? '↑' : '↓'},model:{value:(_vm.change),callback:function ($$v) {_vm.change=$$v},expression:"change"}})],1)],1),_c('div',{staticStyle:{"flex":"1","height":"100%"}},[_c('xt-text',{attrs:{"size":"extra-large","type":_vm.type}},[_c('i',{staticClass:"el-icon-user"})])],1)])],1)
129280
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=template&id=1e46df45
129281
+ var xt_card_itemvue_type_template_id_1e46df45_render = function render(){var _vm=this,_c=_vm._self._c;return _c('ex-card',{staticClass:"xt-card-item",class:{ [`is-${_vm.type}`]: _vm.type ? true : false},attrs:{"bordered":false}},[_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]),_c('xt-flex-box',[_c('div',{staticStyle:{"width":"50%","margin-bottom":"5px"}},[_c('xt-text',{attrs:{"bold":"","size":"large","format":"thousand","type":_vm.type,"decimals":0},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:"value"}}),_c('div',{staticStyle:{"margin":"5px 0"}},[_c('xt-text',{attrs:{"size":"small"}},[_vm._v("较昨日")]),_c('xt-text',{attrs:{"format":"normal","type":_vm.diff > 0 ? 'success' : 'danger',"suffix":_vm.diff > 0 ? '↑' : '↓'},model:{value:(_vm.change),callback:function ($$v) {_vm.change=$$v},expression:"change"}})],1)],1),_c('div',{staticStyle:{"flex":"1","height":"100%"}},[_vm._t("icon",function(){return [_c('xt-text',{attrs:{"size":"extra-large","type":_vm.type}},[_c('i',{staticClass:"el-icon-user"})])]})],2)])],1)
129280
129282
  }
129281
- var xt_card_itemvue_type_template_id_b2553886_staticRenderFns = []
129283
+ var xt_card_itemvue_type_template_id_1e46df45_staticRenderFns = []
129282
129284
 
129283
129285
 
129284
- // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=b2553886
129286
+ // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=1e46df45
129285
129287
 
129286
129288
  // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-card-item/index.vue?vue&type=script&lang=js
129287
129289
 
@@ -129312,8 +129314,8 @@ var xt_card_itemvue_type_template_id_b2553886_staticRenderFns = []
129312
129314
 
129313
129315
  var xt_card_item_component = normalizeComponent(
129314
129316
  components_xt_card_itemvue_type_script_lang_js,
129315
- xt_card_itemvue_type_template_id_b2553886_render,
129316
- xt_card_itemvue_type_template_id_b2553886_staticRenderFns,
129317
+ xt_card_itemvue_type_template_id_1e46df45_render,
129318
+ xt_card_itemvue_type_template_id_1e46df45_staticRenderFns,
129317
129319
  false,
129318
129320
  null,
129319
129321
  null,
@@ -129884,6 +129886,744 @@ var xt_text_component = normalizeComponent(
129884
129886
  // CONCATENATED MODULE: ./src/components/xt-text/index.js
129885
129887
 
129886
129888
  /* harmony default export */ var components_xt_text = (xt_text);
129889
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
129890
+ var xt_timevue_type_template_id_d29acf2c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-time",class:[
129891
+ _vm.typeColor ? 'xt-time--' + _vm.typeColor : '',
129892
+ 'xt-time--' + _vm.size,
129893
+ { 'xt-time--bold': _vm.bold }
129894
+ ],style:(_vm.customStyle),on:{"click":_vm.handleClick}},[_vm._t("prefix",function(){return [_vm._v(_vm._s(_vm.prefix))]}),_vm._t("default",function(){return [(_vm.mode === 'text')?[(_vm.displayText !== undefined)?[_vm._v(_vm._s(_vm.displayText))]:(!_vm.hideEmpty)?[_vm._v(_vm._s(_vm.emptyText))]:_vm._e()]:(_vm.mode === 'now')?[_vm._v(" "+_vm._s(_vm.nowText)+" ")]:(_vm.mode === 'countdown')?[(_vm.isCountdownFinished)?[_vm._t("finished",function(){return [_vm._v(_vm._s(_vm.finishedText))]})]:[_vm._v(" "+_vm._s(_vm.countdownText)+" ")]]:_vm._e()]}),_vm._t("suffix",function(){return [_vm._v(_vm._s(_vm.suffix))]})],2)
129895
+ }
129896
+ var xt_timevue_type_template_id_d29acf2c_staticRenderFns = []
129897
+
129898
+
129899
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
129900
+
129901
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-time/index.vue?vue&type=script&lang=js
129902
+
129903
+ const DEFAULT_FORMAT = 'YYYY-MM-DD HH:mm:ss'
129904
+
129905
+ function pad(n) {
129906
+ const s = String(n)
129907
+ return s.length < 2 ? '0' + s : s
129908
+ }
129909
+
129910
+ /**
129911
+ * 根据字符串/数字/Date 解析为 Date 对象
129912
+ * 兼容:时间戳(ms/s)、Date、"2024-01-01"、"2024/01/01 12:00:00"、ISO 字符串
129913
+ */
129914
+ function parseDate(value) {
129915
+ if (value === null || value === undefined || value === '') return null
129916
+ if (value instanceof Date) return isNaN(value.getTime()) ? null : value
129917
+
129918
+ // 数字时间戳
129919
+ if (typeof value === 'number') {
129920
+ // 10 位秒级时间戳补 000
129921
+ const t = value < 1e12 ? value * 1000 : value
129922
+ const d = new Date(t)
129923
+ return isNaN(d.getTime()) ? null : d
129924
+ }
129925
+
129926
+ if (typeof value === 'string') {
129927
+ // 纯数字字符串
129928
+ if (/^\d+$/.test(value)) {
129929
+ const n = Number(value)
129930
+ const t = n < 1e12 ? n * 1000 : n
129931
+ const d = new Date(t)
129932
+ return isNaN(d.getTime()) ? null : d
129933
+ }
129934
+ // 将 "-" 统一为 "/",避免 Safari 下 "YYYY-MM-DD" 解析失败
129935
+ const normalized = value.replace(/-/g, '/')
129936
+ const d = new Date(normalized)
129937
+ return isNaN(d.getTime()) ? null : d
129938
+ }
129939
+
129940
+ return null
129941
+ }
129942
+
129943
+ /**
129944
+ * 简易 formatDateTime 实现(不依赖外部库)
129945
+ * 支持占位符:YYYY MM DD HH mm ss SSS
129946
+ */
129947
+ function formatDateTime(date, fmt) {
129948
+ if (!date) return ''
129949
+ const f = fmt || DEFAULT_FORMAT
129950
+ const map = {
129951
+ YYYY: date.getFullYear(),
129952
+ MM: pad(date.getMonth() + 1),
129953
+ DD: pad(date.getDate()),
129954
+ HH: pad(date.getHours()),
129955
+ mm: pad(date.getMinutes()),
129956
+ ss: pad(date.getSeconds()),
129957
+ SSS: String(date.getMilliseconds()).padStart(3, '0')
129958
+ }
129959
+ return f.replace(/YYYY|MM|DD|HH|mm|ss|SSS/g, (k) => map[k])
129960
+ }
129961
+
129962
+ /* harmony default export */ var xt_timevue_type_script_lang_js = ({
129963
+ name: 'XtTime',
129964
+
129965
+ props: {
129966
+ // 显示模式:now(当前时间实时刷新)/ countdown(倒计时)/ text(格式化日期文本)
129967
+ type: {
129968
+ type: String,
129969
+ default: 'now',
129970
+ validator: (val) => ['now', 'countdown', 'text'].includes(val)
129971
+ },
129972
+
129973
+ // ===== 通用 =====
129974
+ size: {
129975
+ type: String,
129976
+ default: 'base',
129977
+ validator: (val) =>
129978
+ ['extra-large', 'large', 'medium', 'base', 'small', 'extra-small'].includes(val)
129979
+ },
129980
+ typeColor: {
129981
+ type: String,
129982
+ default: '',
129983
+ validator: (val) => ['', 'primary', 'success', 'warning', 'danger'].includes(val)
129984
+ },
129985
+ bold: {
129986
+ type: Boolean,
129987
+ default: false
129988
+ },
129989
+ format: {
129990
+ type: String,
129991
+ default: DEFAULT_FORMAT
129992
+ },
129993
+ prefix: {
129994
+ type: String,
129995
+ default: ''
129996
+ },
129997
+ suffix: {
129998
+ type: String,
129999
+ default: ''
130000
+ },
130001
+ emptyText: {
130002
+ type: String,
130003
+ default: '-'
130004
+ },
130005
+ hideEmpty: {
130006
+ type: Boolean,
130007
+ default: false
130008
+ },
130009
+ interval: {
130010
+ type: Number,
130011
+ default: 1000,
130012
+ validator: (val) => val >= 100
130013
+ },
130014
+
130015
+ // ===== text 模式 =====
130016
+ // 兼容 v-model 用法,也可直接传 value / :value
130017
+ value: {
130018
+ type: [String, Number, Date],
130019
+ default: ''
130020
+ },
130021
+
130022
+ // ===== countdown 模式 =====
130023
+ targetTime: {
130024
+ type: [String, Number, Date],
130025
+ default: ''
130026
+ },
130027
+ // 倒计时显示格式:
130028
+ // DHMS -> 3天 12时 08分 30秒
130029
+ // HMS -> 12时 08分 30秒(天数自动折算到小时)
130030
+ // MS -> 08分 30秒(全部折算到分钟)
130031
+ // SEC -> 3200秒
130032
+ countdownFormat: {
130033
+ type: String,
130034
+ default: 'DHMS',
130035
+ validator: (val) => ['DHMS', 'HMS', 'MS', 'SEC'].includes(val)
130036
+ },
130037
+ finishedText: {
130038
+ type: String,
130039
+ default: '已结束'
130040
+ }
130041
+ },
130042
+
130043
+ data() {
130044
+ return {
130045
+ tick: 0
130046
+ }
130047
+ },
130048
+
130049
+ computed: {
130050
+ mode() {
130051
+ return this.type
130052
+ },
130053
+
130054
+ parsedValue() {
130055
+ return parseDate(this.value)
130056
+ },
130057
+
130058
+ parsedTarget() {
130059
+ return parseDate(this.targetTime)
130060
+ },
130061
+
130062
+ displayText() {
130063
+ if (!this.parsedValue) return undefined
130064
+ return formatDateTime(this.parsedValue, this.format)
130065
+ },
130066
+
130067
+ nowText() {
130068
+ // 通过 tick 触发刷新
130069
+ // eslint-disable-next-line no-unused-vars
130070
+ const _ = this.tick
130071
+ return formatDateTime(new Date(), this.format)
130072
+ },
130073
+
130074
+ // 剩余毫秒数(countdown 模式)
130075
+ remainingMs() {
130076
+ if (this.mode !== 'countdown') return 0
130077
+ // eslint-disable-next-line no-unused-vars
130078
+ const _ = this.tick
130079
+ if (!this.parsedTarget) return 0
130080
+ const diff = this.parsedTarget.getTime() - Date.now()
130081
+ return diff > 0 ? diff : 0
130082
+ },
130083
+
130084
+ isCountdownFinished() {
130085
+ return this.mode === 'countdown' && this.parsedTarget && this.remainingMs <= 0
130086
+ },
130087
+
130088
+ countdownText() {
130089
+ if (!this.parsedTarget) return this.emptyText
130090
+ const total = Math.floor(this.remainingMs / 1000)
130091
+ if (total <= 0) return this.finishedText
130092
+
130093
+ switch (this.countdownFormat) {
130094
+ case 'SEC':
130095
+ return `${total}秒`
130096
+ case 'MS': {
130097
+ const m = Math.floor(total / 60)
130098
+ const s = total % 60
130099
+ return `${pad(m)}分${pad(s)}秒`
130100
+ }
130101
+ case 'HMS': {
130102
+ const h = Math.floor(total / 3600)
130103
+ const m = Math.floor((total % 3600) / 60)
130104
+ const s = total % 60
130105
+ return `${pad(h)}时${pad(m)}分${pad(s)}秒`
130106
+ }
130107
+ case 'DHMS':
130108
+ default: {
130109
+ const d = Math.floor(total / 86400)
130110
+ const h = Math.floor((total % 86400) / 3600)
130111
+ const m = Math.floor((total % 3600) / 60)
130112
+ const s = total % 60
130113
+ return `${d}天${pad(h)}时${pad(m)}分${pad(s)}秒`
130114
+ }
130115
+ }
130116
+ },
130117
+
130118
+ customStyle() {
130119
+ return {}
130120
+ }
130121
+ },
130122
+
130123
+ watch: {
130124
+ type() {
130125
+ this.restartTimer()
130126
+ },
130127
+ interval() {
130128
+ this.restartTimer()
130129
+ }
130130
+ },
130131
+
130132
+ mounted() {
130133
+ this.restartTimer()
130134
+ },
130135
+
130136
+ beforeDestroy() {
130137
+ this.clearTimer()
130138
+ },
130139
+
130140
+ activated() {
130141
+ this.restartTimer()
130142
+ },
130143
+
130144
+ deactivated() {
130145
+ this.clearTimer()
130146
+ },
130147
+
130148
+ methods: {
130149
+ restartTimer() {
130150
+ this.clearTimer()
130151
+ if (this.mode === 'now' || this.mode === 'countdown') {
130152
+ // 立即刷新一次,避免首次渲染时 tick=0 导致的差异
130153
+ this.tick++
130154
+ this._timer = setInterval(() => {
130155
+ this.tick++
130156
+ // 倒计时结束触发 finish 事件
130157
+ if (this.mode === 'countdown' && this.parsedTarget && this.remainingMs <= 0) {
130158
+ this.clearTimer()
130159
+ this.$emit('finish')
130160
+ }
130161
+ }, this.interval)
130162
+ }
130163
+ },
130164
+
130165
+ clearTimer() {
130166
+ if (this._timer) {
130167
+ clearInterval(this._timer)
130168
+ this._timer = null
130169
+ }
130170
+ },
130171
+
130172
+ handleClick(e) {
130173
+ this.$emit('click', e)
130174
+ }
130175
+ }
130176
+ });
130177
+
130178
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue?vue&type=script&lang=js
130179
+ /* harmony default export */ var components_xt_timevue_type_script_lang_js = (xt_timevue_type_script_lang_js);
130180
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue
130181
+
130182
+
130183
+
130184
+
130185
+
130186
+ /* normalize component */
130187
+
130188
+ var xt_time_component = normalizeComponent(
130189
+ components_xt_timevue_type_script_lang_js,
130190
+ xt_timevue_type_template_id_d29acf2c_render,
130191
+ xt_timevue_type_template_id_d29acf2c_staticRenderFns,
130192
+ false,
130193
+ null,
130194
+ null,
130195
+ null
130196
+
130197
+ )
130198
+
130199
+ /* harmony default export */ var xt_time = (xt_time_component.exports);
130200
+ // CONCATENATED MODULE: ./src/components/xt-time/index.js
130201
+
130202
+ /* harmony default export */ var components_xt_time = (xt_time);
130203
+
130204
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price/index.vue?vue&type=template&id=263a6004
130205
+ var xt_step_pricevue_type_template_id_263a6004_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price",class:{ 'is-disabled': _vm.disabled }},[(_vm.title || _vm.$slots.header)?_c('div',{staticClass:"xt-step-price__header"},[(_vm.title)?_c('xt-text',{attrs:{"bold":"","size":"medium"}},[_vm._v(_vm._s(_vm.title))]):_vm._e(),_vm._t("header"),(!_vm.disabled && !_vm.isLimitReached)?_c('el-button',{attrs:{"type":"primary","size":"small","icon":"el-icon-plus","plain":""},on:{"click":_vm.onAdd}},[_vm._v("新增阶梯")]):_vm._e(),(_vm.isLimitReached)?_c('xt-text',{attrs:{"size":"small","type-color":"info"}},[_vm._v("已达上限("+_vm._s(_vm.localItems.length)+"/"+_vm._s(_vm.limit)+")")]):_vm._e()],2):_vm._e(),_c('div',{staticClass:"xt-step-price__list"},_vm._l((_vm.localItems),function(item,idx){return _c('XtStepPriceItem',{key:idx,attrs:{"value":item,"index":idx,"is-first":idx === 0,"is-last":idx === _vm.localItems.length - 1,"items-length":_vm.localItems.length,"removable":idx !== 0,"min-locked":idx !== 0 ? true : false,"unit":_vm.unit,"precision":_vm.precision,"left-bracket":_vm.leftBracket,"right-bracket":_vm.rightBracket,"field-keys":_vm.fieldKeys,"disabled":_vm.disabled},on:{"input":(val) => _vm.onItemInput(val, idx),"max-change":_vm.onMaxChange,"min-change":_vm.onMinChange,"delete":_vm.onDelete}})}),1),(_vm.localItems.length === 0)?_c('div',{staticClass:"xt-step-price__empty"},[_c('span',[_vm._v("暂无数据,点击右上角「新增阶梯」开始配置")])]):_vm._e(),(_vm.tip || _vm.$slots.tip)?_c('div',{staticClass:"xt-step-price__tip"},[_vm._t("tip",function(){return [_c('xt-text',{attrs:{"size":"small","type-color":"warning"}},[_vm._v(_vm._s(_vm.tip))])]})],2):_vm._e()])
130206
+ }
130207
+ var xt_step_pricevue_type_template_id_263a6004_staticRenderFns = []
130208
+
130209
+
130210
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=263a6004
130211
+
130212
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=template&id=8fdfa548
130213
+ var xt_step_price_itemvue_type_template_id_8fdfa548_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-step-price-item"},[_c('div',{staticClass:"xt-step-price-item__range"},[_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalLeftBracket))]),_c('el-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled || _vm.minLocked,"size":"small"},on:{"blur":_vm.onMinBlur},model:{value:(_vm.minInput),callback:function ($$v) {_vm.minInput=_vm._n($$v)},expression:"minInput"}}),_c('span',{staticClass:"xt-step-price-item__comma"},[_vm._v(",")]),(!_vm.isLast)?_c('el-input',{staticClass:"xt-step-price-item__input",attrs:{"disabled":_vm.disabled,"size":"small"},on:{"blur":_vm.onMaxBlur},model:{value:(_vm.maxInput),callback:function ($$v) {_vm.maxInput=_vm._n($$v)},expression:"maxInput"}}):_c('span',{staticClass:"xt-step-price-item__infinity"},[_vm._v("+∞")]),_c('span',{staticClass:"xt-step-price-item__bracket"},[_vm._v(_vm._s(_vm.finalRightBracket))])],1),_c('span',{staticClass:"xt-step-price-item__arrow"},[_vm._v("→")]),_c('div',{staticClass:"xt-step-price-item__price"},[_c('el-input',{staticClass:"xt-step-price-item__input xt-step-price-item__input--price",attrs:{"disabled":_vm.disabled,"size":"small","placeholder":"价格"},on:{"blur":_vm.onPriceBlur},model:{value:(_vm.priceInput),callback:function ($$v) {_vm.priceInput=_vm._n($$v)},expression:"priceInput"}}),_c('span',{staticClass:"xt-step-price-item__unit"},[_vm._v(_vm._s(_vm.unit))])],1),(!_vm.disabled && _vm.removable && _vm.itemsLength > 1)?_c('el-button',{staticClass:"xt-step-price-item__delete",attrs:{"type":"text","icon":"el-icon-delete"},on:{"click":_vm.onDelete}}):_vm._e()],1)
130214
+ }
130215
+ var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130216
+
130217
+
130218
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=template&id=8fdfa548
130219
+
130220
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price-item/index.vue?vue&type=script&lang=js
130221
+
130222
+ /* harmony default export */ var xt_step_price_itemvue_type_script_lang_js = ({
130223
+ name: 'XtStepPriceItem',
130224
+
130225
+ props: {
130226
+ value: {
130227
+ type: Object,
130228
+ required: true,
130229
+ default: () => ({ min: 0, max: null, price: 0 })
130230
+ },
130231
+ index: { type: Number, default: 0 },
130232
+ isFirst: { type: Boolean, default: false },
130233
+ isLast: { type: Boolean, default: false },
130234
+ itemsLength: { type: Number, default: 1 },
130235
+ removable: { type: Boolean, default: true },
130236
+ disabled: { type: Boolean, default: false },
130237
+ minLocked: { type: Boolean, default: false },
130238
+ unit: { type: String, default: '元' },
130239
+ precision: { type: Number, default: 2 },
130240
+ // 左括号:默认 '[',传空则不显示
130241
+ leftBracket: { type: String, default: '[' },
130242
+ // 右括号:默认 null,走内置规则(只有1条为 ']',多条为 ')');传值则强制使用
130243
+ rightBracket: { type: String, default: null },
130244
+ // 字段名映射:{ min, max, price },允许传入的 value 使用自定义字段名
130245
+ fieldKeys: {
130246
+ type: Object,
130247
+ default: () => ({ min: 'min', max: 'max', price: 'price' })
130248
+ }
130249
+ },
130250
+
130251
+ computed: {
130252
+ keyMin() { return (this.fieldKeys && this.fieldKeys.min) || 'min' },
130253
+ keyMax() { return (this.fieldKeys && this.fieldKeys.max) || 'max' },
130254
+ keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130255
+ finalRightBracket() {
130256
+ if (this.rightBracket !== null && this.rightBracket !== undefined && this.rightBracket !== '') return this.rightBracket
130257
+ return this.itemsLength === 1 ? ']' : ')'
130258
+ },
130259
+ finalLeftBracket() {
130260
+ return (this.leftBracket === null || this.leftBracket === undefined) ? '[' : this.leftBracket
130261
+ }
130262
+ },
130263
+
130264
+ data() {
130265
+ const { minVal, maxVal, priceVal } = this.getPriceItem(this.value)
130266
+ return {
130267
+ minInput: minVal,
130268
+ maxInput: maxVal,
130269
+ priceInput: priceVal
130270
+ }
130271
+ },
130272
+
130273
+ watch: {
130274
+ value: {
130275
+ deep: true,
130276
+ immediate: true,
130277
+ handler(val) {
130278
+ const { minVal, maxVal, priceVal } = this.getPriceItem(val)
130279
+ this.minInput = minVal
130280
+ this.maxInput = maxVal
130281
+ this.priceInput = priceVal
130282
+ }
130283
+ },
130284
+ isLast(val) {
130285
+ if (val) {
130286
+ this.maxInput = null
130287
+ } else {
130288
+ const minVal = this.safeNumber(this.minInput, 0)
130289
+ const v = this.value
130290
+ this.maxInput = this.safeNumber(v && v[this.keyMax], minVal + 1)
130291
+ }
130292
+ }
130293
+ },
130294
+
130295
+ methods: {
130296
+ getPriceItem(value) {
130297
+ const v = value
130298
+ const minVal = this.safeNumber(v && v[this.keyMin], 0)
130299
+ const maxVal = this.isLast ? null : this.safeNumber(v && v[this.keyMax], minVal + 1)
130300
+ const priceVal = this.safeNumber(v && v[this.keyPrice], 0)
130301
+ return {
130302
+ minVal,
130303
+ maxVal,
130304
+ priceVal
130305
+ }
130306
+ },
130307
+ // 统一兜底:非数字输入一律转为 fallback(默认 0)
130308
+ safeNumber(v, fallback = 0) {
130309
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130310
+ const n = Number(v)
130311
+ return isNaN(n) ? fallback : n
130312
+ },
130313
+
130314
+ emitChange(partial) {
130315
+ const next = {
130316
+ [this.keyMin]: this.minInput,
130317
+ [this.keyMax]: this.isLast ? null : this.maxInput,
130318
+ [this.keyPrice]: this.priceInput,
130319
+ ...partial
130320
+ }
130321
+ this.$emit('input', next)
130322
+ this.$emit('change', next, this.index)
130323
+ },
130324
+
130325
+ onMinBlur() {
130326
+ const v = this.safeNumber(this.minInput, 0)
130327
+ this.minInput = v
130328
+ this.$emit('min-change', v, this.index)
130329
+ this.emitChange({ [this.keyMin]: v })
130330
+ },
130331
+
130332
+ onMaxBlur() {
130333
+ if (this.isLast) return
130334
+ const minVal = this.safeNumber(this.minInput, 0)
130335
+ let v = this.safeNumber(this.maxInput, minVal + 1)
130336
+ if (v <= minVal) v = minVal + 1
130337
+ this.maxInput = v
130338
+ this.$emit('max-change', v, this.index)
130339
+ this.emitChange({ [this.keyMax]: v })
130340
+ },
130341
+
130342
+ onPriceBlur() {
130343
+ let v = this.safeNumber(this.priceInput, 0)
130344
+ if (v < 0) v = 0
130345
+ v = Number(v.toFixed(this.precision))
130346
+ this.priceInput = v
130347
+ this.emitChange({ [this.keyPrice]: v })
130348
+ },
130349
+
130350
+ onDelete() {
130351
+ this.$emit('delete', this.index)
130352
+ }
130353
+ }
130354
+ });
130355
+
130356
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=script&lang=js
130357
+ /* harmony default export */ var components_xt_step_price_itemvue_type_script_lang_js = (xt_step_price_itemvue_type_script_lang_js);
130358
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue
130359
+
130360
+
130361
+
130362
+
130363
+
130364
+ /* normalize component */
130365
+
130366
+ var xt_step_price_item_component = normalizeComponent(
130367
+ components_xt_step_price_itemvue_type_script_lang_js,
130368
+ xt_step_price_itemvue_type_template_id_8fdfa548_render,
130369
+ xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns,
130370
+ false,
130371
+ null,
130372
+ null,
130373
+ null
130374
+
130375
+ )
130376
+
130377
+ /* harmony default export */ var xt_step_price_item = (xt_step_price_item_component.exports);
130378
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-step-price/index.vue?vue&type=script&lang=js
130379
+
130380
+
130381
+
130382
+ /* harmony default export */ var xt_step_pricevue_type_script_lang_js = ({
130383
+ name: 'XtStepPrice',
130384
+
130385
+ components: { XtStepPriceItem: xt_step_price_item },
130386
+
130387
+ computed: {
130388
+ keyMin() { return (this.fieldKeys && this.fieldKeys.min) || 'min' },
130389
+ keyMax() { return (this.fieldKeys && this.fieldKeys.max) || 'max' },
130390
+ keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130391
+ isLimitReached() {
130392
+ const lim = Number(this.limit)
130393
+ return lim > 0 && this.localItems.length >= lim
130394
+ }
130395
+ },
130396
+
130397
+ props: {
130398
+ value: {
130399
+ type: Array,
130400
+ default: () => []
130401
+ },
130402
+ title: { type: String, default: '' },
130403
+ unit: { type: String, default: '元' },
130404
+ precision: { type: Number, default: 2 },
130405
+ // 左括号:默认 '[',传空字符串则不显示
130406
+ leftBracket: { type: String, default: '[' },
130407
+ // 右括号:默认 null,走内置逻辑(只有1条为 ']',多条为 ')');传具体值则强制使用
130408
+ rightBracket: { type: String, default: null },
130409
+ // 字段名映射:{ min, max, price },允许传入的 value 使用自定义字段名
130410
+ fieldKeys: {
130411
+ type: Object,
130412
+ default: () => ({ min: 'min', max: 'max', price: 'price' })
130413
+ },
130414
+ // 阶梯数量上限;<= 0 表示不限制
130415
+ limit: { type: Number, default: 0 },
130416
+ disabled: { type: Boolean, default: false },
130417
+ tip: {
130418
+ type: String,
130419
+ default: '区间左闭右闭 [min, max],最后一级为 [min, +∞),保证连续且不重叠。'
130420
+ },
130421
+ // 默认初始值:当传入空数组时,是否自动生成首条默认阶梯 [0, +∞)
130422
+ defaultFirst: { type: Boolean, default: true }
130423
+ },
130424
+
130425
+ data() {
130426
+ return {
130427
+ localItems: this.normalize(this.value)
130428
+ }
130429
+ },
130430
+
130431
+ watch: {
130432
+ value: {
130433
+ deep: true,
130434
+ immediate: true,
130435
+ handler(val) {
130436
+ this.localItems = this.normalize(val)
130437
+ }
130438
+ }
130439
+ },
130440
+
130441
+ methods: {
130442
+ // 统一数字转换:空值/非法值一律转为 fallback(默认 0)
130443
+ safeNumber(v, fallback = 0) {
130444
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130445
+ const n = Number(v)
130446
+ return isNaN(n) ? fallback : n
130447
+ },
130448
+
130449
+ cloneItems(items) {
130450
+ if (!Array.isArray(items)) return []
130451
+ return items.map((it) => ({
130452
+ [this.keyMin]: this.safeNumber(it && it[this.keyMin], 0),
130453
+ [this.keyMax]: (it && it[this.keyMax] == null) || (it && it[this.keyMax] === '') ? null : this.safeNumber(it[this.keyMax], null),
130454
+ [this.keyPrice]: this.safeNumber(it && it[this.keyPrice], 0)
130455
+ }))
130456
+ },
130457
+
130458
+ normalize(items) {
130459
+ const list = this.cloneItems(items)
130460
+ if (list.length === 0 && this.defaultFirst) {
130461
+ list.push({ [this.keyMin]: 0, [this.keyMax]: null, [this.keyPrice]: 0 })
130462
+ }
130463
+ this.ensureContinuity(list)
130464
+ return list
130465
+ },
130466
+
130467
+ // 保证 items 连续且不重叠:items[i].max === items[i+1].min,首条 min === 0,末条 max === null
130468
+ ensureContinuity(list) {
130469
+ if (!Array.isArray(list) || list.length === 0) return
130470
+ list[0][this.keyMin] = 0
130471
+
130472
+ for (let i = 0; i < list.length; i++) {
130473
+ const cur = list[i]
130474
+ const next = list[i + 1]
130475
+ const curMin = this.safeNumber(cur[this.keyMin], 0)
130476
+ if (next) {
130477
+ let curMax = this.safeNumber(cur[this.keyMax], curMin + 1)
130478
+ if (curMax <= curMin) curMax = curMin + 1
130479
+ cur[this.keyMax] = curMax
130480
+ next[this.keyMin] = curMax
130481
+ } else {
130482
+ cur[this.keyMax] = null
130483
+ }
130484
+ cur[this.keyPrice] = this.safeNumber(cur[this.keyPrice], 0)
130485
+ }
130486
+ },
130487
+
130488
+ emit() {
130489
+ this.ensureContinuity(this.localItems)
130490
+ const cloned = this.cloneItems(this.localItems)
130491
+ this.$emit('input', cloned)
130492
+ this.$emit('change', cloned)
130493
+ },
130494
+
130495
+ onItemInput(val, idx) {
130496
+ const cur = this.localItems[idx]
130497
+ if (!cur) return
130498
+ if (val && val[this.keyPrice] !== undefined) cur[this.keyPrice] = this.safeNumber(val[this.keyPrice], 0)
130499
+ },
130500
+
130501
+ onMaxChange(val, idx) {
130502
+ const cur = this.localItems[idx]
130503
+ if (!cur) return
130504
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0) + 1)
130505
+ cur[this.keyMax] = n
130506
+ const next = this.localItems[idx + 1]
130507
+ if (next) next[this.keyMin] = n
130508
+ this.emit()
130509
+ },
130510
+
130511
+ onMinChange(val, idx) {
130512
+ const cur = this.localItems[idx]
130513
+ if (!cur) return
130514
+ if (idx === 0) {
130515
+ cur[this.keyMin] = 0
130516
+ } else {
130517
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0))
130518
+ cur[this.keyMin] = n
130519
+ const prev = this.localItems[idx - 1]
130520
+ if (prev) prev[this.keyMax] = n
130521
+ }
130522
+ this.emit()
130523
+ },
130524
+
130525
+ onAdd() {
130526
+ const list = this.localItems
130527
+ const lim = Number(this.limit)
130528
+ if (lim > 0 && list.length >= lim) return
130529
+
130530
+ // 场景 1:空数组 —— 直接 push 一条 [0, +∞)
130531
+ if (list.length === 0) {
130532
+ list.push({
130533
+ [this.keyMin]: 0,
130534
+ [this.keyMax]: null,
130535
+ [this.keyPrice]: 10
130536
+ })
130537
+ this.emit()
130538
+ return
130539
+ }
130540
+
130541
+ // 场景 2:已有数据 —— 在末条前插入新条
130542
+ const last = list[list.length - 1]
130543
+ const newMin = this.safeNumber(last[this.keyMin], 0)
130544
+ const newMax = newMin + 1
130545
+
130546
+ // 新条 price:优先继承「倒数第二条」的 price,其次用末条 price(>0 时),否则默认 10
130547
+ const prev = list[list.length - 2]
130548
+ let newPrice = 10
130549
+ if (prev) {
130550
+ newPrice = this.safeNumber(prev[this.keyPrice], 10)
130551
+ } else {
130552
+ const lastPrice = this.safeNumber(last[this.keyPrice], 0)
130553
+ newPrice = lastPrice > 0 ? lastPrice : 10
130554
+ }
130555
+
130556
+ // 关键修复:构造全新数组,避免 splice 导致 Vue 组件复用 & 响应式不同步
130557
+ // 新条 = { newMin, newMax, newPrice }
130558
+ // 新末条 = { min: newMax, max: null, price: newPrice }
130559
+ const newArr = [
130560
+ ...list.slice(0, -1),
130561
+ {
130562
+ [this.keyMin]: newMin,
130563
+ [this.keyMax]: newMax,
130564
+ [this.keyPrice]: newPrice
130565
+ },
130566
+ {
130567
+ [this.keyMin]: newMax,
130568
+ [this.keyMax]: null,
130569
+ [this.keyPrice]: newPrice
130570
+ }
130571
+ ]
130572
+
130573
+ this.localItems = newArr
130574
+ this.emit()
130575
+ },
130576
+
130577
+ onDelete(idx) {
130578
+ const list = this.localItems
130579
+ if (list.length <= 1) return // 至少保留一条
130580
+ if (idx === 0) return // 首条不允许删除,保证区间起点始终为 0
130581
+ const cur = list[idx]
130582
+ const prev = list[idx - 1]
130583
+ const next = list[idx + 1]
130584
+ if (prev && next) {
130585
+ prev[this.keyMax] = cur[this.keyMax] == null ? null : Number(cur[this.keyMax])
130586
+ } else if (prev && !next) {
130587
+ prev[this.keyMax] = null
130588
+ } else if (!prev && next) {
130589
+ next[this.keyMin] = 0
130590
+ }
130591
+ list.splice(idx, 1)
130592
+ this.emit()
130593
+ }
130594
+ }
130595
+ });
130596
+
130597
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=script&lang=js
130598
+ /* harmony default export */ var components_xt_step_pricevue_type_script_lang_js = (xt_step_pricevue_type_script_lang_js);
130599
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue
130600
+
130601
+
130602
+
130603
+
130604
+
130605
+ /* normalize component */
130606
+
130607
+ var xt_step_price_component = normalizeComponent(
130608
+ components_xt_step_pricevue_type_script_lang_js,
130609
+ xt_step_pricevue_type_template_id_263a6004_render,
130610
+ xt_step_pricevue_type_template_id_263a6004_staticRenderFns,
130611
+ false,
130612
+ null,
130613
+ null,
130614
+ null
130615
+
130616
+ )
130617
+
130618
+ /* harmony default export */ var xt_step_price = (xt_step_price_component.exports);
130619
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.js
130620
+
130621
+ /* harmony default export */ var components_xt_step_price = (xt_step_price);
130622
+
130623
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.js
130624
+
130625
+ /* harmony default export */ var components_xt_step_price_item = (xt_step_price_item);
130626
+
129887
130627
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-grid-box/index.vue?vue&type=template&id=67e197c4
129888
130628
  var xt_grid_boxvue_type_template_id_67e197c4_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:"xt-grid-box",style:(_vm.styleAttrs)},[_vm._t("default")],2)
129889
130629
  }
@@ -130181,27 +130921,27 @@ var xt_grid_item_component = normalizeComponent(
130181
130921
  // CONCATENATED MODULE: ./src/components/xt-grid-item/index.js
130182
130922
 
130183
130923
  /* harmony default export */ var components_xt_grid_item = (xt_grid_item);
130184
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-date-picker/index.vue?vue&type=template&id=6a59ddb5&scoped=true
130185
- var xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{"display":"inline-block"}},[(_vm.dateType=='quarter')?_c('FlexBox',{staticClass:"xt-date-picker",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"开始时间","quarter-type":"quarter-start","clearable":""},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"结束时间","quarter-type":"quarter-end","clearable":""},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1):_c('FlexBox',{staticClass:"xt-date",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('el-date-picker',{key:"startSelect",ref:"timeStart",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.startTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"开始时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('el-date-picker',{key:"endSelect",ref:"timeEnd",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.endTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"结束时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1)],1)
130924
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130925
+ var ex_date_pickervue_type_template_id_ff20c256_scoped_true_render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{"display":"inline-block"}},[(_vm.dateType=='quarter')?_c('FlexBox',{staticClass:"xt-date-picker",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"开始时间","quarter-type":"quarter-start","clearable":""},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('Quarter',{attrs:{"format":_vm.format,"placeholder":"结束时间","quarter-type":"quarter-end","clearable":""},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1):_c('FlexBox',{staticClass:"xt-date",class:{focus: _vm.isfocus},style:(_vm.width?{width: `${_vm.width}px`}:{}),attrs:{"type":"inline-flex"}},[_c('el-date-picker',{key:"startSelect",ref:"timeStart",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.startTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"开始时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeStart),callback:function ($$v) {_vm.timeStart=$$v},expression:"timeStart"}}),_c('span',{staticClass:"separator"},[_vm._v(_vm._s(_vm.separator))]),_c('el-date-picker',{key:"endSelect",ref:"timeEnd",attrs:{"size":"small","disabled":_vm.disabled,"append-to-body":"","picker-options":_vm.endTimeRange,"format":_vm.format,"type":_vm.dateType,"placeholder":"结束时间","clearable":""},on:{"blur":function($event){return _vm.$emit('blur')},"focus":function($event){return _vm.$emit('focus')}},model:{value:(_vm.timeEnd),callback:function ($$v) {_vm.timeEnd=$$v},expression:"timeEnd"}})],1)],1)
130186
130926
  }
130187
- var xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_staticRenderFns = []
130927
+ var ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns = []
130188
130928
 
130189
130929
 
130190
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue?vue&type=template&id=6a59ddb5&scoped=true
130930
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130191
130931
 
130192
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-date-picker/quarter.vue?vue&type=template&id=4e3cbf9a
130193
- var quartervue_type_template_id_4e3cbf9a_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-popover',{attrs:{"trigger":"click","disabled":_vm.disabled,"transition":"el-zoom-in-top","placement":_vm.placement,"width":_vm.popoverWidth},on:{"hide":_vm.handleBlur},model:{value:(_vm.popoverVisible),callback:function ($$v) {_vm.popoverVisible=$$v},expression:"popoverVisible"}},[_c('div',{staticClass:"quarter-wrapper"},[_c('BaseFlexBox',{attrs:{"content":"between"}},[_c('i',{staticClass:"el-icon-d-arrow-left",on:{"click":_vm.prev}}),_c('span',[_vm._v(_vm._s(_vm.selectYear))]),_c('i',{staticClass:"el-icon-d-arrow-right",on:{"click":_vm.after}})]),_c('BaseFlexBox',{staticStyle:{"margin-top":"10px"},attrs:{"content":"between"}},_vm._l((_vm.quarterList),function(item){return _c('el-button',{key:item.value,attrs:{"disabled":_vm.getDisable(item),"type":_vm.currentyear==_vm.selectYear&&item.value == _vm.currentQuarter ?'primary':'',"size":"mini","round":""},on:{"click":function($event){return _vm.setCurrent(item)}}},[_vm._v(_vm._s(item.label))])}),1)],1),_c('el-input',{ref:"reference",attrs:{"slot":"reference","size":"small","value":_vm.quarterLabel,"readonly":"","title":_vm.value,"placeholder":_vm.placeholder,"prefix-icon":"el-icon-date","clearable":""},slot:"reference"})],1)
130932
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
130933
+ var quartervue_type_template_id_39ae9f5e_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-popover',{attrs:{"trigger":"click","disabled":_vm.disabled,"transition":"el-zoom-in-top","placement":_vm.placement,"width":_vm.popoverWidth},on:{"hide":_vm.handleBlur},model:{value:(_vm.popoverVisible),callback:function ($$v) {_vm.popoverVisible=$$v},expression:"popoverVisible"}},[_c('div',{staticClass:"quarter-wrapper"},[_c('BaseFlexBox',{attrs:{"content":"between"}},[_c('i',{staticClass:"el-icon-d-arrow-left",on:{"click":_vm.prev}}),_c('span',[_vm._v(_vm._s(_vm.selectYear))]),_c('i',{staticClass:"el-icon-d-arrow-right",on:{"click":_vm.after}})]),_c('BaseFlexBox',{staticStyle:{"margin-top":"10px"},attrs:{"content":"between"}},_vm._l((_vm.quarterList),function(item){return _c('el-button',{key:item.value,attrs:{"disabled":_vm.getDisable(item),"type":_vm.currentyear==_vm.selectYear&&item.value == _vm.currentQuarter ?'primary':'',"size":"mini","round":""},on:{"click":function($event){return _vm.setCurrent(item)}}},[_vm._v(_vm._s(item.label))])}),1)],1),_c('el-input',{ref:"reference",attrs:{"slot":"reference","size":"small","value":_vm.quarterLabel,"readonly":"","title":_vm.value,"placeholder":_vm.placeholder,"prefix-icon":"el-icon-date","clearable":""},slot:"reference"})],1)
130194
130934
  }
130195
- var quartervue_type_template_id_4e3cbf9a_staticRenderFns = []
130935
+ var quartervue_type_template_id_39ae9f5e_staticRenderFns = []
130196
130936
 
130197
130937
 
130198
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue?vue&type=template&id=4e3cbf9a
130938
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
130199
130939
 
130200
130940
  // EXTERNAL MODULE: ./node_modules/date-fns/index.js
130201
130941
  var date_fns = __webpack_require__("340b");
130202
130942
  var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130203
130943
 
130204
- // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-date-picker/quarter.vue?vue&type=script&lang=js
130944
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/quarter.vue?vue&type=script&lang=js
130205
130945
 
130206
130946
 
130207
130947
 
@@ -130334,9 +131074,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130334
131074
  }
130335
131075
  });
130336
131076
 
130337
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue?vue&type=script&lang=js
130338
- /* harmony default export */ var xt_date_picker_quartervue_type_script_lang_js = (quartervue_type_script_lang_js);
130339
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue
131077
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=script&lang=js
131078
+ /* harmony default export */ var ex_date_picker_quartervue_type_script_lang_js = (quartervue_type_script_lang_js);
131079
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue
130340
131080
 
130341
131081
 
130342
131082
 
@@ -130345,9 +131085,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130345
131085
  /* normalize component */
130346
131086
 
130347
131087
  var quarter_component = normalizeComponent(
130348
- xt_date_picker_quartervue_type_script_lang_js,
130349
- quartervue_type_template_id_4e3cbf9a_render,
130350
- quartervue_type_template_id_4e3cbf9a_staticRenderFns,
131088
+ ex_date_picker_quartervue_type_script_lang_js,
131089
+ quartervue_type_template_id_39ae9f5e_render,
131090
+ quartervue_type_template_id_39ae9f5e_staticRenderFns,
130351
131091
  false,
130352
131092
  null,
130353
131093
  null,
@@ -130356,7 +131096,7 @@ var quarter_component = normalizeComponent(
130356
131096
  )
130357
131097
 
130358
131098
  /* harmony default export */ var quarter = (quarter_component.exports);
130359
- // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/xt-date-picker/index.vue?vue&type=script&lang=js
131099
+ // CONCATENATED MODULE: ./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-date-picker/index.vue?vue&type=script&lang=js
130360
131100
 
130361
131101
  const typeFormatEnum = {
130362
131102
  datetime: "yyyy-MM-dd HH:mm", month: "yyyy-MM", year: "yyyy", date: "yyyy-MM-dd", quarter: "yyyy-Qq", week: "yyyy-WW"
@@ -130364,8 +131104,8 @@ const typeFormatEnum = {
130364
131104
 
130365
131105
 
130366
131106
 
130367
- /* harmony default export */ var xt_date_pickervue_type_script_lang_js = ({
130368
- name: "XtDatePicker",
131107
+ /* harmony default export */ var ex_date_pickervue_type_script_lang_js = ({
131108
+ name: "ExDatePicker",
130369
131109
  components: {
130370
131110
  FlexBox: xt_flex_box,
130371
131111
  Quarter: quarter
@@ -130448,12 +131188,12 @@ const typeFormatEnum = {
130448
131188
  }
130449
131189
  });
130450
131190
 
130451
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue?vue&type=script&lang=js
130452
- /* harmony default export */ var components_xt_date_pickervue_type_script_lang_js = (xt_date_pickervue_type_script_lang_js);
130453
- // EXTERNAL MODULE: ./src/components/xt-date-picker/index.vue?vue&type=style&index=0&id=6a59ddb5&prod&lang=scss&scoped=true
130454
- var xt_date_pickervue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true = __webpack_require__("45be");
131191
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=script&lang=js
131192
+ /* harmony default export */ var components_ex_date_pickervue_type_script_lang_js = (ex_date_pickervue_type_script_lang_js);
131193
+ // EXTERNAL MODULE: ./src/components/ex-date-picker/index.vue?vue&type=style&index=0&id=ff20c256&prod&lang=scss&scoped=true
131194
+ var ex_date_pickervue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true = __webpack_require__("2cd0");
130455
131195
 
130456
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue
131196
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue
130457
131197
 
130458
131198
 
130459
131199
 
@@ -130462,21 +131202,21 @@ var xt_date_pickervue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true
130462
131202
 
130463
131203
  /* normalize component */
130464
131204
 
130465
- var xt_date_picker_component = normalizeComponent(
130466
- components_xt_date_pickervue_type_script_lang_js,
130467
- xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_render,
130468
- xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_staticRenderFns,
131205
+ var ex_date_picker_component = normalizeComponent(
131206
+ components_ex_date_pickervue_type_script_lang_js,
131207
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_render,
131208
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns,
130469
131209
  false,
130470
131210
  null,
130471
- "6a59ddb5",
131211
+ "ff20c256",
130472
131212
  null
130473
131213
 
130474
131214
  )
130475
131215
 
130476
- /* harmony default export */ var xt_date_picker = (xt_date_picker_component.exports);
130477
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.js
131216
+ /* harmony default export */ var ex_date_picker = (ex_date_picker_component.exports);
131217
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.js
130478
131218
 
130479
- /* harmony default export */ var components_xt_date_picker = (xt_date_picker);
131219
+ /* harmony default export */ var components_ex_date_picker = (ex_date_picker);
130480
131220
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"60253456-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--5!./node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ex-button/index.vue?vue&type=template&id=1b7e9238
130481
131221
  var ex_buttonvue_type_template_id_1b7e9238_render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-button',_vm._b({staticClass:"ex-button",class:_vm.buttonClasses,on:{"click":_vm.handleClick}},'el-button',_vm.$attrs,false),[_vm._t("default")],2)
130482
131222
  }
@@ -132754,6 +133494,9 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
132754
133494
 
132755
133495
 
132756
133496
 
133497
+
133498
+
133499
+
132757
133500
  // ExChart 组件(基于 ECharts 封装)
132758
133501
 
132759
133502
  // ExIcon 组件(支持 el-icon / svg / 自定义字体)
@@ -132771,9 +133514,12 @@ const src_components = [
132771
133514
  components_xt_card_item,
132772
133515
  components_xt_config_provider,
132773
133516
  components_xt_text,
133517
+ components_xt_time,
133518
+ components_xt_step_price,
133519
+ components_xt_step_price_item,
132774
133520
  components_xt_grid_box,
132775
133521
  components_xt_grid_item,
132776
- components_xt_date_picker,
133522
+ components_ex_date_picker,
132777
133523
  components_ex_button,
132778
133524
  components_ex_chart,
132779
133525
  components_ex_card,
@@ -132848,9 +133594,12 @@ if (typeof window !== 'undefined' && window.Vue) {
132848
133594
  XtCardItem: components_xt_card_item,
132849
133595
  XtConfigProvider: components_xt_config_provider,
132850
133596
  XtText: components_xt_text,
133597
+ XtTime: components_xt_time,
133598
+ XtStepPrice: components_xt_step_price,
133599
+ XtStepPriceItem: components_xt_step_price_item,
132851
133600
  XtGridBox: components_xt_grid_box,
132852
133601
  XtGridItem: components_xt_grid_item,
132853
- XtDatePicker: components_xt_date_picker,
133602
+ ExDatePicker: components_ex_date_picker,
132854
133603
  ExButton: components_ex_button,
132855
133604
  ExCard: components_ex_card,
132856
133605
  ExIcon: components_ex_icon,