xt-element-ui 1.2.6 → 1.2.7

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.
@@ -2346,6 +2346,13 @@ function addHours (dirtyDate, dirtyAmount) {
2346
2346
  module.exports = addHours
2347
2347
 
2348
2348
 
2349
+ /***/ }),
2350
+
2351
+ /***/ "1f2a":
2352
+ /***/ (function(module, exports, __webpack_require__) {
2353
+
2354
+ // extracted by mini-css-extract-plugin
2355
+
2349
2356
  /***/ }),
2350
2357
 
2351
2358
  /***/ "1fb5":
@@ -2873,6 +2880,17 @@ module.exports = isFuture
2873
2880
  /* unused harmony reexport * */
2874
2881
 
2875
2882
 
2883
+ /***/ }),
2884
+
2885
+ /***/ "2cd0":
2886
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
2887
+
2888
+ "use strict";
2889
+ /* 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");
2890
+ /* 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__);
2891
+ /* unused harmony reexport * */
2892
+
2893
+
2876
2894
  /***/ }),
2877
2895
 
2878
2896
  /***/ "2d23":
@@ -121838,17 +121856,6 @@ function startOfISOYear (dirtyDate) {
121838
121856
  module.exports = startOfISOYear
121839
121857
 
121840
121858
 
121841
- /***/ }),
121842
-
121843
- /***/ "45be":
121844
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
121845
-
121846
- "use strict";
121847
- /* 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");
121848
- /* 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__);
121849
- /* unused harmony reexport * */
121850
-
121851
-
121852
121859
  /***/ }),
121853
121860
 
121854
121861
  /***/ "48a6":
@@ -125284,13 +125291,6 @@ function isDate (argument) {
125284
125291
  module.exports = isDate
125285
125292
 
125286
125293
 
125287
- /***/ }),
125288
-
125289
- /***/ "a7e1":
125290
- /***/ (function(module, exports, __webpack_require__) {
125291
-
125292
- // extracted by mini-css-extract-plugin
125293
-
125294
125294
  /***/ }),
125295
125295
 
125296
125296
  /***/ "a852":
@@ -128170,6 +128170,7 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128170
128170
  tooltip: {
128171
128171
  borderWidth: 1,
128172
128172
  backgroundColor: "#ffffff",
128173
+ borderColor: "#dcdfe6",
128173
128174
  textStyle: {
128174
128175
  color: "#333333"
128175
128176
  },
@@ -128222,7 +128223,7 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128222
128223
  color: "#ffffff"
128223
128224
  },
128224
128225
  itemStyle: {
128225
- borderColor: variables_export_default.a.xtColorBorder
128226
+ borderColor: "#dcdfe6"
128226
128227
  }
128227
128228
  },
128228
128229
  gauge: {
@@ -128263,13 +128264,14 @@ var variables_export_default = /*#__PURE__*/__webpack_require__.n(variables_expo
128263
128264
  }
128264
128265
  },
128265
128266
  tooltip: {
128266
- backgroundColor: variables_export_default.a.xtColorBgOverlay,
128267
- borderColor: variables_export_default.a.xtColorBorder,
128267
+ backgroundColor: "#333333",
128268
128268
  borderWidth: 1,
128269
+ borderColor: "#dcdfe6",
128269
128270
  textStyle: {
128270
128271
  color: "#fff"
128271
128272
  }
128272
- }
128273
+ },
128274
+ trigger: "axis"
128273
128275
  });
128274
128276
 
128275
128277
  // CONCATENATED MODULE: ./src/components/ex-chart/utils.js
@@ -129266,13 +129268,13 @@ var xt_card_component = normalizeComponent(
129266
129268
  // CONCATENATED MODULE: ./src/components/xt-card/index.js
129267
129269
 
129268
129270
  /* harmony default export */ var components_xt_card = (xt_card);
129269
- // 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
129270
- 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)
129271
+ // 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
129272
+ 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)
129271
129273
  }
129272
- var xt_card_itemvue_type_template_id_b2553886_staticRenderFns = []
129274
+ var xt_card_itemvue_type_template_id_1e46df45_staticRenderFns = []
129273
129275
 
129274
129276
 
129275
- // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=b2553886
129277
+ // CONCATENATED MODULE: ./src/components/xt-card-item/index.vue?vue&type=template&id=1e46df45
129276
129278
 
129277
129279
  // 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
129278
129280
 
@@ -129303,8 +129305,8 @@ var xt_card_itemvue_type_template_id_b2553886_staticRenderFns = []
129303
129305
 
