@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
1,204 lines (1,181 loc) • 2.59 MB
JavaScript
/*! fm-dev v1.0.34 */
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('element-plus'), require('crypto'), require('url'), require('http'), require('https'), require('util'), require('stream'), require('assert'), require('zlib')) :
typeof define === 'function' && define.amd ? define(['exports', 'vue', 'element-plus', 'crypto', 'url', 'http', 'https', 'util', 'stream', 'assert', 'zlib'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FmPlus = {}, global.Vue, global.ElementPlus, global.crypto$1, global.require$$0, global.require$$1, global.require$$2, global.util, global.stream, global.require$$4, global.zlib));
})(this, (function (exports, vue, elementPlus, crypto$1, require$$0, require$$1, require$$2, util, stream, require$$4, zlib) { 'use strict';
const _hoisted_1$s = { class: "fm-transfer-panel" };
const _hoisted_2$j = { class: "fm-transfer-panel__header" };
const _hoisted_3$c = { class: "fm-transfer-panel__body" };
const _hoisted_4$8 = { class: "fm-transfer-buttons__item" };
const _hoisted_5$6 = { class: "fm-transfer-buttons__item" };
const _hoisted_6$5 = { class: "fm-transfer-buttons__item" };
const _hoisted_7$5 = { class: "fm-transfer-buttons__item" };
const _hoisted_8$4 = { class: "fm-transfer-panel" };
const _hoisted_9$4 = { class: "fm-transfer-panel__header" };
const _hoisted_10$4 = { class: "fm-transfer-panel__body" };
var _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
...{
name: "FmTransfer"
},
__name: "index",
props: {
leftTitle: String,
rightTitle: String,
options: {
type: Object,
default: () => ({
value: "id",
label: "name",
disabled: "disabled"
})
},
leftData: { type: Array, default: () => [] },
// 左边全部数据
rightData: { type: Array, default: () => [] }
// 右边全部数据
},
emits: ["left", "right", "allLeft", "allRight", "update:leftData", "update:rightData"],
setup(__props, { emit: __emit }) {
const props = __props;
const emits = __emit;
const state = vue.reactive({
leftAllChecked: false,
// 左边是否全选
leftKeyword: "",
// 左边搜索关键词
leftChecked: [],
// 左边选中数据
rightAllChecked: false,
// 右边是否全选
rightKeyword: "",
// 右边搜索关键词
rightChecked: []
// 右边选中数据
});
const leftFilterData = vue.computed(() => {
let result = props.leftData.filter((e) => e[props.options.label].toLowerCase().includes(state.leftKeyword.toLowerCase()));
if (state.leftChecked.length > 0) {
for (let i = state.leftChecked.length - 1; i >= 0; i--) {
const index = result.findIndex((e) => e[props.options.value] == state.leftChecked[i]);
if (index == -1) state.leftChecked.splice(i, 1);
}
}
return result;
});
const handleLeftAllChecked = (value) => {
state.leftChecked = value ? leftFilterData.value.filter((e) => e[props.options.disabled] == false).map((e) => e[props.options.value]) : [];
};
const leftIndeterminate = vue.computed(() => {
const checkedLength = state.leftChecked.length;
const result = checkedLength > 0 && checkedLength < leftFilterData.value.filter((e) => e[props.options.disabled] == false).length;
return result;
});
vue.watch(
() => state.leftChecked,
(val) => {
state.leftAllChecked = val.length > 0 && val.length == leftFilterData.value.filter((e) => e[props.options.disabled] == false).length;
}
);
const rightFilterData = vue.computed(() => {
let result = props.rightData.filter((e) => e[props.options.label].toLowerCase().includes(state.rightKeyword.toLowerCase()));
if (state.rightChecked.length > 0) {
for (let i = state.rightChecked.length - 1; i >= 0; i--) {
const index = result.findIndex((e) => e[props.options.value] == state.rightChecked[i]);
if (index == -1) state.rightChecked.splice(i, 1);
}
}
return result;
});
const handleRightAllChecked = (value) => {
state.rightChecked = value ? rightFilterData.value.filter((e) => e[props.options.disabled] == false).map((e) => e[props.options.value]) : [];
};
const rightIndeterminate = vue.computed(() => {
const checkedLength = state.rightChecked.length;
const result = checkedLength > 0 && checkedLength < rightFilterData.value.filter((e) => e[props.options.disabled] == false).length;
return result;
});
vue.watch(
() => state.rightChecked,
(val) => {
state.rightAllChecked = val.length > 0 && val.length == rightFilterData.value.filter((e) => e[props.options.disabled] == false).length;
}
);
const dbClickToRight = (item) => {
if (item[props.options.value] && item[props.options.disabled] === false) {
let adds = props.leftData.filter((e) => item[props.options.value] == e[props.options.value]);
let cuts = props.leftData.filter((e) => item[props.options.value] != e[props.options.value]);
emits("update:leftData", cuts);
emits("update:rightData", props.rightData.concat(adds));
emits("right");
state.leftChecked = state.leftChecked.filter((e) => item[props.options.value] != e);
}
};
const toRight = () => {
if (state.leftChecked?.length > 0) {
let adds = props.leftData.filter((e) => state.leftChecked.some((x) => x == e[props.options.value]));
let cuts = props.leftData.filter((e) => state.leftChecked.every((x) => x != e[props.options.value]));
emits("update:leftData", cuts);
emits("update:rightData", props.rightData.concat(adds));
emits("right");
state.leftChecked = [];
}
};
const allToRight = () => {
if (leftFilterData.value?.length > 0) {
let temp = leftFilterData.value.filter((e) => e[props.options.disabled] == false);
let adds = props.leftData.filter((e) => temp.some((x) => x[props.options.value] == e[props.options.value]));
let cuts = props.leftData.filter((e) => temp.every((x) => x[props.options.value] != e[props.options.value]));
emits("update:leftData", cuts);
emits("update:rightData", props.rightData.concat(adds));
emits("allRight");
state.leftChecked = [];
}
};
const dbClickToLeft = (item) => {
if (item[props.options.value] && item[props.options.disabled] === false) {
let adds = props.rightData.filter((e) => item[props.options.value] == e[props.options.value]);
let cuts = props.rightData.filter((e) => item[props.options.value] != e[props.options.value]);
emits("update:leftData", props.leftData.concat(adds));
emits("update:rightData", cuts);
emits("left");
state.rightChecked = state.rightChecked.filter((e) => item[props.options.value] != e);
}
};
const toLeft = () => {
if (state.rightChecked?.length > 0) {
let adds = props.rightData.filter((e) => state.rightChecked.some((x) => x == e[props.options.value]));
let cuts = props.rightData.filter((e) => state.rightChecked.every((x) => x != e[props.options.value]));
emits("update:leftData", props.leftData.concat(adds));
emits("update:rightData", cuts);
emits("left");
state.rightChecked = [];
}
};
const allToLeft = () => {
if (rightFilterData.value?.length > 0) {
let temp = rightFilterData.value.filter((e) => e[props.options.disabled] == false);
let adds = props.rightData.filter((e) => temp.some((x) => x[props.options.value] == e[props.options.value]));
let cuts = props.rightData.filter((e) => temp.every((x) => x[props.options.value] != e[props.options.value]));
emits("update:leftData", props.leftData.concat(adds));
emits("update:rightData", cuts);
emits("allLeft");
state.rightChecked = [];
}
};
return (_ctx, _cache) => {
const _component_el_checkbox = vue.resolveComponent("el-checkbox");
const _component_el_input = vue.resolveComponent("el-input");
const _component_el_checkbox_group = vue.resolveComponent("el-checkbox-group");
const _component_el_col = vue.resolveComponent("el-col");
const _component_el_button = vue.resolveComponent("el-button");
const _component_el_row = vue.resolveComponent("el-row");
return vue.openBlock(), vue.createBlock(_component_el_row, { gutter: 10 }, {
default: vue.withCtx(() => [
vue.createVNode(_component_el_col, { span: 10 }, {
default: vue.withCtx(() => [
vue.createElementVNode("div", _hoisted_1$s, [
vue.createElementVNode("p", _hoisted_2$j, [
vue.createVNode(_component_el_checkbox, {
modelValue: state.leftAllChecked,
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.leftAllChecked = $event),
indeterminate: leftIndeterminate.value,
"validate-event": false,
onChange: handleLeftAllChecked
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(props.leftTitle),
1
/* TEXT */
)
]),
_: 1
/* STABLE */
}, 8, ["modelValue", "indeterminate"]),
vue.createElementVNode(
"span",
null,
vue.toDisplayString(state.leftChecked.length) + "/" + vue.toDisplayString(props.leftData.length),
1
/* TEXT */
)
]),
vue.createElementVNode("div", _hoisted_3$c, [
vue.createVNode(_component_el_input, {
class: "transfer-panel__filter",
modelValue: state.leftKeyword,
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.leftKeyword = $event),
placeholder: "\u641C\u7D22",
"prefix-icon": "ele-Search",
clearable: "",
"validate-event": false
}, null, 8, ["modelValue"]),
vue.withDirectives(vue.createVNode(_component_el_checkbox_group, {
modelValue: state.leftChecked,
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => state.leftChecked = $event),
"validate-event": false,
class: "fm-transfer-panel__list"
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(leftFilterData.value, (item, index) => {
return vue.openBlock(), vue.createBlock(_component_el_checkbox, {
key: index,
value: item[props.options.value],
label: item[props.options.label],
disabled: item[props.options.disabled],
"validate-event": false,
class: "fm-transfer-panel__item",
onDblclick: ($event) => dbClickToRight(item)
}, null, 8, ["value", "label", "disabled", "onDblclick"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["modelValue"]), [
[vue.vShow, true]
])
])
])
]),
_: 1
/* STABLE */
}),
vue.createVNode(_component_el_col, {
span: 4,
class: "fm-transfer-buttons"
}, {
default: vue.withCtx(() => [
vue.createElementVNode("div", _hoisted_4$8, [
vue.createVNode(_component_el_button, {
type: "primary",
style: {},
icon: "ele-ArrowRight",
onClick: toRight
})
]),
vue.createElementVNode("div", _hoisted_5$6, [
vue.createVNode(_component_el_button, {
type: "primary",
style: {},
icon: "ele-ArrowLeft",
onClick: toLeft
})
]),
vue.createElementVNode("div", _hoisted_6$5, [
vue.createVNode(_component_el_button, {
type: "primary",
style: {},
icon: "ele-DArrowRight",
onClick: allToRight
})
]),
vue.createElementVNode("div", _hoisted_7$5, [
vue.createVNode(_component_el_button, {
type: "primary",
style: {},
icon: "ele-DArrowLeft",
onClick: allToLeft
})
])
]),
_: 1
/* STABLE */
}),
vue.createVNode(_component_el_col, { span: 10 }, {
default: vue.withCtx(() => [
vue.createElementVNode("div", _hoisted_8$4, [
vue.createElementVNode("p", _hoisted_9$4, [
vue.createVNode(_component_el_checkbox, {
modelValue: state.rightAllChecked,
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => state.rightAllChecked = $event),
indeterminate: rightIndeterminate.value,
"validate-event": false,
onChange: handleRightAllChecked
}, {
default: vue.withCtx(() => [
vue.createTextVNode(
vue.toDisplayString(props.rightTitle),
1
/* TEXT */
)
]),
_: 1
/* STABLE */
}, 8, ["modelValue", "indeterminate"]),
vue.createElementVNode(
"span",
null,
vue.toDisplayString(state.rightChecked.length) + "/" + vue.toDisplayString(props.rightData.length),
1
/* TEXT */
)
]),
vue.createElementVNode("div", _hoisted_10$4, [
vue.createVNode(_component_el_input, {
class: "transfer-panel__filter",
modelValue: state.rightKeyword,
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => state.rightKeyword = $event),
placeholder: "\u641C\u7D22",
"prefix-icon": "ele-Search",
clearable: "",
"validate-event": false
}, null, 8, ["modelValue"]),
vue.withDirectives(vue.createVNode(_component_el_checkbox_group, {
modelValue: state.rightChecked,
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => state.rightChecked = $event),
"validate-event": false,
class: "fm-transfer-panel__list"
}, {
default: vue.withCtx(() => [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList(rightFilterData.value, (item, index) => {
return vue.openBlock(), vue.createBlock(_component_el_checkbox, {
key: index,
value: item[props.options.value],
label: item[props.options.label],
disabled: item[props.options.disabled],
"validate-event": false,
class: "fm-transfer-panel__item",
onDblclick: ($event) => dbClickToLeft(item)
}, null, 8, ["value", "label", "disabled", "onDblclick"]);
}),
128
/* KEYED_FRAGMENT */
))
]),
_: 1
/* STABLE */
}, 8, ["modelValue"]), [
[vue.vShow, true]
])
])
])
]),
_: 1
/* STABLE */
})
]),
_: 1
/* STABLE */
});
};
}
});
const _hoisted_1$r = { class: "notice-bar-warp-text-box" };
const _hoisted_2$i = ["innerHTML"];
var _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
...{
name: "FmNoticeBar"
},
__name: "index",
props: {
mode: { type: String, default: "" },
// 通知栏模式,可选值为 closeable link
text: { type: String, default: "" },
// 通知文本内容
color: { type: String, default: "var(--el-color-warning)" },
// 通知文本颜色
background: { type: String, default: "var(--el-color-warning-light-9)" },
// 通知背景色
size: { type: [Number, String], default: 14 },
// 字体大小,单位px
height: { type: Number, default: 40 },
// 通知栏高度,单位px
delay: { type: Number, default: 1 },
// 动画延迟时间 (s)
speed: { type: Number, default: 100 },
// 滚动速率 (px/s)
scrollable: { type: Boolean, default: false },
// 是否开启垂直滚动
leftIcon: { type: String, default: "iconfont icon-tongzhi2" },
// 自定义左侧图标
rightIcon: { type: String, default: "" }
// 自定义右侧图标
},
emits: ["close", "link"],
setup(__props, { emit: __emit }) {
const props = __props;
const noticeBarWarpRef = vue.ref(null);
const noticeBarTextRef = vue.ref(null);
const state = vue.reactive({
isMode: false,
warpOWidth: 0,
textOWidth: 0,
animationDuration: 0
});
vue.onMounted(async () => {
if (!props.scrollable) initAnimation();
});
const initAnimation = () => {
vue.nextTick(() => {
if (noticeBarWarpRef.value && noticeBarTextRef.value) {
state.warpOWidth = noticeBarWarpRef.value.offsetWidth;
state.textOWidth = noticeBarTextRef.value.scrollWidth;
state.animationDuration = (state.textOWidth + state.warpOWidth) / props.speed;
noticeBarTextRef.value.style.animation = "none";
noticeBarTextRef.value.offsetHeight;
noticeBarTextRef.value.style.animation = `marquee ${state.animationDuration}s linear infinite`;
const keyframes = `
@keyframes marquee {
0% { transform: translateX(${state.warpOWidth}px); }
100% { transform: translateX(-${state.textOWidth}px); }
}
`;
const styleSheet = document.createElement("style");
styleSheet.innerText = keyframes;
document.head.appendChild(styleSheet);
}
});
};
return (_ctx, _cache) => {
return vue.withDirectives((vue.openBlock(), vue.createElementBlock(
"div",
{
class: "fm-notice-bar",
style: vue.normalizeStyle({ background: __props.background, height: `${__props.height}px` })
},
[
vue.createElementVNode(
"div",
{
class: "notice-bar-warp",
style: vue.normalizeStyle({ color: __props.color, fontSize: `${__props.size}px` }),
ref_key: "noticeBarWarpRef",
ref: noticeBarWarpRef
},
[
__props.leftIcon ? (vue.openBlock(), vue.createElementBlock(
"i",
{
key: 0,
class: vue.normalizeClass(["notice-bar-warp-left-icon", __props.leftIcon])
},
null,
2
/* CLASS */
)) : vue.createCommentVNode("v-if", true),
vue.createElementVNode("div", _hoisted_1$r, [
vue.createElementVNode(
"div",
{
class: "notice-bar-warp-text",
ref_key: "noticeBarTextRef",
ref: noticeBarTextRef
},
[
vue.createElementVNode("div", {
innerHTML: props.text,
"data-slate-editor": ""
}, null, 8, _hoisted_2$i)
],
512
/* NEED_PATCH */
)
])
],
4
/* STYLE */
)
],
4
/* STYLE */
)), [
[vue.vShow, !state.isMode]
]);
};
}
});
var _sfc_main$x = {
name: "dragVerify",
props: {
isPassing: {
type: Boolean,
default: false
},
width: {
type: Number,
default: 250
},
height: {
type: Number,
default: 40
},
text: {
type: String,
default: "swiping to the right side"
},
successText: {
type: String,
default: "success"
},
background: {
type: String,
default: "#eee"
},
progressBarBg: {
type: String,
default: "#76c61d"
},
completedBg: {
type: String,
default: "#76c61d"
},
circle: {
type: Boolean,
default: false
},
radius: {
type: String,
default: "4px"
},
handlerIcon: {
type: String
},
successIcon: {
type: String
},
handlerBg: {
type: String,
default: "#fff"
},
textSize: {
type: String,
default: "14px"
},
textColor: {
type: String,
default: "#333"
},
imgsrc: {
type: String
},
showTips: {
type: Boolean,
default: true
},
successTip: {
type: String,
default: "\u9A8C\u8BC1\u901A\u8FC7"
},
failTip: {
type: String,
default: "\u9A8C\u8BC1\u5931\u8D25"
},
diffDegree: {
type: Number,
default: 10
},
minDegree: {
type: Number,
default: 90
},
maxDegree: {
type: Number,
default: 270
}
},
mounted: function() {
const dragEl = this.$refs.dragVerify;
dragEl.style.setProperty("--textColor", this.textColor);
dragEl.style.setProperty("--width", Math.floor(this.width / 2) + "px");
dragEl.style.setProperty("--pwidth", -Math.floor(this.width / 2) + "px");
},
computed: {
handlerStyle: function() {
return {
width: this.height + "px",
height: this.height + "px",
background: this.handlerBg
};
},
message: function() {
return this.isPassing ? "" : this.text;
},
successMessage: function() {
return this.isPassing ? this.successText : "";
},
dragVerifyStyle: function() {
return {
width: this.width + "px",
height: this.height + "px",
lineHeight: this.height + "px",
marginTop: "20px",
background: this.background,
borderRadius: this.circle ? this.height / 2 + "px" : this.radius
};
},
dragVerifyImgStyle: function() {
return {
width: this.width + "px",
height: this.width + "px",
position: "relative",
overflow: "hidden",
"border-radius": "50%"
};
},
progressBarStyle: function() {
return {
background: this.progressBarBg,
height: this.height + "px",
borderRadius: this.circle ? this.height / 2 + "px 0 0 " + this.height / 2 + "px" : this.radius
};
},
textStyle: function() {
return {
height: this.height + "px",
width: this.width + "px",
fontSize: this.textSize
};
},
factor: function() {
if (this.minDegree == this.maxDegree) {
return Math.floor(1 + Math.random() * 6) / 10 + 1;
}
return 1;
}
},
data() {
return {
isMoving: false,
x: 0,
isOk: false,
showBar: false,
showErrorTip: false,
ranRotate: 0,
cRotate: 0,
imgStyle: {}
};
},
methods: {
checkimgLoaded: function() {
var minDegree = this.minDegree;
var maxDegree = this.maxDegree;
var ranRotate = Math.floor(minDegree + Math.random() * (maxDegree - minDegree));
this.ranRotate = ranRotate;
this.imgStyle = {
transform: `rotateZ(${ranRotate}deg)`
};
},
dragStart: function(e) {
if (!this.isPassing) {
this.isMoving = true;
this.x = e.pageX || e.touches[0].pageX;
}
this.showBar = true;
this.showErrorTip = false;
this.$emit("handlerMove");
},
dragMoving: function(e) {
if (this.isMoving && !this.isPassing) {
var _x = (e.pageX || e.touches[0].pageX) - this.x;
var handler = this.$refs.handler;
handler.style.left = _x + "px";
var progressBar = this.$refs.progressBar;
progressBar.style.width = _x + this.height / 2 + "px";
var cRotate = Math.ceil(_x / (this.width - this.height) * this.maxDegree * this.factor);
this.cRotate = cRotate;
var rotate = this.ranRotate - cRotate;
this.imgStyle = {
transform: `rotateZ(${rotate}deg)`
};
}
},
dragFinish: function(e) {
if (this.isMoving && !this.isPassing) {
if (Math.abs(this.ranRotate - this.cRotate) > this.diffDegree) {
this.isOk = true;
this.imgStyle = {
transform: `rotateZ(${this.ranRotate}deg)`
};
var that = this;
setTimeout(function() {
var handler = that.$refs.handler;
var progressBar = that.$refs.progressBar;
handler.style.left = "0";
progressBar.style.width = "0";
that.isOk = false;
}, 500);
this.showErrorTip = true;
this.$emit("passfail");
} else {
this.passVerify();
}
this.isMoving = false;
}
},
passVerify: function() {
this.$emit("update:isPassing", true);
this.isMoving = false;
var handler = this.$refs.handler;
handler.children[0].className = this.successIcon;
this.$refs.progressBar.style.background = this.completedBg;
this.$refs.message.style["-webkit-text-fill-color"] = "unset";
this.$refs.message.style.animation = "slidetounlock2 3s infinite";
this.$refs.progressBar.style.color = "#fff";
this.$refs.progressBar.style.fontSize = this.textSize;
this.$emit("passcallback");
},
reset: function() {
this.reImg();
this.checkimgLoaded();
},
reImg: function() {
this.$emit("update:isPassing", false);
const oriData = this.$options.data();
for (const key in oriData) {
if (Object.prototype.hasOwnProperty.call(oriData, key)) {
this[key] = oriData[key];
}
}
var handler = this.$refs.handler;
var message = this.$refs.message;
handler.style.left = "0";
this.$refs.progressBar.style.width = "0";
handler.children[0].className = this.handlerIcon;
message.style["-webkit-text-fill-color"] = "transparent";
message.style.animation = "slidetounlock 3s infinite";
message.style.color = this.background;
},
refreshimg: function() {
this.$emit("refresh");
}
},
watch: {
imgsrc: {
immediate: false,
handler: function() {
this.reImg();
}
}
}
};
var _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _hoisted_1$q = { class: "drag-verify-container" };
const _hoisted_2$h = ["src"];
const _hoisted_3$b = {
key: 0,
class: "tips success"
};
const _hoisted_4$7 = {
key: 1,
class: "tips danger"
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
vue.createElementVNode(
"div",
{
style: vue.normalizeStyle([$options.dragVerifyImgStyle, { "background-color": "var(--el-color-primary)" }])
},
[
vue.createElementVNode("img", {
ref: "checkImg",
src: $props.imgsrc,
class: vue.normalizeClass(["check-img", { goOrigin: $data.isOk }]),
onLoad: _cache[0] || (_cache[0] = (...args) => $options.checkimgLoaded && $options.checkimgLoaded(...args)),
style: vue.normalizeStyle($data.imgStyle),
alt: ""
}, null, 46, _hoisted_2$h),
$props.showTips && $props.isPassing ? (vue.openBlock(), vue.createElementBlock(
"div",
_hoisted_3$b,
vue.toDisplayString($props.successTip),
1
/* TEXT */
)) : vue.createCommentVNode("v-if", true),
$props.showTips && !$props.isPassing && $data.showErrorTip ? (vue.openBlock(), vue.createElementBlock(
"div",
_hoisted_4$7,
vue.toDisplayString($props.failTip),
1
/* TEXT */
)) : vue.createCommentVNode("v-if", true)
],
4
/* STYLE */
),
vue.createElementVNode(
"div",
{
ref: "dragVerify",
class: "drag_verify",
style: vue.normalizeStyle($options.dragVerifyStyle),
onMousemove: _cache[3] || (_cache[3] = (...args) => $options.dragMoving && $options.dragMoving(...args)),
onMouseup: _cache[4] || (_cache[4] = (...args) => $options.dragFinish && $options.dragFinish(...args)),
onMouseleave: _cache[5] || (_cache[5] = (...args) => $options.dragFinish && $options.dragFinish(...args)),
onTouchmove: _cache[6] || (_cache[6] = vue.withModifiers((...args) => $options.dragMoving && $options.dragMoving(...args), ["prevent"])),
onTouchend: _cache[7] || (_cache[7] = vue.withModifiers((...args) => $options.dragFinish && $options.dragFinish(...args), ["prevent"]))
},
[
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(["dv_progress_bar", { goFirst2: $data.isOk }]),
ref: "progressBar",
style: vue.normalizeStyle($options.progressBarStyle)
},
vue.toDisplayString($options.successMessage),
7
/* TEXT, CLASS, STYLE */
),
vue.createElementVNode(
"div",
{
class: "dv_text",
style: vue.normalizeStyle($options.textStyle),
ref: "message"
},
vue.toDisplayString($options.message),
5
/* TEXT, STYLE */
),
vue.createElementVNode(
"div",
{
class: vue.normalizeClass(["dv_handler dv_handler_bg", { goFirst: $data.isOk }]),
onMousedown: _cache[1] || (_cache[1] = (...args) => $options.dragStart && $options.dragStart(...args)),
onTouchstart: _cache[2] || (_cache[2] = vue.withModifiers((...args) => $options.dragStart && $options.dragStart(...args), ["prevent"])),
ref: "handler",
style: vue.normalizeStyle([$options.handlerStyle, { "background-color": "var(--el-color-primary)" }])
},
[
vue.createElementVNode(
"i",
{
class: vue.normalizeClass($props.handlerIcon),
style: { "color": "#fff" }
},
null,
2
/* CLASS */
)
],
38
/* CLASS, STYLE, NEED_HYDRATION */
)
],
36
/* STYLE, NEED_HYDRATION */
)
]);
}
var dragimg = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render], ["__scopeId", "data-v-9e8c9ed2"]]);
/*! Element Plus Icons Vue v2.3.1 */
var add_location_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "AddLocation",
__name: "add-location",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M288 896h448q32 0 32 32t-32 32H288q-32 0-32-32t32-32"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M800 416a288 288 0 1 0-576 0c0 118.144 94.528 272.128 288 456.576C705.472 688.128 800 534.144 800 416M512 960C277.312 746.688 160 565.312 160 416a352 352 0 0 1 704 0c0 149.312-117.312 330.688-352 544"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M544 384h96a32 32 0 1 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64h96v-96a32 32 0 0 1 64 0z"
})
]));
}
});
// src/components/add-location.vue
var add_location_default = add_location_vue_vue_type_script_setup_true_lang_default;
var aim_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Aim",
__name: "aim",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 96a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V128a32 32 0 0 1 32-32m0 576a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V704a32 32 0 0 1 32-32M96 512a32 32 0 0 1 32-32h192a32 32 0 0 1 0 64H128a32 32 0 0 1-32-32m576 0a32 32 0 0 1 32-32h192a32 32 0 1 1 0 64H704a32 32 0 0 1-32-32"
})
]));
}
});
// src/components/aim.vue
var aim_default = aim_vue_vue_type_script_setup_true_lang_default;
var alarm_clock_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "AlarmClock",
__name: "alarm-clock",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M512 832a320 320 0 1 0 0-640 320 320 0 0 0 0 640m0 64a384 384 0 1 1 0-768 384 384 0 0 1 0 768"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "m292.288 824.576 55.424 32-48 83.136a32 32 0 1 1-55.424-32zm439.424 0-55.424 32 48 83.136a32 32 0 1 0 55.424-32zM512 512h160a32 32 0 1 1 0 64H480a32 32 0 0 1-32-32V320a32 32 0 0 1 64 0zM90.496 312.256A160 160 0 0 1 312.32 90.496l-46.848 46.848a96 96 0 0 0-128 128L90.56 312.256zm835.264 0A160 160 0 0 0 704 90.496l46.848 46.848a96 96 0 0 1 128 128z"
})
]));
}
});
// src/components/alarm-clock.vue
var alarm_clock_default = alarm_clock_vue_vue_type_script_setup_true_lang_default;
var apple_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Apple",
__name: "apple",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M599.872 203.776a189.44 189.44 0 0 1 64.384-4.672l2.624.128c31.168 1.024 51.2 4.096 79.488 16.32 37.632 16.128 74.496 45.056 111.488 89.344 96.384 115.264 82.752 372.8-34.752 521.728-7.68 9.728-32 41.6-30.72 39.936a426.624 426.624 0 0 1-30.08 35.776c-31.232 32.576-65.28 49.216-110.08 50.048-31.36.64-53.568-5.312-84.288-18.752l-6.528-2.88c-20.992-9.216-30.592-11.904-47.296-11.904-18.112 0-28.608 2.88-51.136 12.672l-6.464 2.816c-28.416 12.224-48.32 18.048-76.16 19.2-74.112 2.752-116.928-38.08-180.672-132.16-96.64-142.08-132.608-349.312-55.04-486.4 46.272-81.92 129.92-133.632 220.672-135.04 32.832-.576 60.288 6.848 99.648 22.72 27.136 10.88 34.752 13.76 37.376 14.272 16.256-20.16 27.776-36.992 34.56-50.24 13.568-26.304 27.2-59.968 40.704-100.8a32 32 0 1 1 60.8 20.224c-12.608 37.888-25.408 70.4-38.528 97.664zm-51.52 78.08c-14.528 17.792-31.808 37.376-51.904 58.816a32 32 0 1 1-46.72-43.776l12.288-13.248c-28.032-11.2-61.248-26.688-95.68-26.112-70.4 1.088-135.296 41.6-171.648 105.792C121.6 492.608 176 684.16 247.296 788.992c34.816 51.328 76.352 108.992 130.944 106.944 52.48-2.112 72.32-34.688 135.872-34.688 63.552 0 81.28 34.688 136.96 33.536 56.448-1.088 75.776-39.04 126.848-103.872 107.904-136.768 107.904-362.752 35.776-449.088-72.192-86.272-124.672-84.096-151.68-85.12-41.472-4.288-81.6 12.544-113.664 25.152z"
})
]));
}
});
// src/components/apple.vue
var apple_default = apple_vue_vue_type_script_setup_true_lang_default;
var arrow_down_bold_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowDownBold",
__name: "arrow-down-bold",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M104.704 338.752a64 64 0 0 1 90.496 0l316.8 316.8 316.8-316.8a64 64 0 0 1 90.496 90.496L557.248 791.296a64 64 0 0 1-90.496 0L104.704 429.248a64 64 0 0 1 0-90.496z"
})
]));
}
});
// src/components/arrow-down-bold.vue
var arrow_down_bold_default = arrow_down_bold_vue_vue_type_script_setup_true_lang_default;
var arrow_down_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowDown",
__name: "arrow-down",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M831.872 340.864 512 652.672 192.128 340.864a30.592 30.592 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.592 30.592 0 0 0-42.752 0z"
})
]));
}
});
// src/components/arrow-down.vue
var arrow_down_default = arrow_down_vue_vue_type_script_setup_true_lang_default;
var arrow_left_bold_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowLeftBold",
__name: "arrow-left-bold",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z"
})
]));
}
});
// src/components/arrow-left-bold.vue
var arrow_left_bold_default = arrow_left_bold_vue_vue_type_script_setup_true_lang_default;
var arrow_left_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowLeft",
__name: "arrow-left",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.592 30.592 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.592 30.592 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
// src/components/arrow-left.vue
var arrow_left_default = arrow_left_vue_vue_type_script_setup_true_lang_default;
var arrow_right_bold_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowRightBold",
__name: "arrow-right-bold",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z"
})
]));
}
});
// src/components/arrow-right-bold.vue
var arrow_right_bold_default = arrow_right_bold_vue_vue_type_script_setup_true_lang_default;
var arrow_right_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowRight",
__name: "arrow-right",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M340.864 149.312a30.592 30.592 0 0 0 0 42.752L652.736 512 340.864 831.872a30.592 30.592 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"
})
]));
}
});
// src/components/arrow-right.vue
var arrow_right_default = arrow_right_vue_vue_type_script_setup_true_lang_default;
var arrow_up_bold_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowUpBold",
__name: "arrow-up-bold",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M104.704 685.248a64 64 0 0 0 90.496 0l316.8-316.8 316.8 316.8a64 64 0 0 0 90.496-90.496L557.248 232.704a64 64 0 0 0-90.496 0L104.704 594.752a64 64 0 0 0 0 90.496z"
})
]));
}
});
// src/components/arrow-up-bold.vue
var arrow_up_bold_default = arrow_up_bold_vue_vue_type_script_setup_true_lang_default;
var arrow_up_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "ArrowUp",
__name: "arrow-up",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"
})
]));
}
});
// src/components/arrow-up.vue
var arrow_up_default = arrow_up_vue_vue_type_script_setup_true_lang_default;
var avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Avatar",
__name: "avatar",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M628.736 528.896A416 416 0 0 1 928 928H96a415.872 415.872 0 0 1 299.264-399.104L512 704zM720 304a208 208 0 1 1-416 0 208 208 0 0 1 416 0"
})
]));
}
});
// src/components/avatar.vue
var avatar_default = avatar_vue_vue_type_script_setup_true_lang_default;
var back_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Back",
__name: "back",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"
})
]));
}
});
// src/components/back.vue
var back_default = back_vue_vue_type_script_setup_true_lang_default;
var baseball_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Baseball",
__name: "baseball",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M195.2 828.8a448 448 0 1 1 633.6-633.6 448 448 0 0 1-633.6 633.6zm45.248-45.248a384 384 0 1 0 543.104-543.104 384 384 0 0 0-543.104 543.104"
}),
vue.createElementVNode("path", {
fill: "currentColor",
d: "M497.472 96.896c22.784 4.672 44.416 9.472 64.896 14.528a256.128 256.128 0 0 0 350.208 350.208c5.056 20.48 9.856 42.112 14.528 64.896A320.128 320.128 0 0 1 497.472 96.896zM108.48 491.904a320.128 320.128 0 0 1 423.616 423.68c-23.04-3.648-44.992-7.424-65.728-11.52a256.128 256.128 0 0 0-346.496-346.432 1736.64 1736.64 0 0 1-11.392-65.728z"
})
]));
}
});
// src/components/baseball.vue
var baseball_default = baseball_vue_vue_type_script_setup_true_lang_default;
var basketball_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "Basketball",
__name: "basketball",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
viewBox: "0 0 1024 1024"
}, [
vue.createElementVNode("path", {
fill: "currentColor",
d: "M778.752 788.224a382.464 382.464 0 0 0 116.032-245.632 256.512 256.512 0 0 0-241.728-13.952 762.88 762.88 0 0 1 125.696 259.584zm-55.04 44.224a699.648 699.648 0 0 0-125.056-269.632 256.128 256.128 0 0 0-56.064 331.968 382.72 382.72 0 0 0 181.12-62.336m-254.08 61.248A320.128 320.128 0 0 1 557.76 513.6a715.84 715.84 0 0 0-48.192-48.128 320.128 320.128 0 0 1-379.264 88.384 382.4 382.4 0 0 0 110.144 229.696 382.4 382.4 0 0 0 229.184 110.08zM129.28 481.088a256.128 256.128 0 0 0 331.072-56.448 699.648 699.648 0 0 0-268.8-124.352 382.656 382.656 0 0 0-62.272 180.8m106.56-235.84a762.88 762.88 0 0 1 258.688 125.056 256.512 256.512 0 0 0-13.44-241.088A382.464 382.464 0 0 0 235.84 245.248zm318.08-114.944c40.576 89.536 37.76 193.92-8.448 281.344a779.84 779.84 0 0 1 66.176 66.112 320.832 320.832 0 0 1 282.112-8.128 382.4 382.4 0 0 0-110.144-229.12 382.4 382.4 0 0 0-229.632-110.208zM828.8 828.8a448 448 0 1 1-633.6-633.6 448 448 0 0 1 633.6 633.6"
})
]));
}
});
// src/components/basketball.vue
var basketball_default = basketball_vue_vue_type_script_setup_true_lang_default;
var bell_filled_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ vue.defineComponent({
name: "BellFilled",
__name: "bell-filled",
setup(__props) {
return (_ctx, _cache) => (vue.openBlock(), vue.createElementBlock("svg", {
xmlns: "http://www.w3.org/2000/svg",
vi