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.
@@ -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,744 @@ 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=263a6004
130196
+ 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()])
130197
+ }
130198
+ var xt_step_pricevue_type_template_id_263a6004_staticRenderFns = []
130199
+
130200
+
130201
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=template&id=263a6004
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=8fdfa548
130204
+ 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)
130205
+ }
130206
+ var xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns = []
130207
+
130208
+
130209
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=template&id=8fdfa548
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 { minVal, maxVal, priceVal } = this.getPriceItem(this.value)
130257
+ return {
130258
+ minInput: minVal,
130259
+ maxInput: maxVal,
130260
+ priceInput: priceVal
130261
+ }
130262
+ },
130263
+
130264
+ watch: {
130265
+ value: {
130266
+ deep: true,
130267
+ immediate: true,
130268
+ handler(val) {
130269
+ const { minVal, maxVal, priceVal } = this.getPriceItem(val)
130270
+ this.minInput = minVal
130271
+ this.maxInput = maxVal
130272
+ this.priceInput = priceVal
130273
+ }
130274
+ },
130275
+ isLast(val) {
130276
+ if (val) {
130277
+ this.maxInput = null
130278
+ } else {
130279
+ const minVal = this.safeNumber(this.minInput, 0)
130280
+ const v = this.value
130281
+ this.maxInput = this.safeNumber(v && v[this.keyMax], minVal + 1)
130282
+ }
130283
+ }
130284
+ },
130285
+
130286
+ methods: {
130287
+ getPriceItem(value) {
130288
+ const v = value
130289
+ const minVal = this.safeNumber(v && v[this.keyMin], 0)
130290
+ const maxVal = this.isLast ? null : this.safeNumber(v && v[this.keyMax], minVal + 1)
130291
+ const priceVal = this.safeNumber(v && v[this.keyPrice], 0)
130292
+ return {
130293
+ minVal,
130294
+ maxVal,
130295
+ priceVal
130296
+ }
130297
+ },
130298
+ // 统一兜底:非数字输入一律转为 fallback(默认 0)
130299
+ safeNumber(v, fallback = 0) {
130300
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130301
+ const n = Number(v)
130302
+ return isNaN(n) ? fallback : n
130303
+ },
130304
+
130305
+ emitChange(partial) {
130306
+ const next = {
130307
+ [this.keyMin]: this.minInput,
130308
+ [this.keyMax]: this.isLast ? null : this.maxInput,
130309
+ [this.keyPrice]: this.priceInput,
130310
+ ...partial
130311
+ }
130312
+ this.$emit('input', next)
130313
+ this.$emit('change', next, this.index)
130314
+ },
130315
+
130316
+ onMinBlur() {
130317
+ const v = this.safeNumber(this.minInput, 0)
130318
+ this.minInput = v
130319
+ this.$emit('min-change', v, this.index)
130320
+ this.emitChange({ [this.keyMin]: v })
130321
+ },
130322
+
130323
+ onMaxBlur() {
130324
+ if (this.isLast) return
130325
+ const minVal = this.safeNumber(this.minInput, 0)
130326
+ let v = this.safeNumber(this.maxInput, minVal + 1)
130327
+ if (v <= minVal) v = minVal + 1
130328
+ this.maxInput = v
130329
+ this.$emit('max-change', v, this.index)
130330
+ this.emitChange({ [this.keyMax]: v })
130331
+ },
130332
+
130333
+ onPriceBlur() {
130334
+ let v = this.safeNumber(this.priceInput, 0)
130335
+ if (v < 0) v = 0
130336
+ v = Number(v.toFixed(this.precision))
130337
+ this.priceInput = v
130338
+ this.emitChange({ [this.keyPrice]: v })
130339
+ },
130340
+
130341
+ onDelete() {
130342
+ this.$emit('delete', this.index)
130343
+ }
130344
+ }
130345
+ });
130346
+
130347
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue?vue&type=script&lang=js
130348
+ /* harmony default export */ var components_xt_step_price_itemvue_type_script_lang_js = (xt_step_price_itemvue_type_script_lang_js);
130349
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.vue
130350
+
130351
+
130352
+
130353
+
130354
+
130355
+ /* normalize component */
130356
+
130357
+ var xt_step_price_item_component = normalizeComponent(
130358
+ components_xt_step_price_itemvue_type_script_lang_js,
130359
+ xt_step_price_itemvue_type_template_id_8fdfa548_render,
130360
+ xt_step_price_itemvue_type_template_id_8fdfa548_staticRenderFns,
130361
+ false,
130362
+ null,
130363
+ null,
130364
+ null
130365
+
130366
+ )
130367
+
130368
+ /* harmony default export */ var xt_step_price_item = (xt_step_price_item_component.exports);
130369
+ // 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
130370
+
130371
+
130372
+
130373
+ /* harmony default export */ var xt_step_pricevue_type_script_lang_js = ({
130374
+ name: 'XtStepPrice',
130375
+
130376
+ components: { XtStepPriceItem: xt_step_price_item },
130377
+
130378
+ computed: {
130379
+ keyMin() { return (this.fieldKeys && this.fieldKeys.min) || 'min' },
130380
+ keyMax() { return (this.fieldKeys && this.fieldKeys.max) || 'max' },
130381
+ keyPrice() { return (this.fieldKeys && this.fieldKeys.price) || 'price' },
130382
+ isLimitReached() {
130383
+ const lim = Number(this.limit)
130384
+ return lim > 0 && this.localItems.length >= lim
130385
+ }
130386
+ },
130387
+
130388
+ props: {
130389
+ value: {
130390
+ type: Array,
130391
+ default: () => []
130392
+ },
130393
+ title: { type: String, default: '' },
130394
+ unit: { type: String, default: '元' },
130395
+ precision: { type: Number, default: 2 },
130396
+ // 左括号:默认 '[',传空字符串则不显示
130397
+ leftBracket: { type: String, default: '[' },
130398
+ // 右括号:默认 null,走内置逻辑(只有1条为 ']',多条为 ')');传具体值则强制使用
130399
+ rightBracket: { type: String, default: null },
130400
+ // 字段名映射:{ min, max, price },允许传入的 value 使用自定义字段名
130401
+ fieldKeys: {
130402
+ type: Object,
130403
+ default: () => ({ min: 'min', max: 'max', price: 'price' })
130404
+ },
130405
+ // 阶梯数量上限;<= 0 表示不限制
130406
+ limit: { type: Number, default: 0 },
130407
+ disabled: { type: Boolean, default: false },
130408
+ tip: {
130409
+ type: String,
130410
+ default: '区间左闭右闭 [min, max],最后一级为 [min, +∞),保证连续且不重叠。'
130411
+ },
130412
+ // 默认初始值:当传入空数组时,是否自动生成首条默认阶梯 [0, +∞)
130413
+ defaultFirst: { type: Boolean, default: true }
130414
+ },
130415
+
130416
+ data() {
130417
+ return {
130418
+ localItems: this.normalize(this.value)
130419
+ }
130420
+ },
130421
+
130422
+ watch: {
130423
+ value: {
130424
+ deep: true,
130425
+ immediate: true,
130426
+ handler(val) {
130427
+ this.localItems = this.normalize(val)
130428
+ }
130429
+ }
130430
+ },
130431
+
130432
+ methods: {
130433
+ // 统一数字转换:空值/非法值一律转为 fallback(默认 0)
130434
+ safeNumber(v, fallback = 0) {
130435
+ if (v === null || v === undefined || v === '' || v === Infinity || v === -Infinity) return fallback
130436
+ const n = Number(v)
130437
+ return isNaN(n) ? fallback : n
130438
+ },
130439
+
130440
+ cloneItems(items) {
130441
+ if (!Array.isArray(items)) return []
130442
+ return items.map((it) => ({
130443
+ [this.keyMin]: this.safeNumber(it && it[this.keyMin], 0),
130444
+ [this.keyMax]: (it && it[this.keyMax] == null) || (it && it[this.keyMax] === '') ? null : this.safeNumber(it[this.keyMax], null),
130445
+ [this.keyPrice]: this.safeNumber(it && it[this.keyPrice], 0)
130446
+ }))
130447
+ },
130448
+
130449
+ normalize(items) {
130450
+ const list = this.cloneItems(items)
130451
+ if (list.length === 0 && this.defaultFirst) {
130452
+ list.push({ [this.keyMin]: 0, [this.keyMax]: null, [this.keyPrice]: 0 })
130453
+ }
130454
+ this.ensureContinuity(list)
130455
+ return list
130456
+ },
130457
+
130458
+ // 保证 items 连续且不重叠:items[i].max === items[i+1].min,首条 min === 0,末条 max === null
130459
+ ensureContinuity(list) {
130460
+ if (!Array.isArray(list) || list.length === 0) return
130461
+ list[0][this.keyMin] = 0
130462
+
130463
+ for (let i = 0; i < list.length; i++) {
130464
+ const cur = list[i]
130465
+ const next = list[i + 1]
130466
+ const curMin = this.safeNumber(cur[this.keyMin], 0)
130467
+ if (next) {
130468
+ let curMax = this.safeNumber(cur[this.keyMax], curMin + 1)
130469
+ if (curMax <= curMin) curMax = curMin + 1
130470
+ cur[this.keyMax] = curMax
130471
+ next[this.keyMin] = curMax
130472
+ } else {
130473
+ cur[this.keyMax] = null
130474
+ }
130475
+ cur[this.keyPrice] = this.safeNumber(cur[this.keyPrice], 0)
130476
+ }
130477
+ },
130478
+
130479
+ emit() {
130480
+ this.ensureContinuity(this.localItems)
130481
+ const cloned = this.cloneItems(this.localItems)
130482
+ this.$emit('input', cloned)
130483
+ this.$emit('change', cloned)
130484
+ },
130485
+
130486
+ onItemInput(val, idx) {
130487
+ const cur = this.localItems[idx]
130488
+ if (!cur) return
130489
+ if (val && val[this.keyPrice] !== undefined) cur[this.keyPrice] = this.safeNumber(val[this.keyPrice], 0)
130490
+ },
130491
+
130492
+ onMaxChange(val, idx) {
130493
+ const cur = this.localItems[idx]
130494
+ if (!cur) return
130495
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0) + 1)
130496
+ cur[this.keyMax] = n
130497
+ const next = this.localItems[idx + 1]
130498
+ if (next) next[this.keyMin] = n
130499
+ this.emit()
130500
+ },
130501
+
130502
+ onMinChange(val, idx) {
130503
+ const cur = this.localItems[idx]
130504
+ if (!cur) return
130505
+ if (idx === 0) {
130506
+ cur[this.keyMin] = 0
130507
+ } else {
130508
+ const n = this.safeNumber(val, this.safeNumber(cur[this.keyMin], 0))
130509
+ cur[this.keyMin] = n
130510
+ const prev = this.localItems[idx - 1]
130511
+ if (prev) prev[this.keyMax] = n
130512
+ }
130513
+ this.emit()
130514
+ },
130515
+
130516
+ onAdd() {
130517
+ const list = this.localItems
130518
+ const lim = Number(this.limit)
130519
+ if (lim > 0 && list.length >= lim) return
130520
+
130521
+ // 场景 1:空数组 —— 直接 push 一条 [0, +∞)
130522
+ if (list.length === 0) {
130523
+ list.push({
130524
+ [this.keyMin]: 0,
130525
+ [this.keyMax]: null,
130526
+ [this.keyPrice]: 10
130527
+ })
130528
+ this.emit()
130529
+ return
130530
+ }
130531
+
130532
+ // 场景 2:已有数据 —— 在末条前插入新条
130533
+ const last = list[list.length - 1]
130534
+ const newMin = this.safeNumber(last[this.keyMin], 0)
130535
+ const newMax = newMin + 1
130536
+
130537
+ // 新条 price:优先继承「倒数第二条」的 price,其次用末条 price(>0 时),否则默认 10
130538
+ const prev = list[list.length - 2]
130539
+ let newPrice = 10
130540
+ if (prev) {
130541
+ newPrice = this.safeNumber(prev[this.keyPrice], 10)
130542
+ } else {
130543
+ const lastPrice = this.safeNumber(last[this.keyPrice], 0)
130544
+ newPrice = lastPrice > 0 ? lastPrice : 10
130545
+ }
130546
+
130547
+ // 关键修复:构造全新数组,避免 splice 导致 Vue 组件复用 & 响应式不同步
130548
+ // 新条 = { newMin, newMax, newPrice }
130549
+ // 新末条 = { min: newMax, max: null, price: newPrice }
130550
+ const newArr = [
130551
+ ...list.slice(0, -1),
130552
+ {
130553
+ [this.keyMin]: newMin,
130554
+ [this.keyMax]: newMax,
130555
+ [this.keyPrice]: newPrice
130556
+ },
130557
+ {
130558
+ [this.keyMin]: newMax,
130559
+ [this.keyMax]: null,
130560
+ [this.keyPrice]: newPrice
130561
+ }
130562
+ ]
130563
+
130564
+ this.localItems = newArr
130565
+ this.emit()
130566
+ },
130567
+
130568
+ onDelete(idx) {
130569
+ const list = this.localItems
130570
+ if (list.length <= 1) return // 至少保留一条
130571
+ if (idx === 0) return // 首条不允许删除,保证区间起点始终为 0
130572
+ const cur = list[idx]
130573
+ const prev = list[idx - 1]
130574
+ const next = list[idx + 1]
130575
+ if (prev && next) {
130576
+ prev[this.keyMax] = cur[this.keyMax] == null ? null : Number(cur[this.keyMax])
130577
+ } else if (prev && !next) {
130578
+ prev[this.keyMax] = null
130579
+ } else if (!prev && next) {
130580
+ next[this.keyMin] = 0
130581
+ }
130582
+ list.splice(idx, 1)
130583
+ this.emit()
130584
+ }
130585
+ }
130586
+ });
130587
+
130588
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue?vue&type=script&lang=js
130589
+ /* harmony default export */ var components_xt_step_pricevue_type_script_lang_js = (xt_step_pricevue_type_script_lang_js);
130590
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.vue
130591
+
130592
+
130593
+
130594
+
130595
+
130596
+ /* normalize component */
130597
+
130598
+ var xt_step_price_component = normalizeComponent(
130599
+ components_xt_step_pricevue_type_script_lang_js,
130600
+ xt_step_pricevue_type_template_id_263a6004_render,
130601
+ xt_step_pricevue_type_template_id_263a6004_staticRenderFns,
130602
+ false,
130603
+ null,
130604
+ null,
130605
+ null
130606
+
130607
+ )
130608
+
130609
+ /* harmony default export */ var xt_step_price = (xt_step_price_component.exports);
130610
+ // CONCATENATED MODULE: ./src/components/xt-step-price/index.js
130611
+
130612
+ /* harmony default export */ var components_xt_step_price = (xt_step_price);
130613
+
130614
+ // CONCATENATED MODULE: ./src/components/xt-step-price-item/index.js
130615
+
130616
+ /* harmony default export */ var components_xt_step_price_item = (xt_step_price_item);
130617
+
129878
130618
  // 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