129304
129306
  var xt_card_item_component = normalizeComponent(
129305
129307
  components_xt_card_itemvue_type_script_lang_js,
129306
- xt_card_itemvue_type_template_id_b2553886_render,
129307
- xt_card_itemvue_type_template_id_b2553886_staticRenderFns,
129308
+ xt_card_itemvue_type_template_id_1e46df45_render,
129309
+ xt_card_itemvue_type_template_id_1e46df45_staticRenderFns,
129308
129310
  false,
129309
129311
  null,
129310
129312
  null,
@@ -129875,6 +129877,735 @@ var xt_text_component = normalizeComponent(
129875
129877
  // CONCATENATED MODULE: ./src/components/xt-text/index.js
129876
129878
 
129877
129879
  /* harmony default export */ var components_xt_text = (xt_text);
129880
+ // 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
129881
+ var xt_timevue_type_template_id_d29acf2c_render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:"xt-time",class:[
129882
+ _vm.typeColor ? 'xt-time--' + _vm.typeColor : '',
129883
+ 'xt-time--' + _vm.size,
129884
+ { 'xt-time--bold': _vm.bold }
129885
+ ],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)
129886
+ }
129887
+ var xt_timevue_type_template_id_d29acf2c_staticRenderFns = []
129888
+
129889
+
129890
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue?vue&type=template&id=d29acf2c
129891
+
129892
+ // 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
129893
+
129894
+ const DEFAULT_FORMAT = 'YYYY-MM-DD HH:mm:ss'
129895
+
129896
+ function pad(n) {
129897
+ const s = String(n)
129898
+ return s.length < 2 ? '0' + s : s
129899
+ }
129900
+
129901
+ /**
129902
+ * 根据字符串/数字/Date 解析为 Date 对象
129903
+ * 兼容:时间戳(ms/s)、Date、"2024-01-01"、"2024/01/01 12:00:00"、ISO 字符串
129904
+ */
129905
+ function parseDate(value) {
129906
+ if (value === null || value === undefined || value === '') return null
129907
+ if (value instanceof Date) return isNaN(value.getTime()) ? null : value
129908
+
129909
+ // 数字时间戳
129910
+ if (typeof value === 'number') {
129911
+ // 10 位秒级时间戳补 000
129912
+ const t = value < 1e12 ? value * 1000 : value
129913
+ const d = new Date(t)
129914
+ return isNaN(d.getTime()) ? null : d
129915
+ }
129916
+
129917
+ if (typeof value === 'string') {
129918
+ // 纯数字字符串
129919
+ if (/^\d+$/.test(value)) {
129920
+ const n = Number(value)
129921
+ const t = n < 1e12 ? n * 1000 : n
129922
+ const d = new Date(t)
129923
+ return isNaN(d.getTime()) ? null : d
129924
+ }
129925
+ // 将 "-" 统一为 "/",避免 Safari 下 "YYYY-MM-DD" 解析失败
129926
+ const normalized = value.replace(/-/g, '/')
129927
+ const d = new Date(normalized)
129928
+ return isNaN(d.getTime()) ? null : d
129929
+ }
129930
+
129931
+ return null
129932
+ }
129933
+
129934
+ /**
129935
+ * 简易 formatDateTime 实现(不依赖外部库)
129936
+ * 支持占位符:YYYY MM DD HH mm ss SSS
129937
+ */
129938
+ function formatDateTime(date, fmt) {
129939
+ if (!date) return ''
129940
+ const f = fmt || DEFAULT_FORMAT
129941
+ const map = {
129942
+ YYYY: date.getFullYear(),
129943
+ MM: pad(date.getMonth() + 1),
129944
+ DD: pad(date.getDate()),
129945
+ HH: pad(date.getHours()),
129946
+ mm: pad(date.getMinutes()),
129947
+ ss: pad(date.getSeconds()),
129948
+ SSS: String(date.getMilliseconds()).padStart(3, '0')
129949
+ }
129950
+ return f.replace(/YYYY|MM|DD|HH|mm|ss|SSS/g, (k) => map[k])
129951
+ }
129952
+
129953
+ /* harmony default export */ var xt_timevue_type_script_lang_js = ({
129954
+ name: 'XtTime',
129955
+
129956
+ props: {
129957
+ // 显示模式:now(当前时间实时刷新)/ countdown(倒计时)/ text(格式化日期文本)
129958
+ type: {
129959
+ type: String,
129960
+ default: 'now',
129961
+ validator: (val) => ['now', 'countdown', 'text'].includes(val)
129962
+ },
129963
+
129964
+ // ===== 通用 =====
129965
+ size: {
129966
+ type: String,
129967
+ default: 'base',
129968
+ validator: (val) =>
129969
+ ['extra-large', 'large', 'medium', 'base', 'small', 'extra-small'].includes(val)
129970
+ },
129971
+ typeColor: {
129972
+ type: String,
129973
+ default: '',
129974
+ validator: (val) => ['', 'primary', 'success', 'warning', 'danger'].includes(val)
129975
+ },
129976
+ bold: {
129977
+ type: Boolean,
129978
+ default: false
129979
+ },
129980
+ format: {
129981
+ type: String,
129982
+ default: DEFAULT_FORMAT
129983
+ },
129984
+ prefix: {
129985
+ type: String,
129986
+ default: ''
129987
+ },
129988
+ suffix: {
129989
+ type: String,
129990
+ default: ''
129991
+ },
129992
+ emptyText: {
129993
+ type: String,
129994
+ default: '-'
129995
+ },
129996
+ hideEmpty: {
129997
+ type: Boolean,
129998
+ default: false
129999
+ },
130000
+ interval: {
130001
+ type: Number,
130002
+ default: 1000,
130003
+ validator: (val) => val >= 100
130004
+ },
130005
+
130006
+ // ===== text 模式 =====
130007
+ // 兼容 v-model 用法,也可直接传 value / :value
130008
+ value: {
130009
+ type: [String, Number, Date],
130010
+ default: ''
130011
+ },
130012
+
130013
+ // ===== countdown 模式 =====
130014
+ targetTime: {
130015
+ type: [String, Number, Date],
130016
+ default: ''
130017
+ },
130018
+ // 倒计时显示格式:
130019
+ // DHMS -> 3天 12时 08分 30秒
130020
+ // HMS -> 12时 08分 30秒(天数自动折算到小时)
130021
+ // MS -> 08分 30秒(全部折算到分钟)
130022
+ // SEC -> 3200秒
130023
+ countdownFormat: {
130024
+ type: String,
130025
+ default: 'DHMS',
130026
+ validator: (val) => ['DHMS', 'HMS', 'MS', 'SEC'].includes(val)
130027
+ },
130028
+ finishedText: {
130029
+ type: String,
130030
+ default: '已结束'
130031
+ }
130032
+ },
130033
+
130034
+ data() {
130035
+ return {
130036
+ tick: 0
130037
+ }
130038
+ },
130039
+
130040
+ computed: {
130041
+ mode() {
130042
+ return this.type
130043
+ },
130044
+
130045
+ parsedValue() {
130046
+ return parseDate(this.value)
130047
+ },
130048
+
130049
+ parsedTarget() {
130050
+ return parseDate(this.targetTime)
130051
+ },
130052
+
130053
+ displayText() {
130054
+ if (!this.parsedValue) return undefined
130055
+ return formatDateTime(this.parsedValue, this.format)
130056
+ },
130057
+
130058
+ nowText() {
130059
+ // 通过 tick 触发刷新
130060
+ // eslint-disable-next-line no-unused-vars
130061
+ const _ = this.tick
130062
+ return formatDateTime(new Date(), this.format)
130063
+ },
130064
+
130065
+ // 剩余毫秒数(countdown 模式)
130066
+ remainingMs() {
130067
+ if (this.mode !== 'countdown') return 0
130068
+ // eslint-disable-next-line no-unused-vars
130069
+ const _ = this.tick
130070
+ if (!this.parsedTarget) return 0
130071
+ const diff = this.parsedTarget.getTime() - Date.now()
130072
+ return diff > 0 ? diff : 0
130073
+ },
130074
+
130075
+ isCountdownFinished() {
130076
+ return this.mode === 'countdown' && this.parsedTarget && this.remainingMs <= 0
130077
+ },
130078
+
130079
+ countdownText() {
130080
+ if (!this.parsedTarget) return this.emptyText
130081
+ const total = Math.floor(this.remainingMs / 1000)
130082
+ if (total <= 0) return this.finishedText
130083
+
130084
+ switch (this.countdownFormat) {
130085
+ case 'SEC':
130086
+ return `${total}秒`
130087
+ case 'MS': {
130088
+ const m = Math.floor(total / 60)
130089
+ const s = total % 60
130090
+ return `${pad(m)}分${pad(s)}秒`
130091
+ }
130092
+ case 'HMS': {
130093
+ const h = Math.floor(total / 3600)
130094
+ const m = Math.floor((total % 3600) / 60)
130095
+ const s = total % 60
130096
+ return `${pad(h)}时${pad(m)}分${pad(s)}秒`
130097
+ }
130098
+ case 'DHMS':
130099
+ default: {
130100
+ const d = Math.floor(total / 86400)
130101
+ const h = Math.floor((total % 86400) / 3600)
130102
+ const m = Math.floor((total % 3600) / 60)
130103
+ const s = total % 60
130104
+ return `${d}天${pad(h)}时${pad(m)}分${pad(s)}秒`
130105
+ }
130106
+ }
130107
+ },
130108
+
130109
+ customStyle() {
130110
+ return {}
130111
+ }
130112
+ },
130113
+
130114
+ watch: {
130115
+ type() {
130116
+ this.restartTimer()
130117
+ },
130118
+ interval() {
130119
+ this.restartTimer()
130120
+ }
130121
+ },
130122
+
130123
+ mounted() {
130124
+ this.restartTimer()
130125
+ },
130126
+
130127
+ beforeDestroy() {
130128
+ this.clearTimer()
130129
+ },
130130
+
130131
+ activated() {
130132
+ this.restartTimer()
130133
+ },
130134
+
130135
+ deactivated() {
130136
+ this.clearTimer()
130137
+ },
130138
+
130139
+ methods: {
130140
+ restartTimer() {
130141
+ this.clearTimer()
130142
+ if (this.mode === 'now' || this.mode === 'countdown') {
130143
+ // 立即刷新一次,避免首次渲染时 tick=0 导致的差异
130144
+ this.tick++
130145
+ this._timer = setInterval(() => {
130146
+ this.tick++
130147
+ // 倒计时结束触发 finish 事件
130148
+ if (this.mode === 'countdown' && this.parsedTarget && this.remainingMs <= 0) {
130149
+ this.clearTimer()
130150
+ this.$emit('finish')
130151
+ }
130152
+ }, this.interval)
130153
+ }
130154
+ },
130155
+
130156
+ clearTimer() {
130157
+ if (this._timer) {
130158
+ clearInterval(this._timer)
130159
+ this._timer = null
130160
+ }
130161
+ },
130162
+
130163
+ handleClick(e) {
130164
+ this.$emit('click', e)
130165
+ }
130166
+ }
130167
+ });
130168
+
130169
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue?vue&type=script&lang=js
130170
+ /* harmony default export */ var components_xt_timevue_type_script_lang_js = (xt_timevue_type_script_lang_js);
130171
+ // CONCATENATED MODULE: ./src/components/xt-time/index.vue
130172
+
130173
+
130174
+
130175
+
130176
+
130177
+ /* normalize component */
130178
+
130179
+ var xt_time_component = normalizeComponent(
130180
+ components_xt_timevue_type_script_lang_js,
130181
+ xt_timevue_type_template_id_d29acf2c_render,
130182
+ xt_timevue_type_template_id_d29acf2c_staticRenderFns,
130183
+ false,
130184
+ null,
130185
+ null,
130186
+ null
130187
+
130188
+ )
130189
+
130190
+ /* harmony default export */ var xt_time = (xt_time_component.exports);
130191
+ // CONCATENATED MODULE: ./src/components/xt-time/index.js
130192
+
130193
+ /* harmony default export */ var components_xt_time = (xt_time);
130194
+
130195
+ // 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=024462cc
130196
+ var xt_step_pricevue_type_template_id_024462cc_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()])
130197
+ }
130198
+ var xt_step_pricevue_type_template_id_024462cc_staticRenderFns = []
130199
+
130200
+
130201
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=024462cc
130202
+
130203
+ // 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=2417b1fa
130204
+ var xt_step_price_itemvue_type_template_id_2417b1fa_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)
130205
+ }
130206
+ var xt_step_price_itemvue_type_template_id_2417b1fa_staticRenderFns = []
130207
+
130208
+
130209
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=template&id=2417b1fa
130210
+
130211
+ // 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
130212
+
130213
+ /* harmony default export */ var xt_step_price_itemvue_type_script_lang_js = ({
130214
+ name: 'XtStepPriceItem',
130215
+
130216
+ props: {
130217
+ value: {
130218
+ type: Object,
130219
+ required: true,
130220
+ default: () => ({ min: 0, max: null, price: 0 })
130221
+ },
130222
+ index: { type: Number, default: 0 },
130223
+ isFirst: { type: Boolean, default: false },
130224
+ isLast: { type: Boolean, default: false },
130225
+ itemsLength: { type: Number, default: 1 },
130226
+ removable: { type: Boolean, default: true },
130227
+ disabled: { type: Boolean, default: false },
130228
+ minLocked: { type: Boolean, default: false },
130229
+ unit: { type: String, default: '元' },
130230
+ precision: { type: Number, default: 2 },
130231
+ // 左括号:默认 '[',传空则不显示
130232
+ leftBracket: { type: String, default: '[' },
130233
+ // 右括号:默认 null,走内置规则(只有1条为 ']',多条为 ')');传值则强制使用
130234
+ rightBracket: { type: String, default: null },
130235
+ // 字段名映射:{ min, max, price },允许传入的 value 使用自定义字段名
130236
+ fieldKeys: {
130237
+ type: Object,
130238
+ default: () => ({ min: 'min', max: 'max', price: 'price' })
130239
+ }
130240
+ },
130241
+
130242
+ computed: {
130243
+ keyMin() { return (this.fieldKeys && this.fieldKeys.min) || 'min' },
130244
+ keyMax() { return (this.fieldKeys && this.fieldKeys.max) || 'max' },
130245
+ keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130246
+ finalRightBracket() {
130247
+ if (this.rightBracket !== null && this.rightBracket !== undefined && this.rightBracket !== '') return this.rightBracket
130248
+ return this.itemsLength === 1 ? ']' : ')'
130249
+ },
130250
+ finalLeftBracket() {
130251
+ return (this.leftBracket === null || this.leftBracket === undefined) ? '[' : this.leftBracket
130252
+ }
130253
+ },
130254
+
130255
+ data() {
130256
+ const v = this.value
130257
+ const minVal = this.safeNumber(v && v[this.keyMin], 0)
130258
+ const maxVal = this.isLast ? null : this.safeNumber(v && v[this.keyMax], minVal + 1)
130259
+ const priceVal = this.safeNumber(v && v[this.keyPrice], 0)
130260
+ return {
130261
+ minInput: minVal,
130262
+ maxInput: maxVal,
130263
+ priceInput: priceVal
130264
+ }
130265
+ },
130266
+
130267
+ watch: {
130268
+ value: {
130269
+ deep: true,
130270
+ handler(val) {
130271
+ const minVal = this.safeNumber(val && val[this.keyMin], 0)
130272
+ this.minInput = minVal
130273
+ this.maxInput = this.isLast ? null : this.safeNumber(val && val[this.keyMax], minVal + 1)
130274
+ this.priceInput = this.safeNumber(val && val[this.keyPrice], 0)
130275
+ }
130276
+ },
130277
+ isLast(val) {
130278
+ if (val) {
130279
+ this.maxInput = null
130280
+ } else {
130281
+ const minVal = this.safeNumber(this.minInput, 0)
130282
+ const v = this.value
130283
+ this.maxInput = this.safeNumber(v && v[this.keyMax], minVal + 1)
130284
+ }
130285
+ }
130286
+ },
130287
+
130288
+ methods: {
130289
+ // 统一兜底:非数字输入一律转为 fallback(默认 0)
130290
+ safeNumber(v, fallback = 0) {
130291
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130292
+ const n = Number(v)
130293
+ return isNaN(n) ? fallback : n
130294
+ },
130295
+
130296
+ emitChange(partial) {
130297
+ const next = {
130298
+ [this.keyMin]: this.minInput,
130299
+ [this.keyMax]: this.isLast ? null : this.maxInput,
130300
+ [this.keyPrice]: this.priceInput,
130301
+ ...partial
130302
+ }
130303
+ this.$emit('input', next)
130304
+ this.$emit('change', next, this.index)
130305
+ },
130306
+
130307
+ onMinBlur() {
130308
+ const v = this.safeNumber(this.minInput, 0)
130309
+ this.minInput = v
130310
+ this.$emit('min-change', v, this.index)
130311
+ this.emitChange({ [this.keyMin]: v })
130312
+ },
130313
+
130314
+ onMaxBlur() {
130315
+ if (this.isLast) return
130316
+ const minVal = this.safeNumber(this.minInput, 0)
130317
+ let v = this.safeNumber(this.maxInput, minVal + 1)
130318
+ if (v <= minVal) v = minVal + 1
130319
+ this.maxInput = v
130320
+ this.$emit('max-change', v, this.index)
130321
+ this.emitChange({ [this.keyMax]: v })
130322
+ },
130323
+
130324
+ onPriceBlur() {
130325
+ let v = this.safeNumber(this.priceInput, 0)
130326
+ if (v < 0) v = 0
130327
+ v = Number(v.toFixed(this.precision))
130328
+ this.priceInput = v
130329
+ this.emitChange({ [this.keyPrice]: v })
130330
+ },
130331
+
130332
+ onDelete() {
130333
+ this.$emit('delete', this.index)
130334
+ }
130335
+ }
130336
+ });
130337
+
130338
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=script&lang=js
130339
+ /* harmony default export */ var components_xt_step_price_itemvue_type_script_lang_js = (xt_step_price_itemvue_type_script_lang_js);
130340
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue
130341
+
130342
+
130343
+
130344
+
130345
+
130346
+ /* normalize component */
130347
+
130348
+ var xt_step_price_item_component = normalizeComponent(
130349
+ components_xt_step_price_itemvue_type_script_lang_js,
130350
+ xt_step_price_itemvue_type_template_id_2417b1fa_render,
130351
+ xt_step_price_itemvue_type_template_id_2417b1fa_staticRenderFns,
130352
+ false,
130353
+ null,
130354
+ null,
130355
+ null
130356
+
130357
+ )
130358
+
130359
+ /* harmony default export */ var xt_step_price_item = (xt_step_price_item_component.exports);
130360
+ // 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
130361
+
130362
+
130363
+
130364
+ /* harmony default export */ var xt_step_pricevue_type_script_lang_js = ({
130365
+ name: 'XtStepPrice',
130366
+
130367
+ components: { XtStepPriceItem: xt_step_price_item },
130368
+
130369
+ computed: {
130370
+ keyMin() { return (this.fieldKeys && this.fieldKeys.min) || 'min' },
130371
+ keyMax() { return (this.fieldKeys && this.fieldKeys.max) || 'max' },
130372
+ keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130373
+ isLimitReached() {
130374
+ const lim = Number(this.limit)
130375
+ return lim > 0 && this.localItems.length >= lim
130376
+ }
130377
+ },
130378
+
130379
+ props: {
130380
+ value: {
130381
+ type: Array,
130382
+ default: () => []
130383
+ },
130384
+ title: { type: String, default: '' },
130385
+ unit: { type: String, default: '元' },
130386
+ precision: { type: Number, default: 2 },
130387
+ // 左括号:默认 '[',传空字符串则不显示
130388
+ leftBracket: { type: String, default: '[' },
130389
+ // 右括号:默认 null,走内置逻辑(只有1条为 ']',多条为 ')');传具体值则强制使用
130390
+ rightBracket: { type: String, default: null },
130391
+ // 字段名映射:{ min, max, price },允许传入的 value 使用自定义字段名
130392
+ fieldKeys: {
130393
+ type: Object,
130394
+ default: () => ({ min: 'min', max: 'max', price: 'price' })
130395
+ },
130396
+ // 阶梯数量上限;<= 0 表示不限制
130397
+ limit: { type: Number, default: 0 },
130398
+ disabled: { type: Boolean, default: false },
130399
+ tip: {
130400
+ type: String,
130401
+ default: '区间左闭右闭 [min, max],最后一级为 [min, +∞),保证连续且不重叠。'
130402
+ },
130403
+ // 默认初始值:当传入空数组时,是否自动生成首条默认阶梯 [0, +∞)
130404
+ defaultFirst: { type: Boolean, default: true }
130405
+ },
130406
+
130407
+ data() {
130408
+ return {
130409
+ localItems: this.normalize(this.value)
130410
+ }
130411
+ },
130412
+
130413
+ watch: {
130414
+ value: {
130415
+ deep: true,
130416
+ handler(val) {
130417
+ this.localItems = this.normalize(val)
130418
+ }
130419
+ }
130420
+ },
130421
+
130422
+ methods: {
130423
+ // 统一数字转换:空值/非法值一律转为 fallback(默认 0)
130424
+ safeNumber(v, fallback = 0) {
130425
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130426
+ const n = Number(v)
130427
+ return isNaN(n) ? fallback : n
130428
+ },
130429
+
130430
+ cloneItems(items) {
130431
+ if (!Array.isArray(items)) return []
130432
+ return items.map((it) => ({
130433
+ [this.keyMin]: this.safeNumber(it && it[this.keyMin], 0),
130434
+ [this.keyMax]: (it && it[this.keyMax] == null) || (it && it[this.keyMax] === '') ? null : this.safeNumber(it[this.keyMax], null),
130435
+ [this.keyPrice]: this.safeNumber(it && it[this.keyPrice], 0)
130436
+ }))
130437
+ },
130438
+
130439
+ normalize(items) {
130440
+ const list = this.cloneItems(items)
130441
+ if (list.length === 0 && this.defaultFirst) {
130442
+ list.push({ [this.keyMin]: 0, [this.keyMax]: null, [this.keyPrice]: 0 })
130443
+ }
130444
+ this.ensureContinuity(list)
130445
+ return list
130446
+ },
130447
+
130448
+ // 保证 items 连续且不重叠:items[i].max === items[i+1].min,首条 min === 0,末条 max === null
130449
+ ensureContinuity(list) {
130450
+ if (!Array.isArray(list) || list.length === 0) return
130451
+ list[0][this.keyMin] = 0
130452
+
130453
+ for (let i = 0; i < list.length; i++) {
130454
+ const cur = list[i]
130455
+ const next = list[i + 1]
130456
+ const curMin = this.safeNumber(cur[this.keyMin], 0)
130457
+ if (next) {
130458
+ let curMax = this.safeNumber(cur[this.keyMax], curMin + 1)
130459
+ if (curMax <= curMin) curMax = curMin + 1
130460
+ cur[this.keyMax] = curMax
130461
+ next[this.keyMin] = curMax
130462
+ } else {
130463
+ cur[this.keyMax] = null
130464
+ }
130465
+ cur[this.keyPrice] = this.safeNumber(cur[this.keyPrice], 0)
130466
+ }
130467
+ },
130468
+
130469
+ emit() {
130470
+ this.ensureContinuity(this.localItems)
130471
+ const cloned = this.cloneItems(this.localItems)
130472
+ this.$emit('input', cloned)
130473
+ this.$emit('change', cloned)
130474
+ },
130475
+
130476
+ onItemInput(val, idx) {
130477
+ const cur = this.localItems[idx]
130478
+ if (!cur) return
130479
+ if (val && val[this.keyPrice] !== undefined) cur[this.keyPrice] = this.safeNumber(val[this.keyPrice], 0)
130480
+ },
130481
+
130482
+ onMaxChange(val, idx) {
130483
+ const cur = this.localItems[idx]
130484
+ if (!cur) return
130485
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0) + 1)
130486
+ cur[this.keyMax] = n
130487
+ const next = this.localItems[idx + 1]
130488
+ if (next) next[this.keyMin] = n
130489
+ this.emit()
130490
+ },
130491
+
130492
+ onMinChange(val, idx) {
130493
+ const cur = this.localItems[idx]
130494
+ if (!cur) return
130495
+ if (idx === 0) {
130496
+ cur[this.keyMin] = 0
130497
+ } else {
130498
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0))
130499
+ cur[this.keyMin] = n
130500
+ const prev = this.localItems[idx - 1]
130501
+ if (prev) prev[this.keyMax] = n
130502
+ }
130503
+ this.emit()
130504
+ },
130505
+
130506
+ onAdd() {
130507
+ debugger
130508
+ const list = this.localItems
130509
+ const lim = Number(this.limit)
130510
+ if (lim > 0 && list.length >= lim) return
130511
+
130512
+ // 场景 1:空数组 —— 直接 push 一条 [0, +∞)
130513
+ if (list.length === 0) {
130514
+ list.push({
130515
+ [this.keyMin]: 0,
130516
+ [this.keyMax]: null,
130517
+ [this.keyPrice]: 10
130518
+ })
130519
+ this.emit()
130520
+ return
130521
+ }
130522
+
130523
+ // 场景 2:已有数据 —— 在末条前插入新条
130524
+ const last = list[list.length - 1]
130525
+ const newMin = this.safeNumber(last[this.keyMin], 0)
130526
+ const newMax = newMin + 1
130527
+
130528
+ // 新条 price:优先继承「倒数第二条」的 price,其次用末条 price(>0 时),否则默认 10
130529
+ const prev = list[list.length - 2]
130530
+ let newPrice = 10
130531
+ if (prev) {
130532
+ newPrice = this.safeNumber(prev[this.keyPrice], 10)
130533
+ } else {
130534
+ const lastPrice = this.safeNumber(last[this.keyPrice], 0)
130535
+ newPrice = lastPrice > 0 ? lastPrice : 10
130536
+ }
130537
+
130538
+ // 关键修复:构造全新数组,避免 splice 导致 Vue 组件复用 & 响应式不同步
130539
+ // 新条 = { newMin, newMax, newPrice }
130540
+ // 新末条 = { min: newMax, max: null, price: newPrice }
130541
+ const newArr = [
130542
+ ...list.slice(0, -1),
130543
+ {
130544
+ [this.keyMin]: newMin,
130545
+ [this.keyMax]: newMax,
130546
+ [this.keyPrice]: newPrice
130547
+ },
130548
+ {
130549
+ [this.keyMin]: newMax,
130550
+ [this.keyMax]: null,
130551
+ [this.keyPrice]: newPrice
130552
+ }
130553
+ ]
130554
+
130555
+ this.localItems = newArr
130556
+ this.emit()
130557
+ },
130558
+
130559
+ onDelete(idx) {
130560
+ const list = this.localItems
130561
+ if (list.length <= 1) return // 至少保留一条
130562
+ if (idx === 0) return // 首条不允许删除,保证区间起点始终为 0
130563
+ const cur = list[idx]
130564
+ const prev = list[idx - 1]
130565
+ const next = list[idx + 1]
130566
+ if (prev && next) {
130567
+ prev[this.keyMax] = cur[this.keyMax] == null ? null : Number(cur[this.keyMax])
130568
+ } else if (prev && !next) {
130569
+ prev[this.keyMax] = null
130570
+ } else if (!prev && next) {
130571
+ next[this.keyMin] = 0
130572
+ }
130573
+ list.splice(idx, 1)
130574
+ this.emit()
130575
+ }
130576
+ }
130577
+ });
130578
+
130579
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=script&lang=js
130580
+ /* harmony default export */ var components_xt_step_pricevue_type_script_lang_js = (xt_step_pricevue_type_script_lang_js);
130581
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue
130582
+
130583
+
130584
+
130585
+
130586
+
130587
+ /* normalize component */
130588
+
130589
+ var xt_step_price_component = normalizeComponent(
130590
+ components_xt_step_pricevue_type_script_lang_js,
130591
+ xt_step_pricevue_type_template_id_024462cc_render,
130592
+ xt_step_pricevue_type_template_id_024462cc_staticRenderFns,
130593
+ false,
130594
+ null,
130595
+ null,
130596
+ null
130597
+
130598
+ )
130599
+
130600
+ /* harmony default export */ var xt_step_price = (xt_step_price_component.exports);
130601
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.js
130602
+
130603
+ /* harmony default export */ var components_xt_step_price = (xt_step_price);
130604
+
130605
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.js
130606
+
130607
+ /* harmony default export */ var components_xt_step_price_item = (xt_step_price_item);
130608
+
129878
130609
  // 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
