widget.qw 1.0.74 → 1.0.76
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/.env.development +10 -10
- package/.env.production +8 -8
- package/README.md +73 -73
- package/build/style.css +473 -487
- package/build/widget.qw.es.js +1516 -130
- package/build/widget.qw.umd.js +1515 -129
- package/index.html +17 -17
- package/package.json +47 -47
- package/src/App.vue +26 -26
- package/src/api/index.js +165 -165
- package/src/components/AuditBar.vue +396 -396
- package/src/components/BillCard.vue +164 -164
- package/src/components/CascaderPicker.vue +132 -132
- package/src/components/CascaderPop.vue +371 -371
- package/src/components/CheckGroup.vue +113 -113
- package/src/components/DatetimePicker/DatetimePop.vue +342 -342
- package/src/components/DatetimePicker/index.vue +124 -124
- package/src/components/DayDropdown.vue +56 -56
- package/src/components/FilePicker.vue +145 -136
- package/src/components/Input.vue +80 -80
- package/src/components/MonthDropdown.vue +51 -51
- package/src/components/MultiPicker.vue +123 -123
- package/src/components/ObjsEditor.vue +334 -334
- package/src/components/SecretNotify.js +5 -5
- package/src/components/Sheet.vue +92 -92
- package/src/components/SingleApiPicker.vue +108 -108
- package/src/components/SinglePicker.vue +102 -102
- package/src/components/SingleUserSelector.vue +425 -425
- package/src/components/Switch.vue +64 -64
- package/src/components/TreePicker.vue +113 -113
- package/src/components/UserPicker.vue +106 -106
- package/src/components/UserProfile.vue +129 -129
- package/src/components/UsersPicker.vue +118 -118
- package/src/components/YearDropdown.vue +59 -59
- package/src/components/data_selector.vue +303 -303
- package/src/components/image_picker.vue +123 -123
- package/src/components/images_picker.vue +159 -144
- package/src/components/index.js +162 -162
- package/src/components/mult_list_selector.vue +155 -155
- package/src/components/subdepartment_selector.vue +481 -481
- package/src/components/user_selector.vue +639 -639
- package/src/components/widget/DataPop.vue +95 -95
- package/src/components/widget/TreePop.vue +88 -88
- package/src/components/widget/UserPop.vue +347 -347
- package/src/env.d.ts +8 -8
- package/src/main.js +117 -117
- package/src/router/index.ts +173 -173
- package/src/util/array_util.js +32 -32
- package/src/util/auth_util.js +72 -72
- package/src/util/bool_util.js +5 -5
- package/src/util/bus.js +1 -1
- package/src/util/cache_util.js +18 -18
- package/src/util/errer_code.js +6 -6
- package/src/util/eval_util.js +19 -19
- package/src/util/icon_util.js +36 -36
- package/src/util/image_util.js +27 -27
- package/src/util/index.js +57 -57
- package/src/util/num_util.js +70 -70
- package/src/util/obj_util.js +28 -28
- package/src/util/request.js +73 -73
- package/src/util/request_json.js +71 -71
- package/src/util/request_json_mute.js +65 -65
- package/src/util/request_upload.js +79 -79
- package/src/util/route_util.js +31 -31
- package/src/util/str_util.js +143 -143
- package/src/util/time_util.js +406 -406
- package/src/util/toast_util.js +24 -24
- package/src/util/tree_util.js +153 -153
- package/src/util/uuid_util.js +9 -9
- package/src/util/validate.js +182 -182
- package/src/util/vue_filter.js +223 -223
- package/src/views/auditbar/index.vue +78 -78
- package/src/views/billcard/index.vue +48 -48
- package/src/views/cascaderpop/index.vue +90 -90
- package/src/views/checkgroup/index.vue +35 -35
- package/src/views/dataSelector/index.vue +48 -48
- package/src/views/datetimepicker/index.vue +34 -34
- package/src/views/daydropdown/index.vue +31 -31
- package/src/views/filepicker/index.vue +31 -31
- package/src/views/imagepicker/index.vue +31 -31
- package/src/views/imagespicker/index.vue +31 -31
- package/src/views/input/index.vue +35 -35
- package/src/views/monthdropdown/index.vue +31 -31
- package/src/views/multListSelector/index.vue +61 -61
- package/src/views/multipicker/index.vue +36 -36
- package/src/views/objseditor/index.vue +277 -277
- package/src/views/productSelector/index.vue +35 -35
- package/src/views/projectpicker/index.vue +41 -41
- package/src/views/secretnotify/index.vue +27 -27
- package/src/views/sheet/index.vue +45 -45
- package/src/views/singlepicker/index.vue +35 -35
- package/src/views/subdepartmentSelector/index.vue +40 -40
- package/src/views/switch/index.vue +34 -34
- package/src/views/treepicker/index.vue +41 -41
- package/src/views/userSelector/index.vue +54 -54
- package/src/views/userSelectorNew/index.vue +45 -45
- package/src/views/userpicker/index.vue +43 -43
- package/src/views/userprofile/index.vue +30 -30
- package/src/views/userspicker/index.vue +43 -43
- package/src/views/yeardropdown/index.vue +32 -32
- package/src/vm/index.js +1 -1
- package/tsconfig.json +19 -19
- package/tsconfig.node.json +8 -8
- package/vite.config.ts +122 -122
package/build/widget.qw.es.js
CHANGED
|
@@ -4,6 +4,7 @@ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
|
4
4
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
+
var __pow = Math.pow;
|
|
7
8
|
var __defNormalProp = (obj2, key, value) => key in obj2 ? __defProp(obj2, key, { enumerable: true, configurable: true, writable: true, value }) : obj2[key] = value;
|
|
8
9
|
var __spreadValues = (a, b) => {
|
|
9
10
|
for (var prop in b || (b = {}))
|
|
@@ -37,7 +38,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
37
38
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
39
|
});
|
|
39
40
|
};
|
|
40
|
-
import { computed, onUnmounted, onDeactivated, isRef, watch, onMounted, nextTick, onActivated, unref, ref, reactive, getCurrentInstance, defineComponent, createVNode, onBeforeUnmount,
|
|
41
|
+
import { computed, onUnmounted, onDeactivated, isRef, watch, onMounted, nextTick, onActivated, unref, ref, reactive, getCurrentInstance, provide, inject, isVNode, defineComponent, createVNode, onBeforeUnmount, watchEffect, mergeProps, Transition, Teleport, withDirectives, vShow, Fragment, createApp, resolveDirective, resolveComponent, openBlock, createElementBlock, createBlock, createCommentVNode, withCtx, toDisplayString, renderList, createElementVNode, createTextVNode, createSlots, withModifiers, onBeforeUpdate, normalizeClass, renderSlot } from "vue";
|
|
41
42
|
var vm = {};
|
|
42
43
|
var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
|
|
43
44
|
function getAugmentedNamespace(n) {
|
|
@@ -1247,13 +1248,13 @@ var bind$2 = bind$4;
|
|
|
1247
1248
|
var Axios = Axios_1;
|
|
1248
1249
|
var mergeConfig = mergeConfig$2;
|
|
1249
1250
|
var defaults$3 = defaults_1;
|
|
1250
|
-
function createInstance$1(
|
|
1251
|
-
var context = new Axios(
|
|
1251
|
+
function createInstance$1(defaultConfig2) {
|
|
1252
|
+
var context = new Axios(defaultConfig2);
|
|
1252
1253
|
var instance2 = bind$2(Axios.prototype.request, context);
|
|
1253
1254
|
utils$3.extend(instance2, Axios.prototype, context);
|
|
1254
1255
|
utils$3.extend(instance2, context);
|
|
1255
1256
|
instance2.create = function create(instanceConfig) {
|
|
1256
|
-
return createInstance$1(mergeConfig(
|
|
1257
|
+
return createInstance$1(mergeConfig(defaultConfig2, instanceConfig));
|
|
1257
1258
|
};
|
|
1258
1259
|
return instance2;
|
|
1259
1260
|
}
|
|
@@ -3378,15 +3379,140 @@ const truthProp = {
|
|
|
3378
3379
|
type: Boolean,
|
|
3379
3380
|
default: true
|
|
3380
3381
|
};
|
|
3382
|
+
const makeRequiredProp = (type) => ({
|
|
3383
|
+
type,
|
|
3384
|
+
required: true
|
|
3385
|
+
});
|
|
3386
|
+
const makeArrayProp = () => ({
|
|
3387
|
+
type: Array,
|
|
3388
|
+
default: () => []
|
|
3389
|
+
});
|
|
3381
3390
|
const makeNumberProp = (defaultVal) => ({
|
|
3382
3391
|
type: Number,
|
|
3383
3392
|
default: defaultVal
|
|
3384
3393
|
});
|
|
3394
|
+
const makeNumericProp = (defaultVal) => ({
|
|
3395
|
+
type: numericProp,
|
|
3396
|
+
default: defaultVal
|
|
3397
|
+
});
|
|
3385
3398
|
const makeStringProp = (defaultVal) => ({
|
|
3386
3399
|
type: String,
|
|
3387
3400
|
default: defaultVal
|
|
3388
3401
|
});
|
|
3389
3402
|
var inBrowser = typeof window !== "undefined";
|
|
3403
|
+
function raf(fn) {
|
|
3404
|
+
return inBrowser ? requestAnimationFrame(fn) : -1;
|
|
3405
|
+
}
|
|
3406
|
+
function doubleRaf(fn) {
|
|
3407
|
+
raf(() => raf(fn));
|
|
3408
|
+
}
|
|
3409
|
+
var isWindow = (val) => val === window;
|
|
3410
|
+
var makeDOMRect = (width2, height2) => ({
|
|
3411
|
+
top: 0,
|
|
3412
|
+
left: 0,
|
|
3413
|
+
right: width2,
|
|
3414
|
+
bottom: height2,
|
|
3415
|
+
width: width2,
|
|
3416
|
+
height: height2
|
|
3417
|
+
});
|
|
3418
|
+
var useRect = (elementOrRef) => {
|
|
3419
|
+
const element = unref(elementOrRef);
|
|
3420
|
+
if (isWindow(element)) {
|
|
3421
|
+
const width2 = element.innerWidth;
|
|
3422
|
+
const height2 = element.innerHeight;
|
|
3423
|
+
return makeDOMRect(width2, height2);
|
|
3424
|
+
}
|
|
3425
|
+
if (element == null ? void 0 : element.getBoundingClientRect) {
|
|
3426
|
+
return element.getBoundingClientRect();
|
|
3427
|
+
}
|
|
3428
|
+
return makeDOMRect(0, 0);
|
|
3429
|
+
};
|
|
3430
|
+
function useParent(key) {
|
|
3431
|
+
const parent = inject(key, null);
|
|
3432
|
+
if (parent) {
|
|
3433
|
+
const instance2 = getCurrentInstance();
|
|
3434
|
+
const { link, unlink, internalChildren } = parent;
|
|
3435
|
+
link(instance2);
|
|
3436
|
+
onUnmounted(() => unlink(instance2));
|
|
3437
|
+
const index = computed(() => internalChildren.indexOf(instance2));
|
|
3438
|
+
return {
|
|
3439
|
+
parent,
|
|
3440
|
+
index
|
|
3441
|
+
};
|
|
3442
|
+
}
|
|
3443
|
+
return {
|
|
3444
|
+
parent: null,
|
|
3445
|
+
index: ref(-1)
|
|
3446
|
+
};
|
|
3447
|
+
}
|
|
3448
|
+
function flattenVNodes(children) {
|
|
3449
|
+
const result = [];
|
|
3450
|
+
const traverse = (children2) => {
|
|
3451
|
+
if (Array.isArray(children2)) {
|
|
3452
|
+
children2.forEach((child) => {
|
|
3453
|
+
var _a;
|
|
3454
|
+
if (isVNode(child)) {
|
|
3455
|
+
result.push(child);
|
|
3456
|
+
if ((_a = child.component) == null ? void 0 : _a.subTree) {
|
|
3457
|
+
result.push(child.component.subTree);
|
|
3458
|
+
traverse(child.component.subTree.children);
|
|
3459
|
+
}
|
|
3460
|
+
if (child.children) {
|
|
3461
|
+
traverse(child.children);
|
|
3462
|
+
}
|
|
3463
|
+
}
|
|
3464
|
+
});
|
|
3465
|
+
}
|
|
3466
|
+
};
|
|
3467
|
+
traverse(children);
|
|
3468
|
+
return result;
|
|
3469
|
+
}
|
|
3470
|
+
var findVNodeIndex = (vnodes, vnode) => {
|
|
3471
|
+
const index = vnodes.indexOf(vnode);
|
|
3472
|
+
if (index === -1) {
|
|
3473
|
+
return vnodes.findIndex((item) => vnode.key !== void 0 && vnode.key !== null && item.type === vnode.type && item.key === vnode.key);
|
|
3474
|
+
}
|
|
3475
|
+
return index;
|
|
3476
|
+
};
|
|
3477
|
+
function sortChildren(parent, publicChildren, internalChildren) {
|
|
3478
|
+
const vnodes = flattenVNodes(parent.subTree.children);
|
|
3479
|
+
internalChildren.sort((a, b) => findVNodeIndex(vnodes, a.vnode) - findVNodeIndex(vnodes, b.vnode));
|
|
3480
|
+
const orderedPublicChildren = internalChildren.map((item) => item.proxy);
|
|
3481
|
+
publicChildren.sort((a, b) => {
|
|
3482
|
+
const indexA = orderedPublicChildren.indexOf(a);
|
|
3483
|
+
const indexB = orderedPublicChildren.indexOf(b);
|
|
3484
|
+
return indexA - indexB;
|
|
3485
|
+
});
|
|
3486
|
+
}
|
|
3487
|
+
function useChildren(key) {
|
|
3488
|
+
const publicChildren = reactive([]);
|
|
3489
|
+
const internalChildren = reactive([]);
|
|
3490
|
+
const parent = getCurrentInstance();
|
|
3491
|
+
const linkChildren = (value) => {
|
|
3492
|
+
const link = (child) => {
|
|
3493
|
+
if (child.proxy) {
|
|
3494
|
+
internalChildren.push(child);
|
|
3495
|
+
publicChildren.push(child.proxy);
|
|
3496
|
+
sortChildren(parent, publicChildren, internalChildren);
|
|
3497
|
+
}
|
|
3498
|
+
};
|
|
3499
|
+
const unlink = (child) => {
|
|
3500
|
+
const index = internalChildren.indexOf(child);
|
|
3501
|
+
publicChildren.splice(index, 1);
|
|
3502
|
+
internalChildren.splice(index, 1);
|
|
3503
|
+
};
|
|
3504
|
+
provide(key, Object.assign({
|
|
3505
|
+
link,
|
|
3506
|
+
unlink,
|
|
3507
|
+
children: publicChildren,
|
|
3508
|
+
internalChildren
|
|
3509
|
+
}, value));
|
|
3510
|
+
};
|
|
3511
|
+
return {
|
|
3512
|
+
children: publicChildren,
|
|
3513
|
+
linkChildren
|
|
3514
|
+
};
|
|
3515
|
+
}
|
|
3390
3516
|
function onMountedOrActivated(hook) {
|
|
3391
3517
|
let mounted;
|
|
3392
3518
|
onMounted(() => {
|
|
@@ -3482,6 +3608,20 @@ function getScrollParent(el, root = defaultRoot) {
|
|
|
3482
3608
|
}
|
|
3483
3609
|
return root;
|
|
3484
3610
|
}
|
|
3611
|
+
var visibility;
|
|
3612
|
+
function usePageVisibility() {
|
|
3613
|
+
if (!visibility) {
|
|
3614
|
+
visibility = ref("visible");
|
|
3615
|
+
if (inBrowser) {
|
|
3616
|
+
const update = () => {
|
|
3617
|
+
visibility.value = document.hidden ? "hidden" : "visible";
|
|
3618
|
+
};
|
|
3619
|
+
update();
|
|
3620
|
+
window.addEventListener("visibilitychange", update);
|
|
3621
|
+
}
|
|
3622
|
+
}
|
|
3623
|
+
return visibility;
|
|
3624
|
+
}
|
|
3485
3625
|
isIOS();
|
|
3486
3626
|
const stopPropagation = (event) => event.stopPropagation();
|
|
3487
3627
|
function preventDefault(event, isStopPropagation) {
|
|
@@ -3492,7 +3632,17 @@ function preventDefault(event, isStopPropagation) {
|
|
|
3492
3632
|
stopPropagation(event);
|
|
3493
3633
|
}
|
|
3494
3634
|
}
|
|
3495
|
-
|
|
3635
|
+
function isHidden(elementRef) {
|
|
3636
|
+
const el = unref(elementRef);
|
|
3637
|
+
if (!el) {
|
|
3638
|
+
return false;
|
|
3639
|
+
}
|
|
3640
|
+
const style = window.getComputedStyle(el);
|
|
3641
|
+
const hidden = style.display === "none";
|
|
3642
|
+
const parentHidden = el.offsetParent === null && style.position !== "fixed";
|
|
3643
|
+
return hidden || parentHidden;
|
|
3644
|
+
}
|
|
3645
|
+
const { width: windowWidth, height: windowHeight } = useWindowSize();
|
|
3496
3646
|
function addUnit(value) {
|
|
3497
3647
|
if (isDef$1(value)) {
|
|
3498
3648
|
return isNumeric(value) ? `${value}px` : String(value);
|
|
@@ -3524,6 +3674,7 @@ function getZIndexStyle(zIndex) {
|
|
|
3524
3674
|
const camelizeRE = /-(\w)/g;
|
|
3525
3675
|
const camelize = (str) => str.replace(camelizeRE, (_, c) => c.toUpperCase());
|
|
3526
3676
|
const kebabCase = (str) => str.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
|
|
3677
|
+
const clamp = (num, min2, max2) => Math.min(Math.max(num, min2), max2);
|
|
3527
3678
|
const { hasOwnProperty } = Object.prototype;
|
|
3528
3679
|
function assignKey(to2, from2, key) {
|
|
3529
3680
|
const val = from2[key];
|
|
@@ -3542,7 +3693,7 @@ function deepAssign(to2, from2) {
|
|
|
3542
3693
|
});
|
|
3543
3694
|
return to2;
|
|
3544
3695
|
}
|
|
3545
|
-
var stdin_default$
|
|
3696
|
+
var stdin_default$d = {
|
|
3546
3697
|
name: "\u59D3\u540D",
|
|
3547
3698
|
tel: "\u7535\u8BDD",
|
|
3548
3699
|
save: "\u4FDD\u5B58",
|
|
@@ -3606,7 +3757,7 @@ var stdin_default$8 = {
|
|
|
3606
3757
|
};
|
|
3607
3758
|
const lang$1 = ref("zh-CN");
|
|
3608
3759
|
const messages = reactive({
|
|
3609
|
-
"zh-CN": stdin_default$
|
|
3760
|
+
"zh-CN": stdin_default$d
|
|
3610
3761
|
});
|
|
3611
3762
|
const Locale$1 = {
|
|
3612
3763
|
messages() {
|
|
@@ -3620,11 +3771,11 @@ const Locale$1 = {
|
|
|
3620
3771
|
deepAssign(messages, newMessages);
|
|
3621
3772
|
}
|
|
3622
3773
|
};
|
|
3623
|
-
var stdin_default$
|
|
3774
|
+
var stdin_default$c = Locale$1;
|
|
3624
3775
|
function createTranslate(name2) {
|
|
3625
3776
|
const prefix = camelize(name2) + ".";
|
|
3626
3777
|
return (path, ...args) => {
|
|
3627
|
-
const messages2 = stdin_default$
|
|
3778
|
+
const messages2 = stdin_default$c.messages();
|
|
3628
3779
|
const message = get$3(messages2, prefix + path) || get$3(messages2, path);
|
|
3629
3780
|
return isFunction$1(message) ? message(...args) : message;
|
|
3630
3781
|
};
|
|
@@ -3660,6 +3811,7 @@ function createNamespace(name2) {
|
|
|
3660
3811
|
];
|
|
3661
3812
|
}
|
|
3662
3813
|
const HAPTICS_FEEDBACK = "van-haptics-feedback";
|
|
3814
|
+
const LONG_PRESS_START_TIME = 500;
|
|
3663
3815
|
const TAP_OFFSET = 5;
|
|
3664
3816
|
function callInterceptor(interceptor, {
|
|
3665
3817
|
args = [],
|
|
@@ -3697,13 +3849,23 @@ function withInstall(options) {
|
|
|
3697
3849
|
return options;
|
|
3698
3850
|
}
|
|
3699
3851
|
const POPUP_TOGGLE_KEY = Symbol();
|
|
3852
|
+
function onPopupReopen(callback) {
|
|
3853
|
+
const popupToggleStatus = inject(POPUP_TOGGLE_KEY, null);
|
|
3854
|
+
if (popupToggleStatus) {
|
|
3855
|
+
watch(popupToggleStatus, (show) => {
|
|
3856
|
+
if (show) {
|
|
3857
|
+
callback();
|
|
3858
|
+
}
|
|
3859
|
+
});
|
|
3860
|
+
}
|
|
3861
|
+
}
|
|
3700
3862
|
function useExpose(apis) {
|
|
3701
3863
|
const instance2 = getCurrentInstance();
|
|
3702
3864
|
if (instance2) {
|
|
3703
3865
|
extend$1(instance2.proxy, apis);
|
|
3704
3866
|
}
|
|
3705
3867
|
}
|
|
3706
|
-
const [name$
|
|
3868
|
+
const [name$b, bem$c] = createNamespace("badge");
|
|
3707
3869
|
const badgeProps = {
|
|
3708
3870
|
dot: Boolean,
|
|
3709
3871
|
max: numericProp,
|
|
@@ -3714,8 +3876,8 @@ const badgeProps = {
|
|
|
3714
3876
|
showZero: truthProp,
|
|
3715
3877
|
position: makeStringProp("top-right")
|
|
3716
3878
|
};
|
|
3717
|
-
var stdin_default$
|
|
3718
|
-
name: name$
|
|
3879
|
+
var stdin_default$b = defineComponent({
|
|
3880
|
+
name: name$b,
|
|
3719
3881
|
props: badgeProps,
|
|
3720
3882
|
setup(props, {
|
|
3721
3883
|
slots
|
|
@@ -3778,7 +3940,7 @@ var stdin_default$6 = defineComponent({
|
|
|
3778
3940
|
const renderBadge = () => {
|
|
3779
3941
|
if (hasContent() || props.dot) {
|
|
3780
3942
|
return createVNode("div", {
|
|
3781
|
-
"class": bem$
|
|
3943
|
+
"class": bem$c([props.position, {
|
|
3782
3944
|
dot: props.dot,
|
|
3783
3945
|
fixed: !!slots.default
|
|
3784
3946
|
}]),
|
|
@@ -3792,7 +3954,7 @@ var stdin_default$6 = defineComponent({
|
|
|
3792
3954
|
tag
|
|
3793
3955
|
} = props;
|
|
3794
3956
|
return createVNode(tag, {
|
|
3795
|
-
"class": bem$
|
|
3957
|
+
"class": bem$c("wrapper")
|
|
3796
3958
|
}, {
|
|
3797
3959
|
default: () => [slots.default(), renderBadge()]
|
|
3798
3960
|
});
|
|
@@ -3801,14 +3963,14 @@ var stdin_default$6 = defineComponent({
|
|
|
3801
3963
|
};
|
|
3802
3964
|
}
|
|
3803
3965
|
});
|
|
3804
|
-
const Badge = withInstall(stdin_default$
|
|
3966
|
+
const Badge = withInstall(stdin_default$b);
|
|
3805
3967
|
let globalZIndex = 2e3;
|
|
3806
3968
|
const useGlobalZIndex = () => ++globalZIndex;
|
|
3807
3969
|
const setGlobalZIndex = (val) => {
|
|
3808
3970
|
globalZIndex = val;
|
|
3809
3971
|
};
|
|
3810
|
-
const [name$
|
|
3811
|
-
const CONFIG_PROVIDER_KEY = Symbol(name$
|
|
3972
|
+
const [name$a, bem$b] = createNamespace("config-provider");
|
|
3973
|
+
const CONFIG_PROVIDER_KEY = Symbol(name$a);
|
|
3812
3974
|
const configProviderProps = {
|
|
3813
3975
|
tag: makeStringProp("div"),
|
|
3814
3976
|
theme: makeStringProp("light"),
|
|
@@ -3843,7 +4005,7 @@ function syncThemeVarsOnRoot(newStyle = {}, oldStyle = {}) {
|
|
|
3843
4005
|
});
|
|
3844
4006
|
}
|
|
3845
4007
|
defineComponent({
|
|
3846
|
-
name: name$
|
|
4008
|
+
name: name$a,
|
|
3847
4009
|
props: configProviderProps,
|
|
3848
4010
|
setup(props, {
|
|
3849
4011
|
slots
|
|
@@ -3891,7 +4053,7 @@ defineComponent({
|
|
|
3891
4053
|
}
|
|
3892
4054
|
});
|
|
3893
4055
|
return () => createVNode(props.tag, {
|
|
3894
|
-
"class": bem$
|
|
4056
|
+
"class": bem$b(),
|
|
3895
4057
|
"style": props.themeVarsScope === "local" ? style.value : void 0
|
|
3896
4058
|
}, {
|
|
3897
4059
|
default: () => {
|
|
@@ -3901,7 +4063,7 @@ defineComponent({
|
|
|
3901
4063
|
});
|
|
3902
4064
|
}
|
|
3903
4065
|
});
|
|
3904
|
-
const [name$
|
|
4066
|
+
const [name$9, bem$a] = createNamespace("icon");
|
|
3905
4067
|
const isImage = (name2) => name2 == null ? void 0 : name2.includes("/");
|
|
3906
4068
|
const iconProps = {
|
|
3907
4069
|
dot: Boolean,
|
|
@@ -3913,14 +4075,14 @@ const iconProps = {
|
|
|
3913
4075
|
badgeProps: Object,
|
|
3914
4076
|
classPrefix: String
|
|
3915
4077
|
};
|
|
3916
|
-
var stdin_default$
|
|
3917
|
-
name: name$
|
|
4078
|
+
var stdin_default$a = defineComponent({
|
|
4079
|
+
name: name$9,
|
|
3918
4080
|
props: iconProps,
|
|
3919
4081
|
setup(props, {
|
|
3920
4082
|
slots
|
|
3921
4083
|
}) {
|
|
3922
4084
|
const config = inject(CONFIG_PROVIDER_KEY, null);
|
|
3923
|
-
const classPrefix = computed(() => props.classPrefix || (config == null ? void 0 : config.iconPrefix) || bem$
|
|
4085
|
+
const classPrefix = computed(() => props.classPrefix || (config == null ? void 0 : config.iconPrefix) || bem$a());
|
|
3924
4086
|
return () => {
|
|
3925
4087
|
const {
|
|
3926
4088
|
tag,
|
|
@@ -3944,7 +4106,7 @@ var stdin_default$5 = defineComponent({
|
|
|
3944
4106
|
default: () => {
|
|
3945
4107
|
var _a;
|
|
3946
4108
|
return [(_a = slots.default) == null ? void 0 : _a.call(slots), isImageIcon && createVNode("img", {
|
|
3947
|
-
"class": bem$
|
|
4109
|
+
"class": bem$a("image"),
|
|
3948
4110
|
"src": name2
|
|
3949
4111
|
}, null)];
|
|
3950
4112
|
}
|
|
@@ -3952,13 +4114,13 @@ var stdin_default$5 = defineComponent({
|
|
|
3952
4114
|
};
|
|
3953
4115
|
}
|
|
3954
4116
|
});
|
|
3955
|
-
const Icon = withInstall(stdin_default$
|
|
3956
|
-
const [name$
|
|
4117
|
+
const Icon = withInstall(stdin_default$a);
|
|
4118
|
+
const [name$8, bem$9] = createNamespace("loading");
|
|
3957
4119
|
const SpinIcon = Array(12).fill(null).map((_, index) => createVNode("i", {
|
|
3958
|
-
"class": bem$
|
|
4120
|
+
"class": bem$9("line", String(index + 1))
|
|
3959
4121
|
}, null));
|
|
3960
4122
|
const CircularIcon = createVNode("svg", {
|
|
3961
|
-
"class": bem$
|
|
4123
|
+
"class": bem$9("circular"),
|
|
3962
4124
|
"viewBox": "25 25 50 50"
|
|
3963
4125
|
}, [createVNode("circle", {
|
|
3964
4126
|
"cx": "50",
|
|
@@ -3974,8 +4136,8 @@ const loadingProps = {
|
|
|
3974
4136
|
textSize: numericProp,
|
|
3975
4137
|
textColor: String
|
|
3976
4138
|
};
|
|
3977
|
-
var stdin_default$
|
|
3978
|
-
name: name$
|
|
4139
|
+
var stdin_default$9 = defineComponent({
|
|
4140
|
+
name: name$8,
|
|
3979
4141
|
props: loadingProps,
|
|
3980
4142
|
setup(props, {
|
|
3981
4143
|
slots
|
|
@@ -3986,7 +4148,7 @@ var stdin_default$4 = defineComponent({
|
|
|
3986
4148
|
const renderIcon = () => {
|
|
3987
4149
|
const DefaultIcon = props.type === "spinner" ? SpinIcon : CircularIcon;
|
|
3988
4150
|
return createVNode("span", {
|
|
3989
|
-
"class": bem$
|
|
4151
|
+
"class": bem$9("spinner", props.type),
|
|
3990
4152
|
"style": spinnerStyle.value
|
|
3991
4153
|
}, [slots.icon ? slots.icon() : DefaultIcon]);
|
|
3992
4154
|
};
|
|
@@ -3994,7 +4156,7 @@ var stdin_default$4 = defineComponent({
|
|
|
3994
4156
|
var _a;
|
|
3995
4157
|
if (slots.default) {
|
|
3996
4158
|
return createVNode("span", {
|
|
3997
|
-
"class": bem$
|
|
4159
|
+
"class": bem$9("text"),
|
|
3998
4160
|
"style": {
|
|
3999
4161
|
fontSize: addUnit(props.textSize),
|
|
4000
4162
|
color: (_a = props.textColor) != null ? _a : props.color
|
|
@@ -4008,7 +4170,7 @@ var stdin_default$4 = defineComponent({
|
|
|
4008
4170
|
vertical
|
|
4009
4171
|
} = props;
|
|
4010
4172
|
return createVNode("div", {
|
|
4011
|
-
"class": bem$
|
|
4173
|
+
"class": bem$9([type, {
|
|
4012
4174
|
vertical
|
|
4013
4175
|
}]),
|
|
4014
4176
|
"aria-live": "polite",
|
|
@@ -4017,7 +4179,7 @@ var stdin_default$4 = defineComponent({
|
|
|
4017
4179
|
};
|
|
4018
4180
|
}
|
|
4019
4181
|
});
|
|
4020
|
-
const Loading = withInstall(stdin_default$
|
|
4182
|
+
const Loading = withInstall(stdin_default$9);
|
|
4021
4183
|
const popupSharedProps = {
|
|
4022
4184
|
show: Boolean,
|
|
4023
4185
|
zIndex: numericProp,
|
|
@@ -4158,7 +4320,7 @@ const useScopeId = () => {
|
|
|
4158
4320
|
const { scopeId } = ((_a = getCurrentInstance()) == null ? void 0 : _a.vnode) || {};
|
|
4159
4321
|
return scopeId ? { [scopeId]: "" } : null;
|
|
4160
4322
|
};
|
|
4161
|
-
const [name$
|
|
4323
|
+
const [name$7, bem$8] = createNamespace("overlay");
|
|
4162
4324
|
const overlayProps = {
|
|
4163
4325
|
show: Boolean,
|
|
4164
4326
|
zIndex: numericProp,
|
|
@@ -4169,8 +4331,8 @@ const overlayProps = {
|
|
|
4169
4331
|
customStyle: Object,
|
|
4170
4332
|
teleport: [String, Object]
|
|
4171
4333
|
};
|
|
4172
|
-
var stdin_default$
|
|
4173
|
-
name: name$
|
|
4334
|
+
var stdin_default$8 = defineComponent({
|
|
4335
|
+
name: name$7,
|
|
4174
4336
|
inheritAttrs: false,
|
|
4175
4337
|
props: overlayProps,
|
|
4176
4338
|
setup(props, {
|
|
@@ -4193,7 +4355,7 @@ var stdin_default$3 = defineComponent({
|
|
|
4193
4355
|
return withDirectives(createVNode("div", mergeProps({
|
|
4194
4356
|
"ref": root,
|
|
4195
4357
|
"style": style,
|
|
4196
|
-
"class": [bem$
|
|
4358
|
+
"class": [bem$8(), props.className]
|
|
4197
4359
|
}, attrs), [(_a = slots.default) == null ? void 0 : _a.call(slots)]), [[vShow, props.show]]);
|
|
4198
4360
|
});
|
|
4199
4361
|
useEventListener("touchmove", onTouchMove, {
|
|
@@ -4217,8 +4379,8 @@ var stdin_default$3 = defineComponent({
|
|
|
4217
4379
|
};
|
|
4218
4380
|
}
|
|
4219
4381
|
});
|
|
4220
|
-
const Overlay = withInstall(stdin_default$
|
|
4221
|
-
const popupProps = extend$1({}, popupSharedProps, {
|
|
4382
|
+
const Overlay = withInstall(stdin_default$8);
|
|
4383
|
+
const popupProps$1 = extend$1({}, popupSharedProps, {
|
|
4222
4384
|
round: Boolean,
|
|
4223
4385
|
position: makeStringProp("center"),
|
|
4224
4386
|
closeIcon: makeStringProp("cross"),
|
|
@@ -4231,11 +4393,11 @@ const popupProps = extend$1({}, popupSharedProps, {
|
|
|
4231
4393
|
safeAreaInsetTop: Boolean,
|
|
4232
4394
|
safeAreaInsetBottom: Boolean
|
|
4233
4395
|
});
|
|
4234
|
-
const [name$
|
|
4235
|
-
var stdin_default$
|
|
4236
|
-
name: name$
|
|
4396
|
+
const [name$6, bem$7] = createNamespace("popup");
|
|
4397
|
+
var stdin_default$7 = defineComponent({
|
|
4398
|
+
name: name$6,
|
|
4237
4399
|
inheritAttrs: false,
|
|
4238
|
-
props: popupProps,
|
|
4400
|
+
props: popupProps$1,
|
|
4239
4401
|
emits: ["open", "close", "opened", "closed", "keydown", "update:show", "clickOverlay", "clickCloseIcon"],
|
|
4240
4402
|
setup(props, {
|
|
4241
4403
|
emit,
|
|
@@ -4309,7 +4471,7 @@ var stdin_default$2 = defineComponent({
|
|
|
4309
4471
|
"role": "button",
|
|
4310
4472
|
"tabindex": 0,
|
|
4311
4473
|
"name": props.closeIcon,
|
|
4312
|
-
"class": [bem$
|
|
4474
|
+
"class": [bem$7("close-icon", props.closeIconPosition), HAPTICS_FEEDBACK],
|
|
4313
4475
|
"classPrefix": props.iconPrefix,
|
|
4314
4476
|
"onClick": onClickCloseIcon
|
|
4315
4477
|
}, null);
|
|
@@ -4343,7 +4505,7 @@ var stdin_default$2 = defineComponent({
|
|
|
4343
4505
|
"style": style.value,
|
|
4344
4506
|
"role": "dialog",
|
|
4345
4507
|
"tabindex": 0,
|
|
4346
|
-
"class": [bem$
|
|
4508
|
+
"class": [bem$7({
|
|
4347
4509
|
round: round2,
|
|
4348
4510
|
[position]: position
|
|
4349
4511
|
}), {
|
|
@@ -4424,7 +4586,443 @@ var stdin_default$2 = defineComponent({
|
|
|
4424
4586
|
};
|
|
4425
4587
|
}
|
|
4426
4588
|
});
|
|
4427
|
-
const Popup = withInstall(stdin_default$
|
|
4589
|
+
const Popup = withInstall(stdin_default$7);
|
|
4590
|
+
const [name$5, bem$6] = createNamespace("swipe");
|
|
4591
|
+
const swipeProps = {
|
|
4592
|
+
loop: truthProp,
|
|
4593
|
+
width: numericProp,
|
|
4594
|
+
height: numericProp,
|
|
4595
|
+
vertical: Boolean,
|
|
4596
|
+
autoplay: makeNumericProp(0),
|
|
4597
|
+
duration: makeNumericProp(500),
|
|
4598
|
+
touchable: truthProp,
|
|
4599
|
+
lazyRender: Boolean,
|
|
4600
|
+
initialSwipe: makeNumericProp(0),
|
|
4601
|
+
indicatorColor: String,
|
|
4602
|
+
showIndicators: truthProp,
|
|
4603
|
+
stopPropagation: truthProp
|
|
4604
|
+
};
|
|
4605
|
+
const SWIPE_KEY = Symbol(name$5);
|
|
4606
|
+
var stdin_default$6 = defineComponent({
|
|
4607
|
+
name: name$5,
|
|
4608
|
+
props: swipeProps,
|
|
4609
|
+
emits: ["change", "dragStart", "dragEnd"],
|
|
4610
|
+
setup(props, {
|
|
4611
|
+
emit,
|
|
4612
|
+
slots
|
|
4613
|
+
}) {
|
|
4614
|
+
const root = ref();
|
|
4615
|
+
const track = ref();
|
|
4616
|
+
const state = reactive({
|
|
4617
|
+
rect: null,
|
|
4618
|
+
width: 0,
|
|
4619
|
+
height: 0,
|
|
4620
|
+
offset: 0,
|
|
4621
|
+
active: 0,
|
|
4622
|
+
swiping: false
|
|
4623
|
+
});
|
|
4624
|
+
let dragging = false;
|
|
4625
|
+
const touch = useTouch();
|
|
4626
|
+
const {
|
|
4627
|
+
children,
|
|
4628
|
+
linkChildren
|
|
4629
|
+
} = useChildren(SWIPE_KEY);
|
|
4630
|
+
const count = computed(() => children.length);
|
|
4631
|
+
const size = computed(() => state[props.vertical ? "height" : "width"]);
|
|
4632
|
+
const delta = computed(() => props.vertical ? touch.deltaY.value : touch.deltaX.value);
|
|
4633
|
+
const minOffset = computed(() => {
|
|
4634
|
+
if (state.rect) {
|
|
4635
|
+
const base = props.vertical ? state.rect.height : state.rect.width;
|
|
4636
|
+
return base - size.value * count.value;
|
|
4637
|
+
}
|
|
4638
|
+
return 0;
|
|
4639
|
+
});
|
|
4640
|
+
const maxCount = computed(() => size.value ? Math.ceil(Math.abs(minOffset.value) / size.value) : count.value);
|
|
4641
|
+
const trackSize = computed(() => count.value * size.value);
|
|
4642
|
+
const activeIndicator = computed(() => (state.active + count.value) % count.value);
|
|
4643
|
+
const isCorrectDirection = computed(() => {
|
|
4644
|
+
const expect = props.vertical ? "vertical" : "horizontal";
|
|
4645
|
+
return touch.direction.value === expect;
|
|
4646
|
+
});
|
|
4647
|
+
const trackStyle = computed(() => {
|
|
4648
|
+
const style = {
|
|
4649
|
+
transitionDuration: `${state.swiping ? 0 : props.duration}ms`,
|
|
4650
|
+
transform: `translate${props.vertical ? "Y" : "X"}(${+state.offset.toFixed(2)}px)`
|
|
4651
|
+
};
|
|
4652
|
+
if (size.value) {
|
|
4653
|
+
const mainAxis = props.vertical ? "height" : "width";
|
|
4654
|
+
const crossAxis = props.vertical ? "width" : "height";
|
|
4655
|
+
style[mainAxis] = `${trackSize.value}px`;
|
|
4656
|
+
style[crossAxis] = props[crossAxis] ? `${props[crossAxis]}px` : "";
|
|
4657
|
+
}
|
|
4658
|
+
return style;
|
|
4659
|
+
});
|
|
4660
|
+
const getTargetActive = (pace) => {
|
|
4661
|
+
const {
|
|
4662
|
+
active
|
|
4663
|
+
} = state;
|
|
4664
|
+
if (pace) {
|
|
4665
|
+
if (props.loop) {
|
|
4666
|
+
return clamp(active + pace, -1, count.value);
|
|
4667
|
+
}
|
|
4668
|
+
return clamp(active + pace, 0, maxCount.value);
|
|
4669
|
+
}
|
|
4670
|
+
return active;
|
|
4671
|
+
};
|
|
4672
|
+
const getTargetOffset = (targetActive, offset2 = 0) => {
|
|
4673
|
+
let currentPosition = targetActive * size.value;
|
|
4674
|
+
if (!props.loop) {
|
|
4675
|
+
currentPosition = Math.min(currentPosition, -minOffset.value);
|
|
4676
|
+
}
|
|
4677
|
+
let targetOffset = offset2 - currentPosition;
|
|
4678
|
+
if (!props.loop) {
|
|
4679
|
+
targetOffset = clamp(targetOffset, minOffset.value, 0);
|
|
4680
|
+
}
|
|
4681
|
+
return targetOffset;
|
|
4682
|
+
};
|
|
4683
|
+
const move = ({
|
|
4684
|
+
pace = 0,
|
|
4685
|
+
offset: offset2 = 0,
|
|
4686
|
+
emitChange
|
|
4687
|
+
}) => {
|
|
4688
|
+
if (count.value <= 1) {
|
|
4689
|
+
return;
|
|
4690
|
+
}
|
|
4691
|
+
const {
|
|
4692
|
+
active
|
|
4693
|
+
} = state;
|
|
4694
|
+
const targetActive = getTargetActive(pace);
|
|
4695
|
+
const targetOffset = getTargetOffset(targetActive, offset2);
|
|
4696
|
+
if (props.loop) {
|
|
4697
|
+
if (children[0] && targetOffset !== minOffset.value) {
|
|
4698
|
+
const outRightBound = targetOffset < minOffset.value;
|
|
4699
|
+
children[0].setOffset(outRightBound ? trackSize.value : 0);
|
|
4700
|
+
}
|
|
4701
|
+
if (children[count.value - 1] && targetOffset !== 0) {
|
|
4702
|
+
const outLeftBound = targetOffset > 0;
|
|
4703
|
+
children[count.value - 1].setOffset(outLeftBound ? -trackSize.value : 0);
|
|
4704
|
+
}
|
|
4705
|
+
}
|
|
4706
|
+
state.active = targetActive;
|
|
4707
|
+
state.offset = targetOffset;
|
|
4708
|
+
if (emitChange && targetActive !== active) {
|
|
4709
|
+
emit("change", activeIndicator.value);
|
|
4710
|
+
}
|
|
4711
|
+
};
|
|
4712
|
+
const correctPosition = () => {
|
|
4713
|
+
state.swiping = true;
|
|
4714
|
+
if (state.active <= -1) {
|
|
4715
|
+
move({
|
|
4716
|
+
pace: count.value
|
|
4717
|
+
});
|
|
4718
|
+
} else if (state.active >= count.value) {
|
|
4719
|
+
move({
|
|
4720
|
+
pace: -count.value
|
|
4721
|
+
});
|
|
4722
|
+
}
|
|
4723
|
+
};
|
|
4724
|
+
const prev = () => {
|
|
4725
|
+
correctPosition();
|
|
4726
|
+
touch.reset();
|
|
4727
|
+
doubleRaf(() => {
|
|
4728
|
+
state.swiping = false;
|
|
4729
|
+
move({
|
|
4730
|
+
pace: -1,
|
|
4731
|
+
emitChange: true
|
|
4732
|
+
});
|
|
4733
|
+
});
|
|
4734
|
+
};
|
|
4735
|
+
const next = () => {
|
|
4736
|
+
correctPosition();
|
|
4737
|
+
touch.reset();
|
|
4738
|
+
doubleRaf(() => {
|
|
4739
|
+
state.swiping = false;
|
|
4740
|
+
move({
|
|
4741
|
+
pace: 1,
|
|
4742
|
+
emitChange: true
|
|
4743
|
+
});
|
|
4744
|
+
});
|
|
4745
|
+
};
|
|
4746
|
+
let autoplayTimer;
|
|
4747
|
+
const stopAutoplay = () => clearTimeout(autoplayTimer);
|
|
4748
|
+
const autoplay = () => {
|
|
4749
|
+
stopAutoplay();
|
|
4750
|
+
if (+props.autoplay > 0 && count.value > 1) {
|
|
4751
|
+
autoplayTimer = setTimeout(() => {
|
|
4752
|
+
next();
|
|
4753
|
+
autoplay();
|
|
4754
|
+
}, +props.autoplay);
|
|
4755
|
+
}
|
|
4756
|
+
};
|
|
4757
|
+
const initialize = (active = +props.initialSwipe) => {
|
|
4758
|
+
if (!root.value) {
|
|
4759
|
+
return;
|
|
4760
|
+
}
|
|
4761
|
+
const cb = () => {
|
|
4762
|
+
var _a, _b;
|
|
4763
|
+
if (!isHidden(root)) {
|
|
4764
|
+
const rect = {
|
|
4765
|
+
width: root.value.offsetWidth,
|
|
4766
|
+
height: root.value.offsetHeight
|
|
4767
|
+
};
|
|
4768
|
+
state.rect = rect;
|
|
4769
|
+
state.width = +((_a = props.width) != null ? _a : rect.width);
|
|
4770
|
+
state.height = +((_b = props.height) != null ? _b : rect.height);
|
|
4771
|
+
}
|
|
4772
|
+
if (count.value) {
|
|
4773
|
+
active = Math.min(count.value - 1, active);
|
|
4774
|
+
if (active === -1) {
|
|
4775
|
+
active = count.value - 1;
|
|
4776
|
+
}
|
|
4777
|
+
}
|
|
4778
|
+
state.active = active;
|
|
4779
|
+
state.swiping = true;
|
|
4780
|
+
state.offset = getTargetOffset(active);
|
|
4781
|
+
children.forEach((swipe) => {
|
|
4782
|
+
swipe.setOffset(0);
|
|
4783
|
+
});
|
|
4784
|
+
autoplay();
|
|
4785
|
+
};
|
|
4786
|
+
if (isHidden(root)) {
|
|
4787
|
+
nextTick().then(cb);
|
|
4788
|
+
} else {
|
|
4789
|
+
cb();
|
|
4790
|
+
}
|
|
4791
|
+
};
|
|
4792
|
+
const resize = () => initialize(state.active);
|
|
4793
|
+
let touchStartTime;
|
|
4794
|
+
const onTouchStart = (event) => {
|
|
4795
|
+
if (!props.touchable || event.touches.length > 1)
|
|
4796
|
+
return;
|
|
4797
|
+
touch.start(event);
|
|
4798
|
+
dragging = false;
|
|
4799
|
+
touchStartTime = Date.now();
|
|
4800
|
+
stopAutoplay();
|
|
4801
|
+
correctPosition();
|
|
4802
|
+
};
|
|
4803
|
+
const onTouchMove = (event) => {
|
|
4804
|
+
if (props.touchable && state.swiping) {
|
|
4805
|
+
touch.move(event);
|
|
4806
|
+
if (isCorrectDirection.value) {
|
|
4807
|
+
const isEdgeTouch = !props.loop && (state.active === 0 && delta.value > 0 || state.active === count.value - 1 && delta.value < 0);
|
|
4808
|
+
if (!isEdgeTouch) {
|
|
4809
|
+
preventDefault(event, props.stopPropagation);
|
|
4810
|
+
move({
|
|
4811
|
+
offset: delta.value
|
|
4812
|
+
});
|
|
4813
|
+
if (!dragging) {
|
|
4814
|
+
emit("dragStart", {
|
|
4815
|
+
index: activeIndicator.value
|
|
4816
|
+
});
|
|
4817
|
+
dragging = true;
|
|
4818
|
+
}
|
|
4819
|
+
}
|
|
4820
|
+
}
|
|
4821
|
+
}
|
|
4822
|
+
};
|
|
4823
|
+
const onTouchEnd = () => {
|
|
4824
|
+
if (!props.touchable || !state.swiping) {
|
|
4825
|
+
return;
|
|
4826
|
+
}
|
|
4827
|
+
const duration = Date.now() - touchStartTime;
|
|
4828
|
+
const speed = delta.value / duration;
|
|
4829
|
+
const shouldSwipe = Math.abs(speed) > 0.25 || Math.abs(delta.value) > size.value / 2;
|
|
4830
|
+
if (shouldSwipe && isCorrectDirection.value) {
|
|
4831
|
+
const offset2 = props.vertical ? touch.offsetY.value : touch.offsetX.value;
|
|
4832
|
+
let pace = 0;
|
|
4833
|
+
if (props.loop) {
|
|
4834
|
+
pace = offset2 > 0 ? delta.value > 0 ? -1 : 1 : 0;
|
|
4835
|
+
} else {
|
|
4836
|
+
pace = -Math[delta.value > 0 ? "ceil" : "floor"](delta.value / size.value);
|
|
4837
|
+
}
|
|
4838
|
+
move({
|
|
4839
|
+
pace,
|
|
4840
|
+
emitChange: true
|
|
4841
|
+
});
|
|
4842
|
+
} else if (delta.value) {
|
|
4843
|
+
move({
|
|
4844
|
+
pace: 0
|
|
4845
|
+
});
|
|
4846
|
+
}
|
|
4847
|
+
dragging = false;
|
|
4848
|
+
state.swiping = false;
|
|
4849
|
+
emit("dragEnd", {
|
|
4850
|
+
index: activeIndicator.value
|
|
4851
|
+
});
|
|
4852
|
+
autoplay();
|
|
4853
|
+
};
|
|
4854
|
+
const swipeTo = (index, options = {}) => {
|
|
4855
|
+
correctPosition();
|
|
4856
|
+
touch.reset();
|
|
4857
|
+
doubleRaf(() => {
|
|
4858
|
+
let targetIndex;
|
|
4859
|
+
if (props.loop && index === count.value) {
|
|
4860
|
+
targetIndex = state.active === 0 ? 0 : index;
|
|
4861
|
+
} else {
|
|
4862
|
+
targetIndex = index % count.value;
|
|
4863
|
+
}
|
|
4864
|
+
if (options.immediate) {
|
|
4865
|
+
doubleRaf(() => {
|
|
4866
|
+
state.swiping = false;
|
|
4867
|
+
});
|
|
4868
|
+
} else {
|
|
4869
|
+
state.swiping = false;
|
|
4870
|
+
}
|
|
4871
|
+
move({
|
|
4872
|
+
pace: targetIndex - state.active,
|
|
4873
|
+
emitChange: true
|
|
4874
|
+
});
|
|
4875
|
+
});
|
|
4876
|
+
};
|
|
4877
|
+
const renderDot = (_, index) => {
|
|
4878
|
+
const active = index === activeIndicator.value;
|
|
4879
|
+
const style = active ? {
|
|
4880
|
+
backgroundColor: props.indicatorColor
|
|
4881
|
+
} : void 0;
|
|
4882
|
+
return createVNode("i", {
|
|
4883
|
+
"style": style,
|
|
4884
|
+
"class": bem$6("indicator", {
|
|
4885
|
+
active
|
|
4886
|
+
})
|
|
4887
|
+
}, null);
|
|
4888
|
+
};
|
|
4889
|
+
const renderIndicator = () => {
|
|
4890
|
+
if (slots.indicator) {
|
|
4891
|
+
return slots.indicator({
|
|
4892
|
+
active: activeIndicator.value,
|
|
4893
|
+
total: count.value
|
|
4894
|
+
});
|
|
4895
|
+
}
|
|
4896
|
+
if (props.showIndicators && count.value > 1) {
|
|
4897
|
+
return createVNode("div", {
|
|
4898
|
+
"class": bem$6("indicators", {
|
|
4899
|
+
vertical: props.vertical
|
|
4900
|
+
})
|
|
4901
|
+
}, [Array(count.value).fill("").map(renderDot)]);
|
|
4902
|
+
}
|
|
4903
|
+
};
|
|
4904
|
+
useExpose({
|
|
4905
|
+
prev,
|
|
4906
|
+
next,
|
|
4907
|
+
state,
|
|
4908
|
+
resize,
|
|
4909
|
+
swipeTo
|
|
4910
|
+
});
|
|
4911
|
+
linkChildren({
|
|
4912
|
+
size,
|
|
4913
|
+
props,
|
|
4914
|
+
count,
|
|
4915
|
+
activeIndicator
|
|
4916
|
+
});
|
|
4917
|
+
watch(() => props.initialSwipe, (value) => initialize(+value));
|
|
4918
|
+
watch(count, () => initialize(state.active));
|
|
4919
|
+
watch(() => props.autoplay, autoplay);
|
|
4920
|
+
watch([windowWidth, windowHeight, () => props.width, () => props.height], resize);
|
|
4921
|
+
watch(usePageVisibility(), (visible) => {
|
|
4922
|
+
if (visible === "visible") {
|
|
4923
|
+
autoplay();
|
|
4924
|
+
} else {
|
|
4925
|
+
stopAutoplay();
|
|
4926
|
+
}
|
|
4927
|
+
});
|
|
4928
|
+
onMounted(initialize);
|
|
4929
|
+
onActivated(() => initialize(state.active));
|
|
4930
|
+
onPopupReopen(() => initialize(state.active));
|
|
4931
|
+
onDeactivated(stopAutoplay);
|
|
4932
|
+
onBeforeUnmount(stopAutoplay);
|
|
4933
|
+
useEventListener("touchmove", onTouchMove, {
|
|
4934
|
+
target: track
|
|
4935
|
+
});
|
|
4936
|
+
return () => {
|
|
4937
|
+
var _a;
|
|
4938
|
+
return createVNode("div", {
|
|
4939
|
+
"ref": root,
|
|
4940
|
+
"class": bem$6()
|
|
4941
|
+
}, [createVNode("div", {
|
|
4942
|
+
"ref": track,
|
|
4943
|
+
"style": trackStyle.value,
|
|
4944
|
+
"class": bem$6("track", {
|
|
4945
|
+
vertical: props.vertical
|
|
4946
|
+
}),
|
|
4947
|
+
"onTouchstartPassive": onTouchStart,
|
|
4948
|
+
"onTouchend": onTouchEnd,
|
|
4949
|
+
"onTouchcancel": onTouchEnd
|
|
4950
|
+
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)]), renderIndicator()]);
|
|
4951
|
+
};
|
|
4952
|
+
}
|
|
4953
|
+
});
|
|
4954
|
+
const Swipe = withInstall(stdin_default$6);
|
|
4955
|
+
const [name$4, bem$5] = createNamespace("swipe-item");
|
|
4956
|
+
var stdin_default$5 = defineComponent({
|
|
4957
|
+
name: name$4,
|
|
4958
|
+
setup(props, {
|
|
4959
|
+
slots
|
|
4960
|
+
}) {
|
|
4961
|
+
let rendered;
|
|
4962
|
+
const state = reactive({
|
|
4963
|
+
offset: 0,
|
|
4964
|
+
inited: false,
|
|
4965
|
+
mounted: false
|
|
4966
|
+
});
|
|
4967
|
+
const {
|
|
4968
|
+
parent,
|
|
4969
|
+
index
|
|
4970
|
+
} = useParent(SWIPE_KEY);
|
|
4971
|
+
if (!parent) {
|
|
4972
|
+
return;
|
|
4973
|
+
}
|
|
4974
|
+
const style = computed(() => {
|
|
4975
|
+
const style2 = {};
|
|
4976
|
+
const {
|
|
4977
|
+
vertical
|
|
4978
|
+
} = parent.props;
|
|
4979
|
+
if (parent.size.value) {
|
|
4980
|
+
style2[vertical ? "height" : "width"] = `${parent.size.value}px`;
|
|
4981
|
+
}
|
|
4982
|
+
if (state.offset) {
|
|
4983
|
+
style2.transform = `translate${vertical ? "Y" : "X"}(${state.offset}px)`;
|
|
4984
|
+
}
|
|
4985
|
+
return style2;
|
|
4986
|
+
});
|
|
4987
|
+
const shouldRender = computed(() => {
|
|
4988
|
+
const {
|
|
4989
|
+
loop,
|
|
4990
|
+
lazyRender
|
|
4991
|
+
} = parent.props;
|
|
4992
|
+
if (!lazyRender || rendered) {
|
|
4993
|
+
return true;
|
|
4994
|
+
}
|
|
4995
|
+
if (!state.mounted) {
|
|
4996
|
+
return false;
|
|
4997
|
+
}
|
|
4998
|
+
const active = parent.activeIndicator.value;
|
|
4999
|
+
const maxActive = parent.count.value - 1;
|
|
5000
|
+
const prevActive = active === 0 && loop ? maxActive : active - 1;
|
|
5001
|
+
const nextActive = active === maxActive && loop ? 0 : active + 1;
|
|
5002
|
+
rendered = index.value === active || index.value === prevActive || index.value === nextActive;
|
|
5003
|
+
return rendered;
|
|
5004
|
+
});
|
|
5005
|
+
const setOffset = (offset2) => {
|
|
5006
|
+
state.offset = offset2;
|
|
5007
|
+
};
|
|
5008
|
+
onMounted(() => {
|
|
5009
|
+
nextTick(() => {
|
|
5010
|
+
state.mounted = true;
|
|
5011
|
+
});
|
|
5012
|
+
});
|
|
5013
|
+
useExpose({
|
|
5014
|
+
setOffset
|
|
5015
|
+
});
|
|
5016
|
+
return () => {
|
|
5017
|
+
var _a;
|
|
5018
|
+
return createVNode("div", {
|
|
5019
|
+
"class": bem$5(),
|
|
5020
|
+
"style": style.value
|
|
5021
|
+
}, [shouldRender.value ? (_a = slots.default) == null ? void 0 : _a.call(slots) : null]);
|
|
5022
|
+
};
|
|
5023
|
+
}
|
|
5024
|
+
});
|
|
5025
|
+
const SwipeItem = withInstall(stdin_default$5);
|
|
4428
5026
|
let lockCount = 0;
|
|
4429
5027
|
function lockClick(lock) {
|
|
4430
5028
|
if (lock) {
|
|
@@ -4439,7 +5037,7 @@ function lockClick(lock) {
|
|
|
4439
5037
|
}
|
|
4440
5038
|
}
|
|
4441
5039
|
}
|
|
4442
|
-
const [name$
|
|
5040
|
+
const [name$3, bem$4] = createNamespace("toast");
|
|
4443
5041
|
const popupInheritProps$1 = ["show", "overlay", "teleport", "transition", "overlayClass", "overlayStyle", "closeOnClickOverlay", "zIndex"];
|
|
4444
5042
|
const toastProps = {
|
|
4445
5043
|
icon: String,
|
|
@@ -4463,8 +5061,8 @@ const toastProps = {
|
|
|
4463
5061
|
closeOnClickOverlay: Boolean,
|
|
4464
5062
|
zIndex: numericProp
|
|
4465
5063
|
};
|
|
4466
|
-
var stdin_default$
|
|
4467
|
-
name: name$
|
|
5064
|
+
var stdin_default$4 = defineComponent({
|
|
5065
|
+
name: name$3,
|
|
4468
5066
|
props: toastProps,
|
|
4469
5067
|
emits: ["update:show"],
|
|
4470
5068
|
setup(props, {
|
|
@@ -4500,13 +5098,13 @@ var stdin_default$1 = defineComponent({
|
|
|
4500
5098
|
return createVNode(Icon, {
|
|
4501
5099
|
"name": icon || type,
|
|
4502
5100
|
"size": iconSize,
|
|
4503
|
-
"class": bem$
|
|
5101
|
+
"class": bem$4("icon"),
|
|
4504
5102
|
"classPrefix": iconPrefix
|
|
4505
5103
|
}, null);
|
|
4506
5104
|
}
|
|
4507
5105
|
if (type === "loading") {
|
|
4508
5106
|
return createVNode(Loading, {
|
|
4509
|
-
"class": bem$
|
|
5107
|
+
"class": bem$4("loading"),
|
|
4510
5108
|
"size": iconSize,
|
|
4511
5109
|
"type": loadingType
|
|
4512
5110
|
}, null);
|
|
@@ -4519,16 +5117,16 @@ var stdin_default$1 = defineComponent({
|
|
|
4519
5117
|
} = props;
|
|
4520
5118
|
if (slots.message) {
|
|
4521
5119
|
return createVNode("div", {
|
|
4522
|
-
"class": bem$
|
|
5120
|
+
"class": bem$4("text")
|
|
4523
5121
|
}, [slots.message()]);
|
|
4524
5122
|
}
|
|
4525
5123
|
if (isDef$1(message) && message !== "") {
|
|
4526
5124
|
return type === "html" ? createVNode("div", {
|
|
4527
5125
|
"key": 0,
|
|
4528
|
-
"class": bem$
|
|
5126
|
+
"class": bem$4("text"),
|
|
4529
5127
|
"innerHTML": String(message)
|
|
4530
5128
|
}, null) : createVNode("div", {
|
|
4531
|
-
"class": bem$
|
|
5129
|
+
"class": bem$4("text")
|
|
4532
5130
|
}, [message]);
|
|
4533
5131
|
}
|
|
4534
5132
|
};
|
|
@@ -4544,7 +5142,7 @@ var stdin_default$1 = defineComponent({
|
|
|
4544
5142
|
onMounted(toggleClickable);
|
|
4545
5143
|
onUnmounted(toggleClickable);
|
|
4546
5144
|
return () => createVNode(Popup, mergeProps({
|
|
4547
|
-
"class": [bem$
|
|
5145
|
+
"class": [bem$4([props.position, props.wordBreak === "normal" ? "break-normal" : props.wordBreak, {
|
|
4548
5146
|
[props.type]: !props.icon
|
|
4549
5147
|
}]), props.className],
|
|
4550
5148
|
"lockScroll": false,
|
|
@@ -4641,7 +5239,7 @@ function createInstance() {
|
|
|
4641
5239
|
onClosed,
|
|
4642
5240
|
"onUpdate:show": toggle
|
|
4643
5241
|
};
|
|
4644
|
-
return createVNode(stdin_default$
|
|
5242
|
+
return createVNode(stdin_default$4, mergeProps(state, attrs), null);
|
|
4645
5243
|
};
|
|
4646
5244
|
watch(message, (val) => {
|
|
4647
5245
|
state.message = val;
|
|
@@ -4697,6 +5295,751 @@ function setToastDefaultOptions(type, options) {
|
|
|
4697
5295
|
extend$1(currentOptions$1, type);
|
|
4698
5296
|
}
|
|
4699
5297
|
}
|
|
5298
|
+
withInstall(stdin_default$4);
|
|
5299
|
+
const [name$2, bem$3] = createNamespace("image");
|
|
5300
|
+
const imageProps = {
|
|
5301
|
+
src: String,
|
|
5302
|
+
alt: String,
|
|
5303
|
+
fit: String,
|
|
5304
|
+
position: String,
|
|
5305
|
+
round: Boolean,
|
|
5306
|
+
block: Boolean,
|
|
5307
|
+
width: numericProp,
|
|
5308
|
+
height: numericProp,
|
|
5309
|
+
radius: numericProp,
|
|
5310
|
+
lazyLoad: Boolean,
|
|
5311
|
+
iconSize: numericProp,
|
|
5312
|
+
showError: truthProp,
|
|
5313
|
+
errorIcon: makeStringProp("photo-fail"),
|
|
5314
|
+
iconPrefix: String,
|
|
5315
|
+
showLoading: truthProp,
|
|
5316
|
+
loadingIcon: makeStringProp("photo"),
|
|
5317
|
+
crossorigin: String,
|
|
5318
|
+
referrerpolicy: String,
|
|
5319
|
+
decoding: String
|
|
5320
|
+
};
|
|
5321
|
+
var stdin_default$3 = defineComponent({
|
|
5322
|
+
name: name$2,
|
|
5323
|
+
props: imageProps,
|
|
5324
|
+
emits: ["load", "error"],
|
|
5325
|
+
setup(props, {
|
|
5326
|
+
emit,
|
|
5327
|
+
slots
|
|
5328
|
+
}) {
|
|
5329
|
+
const error = ref(false);
|
|
5330
|
+
const loading = ref(true);
|
|
5331
|
+
const imageRef = ref();
|
|
5332
|
+
const {
|
|
5333
|
+
$Lazyload
|
|
5334
|
+
} = getCurrentInstance().proxy;
|
|
5335
|
+
const style = computed(() => {
|
|
5336
|
+
const style2 = {
|
|
5337
|
+
width: addUnit(props.width),
|
|
5338
|
+
height: addUnit(props.height)
|
|
5339
|
+
};
|
|
5340
|
+
if (isDef$1(props.radius)) {
|
|
5341
|
+
style2.overflow = "hidden";
|
|
5342
|
+
style2.borderRadius = addUnit(props.radius);
|
|
5343
|
+
}
|
|
5344
|
+
return style2;
|
|
5345
|
+
});
|
|
5346
|
+
watch(() => props.src, () => {
|
|
5347
|
+
error.value = false;
|
|
5348
|
+
loading.value = true;
|
|
5349
|
+
});
|
|
5350
|
+
const onLoad = (event) => {
|
|
5351
|
+
if (loading.value) {
|
|
5352
|
+
loading.value = false;
|
|
5353
|
+
emit("load", event);
|
|
5354
|
+
}
|
|
5355
|
+
};
|
|
5356
|
+
const triggerLoad = () => {
|
|
5357
|
+
const loadEvent = new Event("load");
|
|
5358
|
+
Object.defineProperty(loadEvent, "target", {
|
|
5359
|
+
value: imageRef.value,
|
|
5360
|
+
enumerable: true
|
|
5361
|
+
});
|
|
5362
|
+
onLoad(loadEvent);
|
|
5363
|
+
};
|
|
5364
|
+
const onError = (event) => {
|
|
5365
|
+
error.value = true;
|
|
5366
|
+
loading.value = false;
|
|
5367
|
+
emit("error", event);
|
|
5368
|
+
};
|
|
5369
|
+
const renderIcon = (name2, className, slot) => {
|
|
5370
|
+
if (slot) {
|
|
5371
|
+
return slot();
|
|
5372
|
+
}
|
|
5373
|
+
return createVNode(Icon, {
|
|
5374
|
+
"name": name2,
|
|
5375
|
+
"size": props.iconSize,
|
|
5376
|
+
"class": className,
|
|
5377
|
+
"classPrefix": props.iconPrefix
|
|
5378
|
+
}, null);
|
|
5379
|
+
};
|
|
5380
|
+
const renderPlaceholder = () => {
|
|
5381
|
+
if (loading.value && props.showLoading) {
|
|
5382
|
+
return createVNode("div", {
|
|
5383
|
+
"class": bem$3("loading")
|
|
5384
|
+
}, [renderIcon(props.loadingIcon, bem$3("loading-icon"), slots.loading)]);
|
|
5385
|
+
}
|
|
5386
|
+
if (error.value && props.showError) {
|
|
5387
|
+
return createVNode("div", {
|
|
5388
|
+
"class": bem$3("error")
|
|
5389
|
+
}, [renderIcon(props.errorIcon, bem$3("error-icon"), slots.error)]);
|
|
5390
|
+
}
|
|
5391
|
+
};
|
|
5392
|
+
const renderImage = () => {
|
|
5393
|
+
if (error.value || !props.src) {
|
|
5394
|
+
return;
|
|
5395
|
+
}
|
|
5396
|
+
const attrs = {
|
|
5397
|
+
alt: props.alt,
|
|
5398
|
+
class: bem$3("img"),
|
|
5399
|
+
decoding: props.decoding,
|
|
5400
|
+
style: {
|
|
5401
|
+
objectFit: props.fit,
|
|
5402
|
+
objectPosition: props.position
|
|
5403
|
+
},
|
|
5404
|
+
crossorigin: props.crossorigin,
|
|
5405
|
+
referrerpolicy: props.referrerpolicy
|
|
5406
|
+
};
|
|
5407
|
+
if (props.lazyLoad) {
|
|
5408
|
+
return withDirectives(createVNode("img", mergeProps({
|
|
5409
|
+
"ref": imageRef
|
|
5410
|
+
}, attrs), null), [[resolveDirective("lazy"), props.src]]);
|
|
5411
|
+
}
|
|
5412
|
+
return createVNode("img", mergeProps({
|
|
5413
|
+
"ref": imageRef,
|
|
5414
|
+
"src": props.src,
|
|
5415
|
+
"onLoad": onLoad,
|
|
5416
|
+
"onError": onError
|
|
5417
|
+
}, attrs), null);
|
|
5418
|
+
};
|
|
5419
|
+
const onLazyLoaded = ({
|
|
5420
|
+
el
|
|
5421
|
+
}) => {
|
|
5422
|
+
const check = () => {
|
|
5423
|
+
if (el === imageRef.value && loading.value) {
|
|
5424
|
+
triggerLoad();
|
|
5425
|
+
}
|
|
5426
|
+
};
|
|
5427
|
+
if (imageRef.value) {
|
|
5428
|
+
check();
|
|
5429
|
+
} else {
|
|
5430
|
+
nextTick(check);
|
|
5431
|
+
}
|
|
5432
|
+
};
|
|
5433
|
+
const onLazyLoadError = ({
|
|
5434
|
+
el
|
|
5435
|
+
}) => {
|
|
5436
|
+
if (el === imageRef.value && !error.value) {
|
|
5437
|
+
onError();
|
|
5438
|
+
}
|
|
5439
|
+
};
|
|
5440
|
+
if ($Lazyload && inBrowser$1) {
|
|
5441
|
+
$Lazyload.$on("loaded", onLazyLoaded);
|
|
5442
|
+
$Lazyload.$on("error", onLazyLoadError);
|
|
5443
|
+
onBeforeUnmount(() => {
|
|
5444
|
+
$Lazyload.$off("loaded", onLazyLoaded);
|
|
5445
|
+
$Lazyload.$off("error", onLazyLoadError);
|
|
5446
|
+
});
|
|
5447
|
+
}
|
|
5448
|
+
onMounted(() => {
|
|
5449
|
+
nextTick(() => {
|
|
5450
|
+
var _a;
|
|
5451
|
+
if (((_a = imageRef.value) == null ? void 0 : _a.complete) && !props.lazyLoad) {
|
|
5452
|
+
triggerLoad();
|
|
5453
|
+
}
|
|
5454
|
+
});
|
|
5455
|
+
});
|
|
5456
|
+
return () => {
|
|
5457
|
+
var _a;
|
|
5458
|
+
return createVNode("div", {
|
|
5459
|
+
"class": bem$3({
|
|
5460
|
+
round: props.round,
|
|
5461
|
+
block: props.block
|
|
5462
|
+
}),
|
|
5463
|
+
"style": style.value
|
|
5464
|
+
}, [renderImage(), renderPlaceholder(), (_a = slots.default) == null ? void 0 : _a.call(slots)]);
|
|
5465
|
+
};
|
|
5466
|
+
}
|
|
5467
|
+
});
|
|
5468
|
+
const Image$1 = withInstall(stdin_default$3);
|
|
5469
|
+
const getDistance = (touches) => Math.sqrt(__pow(touches[0].clientX - touches[1].clientX, 2) + __pow(touches[0].clientY - touches[1].clientY, 2));
|
|
5470
|
+
const getCenter = (touches) => ({
|
|
5471
|
+
x: (touches[0].clientX + touches[1].clientX) / 2,
|
|
5472
|
+
y: (touches[0].clientY + touches[1].clientY) / 2
|
|
5473
|
+
});
|
|
5474
|
+
const bem$2 = createNamespace("image-preview")[1];
|
|
5475
|
+
const longImageRatio = 2.6;
|
|
5476
|
+
const imagePreviewItemProps = {
|
|
5477
|
+
src: String,
|
|
5478
|
+
show: Boolean,
|
|
5479
|
+
active: Number,
|
|
5480
|
+
minZoom: makeRequiredProp(numericProp),
|
|
5481
|
+
maxZoom: makeRequiredProp(numericProp),
|
|
5482
|
+
rootWidth: makeRequiredProp(Number),
|
|
5483
|
+
rootHeight: makeRequiredProp(Number),
|
|
5484
|
+
disableZoom: Boolean,
|
|
5485
|
+
doubleScale: Boolean,
|
|
5486
|
+
closeOnClickImage: Boolean,
|
|
5487
|
+
closeOnClickOverlay: Boolean,
|
|
5488
|
+
vertical: Boolean
|
|
5489
|
+
};
|
|
5490
|
+
var stdin_default$2 = defineComponent({
|
|
5491
|
+
props: imagePreviewItemProps,
|
|
5492
|
+
emits: ["scale", "close", "longPress"],
|
|
5493
|
+
setup(props, {
|
|
5494
|
+
emit,
|
|
5495
|
+
slots
|
|
5496
|
+
}) {
|
|
5497
|
+
const state = reactive({
|
|
5498
|
+
scale: 1,
|
|
5499
|
+
moveX: 0,
|
|
5500
|
+
moveY: 0,
|
|
5501
|
+
moving: false,
|
|
5502
|
+
zooming: false,
|
|
5503
|
+
initializing: false,
|
|
5504
|
+
imageRatio: 0
|
|
5505
|
+
});
|
|
5506
|
+
const touch = useTouch();
|
|
5507
|
+
const imageRef = ref();
|
|
5508
|
+
const swipeItem = ref();
|
|
5509
|
+
const vertical = ref(false);
|
|
5510
|
+
const isLongImage = ref(false);
|
|
5511
|
+
let initialMoveY = 0;
|
|
5512
|
+
const imageStyle = computed(() => {
|
|
5513
|
+
const {
|
|
5514
|
+
scale,
|
|
5515
|
+
moveX,
|
|
5516
|
+
moveY,
|
|
5517
|
+
moving,
|
|
5518
|
+
zooming,
|
|
5519
|
+
initializing
|
|
5520
|
+
} = state;
|
|
5521
|
+
const style = {
|
|
5522
|
+
transitionDuration: zooming || moving || initializing ? "0s" : ".3s"
|
|
5523
|
+
};
|
|
5524
|
+
if (scale !== 1 || isLongImage.value) {
|
|
5525
|
+
style.transform = `matrix(${scale}, 0, 0, ${scale}, ${moveX}, ${moveY})`;
|
|
5526
|
+
}
|
|
5527
|
+
return style;
|
|
5528
|
+
});
|
|
5529
|
+
const maxMoveX = computed(() => {
|
|
5530
|
+
if (state.imageRatio) {
|
|
5531
|
+
const {
|
|
5532
|
+
rootWidth,
|
|
5533
|
+
rootHeight
|
|
5534
|
+
} = props;
|
|
5535
|
+
const displayWidth = vertical.value ? rootHeight / state.imageRatio : rootWidth;
|
|
5536
|
+
return Math.max(0, (state.scale * displayWidth - rootWidth) / 2);
|
|
5537
|
+
}
|
|
5538
|
+
return 0;
|
|
5539
|
+
});
|
|
5540
|
+
const maxMoveY = computed(() => {
|
|
5541
|
+
if (state.imageRatio) {
|
|
5542
|
+
const {
|
|
5543
|
+
rootWidth,
|
|
5544
|
+
rootHeight
|
|
5545
|
+
} = props;
|
|
5546
|
+
const displayHeight = vertical.value ? rootHeight : rootWidth * state.imageRatio;
|
|
5547
|
+
return Math.max(0, (state.scale * displayHeight - rootHeight) / 2);
|
|
5548
|
+
}
|
|
5549
|
+
return 0;
|
|
5550
|
+
});
|
|
5551
|
+
const setScale = (scale, center) => {
|
|
5552
|
+
var _a;
|
|
5553
|
+
scale = clamp(scale, +props.minZoom, +props.maxZoom + 1);
|
|
5554
|
+
if (scale !== state.scale) {
|
|
5555
|
+
const ratio = scale / state.scale;
|
|
5556
|
+
state.scale = scale;
|
|
5557
|
+
if (center) {
|
|
5558
|
+
const imageRect = useRect((_a = imageRef.value) == null ? void 0 : _a.$el);
|
|
5559
|
+
const origin = {
|
|
5560
|
+
x: imageRect.width * 0.5,
|
|
5561
|
+
y: imageRect.height * 0.5
|
|
5562
|
+
};
|
|
5563
|
+
const moveX = state.moveX - (center.x - imageRect.left - origin.x) * (ratio - 1);
|
|
5564
|
+
const moveY = state.moveY - (center.y - imageRect.top - origin.y) * (ratio - 1);
|
|
5565
|
+
state.moveX = clamp(moveX, -maxMoveX.value, maxMoveX.value);
|
|
5566
|
+
state.moveY = clamp(moveY, -maxMoveY.value, maxMoveY.value);
|
|
5567
|
+
} else {
|
|
5568
|
+
state.moveX = 0;
|
|
5569
|
+
state.moveY = isLongImage.value ? initialMoveY : 0;
|
|
5570
|
+
}
|
|
5571
|
+
emit("scale", {
|
|
5572
|
+
scale,
|
|
5573
|
+
index: props.active
|
|
5574
|
+
});
|
|
5575
|
+
}
|
|
5576
|
+
};
|
|
5577
|
+
const resetScale = () => {
|
|
5578
|
+
setScale(1);
|
|
5579
|
+
};
|
|
5580
|
+
const toggleScale = () => {
|
|
5581
|
+
const scale = state.scale > 1 ? 1 : 2;
|
|
5582
|
+
setScale(scale, scale === 2 || isLongImage.value ? {
|
|
5583
|
+
x: touch.startX.value,
|
|
5584
|
+
y: touch.startY.value
|
|
5585
|
+
} : void 0);
|
|
5586
|
+
};
|
|
5587
|
+
let fingerNum;
|
|
5588
|
+
let startMoveX;
|
|
5589
|
+
let startMoveY;
|
|
5590
|
+
let startScale;
|
|
5591
|
+
let startDistance;
|
|
5592
|
+
let lastCenter;
|
|
5593
|
+
let doubleTapTimer;
|
|
5594
|
+
let touchStartTime;
|
|
5595
|
+
let isImageMoved = false;
|
|
5596
|
+
const onTouchStart = (event) => {
|
|
5597
|
+
const {
|
|
5598
|
+
touches
|
|
5599
|
+
} = event;
|
|
5600
|
+
fingerNum = touches.length;
|
|
5601
|
+
if (fingerNum === 2 && props.disableZoom) {
|
|
5602
|
+
return;
|
|
5603
|
+
}
|
|
5604
|
+
const {
|
|
5605
|
+
offsetX
|
|
5606
|
+
} = touch;
|
|
5607
|
+
touch.start(event);
|
|
5608
|
+
startMoveX = state.moveX;
|
|
5609
|
+
startMoveY = state.moveY;
|
|
5610
|
+
touchStartTime = Date.now();
|
|
5611
|
+
isImageMoved = false;
|
|
5612
|
+
state.moving = fingerNum === 1 && (state.scale !== 1 || isLongImage.value);
|
|
5613
|
+
state.zooming = fingerNum === 2 && !offsetX.value;
|
|
5614
|
+
if (state.zooming) {
|
|
5615
|
+
startScale = state.scale;
|
|
5616
|
+
startDistance = getDistance(touches);
|
|
5617
|
+
}
|
|
5618
|
+
};
|
|
5619
|
+
const onTouchMove = (event) => {
|
|
5620
|
+
const {
|
|
5621
|
+
touches
|
|
5622
|
+
} = event;
|
|
5623
|
+
touch.move(event);
|
|
5624
|
+
if (state.moving) {
|
|
5625
|
+
const {
|
|
5626
|
+
deltaX,
|
|
5627
|
+
deltaY
|
|
5628
|
+
} = touch;
|
|
5629
|
+
const moveX = deltaX.value + startMoveX;
|
|
5630
|
+
const moveY = deltaY.value + startMoveY;
|
|
5631
|
+
if ((props.vertical ? touch.isVertical() && Math.abs(moveY) > maxMoveY.value : touch.isHorizontal() && Math.abs(moveX) > maxMoveX.value) && !isImageMoved) {
|
|
5632
|
+
state.moving = false;
|
|
5633
|
+
return;
|
|
5634
|
+
}
|
|
5635
|
+
isImageMoved = true;
|
|
5636
|
+
preventDefault(event, true);
|
|
5637
|
+
state.moveX = clamp(moveX, -maxMoveX.value, maxMoveX.value);
|
|
5638
|
+
state.moveY = clamp(moveY, -maxMoveY.value, maxMoveY.value);
|
|
5639
|
+
}
|
|
5640
|
+
if (state.zooming) {
|
|
5641
|
+
preventDefault(event, true);
|
|
5642
|
+
if (touches.length === 2) {
|
|
5643
|
+
const distance = getDistance(touches);
|
|
5644
|
+
const scale = startScale * distance / startDistance;
|
|
5645
|
+
lastCenter = getCenter(touches);
|
|
5646
|
+
setScale(scale, lastCenter);
|
|
5647
|
+
}
|
|
5648
|
+
}
|
|
5649
|
+
};
|
|
5650
|
+
const checkClose = (event) => {
|
|
5651
|
+
var _a;
|
|
5652
|
+
const swipeItemEl = (_a = swipeItem.value) == null ? void 0 : _a.$el;
|
|
5653
|
+
if (!swipeItemEl)
|
|
5654
|
+
return;
|
|
5655
|
+
const imageEl = swipeItemEl.firstElementChild;
|
|
5656
|
+
const isClickOverlay = event.target === swipeItemEl;
|
|
5657
|
+
const isClickImage = imageEl == null ? void 0 : imageEl.contains(event.target);
|
|
5658
|
+
if (!props.closeOnClickImage && isClickImage)
|
|
5659
|
+
return;
|
|
5660
|
+
if (!props.closeOnClickOverlay && isClickOverlay)
|
|
5661
|
+
return;
|
|
5662
|
+
emit("close");
|
|
5663
|
+
};
|
|
5664
|
+
const checkTap = (event) => {
|
|
5665
|
+
if (fingerNum > 1) {
|
|
5666
|
+
return;
|
|
5667
|
+
}
|
|
5668
|
+
const deltaTime = Date.now() - touchStartTime;
|
|
5669
|
+
const TAP_TIME = 250;
|
|
5670
|
+
if (touch.isTap.value) {
|
|
5671
|
+
if (deltaTime < TAP_TIME) {
|
|
5672
|
+
if (props.doubleScale) {
|
|
5673
|
+
if (doubleTapTimer) {
|
|
5674
|
+
clearTimeout(doubleTapTimer);
|
|
5675
|
+
doubleTapTimer = null;
|
|
5676
|
+
toggleScale();
|
|
5677
|
+
} else {
|
|
5678
|
+
doubleTapTimer = setTimeout(() => {
|
|
5679
|
+
checkClose(event);
|
|
5680
|
+
doubleTapTimer = null;
|
|
5681
|
+
}, TAP_TIME);
|
|
5682
|
+
}
|
|
5683
|
+
} else {
|
|
5684
|
+
checkClose(event);
|
|
5685
|
+
}
|
|
5686
|
+
} else if (deltaTime > LONG_PRESS_START_TIME) {
|
|
5687
|
+
emit("longPress");
|
|
5688
|
+
}
|
|
5689
|
+
}
|
|
5690
|
+
};
|
|
5691
|
+
const onTouchEnd = (event) => {
|
|
5692
|
+
let stopPropagation2 = false;
|
|
5693
|
+
if (state.moving || state.zooming) {
|
|
5694
|
+
stopPropagation2 = true;
|
|
5695
|
+
if (state.moving && startMoveX === state.moveX && startMoveY === state.moveY) {
|
|
5696
|
+
stopPropagation2 = false;
|
|
5697
|
+
}
|
|
5698
|
+
if (!event.touches.length) {
|
|
5699
|
+
if (state.zooming) {
|
|
5700
|
+
state.moveX = clamp(state.moveX, -maxMoveX.value, maxMoveX.value);
|
|
5701
|
+
state.moveY = clamp(state.moveY, -maxMoveY.value, maxMoveY.value);
|
|
5702
|
+
state.zooming = false;
|
|
5703
|
+
}
|
|
5704
|
+
state.moving = false;
|
|
5705
|
+
startMoveX = 0;
|
|
5706
|
+
startMoveY = 0;
|
|
5707
|
+
startScale = 1;
|
|
5708
|
+
if (state.scale < 1) {
|
|
5709
|
+
resetScale();
|
|
5710
|
+
}
|
|
5711
|
+
const maxZoom = +props.maxZoom;
|
|
5712
|
+
if (state.scale > maxZoom) {
|
|
5713
|
+
setScale(maxZoom, lastCenter);
|
|
5714
|
+
}
|
|
5715
|
+
}
|
|
5716
|
+
}
|
|
5717
|
+
preventDefault(event, stopPropagation2);
|
|
5718
|
+
checkTap(event);
|
|
5719
|
+
touch.reset();
|
|
5720
|
+
};
|
|
5721
|
+
const resize = () => {
|
|
5722
|
+
const {
|
|
5723
|
+
rootWidth,
|
|
5724
|
+
rootHeight
|
|
5725
|
+
} = props;
|
|
5726
|
+
const rootRatio = rootHeight / rootWidth;
|
|
5727
|
+
const {
|
|
5728
|
+
imageRatio
|
|
5729
|
+
} = state;
|
|
5730
|
+
vertical.value = state.imageRatio > rootRatio && imageRatio < longImageRatio;
|
|
5731
|
+
isLongImage.value = state.imageRatio > rootRatio && imageRatio >= longImageRatio;
|
|
5732
|
+
if (isLongImage.value) {
|
|
5733
|
+
initialMoveY = (imageRatio * rootWidth - rootHeight) / 2;
|
|
5734
|
+
state.moveY = initialMoveY;
|
|
5735
|
+
state.initializing = true;
|
|
5736
|
+
raf(() => {
|
|
5737
|
+
state.initializing = false;
|
|
5738
|
+
});
|
|
5739
|
+
}
|
|
5740
|
+
resetScale();
|
|
5741
|
+
};
|
|
5742
|
+
const onLoad = (event) => {
|
|
5743
|
+
const {
|
|
5744
|
+
naturalWidth,
|
|
5745
|
+
naturalHeight
|
|
5746
|
+
} = event.target;
|
|
5747
|
+
state.imageRatio = naturalHeight / naturalWidth;
|
|
5748
|
+
resize();
|
|
5749
|
+
};
|
|
5750
|
+
watch(() => props.active, resetScale);
|
|
5751
|
+
watch(() => props.show, (value) => {
|
|
5752
|
+
if (!value) {
|
|
5753
|
+
resetScale();
|
|
5754
|
+
}
|
|
5755
|
+
});
|
|
5756
|
+
watch(() => [props.rootWidth, props.rootHeight], resize);
|
|
5757
|
+
useEventListener("touchmove", onTouchMove, {
|
|
5758
|
+
target: computed(() => {
|
|
5759
|
+
var _a;
|
|
5760
|
+
return (_a = swipeItem.value) == null ? void 0 : _a.$el;
|
|
5761
|
+
})
|
|
5762
|
+
});
|
|
5763
|
+
useExpose({
|
|
5764
|
+
resetScale
|
|
5765
|
+
});
|
|
5766
|
+
return () => {
|
|
5767
|
+
const imageSlots = {
|
|
5768
|
+
loading: () => createVNode(Loading, {
|
|
5769
|
+
"type": "spinner"
|
|
5770
|
+
}, null)
|
|
5771
|
+
};
|
|
5772
|
+
return createVNode(SwipeItem, {
|
|
5773
|
+
"ref": swipeItem,
|
|
5774
|
+
"class": bem$2("swipe-item"),
|
|
5775
|
+
"onTouchstartPassive": onTouchStart,
|
|
5776
|
+
"onTouchend": onTouchEnd,
|
|
5777
|
+
"onTouchcancel": onTouchEnd
|
|
5778
|
+
}, {
|
|
5779
|
+
default: () => [slots.image ? createVNode("div", {
|
|
5780
|
+
"class": bem$2("image-wrap")
|
|
5781
|
+
}, [slots.image({
|
|
5782
|
+
src: props.src,
|
|
5783
|
+
onLoad,
|
|
5784
|
+
style: imageStyle.value
|
|
5785
|
+
})]) : createVNode(Image$1, {
|
|
5786
|
+
"ref": imageRef,
|
|
5787
|
+
"src": props.src,
|
|
5788
|
+
"fit": "contain",
|
|
5789
|
+
"class": bem$2("image", {
|
|
5790
|
+
vertical: vertical.value
|
|
5791
|
+
}),
|
|
5792
|
+
"style": imageStyle.value,
|
|
5793
|
+
"onLoad": onLoad
|
|
5794
|
+
}, imageSlots)]
|
|
5795
|
+
});
|
|
5796
|
+
};
|
|
5797
|
+
}
|
|
5798
|
+
});
|
|
5799
|
+
const [name$1, bem$1] = createNamespace("image-preview");
|
|
5800
|
+
const popupProps = ["show", "teleport", "transition", "overlayStyle", "closeOnPopstate"];
|
|
5801
|
+
const imagePreviewProps = {
|
|
5802
|
+
show: Boolean,
|
|
5803
|
+
loop: truthProp,
|
|
5804
|
+
images: makeArrayProp(),
|
|
5805
|
+
minZoom: makeNumericProp(1 / 3),
|
|
5806
|
+
maxZoom: makeNumericProp(3),
|
|
5807
|
+
overlay: truthProp,
|
|
5808
|
+
vertical: Boolean,
|
|
5809
|
+
closeable: Boolean,
|
|
5810
|
+
showIndex: truthProp,
|
|
5811
|
+
className: unknownProp,
|
|
5812
|
+
closeIcon: makeStringProp("clear"),
|
|
5813
|
+
transition: String,
|
|
5814
|
+
beforeClose: Function,
|
|
5815
|
+
doubleScale: truthProp,
|
|
5816
|
+
overlayClass: unknownProp,
|
|
5817
|
+
overlayStyle: Object,
|
|
5818
|
+
swipeDuration: makeNumericProp(300),
|
|
5819
|
+
startPosition: makeNumericProp(0),
|
|
5820
|
+
showIndicators: Boolean,
|
|
5821
|
+
closeOnPopstate: truthProp,
|
|
5822
|
+
closeOnClickImage: truthProp,
|
|
5823
|
+
closeOnClickOverlay: truthProp,
|
|
5824
|
+
closeIconPosition: makeStringProp("top-right"),
|
|
5825
|
+
teleport: [String, Object]
|
|
5826
|
+
};
|
|
5827
|
+
var stdin_default$1 = defineComponent({
|
|
5828
|
+
name: name$1,
|
|
5829
|
+
props: imagePreviewProps,
|
|
5830
|
+
emits: ["scale", "close", "closed", "change", "longPress", "update:show"],
|
|
5831
|
+
setup(props, {
|
|
5832
|
+
emit,
|
|
5833
|
+
slots
|
|
5834
|
+
}) {
|
|
5835
|
+
const swipeRef = ref();
|
|
5836
|
+
const activedPreviewItemRef = ref();
|
|
5837
|
+
const state = reactive({
|
|
5838
|
+
active: 0,
|
|
5839
|
+
rootWidth: 0,
|
|
5840
|
+
rootHeight: 0,
|
|
5841
|
+
disableZoom: false
|
|
5842
|
+
});
|
|
5843
|
+
const resize = () => {
|
|
5844
|
+
if (swipeRef.value) {
|
|
5845
|
+
const rect = useRect(swipeRef.value.$el);
|
|
5846
|
+
state.rootWidth = rect.width;
|
|
5847
|
+
state.rootHeight = rect.height;
|
|
5848
|
+
swipeRef.value.resize();
|
|
5849
|
+
}
|
|
5850
|
+
};
|
|
5851
|
+
const emitScale = (args) => emit("scale", args);
|
|
5852
|
+
const updateShow = (show) => emit("update:show", show);
|
|
5853
|
+
const emitClose = () => {
|
|
5854
|
+
callInterceptor(props.beforeClose, {
|
|
5855
|
+
args: [state.active],
|
|
5856
|
+
done: () => updateShow(false)
|
|
5857
|
+
});
|
|
5858
|
+
};
|
|
5859
|
+
const setActive = (active) => {
|
|
5860
|
+
if (active !== state.active) {
|
|
5861
|
+
state.active = active;
|
|
5862
|
+
emit("change", active);
|
|
5863
|
+
}
|
|
5864
|
+
};
|
|
5865
|
+
const renderIndex = () => {
|
|
5866
|
+
if (props.showIndex) {
|
|
5867
|
+
return createVNode("div", {
|
|
5868
|
+
"class": bem$1("index")
|
|
5869
|
+
}, [slots.index ? slots.index({
|
|
5870
|
+
index: state.active
|
|
5871
|
+
}) : `${state.active + 1} / ${props.images.length}`]);
|
|
5872
|
+
}
|
|
5873
|
+
};
|
|
5874
|
+
const renderCover = () => {
|
|
5875
|
+
if (slots.cover) {
|
|
5876
|
+
return createVNode("div", {
|
|
5877
|
+
"class": bem$1("cover")
|
|
5878
|
+
}, [slots.cover()]);
|
|
5879
|
+
}
|
|
5880
|
+
};
|
|
5881
|
+
const onDragStart = () => {
|
|
5882
|
+
state.disableZoom = true;
|
|
5883
|
+
};
|
|
5884
|
+
const onDragEnd = () => {
|
|
5885
|
+
state.disableZoom = false;
|
|
5886
|
+
};
|
|
5887
|
+
const renderImages = () => createVNode(Swipe, {
|
|
5888
|
+
"ref": swipeRef,
|
|
5889
|
+
"lazyRender": true,
|
|
5890
|
+
"loop": props.loop,
|
|
5891
|
+
"class": bem$1("swipe"),
|
|
5892
|
+
"vertical": props.vertical,
|
|
5893
|
+
"duration": props.swipeDuration,
|
|
5894
|
+
"initialSwipe": props.startPosition,
|
|
5895
|
+
"showIndicators": props.showIndicators,
|
|
5896
|
+
"indicatorColor": "white",
|
|
5897
|
+
"onChange": setActive,
|
|
5898
|
+
"onDragEnd": onDragEnd,
|
|
5899
|
+
"onDragStart": onDragStart
|
|
5900
|
+
}, {
|
|
5901
|
+
default: () => [props.images.map((image, index) => createVNode(stdin_default$2, {
|
|
5902
|
+
"ref": (item) => {
|
|
5903
|
+
if (index === state.active) {
|
|
5904
|
+
activedPreviewItemRef.value = item;
|
|
5905
|
+
}
|
|
5906
|
+
},
|
|
5907
|
+
"src": image,
|
|
5908
|
+
"show": props.show,
|
|
5909
|
+
"active": state.active,
|
|
5910
|
+
"maxZoom": props.maxZoom,
|
|
5911
|
+
"minZoom": props.minZoom,
|
|
5912
|
+
"rootWidth": state.rootWidth,
|
|
5913
|
+
"rootHeight": state.rootHeight,
|
|
5914
|
+
"disableZoom": state.disableZoom,
|
|
5915
|
+
"doubleScale": props.doubleScale,
|
|
5916
|
+
"closeOnClickImage": props.closeOnClickImage,
|
|
5917
|
+
"closeOnClickOverlay": props.closeOnClickOverlay,
|
|
5918
|
+
"vertical": props.vertical,
|
|
5919
|
+
"onScale": emitScale,
|
|
5920
|
+
"onClose": emitClose,
|
|
5921
|
+
"onLongPress": () => emit("longPress", {
|
|
5922
|
+
index
|
|
5923
|
+
})
|
|
5924
|
+
}, {
|
|
5925
|
+
image: slots.image
|
|
5926
|
+
}))]
|
|
5927
|
+
});
|
|
5928
|
+
const renderClose = () => {
|
|
5929
|
+
if (props.closeable) {
|
|
5930
|
+
return createVNode(Icon, {
|
|
5931
|
+
"role": "button",
|
|
5932
|
+
"name": props.closeIcon,
|
|
5933
|
+
"class": [bem$1("close-icon", props.closeIconPosition), HAPTICS_FEEDBACK],
|
|
5934
|
+
"onClick": emitClose
|
|
5935
|
+
}, null);
|
|
5936
|
+
}
|
|
5937
|
+
};
|
|
5938
|
+
const onClosed = () => emit("closed");
|
|
5939
|
+
const swipeTo = (index, options) => {
|
|
5940
|
+
var _a;
|
|
5941
|
+
return (_a = swipeRef.value) == null ? void 0 : _a.swipeTo(index, options);
|
|
5942
|
+
};
|
|
5943
|
+
useExpose({
|
|
5944
|
+
resetScale: () => {
|
|
5945
|
+
var _a;
|
|
5946
|
+
(_a = activedPreviewItemRef.value) == null ? void 0 : _a.resetScale();
|
|
5947
|
+
},
|
|
5948
|
+
swipeTo
|
|
5949
|
+
});
|
|
5950
|
+
onMounted(resize);
|
|
5951
|
+
watch([windowWidth, windowHeight], resize);
|
|
5952
|
+
watch(() => props.startPosition, (value) => setActive(+value));
|
|
5953
|
+
watch(() => props.show, (value) => {
|
|
5954
|
+
const {
|
|
5955
|
+
images,
|
|
5956
|
+
startPosition
|
|
5957
|
+
} = props;
|
|
5958
|
+
if (value) {
|
|
5959
|
+
setActive(+startPosition);
|
|
5960
|
+
nextTick(() => {
|
|
5961
|
+
resize();
|
|
5962
|
+
swipeTo(+startPosition, {
|
|
5963
|
+
immediate: true
|
|
5964
|
+
});
|
|
5965
|
+
});
|
|
5966
|
+
} else {
|
|
5967
|
+
emit("close", {
|
|
5968
|
+
index: state.active,
|
|
5969
|
+
url: images[state.active]
|
|
5970
|
+
});
|
|
5971
|
+
}
|
|
5972
|
+
});
|
|
5973
|
+
return () => createVNode(Popup, mergeProps({
|
|
5974
|
+
"class": [bem$1(), props.className],
|
|
5975
|
+
"overlayClass": [bem$1("overlay"), props.overlayClass],
|
|
5976
|
+
"onClosed": onClosed,
|
|
5977
|
+
"onUpdate:show": updateShow
|
|
5978
|
+
}, pick(props, popupProps)), {
|
|
5979
|
+
default: () => [renderClose(), renderImages(), renderIndex(), renderCover()]
|
|
5980
|
+
});
|
|
5981
|
+
}
|
|
5982
|
+
});
|
|
5983
|
+
let instance$1;
|
|
5984
|
+
const defaultConfig = {
|
|
5985
|
+
loop: true,
|
|
5986
|
+
images: [],
|
|
5987
|
+
maxZoom: 3,
|
|
5988
|
+
minZoom: 1 / 3,
|
|
5989
|
+
onScale: void 0,
|
|
5990
|
+
onClose: void 0,
|
|
5991
|
+
onChange: void 0,
|
|
5992
|
+
vertical: false,
|
|
5993
|
+
teleport: "body",
|
|
5994
|
+
className: "",
|
|
5995
|
+
showIndex: true,
|
|
5996
|
+
closeable: false,
|
|
5997
|
+
closeIcon: "clear",
|
|
5998
|
+
transition: void 0,
|
|
5999
|
+
beforeClose: void 0,
|
|
6000
|
+
doubleScale: true,
|
|
6001
|
+
overlayStyle: void 0,
|
|
6002
|
+
overlayClass: void 0,
|
|
6003
|
+
startPosition: 0,
|
|
6004
|
+
swipeDuration: 300,
|
|
6005
|
+
showIndicators: false,
|
|
6006
|
+
closeOnPopstate: true,
|
|
6007
|
+
closeOnClickOverlay: true,
|
|
6008
|
+
closeIconPosition: "top-right"
|
|
6009
|
+
};
|
|
6010
|
+
function initInstance$1() {
|
|
6011
|
+
({
|
|
6012
|
+
instance: instance$1
|
|
6013
|
+
} = mountComponent({
|
|
6014
|
+
setup() {
|
|
6015
|
+
const {
|
|
6016
|
+
state,
|
|
6017
|
+
toggle
|
|
6018
|
+
} = usePopupState();
|
|
6019
|
+
const onClosed = () => {
|
|
6020
|
+
state.images = [];
|
|
6021
|
+
};
|
|
6022
|
+
return () => createVNode(stdin_default$1, mergeProps(state, {
|
|
6023
|
+
"onClosed": onClosed,
|
|
6024
|
+
"onUpdate:show": toggle
|
|
6025
|
+
}), null);
|
|
6026
|
+
}
|
|
6027
|
+
}));
|
|
6028
|
+
}
|
|
6029
|
+
const showImagePreview = (options, startPosition = 0) => {
|
|
6030
|
+
if (!inBrowser$1) {
|
|
6031
|
+
return;
|
|
6032
|
+
}
|
|
6033
|
+
if (!instance$1) {
|
|
6034
|
+
initInstance$1();
|
|
6035
|
+
}
|
|
6036
|
+
options = Array.isArray(options) ? {
|
|
6037
|
+
images: options,
|
|
6038
|
+
startPosition
|
|
6039
|
+
} : options;
|
|
6040
|
+
instance$1.open(extend$1({}, defaultConfig, options));
|
|
6041
|
+
return instance$1;
|
|
6042
|
+
};
|
|
4700
6043
|
withInstall(stdin_default$1);
|
|
4701
6044
|
const [name, bem] = createNamespace("notify");
|
|
4702
6045
|
const popupInheritProps = ["lockScroll", "position", "show", "teleport", "zIndex"];
|
|
@@ -14782,7 +16125,7 @@ var lodash$1 = { exports: {} };
|
|
|
14782
16125
|
function valuesIn(object) {
|
|
14783
16126
|
return object == null ? [] : baseValues(object, keysIn(object));
|
|
14784
16127
|
}
|
|
14785
|
-
function
|
|
16128
|
+
function clamp2(number, lower, upper) {
|
|
14786
16129
|
if (upper === undefined$12) {
|
|
14787
16130
|
upper = lower;
|
|
14788
16131
|
lower = undefined$12;
|
|
@@ -15456,7 +16799,7 @@ var lodash$1 = { exports: {} };
|
|
|
15456
16799
|
lodash2.camelCase = camelCase;
|
|
15457
16800
|
lodash2.capitalize = capitalize;
|
|
15458
16801
|
lodash2.ceil = ceil;
|
|
15459
|
-
lodash2.clamp =
|
|
16802
|
+
lodash2.clamp = clamp2;
|
|
15460
16803
|
lodash2.clone = clone2;
|
|
15461
16804
|
lodash2.cloneDeep = cloneDeep;
|
|
15462
16805
|
lodash2.cloneDeepWith = cloneDeepWith;
|
|
@@ -15782,8 +17125,8 @@ var lodash$1 = { exports: {} };
|
|
|
15782
17125
|
}).call(commonjsGlobal);
|
|
15783
17126
|
})(lodash$1, lodash$1.exports);
|
|
15784
17127
|
var lodash = lodash$1.exports;
|
|
15785
|
-
var AuditBar_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-
|
|
15786
|
-
var AuditBar_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => "\n:root:root {\
|
|
17128
|
+
var AuditBar_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-4ca3a098] {\n text-align: center;\n padding: 15px 15px;\n}\n.memo[data-v-4ca3a098] {\n margin-bottom: 15px;\n}\n.refuse-btn[data-v-4ca3a098] {\n width: 120px;\n margin-right: 15px;\n}\n.pass-btn[data-v-4ca3a098] {\n width: 120px;\n}\n.apply-btn[data-v-4ca3a098] {\n width: 60vw;\n}\n.task-list[data-v-4ca3a098] {\n margin-top: 15px;\n}\n.task-title[data-v-4ca3a098] {\n font-size: 14px;\n font-weight: bold;\n color: #333;\n text-align: left;\n}\n.task-user[data-v-4ca3a098] {\n font-size: 13px;\n color: #666;\n text-align: left;\n margin-top: 5px;\n}\n.audit-title[data-v-4ca3a098] {\n padding: 25px 15px 0 15px;\n font-size: 16px;\n font-weight: bold;\n color: #666;\n text-align: left;\n}")();
|
|
17129
|
+
var AuditBar_vue_vue_type_style_index_1_lang = /* @__PURE__ */ (() => "\n:root:root {\n --van-popover-action-width: 70vw;\n}\n")();
|
|
15787
17130
|
var _export_sfc = (sfc, props) => {
|
|
15788
17131
|
const target = sfc.__vccOpts || sfc;
|
|
15789
17132
|
for (const [key, val] of props) {
|
|
@@ -15794,7 +17137,7 @@ var _export_sfc = (sfc, props) => {
|
|
|
15794
17137
|
const _hoisted_1$k = {
|
|
15795
17138
|
class: "widget"
|
|
15796
17139
|
};
|
|
15797
|
-
const _hoisted_2$
|
|
17140
|
+
const _hoisted_2$d = /* @__PURE__ */ createTextVNode("\u9A73\u56DE");
|
|
15798
17141
|
const _hoisted_3$a = /* @__PURE__ */ createTextVNode("\u63D0\u4EA4");
|
|
15799
17142
|
const _hoisted_4$9 = /* @__PURE__ */ createTextVNode("\u7533\u8BF7");
|
|
15800
17143
|
const _hoisted_5$9 = {
|
|
@@ -16092,7 +17435,7 @@ const _sfc_main$v = {
|
|
|
16092
17435
|
type: "danger",
|
|
16093
17436
|
onClick: onRefuse
|
|
16094
17437
|
}, {
|
|
16095
|
-
default: withCtx(() => [_hoisted_2$
|
|
17438
|
+
default: withCtx(() => [_hoisted_2$d]),
|
|
16096
17439
|
_: 1
|
|
16097
17440
|
})]),
|
|
16098
17441
|
_: 1
|
|
@@ -16140,7 +17483,7 @@ const _sfc_main$v = {
|
|
|
16140
17483
|
};
|
|
16141
17484
|
}
|
|
16142
17485
|
};
|
|
16143
|
-
var AuditBar = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-
|
|
17486
|
+
var AuditBar = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-4ca3a098"]]);
|
|
16144
17487
|
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
|
|
16145
17488
|
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
|
|
16146
17489
|
const isDef = (val) => typeof val !== "undefined";
|
|
@@ -16207,7 +17550,7 @@ function useVModel(props, key, emit, options = {}) {
|
|
|
16207
17550
|
});
|
|
16208
17551
|
}
|
|
16209
17552
|
}
|
|
16210
|
-
var Input_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
17553
|
+
var Input_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-11282908] .label {\n color: #000 !important;\n}\n[data-v-11282908] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
16211
17554
|
const _sfc_main$u = {
|
|
16212
17555
|
__name: "Input",
|
|
16213
17556
|
props: {
|
|
@@ -16303,8 +17646,8 @@ const _sfc_main$u = {
|
|
|
16303
17646
|
};
|
|
16304
17647
|
}
|
|
16305
17648
|
};
|
|
16306
|
-
var Input = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-
|
|
16307
|
-
var SinglePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
17649
|
+
var Input = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-11282908"]]);
|
|
17650
|
+
var SinglePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-6786fbdf] .label {\n color: #000 !important;\n}\n[data-v-6786fbdf] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
16308
17651
|
const _sfc_main$t = {
|
|
16309
17652
|
__name: "SinglePicker",
|
|
16310
17653
|
props: {
|
|
@@ -16421,12 +17764,12 @@ const _sfc_main$t = {
|
|
|
16421
17764
|
};
|
|
16422
17765
|
}
|
|
16423
17766
|
};
|
|
16424
|
-
var SinglePicker = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-
|
|
16425
|
-
var DataPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-box[data-v-
|
|
17767
|
+
var SinglePicker = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-6786fbdf"]]);
|
|
17768
|
+
var DataPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-box[data-v-fa22ab88] {\n min-height: 20vh;\n max-height: 40vh;\n overflow-y: auto;\n.checkbox-list[data-v-fa22ab88] {\n padding: 15px 25px;\n[data-v-fa22ab88] .van-checkbox__label {\n flex: 1;\n text-align: right;\n}\n}\n}\n.select-all-container[data-v-fa22ab88] {\n font-size: 14px;\n padding: 15px 25px 0 15px;\n margin: 10px 0;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n.select-all-container .van-checkbox[data-v-fa22ab88] {\n margin-left: auto;\n}\n\n/* \u65B0\u589E\uFF1A\u8C03\u6574\u65B9\u5F62\u590D\u9009\u6846\u7684\u8FB9\u8DDD */\n.van-checkbox--square[data-v-fa22ab88] {\n margin-left: 8px;\n}\n")();
|
|
16426
17769
|
const _hoisted_1$j = {
|
|
16427
17770
|
class: "select-all-container"
|
|
16428
17771
|
};
|
|
16429
|
-
const _hoisted_2$
|
|
17772
|
+
const _hoisted_2$c = /* @__PURE__ */ createTextVNode("\u5168\u9009");
|
|
16430
17773
|
const _hoisted_3$9 = {
|
|
16431
17774
|
class: "checkbox-list"
|
|
16432
17775
|
};
|
|
@@ -16484,7 +17827,7 @@ const _sfc_main$s = {
|
|
|
16484
17827
|
onClick: onToggleAll,
|
|
16485
17828
|
"label-position": "left"
|
|
16486
17829
|
}, {
|
|
16487
|
-
default: withCtx(() => [_hoisted_2$
|
|
17830
|
+
default: withCtx(() => [_hoisted_2$c]),
|
|
16488
17831
|
_: 1
|
|
16489
17832
|
}, 8, ["modelValue"])]), createElementVNode("div", _hoisted_3$9, [createVNode(_component_van_checkbox_group, {
|
|
16490
17833
|
modelValue: unref(modelValue),
|
|
@@ -16511,8 +17854,8 @@ const _sfc_main$s = {
|
|
|
16511
17854
|
};
|
|
16512
17855
|
}
|
|
16513
17856
|
};
|
|
16514
|
-
var DataPop = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-
|
|
16515
|
-
var MultiPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.data-item[data-v-
|
|
17857
|
+
var DataPop = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-fa22ab88"]]);
|
|
17858
|
+
var MultiPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.data-item[data-v-3a55339a]{\n margin: 0 8px 8px 0;\n padding: 2px 5px;\n}\n")();
|
|
16516
17859
|
const _hoisted_1$i = {
|
|
16517
17860
|
class: "data-list"
|
|
16518
17861
|
};
|
|
@@ -16652,8 +17995,8 @@ const _sfc_main$r = {
|
|
|
16652
17995
|
};
|
|
16653
17996
|
}
|
|
16654
17997
|
};
|
|
16655
|
-
var MultiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-
|
|
16656
|
-
var CheckGroup_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
17998
|
+
var MultiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["__scopeId", "data-v-3a55339a"]]);
|
|
17999
|
+
var CheckGroup_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-a66fb17e] .label {\n color: #000 !important;\n}\n[data-v-a66fb17e] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
16657
18000
|
const _sfc_main$q = {
|
|
16658
18001
|
__name: "CheckGroup",
|
|
16659
18002
|
props: {
|
|
@@ -16778,7 +18121,7 @@ const _sfc_main$q = {
|
|
|
16778
18121
|
};
|
|
16779
18122
|
}
|
|
16780
18123
|
};
|
|
16781
|
-
var CheckGroup = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-
|
|
18124
|
+
var CheckGroup = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-a66fb17e"]]);
|
|
16782
18125
|
const _sfc_main$p = {
|
|
16783
18126
|
__name: "DatetimePop",
|
|
16784
18127
|
props: {
|
|
@@ -17181,11 +18524,11 @@ const _sfc_main$o = {
|
|
|
17181
18524
|
};
|
|
17182
18525
|
}
|
|
17183
18526
|
};
|
|
17184
|
-
var data_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-style[data-v-
|
|
18527
|
+
var data_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-style[data-v-3aa36f2a] {\n height: 21.25rem;\n}\n.showMultipleButton[data-v-3aa36f2a] {\n padding-bottom: 0;\n}\n.showMultipleButton .van-button[data-v-3aa36f2a] {\n border: 0;\n}\n.flex-between[data-v-3aa36f2a] {\n padding: 10px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.bold[data-v-3aa36f2a] {\n font-weight: bold;\n color: #444;\n}\n.checkbox-style[data-v-3aa36f2a] {\n /* height: 220px; */\n height: calc(220px - 30px);\n overflow-y: auto;\n}\n.select-all-container[data-v-3aa36f2a] {\n font-size: 14px;\n padding: 0 16px;\n margin: 10px 0;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n.select-all-container .van-checkbox[data-v-3aa36f2a] {\n margin-left: auto;\n}\n\n/* \u65B0\u589E\uFF1A\u8C03\u6574\u65B9\u5F62\u590D\u9009\u6846\u7684\u8FB9\u8DDD */\n.van-checkbox--square[data-v-3aa36f2a] {\n margin-left: 8px;\n}\n")();
|
|
17185
18528
|
const _hoisted_1$h = {
|
|
17186
18529
|
class: "pad10 flex-between showMultipleButton"
|
|
17187
18530
|
};
|
|
17188
|
-
const _hoisted_2$
|
|
18531
|
+
const _hoisted_2$b = /* @__PURE__ */ createTextVNode("\u53D6\u6D88");
|
|
17189
18532
|
const _hoisted_3$8 = {
|
|
17190
18533
|
class: "bold"
|
|
17191
18534
|
};
|
|
@@ -17424,7 +18767,7 @@ const _sfc_main$n = {
|
|
|
17424
18767
|
size: "normal",
|
|
17425
18768
|
onClick: cancelSelection
|
|
17426
18769
|
}, {
|
|
17427
|
-
default: withCtx(() => [_hoisted_2$
|
|
18770
|
+
default: withCtx(() => [_hoisted_2$b]),
|
|
17428
18771
|
_: 1
|
|
17429
18772
|
}), createElementVNode("div", _hoisted_3$8, toDisplayString(__props.label), 1), createVNode(_component_van_button, {
|
|
17430
18773
|
plain: "",
|
|
@@ -17507,13 +18850,13 @@ const _sfc_main$n = {
|
|
|
17507
18850
|
};
|
|
17508
18851
|
}
|
|
17509
18852
|
};
|
|
17510
|
-
var DataSelector = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-
|
|
17511
|
-
var mult_list_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\
|
|
18853
|
+
var DataSelector = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-3aa36f2a"]]);
|
|
18854
|
+
var mult_list_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n/* // \u4FEE\u6539 confirmation-group \u548C confirmation-item \u7684\u6837\u5F0F */\n.confirmation-group[data-v-0c8dc954] {\n padding: 0 16px;\n --van-checkbox-disabled-icon-color: black;\n}\n.confirmation-item[data-v-0c8dc954] {\n padding: 12px 16px;\n margin: 0 -16px;\n border-bottom: 1px solid #f5f5f5;\n /* \u7981\u7528\u72B6\u6001\u6837\u5F0F */\n}\n\n/* // \u5728\u4E0B\u65B9\u6DFB\u52A0\u5A92\u4F53\u67E5\u8BE2\u9002\u914D\u5C0F\u5C4F\u5E55 */\n@media (max-width: 320px) {\n.confirmation-item[data-v-0c8dc954] {\n padding: 12px 8px;\n margin: 0 -8px;\n}\n}\n.confirmation-item[data-v-0c8dc954]:last-child {\n border-bottom: none;\n}\n\n/* \u65B0\u589E\u6837\u5F0F */\n.confirmation-tips[data-v-0c8dc954] {\n padding: 12px 16px;\n background: #f0faff;\n border-radius: 8px;\n margin: 10px 16px;\n display: flex;\n align-items: center;\n color: #1989fa;\n font-size: 13px;\n border: 1px solid #d9efff;\n}\n.confirmation-tips .van-icon[data-v-0c8dc954] {\n margin-right: 8px;\n}\n\n/* \u65B0\u589E\u5B57\u4F53\u7EE7\u627F\u6837\u5F0F */\n.confirmation-group[data-v-0c8dc954] {\n font-size: inherit; /* \u7EE7\u627F\u7236\u7EA7\u5B57\u4F53\u5927\u5C0F */\n}\n.option-text[data-v-0c8dc954] {\n font-size: 14px; /* \u660E\u786E\u6307\u5B9A\u5B57\u4F53\u5927\u5C0F */\n line-height: 1.5; /* \u4FDD\u6301\u884C\u9AD8\u4E00\u81F4 */\n /* color:black; */\n}\n\n/* \u9002\u914D\u79FB\u52A8\u7AEF\u7684\u5B57\u4F53\u8C03\u6574 */\n@media (max-width: 375px) {\n.option-text[data-v-0c8dc954] {\n font-size: 13px;\n}\n}\n\n/* \u65B0\u589E\u7981\u7528\u72B6\u6001\u6837\u5F0F */\n.custom-checkbox[data-v-0c8dc954]:disabled .--van-checkbox__icon {\n background-color: #f5f5f5;\n border-color: #ebedf0;\n transition: all 0.3s;\n}\n.custom-checkbox[data-v-0c8dc954]:disabled .van-checkbox__icon--checked {\n background-color: #1989fa;\n border-color: #1989fa;\n opacity: 0.7;\n}\n.van-checkbox--disabled[data-v-0c8dc954] .option-text {\n color: #969799;\n}\n.van-checkbox--disabled.van-checkbox--checked[data-v-0c8dc954] .option-text {\n color: #1989fa;\n opacity: 0.8;\n}\n")();
|
|
17512
18855
|
const _hoisted_1$g = {
|
|
17513
18856
|
key: 0,
|
|
17514
18857
|
class: "confirmation-tips"
|
|
17515
18858
|
};
|
|
17516
|
-
const _hoisted_2$
|
|
18859
|
+
const _hoisted_2$a = {
|
|
17517
18860
|
class: "option-text"
|
|
17518
18861
|
};
|
|
17519
18862
|
const _sfc_main$m = {
|
|
@@ -17572,7 +18915,7 @@ const _sfc_main$m = {
|
|
|
17572
18915
|
"icon-size": "18px",
|
|
17573
18916
|
class: "custom-checkbox"
|
|
17574
18917
|
}, {
|
|
17575
|
-
default: withCtx(() => [createElementVNode("span", _hoisted_2$
|
|
18918
|
+
default: withCtx(() => [createElementVNode("span", _hoisted_2$a, toDisplayString(item.label), 1)]),
|
|
17576
18919
|
_: 2
|
|
17577
18920
|
}, 1032, ["name"])]);
|
|
17578
18921
|
}), 128))]),
|
|
@@ -17581,12 +18924,12 @@ const _sfc_main$m = {
|
|
|
17581
18924
|
};
|
|
17582
18925
|
}
|
|
17583
18926
|
};
|
|
17584
|
-
var MultListSelector = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-
|
|
17585
|
-
var subdepartment_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.department-popup[data-v-
|
|
18927
|
+
var MultListSelector = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-0c8dc954"]]);
|
|
18928
|
+
var subdepartment_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.department-popup[data-v-122ee6bc] {\n width: 100%;\n height: 60vh;\n border-radius: 16px 16px 0 0;\n}\n.popup-container[data-v-122ee6bc] {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n.picker-header[data-v-122ee6bc] {\n display: flex;\n align-items: center;\n padding: 12px;\n border-bottom: 1px solid #ebedf0;\n gap: 8px;\n background: #fff;\n /* flex-shrink: 0; */\n position: sticky;\n top: 0;\n z-index: 999;\n height: 56px;\n /* \u56FA\u5B9A\u5934\u90E8\u9AD8\u5EA6 */\n flex-shrink: 0;\n /* \u9632\u6B62\u5934\u90E8\u88AB\u538B\u7F29 */\n}\n.scroll-container[data-v-122ee6bc] {\n flex: 1;\n height: 0;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n /* height: calc(80vh - 170px); */\n /* \u8BA1\u7B97\u65B9\u5F0F\uFF1A\u603B\u9AD8\u5EA6(80vh) - \u5934\u90E8\u9AD8\u5EA6(56px) - \u641C\u7D22\u6846\u9AD8\u5EA6(52px) */\n position: relative;\n top: -1px;\n}\n.back-button[data-v-122ee6bc] {\n margin-right: 8px;\n}\n.current-path[data-v-122ee6bc] {\n flex: 1;\n font-size: 14px;\n color: #323233;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.action-buttons[data-v-122ee6bc] {\n display: flex;\n gap: 8px;\n margin-left: auto;\n}\n\n/* .scroll-container {\n flex: 1;\n overflow-y: auto;\n -webkit-overflow-scrolling: touch;\n} */\n.cell-content[data-v-122ee6bc] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.circle-selector[data-v-122ee6bc] {\n width: 20px;\n height: 20px;\n border: 1px solid #ebedf0;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-122ee6bc] {\n background-color: #1989fa;\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-122ee6bc] {\n color: white;\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-122ee6bc] {\n color: #969799;\n font-size: 16px;\n margin-left: 8px;\n}\n.name[data-v-122ee6bc] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.cancel-btn[data-v-122ee6bc] {\n color: #969799;\n}\n.search-field[data-v-122ee6bc] {\n background: #fff;\n padding: 10px 16px;\n border-bottom: 1px solid #ebedf0;\n position: sticky;\n top: 0;\n z-index: 999;\n margin-bottom: 10px;\n flex-shrink: 0;\n /* \u9632\u6B62\u538B\u7F29 */\n}\n")();
|
|
17586
18929
|
const _hoisted_1$f = {
|
|
17587
18930
|
class: "department-selector"
|
|
17588
18931
|
};
|
|
17589
|
-
const _hoisted_2$
|
|
18932
|
+
const _hoisted_2$9 = {
|
|
17590
18933
|
class: "popup-container"
|
|
17591
18934
|
};
|
|
17592
18935
|
const _hoisted_3$7 = {
|
|
@@ -17873,7 +19216,7 @@ const _sfc_main$l = {
|
|
|
17873
19216
|
position: "bottom",
|
|
17874
19217
|
class: "department-popup"
|
|
17875
19218
|
}, {
|
|
17876
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_2$
|
|
19219
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_2$9, [createElementVNode("div", _hoisted_3$7, [unref(currentLevel) > 0 ? (openBlock(), createBlock(_component_van_button, {
|
|
17877
19220
|
key: 0,
|
|
17878
19221
|
onClick: goBack,
|
|
17879
19222
|
icon: "arrow-left",
|
|
@@ -17941,12 +19284,12 @@ const _sfc_main$l = {
|
|
|
17941
19284
|
};
|
|
17942
19285
|
}
|
|
17943
19286
|
};
|
|
17944
|
-
var SubdepartmentSelector = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-
|
|
17945
|
-
var user_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-
|
|
19287
|
+
var SubdepartmentSelector = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["__scopeId", "data-v-122ee6bc"]]);
|
|
19288
|
+
var user_selector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-9d9c2ea6] {\n height: 60vh;\n width: 100%;\n}\n.picker-header[data-v-9d9c2ea6] {\n padding: 10px;\n border-bottom: 1px solid #ebedf0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.scroll-container[data-v-9d9c2ea6] {\n height: calc(80vh - 150px);\n overflow-y: auto;\n}\n.search-container[data-v-9d9c2ea6] {\n padding: 10px;\n background: #fff;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n[data-v-9d9c2ea6] .search-container .van-search {\n flex: 1;\n}\n.search-btn[data-v-9d9c2ea6] {\n flex-shrink: 0;\n}\n.select-all-container[data-v-9d9c2ea6] {\n font-size: 14px;\n padding: 0 16px;\n margin: 10px 0;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n[data-v-9d9c2ea6] .van-checkbox__icon--square {\n border-radius: 4px;\n}\n[data-v-9d9c2ea6] .van-checkbox__label {\n margin-left: 8px;\n}\n[data-v-9d9c2ea6] .van-radio-group .van-cell,[data-v-9d9c2ea6] .van-checkbox-group .van-cell {\n align-items: center;\n}\n.current-path[data-v-9d9c2ea6] {\n flex: 1;\n font-size: 14px;\n color: #323233;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.header-right[data-v-9d9c2ea6] {\n display: flex;\n gap: 8px;\n margin-left: auto;\n}\n.cancel-btn[data-v-9d9c2ea6] {\n color: #969799;\n margin-right: 5px;\n}\n")();
|
|
17946
19289
|
const _hoisted_1$e = {
|
|
17947
19290
|
class: "user-selector"
|
|
17948
19291
|
};
|
|
17949
|
-
const _hoisted_2$
|
|
19292
|
+
const _hoisted_2$8 = {
|
|
17950
19293
|
class: "popup-container"
|
|
17951
19294
|
};
|
|
17952
19295
|
const _hoisted_3$6 = {
|
|
@@ -18345,7 +19688,7 @@ const _sfc_main$k = {
|
|
|
18345
19688
|
position: "bottom",
|
|
18346
19689
|
class: "user-popup"
|
|
18347
19690
|
}, {
|
|
18348
|
-
default: withCtx(() => [createElementVNode("div", _hoisted_2$
|
|
19691
|
+
default: withCtx(() => [createElementVNode("div", _hoisted_2$8, [createElementVNode("div", _hoisted_3$6, [createElementVNode("div", _hoisted_4$6, [unref(currentLevel) > 0 ? (openBlock(), createBlock(_component_van_button, {
|
|
18349
19692
|
key: 0,
|
|
18350
19693
|
onClick: goBack,
|
|
18351
19694
|
icon: "arrow-left",
|
|
@@ -18469,8 +19812,8 @@ const _sfc_main$k = {
|
|
|
18469
19812
|
};
|
|
18470
19813
|
}
|
|
18471
19814
|
};
|
|
18472
|
-
var UserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-
|
|
18473
|
-
var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
19815
|
+
var UserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-9d9c2ea6"]]);
|
|
19816
|
+
var image_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-b5f63d62] .label {\n color: #000 !important;\n}\n[data-v-b5f63d62] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
18474
19817
|
const _hoisted_1$d = {
|
|
18475
19818
|
class: "image-box"
|
|
18476
19819
|
};
|
|
@@ -18599,11 +19942,12 @@ const _sfc_main$j = {
|
|
|
18599
19942
|
};
|
|
18600
19943
|
}
|
|
18601
19944
|
};
|
|
18602
|
-
var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-
|
|
18603
|
-
var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".
|
|
19945
|
+
var ImagePicker = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-b5f63d62"]]);
|
|
19946
|
+
var images_picker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".image-box .cover[data-v-99388278] {\n width: 80px;\n height: 80px;\n}")();
|
|
18604
19947
|
const _hoisted_1$c = {
|
|
18605
19948
|
class: "image-box"
|
|
18606
19949
|
};
|
|
19950
|
+
const _hoisted_2$7 = ["src", "onClick"];
|
|
18607
19951
|
const _sfc_main$i = {
|
|
18608
19952
|
__name: "images_picker",
|
|
18609
19953
|
props: {
|
|
@@ -18637,7 +19981,7 @@ const _sfc_main$i = {
|
|
|
18637
19981
|
},
|
|
18638
19982
|
max: {
|
|
18639
19983
|
type: Number,
|
|
18640
|
-
default:
|
|
19984
|
+
default: 1e4
|
|
18641
19985
|
},
|
|
18642
19986
|
rules: {
|
|
18643
19987
|
type: Array,
|
|
@@ -18646,6 +19990,10 @@ const _sfc_main$i = {
|
|
|
18646
19990
|
auth: {
|
|
18647
19991
|
type: String,
|
|
18648
19992
|
default: ""
|
|
19993
|
+
},
|
|
19994
|
+
maxPreview: {
|
|
19995
|
+
type: Number,
|
|
19996
|
+
default: 1
|
|
18649
19997
|
}
|
|
18650
19998
|
},
|
|
18651
19999
|
emits: ["update:modelValue"],
|
|
@@ -18653,7 +20001,7 @@ const _sfc_main$i = {
|
|
|
18653
20001
|
emit
|
|
18654
20002
|
}) {
|
|
18655
20003
|
const props = __props;
|
|
18656
|
-
useVModel(props, "modelValue", emit);
|
|
20004
|
+
const modelValue = useVModel(props, "modelValue", emit);
|
|
18657
20005
|
const {
|
|
18658
20006
|
isRequired,
|
|
18659
20007
|
isReadonly,
|
|
@@ -18661,6 +20009,14 @@ const _sfc_main$i = {
|
|
|
18661
20009
|
isDisabled
|
|
18662
20010
|
} = util.props2auth(props);
|
|
18663
20011
|
const files = ref([]);
|
|
20012
|
+
const isPreviewMore = ref(false);
|
|
20013
|
+
const previews = computed(() => {
|
|
20014
|
+
if (!modelValue.value || modelValue.value.length < 1)
|
|
20015
|
+
return [];
|
|
20016
|
+
if (props.maxPreview > modelValue.value.length || isPreviewMore.value)
|
|
20017
|
+
return modelValue.value;
|
|
20018
|
+
return modelValue.value.slice(0, props.maxPreview);
|
|
20019
|
+
});
|
|
18664
20020
|
onMounted(() => {
|
|
18665
20021
|
});
|
|
18666
20022
|
const onAfterRead = (file) => __async(this, null, function* () {
|
|
@@ -18689,6 +20045,15 @@ const _sfc_main$i = {
|
|
|
18689
20045
|
emit("update:modelValue", newUrls);
|
|
18690
20046
|
return Promise.resolve(e);
|
|
18691
20047
|
};
|
|
20048
|
+
const onPreview = (i) => {
|
|
20049
|
+
showImagePreview({
|
|
20050
|
+
images: modelValue.value,
|
|
20051
|
+
startPosition: i
|
|
20052
|
+
});
|
|
20053
|
+
};
|
|
20054
|
+
const onToggleMore = () => {
|
|
20055
|
+
isPreviewMore.value = !isPreviewMore.value;
|
|
20056
|
+
};
|
|
18692
20057
|
watch(() => props.modelValue, (newVal, oldVal) => {
|
|
18693
20058
|
if (!props.modelValue || props.modelValue.length < 1) {
|
|
18694
20059
|
files.value = [];
|
|
@@ -18705,6 +20070,7 @@ const _sfc_main$i = {
|
|
|
18705
20070
|
});
|
|
18706
20071
|
return (_ctx, _cache) => {
|
|
18707
20072
|
const _component_van_uploader = resolveComponent("van-uploader");
|
|
20073
|
+
const _component_van_icon = resolveComponent("van-icon");
|
|
18708
20074
|
const _component_van_field = resolveComponent("van-field");
|
|
18709
20075
|
return openBlock(), createBlock(_component_van_field, {
|
|
18710
20076
|
name: "image",
|
|
@@ -18714,7 +20080,7 @@ const _sfc_main$i = {
|
|
|
18714
20080
|
"label-class": "label",
|
|
18715
20081
|
placeholder: props.placeholder
|
|
18716
20082
|
}, {
|
|
18717
|
-
input: withCtx(() => [createElementVNode("div", _hoisted_1$c, [props.capture ? (openBlock(), createBlock(_component_van_uploader, {
|
|
20083
|
+
input: withCtx(() => [createElementVNode("div", _hoisted_1$c, [props.capture && !unref(isReadonly) && !unref(isDisabled) ? (openBlock(), createBlock(_component_van_uploader, {
|
|
18718
20084
|
key: 0,
|
|
18719
20085
|
modelValue: files.value,
|
|
18720
20086
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => files.value = $event),
|
|
@@ -18726,7 +20092,7 @@ const _sfc_main$i = {
|
|
|
18726
20092
|
afterRead: onAfterRead,
|
|
18727
20093
|
"before-delete": onBeforeDelete,
|
|
18728
20094
|
"show-upload": !unref(isReadonly)
|
|
18729
|
-
}, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : (openBlock(), createBlock(_component_van_uploader, {
|
|
20095
|
+
}, null, 8, ["modelValue", "max-count", "capture", "disabled", "deletable", "show-upload"])) : createCommentVNode("", true), !props.capture && !unref(isReadonly) && !unref(isDisabled) ? (openBlock(), createBlock(_component_van_uploader, {
|
|
18730
20096
|
key: 1,
|
|
18731
20097
|
modelValue: files.value,
|
|
18732
20098
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => files.value = $event),
|
|
@@ -18737,14 +20103,27 @@ const _sfc_main$i = {
|
|
|
18737
20103
|
afterRead: onAfterRead,
|
|
18738
20104
|
"before-delete": onBeforeDelete,
|
|
18739
20105
|
"show-upload": !unref(isReadonly)
|
|
18740
|
-
}, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"]))
|
|
20106
|
+
}, null, 8, ["modelValue", "max-count", "disabled", "deletable", "show-upload"])) : createCommentVNode("", true), unref(isReadonly) || unref(isDisabled) ? (openBlock(true), createElementBlock(Fragment, {
|
|
20107
|
+
key: 2
|
|
20108
|
+
}, renderList(unref(previews), (cover, i) => {
|
|
20109
|
+
return openBlock(), createElementBlock("img", {
|
|
20110
|
+
class: "cover",
|
|
20111
|
+
key: i,
|
|
20112
|
+
src: cover,
|
|
20113
|
+
onClick: ($event) => onPreview(i)
|
|
20114
|
+
}, null, 8, _hoisted_2$7);
|
|
20115
|
+
}), 128)) : createCommentVNode("", true), unref(modelValue).length > props.maxPreview && (unref(isReadonly) || unref(isDisabled)) ? (openBlock(), createBlock(_component_van_icon, {
|
|
20116
|
+
key: 3,
|
|
20117
|
+
name: "ellipsis",
|
|
20118
|
+
onClick: onToggleMore
|
|
20119
|
+
})) : createCommentVNode("", true)])]),
|
|
18741
20120
|
_: 1
|
|
18742
20121
|
}, 8, ["label", "required", "rules", "placeholder"]);
|
|
18743
20122
|
};
|
|
18744
20123
|
}
|
|
18745
20124
|
};
|
|
18746
|
-
var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-
|
|
18747
|
-
var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
20125
|
+
var ImagesPicker = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-99388278"]]);
|
|
20126
|
+
var FilePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-728fd5b5] .label {\n color: #000 !important;\n}\n[data-v-728fd5b5] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
18748
20127
|
const _hoisted_1$b = {
|
|
18749
20128
|
class: "file-box"
|
|
18750
20129
|
};
|
|
@@ -18803,6 +20182,12 @@ const _sfc_main$h = {
|
|
|
18803
20182
|
const files = ref([]);
|
|
18804
20183
|
onMounted(() => {
|
|
18805
20184
|
});
|
|
20185
|
+
const onClickPreview = (e) => {
|
|
20186
|
+
let url = e.url || "";
|
|
20187
|
+
if (url.includes(".jpg") || url.includes(".png") || url.includes(".jpeg"))
|
|
20188
|
+
return;
|
|
20189
|
+
window.location.href = e.url;
|
|
20190
|
+
};
|
|
18806
20191
|
const onAfterRead = (file) => __async(this, null, function* () {
|
|
18807
20192
|
console.log(file);
|
|
18808
20193
|
let params = {
|
|
@@ -18871,15 +20256,16 @@ const _sfc_main$h = {
|
|
|
18871
20256
|
accept: props.accept,
|
|
18872
20257
|
"upload-icon": "plus",
|
|
18873
20258
|
deletable: !unref(isDisabled),
|
|
18874
|
-
"before-delete": onBeforeDelete
|
|
20259
|
+
"before-delete": onBeforeDelete,
|
|
20260
|
+
onClickPreview
|
|
18875
20261
|
}, null, 8, ["modelValue", "max-count", "disabled", "accept", "deletable"])])]),
|
|
18876
20262
|
_: 1
|
|
18877
20263
|
}, 8, ["label", "required", "rules", "placeholder"])) : createCommentVNode("", true);
|
|
18878
20264
|
};
|
|
18879
20265
|
}
|
|
18880
20266
|
};
|
|
18881
|
-
var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-
|
|
18882
|
-
var SingleUserSelector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-
|
|
20267
|
+
var FilePicker = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-728fd5b5"]]);
|
|
20268
|
+
var SingleUserSelector_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-03b9c3fe] {\n width: 100%;\n overflow: hidden;\n}\n.department-selector[data-v-03b9c3fe] {\n padding: 10px;\n}\n.search-buttons[data-v-03b9c3fe] {\n display: flex;\n gap: 10px;\n}\n.clear-btn[data-v-03b9c3fe] {\n background-color: #f2f3f5;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.confirm-btn[data-v-03b9c3fe] {\n background-color: #1989fa;\n color: white;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.no-results[data-v-03b9c3fe] {\n text-align: center;\n padding: 20px;\n color: #969799;\n}\n.picker-header[data-v-03b9c3fe] {\n padding: 10px;\n border-bottom: 1px solid #ebedf0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.current-path[data-v-03b9c3fe] {\n flex: 1;\n font-size: 14px;\n color: #323233;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.header-right[data-v-03b9c3fe] {\n display: flex;\n gap: 8px;\n margin-left: auto;\n}\n.cancel-btn[data-v-03b9c3fe] {\n color: #969799;\n margin-right: 5px;\n}\n.scroll-container[data-v-03b9c3fe] {\n height: calc(80vh - 150px);\n overflow-y: auto;\n}\n")();
|
|
18883
20269
|
const _hoisted_1$a = {
|
|
18884
20270
|
class: "department-selector"
|
|
18885
20271
|
};
|
|
@@ -19234,8 +20620,8 @@ const _sfc_main$g = {
|
|
|
19234
20620
|
};
|
|
19235
20621
|
}
|
|
19236
20622
|
};
|
|
19237
|
-
var SingleUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-
|
|
19238
|
-
var UserPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-
|
|
20623
|
+
var SingleUserSelector = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-03b9c3fe"]]);
|
|
20624
|
+
var UserPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-popup[data-v-416c0914] {\n width: 100%;\n overflow: hidden;\n}\n.department-selector[data-v-416c0914] {\n padding: 10px;\n}\n.search-buttons[data-v-416c0914] {\n display: flex;\n gap: 10px;\n}\n.clear-btn[data-v-416c0914] {\n background-color: #f2f3f5;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.confirm-btn[data-v-416c0914] {\n background-color: #1989fa;\n color: white;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.no-results[data-v-416c0914] {\n text-align: center;\n padding: 20px;\n color: #969799;\n}\n.picker-header[data-v-416c0914] {\n padding: 10px;\n border-bottom: 1px solid #ebedf0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.current-path[data-v-416c0914] {\n flex: 1;\n font-size: 14px;\n color: #323233;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.header-right[data-v-416c0914] {\n display: flex;\n gap: 8px;\n margin-left: auto;\n}\n.cancel-btn[data-v-416c0914] {\n color: #969799;\n margin-right: 5px;\n}\n.scroll-container[data-v-416c0914] {\n height: calc(80vh - 150px);\n overflow-y: auto;\n}\n")();
|
|
19239
20625
|
const _hoisted_1$9 = {
|
|
19240
20626
|
class: "department-selector"
|
|
19241
20627
|
};
|
|
@@ -19506,8 +20892,8 @@ const _sfc_main$f = {
|
|
|
19506
20892
|
};
|
|
19507
20893
|
}
|
|
19508
20894
|
};
|
|
19509
|
-
var UserPop = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-
|
|
19510
|
-
var UsersPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-item[data-v-
|
|
20895
|
+
var UserPop = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-416c0914"]]);
|
|
20896
|
+
var UsersPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user-item[data-v-5378e174]{\n margin:3px;\n}\n")();
|
|
19511
20897
|
const _hoisted_1$8 = {
|
|
19512
20898
|
class: "user-list"
|
|
19513
20899
|
};
|
|
@@ -19633,8 +21019,8 @@ const _sfc_main$e = {
|
|
|
19633
21019
|
};
|
|
19634
21020
|
}
|
|
19635
21021
|
};
|
|
19636
|
-
var UsersPicker = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-
|
|
19637
|
-
var UserPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user[data-v-
|
|
21022
|
+
var UsersPicker = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-5378e174"]]);
|
|
21023
|
+
var UserPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.user[data-v-015e01f2]{\n padding:4px 8px;\n}\n")();
|
|
19638
21024
|
const _sfc_main$d = {
|
|
19639
21025
|
__name: "UserPicker",
|
|
19640
21026
|
props: {
|
|
@@ -19749,8 +21135,8 @@ const _sfc_main$d = {
|
|
|
19749
21135
|
};
|
|
19750
21136
|
}
|
|
19751
21137
|
};
|
|
19752
|
-
var UserPicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-
|
|
19753
|
-
var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-
|
|
21138
|
+
var UserPicker = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-015e01f2"]]);
|
|
21139
|
+
var UserProfile_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.widget[data-v-b574b008] {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-around;\n padding: 20px;\n background: linear-gradient(to right, #4a90e2, #87ceeb);\n border-radius: 10px;\n box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);\n.user-avatar[data-v-b574b008] {\n margin-bottom: 15px;\n}\n.user-info[data-v-b574b008] {\n display: flex;\n align-items: center;\n justify-content: space-around;\n margin-bottom: 15px;\n.user-info-item[data-v-b574b008] {\n font-size: 16px;\n line-height: 22px;\n color: #fff;\n text-align: center;\n padding: 0 3px;\n}\n}\n.space[data-v-b574b008] {\n min-height: 10px;\n flex: 1;\n}\n\n /* \u6DFB\u52A0\u9000\u51FA\u6309\u94AE\u6837\u5F0F */\n.logout-button[data-v-b574b008] {\n width: 70px;\n height: 30px;\n position: absolute;\n top: 20px;\n right: 20px;\n background-color: rgba(255, 255, 255, 0.2);\n color: white;\n border: none;\n border-radius: 15px;\n padding: 5px 15px;\n cursor: pointer;\n font-size: 14px;\n transition: background-color 0.3s;\n}\n.logout-button[data-v-b574b008]:hover {\n background-color: rgba(255, 255, 255, 0.4);\n}\n.user-jobs[data-v-b574b008] {\n display: flex;\n justify-content: center;\n gap: 15px;\n width: 100%;\n max-width: 300px;\n.job-item[data-v-b574b008] {\n padding: 5px 10px;\n background-color: rgba(255, 255, 255, 0.2);\n border-radius: 20px;\n font-size: 12px;\n color: #fff;\n}\n}\n}\n")();
|
|
19754
21140
|
const _hoisted_1$7 = {
|
|
19755
21141
|
class: "widget"
|
|
19756
21142
|
};
|
|
@@ -19829,8 +21215,8 @@ const _sfc_main$c = {
|
|
|
19829
21215
|
};
|
|
19830
21216
|
}
|
|
19831
21217
|
};
|
|
19832
|
-
var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-
|
|
19833
|
-
var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-
|
|
21218
|
+
var UserProfile = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-b574b008"]]);
|
|
21219
|
+
var BillCard_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-05e3b99c] {\n background-color: white;\n border-radius: 8px;\n box-shadow: var(--van-dropdown-menu-shadow);\n color: 14px;\n}\n.widget .card-box[data-v-05e3b99c] {\n padding-bottom: 8px;\n}\n.widget .card-box .card-header[data-v-05e3b99c] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 15px 10px;\n border-bottom: 1px solid #eee;\n}\n.widget .card-box .card-header .card-sum[data-v-05e3b99c] {\n flex: 1;\n font-size: 14px;\n text-align: left;\n}\n.widget .card-box .card-header .user-state[data-v-05e3b99c] {\n margin-right: 1px;\n}\n[data-v-05e3b99c] .van-cell__value {\n flex: 2 !important;\n}\n[data-v-05e3b99c] .van-cell__title {\n font-size: 12px !important;\n color: #666 !important;\n text-align: left !important;\n}\n[data-v-05e3b99c] .van-cell__value {\n font-size: 12px !important;\n color: #888 !important;\n}\n[data-v-05e3b99c] .van-cell {\n padding: 2px 10px !important;\n}")();
|
|
19834
21220
|
const _hoisted_1$6 = {
|
|
19835
21221
|
class: "widget"
|
|
19836
21222
|
};
|
|
@@ -19960,7 +21346,7 @@ const _sfc_main$b = {
|
|
|
19960
21346
|
};
|
|
19961
21347
|
}
|
|
19962
21348
|
};
|
|
19963
|
-
var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-
|
|
21349
|
+
var BillCard = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-05e3b99c"]]);
|
|
19964
21350
|
const _sfc_main$a = {
|
|
19965
21351
|
__name: "YearDropdown",
|
|
19966
21352
|
props: {
|
|
@@ -20128,7 +21514,7 @@ const _sfc_main$8 = {
|
|
|
20128
21514
|
};
|
|
20129
21515
|
}
|
|
20130
21516
|
};
|
|
20131
|
-
var Switch_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-
|
|
21517
|
+
var Switch_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "[data-v-71b140b3] .label {\n color: #000 !important;\n}\n[data-v-71b140b3] .van-field__control:disabled {\n color: #000 !important;\n cursor: not-allowed;\n opacity: 1;\n -webkit-text-fill-color: #000;\n}")();
|
|
20132
21518
|
const _sfc_main$7 = {
|
|
20133
21519
|
__name: "Switch",
|
|
20134
21520
|
props: {
|
|
@@ -20197,8 +21583,8 @@ const _sfc_main$7 = {
|
|
|
20197
21583
|
};
|
|
20198
21584
|
}
|
|
20199
21585
|
};
|
|
20200
|
-
var Switch = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-
|
|
20201
|
-
var Sheet_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".item-box[data-v-
|
|
21586
|
+
var Switch = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-71b140b3"]]);
|
|
21587
|
+
var Sheet_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".item-box[data-v-4eaf7b54] {\n position: relative;\n padding-bottom: 5px;\n border-bottom: 1px solid #e1e1e1;\n}\n.actionbar[data-v-4eaf7b54] {\n display: flex;\n justify-content: center;\n margin-top: 5px;\n}\n[data-v-4eaf7b54] .label {\n color: #000 !important;\n}\n[data-v-4eaf7b54] .van-field__control--custom {\n display: block;\n}")();
|
|
20202
21588
|
const _hoisted_1$5 = {
|
|
20203
21589
|
key: 0,
|
|
20204
21590
|
class: "actionbar"
|
|
@@ -20300,8 +21686,8 @@ const _sfc_main$6 = {
|
|
|
20300
21686
|
};
|
|
20301
21687
|
}
|
|
20302
21688
|
};
|
|
20303
|
-
var Sheet = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-
|
|
20304
|
-
var TreePop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-box[data-v-
|
|
21689
|
+
var Sheet = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-4eaf7b54"]]);
|
|
21690
|
+
var TreePop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.popup-box[data-v-2e9ed6fc] {\n min-height: 20vh;\n max-height: 40vh;\n overflow-y: auto;\n.checkbox-list[data-v-2e9ed6fc] {\n padding: 15px 25px;\n[data-v-2e9ed6fc] .van-checkbox__label {\n flex: 1;\n text-align: right;\n}\n}\n}\n.select-all-container[data-v-2e9ed6fc] {\n font-size: 14px;\n padding: 15px 25px 0 15px;\n margin: 10px 0;\n display: flex;\n justify-content: flex-end;\n align-items: center;\n}\n.select-all-container .van-checkbox[data-v-2e9ed6fc] {\n margin-left: auto;\n}\n\n/* \u65B0\u589E\uFF1A\u8C03\u6574\u65B9\u5F62\u590D\u9009\u6846\u7684\u8FB9\u8DDD */\n.van-checkbox--square[data-v-2e9ed6fc] {\n margin-left: 8px;\n}\n")();
|
|
20305
21691
|
const _sfc_main$5 = {
|
|
20306
21692
|
__name: "TreePop",
|
|
20307
21693
|
props: {
|
|
@@ -20351,8 +21737,8 @@ const _sfc_main$5 = {
|
|
|
20351
21737
|
};
|
|
20352
21738
|
}
|
|
20353
21739
|
};
|
|
20354
|
-
var TreePop = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-
|
|
20355
|
-
var TreePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.select-item[data-v-
|
|
21740
|
+
var TreePop = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-2e9ed6fc"]]);
|
|
21741
|
+
var TreePicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.select-item[data-v-3fa519af]{\n margin:3px;\n}\n")();
|
|
20356
21742
|
const _hoisted_1$4 = {
|
|
20357
21743
|
class: "select-list"
|
|
20358
21744
|
};
|
|
@@ -20474,8 +21860,8 @@ const _sfc_main$4 = {
|
|
|
20474
21860
|
};
|
|
20475
21861
|
}
|
|
20476
21862
|
};
|
|
20477
|
-
var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-
|
|
20478
|
-
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-
|
|
21863
|
+
var TreePicker = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-3fa519af"]]);
|
|
21864
|
+
var CascaderPop_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => "\n.cascader-pop[data-v-005c3cf4] {\n width: 100%;\n overflow: hidden;\n}\n.cascader-selector[data-v-005c3cf4] {\n padding: 10px;\n}\n.search-buttons[data-v-005c3cf4] {\n display: flex;\n gap: 10px;\n}\n.clear-btn[data-v-005c3cf4] {\n background-color: #f2f3f5;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.confirm-btn[data-v-005c3cf4] {\n background-color: #1989fa;\n color: white;\n border: none;\n border-radius: 4px;\n padding: 4px 8px;\n font-size: 14px;\n}\n.no-results[data-v-005c3cf4] {\n text-align: center;\n padding: 20px;\n color: #969799;\n}\n.cascader-header[data-v-005c3cf4] {\n padding: 10px;\n border-bottom: 1px solid #ebedf0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.current-path[data-v-005c3cf4] {\n flex: 1;\n font-size: 14px;\n color: #323233;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.header-right[data-v-005c3cf4] {\n display: flex;\n gap: 8px;\n margin-left: auto;\n}\n.cancel-btn[data-v-005c3cf4] {\n color: #969799;\n margin-right: 5px;\n}\n.scroll-container[data-v-005c3cf4] {\n height: calc(80vh - 150px);\n overflow-y: auto;\n}\n.cell-content[data-v-005c3cf4] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.circle-selector[data-v-005c3cf4] {\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n flex-shrink: 0;\n}\n.circle-selector.selected[data-v-005c3cf4] {\n background-color: #1989fa;\n border-color: #1989fa;\n}\n.circle-selector.selected .van-icon[data-v-005c3cf4] {\n color: white;\n font-size: 14px;\n}\n.van-cell__right-icon[data-v-005c3cf4] {\n color: #969799;\n font-size: 16px;\n margin-left: 8px;\n}\n.name[data-v-005c3cf4] {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.cancel-btn[data-v-005c3cf4] {\n color: #969799;\n}\n.search-field[data-v-005c3cf4] {\n background: #fff;\n padding: 10px 16px;\n border-bottom: 1px solid #ebedf0;\n position: sticky;\n top: 0;\n z-index: 999;\n margin-bottom: 10px;\n flex-shrink: 0;\n /* \u9632\u6B62\u538B\u7F29 */\n}\n")();
|
|
20479
21865
|
const _hoisted_1$3 = {
|
|
20480
21866
|
class: "cascader-selector"
|
|
20481
21867
|
};
|
|
@@ -20747,7 +22133,7 @@ const _sfc_main$3 = {
|
|
|
20747
22133
|
};
|
|
20748
22134
|
}
|
|
20749
22135
|
};
|
|
20750
|
-
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-
|
|
22136
|
+
var CascaderPop = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-005c3cf4"]]);
|
|
20751
22137
|
const _hoisted_1$2 = {
|
|
20752
22138
|
style: {
|
|
20753
22139
|
"display": "flex",
|
|
@@ -20921,7 +22307,7 @@ const _sfc_main$2 = {
|
|
|
20921
22307
|
};
|
|
20922
22308
|
}
|
|
20923
22309
|
};
|
|
20924
|
-
var SingleApiPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => '@charset "UTF-8";\n.widget[data-v-
|
|
22310
|
+
var SingleApiPicker_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => '@charset "UTF-8";\n.widget[data-v-7cd48f9e] {\n /* \u7EDF\u4E00\u5B57\u6BB5\u95F4\u8DDD */\n}\n.widget[data-v-7cd48f9e] .van-cell {\n align-items: center;\n}\n.widget[data-v-7cd48f9e] .van-field__label {\n width: 90px;\n flex: none;\n}\n.widget .readonly-field[data-v-7cd48f9e] {\n /* \u6DFB\u52A0\u5FC5\u586B\u661F\u53F7\u5BF9\u9F50 */\n}\n.widget .readonly-field[data-v-7cd48f9e] .van-field__control {\n color: #323233;\n /* \u4FEE\u6539\u6587\u5B57\u989C\u8272\u4E0E\u666E\u901A\u5B57\u6BB5\u4E00\u81F4 */\n padding-right: 16px;\n}\n.widget .readonly-field.van-field--required[data-v-7cd48f9e] .van-field__label::before {\n margin-right: 4px;\n}\n.widget .readonly-field[data-v-7cd48f9e] {\n margin: 4px 0;\n}')();
|
|
20925
22311
|
const _hoisted_1$1 = {
|
|
20926
22312
|
class: "widget"
|
|
20927
22313
|
};
|
|
@@ -21023,8 +22409,8 @@ const _sfc_main$1 = {
|
|
|
21023
22409
|
};
|
|
21024
22410
|
}
|
|
21025
22411
|
};
|
|
21026
|
-
var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-
|
|
21027
|
-
var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-
|
|
22412
|
+
var SingleApiPicker = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-7cd48f9e"]]);
|
|
22413
|
+
var ObjsEditor_vue_vue_type_style_index_0_scoped_true_lang = /* @__PURE__ */ (() => ".widget[data-v-d3252972] {\n background: #fff;\n box-sizing: border-box;\n height: 100%;\n text-align: left;\n font-size: 12px;\n}\n.option[data-v-d3252972] {\n margin: 0 8px 8px 0;\n padding: 5px 10px;\n border-radius: 6px;\n border: 2px solid #e1e1e1;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);\n color: #666;\n display: inline-block;\n position: relative;\n}\n[data-v-d3252972] .van-field__label {\n margin: auto;\n}\n[data-v-d3252972] .van-cell {\n font-size: 12px;\n padding: 5px 5px;\n}\n[data-v-d3252972] .van-icon {\n font-size: 12px;\n}\n[data-v-d3252972] .van-popup .van-cell {\n padding: 5px 25px;\n}")();
|
|
21028
22414
|
const _hoisted_1 = {
|
|
21029
22415
|
class: "widget-box"
|
|
21030
22416
|
};
|
|
@@ -21380,7 +22766,7 @@ const _sfc_main = {
|
|
|
21380
22766
|
};
|
|
21381
22767
|
}
|
|
21382
22768
|
};
|
|
21383
|
-
var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
22769
|
+
var ObjsEditor = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-d3252972"]]);
|
|
21384
22770
|
const secret_notify = () => {
|
|
21385
22771
|
showNotify({ type: "danger", message: "\u4E25\u683C\u6267\u884C\u4FE1\u606F\u4FDD\u5BC6\u8981\u6C42\uFF0C\u5207\u5B9E\u9632\u8303\u4F01\u4E1A\u6CC4\u5BC6\u98CE\u9669", duration: 3e3 });
|
|
21386
22772
|
};
|