130619
  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
130620
  }
@@ -130172,27 +130912,27 @@ var xt_grid_item_component = normalizeComponent(
130172
130912
  // CONCATENATED MODULE: ./src/components/xt-grid-item/index.js
130173
130913
 
130174
130914
  /* 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)
130915
+ // 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
130916
+ 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
130917
  }
130178
- var xt_date_pickervue_type_template_id_6a59ddb5_scoped_true_staticRenderFns = []
130918
+ var ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns = []
130179
130919
 
130180
130920
 
130181
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue?vue&type=template&id=6a59ddb5&scoped=true
130921
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=template&id=ff20c256&scoped=true
130182
130922
 
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)
130923
+ // 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
130924
+ 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
130925
  }
130186
- var quartervue_type_template_id_4e3cbf9a_staticRenderFns = []
130926
+ var quartervue_type_template_id_39ae9f5e_staticRenderFns = []
130187
130927
 
130188
130928
 
130189
- // CONCATENATED MODULE: ./src/components/xt-date-picker/quarter.vue?vue&type=template&id=4e3cbf9a
130929
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=template&id=39ae9f5e
130190
130930
 
130191
130931
  // EXTERNAL MODULE: ./node_modules/date-fns/index.js
130192
130932
  var date_fns = __webpack_require__("340b");
130193
130933
  var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130194
130934
 
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
130935
+ // 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
130936
 
130197
130937
 
130198
130938
 
@@ -130325,9 +131065,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130325
131065
  }
130326
131066
  });
130327
131067
 
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
131068
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue?vue&type=script&lang=js
131069
+ /* harmony default export */ var ex_date_picker_quartervue_type_script_lang_js = (quartervue_type_script_lang_js);
131070
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/quarter.vue
130331
131071
 
130332
131072
 
130333
131073
 
@@ -130336,9 +131076,9 @@ var date_fns_default = /*#__PURE__*/__webpack_require__.n(date_fns);
130336
131076
  /* normalize component */
130337
131077
 
130338
131078
  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,
131079
+ ex_date_picker_quartervue_type_script_lang_js,
131080
+ quartervue_type_template_id_39ae9f5e_render,
131081
+ quartervue_type_template_id_39ae9f5e_staticRenderFns,
130342
131082
  false,
130343
131083
  null,
130344
131084
  null,
@@ -130347,7 +131087,7 @@ var quarter_component = normalizeComponent(
130347
131087
  )
130348
131088
 
130349
131089
  /* 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
131090
+ // 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
131091
 
130352
131092
  const typeFormatEnum = {
130353
131093
  datetime: "yyyy-MM-dd HH:mm", month: "yyyy-MM", year: "yyyy", date: "yyyy-MM-dd", quarter: "yyyy-Qq", week: "yyyy-WW"
@@ -130355,8 +131095,8 @@ const typeFormatEnum = {
130355
131095
 
130356
131096
 
130357
131097
 
130358
- /* harmony default export */ var xt_date_pickervue_type_script_lang_js = ({
130359
- name: "XtDatePicker",
131098
+ /* harmony default export */ var ex_date_pickervue_type_script_lang_js = ({
131099
+ name: "ExDatePicker",
130360
131100
  components: {
130361
131101
  FlexBox: xt_flex_box,
130362
131102
  Quarter: quarter
@@ -130439,12 +131179,12 @@ const typeFormatEnum = {
130439
131179
  }
130440
131180
  });
130441
131181
 
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");
131182
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue?vue&type=script&lang=js
131183
+ /* harmony default export */ var components_ex_date_pickervue_type_script_lang_js = (ex_date_pickervue_type_script_lang_js);
131184
+ // EXTERNAL MODULE: ./src/components/ex-date-picker/index.vue?vue&type=style&index=0&id=ff20c256&prod&lang=scss&scoped=true
131185
+ var ex_date_pickervue_type_style_index_0_id_ff20c256_prod_lang_scss_scoped_true = __webpack_require__("2cd0");
130446
131186
 
130447
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.vue
131187
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.vue
130448
131188
 
130449
131189
 
130450
131190
 
@@ -130453,21 +131193,21 @@ var xt_date_pickervue_type_style_index_0_id_6a59ddb5_prod_lang_scss_scoped_true
130453
131193
 
130454
131194
  /* normalize component */
130455
131195
 
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,
131196
+ var ex_date_picker_component = normalizeComponent(
131197
+ components_ex_date_pickervue_type_script_lang_js,
131198
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_render,
131199
+ ex_date_pickervue_type_template_id_ff20c256_scoped_true_staticRenderFns,
130460
131200
  false,
130461
131201
  null,
130462
- "6a59ddb5",
131202
+ "ff20c256",
130463
131203
  null
130464
131204
 
130465
131205
  )
130466
131206
 
130467
- /* harmony default export */ var xt_date_picker = (xt_date_picker_component.exports);
130468
- // CONCATENATED MODULE: ./src/components/xt-date-picker/index.js
131207
+ /* harmony default export */ var ex_date_picker = (ex_date_picker_component.exports);
131208
+ // CONCATENATED MODULE: ./src/components/ex-date-picker/index.js
130469
131209
 
130470
- /* harmony default export */ var components_xt_date_picker = (xt_date_picker);
131210
+ /* harmony default export */ var components_ex_date_picker = (ex_date_picker);
130471
131211
  // 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
131212
  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
131213
  }
@@ -132745,6 +133485,9 @@ const { getConfig: src_getConfig, setConfig: src_setConfig, getTheme: src_getThe
132745
133485
 
132746
133486
 
132747
133487
 
133488
+
133489
+
133490
+
132748
133491
  // ExChart 组件(基于 ECharts 封装)
132749
133492
 
132750
133493
  // ExIcon 组件(支持 el-icon / svg / 自定义字体)
@@ -132762,9 +133505,12 @@ const src_components = [
132762
133505
  components_xt_card_item,
132763
133506
  components_xt_config_provider,
132764
133507
  components_xt_text,
133508
+ components_xt_time,
133509
+ components_xt_step_price,
133510
+ components_xt_step_price_item,
132765
133511
  components_xt_grid_box,
132766
133512
  components_xt_grid_item,
132767
- components_xt_date_picker,
133513
+ components_ex_date_picker,
132768
133514
  components_ex_button,
132769
133515
  components_ex_chart,
132770
133516
  components_ex_card,
@@ -132839,9 +133585,12 @@ if (typeof window !== 'undefined' && window.Vue) {
132839
133585
  XtCardItem: components_xt_card_item,
132840
133586
  XtConfigProvider: components_xt_config_provider,
132841
133587
  XtText: components_xt_text,
133588
+ XtTime: components_xt_time,
133589
+ XtStepPrice: components_xt_step_price,
133590
+ XtStepPriceItem: components_xt_step_price_item,
132842
133591
  XtGridBox: components_xt_grid_box,
132843
133592
  XtGridItem: components_xt_grid_item,
132844
- XtDatePicker: components_xt_date_picker,
133593
+ ExDatePicker: components_ex_date_picker,
132845
133594
  ExButton: components_ex_button,
132846
133595
  ExCard: components_ex_card,
132847
133596
  ExIcon: components_ex_icon,