129879
130610
  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)
129880
130611
  }
@@ -130172,27 +130903,27 @@ var xt_grid_item_component = normalizeComponent(
130172
130903
  // CONCATENATED MODULE: ./src/components/xt-grid-item/index.js
130173
130904
 
130174
130905
  /* harmony default export */ var components_xt_grid_item = (xt_grid_item);
130175
- // 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
130176
- 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)
130906
+ // 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
130907
+ 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)
130177
130908
  }
130178
- var xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_staticRenderFns = []
130909
+ var ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns = []
130179
130910
 
130180
130911
 
130181
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue?vue&type=template&id=6a59ddb5&scoped=true
130912
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130182
130913
 
130183
- // 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
130184
- 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)
130914
+ // 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
130915
+ 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)
130185
130916
  }
130186
- var quartervue_type_template_id_4e3cbf9a_staticRenderFns = []
130917
+ var quartervue_type_template_id_39ae9f5e_staticRenderFns = []
130187
130918
 
130188
130919
 
130189
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue?vue&type=template&id=4e3cbf9a
130920
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
130190
130921
 
130191
130922
  // EXTERNAL MODULE: ./node_modules/date-fns/index.js
130192
130923
  var date_fns = __webpack_require__("340b");
130193
130924
  var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130194
