snail.vue 2.0.10 → 2.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/snail.vue.d.ts +252 -104
- package/dist/snail.vue.js +862 -338
- package/dist/snail.vue.umd.js +861 -337
- package/dist/styles/snail.vue.vue.css +27 -25
- package/package.json +2 -2
package/dist/snail.vue.umd.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
})(this, (function (exports, vue, snail_core, snail_view) { 'use strict';
|
|
7
7
|
|
|
8
8
|
const _hoisted_1$k = ["title"];
|
|
9
|
-
var _sfc_main$
|
|
9
|
+
var _sfc_main$z = vue.defineComponent({
|
|
10
10
|
...{
|
|
11
11
|
name: "Button",
|
|
12
12
|
inheritAttrs: true
|
|
@@ -67,8 +67,8 @@
|
|
|
67
67
|
|
|
68
68
|
const _hoisted_1$j = ["width", "height"];
|
|
69
69
|
const _hoisted_2$c = ["textContent"];
|
|
70
|
-
const _hoisted_3$
|
|
71
|
-
var _sfc_main$
|
|
70
|
+
const _hoisted_3$a = ["fill", "stroke", "stroke-width", "d"];
|
|
71
|
+
var _sfc_main$y = vue.defineComponent({
|
|
72
72
|
...{
|
|
73
73
|
name: "Icon",
|
|
74
74
|
inheritAttrs: true
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
stroke: __props.stroke,
|
|
105
105
|
"stroke-width": __props.strokeWidth,
|
|
106
106
|
d
|
|
107
|
-
}, null, 8, _hoisted_3$
|
|
107
|
+
}, null, 8, _hoisted_3$a);
|
|
108
108
|
}), 256))], 46, _hoisted_1$j);
|
|
109
109
|
};
|
|
110
110
|
}
|
|
@@ -112,9 +112,9 @@
|
|
|
112
112
|
|
|
113
113
|
const _hoisted_1$i = ["title", "onClick"];
|
|
114
114
|
const _hoisted_2$b = ["type", "checked"];
|
|
115
|
-
const _hoisted_3$
|
|
116
|
-
const _hoisted_4$
|
|
117
|
-
var _sfc_main$
|
|
115
|
+
const _hoisted_3$9 = ["textContent"];
|
|
116
|
+
const _hoisted_4$7 = ["textContent"];
|
|
117
|
+
var _sfc_main$x = vue.defineComponent({
|
|
118
118
|
...{
|
|
119
119
|
name: "Choose",
|
|
120
120
|
inheritAttrs: true
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
}, null, 8, _hoisted_2$b)) : vue.unref(mode) == "beautiful" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
194
194
|
key: 1,
|
|
195
195
|
class: vue.normalizeClass(["status", [node.selected ? "selected" : ""]])
|
|
196
|
-
}, [node.selected ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
196
|
+
}, [node.selected ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
197
197
|
key: 0,
|
|
198
198
|
type: "success",
|
|
199
199
|
size: 12,
|
|
@@ -202,18 +202,22 @@
|
|
|
202
202
|
key: 2,
|
|
203
203
|
class: "item-text",
|
|
204
204
|
textContent: vue.toDisplayString(node.item.text)
|
|
205
|
-
}, null, 8, _hoisted_3$
|
|
205
|
+
}, null, 8, _hoisted_3$9)) : vue.createCommentVNode("", true), node.item.description ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
206
206
|
key: 3,
|
|
207
207
|
class: "item-des",
|
|
208
208
|
textContent: vue.toDisplayString(node.item.description)
|
|
209
|
-
}, null, 8, _hoisted_4$
|
|
209
|
+
}, null, 8, _hoisted_4$7)) : vue.createCommentVNode("", true)], 14, _hoisted_1$i);
|
|
210
210
|
}), 128))], 2);
|
|
211
211
|
};
|
|
212
212
|
}
|
|
213
213
|
});
|
|
214
214
|
|
|
215
|
+
var addLink = href => setTimeout(snail_view.link.register, 0, href);
|
|
216
|
+
|
|
217
|
+
addLink("/styles/snail.vue.vue.css");
|
|
218
|
+
|
|
215
219
|
const _hoisted_1$h = ["id"];
|
|
216
|
-
var _sfc_main$
|
|
220
|
+
var _sfc_main$w = vue.defineComponent({
|
|
217
221
|
__name: "datepicker",
|
|
218
222
|
props: {
|
|
219
223
|
type: {},
|
|
@@ -369,11 +373,7 @@
|
|
|
369
373
|
}
|
|
370
374
|
});
|
|
371
375
|
|
|
372
|
-
var
|
|
373
|
-
|
|
374
|
-
addLink("/styles/snail.vue.vue.css");
|
|
375
|
-
|
|
376
|
-
var _sfc_main$u = vue.defineComponent({
|
|
376
|
+
var _sfc_main$v = vue.defineComponent({
|
|
377
377
|
...{
|
|
378
378
|
name: "Footer",
|
|
379
379
|
inheritAttrs: true
|
|
@@ -404,13 +404,13 @@
|
|
|
404
404
|
class: vue.normalizeClass(["snail-footer", {
|
|
405
405
|
"start-divider": __props.divider
|
|
406
406
|
}, __props.align || "right"])
|
|
407
|
-
}, [vue.renderSlot(_ctx.$slots, "default", {}, () => [__props.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
407
|
+
}, [vue.renderSlot(_ctx.$slots, "default", {}, () => [__props.cancelDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
408
408
|
key: 0,
|
|
409
409
|
size: "max",
|
|
410
410
|
type: "default",
|
|
411
411
|
onClick: _cache[0] || (_cache[0] = $event => emits("cancel")),
|
|
412
412
|
textContent: vue.toDisplayString(__props.cancelName || "取消")
|
|
413
|
-
}, null, 8, ["textContent"])) : vue.createCommentVNode("", true), __props.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
413
|
+
}, null, 8, ["textContent"])) : vue.createCommentVNode("", true), __props.confirmDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
414
414
|
key: 1,
|
|
415
415
|
size: "max",
|
|
416
416
|
type: "primary",
|
|
@@ -422,7 +422,7 @@
|
|
|
422
422
|
});
|
|
423
423
|
|
|
424
424
|
const _hoisted_1$g = ["textContent"];
|
|
425
|
-
var _sfc_main$
|
|
425
|
+
var _sfc_main$u = vue.defineComponent({
|
|
426
426
|
...{
|
|
427
427
|
name: "Header",
|
|
428
428
|
inheritAttrs: true
|
|
@@ -461,7 +461,7 @@
|
|
|
461
461
|
key: 0,
|
|
462
462
|
textContent: vue.toDisplayString(__props.title),
|
|
463
463
|
class: vue.normalizeClass(["header-title", __props.titleAlign])
|
|
464
|
-
}, null, 10, _hoisted_1$g)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
464
|
+
}, null, 10, _hoisted_1$g)) : vue.createCommentVNode("", true), vue.renderSlot(_ctx.$slots, "default"), __props.closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
465
465
|
key: 1,
|
|
466
466
|
type: "close",
|
|
467
467
|
size: 22,
|
|
@@ -479,12 +479,12 @@
|
|
|
479
479
|
class: "required",
|
|
480
480
|
textContent: "*"
|
|
481
481
|
};
|
|
482
|
-
const _hoisted_3$
|
|
482
|
+
const _hoisted_3$8 = {
|
|
483
483
|
class: "input-body"
|
|
484
484
|
};
|
|
485
|
-
const _hoisted_4$
|
|
486
|
-
const _hoisted_5$
|
|
487
|
-
var _sfc_main$
|
|
485
|
+
const _hoisted_4$6 = ["type", "value", "readonly", "placeholder", "title"];
|
|
486
|
+
const _hoisted_5$4 = ["title"];
|
|
487
|
+
var _sfc_main$t = vue.defineComponent({
|
|
488
488
|
...{
|
|
489
489
|
name: "Input",
|
|
490
490
|
inheritAttrs: true
|
|
@@ -536,7 +536,7 @@
|
|
|
536
536
|
}, [vue.createElementVNode("span", {
|
|
537
537
|
class: "text",
|
|
538
538
|
textContent: vue.toDisplayString(__props.title)
|
|
539
|
-
}, null, 8, _hoisted_1$f), __props.readonly != true && __props.required == true ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a)) : vue.createCommentVNode("", true)], 4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_3$
|
|
539
|
+
}, null, 8, _hoisted_1$f), __props.readonly != true && __props.required == true ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$a)) : vue.createCommentVNode("", true)], 4)) : vue.createCommentVNode("", true), vue.createElementVNode("div", _hoisted_3$8, [vue.createElementVNode("input", {
|
|
540
540
|
ref: "input-el",
|
|
541
541
|
type: __props.type || "text",
|
|
542
542
|
value: inputModel.value,
|
|
@@ -545,15 +545,15 @@
|
|
|
545
545
|
title: inputModel.value,
|
|
546
546
|
onChange: onValueChange,
|
|
547
547
|
onClick: _cache[0] || (_cache[0] = $event => emits("click"))
|
|
548
|
-
}, null, 40, _hoisted_4$
|
|
548
|
+
}, null, 40, _hoisted_4$6), !!validateRef.value ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
549
549
|
key: 0,
|
|
550
550
|
class: "validate",
|
|
551
551
|
title: validateRef.value
|
|
552
|
-
}, [vue.createVNode(_sfc_main$
|
|
552
|
+
}, [vue.createVNode(_sfc_main$y, {
|
|
553
553
|
type: "error",
|
|
554
554
|
size: 16,
|
|
555
555
|
color: "red"
|
|
556
|
-
})], 8, _hoisted_5$
|
|
556
|
+
})], 8, _hoisted_5$4)) : vue.createCommentVNode("", true)])], 2);
|
|
557
557
|
};
|
|
558
558
|
}
|
|
559
559
|
});
|
|
@@ -763,15 +763,15 @@
|
|
|
763
763
|
class: "number-prefix"
|
|
764
764
|
};
|
|
765
765
|
const _hoisted_2$9 = ["textContent"];
|
|
766
|
-
const _hoisted_3$
|
|
767
|
-
const _hoisted_4$
|
|
766
|
+
const _hoisted_3$7 = ["inputmode", "placeholder", "title"];
|
|
767
|
+
const _hoisted_4$5 = {
|
|
768
768
|
key: 1,
|
|
769
769
|
class: "number-suffix"
|
|
770
770
|
};
|
|
771
|
-
const _hoisted_5$
|
|
772
|
-
const _hoisted_6$
|
|
771
|
+
const _hoisted_5$3 = ["textContent"];
|
|
772
|
+
const _hoisted_6$2 = ["title", "textContent"];
|
|
773
773
|
const _hoisted_7$1 = ["title", "textContent"];
|
|
774
|
-
var _sfc_main$
|
|
774
|
+
var _sfc_main$s = vue.defineComponent({
|
|
775
775
|
__name: "number",
|
|
776
776
|
props: vue.mergeModels({
|
|
777
777
|
placeholder: {},
|
|
@@ -933,18 +933,18 @@
|
|
|
933
933
|
onFocus: _cache[1] || (_cache[1] = $event => vue.isRef(needBackSection) ? needBackSection.value = true : needBackSection = true),
|
|
934
934
|
onPaste: _cache[2] || (_cache[2] = $event => vue.isRef(needBackSection) ? needBackSection.value = false : needBackSection = false),
|
|
935
935
|
onBlur: _cache[3] || (_cache[3] = $event => formatOnEnd(true))
|
|
936
|
-
}, null, 40, _hoisted_3$
|
|
936
|
+
}, null, 40, _hoisted_3$7), [[vue.vModelText, displayValueRef.value]]), vue.unref(controls) == "default" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
937
937
|
key: 0
|
|
938
938
|
}, [vue.createElementVNode("div", {
|
|
939
939
|
class: "controls default subtract",
|
|
940
940
|
onClick: _cache[4] || (_cache[4] = $event => onStepClick(false))
|
|
941
|
-
}, [vue.createVNode(_sfc_main$
|
|
941
|
+
}, [vue.createVNode(_sfc_main$y, {
|
|
942
942
|
type: "subtract",
|
|
943
943
|
size: 20
|
|
944
944
|
})]), vue.createElementVNode("div", {
|
|
945
945
|
class: "controls default plus",
|
|
946
946
|
onClick: _cache[5] || (_cache[5] = $event => onStepClick(true))
|
|
947
|
-
}, [vue.createVNode(_sfc_main$
|
|
947
|
+
}, [vue.createVNode(_sfc_main$y, {
|
|
948
948
|
type: "plus",
|
|
949
949
|
size: 20
|
|
950
950
|
})])], 64)) : vue.unref(controls) == "right" ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
@@ -952,26 +952,26 @@
|
|
|
952
952
|
}, [vue.createElementVNode("div", {
|
|
953
953
|
class: "controls right plus",
|
|
954
954
|
onClick: _cache[6] || (_cache[6] = $event => onStepClick(true))
|
|
955
|
-
}, [vue.createVNode(_sfc_main$
|
|
955
|
+
}, [vue.createVNode(_sfc_main$y, {
|
|
956
956
|
type: "arrow",
|
|
957
957
|
size: 20,
|
|
958
958
|
rotate: 270
|
|
959
959
|
})]), vue.createElementVNode("div", {
|
|
960
960
|
class: "controls right subtract",
|
|
961
961
|
onClick: _cache[7] || (_cache[7] = $event => onStepClick(false))
|
|
962
|
-
}, [vue.createVNode(_sfc_main$
|
|
962
|
+
}, [vue.createVNode(_sfc_main$y, {
|
|
963
963
|
type: "arrow",
|
|
964
964
|
size: 20,
|
|
965
965
|
rotate: 90
|
|
966
|
-
})])], 64)) : vue.createCommentVNode("", true)], 2), vue.unref(hasSuffix) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
966
|
+
})])], 64)) : vue.createCommentVNode("", true)], 2), vue.unref(hasSuffix) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$5, [vue.createElementVNode("span", {
|
|
967
967
|
class: "ellipsis",
|
|
968
968
|
textContent: vue.toDisplayString(vue.unref(suffix))
|
|
969
|
-
}, null, 8, _hoisted_5$
|
|
969
|
+
}, null, 8, _hoisted_5$3)])) : vue.createCommentVNode("", true), vue.unref(upper) ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
970
970
|
key: 2,
|
|
971
971
|
class: "number-util ellipsis",
|
|
972
972
|
title: upperTextRef.value,
|
|
973
973
|
textContent: vue.toDisplayString(`大写:${upperTextRef.value || ""}`)
|
|
974
|
-
}, null, 8, _hoisted_6$
|
|
974
|
+
}, null, 8, _hoisted_6$2)) : vue.createCommentVNode("", true), vue.unref(thousands) == "below" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
975
975
|
key: 3,
|
|
976
976
|
class: "number-util ellipsis",
|
|
977
977
|
title: thousandsTextRef.value,
|
|
@@ -983,7 +983,7 @@
|
|
|
983
983
|
|
|
984
984
|
const _hoisted_1$d = ["placeholder", "readonly"];
|
|
985
985
|
const searchIon = "M 860.16 824.32 l -163.84 -163.84 c 102.4 -120.32 97.28 -302.08 -17.92 -414.72 c -120.32 -120.32 -314.88 -120.32 -435.2 0 c -120.32 120.32 -120.32 314.88 0 435.2 c 112.64 112.64 294.4 120.32 414.72 17.92 l 163.84 163.84 c 10.24 10.24 25.6 10.24 35.84 0 c 12.8 -12.8 12.8 -28.16 2.56 -38.4 Z M 281.6 642.56 C 181.76 542.72 181.76 381.44 281.6 281.6 c 99.84 -99.84 261.12 -99.84 360.96 0 c 99.84 99.84 99.84 261.12 0 360.96 c -99.84 102.4 -261.12 102.4 -360.96 0 Z";
|
|
986
|
-
var _sfc_main$
|
|
986
|
+
var _sfc_main$r = vue.defineComponent({
|
|
987
987
|
...{
|
|
988
988
|
name: "Search",
|
|
989
989
|
inheritAttrs: true
|
|
@@ -1030,7 +1030,7 @@
|
|
|
1030
1030
|
onKeyup: _cache[1] || (_cache[1] = $event => onSearch($event))
|
|
1031
1031
|
}, null, 40, _hoisted_1$d), [[vue.vModelText, textModel.value, void 0, {
|
|
1032
1032
|
trim: true
|
|
1033
|
-
}]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$
|
|
1033
|
+
}]]), vue.createElementVNode("div", null, [vue.createVNode(_sfc_main$y, {
|
|
1034
1034
|
class: "search-button",
|
|
1035
1035
|
type: "custom",
|
|
1036
1036
|
draw: searchIon,
|
|
@@ -1255,7 +1255,7 @@
|
|
|
1255
1255
|
class: "snail-confirm flex-column"
|
|
1256
1256
|
};
|
|
1257
1257
|
const _hoisted_2$8 = ["innerHTML"];
|
|
1258
|
-
var _sfc_main$
|
|
1258
|
+
var _sfc_main$q = vue.defineComponent({
|
|
1259
1259
|
...{
|
|
1260
1260
|
name: "ConfirmContainer",
|
|
1261
1261
|
inheritAttrs: true
|
|
@@ -1283,14 +1283,14 @@
|
|
|
1283
1283
|
},
|
|
1284
1284
|
setup(__props) {
|
|
1285
1285
|
return (_ctx, _cache) => {
|
|
1286
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [vue.createVNode(_sfc_main$
|
|
1286
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [vue.createVNode(_sfc_main$u, {
|
|
1287
1287
|
"use-to": "dialog",
|
|
1288
1288
|
title: __props.title || "提示",
|
|
1289
1289
|
onClose: _cache[0] || (_cache[0] = $event => __props.closePopup(false))
|
|
1290
1290
|
}, null, 8, ["title"]), vue.createElementVNode("div", {
|
|
1291
1291
|
class: "confirm-body",
|
|
1292
1292
|
innerHTML: __props.message || "请确认?"
|
|
1293
|
-
}, null, 8, _hoisted_2$8), vue.createVNode(_sfc_main$
|
|
1293
|
+
}, null, 8, _hoisted_2$8), vue.createVNode(_sfc_main$v, {
|
|
1294
1294
|
align: "right",
|
|
1295
1295
|
"cancel-name": __props.cancelName,
|
|
1296
1296
|
"cancel-disabled": __props.cancelDisabled,
|
|
@@ -1303,7 +1303,7 @@
|
|
|
1303
1303
|
}
|
|
1304
1304
|
});
|
|
1305
1305
|
|
|
1306
|
-
var _sfc_main$
|
|
1306
|
+
var _sfc_main$p = vue.defineComponent({
|
|
1307
1307
|
...{
|
|
1308
1308
|
name: "Loading",
|
|
1309
1309
|
inheritAttrs: true
|
|
@@ -1342,7 +1342,7 @@
|
|
|
1342
1342
|
}
|
|
1343
1343
|
});
|
|
1344
1344
|
|
|
1345
|
-
var _sfc_main$
|
|
1345
|
+
var _sfc_main$o = vue.defineComponent({
|
|
1346
1346
|
...{
|
|
1347
1347
|
name: "Dynamic",
|
|
1348
1348
|
inheritAttrs: false
|
|
@@ -1366,7 +1366,7 @@
|
|
|
1366
1366
|
const loadingComponent = vue.defineComponent({
|
|
1367
1367
|
inheritAttrs: false,
|
|
1368
1368
|
components: {
|
|
1369
|
-
Loading: _sfc_main$
|
|
1369
|
+
Loading: _sfc_main$p
|
|
1370
1370
|
},
|
|
1371
1371
|
template: "<Loading :mask-disabled='true' />"
|
|
1372
1372
|
});
|
|
@@ -1433,7 +1433,7 @@
|
|
|
1433
1433
|
}
|
|
1434
1434
|
});
|
|
1435
1435
|
|
|
1436
|
-
var _sfc_main$
|
|
1436
|
+
var _sfc_main$n = vue.defineComponent({
|
|
1437
1437
|
...{
|
|
1438
1438
|
name: "DialogContainer",
|
|
1439
1439
|
inheritAttrs: true
|
|
@@ -1478,7 +1478,7 @@
|
|
|
1478
1478
|
onClick: _cache[1] || (_cache[1] = vue.withModifiers($event => {
|
|
1479
1479
|
__props.options.closeOnMask && vue.unref(closePopup)();
|
|
1480
1480
|
}, ["self"]))
|
|
1481
|
-
}, [vue.createVNode(_sfc_main$
|
|
1481
|
+
}, [vue.createVNode(_sfc_main$o, vue.mergeProps({
|
|
1482
1482
|
class: "dialog-body",
|
|
1483
1483
|
name: __props.options.name,
|
|
1484
1484
|
component: __props.options.component,
|
|
@@ -1493,7 +1493,7 @@
|
|
|
1493
1493
|
}
|
|
1494
1494
|
});
|
|
1495
1495
|
|
|
1496
|
-
var _sfc_main$
|
|
1496
|
+
var _sfc_main$m = vue.defineComponent({
|
|
1497
1497
|
...{
|
|
1498
1498
|
name: "FollowContainer",
|
|
1499
1499
|
inheritAttrs: true
|
|
@@ -1614,7 +1614,7 @@
|
|
|
1614
1614
|
});
|
|
1615
1615
|
});
|
|
1616
1616
|
return (_ctx, _cache) => {
|
|
1617
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
1617
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
|
|
1618
1618
|
class: ["snail-follow initial", [__props.popupStatus.value, __props.popupTransition.value]],
|
|
1619
1619
|
style: {
|
|
1620
1620
|
"z-index": __props.zIndex
|
|
@@ -1631,7 +1631,7 @@
|
|
|
1631
1631
|
}
|
|
1632
1632
|
});
|
|
1633
1633
|
|
|
1634
|
-
var _sfc_main$
|
|
1634
|
+
var _sfc_main$l = vue.defineComponent({
|
|
1635
1635
|
...{
|
|
1636
1636
|
name: "PopupContainer",
|
|
1637
1637
|
inheritAttrs: true
|
|
@@ -1651,7 +1651,7 @@
|
|
|
1651
1651
|
model = vue.shallowRef(void 0)
|
|
1652
1652
|
} = __props.options;
|
|
1653
1653
|
return (_ctx, _cache) => {
|
|
1654
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
1654
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
|
|
1655
1655
|
class: ["snail-popup", [__props.popupStatus.value, __props.popupTransition.value]],
|
|
1656
1656
|
style: {
|
|
1657
1657
|
"z-index": __props.zIndex
|
|
@@ -1674,7 +1674,7 @@
|
|
|
1674
1674
|
class: "icon"
|
|
1675
1675
|
};
|
|
1676
1676
|
const _hoisted_2$7 = ["innerHTML"];
|
|
1677
|
-
var _sfc_main$
|
|
1677
|
+
var _sfc_main$k = vue.defineComponent({
|
|
1678
1678
|
...{
|
|
1679
1679
|
name: "ToastContainer",
|
|
1680
1680
|
inheritAttrs: true
|
|
@@ -1712,7 +1712,7 @@
|
|
|
1712
1712
|
}),
|
|
1713
1713
|
onMouseenter: _cache[3] || (_cache[3] = $event => onMouseEvent(false)),
|
|
1714
1714
|
onMouseleave: _cache[4] || (_cache[4] = $event => onMouseEvent(true))
|
|
1715
|
-
}, [vue.unref(props).closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
1715
|
+
}, [vue.unref(props).closeDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
1716
1716
|
key: 0,
|
|
1717
1717
|
class: "close-icon",
|
|
1718
1718
|
type: "close",
|
|
@@ -1723,7 +1723,7 @@
|
|
|
1723
1723
|
onClick: _cache[2] || (_cache[2] = $event => {
|
|
1724
1724
|
vue.unref(closePopup)();
|
|
1725
1725
|
})
|
|
1726
|
-
}, null, 8, ["fill"])) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [vue.createVNode(_sfc_main$
|
|
1726
|
+
}, null, 8, ["fill"])) : vue.createCommentVNode("", true), vue.unref(props).type ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [vue.createVNode(_sfc_main$y, {
|
|
1727
1727
|
type: vue.unref(props).type,
|
|
1728
1728
|
fill: "#707070",
|
|
1729
1729
|
size: 20
|
|
@@ -1737,7 +1737,7 @@
|
|
|
1737
1737
|
|
|
1738
1738
|
function usePopup() {
|
|
1739
1739
|
function popup(options) {
|
|
1740
|
-
const scope = checkOptions(options, checkPopup) || popupInCustomContainer(_sfc_main$
|
|
1740
|
+
const scope = checkOptions(options, checkPopup) || popupInCustomContainer(_sfc_main$l, options);
|
|
1741
1741
|
return addScope2Scopes(scope);
|
|
1742
1742
|
}
|
|
1743
1743
|
function dialog(options) {
|
|
@@ -1770,7 +1770,7 @@
|
|
|
1770
1770
|
},
|
|
1771
1771
|
onBeforeClose: fn => hook.register("onBeforeClose", fn)
|
|
1772
1772
|
});
|
|
1773
|
-
const descriptor = openPopup(_sfc_main$
|
|
1773
|
+
const descriptor = openPopup(_sfc_main$n, options, extOptions);
|
|
1774
1774
|
scope = snail_core.useAsyncScope(deferred.promise);
|
|
1775
1775
|
monitorDialog(descriptor, scope, deferred);
|
|
1776
1776
|
}
|
|
@@ -1788,14 +1788,14 @@
|
|
|
1788
1788
|
inPopup: "follow",
|
|
1789
1789
|
target
|
|
1790
1790
|
};
|
|
1791
|
-
scope = checkOptions(options, checkFollow) || popupInCustomContainer(_sfc_main$
|
|
1791
|
+
scope = checkOptions(options, checkFollow) || popupInCustomContainer(_sfc_main$m, options, extOptions);
|
|
1792
1792
|
}
|
|
1793
1793
|
return addScope2Scopes(scope);
|
|
1794
1794
|
}
|
|
1795
1795
|
function confirm(title, message, options) {
|
|
1796
1796
|
options = options || Object.create(null);
|
|
1797
1797
|
return dialog({
|
|
1798
|
-
component: _sfc_main$
|
|
1798
|
+
component: _sfc_main$q,
|
|
1799
1799
|
closeOnEscape: true,
|
|
1800
1800
|
props: {
|
|
1801
1801
|
...options,
|
|
@@ -1805,7 +1805,7 @@
|
|
|
1805
1805
|
});
|
|
1806
1806
|
}
|
|
1807
1807
|
function toast(type, message, options) {
|
|
1808
|
-
return popupInCustomContainer(_sfc_main$
|
|
1808
|
+
return popupInCustomContainer(_sfc_main$k, {
|
|
1809
1809
|
url: "#ToastContainer",
|
|
1810
1810
|
props: {
|
|
1811
1811
|
...(options || Object.create(null)),
|
|
@@ -1838,7 +1838,7 @@
|
|
|
1838
1838
|
},
|
|
1839
1839
|
...extOptions
|
|
1840
1840
|
});
|
|
1841
|
-
const descriptor = openPopup(container || _sfc_main$
|
|
1841
|
+
const descriptor = openPopup(container || _sfc_main$l, options, extOptions);
|
|
1842
1842
|
const scope = snail_core.useAsyncScope(deferred.promise);
|
|
1843
1843
|
scope.onDestroy(() => destroyPopup(descriptor, deferred));
|
|
1844
1844
|
return scope;
|
|
@@ -1980,8 +1980,8 @@
|
|
|
1980
1980
|
class: "snail-empty"
|
|
1981
1981
|
};
|
|
1982
1982
|
const _hoisted_2$6 = ["src"];
|
|
1983
|
-
const _hoisted_3$
|
|
1984
|
-
var _sfc_main$
|
|
1983
|
+
const _hoisted_3$6 = ["textContent"];
|
|
1984
|
+
var _sfc_main$j = vue.defineComponent({
|
|
1985
1985
|
...{
|
|
1986
1986
|
name: "Empty",
|
|
1987
1987
|
inheritAttrs: true
|
|
@@ -1999,18 +1999,18 @@
|
|
|
1999
1999
|
}, null, 8, _hoisted_2$6), vue.renderSlot(_ctx.$slots, "default", {}, () => [vue.createElementVNode("div", {
|
|
2000
2000
|
class: "message",
|
|
2001
2001
|
textContent: vue.toDisplayString(__props.message || "无数据")
|
|
2002
|
-
}, null, 8, _hoisted_3$
|
|
2002
|
+
}, null, 8, _hoisted_3$6)])]);
|
|
2003
2003
|
};
|
|
2004
2004
|
}
|
|
2005
2005
|
});
|
|
2006
2006
|
|
|
2007
2007
|
const _hoisted_1$9 = ["title"];
|
|
2008
2008
|
const _hoisted_2$5 = ["textContent"];
|
|
2009
|
-
const _hoisted_3$
|
|
2009
|
+
const _hoisted_3$5 = {
|
|
2010
2010
|
key: 1,
|
|
2011
2011
|
class: "select-status"
|
|
2012
2012
|
};
|
|
2013
|
-
var _sfc_main$
|
|
2013
|
+
var _sfc_main$i = vue.defineComponent({
|
|
2014
2014
|
...{
|
|
2015
2015
|
name: "SelectNode",
|
|
2016
2016
|
inheritAttrs: true
|
|
@@ -2055,11 +2055,11 @@
|
|
|
2055
2055
|
}, [vue.createElementVNode("div", {
|
|
2056
2056
|
class: "item-text ellipsis",
|
|
2057
2057
|
textContent: vue.toDisplayString(__props.item.text)
|
|
2058
|
-
}, null, 8, _hoisted_2$5), __props.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2058
|
+
}, null, 8, _hoisted_2$5), __props.item.type == "group" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
2059
2059
|
key: 0,
|
|
2060
2060
|
type: "arrow",
|
|
2061
2061
|
color: "#8a9099"
|
|
2062
|
-
})) : __props.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$
|
|
2062
|
+
})) : __props.multiple == true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [vue.createVNode(_sfc_main$y, {
|
|
2063
2063
|
type: "success",
|
|
2064
2064
|
color: "white",
|
|
2065
2065
|
size: 12
|
|
@@ -2080,7 +2080,7 @@
|
|
|
2080
2080
|
}
|
|
2081
2081
|
});
|
|
2082
2082
|
|
|
2083
|
-
var _sfc_main$
|
|
2083
|
+
var _sfc_main$h = vue.defineComponent({
|
|
2084
2084
|
...{
|
|
2085
2085
|
name: "Select2Popup",
|
|
2086
2086
|
inheritAttrs: true
|
|
@@ -2252,13 +2252,13 @@
|
|
|
2252
2252
|
key: 0
|
|
2253
2253
|
}, [vue.createTextVNode(" 暂无选项 ")], 64)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
2254
2254
|
key: 1
|
|
2255
|
-
}, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2255
|
+
}, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$r, vue.mergeProps({
|
|
2256
2256
|
key: 0
|
|
2257
2257
|
}, __props.search, {
|
|
2258
2258
|
onSearch,
|
|
2259
2259
|
key: "select-search"
|
|
2260
2260
|
}), null, 16)) : vue.createCommentVNode("", true), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(itemsRef.value, item => {
|
|
2261
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2261
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$i, {
|
|
2262
2262
|
key: vue.unref(context).getKey(item),
|
|
2263
2263
|
multiple: __props.multiple,
|
|
2264
2264
|
item,
|
|
@@ -2267,7 +2267,7 @@
|
|
|
2267
2267
|
onEnter: onEnterSelectNode,
|
|
2268
2268
|
onClick: onClickSelectNode
|
|
2269
2269
|
}, null, 8, ["multiple", "item", "context"]);
|
|
2270
|
-
}), 128)), itemsRef.value.length == 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2270
|
+
}), 128)), itemsRef.value.length == 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$j, {
|
|
2271
2271
|
key: 1,
|
|
2272
2272
|
message: "无结果"
|
|
2273
2273
|
})) : vue.createCommentVNode("", true), showClearButtonRef.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
@@ -2284,15 +2284,15 @@
|
|
|
2284
2284
|
class: "select-result"
|
|
2285
2285
|
};
|
|
2286
2286
|
const _hoisted_2$4 = ["title", "textContent"];
|
|
2287
|
-
const _hoisted_3$
|
|
2288
|
-
const _hoisted_4$
|
|
2287
|
+
const _hoisted_3$4 = ["textContent"];
|
|
2288
|
+
const _hoisted_4$4 = {
|
|
2289
2289
|
key: 1,
|
|
2290
2290
|
class: "placeholder"
|
|
2291
2291
|
};
|
|
2292
2292
|
onAppCreated((app, type) => {
|
|
2293
|
-
type == "popup" && app.component("SelectPopup", _sfc_main$
|
|
2293
|
+
type == "popup" && app.component("SelectPopup", _sfc_main$h);
|
|
2294
2294
|
});
|
|
2295
|
-
var _sfc_main$
|
|
2295
|
+
var _sfc_main$g = vue.defineComponent({
|
|
2296
2296
|
...{
|
|
2297
2297
|
name: "Select",
|
|
2298
2298
|
inheritAttrs: true
|
|
@@ -2432,7 +2432,7 @@
|
|
|
2432
2432
|
key: 1,
|
|
2433
2433
|
class: "placeholder",
|
|
2434
2434
|
textContent: vue.toDisplayString(__props.readonly ? "" : __props.placeholder || "请选择")
|
|
2435
|
-
}, null, 8, _hoisted_3$
|
|
2435
|
+
}, null, 8, _hoisted_3$4)), __props.readonly != true ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
2436
2436
|
key: 2,
|
|
2437
2437
|
type: "arrow",
|
|
2438
2438
|
size: 24,
|
|
@@ -2440,12 +2440,12 @@
|
|
|
2440
2440
|
style: {
|
|
2441
2441
|
"transform": "rotate(90deg)"
|
|
2442
2442
|
}
|
|
2443
|
-
})) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
2443
|
+
})) : vue.createCommentVNode("", true)], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, "暂无可选项"))], 2);
|
|
2444
2444
|
};
|
|
2445
2445
|
}
|
|
2446
2446
|
});
|
|
2447
2447
|
|
|
2448
|
-
var _sfc_main$
|
|
2448
|
+
var _sfc_main$f = vue.defineComponent({
|
|
2449
2449
|
...{
|
|
2450
2450
|
name: "Switch",
|
|
2451
2451
|
inheritAttrs: true
|
|
@@ -2495,7 +2495,7 @@
|
|
|
2495
2495
|
});
|
|
2496
2496
|
|
|
2497
2497
|
const _hoisted_1$7 = ["readonly", "placeholder", "rows"];
|
|
2498
|
-
var _sfc_main$
|
|
2498
|
+
var _sfc_main$e = vue.defineComponent({
|
|
2499
2499
|
...{
|
|
2500
2500
|
name: "Textarea"
|
|
2501
2501
|
},
|
|
@@ -2564,16 +2564,16 @@
|
|
|
2564
2564
|
class: "fold-header"
|
|
2565
2565
|
};
|
|
2566
2566
|
const _hoisted_2$3 = ["textContent"];
|
|
2567
|
-
const _hoisted_3$
|
|
2568
|
-
const _hoisted_4$
|
|
2567
|
+
const _hoisted_3$3 = ["textContent"];
|
|
2568
|
+
const _hoisted_4$3 = {
|
|
2569
2569
|
key: 1,
|
|
2570
2570
|
class: "status"
|
|
2571
2571
|
};
|
|
2572
|
-
const _hoisted_5$
|
|
2572
|
+
const _hoisted_5$2 = {
|
|
2573
2573
|
class: "fold-body",
|
|
2574
2574
|
ref: "foldBody"
|
|
2575
2575
|
};
|
|
2576
|
-
var _sfc_main$
|
|
2576
|
+
var _sfc_main$d = vue.defineComponent({
|
|
2577
2577
|
...{
|
|
2578
2578
|
name: "Fold",
|
|
2579
2579
|
inheritAttrs: true
|
|
@@ -2650,16 +2650,16 @@
|
|
|
2650
2650
|
key: 0,
|
|
2651
2651
|
class: "subtitle ellipsis",
|
|
2652
2652
|
textContent: vue.toDisplayString(__props.subtitle)
|
|
2653
|
-
}, null, 8, _hoisted_3$
|
|
2653
|
+
}, null, 8, _hoisted_3$3)) : vue.createCommentVNode("", true), __props.disabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [vue.createVNode(_sfc_main$y, {
|
|
2654
2654
|
type: "arrow",
|
|
2655
2655
|
title: statusModel.value == "expand" ? "收起" : "展开",
|
|
2656
2656
|
onClick: onStatusClick
|
|
2657
|
-
}, null, 8, ["title"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$
|
|
2657
|
+
}, null, 8, ["title"])])) : vue.createCommentVNode("", true)])]), vue.createElementVNode("div", _hoisted_5$2, [vue.renderSlot(_ctx.$slots, "default")], 512)], 2);
|
|
2658
2658
|
};
|
|
2659
2659
|
}
|
|
2660
2660
|
});
|
|
2661
2661
|
|
|
2662
|
-
var _sfc_main$
|
|
2662
|
+
var _sfc_main$c = vue.defineComponent({
|
|
2663
2663
|
...{
|
|
2664
2664
|
name: "Scroll",
|
|
2665
2665
|
inheritAttrs: true
|
|
@@ -2672,11 +2672,7 @@
|
|
|
2672
2672
|
scrollY: {
|
|
2673
2673
|
type: Boolean
|
|
2674
2674
|
},
|
|
2675
|
-
barSize: {}
|
|
2676
|
-
barMode: {},
|
|
2677
|
-
debounce: {
|
|
2678
|
-
type: Boolean
|
|
2679
|
-
}
|
|
2675
|
+
barSize: {}
|
|
2680
2676
|
},
|
|
2681
2677
|
emits: ["xbar", "left", "right", "ybar", "top", "bottom"],
|
|
2682
2678
|
setup(__props, _ref) {
|
|
@@ -2693,13 +2689,9 @@
|
|
|
2693
2689
|
const {
|
|
2694
2690
|
onInterval
|
|
2695
2691
|
} = snail_core.useTimer();
|
|
2696
|
-
const classRef = vue.computed(() => ({
|
|
2697
|
-
"debounce": props.scrollY == true && props.debounce == true,
|
|
2698
|
-
"hover-show": props.barMode == "hover"
|
|
2699
|
-
}));
|
|
2700
2692
|
const styleRef = vue.computed(() => {
|
|
2701
2693
|
const style = Object.create(null);
|
|
2702
|
-
(props.scrollX || props.scrollY) && (style["--scroll-overflow"] = `${props.scrollX ? "auto" : "hidden"} ${props.scrollY ? "auto" : "hidden"}`);
|
|
2694
|
+
(props.scrollX || props.scrollY) && (style["--scroll-overflow"] = `${props.scrollX == true ? "auto" : "hidden"} ${props.scrollY == true ? "auto" : "hidden"}`);
|
|
2703
2695
|
if (props.barSize) {
|
|
2704
2696
|
switch (props.barSize) {
|
|
2705
2697
|
case "normal":
|
|
@@ -2773,15 +2765,9 @@
|
|
|
2773
2765
|
events.top && emits("top");
|
|
2774
2766
|
events.bottom && emits("bottom");
|
|
2775
2767
|
if (rootDom.value) {
|
|
2776
|
-
rootDom.value.classList.remove("x-bar", "y-bar"
|
|
2777
|
-
|
|
2778
|
-
status.
|
|
2779
|
-
status.ybar && classes.push("y-bar");
|
|
2780
|
-
status.left && classes.push("left");
|
|
2781
|
-
status.right && classes.push("right");
|
|
2782
|
-
status.top && classes.push("top");
|
|
2783
|
-
status.bottom && classes.push("bottom");
|
|
2784
|
-
classes.length && rootDom.value.classList.add(...classes);
|
|
2768
|
+
rootDom.value.classList.remove("x-bar", "y-bar");
|
|
2769
|
+
status.xbar && rootDom.value.classList.add("x-bar");
|
|
2770
|
+
status.ybar && rootDom.value.classList.add("y-bar");
|
|
2785
2771
|
}
|
|
2786
2772
|
}
|
|
2787
2773
|
vue.onMounted(() => {
|
|
@@ -2794,44 +2780,101 @@
|
|
|
2794
2780
|
});
|
|
2795
2781
|
return (_ctx, _cache) => {
|
|
2796
2782
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
2797
|
-
class:
|
|
2783
|
+
class: "snail-scroll",
|
|
2798
2784
|
ref: "scroll-root",
|
|
2799
2785
|
style: vue.normalizeStyle(styleRef.value),
|
|
2800
2786
|
onScroll: refreshScrollInfo
|
|
2801
|
-
}, [vue.renderSlot(_ctx.$slots, "default")],
|
|
2787
|
+
}, [vue.renderSlot(_ctx.$slots, "default")], 36);
|
|
2802
2788
|
};
|
|
2803
2789
|
}
|
|
2804
2790
|
});
|
|
2805
2791
|
|
|
2806
|
-
|
|
2807
|
-
key: 0,
|
|
2808
|
-
class: "layout-start"
|
|
2809
|
-
};
|
|
2810
|
-
const _hoisted_2$2 = {
|
|
2811
|
-
key: 1,
|
|
2812
|
-
class: "layout-end"
|
|
2813
|
-
};
|
|
2814
|
-
var _sfc_main$a = vue.defineComponent({
|
|
2792
|
+
var _sfc_main$b = vue.defineComponent({
|
|
2815
2793
|
__name: "layout",
|
|
2816
2794
|
props: {
|
|
2817
2795
|
mode: {},
|
|
2818
|
-
|
|
2796
|
+
main: {},
|
|
2797
|
+
left: {},
|
|
2798
|
+
right: {},
|
|
2799
|
+
top: {},
|
|
2800
|
+
bottom: {}
|
|
2819
2801
|
},
|
|
2820
2802
|
setup(__props) {
|
|
2803
|
+
const props = __props;
|
|
2804
|
+
const areaMap = vue.computed(() => {
|
|
2805
|
+
const map = Object.create(null);
|
|
2806
|
+
map.main = {
|
|
2807
|
+
scrollable: props.main && props.main.scroll != void 0,
|
|
2808
|
+
class: "main-area",
|
|
2809
|
+
style: void 0
|
|
2810
|
+
};
|
|
2811
|
+
if (props.mode == "vertical") {
|
|
2812
|
+
map.top = {
|
|
2813
|
+
scrollable: props.top && props.top.scroll != void 0,
|
|
2814
|
+
class: "top-area",
|
|
2815
|
+
style: buildHeightStyle(props.top)
|
|
2816
|
+
};
|
|
2817
|
+
map.bottom = {
|
|
2818
|
+
scrollable: props.bottom && props.bottom.scroll != void 0,
|
|
2819
|
+
class: "bottom-area",
|
|
2820
|
+
style: buildHeightStyle(props.bottom)
|
|
2821
|
+
};
|
|
2822
|
+
} else {
|
|
2823
|
+
map.left = {
|
|
2824
|
+
scrollable: props.left && props.left.scroll != void 0,
|
|
2825
|
+
class: "left-area",
|
|
2826
|
+
style: buildWidthStyle(props.left)
|
|
2827
|
+
};
|
|
2828
|
+
map.right = {
|
|
2829
|
+
scrollable: props.right && props.right.scroll != void 0,
|
|
2830
|
+
class: "right-area",
|
|
2831
|
+
style: buildWidthStyle(props.right)
|
|
2832
|
+
};
|
|
2833
|
+
}
|
|
2834
|
+
return map;
|
|
2835
|
+
});
|
|
2836
|
+
function buildWidthStyle(style) {
|
|
2837
|
+
return style ? snail_view.css.buildStyle({
|
|
2838
|
+
minWidth: style.minWidth,
|
|
2839
|
+
width: style.width,
|
|
2840
|
+
maxWidth: style.maxWidth
|
|
2841
|
+
}) : void 0;
|
|
2842
|
+
}
|
|
2843
|
+
function buildHeightStyle(style) {
|
|
2844
|
+
return style ? snail_view.css.buildStyle({
|
|
2845
|
+
minHeight: style.minHeight,
|
|
2846
|
+
height: style.height,
|
|
2847
|
+
maxHeight: style.maxHeight
|
|
2848
|
+
}) : void 0;
|
|
2849
|
+
}
|
|
2821
2850
|
return (_ctx, _cache) => {
|
|
2822
2851
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
2823
2852
|
class: vue.normalizeClass(["snail-layout", __props.mode])
|
|
2824
|
-
}, [
|
|
2825
|
-
|
|
2826
|
-
|
|
2827
|
-
|
|
2828
|
-
|
|
2829
|
-
|
|
2853
|
+
}, [(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(["top", "left", "main", "right", "bottom"], item => {
|
|
2854
|
+
return vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
2855
|
+
key: item
|
|
2856
|
+
}, [areaMap.value[item] && _ctx.$slots[item] ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
2857
|
+
key: 0
|
|
2858
|
+
}, [areaMap.value[item].scrollable ? (vue.openBlock(), vue.createBlock(_sfc_main$c, vue.mergeProps({
|
|
2859
|
+
key: 0,
|
|
2860
|
+
class: areaMap.value[item].class,
|
|
2861
|
+
style: areaMap.value[item].style
|
|
2862
|
+
}, {
|
|
2863
|
+
ref_for: true
|
|
2864
|
+
}, props[item].scroll), {
|
|
2865
|
+
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, item)]),
|
|
2866
|
+
_: 2
|
|
2867
|
+
}, 1040, ["class", "style"])) : (vue.openBlock(), vue.createElementBlock("div", {
|
|
2868
|
+
key: 1,
|
|
2869
|
+
class: vue.normalizeClass(areaMap.value[item].class),
|
|
2870
|
+
style: vue.normalizeStyle(areaMap.value[item].style)
|
|
2871
|
+
}, [vue.renderSlot(_ctx.$slots, item)], 6))], 64)) : vue.createCommentVNode("", true)], 64);
|
|
2872
|
+
}), 64))], 2);
|
|
2830
2873
|
};
|
|
2831
2874
|
}
|
|
2832
2875
|
});
|
|
2833
2876
|
|
|
2834
|
-
var _sfc_main$
|
|
2877
|
+
var _sfc_main$a = vue.defineComponent({
|
|
2835
2878
|
...{
|
|
2836
2879
|
name: "Sort",
|
|
2837
2880
|
inheritAttrs: true
|
|
@@ -2932,10 +2975,10 @@
|
|
|
2932
2975
|
}
|
|
2933
2976
|
});
|
|
2934
2977
|
|
|
2935
|
-
const _hoisted_1$
|
|
2978
|
+
const _hoisted_1$5 = {
|
|
2936
2979
|
class: "table-body"
|
|
2937
2980
|
};
|
|
2938
|
-
var _sfc_main$
|
|
2981
|
+
var _sfc_main$9 = vue.defineComponent({
|
|
2939
2982
|
...{
|
|
2940
2983
|
name: "Table",
|
|
2941
2984
|
inheritAttrs: true
|
|
@@ -2949,10 +2992,6 @@
|
|
|
2949
2992
|
type: Boolean
|
|
2950
2993
|
},
|
|
2951
2994
|
barSize: {},
|
|
2952
|
-
barMode: {},
|
|
2953
|
-
debounce: {
|
|
2954
|
-
type: Boolean
|
|
2955
|
-
},
|
|
2956
2995
|
border: {
|
|
2957
2996
|
type: Boolean
|
|
2958
2997
|
},
|
|
@@ -2964,7 +3003,7 @@
|
|
|
2964
3003
|
const hStyleRef = vue.computed(() => snail_view.css.buildStyle(props.headerStyle));
|
|
2965
3004
|
const fStyleRef = vue.computed(() => snail_view.css.buildStyle(props.footerStyle));
|
|
2966
3005
|
return (_ctx, _cache) => {
|
|
2967
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3006
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$c, {
|
|
2968
3007
|
class: vue.normalizeClass(["snail-table", {
|
|
2969
3008
|
"start-border": __props.border == true
|
|
2970
3009
|
}]),
|
|
@@ -2974,7 +3013,7 @@
|
|
|
2974
3013
|
default: vue.withCtx(() => [vue.createElementVNode("div", {
|
|
2975
3014
|
class: "table-header",
|
|
2976
3015
|
style: vue.normalizeStyle(hStyleRef.value)
|
|
2977
|
-
}, [vue.renderSlot(_ctx.$slots, "header")], 4), vue.createElementVNode("div", _hoisted_1$
|
|
3016
|
+
}, [vue.renderSlot(_ctx.$slots, "header")], 4), vue.createElementVNode("div", _hoisted_1$5, [vue.renderSlot(_ctx.$slots, "default")]), vue.createElementVNode("div", {
|
|
2978
3017
|
class: "table-footer",
|
|
2979
3018
|
style: vue.normalizeStyle(fStyleRef.value)
|
|
2980
3019
|
}, [vue.renderSlot(_ctx.$slots, "footer")], 4)]),
|
|
@@ -2984,7 +3023,7 @@
|
|
|
2984
3023
|
}
|
|
2985
3024
|
});
|
|
2986
3025
|
|
|
2987
|
-
var _sfc_main$
|
|
3026
|
+
var _sfc_main$8 = vue.defineComponent({
|
|
2988
3027
|
...{
|
|
2989
3028
|
name: "TableRow",
|
|
2990
3029
|
inheritAttrs: true
|
|
@@ -3007,7 +3046,7 @@
|
|
|
3007
3046
|
}
|
|
3008
3047
|
});
|
|
3009
3048
|
|
|
3010
|
-
var _sfc_main$
|
|
3049
|
+
var _sfc_main$7 = vue.defineComponent({
|
|
3011
3050
|
...{
|
|
3012
3051
|
name: "TableCol",
|
|
3013
3052
|
inheritAttrs: true
|
|
@@ -3053,7 +3092,7 @@
|
|
|
3053
3092
|
}
|
|
3054
3093
|
});
|
|
3055
3094
|
|
|
3056
|
-
var _sfc_main$
|
|
3095
|
+
var _sfc_main$6 = vue.defineComponent({
|
|
3057
3096
|
__name: "transitions",
|
|
3058
3097
|
props: {
|
|
3059
3098
|
group: {
|
|
@@ -3093,20 +3132,20 @@
|
|
|
3093
3132
|
}
|
|
3094
3133
|
});
|
|
3095
3134
|
|
|
3096
|
-
const _hoisted_1$
|
|
3135
|
+
const _hoisted_1$4 = {
|
|
3097
3136
|
key: 0,
|
|
3098
3137
|
class: "node-fold"
|
|
3099
3138
|
};
|
|
3100
|
-
const _hoisted_2$
|
|
3101
|
-
const _hoisted_3$
|
|
3139
|
+
const _hoisted_2$2 = ["title", "textContent"];
|
|
3140
|
+
const _hoisted_3$2 = {
|
|
3102
3141
|
class: "node-slot ellipsis"
|
|
3103
3142
|
};
|
|
3104
|
-
const _hoisted_4$
|
|
3143
|
+
const _hoisted_4$2 = {
|
|
3105
3144
|
key: 1,
|
|
3106
3145
|
class: "snail-tree-children hidden",
|
|
3107
3146
|
ref: "children"
|
|
3108
3147
|
};
|
|
3109
|
-
var _sfc_main$
|
|
3148
|
+
var _sfc_main$5 = vue.defineComponent({
|
|
3110
3149
|
...{
|
|
3111
3150
|
name: "TreeNode",
|
|
3112
3151
|
inheritAttrs: true
|
|
@@ -3224,7 +3263,7 @@
|
|
|
3224
3263
|
key: 1
|
|
3225
3264
|
}, [_cache[4] || (_cache[4] = vue.createElementVNode("div", {
|
|
3226
3265
|
class: "indent"
|
|
3227
|
-
}, null, -1)), __props.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
3266
|
+
}, null, -1)), __props.options.foldDisabled != true ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [showChildrenRef.value ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
3228
3267
|
key: 0,
|
|
3229
3268
|
class: vue.normalizeClass(statusRef.value),
|
|
3230
3269
|
type: "custom",
|
|
@@ -3236,7 +3275,7 @@
|
|
|
3236
3275
|
class: "node-text ellipsis",
|
|
3237
3276
|
title: __props.node.text,
|
|
3238
3277
|
textContent: vue.toDisplayString(__props.node.text)
|
|
3239
|
-
}, null, 8, _hoisted_2$
|
|
3278
|
+
}, null, 8, _hoisted_2$2), vue.createElementVNode("div", _hoisted_3$2, [vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(vue.unref(slotOptions))))])], 64))], 34)) : vue.createCommentVNode("", true), showRef.value && showChildrenRef.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.node.children, child => {
|
|
3240
3279
|
return vue.openBlock(), vue.createBlock(_component_TreeNode, {
|
|
3241
3280
|
key: __props.context.getKey(child),
|
|
3242
3281
|
node: child,
|
|
@@ -3256,10 +3295,10 @@
|
|
|
3256
3295
|
}
|
|
3257
3296
|
});
|
|
3258
3297
|
|
|
3259
|
-
const _hoisted_1$
|
|
3298
|
+
const _hoisted_1$3 = {
|
|
3260
3299
|
class: "snail-tree"
|
|
3261
3300
|
};
|
|
3262
|
-
var _sfc_main$
|
|
3301
|
+
var _sfc_main$4 = vue.defineComponent({
|
|
3263
3302
|
...{
|
|
3264
3303
|
name: "Tree",
|
|
3265
3304
|
inheritAttrs: true
|
|
@@ -3293,15 +3332,15 @@
|
|
|
3293
3332
|
emits("click", node, parents);
|
|
3294
3333
|
}
|
|
3295
3334
|
return (_ctx, _cache) => {
|
|
3296
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
3335
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [__props.search ? (vue.openBlock(), vue.createBlock(_sfc_main$r, vue.mergeProps({
|
|
3297
3336
|
key: 0
|
|
3298
3337
|
}, __props.search, {
|
|
3299
3338
|
onSearch
|
|
3300
|
-
}), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$
|
|
3339
|
+
}), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$c, {
|
|
3301
3340
|
"scroll-y": true
|
|
3302
3341
|
}, {
|
|
3303
3342
|
default: vue.withCtx(() => [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.nodes || [], node => {
|
|
3304
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3343
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$5, {
|
|
3305
3344
|
key: vue.unref(context).getKey(node),
|
|
3306
3345
|
node,
|
|
3307
3346
|
parent: void 0,
|
|
@@ -3322,7 +3361,7 @@
|
|
|
3322
3361
|
}
|
|
3323
3362
|
});
|
|
3324
3363
|
|
|
3325
|
-
var _sfc_main$
|
|
3364
|
+
var _sfc_main$3 = vue.defineComponent({
|
|
3326
3365
|
__name: "wrapper",
|
|
3327
3366
|
props: {
|
|
3328
3367
|
readonly: {
|
|
@@ -3344,14 +3383,14 @@
|
|
|
3344
3383
|
return (_ctx, _cache) => {
|
|
3345
3384
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3346
3385
|
class: vue.normalizeClass(["snail-wrapper", __props.inPopup ? "in-popup" : "in-normal"])
|
|
3347
|
-
}, [__props.header && __props.header.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3386
|
+
}, [__props.header && __props.header.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$u, vue.mergeProps({
|
|
3348
3387
|
key: 0
|
|
3349
3388
|
}, __props.header || {
|
|
3350
3389
|
useTo: "dialog",
|
|
3351
3390
|
title: "对话框"
|
|
3352
3391
|
}, {
|
|
3353
3392
|
onClose: _cache[0] || (_cache[0] = $event => emits("cancel"))
|
|
3354
|
-
}), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$
|
|
3393
|
+
}), null, 16)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$c, vue.mergeProps({
|
|
3355
3394
|
class: "wrapper-body"
|
|
3356
3395
|
}, __props.content || {
|
|
3357
3396
|
scrollX: false,
|
|
@@ -3359,7 +3398,7 @@
|
|
|
3359
3398
|
}), {
|
|
3360
3399
|
default: vue.withCtx(() => [vue.renderSlot(_ctx.$slots, "default")]),
|
|
3361
3400
|
_: 3
|
|
3362
|
-
}, 16), __props.footer && __props.readonly != true && __props.footer.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3401
|
+
}, 16), __props.footer && __props.readonly != true && __props.footer.disabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$v, vue.mergeProps({
|
|
3363
3402
|
key: 1
|
|
3364
3403
|
}, __props.footer || {}, {
|
|
3365
3404
|
onCancel: _cache[1] || (_cache[1] = $event => emits("cancel")),
|
|
@@ -3373,7 +3412,7 @@
|
|
|
3373
3412
|
snail_core.mustObject(options, "options");
|
|
3374
3413
|
target instanceof HTMLElement || snail_core.throwError("target must be a HTMLElement");
|
|
3375
3414
|
target.classList.add("snail-app");
|
|
3376
|
-
const app = vue.createApp(_sfc_main$
|
|
3415
|
+
const app = vue.createApp(_sfc_main$o, options);
|
|
3377
3416
|
triggerAppCreated(app);
|
|
3378
3417
|
app.mount(target);
|
|
3379
3418
|
const scope = snail_core.useScope().onDestroy(() => app.unmount());
|
|
@@ -3381,42 +3420,182 @@
|
|
|
3381
3420
|
return scope;
|
|
3382
3421
|
}
|
|
3383
3422
|
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3423
|
+
function initStepByFormat(format) {
|
|
3424
|
+
switch (format) {
|
|
3425
|
+
case "yyyy":
|
|
3426
|
+
return "year";
|
|
3427
|
+
case "yyyy-MM":
|
|
3428
|
+
return "month";
|
|
3429
|
+
default:
|
|
3430
|
+
return "day";
|
|
3431
|
+
}
|
|
3432
|
+
}
|
|
3433
|
+
function electDateValue(min, max) {
|
|
3434
|
+
return snail_core.getDateValue(new Date());
|
|
3435
|
+
}
|
|
3436
|
+
function buildYearItems(year, min, max) {
|
|
3437
|
+
year = year - 10;
|
|
3438
|
+
const items = new Array(18);
|
|
3439
|
+
for (var index = 0; index < items.length; index++) {
|
|
3440
|
+
year += 1;
|
|
3441
|
+
items[index] = Object.freeze({
|
|
3442
|
+
year,
|
|
3443
|
+
disabled: min && min.year != void 0 && year < min.year || max && max.year != void 0 && year > max.year
|
|
3444
|
+
});
|
|
3445
|
+
}
|
|
3446
|
+
return items;
|
|
3447
|
+
}
|
|
3448
|
+
function buildMonthItems(yearItem, min, max) {
|
|
3449
|
+
const minDate = new Date(snail_core.formatDateValue(min, "yyyy-MM"));
|
|
3450
|
+
const maxDate = new Date(snail_core.formatDateValue(max, "yyyy-MM"));
|
|
3451
|
+
const items = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];
|
|
3452
|
+
return items.map((item, index) => {
|
|
3453
|
+
const mi = {
|
|
3454
|
+
text: item,
|
|
3455
|
+
month: index + 1,
|
|
3456
|
+
year: yearItem.year,
|
|
3457
|
+
disabled: yearItem.disabled
|
|
3458
|
+
};
|
|
3459
|
+
if (mi.disabled != true) {
|
|
3460
|
+
const date = new Date(snail_core.formatDateValue(mi, "yyyy-MM"));
|
|
3461
|
+
mi.disabled = minDate != void 0 && date < minDate || maxDate != void 0 && date > maxDate;
|
|
3462
|
+
}
|
|
3463
|
+
return Object.freeze(mi);
|
|
3464
|
+
});
|
|
3465
|
+
}
|
|
3466
|
+
function buildDayItems(monthItem, min, max) {
|
|
3467
|
+
const minDate = new Date(snail_core.formatDateValue(min, "yyyy-MM-dd"));
|
|
3468
|
+
const maxDate = new Date(snail_core.formatDateValue(max, "yyyy-MM-dd"));
|
|
3469
|
+
const date = new Date(monthItem.year, monthItem.month - 1);
|
|
3470
|
+
date.setDate(date.getDate() - (date.getDay() || 7) - 1);
|
|
3471
|
+
const items = new Array(42);
|
|
3472
|
+
for (var index = 0; index < items.length; index++) {
|
|
3473
|
+
date.setDate(date.getDate() + 1);
|
|
3474
|
+
const item = {
|
|
3475
|
+
day: date.getDate(),
|
|
3476
|
+
month: date.getMonth() + 1,
|
|
3477
|
+
year: date.getFullYear(),
|
|
3478
|
+
disabled: monthItem.disabled
|
|
3479
|
+
};
|
|
3480
|
+
if (item.disabled != true) {
|
|
3481
|
+
const date2 = new Date(snail_core.formatDateValue(item, "yyyy-MM-dd"));
|
|
3482
|
+
item.disabled = minDate != void 0 && date2 < minDate || maxDate != void 0 && date2 > maxDate;
|
|
3483
|
+
}
|
|
3484
|
+
items[index] = Object.freeze(item);
|
|
3485
|
+
}
|
|
3486
|
+
return items;
|
|
3487
|
+
}
|
|
3488
|
+
function buildHourItems(min, max) {
|
|
3489
|
+
const items = new Array(24);
|
|
3490
|
+
for (var index = 0; index < items.length; index++) {
|
|
3491
|
+
items[index] = Object.freeze({
|
|
3492
|
+
hour: index,
|
|
3493
|
+
disabled: min && min.hour != void 0 && index < min.hour || max && max.hour != void 0 && index > max.hour
|
|
3494
|
+
});
|
|
3495
|
+
}
|
|
3496
|
+
return items;
|
|
3497
|
+
}
|
|
3498
|
+
function buildMinuteItems(hourItem, min, max) {
|
|
3499
|
+
const items = new Array(60);
|
|
3500
|
+
const minNumber = min && min.minute != void 0 ? getTimeNumber(min.hour, min.minute, 0) : void 0;
|
|
3501
|
+
const maxNumber = max && max.minute != void 0 ? getTimeNumber(max.hour, max.minute, 0) : void 0;
|
|
3502
|
+
for (let index = 0; index < items.length; index++) {
|
|
3503
|
+
const item = {
|
|
3504
|
+
minute: index,
|
|
3505
|
+
hour: hourItem.hour,
|
|
3506
|
+
disabled: hourItem.disabled
|
|
3507
|
+
};
|
|
3508
|
+
if (item.disabled != true) {
|
|
3509
|
+
const number = getTimeNumber(item.hour, item.minute, 0);
|
|
3510
|
+
item.disabled = minNumber != void 0 && number < minNumber || maxNumber != void 0 && number > maxNumber;
|
|
3511
|
+
}
|
|
3512
|
+
items[index] = Object.freeze(item);
|
|
3513
|
+
}
|
|
3514
|
+
return items;
|
|
3515
|
+
}
|
|
3516
|
+
function buildSecondItems(minuteItem, min, max) {
|
|
3517
|
+
const items = new Array(60);
|
|
3518
|
+
const minNumber = min && min.minute != void 0 ? getTimeNumber(min.hour, min.minute, min.second) : void 0;
|
|
3519
|
+
const maxNumber = max && max.minute != void 0 ? getTimeNumber(max.hour, max.minute, max.second) : void 0;
|
|
3520
|
+
for (let index = 0; index < items.length; index++) {
|
|
3521
|
+
const item = {
|
|
3522
|
+
second: index,
|
|
3523
|
+
minute: minuteItem.minute,
|
|
3524
|
+
hour: minuteItem.hour,
|
|
3525
|
+
disabled: minuteItem.disabled
|
|
3526
|
+
};
|
|
3527
|
+
if (item.disabled != true) {
|
|
3528
|
+
const number = getTimeNumber(item.hour, item.minute, item.second);
|
|
3529
|
+
item.disabled = minNumber != void 0 && number < minNumber || maxNumber != void 0 && number > maxNumber;
|
|
3530
|
+
}
|
|
3531
|
+
items[index] = Object.freeze(item);
|
|
3532
|
+
}
|
|
3533
|
+
return items;
|
|
3534
|
+
}
|
|
3535
|
+
function getTimeNumber(hour, minute, second) {
|
|
3536
|
+
return (hour || 0) * 1e4 + (minute || 0) * 100 + (second || 0);
|
|
3537
|
+
}
|
|
3538
|
+
function isValidTime(format, time, min, max) {
|
|
3539
|
+
time = snail_core.correctTimeValue(time);
|
|
3540
|
+
if (time) {
|
|
3541
|
+
min = snail_core.correctTimeValue({
|
|
3542
|
+
...min
|
|
3543
|
+
});
|
|
3544
|
+
const timeNumber = getTimeNumber(time.hour, time.minute, format == "HH:mm" ? 0 : time.second);
|
|
3545
|
+
if (min != void 0) {
|
|
3546
|
+
const minNumber = getTimeNumber(min.hour, min.minute, format == "HH:mm" ? 0 : max.second);
|
|
3547
|
+
if (timeNumber < minNumber) {
|
|
3548
|
+
return false;
|
|
3549
|
+
}
|
|
3550
|
+
}
|
|
3551
|
+
max = snail_core.correctTimeValue({
|
|
3552
|
+
...max
|
|
3553
|
+
});
|
|
3554
|
+
if (max != void 0) {
|
|
3555
|
+
const maxNumber = getTimeNumber(max.hour, max.minute, format == "HH:mm" ? 0 : max.second);
|
|
3556
|
+
if (timeNumber > maxNumber) {
|
|
3557
|
+
return false;
|
|
3558
|
+
}
|
|
3559
|
+
}
|
|
3560
|
+
return true;
|
|
3561
|
+
}
|
|
3562
|
+
return false;
|
|
3563
|
+
}
|
|
3564
|
+
|
|
3565
|
+
const _hoisted_1$2 = {
|
|
3388
3566
|
class: "tz-item",
|
|
3389
3567
|
ref: "hour-items"
|
|
3390
3568
|
};
|
|
3391
|
-
const
|
|
3392
|
-
const
|
|
3569
|
+
const _hoisted_2$1 = ["textContent", "onClick"];
|
|
3570
|
+
const _hoisted_3$1 = {
|
|
3393
3571
|
class: "tz-item",
|
|
3394
3572
|
ref: "minute-items"
|
|
3395
3573
|
};
|
|
3396
|
-
const
|
|
3397
|
-
const
|
|
3574
|
+
const _hoisted_4$1 = ["textContent", "onClick"];
|
|
3575
|
+
const _hoisted_5$1 = {
|
|
3398
3576
|
key: 0,
|
|
3399
3577
|
class: "tz-item",
|
|
3400
3578
|
ref: "second-items"
|
|
3401
3579
|
};
|
|
3402
|
-
const
|
|
3403
|
-
|
|
3404
|
-
class: "time-operation"
|
|
3405
|
-
};
|
|
3406
|
-
var _sfc_main$1 = vue.defineComponent({
|
|
3580
|
+
const _hoisted_6$1 = ["textContent", "onClick"];
|
|
3581
|
+
var _sfc_main$2 = vue.defineComponent({
|
|
3407
3582
|
__name: "time-pc",
|
|
3408
3583
|
props: {
|
|
3409
3584
|
value: {},
|
|
3410
|
-
|
|
3585
|
+
format: {},
|
|
3586
|
+
min: {},
|
|
3587
|
+
max: {},
|
|
3588
|
+
toolbarDisabled: {
|
|
3411
3589
|
type: Boolean
|
|
3412
3590
|
},
|
|
3413
3591
|
nowDisabled: {
|
|
3414
3592
|
type: Boolean
|
|
3415
3593
|
},
|
|
3416
|
-
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3594
|
+
clearDisabled: {
|
|
3595
|
+
type: Boolean
|
|
3596
|
+
},
|
|
3597
|
+
popup: {},
|
|
3598
|
+
picker: {},
|
|
3420
3599
|
inPopup: {},
|
|
3421
3600
|
closePopup: {
|
|
3422
3601
|
type: Function
|
|
@@ -3434,198 +3613,543 @@
|
|
|
3434
3613
|
} = _ref;
|
|
3435
3614
|
const props = __props;
|
|
3436
3615
|
const emits = __emit;
|
|
3437
|
-
const
|
|
3438
|
-
|
|
3439
|
-
|
|
3440
|
-
|
|
3441
|
-
|
|
3442
|
-
const
|
|
3443
|
-
|
|
3444
|
-
|
|
3445
|
-
const {
|
|
3446
|
-
inPopup,
|
|
3447
|
-
closePopup
|
|
3448
|
-
} = props;
|
|
3449
|
-
const secondDisabled = tm.format == "HH:mm";
|
|
3450
|
-
const tvRef = vue.ref();
|
|
3616
|
+
const format = props.format == "HH:mm" ? "HH:mm" : "HH:mm:ss";
|
|
3617
|
+
const min = snail_core.parseTimeValue(props.min);
|
|
3618
|
+
const max = snail_core.parseTimeValue(props.max);
|
|
3619
|
+
const timeRef = vue.ref(snail_core.parseTimeValue(props.value) || snail_core.getTimeValue(new Date()));
|
|
3620
|
+
const isValidTimeRef = vue.computed(() => format == "HH:mm" ? minuteItems.value && minuteItems.value[timeRef.value.minute].disabled != true : secondItems.value && secondItems.value[timeRef.value.second].disabled != true);
|
|
3621
|
+
const hourItems = vue.shallowRef(buildHourItems(min, max));
|
|
3622
|
+
const minuteItems = vue.shallowRef();
|
|
3623
|
+
const secondItems = vue.shallowRef();
|
|
3451
3624
|
const hItemsDom = vue.useTemplateRef("hour-items");
|
|
3452
3625
|
const mItemsDom = vue.useTemplateRef("minute-items");
|
|
3453
3626
|
const sItemsDom = vue.useTemplateRef("second-items");
|
|
3454
|
-
function
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
|
|
3458
|
-
|
|
3459
|
-
|
|
3460
|
-
|
|
3461
|
-
|
|
3462
|
-
return {
|
|
3463
|
-
active: tvRef.value.minute == value,
|
|
3464
|
-
disabled: tm.validateHHmm(tvRef.value.hour, value) == false
|
|
3465
|
-
};
|
|
3466
|
-
case "second":
|
|
3467
|
-
return {
|
|
3468
|
-
active: tvRef.value.second == value,
|
|
3469
|
-
disabled: tm.validateHHmmss(tvRef.value.hour, tvRef.value.minute, value) == false
|
|
3470
|
-
};
|
|
3471
|
-
}
|
|
3627
|
+
async function rebuildItems(time) {
|
|
3628
|
+
time != void 0 && (timeRef.value = time);
|
|
3629
|
+
minuteItems.value = buildMinuteItems(hourItems.value[timeRef.value.hour], min, max);
|
|
3630
|
+
secondItems.value = buildSecondItems(minuteItems.value[timeRef.value.minute], min, max);
|
|
3631
|
+
await vue.nextTick();
|
|
3632
|
+
scrollIntoView(hItemsDom.value);
|
|
3633
|
+
scrollIntoView(mItemsDom.value);
|
|
3634
|
+
scrollIntoView(sItemsDom.value);
|
|
3472
3635
|
}
|
|
3473
3636
|
function scrollIntoView(items) {
|
|
3474
|
-
let activeIndex = void 0
|
|
3475
|
-
firstValidIndex;
|
|
3637
|
+
let activeIndex = void 0;
|
|
3476
3638
|
for (var index = 0; index < (items ? items.children.length : 0); index++) {
|
|
3477
3639
|
const ele = items.children[index];
|
|
3478
|
-
if (ele.classList.contains("disabled") == true) {
|
|
3479
|
-
continue;
|
|
3480
|
-
}
|
|
3481
|
-
if (firstValidIndex == void 0) {
|
|
3482
|
-
firstValidIndex = index;
|
|
3483
|
-
}
|
|
3484
3640
|
if (ele.classList.contains("active") == true) {
|
|
3485
3641
|
activeIndex = index;
|
|
3486
3642
|
break;
|
|
3487
3643
|
}
|
|
3488
3644
|
}
|
|
3489
|
-
|
|
3490
|
-
if (activeIndex == void 0) {
|
|
3491
|
-
if (firstValidIndex != void 0) {
|
|
3492
|
-
showIndex = firstValidIndex;
|
|
3493
|
-
}
|
|
3494
|
-
}
|
|
3495
|
-
showIndex != void 0 && items.children[showIndex].scrollIntoView({
|
|
3645
|
+
activeIndex != void 0 && items.children[activeIndex].scrollIntoView({
|
|
3496
3646
|
behavior: "smooth",
|
|
3497
3647
|
block: "center"
|
|
3498
3648
|
});
|
|
3499
3649
|
}
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3650
|
+
function onHourClick(item) {
|
|
3651
|
+
if (item.disabled != true && timeRef.value.hour != item.hour) {
|
|
3652
|
+
timeRef.value.hour = item.hour;
|
|
3653
|
+
minuteItems.value = buildMinuteItems(item, min, max);
|
|
3654
|
+
secondItems.value = buildSecondItems(minuteItems.value[timeRef.value.minute], min, max);
|
|
3655
|
+
}
|
|
3656
|
+
}
|
|
3657
|
+
function onMinuteClick(item) {
|
|
3658
|
+
if (item.disabled != true) {
|
|
3659
|
+
if (format == "HH:mm") {
|
|
3660
|
+
const value = snail_core.formatTimeValue(item, "HH:mm");
|
|
3661
|
+
emits("confirm", value);
|
|
3662
|
+
props.inPopup && props.closePopup(value);
|
|
3663
|
+
} else if (timeRef.value.minute != item.minute) {
|
|
3664
|
+
timeRef.value.minute = item.minute;
|
|
3665
|
+
secondItems.value = buildSecondItems(item, min, max);
|
|
3666
|
+
}
|
|
3667
|
+
}
|
|
3668
|
+
}
|
|
3669
|
+
function onSecondClick(item) {
|
|
3670
|
+
if (item.disabled != true) {
|
|
3671
|
+
timeRef.value.second = item.second;
|
|
3672
|
+
onConfirm();
|
|
3673
|
+
}
|
|
3674
|
+
}
|
|
3675
|
+
function onConfirm() {
|
|
3676
|
+
if (isValidTimeRef.value == true) {
|
|
3677
|
+
const value = snail_core.formatTimeValue(timeRef.value, format);
|
|
3678
|
+
emits("confirm", value);
|
|
3679
|
+
props.inPopup && props.closePopup(value);
|
|
3680
|
+
}
|
|
3681
|
+
}
|
|
3682
|
+
vue.onMounted(rebuildItems);
|
|
3683
|
+
return (_ctx, _cache) => {
|
|
3684
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$b, {
|
|
3685
|
+
class: vue.normalizeClass(["time-picker pc", {
|
|
3686
|
+
"second-disabled": vue.unref(format) != "HH:mm:ss"
|
|
3687
|
+
}]),
|
|
3688
|
+
mode: "vertical"
|
|
3689
|
+
}, vue.createSlots({
|
|
3690
|
+
main: vue.withCtx(() => [vue.createVNode(_sfc_main$6, {
|
|
3691
|
+
group: true,
|
|
3692
|
+
effect: "down-up"
|
|
3693
|
+
}, {
|
|
3694
|
+
default: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_1$2, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(hourItems.value, item => {
|
|
3695
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3696
|
+
class: vue.normalizeClass(["tzi-number", {
|
|
3697
|
+
active: item.hour == timeRef.value.hour,
|
|
3698
|
+
disabled: item.disabled
|
|
3699
|
+
}]),
|
|
3700
|
+
key: item.hour,
|
|
3701
|
+
textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.hour, 2, "0")),
|
|
3702
|
+
onClick: $event => onHourClick(item)
|
|
3703
|
+
}, null, 10, _hoisted_2$1);
|
|
3704
|
+
}), 128))], 512), vue.createElementVNode("div", _hoisted_3$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(minuteItems.value, item => {
|
|
3705
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3706
|
+
class: vue.normalizeClass(["tzi-number", {
|
|
3707
|
+
active: item.minute == timeRef.value.minute,
|
|
3708
|
+
disabled: item.disabled
|
|
3709
|
+
}]),
|
|
3710
|
+
key: `${item.hour}:${item.minute}`,
|
|
3711
|
+
textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.minute, 2, "0")),
|
|
3712
|
+
onClick: $event => onMinuteClick(item)
|
|
3713
|
+
}, null, 10, _hoisted_4$1);
|
|
3714
|
+
}), 128))], 512), vue.unref(format) == "HH:mm:ss" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(secondItems.value, item => {
|
|
3715
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3716
|
+
class: vue.normalizeClass(["tzi-number", {
|
|
3717
|
+
active: item.second == timeRef.value.second,
|
|
3718
|
+
disabled: item.disabled
|
|
3719
|
+
}]),
|
|
3720
|
+
key: `${item.hour}:${item.minute}:${item.second}`,
|
|
3721
|
+
textContent: vue.toDisplayString(vue.unref(snail_core.padStart)(item.second, 2, "0")),
|
|
3722
|
+
onClick: $event => onSecondClick(item)
|
|
3723
|
+
}, null, 10, _hoisted_6$1);
|
|
3724
|
+
}), 128))], 512)) : vue.createCommentVNode("", true)]),
|
|
3725
|
+
_: 1
|
|
3726
|
+
})]),
|
|
3727
|
+
_: 2
|
|
3728
|
+
}, [__props.toolbarDisabled != true ? {
|
|
3729
|
+
name: "bottom",
|
|
3730
|
+
fn: vue.withCtx(() => [__props.clearDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
3731
|
+
key: 0,
|
|
3732
|
+
type: "link",
|
|
3733
|
+
size: "small",
|
|
3734
|
+
textContent: "清空",
|
|
3735
|
+
onClick: _cache[0] || (_cache[0] = $event => (emits("clear"), __props.inPopup && __props.closePopup("")))
|
|
3736
|
+
})) : vue.createCommentVNode("", true), __props.nowDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
3737
|
+
key: 1,
|
|
3738
|
+
type: "link",
|
|
3739
|
+
size: "small",
|
|
3740
|
+
textContent: "现在",
|
|
3741
|
+
onClick: _cache[1] || (_cache[1] = $event => rebuildItems(vue.unref(snail_core.getTimeValue)(new Date())))
|
|
3742
|
+
})) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$z, {
|
|
3743
|
+
type: "link",
|
|
3744
|
+
size: "small",
|
|
3745
|
+
textContent: "确定",
|
|
3746
|
+
class: vue.normalizeClass({
|
|
3747
|
+
disabled: isValidTimeRef.value != true
|
|
3748
|
+
}),
|
|
3749
|
+
onClick: onConfirm
|
|
3750
|
+
}, null, 8, ["class"])]),
|
|
3751
|
+
key: "0"
|
|
3752
|
+
} : void 0]), 1032, ["class"]);
|
|
3753
|
+
};
|
|
3754
|
+
}
|
|
3755
|
+
});
|
|
3756
|
+
|
|
3757
|
+
const _hoisted_1$1 = ["textContent"];
|
|
3758
|
+
const _hoisted_2 = ["textContent"];
|
|
3759
|
+
const _hoisted_3 = ["textContent"];
|
|
3760
|
+
const _hoisted_4 = ["textContent", "onClick"];
|
|
3761
|
+
const _hoisted_5 = ["textContent", "onClick"];
|
|
3762
|
+
const _hoisted_6 = ["textContent"];
|
|
3763
|
+
const _hoisted_7 = ["textContent", "onClick"];
|
|
3764
|
+
const _hoisted_8 = ["textContent"];
|
|
3765
|
+
var _sfc_main$1 = vue.defineComponent({
|
|
3766
|
+
__name: "date-pc",
|
|
3767
|
+
props: {
|
|
3768
|
+
value: {},
|
|
3769
|
+
format: {},
|
|
3770
|
+
min: {},
|
|
3771
|
+
max: {},
|
|
3772
|
+
minPickTime: {},
|
|
3773
|
+
maxPickTime: {},
|
|
3774
|
+
toolbarDisabled: {
|
|
3775
|
+
type: Boolean
|
|
3776
|
+
},
|
|
3777
|
+
nowDisabled: {
|
|
3778
|
+
type: Boolean
|
|
3779
|
+
},
|
|
3780
|
+
clearDisabled: {
|
|
3781
|
+
type: Boolean
|
|
3782
|
+
},
|
|
3783
|
+
popup: {},
|
|
3784
|
+
picker: {},
|
|
3785
|
+
popupStatus: {},
|
|
3786
|
+
target: {},
|
|
3787
|
+
followX: {},
|
|
3788
|
+
followY: {},
|
|
3789
|
+
pinned: {},
|
|
3790
|
+
inPopup: {},
|
|
3791
|
+
closePopup: {
|
|
3792
|
+
type: Function
|
|
3793
|
+
}
|
|
3794
|
+
},
|
|
3795
|
+
emits: ["clear", "confirm"],
|
|
3796
|
+
setup(__props, _ref) {
|
|
3797
|
+
let {
|
|
3798
|
+
emit: __emit
|
|
3799
|
+
} = _ref;
|
|
3800
|
+
const props = __props;
|
|
3801
|
+
const emits = __emit;
|
|
3802
|
+
const {
|
|
3803
|
+
inPopup
|
|
3804
|
+
} = props;
|
|
3805
|
+
const dateRef = vue.ref(snail_core.parseDateValue(props.value));
|
|
3806
|
+
const format = snail_core.correctDateFormat(props.format, "yyyy-MM-dd");
|
|
3807
|
+
const min = Object.freeze(snail_core.parseDateValue(props.min));
|
|
3808
|
+
const max = Object.freeze(snail_core.parseDateValue(props.max));
|
|
3809
|
+
const endStep = initStepByFormat(format);
|
|
3810
|
+
const stepRef = vue.shallowRef(endStep);
|
|
3811
|
+
const yearItems = vue.shallowRef();
|
|
3812
|
+
const monthItems = vue.shallowRef();
|
|
3813
|
+
const dayItemsRef = vue.shallowRef([]);
|
|
3814
|
+
const isValidDateRef = vue.computed(validateDate);
|
|
3815
|
+
const minPickTime = Object.freeze(snail_core.parseTimeValue(props.minPickTime));
|
|
3816
|
+
const maxPickTime = Object.freeze(snail_core.parseTimeValue(props.maxPickTime));
|
|
3817
|
+
const timeFormat = format == "yyyy-MM-dd HH:mm" ? "HH:mm" : format == "yyyy-MM-dd HH:mm:ss" ? "HH:mm:ss" : void 0;
|
|
3818
|
+
const timeAreaDom = timeFormat ? vue.useTemplateRef("time-area") : void 0;
|
|
3819
|
+
function validateDate() {
|
|
3820
|
+
switch (format) {
|
|
3821
|
+
case "yyyy":
|
|
3822
|
+
{
|
|
3823
|
+
const item = yearItems.value.find(item2 => item2.year == dateRef.value.year);
|
|
3824
|
+
return item && item.disabled != true;
|
|
3507
3825
|
}
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
await vue.nextTick();
|
|
3513
|
-
scrollIntoView(sItemsDom.value);
|
|
3826
|
+
case "yyyy-MM":
|
|
3827
|
+
{
|
|
3828
|
+
const item = monthItems.value.find(item2 => item2.year == dateRef.value.year && item2.month == dateRef.value.month);
|
|
3829
|
+
return item && item.disabled != true;
|
|
3514
3830
|
}
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3831
|
+
case "yyyy-MM-dd":
|
|
3832
|
+
{
|
|
3833
|
+
const item = dayItemsRef.value.find(item2 => item2.year == dateRef.value.year && item2.month == dateRef.value.month && item2.day == dateRef.value.day);
|
|
3834
|
+
return item ? item.disabled != true : false;
|
|
3519
3835
|
}
|
|
3520
|
-
|
|
3836
|
+
case "yyyy-MM-dd HH:mm":
|
|
3837
|
+
case "yyyy-MM-dd HH:mm:ss":
|
|
3838
|
+
{
|
|
3839
|
+
if (isValidTime(timeFormat, dateRef.value, minPickTime, maxPickTime) == true) {
|
|
3840
|
+
const date = snail_core.getDateByValue(dateRef.value);
|
|
3841
|
+
const disabled = min && date < snail_core.getDateByValue(min) || max && date > snail_core.getDateByValue(max);
|
|
3842
|
+
return disabled != true;
|
|
3843
|
+
}
|
|
3844
|
+
return false;
|
|
3845
|
+
}
|
|
3846
|
+
default:
|
|
3847
|
+
return false;
|
|
3521
3848
|
}
|
|
3522
3849
|
}
|
|
3523
|
-
|
|
3524
|
-
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3529
|
-
|
|
3850
|
+
function buildPickerItems(step, basis) {
|
|
3851
|
+
switch (step) {
|
|
3852
|
+
case "year":
|
|
3853
|
+
{
|
|
3854
|
+
dateRef.value.year += basis * 18;
|
|
3855
|
+
yearItems.value = buildYearItems(dateRef.value.year, min, max);
|
|
3856
|
+
if (basis != 0) {
|
|
3857
|
+
dateRef.value.month = 1;
|
|
3858
|
+
dateRef.value.day = 1;
|
|
3859
|
+
}
|
|
3860
|
+
break;
|
|
3861
|
+
}
|
|
3862
|
+
case "month":
|
|
3863
|
+
{
|
|
3864
|
+
dateRef.value.year += basis;
|
|
3865
|
+
let yearItem = (yearItems.value || []).find(item => item.year == dateRef.value.year);
|
|
3866
|
+
if (yearItem == void 0) {
|
|
3867
|
+
buildPickerItems("year", 0);
|
|
3868
|
+
yearItem = yearItems.value[9];
|
|
3869
|
+
}
|
|
3870
|
+
monthItems.value = buildMonthItems(yearItem, min, max);
|
|
3871
|
+
basis != 0 && (dateRef.value.day = 1);
|
|
3872
|
+
break;
|
|
3873
|
+
}
|
|
3874
|
+
case "day":
|
|
3875
|
+
{
|
|
3876
|
+
const date = new Date(dateRef.value.year, dateRef.value.month - 1, 1);
|
|
3877
|
+
date.setMonth(date.getMonth() + basis);
|
|
3878
|
+
dateRef.value.year = date.getFullYear();
|
|
3879
|
+
dateRef.value.month = date.getMonth() + 1;
|
|
3880
|
+
let monthItem = (monthItems.value || []).find(item => item.year == dateRef.value.year && item.month == dateRef.value.month);
|
|
3881
|
+
if (monthItem == void 0) {
|
|
3882
|
+
buildPickerItems("month", 0);
|
|
3883
|
+
monthItem = monthItems.value[dateRef.value.month - 1];
|
|
3884
|
+
}
|
|
3885
|
+
dayItemsRef.value = buildDayItems(monthItem, min, max);
|
|
3886
|
+
basis != 0 && (dateRef.value.day = 1);
|
|
3887
|
+
break;
|
|
3888
|
+
}
|
|
3530
3889
|
}
|
|
3531
3890
|
}
|
|
3532
|
-
function
|
|
3533
|
-
|
|
3534
|
-
|
|
3535
|
-
|
|
3891
|
+
function onSwitchStepClick(newValue) {
|
|
3892
|
+
setTimeout(() => stepRef.value = newValue);
|
|
3893
|
+
}
|
|
3894
|
+
function onYearItemClick(item) {
|
|
3895
|
+
if (item.disabled != true) {
|
|
3896
|
+
dateRef.value.year = item.year;
|
|
3897
|
+
if (format == "yyyy") {
|
|
3898
|
+
const value = String(dateRef.value.year).padStart(4, "0");
|
|
3899
|
+
emits("confirm", value);
|
|
3900
|
+
props.inPopup && props.closePopup(value);
|
|
3901
|
+
} else {
|
|
3902
|
+
dateRef.value.month = 1;
|
|
3903
|
+
monthItems.value = buildMonthItems(item, min, max);
|
|
3904
|
+
onSwitchStepClick("month");
|
|
3905
|
+
}
|
|
3536
3906
|
}
|
|
3537
|
-
|
|
3538
|
-
|
|
3907
|
+
}
|
|
3908
|
+
function onMonthItemClick(item) {
|
|
3909
|
+
if (item.disabled != true) {
|
|
3910
|
+
dateRef.value.year = item.year;
|
|
3911
|
+
dateRef.value.month = item.month;
|
|
3912
|
+
if (format == "yyyy-MM") {
|
|
3913
|
+
const value = snail_core.formatDateValue(dateRef.value, "yyyy-MM");
|
|
3914
|
+
emits("confirm", value);
|
|
3915
|
+
props.inPopup && props.closePopup(value);
|
|
3916
|
+
} else {
|
|
3917
|
+
dateRef.value.day = 1;
|
|
3918
|
+
dayItemsRef.value = buildDayItems(item, min, max);
|
|
3919
|
+
onSwitchStepClick("day");
|
|
3920
|
+
}
|
|
3539
3921
|
}
|
|
3540
|
-
const value = tm.toString(tvRef.value);
|
|
3541
|
-
emits("confirm", value);
|
|
3542
|
-
inPopup && closePopup(value);
|
|
3543
3922
|
}
|
|
3544
|
-
{
|
|
3545
|
-
|
|
3546
|
-
|
|
3547
|
-
|
|
3923
|
+
function onDayItemClick(item) {
|
|
3924
|
+
if (item.disabled != true) {
|
|
3925
|
+
const isNowMonth = item.year == dateRef.value.year && item.month == dateRef.value.month;
|
|
3926
|
+
Object.assign(dateRef.value, {
|
|
3927
|
+
year: item.year,
|
|
3928
|
+
month: item.month,
|
|
3929
|
+
day: item.day
|
|
3930
|
+
});
|
|
3931
|
+
if (format == "yyyy-MM-dd") {
|
|
3932
|
+
const value = snail_core.formatDateValue(dateRef.value, "yyyy-MM-dd");
|
|
3933
|
+
emits("confirm", value);
|
|
3934
|
+
props.inPopup && props.closePopup(value);
|
|
3935
|
+
} else {
|
|
3936
|
+
isNowMonth || buildPickerItems("day", 0);
|
|
3937
|
+
}
|
|
3938
|
+
}
|
|
3548
3939
|
}
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3940
|
+
async function onSelectTime() {
|
|
3941
|
+
if (props.picker == void 0 || timeAreaDom.value == void 0 || props.pinned.value == true) {
|
|
3942
|
+
return;
|
|
3943
|
+
}
|
|
3944
|
+
props.pinned.value = true;
|
|
3945
|
+
const task = props.picker.showTime(timeAreaDom.value, {
|
|
3946
|
+
format: timeFormat,
|
|
3947
|
+
value: snail_core.formatTimeValue(dateRef.value, timeFormat),
|
|
3948
|
+
min: props.minPickTime,
|
|
3949
|
+
max: props.minPickTime,
|
|
3950
|
+
followX: "start",
|
|
3951
|
+
followY: "before",
|
|
3952
|
+
spaceX: -2,
|
|
3953
|
+
spaceY: 4
|
|
3954
|
+
});
|
|
3955
|
+
task.finally(() => setTimeout(() => props.pinned.value = false)).then(text => {
|
|
3956
|
+
if (text != void 0) {
|
|
3957
|
+
const time = snail_core.parseTimeValue(text) || Object.create(null);
|
|
3958
|
+
dateRef.value.hour = time.hour;
|
|
3959
|
+
dateRef.value.minute = time.minute;
|
|
3960
|
+
dateRef.value.second = time.second;
|
|
3961
|
+
}
|
|
3962
|
+
}, reason => {
|
|
3963
|
+
console.error(reason);
|
|
3964
|
+
});
|
|
3965
|
+
}
|
|
3966
|
+
function onNow() {
|
|
3967
|
+
stepRef.value = initStepByFormat(format);
|
|
3968
|
+
dateRef.value = snail_core.getDateValue(new Date());
|
|
3969
|
+
buildPickerItems(stepRef.value, 0);
|
|
3970
|
+
}
|
|
3971
|
+
function onConfirm() {
|
|
3972
|
+
if (isValidDateRef.value == true) {
|
|
3973
|
+
const value = snail_core.formatDateValue(dateRef.value, format);
|
|
3974
|
+
emits("confirm", value);
|
|
3975
|
+
props.inPopup && props.closePopup(value);
|
|
3976
|
+
}
|
|
3977
|
+
}
|
|
3978
|
+
dateRef.value == void 0 && (dateRef.value = electDateValue());
|
|
3979
|
+
buildPickerItems(stepRef.value, 0);
|
|
3555
3980
|
return (_ctx, _cache) => {
|
|
3556
|
-
return vue.openBlock(), vue.
|
|
3557
|
-
class: vue.normalizeClass(["
|
|
3558
|
-
"
|
|
3559
|
-
}])
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3981
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$b, {
|
|
3982
|
+
class: vue.normalizeClass(["date-picker pc", {
|
|
3983
|
+
"time-now": __props.pinned && __props.pinned.value == true
|
|
3984
|
+
}]),
|
|
3985
|
+
mode: "vertical",
|
|
3986
|
+
top: {
|
|
3987
|
+
height: "40px"
|
|
3988
|
+
},
|
|
3989
|
+
bottom: {
|
|
3990
|
+
height: "30px"
|
|
3991
|
+
}
|
|
3992
|
+
}, vue.createSlots({
|
|
3993
|
+
top: vue.withCtx(() => [vue.createVNode(_sfc_main$y, {
|
|
3994
|
+
type: "arrow",
|
|
3995
|
+
rotate: 180,
|
|
3996
|
+
size: 26,
|
|
3997
|
+
onClick: _cache[0] || (_cache[0] = $event => buildPickerItems(stepRef.value, -1))
|
|
3998
|
+
}), vue.createElementVNode("div", {
|
|
3999
|
+
class: vue.normalizeClass(["header-content", stepRef.value])
|
|
4000
|
+
}, [stepRef.value == "year" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
4001
|
+
key: 0,
|
|
4002
|
+
textContent: vue.toDisplayString(`${yearItems.value[0].year}年 - ${vue.unref(snail_core.getFromArray)(yearItems.value, -1).year}年`)
|
|
4003
|
+
}, null, 8, _hoisted_1$1)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4004
|
+
key: 1
|
|
4005
|
+
}, [vue.createElementVNode("div", {
|
|
4006
|
+
textContent: vue.toDisplayString(`${dateRef.value.year}年`),
|
|
4007
|
+
onClick: _cache[1] || (_cache[1] = $event => onSwitchStepClick("year"))
|
|
4008
|
+
}, null, 8, _hoisted_2), stepRef.value == "day" ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
4009
|
+
key: 0,
|
|
4010
|
+
textContent: vue.toDisplayString(`${dateRef.value.month}月`),
|
|
4011
|
+
onClick: _cache[2] || (_cache[2] = $event => onSwitchStepClick("month"))
|
|
4012
|
+
}, null, 8, _hoisted_3)) : vue.createCommentVNode("", true)], 64))], 2), vue.createVNode(_sfc_main$y, {
|
|
4013
|
+
type: "arrow",
|
|
4014
|
+
size: 26,
|
|
4015
|
+
onClick: _cache[3] || (_cache[3] = $event => buildPickerItems(stepRef.value, 1))
|
|
4016
|
+
})]),
|
|
4017
|
+
main: vue.withCtx(() => [stepRef.value == "year" ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
|
|
4018
|
+
key: 0
|
|
4019
|
+
}, vue.renderList(yearItems.value, item => {
|
|
3565
4020
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3566
|
-
class: vue.normalizeClass(["
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
4021
|
+
class: vue.normalizeClass(["year-item", {
|
|
4022
|
+
"active": dateRef.value.year == item.year,
|
|
4023
|
+
"disabled": item.disabled
|
|
4024
|
+
}]),
|
|
4025
|
+
key: item.year
|
|
4026
|
+
}, [vue.createElementVNode("span", {
|
|
4027
|
+
textContent: vue.toDisplayString(item.year),
|
|
4028
|
+
onClick: $event => onYearItemClick(item)
|
|
4029
|
+
}, null, 8, _hoisted_4)], 2);
|
|
4030
|
+
}), 128)) : stepRef.value == "month" ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, {
|
|
4031
|
+
key: 1
|
|
4032
|
+
}, vue.renderList(monthItems.value, item => {
|
|
3571
4033
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3572
|
-
class: vue.normalizeClass(["
|
|
3573
|
-
|
|
3574
|
-
|
|
3575
|
-
|
|
3576
|
-
|
|
4034
|
+
class: vue.normalizeClass(["month-item", {
|
|
4035
|
+
"active": dateRef.value.month == item.month,
|
|
4036
|
+
"disabled": item.disabled
|
|
4037
|
+
}]),
|
|
4038
|
+
key: `${item.year}-${item.month}`
|
|
4039
|
+
}, [vue.createElementVNode("span", {
|
|
4040
|
+
textContent: vue.toDisplayString(item.text),
|
|
4041
|
+
onClick: $event => onMonthItemClick(item)
|
|
4042
|
+
}, null, 8, _hoisted_5)], 2);
|
|
4043
|
+
}), 128)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4044
|
+
key: 2
|
|
4045
|
+
}, [(vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(["日", "一", "二", "三", "四", "五", "六"], item => {
|
|
4046
|
+
return vue.createElementVNode("div", {
|
|
4047
|
+
class: "day-item week",
|
|
4048
|
+
key: item,
|
|
4049
|
+
textContent: vue.toDisplayString(item)
|
|
4050
|
+
}, null, 8, _hoisted_6);
|
|
4051
|
+
}), 64)), (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(dayItemsRef.value, item => {
|
|
3577
4052
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3578
|
-
class: vue.normalizeClass(["
|
|
3579
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
4053
|
+
class: vue.normalizeClass(["day-item", {
|
|
4054
|
+
"active": dateRef.value.year == item.year && dateRef.value.month == item.month && dateRef.value.day == item.day,
|
|
4055
|
+
"now-month": dateRef.value.year == item.year && dateRef.value.month == item.month,
|
|
4056
|
+
"disabled": item.disabled
|
|
4057
|
+
}]),
|
|
4058
|
+
key: `${item.year}-${item.month}-${item.day}`
|
|
4059
|
+
}, [vue.createElementVNode("span", {
|
|
4060
|
+
textContent: vue.toDisplayString(item.day),
|
|
4061
|
+
onClick: $event => onDayItemClick(item)
|
|
4062
|
+
}, null, 8, _hoisted_7)], 2);
|
|
4063
|
+
}), 128))], 64))]),
|
|
4064
|
+
_: 2
|
|
4065
|
+
}, [vue.unref(endStep) == stepRef.value && (__props.toolbarDisabled != true || vue.unref(timeFormat) != void 0) ? {
|
|
4066
|
+
name: "bottom",
|
|
4067
|
+
fn: vue.withCtx(() => [vue.unref(timeFormat) != void 0 ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
4068
|
+
key: 0,
|
|
4069
|
+
class: vue.normalizeClass(["time-area", {
|
|
4070
|
+
placeholder: dateRef.value.hour == void 0
|
|
4071
|
+
}]),
|
|
4072
|
+
ref: "time-area",
|
|
4073
|
+
textContent: vue.toDisplayString(vue.unref(snail_core.formatTimeValue)(dateRef.value, vue.unref(timeFormat)) || "选择时间"),
|
|
4074
|
+
onClick: onSelectTime
|
|
4075
|
+
}, null, 10, _hoisted_8)) : vue.createCommentVNode("", true), __props.toolbarDisabled != true ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, {
|
|
4076
|
+
key: 1
|
|
4077
|
+
}, [__props.clearDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
4078
|
+
key: 0,
|
|
3583
4079
|
type: "link",
|
|
3584
4080
|
size: "small",
|
|
3585
4081
|
textContent: "清空",
|
|
3586
|
-
onClick: _cache[
|
|
3587
|
-
})
|
|
3588
|
-
key:
|
|
4082
|
+
onClick: _cache[4] || (_cache[4] = $event => (emits("clear"), vue.unref(inPopup) && __props.closePopup("")))
|
|
4083
|
+
})) : vue.createCommentVNode("", true), __props.nowDisabled != true ? (vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
4084
|
+
key: 1,
|
|
3589
4085
|
type: "link",
|
|
3590
4086
|
size: "small",
|
|
3591
4087
|
textContent: "现在",
|
|
3592
4088
|
onClick: onNow
|
|
3593
|
-
})) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$
|
|
4089
|
+
})) : vue.createCommentVNode("", true)], 64)) : vue.createCommentVNode("", true), vue.createVNode(_sfc_main$z, {
|
|
3594
4090
|
type: "link",
|
|
3595
4091
|
size: "small",
|
|
3596
4092
|
textContent: "确定",
|
|
4093
|
+
class: vue.normalizeClass({
|
|
4094
|
+
"disabled": isValidDateRef.value != true
|
|
4095
|
+
}),
|
|
3597
4096
|
onClick: onConfirm
|
|
3598
|
-
}
|
|
3599
|
-
|
|
3600
|
-
})
|
|
4097
|
+
}, null, 8, ["class"])]),
|
|
4098
|
+
key: "0"
|
|
4099
|
+
} : void 0]), 1032, ["class"]);
|
|
3601
4100
|
};
|
|
3602
4101
|
}
|
|
3603
4102
|
});
|
|
3604
4103
|
|
|
3605
4104
|
function usePicker() {
|
|
3606
4105
|
const popup = usePopup();
|
|
4106
|
+
function showDate(target, options) {
|
|
4107
|
+
options = {
|
|
4108
|
+
...options
|
|
4109
|
+
};
|
|
4110
|
+
return showPicker(target, _sfc_main$1, options);
|
|
4111
|
+
}
|
|
3607
4112
|
function showTime(target, options) {
|
|
3608
4113
|
options = {
|
|
3609
4114
|
...options
|
|
3610
4115
|
};
|
|
3611
|
-
|
|
4116
|
+
return showPicker(target, _sfc_main$2, options);
|
|
4117
|
+
}
|
|
4118
|
+
function showPicker(target, component, options) {
|
|
4119
|
+
let popupOptions = Object.create(null);
|
|
4120
|
+
if (options != void 0) {
|
|
4121
|
+
popupOptions.followX = options.followX;
|
|
4122
|
+
popupOptions.followY = options.followY;
|
|
4123
|
+
popupOptions.spaceX = options.spaceX;
|
|
4124
|
+
popupOptions.spaceY = options.spaceY;
|
|
4125
|
+
popupOptions.spaceClient = options.spaceClien;
|
|
4126
|
+
delete options.followX;
|
|
4127
|
+
delete options.followY;
|
|
4128
|
+
delete options.spaceX;
|
|
4129
|
+
delete options.spaceY;
|
|
4130
|
+
delete options.spaceClient;
|
|
4131
|
+
}
|
|
3612
4132
|
return popup.follow(target, {
|
|
3613
|
-
component
|
|
3614
|
-
followX:
|
|
3615
|
-
|
|
3616
|
-
|
|
3617
|
-
|
|
4133
|
+
component,
|
|
4134
|
+
followX: popupOptions.followX || "center",
|
|
4135
|
+
followY: popupOptions.followY,
|
|
4136
|
+
spaceX: snail_core.correctNumber(popupOptions.spaceX, 2),
|
|
4137
|
+
spaceY: snail_core.correctNumber(popupOptions.spaceY, 2),
|
|
4138
|
+
spaceClient: snail_core.correctNumber(popupOptions.spaceClient, 10),
|
|
3618
4139
|
closeOnMask: true,
|
|
3619
|
-
props:
|
|
4140
|
+
props: {
|
|
4141
|
+
...options,
|
|
4142
|
+
picker: manager,
|
|
4143
|
+
popup
|
|
4144
|
+
}
|
|
3620
4145
|
});
|
|
3621
4146
|
}
|
|
3622
|
-
{
|
|
3623
|
-
|
|
3624
|
-
|
|
3625
|
-
|
|
3626
|
-
|
|
3627
|
-
|
|
3628
|
-
}
|
|
4147
|
+
const manager = Object.freeze(snail_core.mountScope({
|
|
4148
|
+
showDate,
|
|
4149
|
+
showTime
|
|
4150
|
+
}, "IPickerManager"));
|
|
4151
|
+
manager.onDestroy(popup.destroy);
|
|
4152
|
+
return manager;
|
|
3629
4153
|
}
|
|
3630
4154
|
|
|
3631
4155
|
const _hoisted_1 = ["textContent"];
|
|
@@ -3713,12 +4237,12 @@
|
|
|
3713
4237
|
onTouchstart: onStartDrag,
|
|
3714
4238
|
onTouchmove: onDragMove,
|
|
3715
4239
|
onTouchend: onDragEnd
|
|
3716
|
-
}, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
4240
|
+
}, [dragInfoRef.value.status == "success" ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
3717
4241
|
key: 0,
|
|
3718
4242
|
type: "success",
|
|
3719
4243
|
size: 20,
|
|
3720
4244
|
color: "white"
|
|
3721
|
-
})) : (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
4245
|
+
})) : (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
3722
4246
|
key: 1,
|
|
3723
4247
|
type: "custom",
|
|
3724
4248
|
size: 20,
|
|
@@ -3730,32 +4254,32 @@
|
|
|
3730
4254
|
});
|
|
3731
4255
|
|
|
3732
4256
|
const components = {
|
|
3733
|
-
Button: _sfc_main$
|
|
3734
|
-
Choose: _sfc_main$
|
|
3735
|
-
DatePicker: _sfc_main$
|
|
3736
|
-
Footer: _sfc_main$
|
|
3737
|
-
Header: _sfc_main$
|
|
3738
|
-
Icon: _sfc_main$
|
|
3739
|
-
Input: _sfc_main$
|
|
3740
|
-
Number: _sfc_main$
|
|
3741
|
-
Search: _sfc_main$
|
|
3742
|
-
Select: _sfc_main$
|
|
3743
|
-
Switch: _sfc_main$
|
|
3744
|
-
Textarea: _sfc_main$
|
|
3745
|
-
Dynamic: _sfc_main$
|
|
3746
|
-
Fold: _sfc_main$
|
|
3747
|
-
Layout: _sfc_main$
|
|
3748
|
-
Scroll: _sfc_main$
|
|
3749
|
-
Sort: _sfc_main$
|
|
3750
|
-
Table: _sfc_main$
|
|
3751
|
-
TableRow: _sfc_main$
|
|
3752
|
-
TableCol: _sfc_main$
|
|
3753
|
-
Transitions: _sfc_main$
|
|
3754
|
-
Tree: _sfc_main$
|
|
3755
|
-
Wrapper: _sfc_main$
|
|
4257
|
+
Button: _sfc_main$z,
|
|
4258
|
+
Choose: _sfc_main$x,
|
|
4259
|
+
DatePicker: _sfc_main$w,
|
|
4260
|
+
Footer: _sfc_main$v,
|
|
4261
|
+
Header: _sfc_main$u,
|
|
4262
|
+
Icon: _sfc_main$y,
|
|
4263
|
+
Input: _sfc_main$t,
|
|
4264
|
+
Number: _sfc_main$s,
|
|
4265
|
+
Search: _sfc_main$r,
|
|
4266
|
+
Select: _sfc_main$g,
|
|
4267
|
+
Switch: _sfc_main$f,
|
|
4268
|
+
Textarea: _sfc_main$e,
|
|
4269
|
+
Dynamic: _sfc_main$o,
|
|
4270
|
+
Fold: _sfc_main$d,
|
|
4271
|
+
Layout: _sfc_main$b,
|
|
4272
|
+
Scroll: _sfc_main$c,
|
|
4273
|
+
Sort: _sfc_main$a,
|
|
4274
|
+
Table: _sfc_main$9,
|
|
4275
|
+
TableRow: _sfc_main$8,
|
|
4276
|
+
TableCol: _sfc_main$7,
|
|
4277
|
+
Transitions: _sfc_main$6,
|
|
4278
|
+
Tree: _sfc_main$4,
|
|
4279
|
+
Wrapper: _sfc_main$3,
|
|
3756
4280
|
DragVerify: _sfc_main,
|
|
3757
|
-
Empty: _sfc_main$
|
|
3758
|
-
Loading: _sfc_main$
|
|
4281
|
+
Empty: _sfc_main$j,
|
|
4282
|
+
Loading: _sfc_main$p
|
|
3759
4283
|
};
|
|
3760
4284
|
|
|
3761
4285
|
snail_core.onMountScope(scope => {
|