130925
 
130195
- // 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
130926
+ // 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
130196
130927
 
130197
130928
 
130198
130929
 
@@ -130325,9 +131056,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130325
131056
  }
130326
131057
  });
130327
131058
 
130328
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue?vue&type=script&lang=js
130329
- /* harmony default export */ var xt_date_picker_quartervue_type_script_lang_js = (quartervue_type_script_lang_js);
130330
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue
131059
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=script&lang=js
131060
+ /* harmony default export */ var ex_date_picker_quartervue_type_script_lang_js = (quartervue_type_script_lang_js);
131061
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue
130331
131062
 
130332
131063
 
130333
131064
 
@@ -130336,9 +131067,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130336
131067
  /* normalize component */
130337
131068
 
130338
131069
  var quarter_component = normalizeComponent(
130339
- xt_date_picker_quartervue_type_script_lang_js,
130340
- quartervue_type_template_id_4e3cbf9a_render,
130341
- quartervue_type_template_id_4e3cbf9a_staticRenderFns,
131070
+ ex_date_picker_quartervue_type_script_lang_js,
131071
+ quartervue_type_template_id_39ae9f5e_render,
131072
+ quartervue_type_template_id_39ae9f5e_staticRenderFns,
130342
131073
  false,
130343
131074
  null,
130344
131075
  null,
@@ -130347,7 +131078,7 @@ var quarter_component = normalizeComponent(
130347
131078
  )
130348
131079
 
130349
131080
  /* harmony default export */ var quarter = (quarter_component.exports);
130350
- // 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
131081
+ // 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
130351
131082
 
130352
131083
  const typeFormatEnum = {
130353
131084
  datetime: "yyyy-MM-dd HH:mm", month: "yyyy-MM", year: "yyyy", date: "yyyy-MM-dd", quarter: "yyyy-Qq", week: "yyyy-WW"
@@ -130355,8 +131086,8 @@ const typeFormatEnum = {
130355
131086
 
130356
131087
 
130357
131088
 
130358
- /* harmony default export */ var xt_date_pickervue_type_script_lang_js = ({
130359
- name: "XtDatePicker",
131089
+ /* harmony default export */ var ex_date_pickervue_type_script_lang_js = ({
131090
+ name: "ExDatePicker",
130360
131091
  components: {
130361
131092
  FlexBox: xt_flex_box,
130362
131093
  Quarter: quarter
@@ -130439,12 +131170,12 @@ const typeFormatEnum = {
130439
131170
  }
130440
131171
  });
130441
131172
 
130442
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue?vue&type=script&lang=js
130443
- /* harmony default export */ var components_xt_date_pickervue_type_script_lang_js = (xt_date_pickervue_type_script_lang_js);
130444
- // EXTERNAL MODULE: ./src/components/xt-date-picker/index.vue?vue&type=style&index=0&id=6a59ddb5&prod&lang=scss&scoped=true
130445
- var xt_date_pickervue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true = __webpack_require__("45be");
131173
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=script&lang=js
131174
+ /* harmony default export */ var components_ex_date_pickervue_type_script_lang_js = (ex_date_pickervue_type_script_lang_js);
131175
+ // EXTERNAL MODULE: ./src/components/ex-date-picker/index.vue?vue&type=style&index=0&id=ff20c256&prod&lang=scss&scoped=true
131176
+ var ex_date_pickervue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true = __webpack_require__("2cd0");
130446
131177
 
130447
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue
131178
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue
130448
131179
 
130449
131180
 
130450
131181
 
@@ -130453,21 +131184,21 @@ var xt_date_pickervue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true
130453
131184
 
130454
131185
  /* normalize component */
130455
131186
 
130456
- var xt_date_picker_component = normalizeComponent(
130457
- components_xt_date_pickervue_type_script_lang_js,
130458
- xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_render,
130459
- xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_staticRenderFns,
131187
+ var ex_date_picker_component = normalizeComponent(
131188
+ components_ex_date_pickervue_type_script_lang_js,
131189
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_render,
131190
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns,
130460
131191
  false,
130461
131192
  null,
130462
- "6a59ddb5",
131193
+ "ff20c256",
130463
131194
  null
130464
131195
 
130465
131196
  )
130466
131197
 
130467
- /* harmony default export */ var xt_date_picker = (xt_date_picker_component.exports);
130468
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.js
131198
+ /* harmony default export */ var ex_date_picker = (ex_date_picker_component.exports);
131199
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.js
130469
131200
 
130470
- /* harmony default export */ var components_xt_date_picker = (xt_date_picker);
131201
+ /* harmony default export */ var components_ex_date_picker = (ex_date_picker);
130471
131202
  // 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
130472
131203
  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)
130473
131204
  }
@@ -132745,6 +133476,9 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
132745
133476
 
132746
133477
 
132747
133478
 
133479
+
133480
+
133481
+
132748
133482
  // ExChart 组件(基于 ECharts 封装)
132749
133483
 
132750
133484
  // ExIcon 组件(支持 el-icon / svg / 自定义字体)
@@ -132762,9 +133496,12 @@ const src_components = [
132762
133496
  components_xt_card_item,
132763
133497
  components_xt_config_provider,
132764
133498
  components_xt_text,
133499
+ components_xt_time,
133500
+ components_xt_step_price,
133501
+ components_xt_step_price_item,
132765
133502
  components_xt_grid_box,
132766
133503
  components_xt_grid_item,
132767
- components_xt_date_picker,
133504
+ components_ex_date_picker,
132768
133505
  components_ex_button,
132769
133506
  components_ex_chart,
132770
133507
  components_ex_card,
@@ -132839,9 +133576,12 @@ if (typeof window !== 'undefined' && window.Vue) {
132839
133576
  XtCardItem: components_xt_card_item,
132840
133577
  XtConfigProvider: components_xt_config_provider,
132841
133578
  XtText: components_xt_text,
133579
+ XtTime: components_xt_time,
133580
+ XtStepPrice: components_xt_step_price,
133581
+ XtStepPriceItem: components_xt_step_price_item,
132842
133582
  XtGridBox: components_xt_grid_box,
132843
133583
  XtGridItem: components_xt_grid_item,
132844
- XtDatePicker: components_xt_date_picker,
133584
+ ExDatePicker: components_ex_date_picker,
132845
133585
  ExButton: components_ex_button,
132846
133586
  ExCard: components_ex_card,
132847
133587
  ExIcon: components_ex_icon,