// ==UserScript== // @name 网盘批量分享工具(支持蓝奏云,115网盘,123网盘,百度网盘,夸克网盘,阿里云盘,天翼网盘,迅雷网盘,中国移动网盘,UC网盘) // @namespace dreamlove // @version 2.5.6 // @author superBiuBiu // @description 网盘文件批量分享,目前支持蓝奏云,115网盘,123网盘,百度网盘,夸克网盘,阿里云盘,天翼网盘,迅雷网盘,中国移动网盘,UC网盘~ // @iconURL https://www.google.com/s2/favicons?domain=dreamlove.top // @supportURL https://github.com/superBiuBiuMan/sharelink/ // @match https://onedrive.live.com/* // @match https://cloud.189.cn/* // @match https://pan.baidu.com/disk/main* // @match https://115.com/* // @match https://www.123pan.com/* // @match https://pan.quark.cn/* // @match https://yun.139.com/* // @match https://pan.xunlei.com/* // @match https://www.aliyundrive.com/* // @match https://drive.uc.cn/* // @match https://lanzou.com/u // @match https://www.lanzou.com/u // @match https://www.lanzou.com/account.php // @match https://up.woozooo.com/u // @match https://up.woozooo.com/mydisk.php // @match https://pc.woozooo.com/u // @match https://pc.woozooo.com/mydisk.php // @match https://lanzou.com/* // @match https://www.lanzou.com/* // @match https://pan.lanzou.com/* // @require https://cdn.bootcdn.net/ajax/libs/vue/3.3.4/vue.global.prod.min.js // @require https://cdn.bootcdn.net/ajax/libs/vue-demi/0.14.6/index.iife.min.js // @require data:application/javascript,window.Vue%3DVue%3B // @require https://lib.baomitu.com/pinia/2.1.6/pinia.iife.prod.min.js // @require https://lib.baomitu.com/xlsx/0.18.5/xlsx.mini.min.js // @require https://unpkg.com/tdesign-vue-next@1.5.7/dist/tdesign.min.js // @require https://lib.baomitu.com/axios/1.6.0/axios.min.js // @resource tdesign-vue-next/es/style/index.css https://unpkg.com/tdesign-vue-next@1.5.7/dist/tdesign.min.css // @connect webapi.115.com // @connect drive-pc.quark.cn // @connect api-pan.xunlei.com // @connect api.aliyundrive.com // @connect pc-api.uc.cn // @grant GM_addStyle // @grant GM_getResourceText // @grant GM_xmlhttpRequest // @grant unsafeWindow // @run-at document-body // ==/UserScript== (t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const a=document.createElement("style");a.textContent=t,document.head.append(a)})(" @keyframes t-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.t-icon{display:inline-block;vertical-align:middle;width:1em;height:1em}.t-icon:before{font-family:unset}.t-icon-loading{animation:t-spin 1s linear infinite}.t-icon{fill:currentColor}.t-icon.t-size-s,i.t-size-s{font-size:14px}.t-icon.t-size-m,i.t-size-m{font-size:16px}.t-icon.t-size-l,i.t-size-l{font-size:18px}.tianyiCloud[data-v-ce767d83]{height:100%;display:flex;flex-direction:column}.tianyiCloud_option[data-v-ce767d83]{display:flex;align-items:center;margin:0 0 20px}.tianyiCloud_option_time[data-v-ce767d83]{margin-left:10px}.tianyiCloud_result[data-v-ce767d83]{flex:1;overflow:auto}.baiduCloud[data-v-eb86a8a4]{height:100%;display:flex;flex-direction:column}.baiduCloud_option_item[data-v-eb86a8a4]:nth-of-type(2){margin:14px 0}.baiduCloud_result[data-v-eb86a8a4]{flex:1;overflow:auto}.cloud115[data-v-b1c14897]{height:100%;display:flex;flex-direction:column}.cloud115_option[data-v-b1c14897]{display:flex;align-items:center;margin:0 0 20px}.cloud115_option_time[data-v-b1c14897]{margin-left:10px}.cloud115_result[data-v-b1c14897]{flex:1;overflow:auto}.cloud123[data-v-d65c6fd0]{height:100%;display:flex;flex-direction:column}.cloud123_option[data-v-d65c6fd0]{margin:0 0 10px}.cloud123_option_item[data-v-d65c6fd0]{display:flex;align-items:center;margin:10px 0}.cloud123_option_item_title[data-v-d65c6fd0]{display:inline-block;width:100px}.cloud123_result[data-v-d65c6fd0]{flex:1;overflow:auto}.lanzouCloud[data-v-98dce44d]{height:100%;display:flex;flex-direction:column}.lanzouCloud_option[data-v-98dce44d]{margin:0 0 10px}.lanzouCloud_option_item[data-v-98dce44d]{display:flex;align-items:center}.lanzouCloud_option_item_title[data-v-98dce44d]{display:inline-block;width:100px}.lanzouCloud_result[data-v-98dce44d]{flex:1;overflow:auto}.quarkCloud[data-v-7ddcaef9]{height:100%;display:flex;flex-direction:column}.quarkCloud_option_item[data-v-7ddcaef9]{display:flex;align-items:center}.quarkCloud_result[data-v-7ddcaef9]{flex:1;overflow:auto}.cloud139[data-v-f1489390]{height:100%;display:flex;flex-direction:column}.cloud139_option[data-v-f1489390]{margin:0 0 10px}.cloud139_option_item[data-v-f1489390]{display:flex;align-items:center}.cloud139_option_item_title[data-v-f1489390]{display:inline-block;width:100px}.cloud139_result[data-v-f1489390]{flex:1;overflow:auto}.xunCloud[data-v-3dbd7c07]{height:100%;display:flex;flex-direction:column}.xunCloud[data-v-3dbd7c07] .t-input--auto-width{min-width:120px}.xunCloud_option_item[data-v-3dbd7c07]{display:flex;align-items:center}.xunCloud_option_item_title[data-v-3dbd7c07]{min-width:70px}.xunCloud_result[data-v-3dbd7c07]{flex:1;overflow:auto}.aliCloud[data-v-3ab6544a]{height:100%;display:flex;flex-direction:column}.aliCloud_option_item[data-v-3ab6544a]{display:flex;align-items:center}.aliCloud_option_item_title[data-v-3ab6544a]{min-width:70px}.aliCloud_result[data-v-3ab6544a]{flex:1;overflow:auto}.ucCloud[data-v-95aac119]{height:100%;display:flex;flex-direction:column}.ucCloud[data-v-95aac119] .t-input--auto-width{min-width:120px}.ucCloud_option_item[data-v-95aac119]{display:flex;align-items:center}.ucCloud_option_item_title[data-v-95aac119]{min-width:70px}.ucCloud_result[data-v-95aac119]{flex:1;overflow:auto}.cloud123[data-v-3551589d]{height:100%;display:flex;flex-direction:column}.cloud123_option[data-v-3551589d]{margin:0 0 10px}.cloud123_option_item[data-v-3551589d]{display:flex;align-items:center;margin:10px 0}.cloud123_option_item_title[data-v-3551589d]{display:inline-block;width:100px}.cloud123_result[data-v-3551589d]{flex:1;overflow:auto} "); (function (vue, pinia, XLSX, tdesignVueNext, axios) { 'use strict'; function _interopNamespaceDefault(e) { const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } }); if (e) { for (const k in e) { if (k !== 'default') { const d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty(n, k, d.get ? d : { enumerable: true, get: () => e[k] }); } } } n.default = e; return Object.freeze(n); } const XLSX__namespace = /*#__PURE__*/_interopNamespaceDefault(XLSX); const cssLoader = (e) => { const t = GM_getResourceText(e); return GM_addStyle(t), t; }; cssLoader("tdesign-vue-next/es/style/index.css"); function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), true).forEach(function(key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function camel2Kebab(camelString) { var covertArr = ["fillOpacity", "fillRule", "clipRule"]; if (covertArr.includes(camelString)) { return camelString.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase(); } return camelString; } function renderFn(node, props) { var kebabAttrs = Object.keys(node.attrs).reduce((result, key) => { result[camel2Kebab(key)] = node.attrs[key]; return result; }, {}); return vue.h(node.tag, _objectSpread$1(_objectSpread$1({}, kebabAttrs), props), (node.children || []).map((child) => renderFn(child, {}))); } var DEFAULT_CLASS_PREFIX = "t"; var DEFAULT_LOCALE = "zh-CN"; var ConfigContext = { classPrefix: DEFAULT_CLASS_PREFIX, locale: DEFAULT_LOCALE }; const ConfigContext$1 = ConfigContext; function useCommonClassName() { var { classPrefix } = ConfigContext$1; return { SIZE: { default: "", xs: "".concat(classPrefix, "-size-xs"), small: "".concat(classPrefix, "-size-s"), medium: "".concat(classPrefix, "-size-m"), large: "".concat(classPrefix, "-size-l"), xl: "".concat(classPrefix, "-size-xl"), block: "".concat(classPrefix, "-size-full-width") }, STATUS: { loading: "".concat(classPrefix, "-is-loading"), disabled: "".concat(classPrefix, "-is-disabled"), focused: "".concat(classPrefix, "-is-focused"), success: "".concat(classPrefix, "-is-success"), error: "".concat(classPrefix, "-is-error"), warning: "".concat(classPrefix, "-is-warning"), selected: "".concat(classPrefix, "-is-selected"), active: "".concat(classPrefix, "-is-active"), checked: "".concat(classPrefix, "-is-checked"), current: "".concat(classPrefix, "-is-current"), hidden: "".concat(classPrefix, "-is-hidden"), visible: "".concat(classPrefix, "-is-visible"), expanded: "".concat(classPrefix, "-is-expanded"), indeterminate: "".concat(classPrefix, "-is-indeterminate") } }; } function useSizeProps(size) { var COMMON_SIZE_CLASS_NAMES = useCommonClassName().SIZE; var className = vue.computed(() => { if (size.value in COMMON_SIZE_CLASS_NAMES) { return COMMON_SIZE_CLASS_NAMES[size.value]; } return ""; }); var style2 = vue.computed(() => { if (size.value === void 0 || size.value in COMMON_SIZE_CLASS_NAMES) { return {}; } return { fontSize: size.value }; }); return { style: style2, className }; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function(sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), true).forEach(function(key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } var element = { "tag": "svg", "attrs": { "fill": "none", "viewBox": "0 0 24 24", "width": "1em", "height": "1em" }, "children": [{ "tag": "path", "attrs": { "fill": "currentColor", "d": "M6 4V1.5h2V4h8V1.5h2V4h4v18H2V4h4zM4 6v3h16V6H4zm16 5H4v9h16v-9z" } }] }; var calendar = vue.defineComponent({ name: "CalendarIcon", props: { size: { type: String }, onClick: { type: Function } }, setup(props, _ref) { var { attrs } = _ref; var propsSize = vue.computed(() => props.size); var { className, style: style2 } = useSizeProps(propsSize); var finalCls = vue.computed(() => ["t-icon", "t-icon-calendar", className.value]); var finalStyle = vue.computed(() => _objectSpread(_objectSpread({}, style2.value), attrs.style)); var finalProps = vue.computed(() => ({ class: finalCls.value, style: finalStyle.value, onClick: (e) => { var _props$onClick; return (_props$onClick = props.onClick) === null || _props$onClick === void 0 ? void 0 : _props$onClick.call(props, { e }); } })); return () => renderFn(element, finalProps.value); } }); const CalendarIcon = calendar; var CloudInfoEnum = /* @__PURE__ */ ((CloudInfoEnum2) => { CloudInfoEnum2[CloudInfoEnum2["cloud115"] = 0] = "cloud115"; CloudInfoEnum2[CloudInfoEnum2["cloud123"] = 1] = "cloud123"; CloudInfoEnum2[CloudInfoEnum2["cloudBaidu"] = 2] = "cloudBaidu"; CloudInfoEnum2[CloudInfoEnum2["cloudLanZou"] = 3] = "cloudLanZou"; CloudInfoEnum2[CloudInfoEnum2["cloudTianyi"] = 4] = "cloudTianyi"; CloudInfoEnum2[CloudInfoEnum2["cloudQuark"] = 5] = "cloudQuark"; CloudInfoEnum2[CloudInfoEnum2["cloud139"] = 6] = "cloud139"; CloudInfoEnum2[CloudInfoEnum2["cloudXun"] = 7] = "cloudXun"; CloudInfoEnum2[CloudInfoEnum2["cloudAli"] = 8] = "cloudAli"; CloudInfoEnum2[CloudInfoEnum2["cloudUC"] = 9] = "cloudUC"; CloudInfoEnum2[CloudInfoEnum2["cloudOnedrive"] = 10] = "cloudOnedrive"; return CloudInfoEnum2; })(CloudInfoEnum || {}); const ShareDOMSelect = { "cloud115": { select: "div.list-contents > ul li.selected", idAttribute: ["file_id", "cate_id"] }, "cloudTianyi": { idAttribute: ["data-fileid"], select: "li[data-selected=true].c-file-item", fileNameSelect: ".file-item-name-fileName-span" }, "cloudQuark": { idAttribute: ["data-row-key"], select: ".ant-table-row-selected", fileNameSelect: ".filename-text" } }; const cloudUrlInfo = { cloud123: ["https://www.123pan.com/"], cloudBaidu: ["https://pan.baidu.com/disk/main"], cloudLanZou: [ "https://pc.woozooo.com/", "https:\\/\\/..*?\\.woozooo\\.com", "https:\\/\\/.*?\\.lanzou.*?\\.com" ], cloudTianyi: ["https://cloud.189.cn/web/main/"], cloud115: ["https://115.com"], cloudQuark: ["https://pan.quark.cn/"], cloud139: ["https://yun.139.com/"], cloudXun: ["https://pan.xunlei.com/"], cloudAli: ["https://www.aliyundrive.com/"], cloudUC: ["https://drive.uc.cn/"], cloudOnedrive: ["https://onedrive.live.com/"] }; var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs(x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; } var FileSaver_min = { exports: {} }; (function(module, exports) { (function(a, b) { b(); })(commonjsGlobal, function() { function b(a2, b2) { return "undefined" == typeof b2 ? b2 = { autoBom: false } : "object" != typeof b2 && (console.warn("Deprecated: Expected third argument to be a object"), b2 = { autoBom: !b2 }), b2.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a2.type) ? new Blob(["\uFEFF", a2], { type: a2.type }) : a2; } function c(a2, b2, c2) { var d2 = new XMLHttpRequest(); d2.open("GET", a2), d2.responseType = "blob", d2.onload = function() { g(d2.response, b2, c2); }, d2.onerror = function() { console.error("could not download file"); }, d2.send(); } function d(a2) { var b2 = new XMLHttpRequest(); b2.open("HEAD", a2, false); try { b2.send(); } catch (a3) { } return 200 <= b2.status && 299 >= b2.status; } function e(a2) { try { a2.dispatchEvent(new MouseEvent("click")); } catch (c2) { var b2 = document.createEvent("MouseEvents"); b2.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null), a2.dispatchEvent(b2); } } var f = "object" == typeof window && window.window === window ? window : "object" == typeof self && self.self === self ? self : "object" == typeof commonjsGlobal && commonjsGlobal.global === commonjsGlobal ? commonjsGlobal : void 0, a = f.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent), g = f.saveAs || ("object" != typeof window || window !== f ? function() { } : "download" in HTMLAnchorElement.prototype && !a ? function(b2, g2, h2) { var i = f.URL || f.webkitURL, j = document.createElement("a"); g2 = g2 || b2.name || "download", j.download = g2, j.rel = "noopener", "string" == typeof b2 ? (j.href = b2, j.origin === location.origin ? e(j) : d(j.href) ? c(b2, g2, h2) : e(j, j.target = "_blank")) : (j.href = i.createObjectURL(b2), setTimeout(function() { i.revokeObjectURL(j.href); }, 4e4), setTimeout(function() { e(j); }, 0)); } : "msSaveOrOpenBlob" in navigator ? function(f2, g2, h2) { if (g2 = g2 || f2.name || "download", "string" != typeof f2) navigator.msSaveOrOpenBlob(b(f2, h2), g2); else if (d(f2)) c(f2, g2, h2); else { var i = document.createElement("a"); i.href = f2, i.target = "_blank", setTimeout(function() { e(i); }); } } : function(b2, d2, e2, g2) { if (g2 = g2 || open("", "_blank"), g2 && (g2.document.title = g2.document.body.innerText = "downloading..."), "string" == typeof b2) return c(b2, d2, e2); var h2 = "application/octet-stream" === b2.type, i = /constructor/i.test(f.HTMLElement) || f.safari, j = /CriOS\/[\d]+/.test(navigator.userAgent); if ((j || h2 && i || a) && "undefined" != typeof FileReader) { var k = new FileReader(); k.onloadend = function() { var a2 = k.result; a2 = j ? a2 : a2.replace(/^data:[^;]*;/, "data:attachment/file;"), g2 ? g2.location.href = a2 : location = a2, g2 = null; }, k.readAsDataURL(b2); } else { var l = f.URL || f.webkitURL, m = l.createObjectURL(b2); g2 ? g2.location = m : location.href = m, g2 = null, setTimeout(function() { l.revokeObjectURL(m); }, 4e4); } }); f.saveAs = g.saveAs = g, module.exports = g; }); })(FileSaver_min); var FileSaver_minExports = FileSaver_min.exports; const FileSaver = /* @__PURE__ */ getDefaultExportFromCjs(FileSaver_minExports); function generateRandomString(numDigits = 4) { const numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; const letters = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; let result = ""; for (let i = 0; i < numDigits; i++) { const randomIndex = Math.floor(Math.random() * (numbers.length + letters.length)); if (randomIndex < numbers.length) { result += String(numbers[randomIndex]); } else { result += letters[randomIndex - numbers.length]; } } return result; } function DownloadTxt(fileName, content) { const element2 = document.createElement("a"); element2.setAttribute("href", "data:text/plain;charset=utf-8," + encodeURIComponent(content)); element2.setAttribute("download", fileName); element2.style.display = "none"; document.body.append(element2); element2.click(); document.body.removeChild(element2); } function CopyValueToClipBoard(content) { return new Promise((resolve2, reject2) => { if (window.isSecureContext) { navigator.clipboard.writeText(content).then((res) => { resolve2(res); }).catch((err) => { reject2(err); }); } else { reject2("很抱歉,暂时不支持在此网站上复制"); } }); } function get123CloudSecret() { function v(t) { return (v = "function" == typeof Symbol && "symbol" == typeof Symbol["iterator"] ? function(t2) { return typeof t2; } : function(t2) { return t2 && "function" == typeof Symbol && t2.constructor === Symbol && t2 !== Symbol["prototype"] ? "symbol" : typeof t2; })(t); } function A(t, e2) { e2 = 1 < arguments.length && void 0 !== e2 ? e2 : 10; for (var n2 = function() { for (var t2 = [], e3 = 0; e3 < 256; e3++) { for (var n3 = e3, r3 = 0; r3 < 8; r3++) n3 = 1 & n3 ? 3988292384 ^ n3 >>> 1 : n3 >>> 1; t2[e3] = n3; } return t2; }(), r2 = function(t2) { t2 = t2.replace(/\\r\\n/g, "\\n"); for (var e3 = "", n3 = 0; n3 < t2.length; n3++) { var r3 = t2.charCodeAt(n3); r3 < 128 ? e3 += String.fromCharCode(r3) : e3 = 127 < r3 && r3 < 2048 ? (e3 += String.fromCharCode(r3 >> 6 | 192)) + String.fromCharCode(63 & r3 | 128) : (e3 = (e3 += String.fromCharCode(r3 >> 12 | 224)) + String.fromCharCode(r3 >> 6 & 63 | 128)) + String.fromCharCode(63 & r3 | 128); } return e3; }(t), a2 = -1, i2 = 0; i2 < r2.length; i2++) a2 = a2 >>> 8 ^ n2[255 & (a2 ^ r2.charCodeAt(i2))]; return (a2 = (-1 ^ a2) >>> 0).toString(e2); } var a, i, o, s, l, c, u, d, f, p, h2, g; var e = "/a/api/share/share/create"; var n = "web"; var r = 3; function getRandom(t) { for (; ; ) switch (t.prev = t.next) { case 0: for (p in a = Math.round(1e7 * Math.random()), o = Math.round(((/* @__PURE__ */ new Date()).getTime() + 60 * (/* @__PURE__ */ new Date()).getTimezoneOffset() * 1e3 + 288e5) / 1e3).toString(), sessionStorage.getItem("serverTimestamp") && (i = sessionStorage.getItem("serverTimestamp")), o = i && (m = i, 20 <= Math.abs(1e3 * o - 1e3 * m) / 1e3 / 60) ? i : o, s = atob((m = void 0, m = ["a", "d", "e", "f", "g", "h", "l", "m", "y", "i", "j", "n", "o", "p", "k", "q", "r", "s", "t", "u", "b", "c", "v", "w", "s", "z"].join(","), btoa(m))).split(","), u = function(t2, e2, n2) { var r2; n2 = 2 < arguments.length && void 0 !== n2 ? n2 : 8; return 0 === arguments.length ? null : (r2 = "object" === v(t2) ? t2 : (10 === "".concat(t2).length && (t2 = 1e3 * Number.parseInt(t2)), new Date(t2)), t2 += 6e4 * new Date(t2).getTimezoneOffset(), { y: (r2 = new Date(t2 + 36e5 * n2)).getFullYear(), m: r2.getMonth() + 1 < 10 ? "0".concat(String(r2.getMonth() + 1)) : r2.getMonth() + 1, d: r2.getDate() < 10 ? "0".concat(r2.getDate()) : r2.getDate(), h: r2.getHours() < 10 ? "0".concat(r2.getHours()) : r2.getHours(), f: r2.getMinutes() < 10 ? "0".concat(r2.getMinutes()) : r2.getMinutes() }); }(o), h2 = u.y, g = u.m, l = u.d, c = u.h, u = u.f, d = [h2, g, l, c, u].join(""), f = [], d) f.push(s[Number(d[p])]); return h2 = A(f.join("")), g = A("".concat(o, "|").concat(a, "|").concat(e, "|").concat(n, "|").concat(String(r), "|").concat(h2)), t.abrupt("return", [h2, "".concat(o, "-").concat(a, "-").concat(g)]); case 12: case "end": return t.stop(); } var m; } const object = { next: 0, prev: 0, arg: void 0, abrupt: (str, result) => { return result; } }; return getRandom(object); } function getDate123Cloud(day) { function M(t) { function e(t2) { return ((t2 = Math.floor(Math.abs(t2))) < 10 ? "0" : "") + t2; } var n = -t.getTimezoneOffset(), r = 0 <= n ? "+" : "-"; return "".concat(t.getFullYear(), "-").concat(e(t.getMonth() + 1), "-").concat(e(t.getDate()), "T").concat(e(t.getHours()), ":").concat(e(t.getMinutes()), ":").concat(e(t.getSeconds())).concat(r).concat(e(n / 60), ":").concat(e(n % 60)); } day = day * 1; switch (day) { case 1: return Object(M)(/* @__PURE__ */ new Date(+/* @__PURE__ */ new Date() + 864e5)); case 7: return Object(M)(/* @__PURE__ */ new Date(+/* @__PURE__ */ new Date() + 6048e5)); case 30: return Object(M)(/* @__PURE__ */ new Date(+/* @__PURE__ */ new Date() + 2592e6)); case 99: return Object(M)(/* @__PURE__ */ new Date("2099/12/12 08:00:00")); } } function bodyParse(body) { const result = (body == null ? void 0 : body.split("&")) ?? []; let obj = {}; for (let item of result) { const temp = (item == null ? void 0 : item.split("=")) ?? []; if (temp.length > 1) { obj[temp[0]] = temp[1]; } } return obj; } function findCloudProvider(url, cloudUrlInfos) { for (const provider in cloudUrlInfos) { const urls = cloudUrlInfos[provider]; for (const cloudUrl of urls) { if (isMatchingUrl(url, cloudUrl)) { return provider; } } } return null; } function isMatchingUrl(url, pattern) { if (pattern.includes("*")) { return new RegExp(pattern, "g").test(url); } else { return url.startsWith(pattern); } } function observeDOMChanges(selector, callback, options = { interval: 300, observerOptions: { childList: true, subtree: true, attributes: true } }) { if (!selector) { console.error("请传入选择器"); throw new Error("请传入选择器"); } let timer; const startObserver = () => { const targetDOM = document.querySelector(selector); if (!targetDOM) return; clearInterval(timer); const observer = new MutationObserver(() => { console.log("执行回调"); callback(targetDOM); observer.disconnect(); }); observer.observe(targetDOM, options.observerOptions); }; timer = setInterval(startObserver, options.interval ?? 300); } function findLocalStorageKeysWithPrefix(prefix) { let result = {}; for (const key in localStorage) { if (localStorage.hasOwnProperty(key) && key.startsWith(prefix)) { result = JSON.parse(localStorage[key]); } } return result; } function exportXlsxFile(filename, data) { const worksheet = XLSX__namespace.utils.json_to_sheet(data); const workbook = XLSX__namespace.utils.book_new(); XLSX__namespace.utils.book_append_sheet(workbook, worksheet, "Sheet1"); const wb_out = XLSX__namespace.write(workbook, { type: "buffer" }); FileSaver.saveAs(new Blob([wb_out], { type: "application/octet-stream" }), filename); } const CloudInfoStore = pinia.defineStore({ id: "cloudinfo", state: () => ({ currentCloud: "", //当前的网盘对应索引值 cloudName: "", //网盘名字 cloudKey: "" //网盘key }), actions: { //初始化网盘信息 initCloudInfo() { const url = window.location.href; console.log("当前网址", url); const cloudKey = findCloudProvider(url, cloudUrlInfo) ?? ""; console.log("所属网盘", cloudKey); if (!cloudKey) { console.error("初始化网盘信息出错"); throw new Error("初始化网盘信息出错"); } this.cloudKey = cloudKey; this.currentCloud = CloudInfoEnum[cloudKey]; switch (this.currentCloud) { case CloudInfoEnum.cloudLanZou: { this.cloudName = "蓝奏云"; } break; case CloudInfoEnum.cloudTianyi: { this.cloudName = "天翼云"; } break; case CloudInfoEnum.cloudBaidu: { this.cloudName = "百度云"; } break; case CloudInfoEnum.cloud115: { this.cloudName = "115云"; } break; case CloudInfoEnum.cloud123: { this.cloudName = "123云"; } break; case CloudInfoEnum.cloudQuark: { this.cloudName = "夸克网盘"; } break; case CloudInfoEnum.cloud139: { this.cloudName = "中国移动(139)网盘"; } break; case CloudInfoEnum.cloudXun: { this.cloudName = "迅雷网盘"; } break; case CloudInfoEnum.cloudAli: { this.cloudName = "阿里云盘"; } break; case CloudInfoEnum.cloudUC: { this.cloudName = "UC网盘"; } break; case CloudInfoEnum.cloudOnedrive: { this.cloudName = "Onedrive云盘"; } break; default: this.cloudName = "未知网盘"; } } } }); const store = pinia.createPinia(); const Pinia = (app) => { app.use(store); }; const cloudInfoStore = CloudInfoStore(store); cloudInfoStore.initCloudInfo(); var ExpireTimeEnum$8 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 7] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 2099] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$8 || {}); const transformExcelInfoData$9 = (data) => { return (data == null ? void 0 : data.map((item) => { let time = ""; switch (item.expireTime) { case ExpireTimeEnum$8.oneDay: time = "1天"; break; case ExpireTimeEnum$8.sevenDay: time = "7天"; break; case ExpireTimeEnum$8.forever: time = "永久"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.url) ?? "", "提取码": (item == null ? void 0 : item.accessCode) ?? "", "有效期": time }; })) ?? []; }; const useTianyiCloud = () => { const userOptions = vue.ref({ shareDelay: 500, expireTime: ExpireTimeEnum$8.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false }); const handleTransformFormat = (info) => { let time = ""; switch (info.expireTime) { case ExpireTimeEnum$8.oneDay: time = "1天"; break; case ExpireTimeEnum$8.sevenDay: time = "7天"; break; case ExpireTimeEnum$8.forever: time = "永久"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.url} 提取码:${info.accessCode} 分享有效时间: ${time}`; }; const handleTransformShareParams = (params) => { return { noCache: Math.random(), fileId: params.id, expireTime: params.expireTime, shareType: "3" //固定值 }; }; const handleBatchOperation = async () => { var _a, _b, _c, _d, _e; const selectDOM = document.querySelectorAll((_a = ShareDOMSelect["cloudTianyi"]) == null ? void 0 : _a.select); if (!selectDOM.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let dom of selectDOM) { userOptions.value.selectFileInfoList.push({ id: dom.getAttribute((_c = (_b = ShareDOMSelect["cloudTianyi"]) == null ? void 0 : _b.idAttribute) == null ? void 0 : _c[0]) ?? "", fileName: ((_e = dom.querySelector((_d = ShareDOMSelect["cloudTianyi"]) == null ? void 0 : _d.fileNameSelect)) == null ? void 0 : _e.textContent) ?? "(!!$$未知名称!!$$)", expireTime: userOptions.value.expireTime }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const { data: { shareLinkList } } = await axios({ method: "get", url: window.location.origin + "/api/open/share/createShareLink.action", params: handleTransformShareParams(fileInfo), headers: { "accept": "application/json;charset=UTF-8" } }).catch(() => ({ data: { shareLinkList: [] } })); let tempData = { ...shareLinkList[0], ...fileInfo }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.selectFileInfoList = []; userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareInfo = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$9(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleTransformShareParams, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$a = (n) => (vue.pushScopeId("data-v-ce767d83"), n = n(), vue.popScopeId(), n); const _hoisted_1$b = { class: "tianyiCloud" }; const _hoisted_2$a = { class: "tianyiCloud_option" }; const _hoisted_3$a = /* @__PURE__ */ _withScopeId$a(() => /* @__PURE__ */ vue.createElementVNode("span", null, "有效期:", -1)); const _hoisted_4$a = { class: "tianyiCloud_option_time" }; const _hoisted_5$a = { class: "tianyiCloud_operation" }; const _hoisted_6$a = { class: "tianyiCloud_progress" }; const _hoisted_7$9 = { class: "tianyiCloud_result" }; const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useTianyiCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [ vue.createElementVNode("div", _hoisted_2$a, [ _hoisted_3$a, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).expireTime = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$8).oneDay }, { default: vue.withCtx(() => [ vue.createTextVNode("1天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$8).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$8).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]), vue.createElementVNode("div", _hoisted_4$a, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ vue.createTextVNode("延迟(毫秒):") ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]) ]), vue.createElementVNode("div", _hoisted_5$a, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_6$a, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_7$9, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const _export_sfc = (sfc, props) => { const target = sfc.__vccOpts || sfc; for (const [key, val] of props) { target[key] = val; } return target; }; const cloudTianyi = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-ce767d83"]]); var ExpireTimeEnum$7 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 7] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["thirtyDay"] = 30] = "thirtyDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 0] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$7 || {}); var HasPwdEnum = /* @__PURE__ */ ((HasPwdEnum2) => { HasPwdEnum2[HasPwdEnum2["random"] = 0] = "random"; HasPwdEnum2[HasPwdEnum2["self"] = 1] = "self"; return HasPwdEnum2; })(HasPwdEnum || {}); var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)(); var _unsafeWindow = /* @__PURE__ */ (() => typeof unsafeWindow != "undefined" ? unsafeWindow : void 0)(); const transformExcelInfoData$8 = (data) => { return (data == null ? void 0 : data.map((item) => { let time = ""; switch (item.expireTime) { case ExpireTimeEnum$7.oneDay: time = "1天"; break; case ExpireTimeEnum$7.sevenDay: time = "7天"; break; case ExpireTimeEnum$7.thirtyDay: time = "30天"; break; case ExpireTimeEnum$7.forever: time = "永久"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.link) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": time }; })) ?? []; }; const useBaiduCloud = () => { const userOptions = vue.ref({ shareDelay: 300, expireTime: ExpireTimeEnum$7.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false, pwdType: HasPwdEnum.random, pwd: "" }); const handleTransformFormat = (info) => { let time = ""; switch (info.expireTime) { case ExpireTimeEnum$7.oneDay: time = "1天"; break; case ExpireTimeEnum$7.sevenDay: time = "7天"; break; case ExpireTimeEnum$7.thirtyDay: time = "30天"; break; case ExpireTimeEnum$7.forever: time = "永久"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.link} 提取码:${info.pwd} 分享有效时间: ${time}`; }; const handleBatchOperation = async () => { var _a; const selectDOM = document.querySelector("tbody").__vue__.$store.state.detail.view.fileMeta; if (!selectDOM.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } if (userOptions.value.pwdType === HasPwdEnum.self && !userOptions.value.pwd) { return tdesignVueNext.MessagePlugin.warning("选择自定义提取码,请设置提取码!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let item of selectDOM) { userOptions.value.selectFileInfoList.push({ id: item.fs_id, //存储文件id fileName: item.formatName, //文件名称 pwd: userOptions.value.pwdType === HasPwdEnum.random ? generateRandomString(4) : userOptions.value.pwd, expireTime: userOptions.value.expireTime }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const { locals } = _unsafeWindow ?? {}; const { data } = await axios({ method: "post", url: window.location.origin + "/share/set", params: { channel: "channel", clienttype: "0", bdstoken: (_a = locals == null ? void 0 : locals.userInfo) == null ? void 0 : _a.bdstoken, app_id: "250528", //未知-好像是定值 web: 1 //'dp-logid':'96456600647322280113',//未知 }, data: { period: fileInfo.expireTime, pwd: fileInfo.pwd, "eflag_disable": true, //不知道是什么参数,好像是分享类型eflag_disable: "personal" === e.shareType channel_list: [], //未知 schannel: 4, //未知-貌似是一个定制 fid_list: `[${fileInfo.id}]` //文件id }, headers: { "accept": "application/json;charset=UTF-8", "Content-Type": " application/x-www-form-urlencoded" } }).catch(() => ({})); let tempData = { ...data, ...fileInfo }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.selectFileInfoList = []; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareInfo = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$8(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$9 = (n) => (vue.pushScopeId("data-v-eb86a8a4"), n = n(), vue.popScopeId(), n); const _hoisted_1$a = { class: "baiduCloud" }; const _hoisted_2$9 = { class: "baiduCloud_option" }; const _hoisted_3$9 = { class: "baiduCloud_option_item" }; const _hoisted_4$9 = /* @__PURE__ */ _withScopeId$9(() => /* @__PURE__ */ vue.createElementVNode("span", null, "有效期:", -1)); const _hoisted_5$9 = { class: "baiduCloud_option_item" }; const _hoisted_6$9 = /* @__PURE__ */ _withScopeId$9(() => /* @__PURE__ */ vue.createElementVNode("span", null, "提取码:", -1)); const _hoisted_7$8 = { key: 0, style: { "margin-top": "4px" } }; const _hoisted_8$7 = { class: "baiduCloud_operation" }; const _hoisted_9$7 = { class: "baiduCloud_progress" }; const _hoisted_10$5 = { class: "baiduCloud_result" }; const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useBaiduCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_input = vue.resolveComponent("t-input"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [ vue.createElementVNode("div", _hoisted_2$9, [ vue.createElementVNode("div", _hoisted_3$9, [ _hoisted_4$9, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).expireTime = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$7).oneDay }, { default: vue.withCtx(() => [ vue.createTextVNode("1天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$7).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$7).thirtyDay }, { default: vue.withCtx(() => [ vue.createTextVNode("30天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$7).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]), vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ vue.createTextVNode(" 延迟(毫秒):") ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_5$9, [ _hoisted_6$9, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).pwdType, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).pwdType = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(HasPwdEnum).random }, { default: vue.withCtx(() => [ vue.createTextVNode("随机提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(HasPwdEnum).self }, { default: vue.withCtx(() => [ vue.createTextVNode("自定义提取码") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]), vue.unref(userOptions).pwdType === vue.unref(HasPwdEnum).self ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$8, [ vue.createVNode(_component_t_input, { modelValue: vue.unref(userOptions).pwd, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(userOptions).pwd = $event), placeholder: "请输入自定义提取码(只支持数字和英文,最长4位)", maxlength: "4" }, null, 8, ["modelValue"]) ])) : vue.createCommentVNode("", true) ]) ]), vue.createElementVNode("div", _hoisted_8$7, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_9$7, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_10$5, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloudBaidu = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-eb86a8a4"]]); var ExpireTimeEnum$6 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 7] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = -1] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$6 || {}); const transformExcelInfoData$7 = (data) => { return (data == null ? void 0 : data.map((item) => { return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.share_url) ?? "", "提取码": (item == null ? void 0 : item.receive_code) ?? "", "有效期": (item == null ? void 0 : item.share_ex_duration) ?? "" }; })) ?? []; }; const use115Cloud = () => { const shareDelay = vue.ref(500); const expireTime = vue.ref(ExpireTimeEnum$6.forever); const shareInfo = vue.ref([]); const shareInfoUserSee = vue.ref(""); const shareProgress = vue.ref(0); const selectFileInfoList = vue.ref([]); const isSharing = vue.ref(false); const handleTransformFormat = (info) => { return `文件名称: ${info.fileName} 分享链接:${info.share_url} 提取码:${info.receive_code} 分享有效时间: ${info.share_ex_duration}`; }; const handleBatchOperation = async () => { var _a, _b, _c, _d, _e; const iframe = document.querySelector("iframe"); const iframeWindow = iframe.contentWindow ?? _unsafeWindow; const selectDOM = iframeWindow.document.querySelectorAll((_a = ShareDOMSelect["cloud115"]) == null ? void 0 : _a.select); if (!selectDOM.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } isSharing.value = true; selectFileInfoList.value = []; for (let dom of selectDOM) { const id = (dom.getAttribute((_c = (_b = ShareDOMSelect["cloud115"]) == null ? void 0 : _b.idAttribute) == null ? void 0 : _c[0]) || dom.getAttribute((_e = (_d = ShareDOMSelect["cloud115"]) == null ? void 0 : _d.idAttribute) == null ? void 0 : _e[1])) ?? ""; const title = dom.getAttribute("title"); selectFileInfoList.value.push({ id, //存储文件id fileName: title ?? "(!!$$未知名称!!$$)" //文件名称 }); } for (let fileInfo of selectFileInfoList.value) { const formData = new FormData(); const { user_id } = _unsafeWindow || {}; formData.append("user_id", user_id); formData.append("file_ids", fileInfo.id + ""); formData.append("ignore_warn", "1"); formData.append("is_asc", "0"); formData.append("order", "user_ptime"); _GM_xmlhttpRequest({ method: "post", url: "https://webapi.115.com/share/send", headers: { "Accept": "application/json, text/javascript, */*; q=0.01" }, data: formData, onload: ({ response }) => { const result = JSON.parse(response); let tempData = { ...result.data || {}, fileName: fileInfo.fileName }; shareInfo.value.push(tempData); shareInfoUserSee.value += handleTransformFormat(tempData) + "\n"; shareProgress.value = Math.floor(shareInfo.value.length / selectFileInfoList.value.length * 100); }, onerror: (res) => { console.error("失败", res); } }); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, shareDelay.value); }); } shareProgress.value = 100; isSharing.value = false; tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { shareInfo.value = []; shareInfoUserSee.value = ""; shareProgress.value = 0; selectFileInfoList.value = []; }; const copyValue = () => { CopyValueToClipBoard(shareInfoUserSee.value + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, shareInfoUserSee.value); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$7(shareInfo.value)); }; return { shareDelay, expireTime, shareInfo, selectFileInfoList, shareInfoUserSee, isSharing, shareProgress, handleBatchOperation, handleTransformFormat, downloadExcel, handleEnd, copyValue, download }; }; const _withScopeId$8 = (n) => (vue.pushScopeId("data-v-b1c14897"), n = n(), vue.popScopeId(), n); const _hoisted_1$9 = { class: "cloud115" }; const _hoisted_2$8 = { class: "cloud115_option" }; const _hoisted_3$8 = /* @__PURE__ */ _withScopeId$8(() => /* @__PURE__ */ vue.createElementVNode("span", null, "有效期:", -1)); const _hoisted_4$8 = { class: "cloud115_option_time" }; const _hoisted_5$8 = { class: "cloud115_operation" }; const _hoisted_6$8 = { class: "cloud115_progress" }; const _hoisted_7$7 = { class: "cloud115_result" }; const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { expireTime, shareDelay, isSharing, shareInfoUserSee, shareProgress, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = use115Cloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [ vue.createElementVNode("div", _hoisted_2$8, [ _hoisted_3$8, vue.createVNode(_component_t_radio_group, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, null, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }) ]), _: 1 }), vue.createElementVNode("div", _hoisted_4$8, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ vue.createTextVNode("延迟(毫秒):") ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(shareDelay), "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(shareDelay) ? shareDelay.value = $event : null), step: "100" }, null, 8, ["modelValue"]) ]) ]), vue.createElementVNode("div", _hoisted_5$8, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(isSharing) }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_6$8, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(shareProgress), color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_7$7, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(shareInfoUserSee), placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloud115 = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-b1c14897"]]); var ExpireTimeEnum$5 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 2] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["thirtyDay"] = 3] = "thirtyDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 4] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$5 || {}); var DefaultShowEnum$1 = /* @__PURE__ */ ((DefaultShowEnum2) => { DefaultShowEnum2[DefaultShowEnum2["tile"] = 2] = "tile"; DefaultShowEnum2[DefaultShowEnum2["list"] = 1] = "list"; return DefaultShowEnum2; })(DefaultShowEnum$1 || {}); var PwdEnum$2 = /* @__PURE__ */ ((PwdEnum2) => { PwdEnum2[PwdEnum2["no"] = 0] = "no"; PwdEnum2[PwdEnum2["yes"] = 1] = "yes"; PwdEnum2[PwdEnum2["self"] = 2] = "self"; return PwdEnum2; })(PwdEnum$2 || {}); var CopyValueEnum$1 = /* @__PURE__ */ ((CopyValueEnum2) => { CopyValueEnum2[CopyValueEnum2["shareLink"] = 0] = "shareLink"; CopyValueEnum2[CopyValueEnum2["extraLink"] = 1] = "extraLink"; return CopyValueEnum2; })(CopyValueEnum$1 || {}); const transformExcelInfoData$6 = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.timeCode) { case ExpireTimeEnum$5.oneDay: time = "1天"; break; case ExpireTimeEnum$5.sevenDay: time = "7天"; break; case ExpireTimeEnum$5.thirtyDay: time = "30天"; break; case ExpireTimeEnum$5.forever: time = "永久"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.url) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": time }; })) ?? []; }; const transformExcelExtraLinkData = (data) => { return (data == null ? void 0 : data.map((item) => ({ "文件名称": (item == null ? void 0 : item.fileName) ?? "", "直链地址": (item == null ? void 0 : item.link) ?? "" }))) ?? []; }; const getSelectInfoList$1 = () => { var _a, _b, _c, _d, _e, _f, _g, _h; const reactDOM = document.querySelector(".hombody"); const key = (_a = Object.keys(reactDOM)) == null ? void 0 : _a.find( (key2) => key2.startsWith("__reactInternalInstance$") ); const { dataSource, rowSelection } = ((_h = (_g = (_f = (_e = (_d = (_c = (_b = reactDOM[key]) == null ? void 0 : _b.pendingProps) == null ? void 0 : _c.children) == null ? void 0 : _d.props) == null ? void 0 : _e.children[0]) == null ? void 0 : _f.props) == null ? void 0 : _g.children) == null ? void 0 : _h.props) ?? {}; if (dataSource && rowSelection) { const keys = (rowSelection == null ? void 0 : rowSelection.selectedRowKeys) ?? []; const temp = dataSource.filter((item) => keys.includes(item.FileId)); return temp; } else { return []; } }; const use123Cloud = () => { const userOptions = vue.ref({ expiration: ExpireTimeEnum$5.forever, displayStatus: DefaultShowEnum$1.list, pwdType: PwdEnum$2.yes, pwd: "", //自定义提取码或随机提取码 shareDelay: 500, shareProgress: 0, shareResultInfoList: [], shareInfoUserSee: "", isSharing: false, extraLinkInfoList: [], extraLinkUserSee: "" }); const transformOptions = (params) => { let sharePwd = ""; if (params.pwdType === PwdEnum$2.yes) { sharePwd = generateRandomString(4); } else if (params.pwdType === PwdEnum$2.self) { sharePwd = params.pwd; } let expiration; switch (params.expiration) { case ExpireTimeEnum$5.oneDay: expiration = getDate123Cloud(1); break; case ExpireTimeEnum$5.sevenDay: expiration = getDate123Cloud(7); break; case ExpireTimeEnum$5.thirtyDay: expiration = getDate123Cloud(30); break; case ExpireTimeEnum$5.forever: expiration = getDate123Cloud(99); break; } return { displayStatus: params.displayStatus, sharePwd, expiration }; }; const transformInfoStyle = (info) => { let time; switch (info.timeCode) { case ExpireTimeEnum$5.oneDay: time = "1天"; break; case ExpireTimeEnum$5.sevenDay: time = "7天"; break; case ExpireTimeEnum$5.thirtyDay: time = "30天"; break; case ExpireTimeEnum$5.forever: time = "永久"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.url} 提取码:${info.pwd ?? "为空"} 分享有效时间: ${time}`; }; const transformResult = (result) => { const { data } = result || {}; return { ShareKey: (data == null ? void 0 : data.ShareKey) ?? "分享失败", message: result.message ?? "", code: result.code }; }; const transformLinkResult = (info) => { return `文件名称:${info.fileName} 直链地址:${info.link}`; }; const handleBatchOperation = async () => { var _a, _b; const selectedRows = getSelectInfoList$1(); if (!selectedRows.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } if (userOptions.value.pwdType === PwdEnum$2.self && !userOptions.value.pwd) { return tdesignVueNext.MessagePlugin.warning("设置提取码为自定义提取码,请填写自定义提取码"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let fileInfo of selectedRows) { const data = { ...transformOptions(userOptions.value), driveId: 0, event: "shareCreate", fileIdList: fileInfo.FileId, //文件id fileNum: 1, //文件数量, operatePlace: 1, renameVisible: false, shareModality: 2, shareName: fileInfo.FileName //分享文件名 }; const randomParams = get123CloudSecret(); const { data: backData } = await axios({ method: "post", url: `${window.location.origin}/a/api/share/create`, params: { [randomParams[0]]: randomParams[1] }, data, headers: { "Content-Type": "application/json;charset=UTF-8", "Authorization": "Bearer " + ((_a = localStorage.getItem("authorToken")) == null ? void 0 : _a.slice(1, -1)), "LoginUuid": (_b = localStorage.getItem("LoginUuid")) == null ? void 0 : _b.slice(1, -1), "platform": "web" } }).catch(() => ({ data: {} })); const backResult = transformResult(backData); let tempData = { fileName: fileInfo.FileName, url: `${window.location.origin}/s/` + backResult.ShareKey, pwd: data.sharePwd, time: data.expiration, timeCode: userOptions.value.expiration }; userOptions.value.shareResultInfoList.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += transformInfoStyle(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / selectedRows.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleBatchExtraLink = async () => { var _a, _b, _c; const selectedRows = getSelectInfoList$1(); if (!selectedRows.length) { return tdesignVueNext.MessagePlugin.warning("请选择要提取直链的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let fileInfo of selectedRows) { const randomParams = get123CloudSecret(); const { data } = await axios({ method: "get", url: `${window.location.origin}/a/api/cdn-link/url`, params: { [randomParams[0]]: randomParams[1], fileID: fileInfo.FileId }, headers: { "Content-Type": "application/json;charset=UTF-8", "Authorization": "Bearer " + ((_a = localStorage.getItem("authorToken")) == null ? void 0 : _a.slice(1, -1)), "LoginUuid": (_b = localStorage.getItem("LoginUuid")) == null ? void 0 : _b.slice(1, -1), "platform": "web" } }).catch(() => ({ data: {} })); const tempData = { fileName: fileInfo.FileName, //文件名 link: ((_c = data == null ? void 0 : data.data) == null ? void 0 : _c.url) ?? "" }; userOptions.value.extraLinkInfoList.push(tempData); currentShareInfo.push(tempData); userOptions.value.extraLinkUserSee += transformLinkResult(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / selectedRows.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量获取直链成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareResultInfoList = []; userOptions.value.extraLinkInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.extraLinkUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = (type = CopyValueEnum$1.shareLink) => { if (type === CopyValueEnum$1.shareLink) { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); } else if (type === CopyValueEnum$1.extraLink) { CopyValueToClipBoard(userOptions.value.extraLinkUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); } }; const download = (type = CopyValueEnum$1.shareLink) => { if (type === CopyValueEnum$1.shareLink) { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); } else if (type === CopyValueEnum$1.extraLink) { DownloadTxt(`${cloudInfoStore.cloudName}直链地址${Date.now()}`, userOptions.value.extraLinkUserSee); } }; const downloadExcel = (type = CopyValueEnum$1.shareLink) => { if (type === CopyValueEnum$1.shareLink) { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$6(userOptions.value.shareResultInfoList)); } else if (type === CopyValueEnum$1.extraLink) { exportXlsxFile(`${cloudInfoStore.cloudName}直链${Date.now()}.xlsx`, transformExcelExtraLinkData(userOptions.value.extraLinkInfoList)); } }; return { userOptions, transformOptions, transformInfoStyle, transformResult, transformLinkResult, handleBatchOperation, handleBatchExtraLink, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$7 = (n) => (vue.pushScopeId("data-v-d65c6fd0"), n = n(), vue.popScopeId(), n); const _hoisted_1$8 = { class: "cloud123" }; const _hoisted_2$7 = { class: "cloud123_progress" }; const _hoisted_3$7 = { class: "cloud123_option" }; const _hoisted_4$7 = { class: "cloud123_option_item" }; const _hoisted_5$7 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "延迟(毫秒):", -1)); const _hoisted_6$7 = { class: "cloud123_option_item" }; const _hoisted_7$6 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "有效期:", -1)); const _hoisted_8$6 = { class: "cloud123_option_item" }; const _hoisted_9$6 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "默认展示:", -1)); const _hoisted_10$4 = { class: "cloud123_option_item" }; const _hoisted_11$4 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "分享形式:", -1)); const _hoisted_12$1 = { key: 0, class: "cloud123_option_item" }; const _hoisted_13$1 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "分享形式:", -1)); const _hoisted_14 = { style: { "margin-top": "10px" } }; const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleBatchExtraLink, handleEnd, copyValue, download, downloadExcel } = use123Cloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_input = vue.resolveComponent("t-input"); const _component_t_textarea = vue.resolveComponent("t-textarea"); const _component_t_collapse_panel = vue.resolveComponent("t-collapse-panel"); const _component_t_collapse = vue.resolveComponent("t-collapse"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [ vue.createElementVNode("div", _hoisted_2$7, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_3$7, [ vue.createVNode(_component_t_collapse, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_collapse_panel, { value: vue.unref(CopyValueEnum$1).shareLink, header: "分享配置" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", null, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[0] || (_cache[0] = ($event) => vue.unref(copyValue)(vue.unref(CopyValueEnum$1).shareLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[1] || (_cache[1] = ($event) => vue.unref(download)(vue.unref(CopyValueEnum$1).shareLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[2] || (_cache[2] = ($event) => vue.unref(downloadExcel)(vue.unref(CopyValueEnum$1).shareLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_4$7, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_5$7 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_6$7, [ _hoisted_7$6, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expiration, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(userOptions).expiration = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$5).oneDay }, { default: vue.withCtx(() => [ vue.createTextVNode("1天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$5).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$5).thirtyDay }, { default: vue.withCtx(() => [ vue.createTextVNode("30天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$5).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_8$6, [ _hoisted_9$6, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).displayStatus, "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => vue.unref(userOptions).displayStatus = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(DefaultShowEnum$1).tile }, { default: vue.withCtx(() => [ vue.createTextVNode("平铺") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(DefaultShowEnum$1).list }, { default: vue.withCtx(() => [ vue.createTextVNode("列表") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_10$4, [ _hoisted_11$4, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).pwdType, "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => vue.unref(userOptions).pwdType = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$2).no }, { default: vue.withCtx(() => [ vue.createTextVNode("无提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$2).yes }, { default: vue.withCtx(() => [ vue.createTextVNode("随机提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$2).self }, { default: vue.withCtx(() => [ vue.createTextVNode("自定义提取码") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]), vue.unref(userOptions).pwdType === vue.unref(PwdEnum$2).self ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$1, [ _hoisted_13$1, vue.createVNode(_component_t_input, { modelValue: vue.unref(userOptions).pwd, "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => vue.unref(userOptions).pwd = $event), placeholder: "请输入自定义提取码", maxlength: "4" }, null, 8, ["modelValue"]) ])) : vue.createCommentVNode("", true), vue.createElementVNode("div", null, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_collapse_panel, { value: vue.unref(CopyValueEnum$1).extraLink, header: "获取直链(123云盘VIP才可以用)" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", null, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchExtraLink), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量提取直链") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[8] || (_cache[8] = ($event) => vue.unref(copyValue)(vue.unref(CopyValueEnum$1).extraLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[9] || (_cache[9] = ($event) => vue.unref(download)(vue.unref(CopyValueEnum$1).extraLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载直链") ]), _: 1 }), vue.createVNode(_component_t_button, { theme: "default", onClick: _cache[10] || (_cache[10] = ($event) => vue.unref(downloadExcel)(vue.unref(CopyValueEnum$1).extraLink)) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_14, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).extraLinkUserSee, placeholder: "直链(格式为文件名称: xxxx 直链地址: xxxx)" }, null, 8, ["value"]) ]) ]), _: 1 }, 8, ["value"]) ]), _: 1 }) ]) ]); }; } }); const cloud123 = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-d65c6fd0"]]); var PwdEnum$1 = /* @__PURE__ */ ((PwdEnum2) => { PwdEnum2[PwdEnum2["no"] = 0] = "no"; PwdEnum2[PwdEnum2["yes"] = 1] = "yes"; PwdEnum2[PwdEnum2["self"] = 2] = "self"; return PwdEnum2; })(PwdEnum$1 || {}); var TaskEnum = /* @__PURE__ */ ((TaskEnum2) => { TaskEnum2[TaskEnum2["file"] = 18] = "file"; TaskEnum2[TaskEnum2["share"] = 22] = "share"; TaskEnum2[TaskEnum2["setCodeFile"] = 23] = "setCodeFile"; TaskEnum2[TaskEnum2["setCodeFolder"] = 16] = "setCodeFolder"; TaskEnum2[TaskEnum2["reqFolderList"] = 47] = "reqFolderList"; TaskEnum2[TaskEnum2["reqFileList"] = 5] = "reqFileList"; return TaskEnum2; })(TaskEnum || {}); var events = ["load", "loadend", "timeout", "error", "readystatechange", "abort"]; var OriginXhr = "__origin_xhr"; function configEvent(event, xhrProxy) { var e = {}; for (var attr in event) e[attr] = event[attr]; e.target = e.currentTarget = xhrProxy; return e; } function hook(proxy2, win) { win = win || window; var originXhr = win.XMLHttpRequest; var hooking = true; var HookXMLHttpRequest = function() { var xhr = new originXhr(); for (var i = 0; i < events.length; ++i) { var key = "on" + events[i]; if (xhr[key] === void 0) xhr[key] = null; } for (var attr in xhr) { var type = ""; try { type = typeof xhr[attr]; } catch (e) { } if (type === "function") { this[attr] = hookFunction(attr); } else if (attr !== OriginXhr) { Object.defineProperty(this, attr, { get: getterFactory(attr), set: setterFactory(attr), enumerable: true }); } } var that = this; xhr.getProxy = function() { return that; }; this[OriginXhr] = xhr; }; HookXMLHttpRequest.prototype = originXhr.prototype; HookXMLHttpRequest.prototype.constructor = HookXMLHttpRequest; win.XMLHttpRequest = HookXMLHttpRequest; Object.assign(win.XMLHttpRequest, { UNSENT: 0, OPENED: 1, HEADERS_RECEIVED: 2, LOADING: 3, DONE: 4 }); function getterFactory(attr) { return function() { var originValue = this[OriginXhr][attr]; if (hooking) { var v = this.hasOwnProperty(attr + "_") ? this[attr + "_"] : originValue; var attrGetterHook = (proxy2[attr] || {})["getter"]; return attrGetterHook && attrGetterHook(v, this) || v; } else { return originValue; } }; } function setterFactory(attr) { return function(v) { var xhr = this[OriginXhr]; if (hooking) { var that = this; var hook2 = proxy2[attr]; if (attr.substring(0, 2) === "on") { that[attr + "_"] = v; xhr[attr] = function(e) { e = configEvent(e, that); var ret = proxy2[attr] && proxy2[attr].call(that, xhr, e); ret || v.call(that, e); }; } else { var attrSetterHook = (hook2 || {})["setter"]; v = attrSetterHook && attrSetterHook(v, that) || v; this[attr + "_"] = v; try { xhr[attr] = v; } catch (e) { } } } else { xhr[attr] = v; } }; } function hookFunction(fun) { return function() { var args = [].slice.call(arguments); if (proxy2[fun] && hooking) { var ret = proxy2[fun].call(this, args, this[OriginXhr]); if (ret) return ret; } return this[OriginXhr][fun].apply(this[OriginXhr], args); }; } function unHook() { hooking = false; if (win.XMLHttpRequest === HookXMLHttpRequest) { win.XMLHttpRequest = originXhr; HookXMLHttpRequest.prototype.constructor = originXhr; originXhr = void 0; } } return { originXhr, unHook }; } var eventLoad = events[0], eventLoadEnd = events[1], eventTimeout = events[2], eventError = events[3], eventReadyStateChange = events[4], eventAbort = events[5]; var prototype = "prototype"; function proxy(proxy2, win) { win = win || window; return proxyAjax(proxy2, win); } function trim(str) { return str.replace(/^\s+|\s+$/g, ""); } function getEventTarget(xhr) { return xhr.watcher || (xhr.watcher = document.createElement("a")); } function triggerListener(xhr, name) { var xhrProxy = xhr.getProxy(); var callback = "on" + name + "_"; var event = configEvent({ type: name }, xhrProxy); xhrProxy[callback] && xhrProxy[callback](event); var evt; if (typeof Event === "function") { evt = new Event(name, { bubbles: false }); } else { evt = document.createEvent("Event"); evt.initEvent(name, false, true); } getEventTarget(xhr).dispatchEvent(evt); } function Handler(xhr) { this.xhr = xhr; this.xhrProxy = xhr.getProxy(); } Handler[prototype] = /* @__PURE__ */ Object.create({ resolve: function resolve(response) { var xhrProxy = this.xhrProxy; var xhr = this.xhr; xhrProxy.readyState = 4; xhr.resHeader = response.headers; xhrProxy.response = xhrProxy.responseText = response.response; xhrProxy.statusText = response.statusText; xhrProxy.status = response.status; triggerListener(xhr, eventReadyStateChange); triggerListener(xhr, eventLoad); triggerListener(xhr, eventLoadEnd); }, reject: function reject(error) { this.xhrProxy.status = 0; triggerListener(this.xhr, error.type); triggerListener(this.xhr, eventLoadEnd); } }); function makeHandler(next) { function sub(xhr) { Handler.call(this, xhr); } sub[prototype] = Object.create(Handler[prototype]); sub[prototype].next = next; return sub; } var RequestHandler = makeHandler(function(rq) { var xhr = this.xhr; rq = rq || xhr.config; xhr.withCredentials = rq.withCredentials; xhr.open(rq.method, rq.url, rq.async !== false, rq.user, rq.password); for (var key in rq.headers) { xhr.setRequestHeader(key, rq.headers[key]); } xhr.send(rq.body); }); var ResponseHandler = makeHandler(function(response) { this.resolve(response); }); var ErrorHandler = makeHandler(function(error) { this.reject(error); }); function proxyAjax(proxy2, win) { var onRequest = proxy2.onRequest, onResponse = proxy2.onResponse, onError = proxy2.onError; function getResponseData(xhrProxy) { var responseType = xhrProxy.responseType; if (!responseType || responseType === "text") { return xhrProxy.responseText; } var response = xhrProxy.response; if (responseType === "json" && !response) { try { return JSON.parse(xhrProxy.responseText); } catch (e) { console.warn(e); } } return response; } function handleResponse(xhr, xhrProxy) { var handler = new ResponseHandler(xhr); var ret = { response: getResponseData(xhrProxy), status: xhrProxy.status, statusText: xhrProxy.statusText, config: xhr.config, headers: xhr.resHeader || xhr.getAllResponseHeaders().split("\r\n").reduce(function(ob, str) { if (str === "") return ob; var m = str.split(":"); ob[m.shift()] = trim(m.join(":")); return ob; }, {}) }; if (!onResponse) return handler.resolve(ret); onResponse(ret, handler); } function onerror(xhr, xhrProxy, error, errorType) { var handler = new ErrorHandler(xhr); error = { config: xhr.config, error, type: errorType }; if (onError) { onError(error, handler); } else { handler.next(error); } } function preventXhrProxyCallback() { return true; } function errorCallback(errorType) { return function(xhr, e) { onerror(xhr, this, e, errorType); return true; }; } function stateChangeCallback(xhr, xhrProxy) { if (xhr.readyState === 4 && xhr.status !== 0) { handleResponse(xhr, xhrProxy); } else if (xhr.readyState !== 4) { triggerListener(xhr, eventReadyStateChange); } return true; } var { originXhr, unHook } = hook({ onload: preventXhrProxyCallback, onloadend: preventXhrProxyCallback, onerror: errorCallback(eventError), ontimeout: errorCallback(eventTimeout), onabort: errorCallback(eventAbort), onreadystatechange: function(xhr) { return stateChangeCallback(xhr, this); }, open: function open2(args, xhr) { var _this = this; var config = xhr.config = { headers: {} }; config.method = args[0]; config.url = args[1]; config.async = args[2]; config.user = args[3]; config.password = args[4]; config.xhr = xhr; var evName = "on" + eventReadyStateChange; if (!xhr[evName]) { xhr[evName] = function() { return stateChangeCallback(xhr, _this); }; } if (onRequest) return true; }, send: function(args, xhr) { var config = xhr.config; config.withCredentials = xhr.withCredentials; config.body = args[0]; if (onRequest) { var req = function() { onRequest(config, new RequestHandler(xhr)); }; config.async === false ? req() : setTimeout(req); return true; } }, setRequestHeader: function(args, xhr) { xhr.config.headers[args[0].toLowerCase()] = args[1]; if (onRequest) return true; }, addEventListener: function(args, xhr) { var _this = this; if (events.indexOf(args[0]) !== -1) { var handler = args[1]; getEventTarget(xhr).addEventListener(args[0], function(e) { var event = configEvent(e, _this); event.type = args[0]; event.isTrusted = true; handler.call(_this, event); }); return true; } }, getAllResponseHeaders: function(_, xhr) { var headers = xhr.resHeader; if (headers) { var header = ""; for (var key in headers) { header += key + ": " + headers[key] + "\r\n"; } return header; } }, getResponseHeader: function(args, xhr) { var headers = xhr.resHeader; if (headers) { return headers[(args[0] || "").toLowerCase()]; } } }, win); return { originXhr, unProxy: unHook }; } var FileTypeEnum = /* @__PURE__ */ ((FileTypeEnum2) => { FileTypeEnum2[FileTypeEnum2["file"] = 0] = "file"; FileTypeEnum2[FileTypeEnum2["folder"] = 1] = "folder"; return FileTypeEnum2; })(FileTypeEnum || {}); const transformExcelInfoData$5 = (data) => { return (data == null ? void 0 : data.map((item) => { return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.url) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": (item == null ? void 0 : item.time) ?? "" }; })) ?? []; }; const uselanzouCloud = () => { const userOptions = vue.ref({ pwdType: PwdEnum$1.yes, pwd: "", //自定义提取码或随机提取码 shareDelay: 500, shareProgress: 0, selectFileInfoList: [], shareResultInfoList: [], listData: [], lastFolderData: [], shareInfoUserSee: "", isSharing: false }); const init = () => { setTimeout(() => { const abc = document.querySelector("iframe"); const iframeWindow = abc.contentWindow; proxy({ //请求成功后进入0. onResponse: (response, handler) => { var _a, _b; if (handler.xhr.config.url.startsWith("/doupload.php")) { const bodyParams = bodyParse(handler.xhr.config.body ?? ""); const { task, pg } = bodyParams; let data = []; if (task * 1 === TaskEnum.reqFolderList) { data = response.response ? ((_a = JSON.parse(response.response)) == null ? void 0 : _a.text) ?? [] : []; userOptions.value.lastFolderData = data; userOptions.value.listData = [...vue.markRaw(userOptions.value.listData), ...data]; } else if (task * 1 === TaskEnum.reqFileList) { data = response.response ? ((_b = JSON.parse(response.response)) == null ? void 0 : _b.text) ?? [] : []; if (pg * 1 === 1) { userOptions.value.listData = [...vue.markRaw(userOptions.value.lastFolderData), ...data]; } else { userOptions.value.listData = [...vue.markRaw(userOptions.value.listData), ...data]; } } } handler.next(response); } //@ts-ignore }, iframeWindow); }, 1e3); }; init(); const transformInfoStyle = (info) => { return `文件名称: ${info.fileName} 分享链接:${info.url} 提取码:${info.pwd ?? "空"} 分享有效时间: 永久`; }; const transformResult = (result) => { return { is_newd: (result == null ? void 0 : result.is_newd) ?? "", pwd: userOptions.value.pwdType === PwdEnum$1.self ? userOptions.value.pwd : result == null ? void 0 : result.pwd, f_id: (result == null ? void 0 : result.f_id) ?? "", new_url: (result == null ? void 0 : result.new_url) ?? "", name: (result == null ? void 0 : result.name) ?? "" }; }; const handleBatchOperation = async () => { const { selectFileInfoList } = userOptions.value; if (!selectFileInfoList.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let fileInfo of selectFileInfoList) { const formData = new FormData(); formData.append("task", fileInfo.type === FileTypeEnum.file ? TaskEnum.share + "" : TaskEnum.file + ""); formData.append(fileInfo.type === FileTypeEnum.file ? "file_id" : "folder_id", fileInfo.id + ""); const { data: shareData } = await axios({ method: "post", url: `${window.location.origin}/doupload.php`, data: formData }).catch(() => ({ data: {} })); const backResult = transformResult((shareData == null ? void 0 : shareData.info) ?? {}); if (userOptions.value.pwdType !== PwdEnum$1.no) { await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); formData.set("task", fileInfo.type === FileTypeEnum.file ? TaskEnum.setCodeFile + "" : TaskEnum.setCodeFolder + ""); formData.append("shows", "1"); formData.append("shownames", backResult.pwd); await axios({ method: "post", url: `${window.location.origin}/doupload.php`, data: formData }).catch(() => ({ data: {} })); } let tempData = { fileName: fileInfo.name_all || fileInfo.name, url: fileInfo.type === FileTypeEnum.file ? backResult.is_newd + "/" + backResult.f_id : backResult.new_url, pwd: userOptions.value.pwdType !== PwdEnum$1.no ? backResult.pwd : "空" }; userOptions.value.shareResultInfoList.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += transformInfoStyle(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareResultInfoList = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$5(userOptions.value.shareResultInfoList)); }; return { init, userOptions, transformInfoStyle, transformResult, handleBatchOperation, handleEnd, copyValue, download, downloadExcel }; }; const useListModule = (props, emits) => { const selectedRowKeys = vue.ref([]); const selectedRowInfos = vue.ref([]); const tableProps = vue.ref({ rowKey: "id", columns: [ { colKey: "row-select", type: "multiple", checkProps: ({ row }) => ({ disabled: row.Status === 2 }), width: 50 }, { colKey: "type", title: "类型", cell: (h2, { row }) => { return h2("img", { src: row["type"] === FileTypeEnum.file ? "https://pc.woozooo.com/images/filetype/txt.gif" : "https://pc.woozooo.com/images/folder_open.gif" }); }, width: 60 }, { colKey: "name", title: "文件名" }, { colKey: "size", title: "大小" }, { colKey: "time", title: "时间" } ], empty: "暂无数据,请重新进入任意文件夹目录以拦截获取文件数据", onSelectChange: (value, ctx) => { selectedRowKeys.value = value; selectedRowInfos.value = ctx.selectedRowData; emits("update:ids", value); emits("update:infos", ctx.selectedRowData); } }); const listData = vue.ref([]); const transformListData = (data) => { if (!data || data && !(data == null ? void 0 : data.length)) return []; return (data == null ? void 0 : data.map((item) => ({ id: (item == null ? void 0 : item.id) ? item == null ? void 0 : item.id : item == null ? void 0 : item.fol_id, name_all: (item == null ? void 0 : item.name_all) ?? "", //文件才有这个属性 name: (item == null ? void 0 : item.name) ?? "", size: (item == null ? void 0 : item.size) ?? "-", //文件才有 time: (item == null ? void 0 : item.time) ?? "-", //文件才有 type: (item == null ? void 0 : item.id) ? FileTypeEnum.file : FileTypeEnum.folder }))) ?? []; }; return { selectedRowKeys, selectedRowInfos, transformListData, tableProps, listData }; }; const _hoisted_1$7 = { class: "list" }; const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({ __name: "index", props: { list: {}, ids: {}, infos: {} }, emits: ["update:ids", "update:infos"], setup(__props, { emit: emits }) { const props = __props; const { tableProps, listData, selectedRowKeys, transformListData } = useListModule(props, emits); vue.watchEffect(() => { listData.value = transformListData(props.list); }); return (_ctx, _cache) => { const _component_t_table = vue.resolveComponent("t-table"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [ vue.createVNode(_component_t_table, vue.mergeProps(vue.unref(tableProps), { data: vue.unref(listData), "selected-row-keys": vue.unref(selectedRowKeys), "select-on-row-click": "" }), null, 16, ["data", "selected-row-keys"]) ]); }; } }); const ListModule = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-1b910cfc"]]); const _withScopeId$6 = (n) => (vue.pushScopeId("data-v-98dce44d"), n = n(), vue.popScopeId(), n); const _hoisted_1$6 = { class: "lanzouCloud" }; const _hoisted_2$6 = { class: "lanzouCloud_operation" }; const _hoisted_3$6 = { class: "lanzouCloud_progress" }; const _hoisted_4$6 = { class: "lanzouCloud_option" }; const _hoisted_5$6 = { class: "lanzouCloud_option_item" }; const _hoisted_6$6 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "lanzouCloud_option_item_title" }, "延迟(毫秒):", -1)); const _hoisted_7$5 = { class: "lanzouCloud_option_item" }; const _hoisted_8$5 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "lanzouCloud_option_item_title" }, "分享形式:", -1)); const _hoisted_9$5 = { key: 0, style: { "margin-top": "4px" } }; const _hoisted_10$3 = { style: { "height": "60vh", "overflow-y": "scroll" } }; const _hoisted_11$3 = { class: "lanzouCloud_result" }; const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = uselanzouCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_input = vue.resolveComponent("t-input"); const _component_t_collapse_panel = vue.resolveComponent("t-collapse-panel"); const _component_t_collapse = vue.resolveComponent("t-collapse"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [ vue.createElementVNode("div", _hoisted_2$6, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_3$6, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_4$6, [ vue.createVNode(_component_t_collapse, { expandMutex: "" }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_collapse_panel, { value: "0", header: "分享配置" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", _hoisted_5$6, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_6$6 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_7$5, [ _hoisted_8$5, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).pwdType, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).pwdType = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$1).no }, { default: vue.withCtx(() => [ vue.createTextVNode("无提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$1).yes }, { default: vue.withCtx(() => [ vue.createTextVNode("随机提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum$1).self }, { default: vue.withCtx(() => [ vue.createTextVNode("自定义提取码") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]), vue.unref(userOptions).pwdType === vue.unref(PwdEnum$1).self ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9$5, [ vue.createVNode(_component_t_input, { modelValue: vue.unref(userOptions).pwd, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).pwd = $event), placeholder: "请输入自定义提取码(只支持数字和英文,最少2位最长6位)", maxlength: "6" }, null, 8, ["modelValue"]) ])) : vue.createCommentVNode("", true) ]), _: 1 }), vue.createVNode(_component_t_collapse_panel, { value: "1", header: "文件选择" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", _hoisted_10$3, [ vue.createVNode(ListModule, { list: vue.unref(userOptions).listData, infos: vue.unref(userOptions).selectFileInfoList, "onUpdate:infos": _cache[3] || (_cache[3] = ($event) => vue.unref(userOptions).selectFileInfoList = $event) }, null, 8, ["list", "infos"]) ]) ]), _: 1 }) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_11$3, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloudLanZou = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-98dce44d"]]); var ExpireTimeEnum$4 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 1] = "forever"; ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 2] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 3] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["thirtyDay"] = 4] = "thirtyDay"; return ExpireTimeEnum2; })(ExpireTimeEnum$4 || {}); var HasPwd = /* @__PURE__ */ ((HasPwd2) => { HasPwd2[HasPwd2["no"] = 0] = "no"; HasPwd2[HasPwd2["yes"] = 1] = "yes"; return HasPwd2; })(HasPwd || {}); var UrlTypeEnum = /* @__PURE__ */ ((UrlTypeEnum2) => { UrlTypeEnum2[UrlTypeEnum2["noPwd"] = 1] = "noPwd"; UrlTypeEnum2[UrlTypeEnum2["hasPwd"] = 2] = "hasPwd"; return UrlTypeEnum2; })(UrlTypeEnum || {}); function getTaskID(data) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "post", url: "https://drive-pc.quark.cn/1/clouddrive/share?pr=ucpro&fr=pc", headers: { "accept": "application/json, text/plain, */*", "content-type": "application/json" }, data: JSON.stringify(data), onload: ({ response }) => { const { data: data2 } = JSON.parse(response) || {}; const task_id = (data2 == null ? void 0 : data2.task_id) ?? ""; resolve2(task_id); }, onerror: (res) => { reject2(res); } }); }); } function getShareID(task_id, retry_index = 0) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "get", url: `https://drive-pc.quark.cn/1/clouddrive/task?pr=ucpro&fr=pc&task_id=${task_id}&retry_index=${retry_index}`, onload: ({ response }) => { const { data } = JSON.parse(response) || {}; const share_id = (data == null ? void 0 : data.share_id) ?? ""; resolve2(share_id); }, onerror: (res) => { reject2(res); } }); }); } function getShareUrl(share_id) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "post", url: "https://drive-pc.quark.cn/1/clouddrive/share/password?pr=ucpro&fr=pc", data: JSON.stringify({ share_id }), onload: ({ response }) => { const { data } = JSON.parse(response) || {}; const { passcode, share_url, title } = data || {}; resolve2(share_url ?? ""); }, onerror: (res) => { reject2(res); } }); }); } const transformExcelInfoData$4 = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.expireTime) { case ExpireTimeEnum$4.oneDay: time = "1天"; break; case ExpireTimeEnum$4.sevenDay: time = "7天"; break; case ExpireTimeEnum$4.forever: time = "永久"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.url) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": time }; })) ?? []; }; const usequarkCloud = () => { const userOptions = vue.ref({ shareDelay: 1e3, expireTime: ExpireTimeEnum$4.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false, pwdType: HasPwd.yes }); const handleTransformFormat = (info) => { let time; switch (info.expireTime) { case ExpireTimeEnum$4.oneDay: time = "1天"; break; case ExpireTimeEnum$4.sevenDay: time = "7天"; break; case ExpireTimeEnum$4.forever: time = "永久"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.url} 提取码:${info.pwd ?? "为空"} 分享有效时间: ${time}`; }; const handleBatchOperation = async () => { var _a, _b, _c, _d, _e; const selectDOM = document.querySelectorAll((_a = ShareDOMSelect["cloudQuark"]) == null ? void 0 : _a.select); if (!selectDOM.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let dom of selectDOM) { userOptions.value.selectFileInfoList.push({ id: dom.getAttribute((_c = (_b = ShareDOMSelect["cloudQuark"]) == null ? void 0 : _b.idAttribute) == null ? void 0 : _c[0]) ?? "", fileName: ((_e = dom.querySelector((_d = ShareDOMSelect["cloudQuark"]) == null ? void 0 : _d.fileNameSelect)) == null ? void 0 : _e.textContent) ?? "(!!$$未知名称!!$$)", expireTime: userOptions.value.expireTime, pwd: userOptions.value.pwdType === HasPwd.yes ? generateRandomString(4) : "" }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const sendData = { expired_type: fileInfo.expireTime, fid_list: [fileInfo.id], title: fileInfo.fileName, url_type: fileInfo.pwd ? UrlTypeEnum.hasPwd : UrlTypeEnum.noPwd, passcode: fileInfo.pwd }; const task_id = await getTaskID(sendData).catch(() => ""); const share_id = await getShareID(task_id).catch(() => ""); let share_url = ""; if (share_id) { share_url = await getShareUrl(share_id).catch(() => ""); } else { await new Promise((r) => setTimeout(r, 500)); let share_id2 = await getShareID(task_id, 1).catch(() => ""); let i = 2; while (i < 4) { await new Promise((r) => setTimeout(r, 500)); share_id2 = await getShareID(task_id, i++).catch(() => ""); if (share_id2) break; } share_url = await getShareUrl(share_id2).catch(() => ""); } let tempData = { ...fileInfo, url: share_url }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.selectFileInfoList = []; userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareInfo = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$4(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleEnd, copyValue, downloadExcel, download }; }; const _withScopeId$5 = (n) => (vue.pushScopeId("data-v-7ddcaef9"), n = n(), vue.popScopeId(), n); const _hoisted_1$5 = { class: "quarkCloud" }; const _hoisted_2$5 = { class: "quarkCloud_option" }; const _hoisted_3$5 = { class: "quarkCloud_option_item" }; const _hoisted_4$5 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ vue.createElementVNode("span", null, "有效期:", -1)); const _hoisted_5$5 = { class: "quarkCloud_option_item", style: { "margin": "6px 0" } }; const _hoisted_6$5 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ vue.createElementVNode("span", null, "提取码:", -1)); const _hoisted_7$4 = { class: "quarkCloud_operation" }; const _hoisted_8$4 = { class: "quarkCloud_progress" }; const _hoisted_9$4 = { class: "quarkCloud_result" }; const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = usequarkCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [ vue.createElementVNode("div", _hoisted_2$5, [ vue.createElementVNode("div", _hoisted_3$5, [ _hoisted_4$5, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).expireTime = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$4).oneDay }, { default: vue.withCtx(() => [ vue.createTextVNode("1天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$4).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$4).thirtyDay }, { default: vue.withCtx(() => [ vue.createTextVNode("30天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$4).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]), vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ vue.createTextVNode("延迟(毫秒):") ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100", min: "1000" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_5$5, [ _hoisted_6$5, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).pwdType, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).pwdType = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(HasPwd).no }, { default: vue.withCtx(() => [ vue.createTextVNode("无提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(HasPwd).yes }, { default: vue.withCtx(() => [ vue.createTextVNode("有提取码") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]) ]), vue.createElementVNode("div", _hoisted_7$4, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_8$4, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_9$4, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloudQuark = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-7ddcaef9"]]); var ExpireTimeEnum$3 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 2] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 4] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$3 || {}); var DefaultShowEnum = /* @__PURE__ */ ((DefaultShowEnum2) => { DefaultShowEnum2[DefaultShowEnum2["tile"] = 2] = "tile"; DefaultShowEnum2[DefaultShowEnum2["list"] = 1] = "list"; return DefaultShowEnum2; })(DefaultShowEnum || {}); const transformExcelInfoData$3 = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.timeCode) { case ExpireTimeEnum$3.oneDay: time = "1天"; break; case ExpireTimeEnum$3.sevenDay: time = "7天"; break; case ExpireTimeEnum$3.forever: time = "永久"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.url) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": time }; })) ?? []; }; const use139Cloud = () => { const userOptions = vue.ref({ expiration: ExpireTimeEnum$3.forever, displayStatus: DefaultShowEnum.list, pwd: "", //自定义提取码或随机提取码 shareDelay: 500, shareProgress: 0, shareResultInfoList: [], shareInfoUserSee: "", isSharing: false, auth: "", //分享的Authorization userPhone: "" }); const init = () => { let t = "authorization"; let e = t + "=", a = document.cookie.split(";"), n = 0; for (; n < a.length; n++) { let o = a[n].trim(); if (0 == o.indexOf(e)) userOptions.value.auth = o.substring(e.length, o.length); } }; init(); const transformOptions = (params) => { let period; switch (params.expiration) { case ExpireTimeEnum$3.oneDay: period = 1; break; case ExpireTimeEnum$3.sevenDay: period = 7; break; case ExpireTimeEnum$3.forever: period = null; break; } return { period }; }; const transformInfoStyle = (info) => { let time; switch (info.timeCode) { case ExpireTimeEnum$3.oneDay: time = "1天"; break; case ExpireTimeEnum$3.sevenDay: time = "7天"; break; case ExpireTimeEnum$3.forever: time = "永久"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.url} 提取码:${info.pwd ?? "为空"} 分享有效时间: ${time}`; }; const transformResult = (result) => { var _a, _b, _c, _d; const list = ((_b = (_a = result == null ? void 0 : result.data) == null ? void 0 : _a.getOutLinkRes) == null ? void 0 : _b.getOutLinkResSet) ?? []; return { linkUrl: ((_c = list == null ? void 0 : list[0]) == null ? void 0 : _c.linkUrl) ?? "", passwd: ((_d = list == null ? void 0 : list[0]) == null ? void 0 : _d.passwd) ?? "" }; }; const handleBatchOperation = async () => { var _a, _b; const selectList = ((_b = (_a = document.querySelector(".main_file_list")) == null ? void 0 : _a.__vue__) == null ? void 0 : _b.selectList) ?? []; const selectFileInfoList = (selectList == null ? void 0 : selectList.map(({ item }) => ({ fileName: (item == null ? void 0 : item.contentName) ? item == null ? void 0 : item.contentName : item == null ? void 0 : item.catalogName, id: (item == null ? void 0 : item.contentID) ? item == null ? void 0 : item.contentID : item == null ? void 0 : item.catalogID, owner: (item == null ? void 0 : item.owner) ?? "", //分享用得到 catalogType: (item == null ? void 0 : item.contentID) ? 0 : 1 //0代表文件分享 1代表文件夹分享 }))) ?? []; if (!selectFileInfoList.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; for (let fileInfo of selectFileInfoList) { console.log(fileInfo); const data = { ...transformOptions(userOptions.value), caIDLst: fileInfo.catalogType === 1 ? [fileInfo.id] : [], //分享的文件夹 coIDLst: fileInfo.catalogType === 0 ? [fileInfo.id] : [], //分享的文件 commonAccountInfo: { //新建文件夹可能无法获取,就存储了下用户的手机,无法获取再从用户那边读取 account: fileInfo.owner ? fileInfo.owner : userOptions.value.userPhone, //账户名,一般是手机号 accountType: 1 }, dedicatedName: fileInfo.fileName, //文件或文件夹名称 encrypt: 1, extInfo: { isWatermark: 0, shareChannel: "3001" }, periodUnit: 1, pubType: 1, subLinkType: 0, viewerLst: [] }; const { data: backData } = await axios({ method: "post", url: `${window.location.origin}/orchestration/personalCloud-rebuild/outlink/v1.0/getOutLink`, data: { getOutLinkReq: data }, headers: { "Content-Type": "application/json;charset=UTF-8", "Authorization": userOptions.value.auth } }).catch(() => ({ data: {} })); const backResult = transformResult(backData); let tempData = { fileName: fileInfo.fileName, url: backResult.linkUrl, pwd: backResult.passwd, timeCode: userOptions.value.expiration }; userOptions.value.shareResultInfoList.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += transformInfoStyle(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareResultInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$3(userOptions.value.shareResultInfoList)); }; return { init, userOptions, transformOptions, transformInfoStyle, transformResult, handleBatchOperation, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$4 = (n) => (vue.pushScopeId("data-v-f1489390"), n = n(), vue.popScopeId(), n); const _hoisted_1$4 = { class: "cloud139" }; const _hoisted_2$4 = { class: "cloud139_operation" }; const _hoisted_3$4 = { class: "cloud139_progress" }; const _hoisted_4$4 = { class: "cloud139_option" }; const _hoisted_5$4 = { class: "cloud139_option_item" }; const _hoisted_6$4 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud139_option_item_title" }, "延迟(毫秒):", -1)); const _hoisted_7$3 = { class: "cloud139_option_item" }; const _hoisted_8$3 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud139_option_item_title" }, "有效期:", -1)); const _hoisted_9$3 = { class: "cloud139_result" }; const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = use139Cloud(); __expose({ handleEnd }); vue.onMounted(() => { var _a, _b, _c, _d, _e; userOptions.value.userPhone = ((_e = (_d = (_c = (_b = (_a = document.querySelector(".body_main")) == null ? void 0 : _a.__vue__) == null ? void 0 : _b.$store) == null ? void 0 : _c.state) == null ? void 0 : _d.auth) == null ? void 0 : _e.accountPhone) ?? ""; }); return (_ctx, _cache) => { const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_collapse_panel = vue.resolveComponent("t-collapse-panel"); const _component_t_collapse = vue.resolveComponent("t-collapse"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [ vue.createElementVNode("div", _hoisted_2$4, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_3$4, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_4$4, [ vue.createVNode(_component_t_collapse, { expandMutex: "", "default-expand-all": "" }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_collapse_panel, { value: "0", header: "分享配置" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", _hoisted_5$4, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_6$4 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_7$3, [ _hoisted_8$3, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expiration, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).expiration = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$3).oneDay }, { default: vue.withCtx(() => [ vue.createTextVNode("1天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$3).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$3).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]) ]), _: 1 }) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_9$3, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloud139 = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-f1489390"]]); var ExpireTimeEnum$2 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 1] = "oneDay"; ExpireTimeEnum2[ExpireTimeEnum2["twoDay"] = 2] = "twoDay"; ExpireTimeEnum2[ExpireTimeEnum2["threeDay"] = 3] = "threeDay"; ExpireTimeEnum2[ExpireTimeEnum2["fourDay"] = 4] = "fourDay"; ExpireTimeEnum2[ExpireTimeEnum2["fiveDay"] = 5] = "fiveDay"; ExpireTimeEnum2[ExpireTimeEnum2["sixDay"] = 6] = "sixDay"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 7] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = -1] = "forever"; return ExpireTimeEnum2; })(ExpireTimeEnum$2 || {}); var ExtractEnum$1 = /* @__PURE__ */ ((ExtractEnum2) => { ExtractEnum2[ExtractEnum2["forever"] = -1] = "forever"; ExtractEnum2[ExtractEnum2["One"] = 1] = "One"; ExtractEnum2[ExtractEnum2["Two"] = 2] = "Two"; ExtractEnum2[ExtractEnum2["Three"] = 3] = "Three"; ExtractEnum2[ExtractEnum2["Four"] = 4] = "Four"; ExtractEnum2[ExtractEnum2["Five"] = 5] = "Five"; ExtractEnum2[ExtractEnum2["Six"] = 6] = "Six"; ExtractEnum2[ExtractEnum2["Seven"] = 7] = "Seven"; ExtractEnum2[ExtractEnum2["Eight"] = 8] = "Eight"; ExtractEnum2[ExtractEnum2["Nine"] = 9] = "Nine"; ExtractEnum2[ExtractEnum2["Ten"] = 10] = "Ten"; ExtractEnum2[ExtractEnum2["Eleven"] = 11] = "Eleven"; ExtractEnum2[ExtractEnum2["Twelve"] = 12] = "Twelve"; ExtractEnum2[ExtractEnum2["Thirteen"] = 13] = "Thirteen"; ExtractEnum2[ExtractEnum2["Fourteen"] = 14] = "Fourteen"; ExtractEnum2[ExtractEnum2["Fifteen"] = 15] = "Fifteen"; ExtractEnum2[ExtractEnum2["Sixteen"] = 16] = "Sixteen"; ExtractEnum2[ExtractEnum2["Seventeen"] = 17] = "Seventeen"; ExtractEnum2[ExtractEnum2["Eighteen"] = 18] = "Eighteen"; ExtractEnum2[ExtractEnum2["Nineteen"] = 19] = "Nineteen"; ExtractEnum2[ExtractEnum2["Twenty"] = 20] = "Twenty"; return ExtractEnum2; })(ExtractEnum$1 || {}); const transformExcelInfoData$2 = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.expireTime) { case ExpireTimeEnum$2.forever: time = "永久"; break; case ExpireTimeEnum$2.oneDay: time = "1天"; break; case ExpireTimeEnum$2.twoDay: time = "2天"; break; case ExpireTimeEnum$2.threeDay: time = "3天"; break; case ExpireTimeEnum$2.fourDay: time = "4天"; break; case ExpireTimeEnum$2.fiveDay: time = "5天"; break; case ExpireTimeEnum$2.sixDay: time = "6天"; break; case ExpireTimeEnum$2.sevenDay: time = "7天"; break; default: time = "未知"; } let codeNumber; switch (item.extractNumber) { case ExtractEnum$1.forever: codeNumber = "无限"; break; case ExtractEnum$1.One: codeNumber = "1次"; break; case ExtractEnum$1.Two: codeNumber = "2次"; break; case ExtractEnum$1.Three: codeNumber = "3次"; break; case ExtractEnum$1.Four: codeNumber = "4次"; break; case ExtractEnum$1.Five: codeNumber = "5次"; break; case ExtractEnum$1.Six: codeNumber = "6次"; break; case ExtractEnum$1.Seven: codeNumber = "7次"; break; case ExtractEnum$1.Eight: codeNumber = "8次"; break; case ExtractEnum$1.Nine: codeNumber = "9次"; break; case ExtractEnum$1.Ten: codeNumber = "10次"; break; case ExtractEnum$1.Eleven: codeNumber = "11次"; break; case ExtractEnum$1.Twelve: codeNumber = "12次"; break; case ExtractEnum$1.Thirteen: codeNumber = "13次"; break; case ExtractEnum$1.Fourteen: codeNumber = "14次"; break; case ExtractEnum$1.Fifteen: codeNumber = "15次"; break; case ExtractEnum$1.Sixteen: codeNumber = "16次"; break; case ExtractEnum$1.Seventeen: codeNumber = "17次"; break; case ExtractEnum$1.Eighteen: codeNumber = "18次"; break; case ExtractEnum$1.Nineteen: codeNumber = "19次"; break; case ExtractEnum$1.Twenty: codeNumber = "20次"; break; default: codeNumber = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.share_url) ?? "", "提取码": (item == null ? void 0 : item.pass_code) ?? "", "有效期": time, "有效次数": codeNumber }; })) ?? []; }; const useXunCloud = () => { const userOptions = vue.ref({ expireTimeOptions: [ { label: "不限", value: ExpireTimeEnum$2.forever }, { label: "1天", value: ExpireTimeEnum$2.oneDay }, { label: "2天", value: ExpireTimeEnum$2.twoDay }, { label: "3天", value: ExpireTimeEnum$2.threeDay }, { label: "4天", value: ExpireTimeEnum$2.fourDay }, { label: "5天", value: ExpireTimeEnum$2.fiveDay }, { label: "6天", value: ExpireTimeEnum$2.sixDay }, { label: "7天", value: ExpireTimeEnum$2.sevenDay } ], extractOptions: [ { label: "不限", value: ExtractEnum$1.forever }, { label: "1天", value: ExtractEnum$1.One }, { label: "2天", value: ExtractEnum$1.Two }, { label: "3天", value: ExtractEnum$1.Three }, { label: "4天", value: ExtractEnum$1.Four }, { label: "5天", value: ExtractEnum$1.Five }, { label: "6天", value: ExtractEnum$1.Six }, { label: "7天", value: ExtractEnum$1.Seven }, { label: "8天", value: ExtractEnum$1.Eight }, { label: "9天", value: ExtractEnum$1.Nine }, { label: "10天", value: ExtractEnum$1.Ten }, { label: "11天", value: ExtractEnum$1.Eleven }, { label: "12天", value: ExtractEnum$1.Twelve }, { label: "13天", value: ExtractEnum$1.Thirteen }, { label: "14天", value: ExtractEnum$1.Fourteen }, { label: "15天", value: ExtractEnum$1.Fifteen }, { label: "16天", value: ExtractEnum$1.Sixteen }, { label: "17天", value: ExtractEnum$1.Seventeen }, { label: "18天", value: ExtractEnum$1.Eighteen }, { label: "19天", value: ExtractEnum$1.Nineteen }, { label: "20天", value: ExtractEnum$1.Twenty } ], shareDelay: 500, allowQuickAccess: true, expireTime: ExpireTimeEnum$2.forever, extractNumber: ExtractEnum$1.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false }); const handleTransformFormat = (info) => { if (!info.error_description) { let time; switch (info.expireTime) { case ExpireTimeEnum$2.forever: time = "永久"; break; case ExpireTimeEnum$2.oneDay: time = "1天"; break; case ExpireTimeEnum$2.twoDay: time = "2天"; break; case ExpireTimeEnum$2.threeDay: time = "3天"; break; case ExpireTimeEnum$2.fourDay: time = "4天"; break; case ExpireTimeEnum$2.fiveDay: time = "5天"; break; case ExpireTimeEnum$2.sixDay: time = "6天"; break; case ExpireTimeEnum$2.sevenDay: time = "7天"; break; default: time = "未知"; } let codeNumber; switch (info.extractNumber) { case ExtractEnum$1.forever: codeNumber = "无限"; break; case ExtractEnum$1.One: codeNumber = "1次"; break; case ExtractEnum$1.Two: codeNumber = "2次"; break; case ExtractEnum$1.Three: codeNumber = "3次"; break; case ExtractEnum$1.Four: codeNumber = "4次"; break; case ExtractEnum$1.Five: codeNumber = "5次"; break; case ExtractEnum$1.Six: codeNumber = "6次"; break; case ExtractEnum$1.Seven: codeNumber = "7次"; break; case ExtractEnum$1.Eight: codeNumber = "8次"; break; case ExtractEnum$1.Nine: codeNumber = "9次"; break; case ExtractEnum$1.Ten: codeNumber = "10次"; break; case ExtractEnum$1.Eleven: codeNumber = "11次"; break; case ExtractEnum$1.Twelve: codeNumber = "12次"; break; case ExtractEnum$1.Thirteen: codeNumber = "13次"; break; case ExtractEnum$1.Fourteen: codeNumber = "14次"; break; case ExtractEnum$1.Fifteen: codeNumber = "15次"; break; case ExtractEnum$1.Sixteen: codeNumber = "16次"; break; case ExtractEnum$1.Seventeen: codeNumber = "17次"; break; case ExtractEnum$1.Eighteen: codeNumber = "18次"; break; case ExtractEnum$1.Nineteen: codeNumber = "19次"; break; case ExtractEnum$1.Twenty: codeNumber = "20次"; break; default: codeNumber = "未知"; } return `文件名称: ${info.fileName} 分享链接:${info.share_url} 提取码:${info.pass_code} 有效期: ${time} 有效次数:${codeNumber}`; } else { return `文件名称: ${info.fileName} 分享错误信息: ${info.error_description}`; } }; const handleBatchOperation = async () => { var _a; const tempDOM = document.querySelector(".pan-web"); const selectedRowKeys = tempDOM.__vue__.$parent.fileSelected ?? []; const allInfo = tempDOM.__vue__.$store.state.drive.all ?? {}; const selectRowInfos = selectedRowKeys.map((id) => allInfo[id]) ?? []; const temp1 = findLocalStorageKeysWithPrefix("captcha_") ?? {}; const temp2 = findLocalStorageKeysWithPrefix("credentials_") ?? {}; if (!selectedRowKeys.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } const headers = { "x-client-id": "", "x-device-id": (_a = localStorage.getItem("deviceid")) == null ? void 0 : _a.slice(6, 38), "x-captcha-token": temp1.token, "authorization": `${temp2.token_type} ` + temp2.access_token }; userOptions.value.isSharing = true; const currentShareInfo = []; for (let item of selectRowInfos) { userOptions.value.selectFileInfoList.push({ id: item == null ? void 0 : item.id, fileName: (item == null ? void 0 : item.name) ?? "", expireTime: userOptions.value.expireTime, extractNumber: userOptions.value.extractNumber }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const { data } = await axios({ method: "post", url: "https://api-pan.xunlei.com/drive/v1/share", data: { expiration_days: fileInfo.expireTime + "", file_ids: [fileInfo.id], params: { subscribe_push: "false" }, restore_limit: fileInfo.extractNumber + "", share_to: "copy", title: "云盘资源分享" }, headers }).catch(({ response }) => response); let tempData = { ...fileInfo, share_text: (data == null ? void 0 : data.share_text) ?? "", share_url: (data == null ? void 0 : data.share_url) ?? "", pass_code: (data == null ? void 0 : data.pass_code) ?? "", error_description: (data == null ? void 0 : data.error_description) ?? "" }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.selectFileInfoList = []; userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareInfo = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$2(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$3 = (n) => (vue.pushScopeId("data-v-3dbd7c07"), n = n(), vue.popScopeId(), n); const _hoisted_1$3 = { class: "xunCloud" }; const _hoisted_2$3 = { class: "xunCloud_option" }; const _hoisted_3$3 = { class: "xunCloud_option_item" }; const _hoisted_4$3 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "xunCloud_option_item_title" }, "延迟毫秒:", -1)); const _hoisted_5$3 = { class: "xunCloud_option_item" }; const _hoisted_6$3 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "xunCloud_option_item_title" }, "提取次数:", -1)); const _hoisted_7$2 = { class: "xunCloud_option_item" }; const _hoisted_8$2 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "xunCloud_option_item_title" }, "提取期限:", -1)); const _hoisted_9$2 = { class: "xunCloud_operation" }; const _hoisted_10$2 = { class: "xunCloud_progress" }; const _hoisted_11$2 = { class: "xunCloud_result" }; const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useXunCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_select = vue.resolveComponent("t-select"); const _component_t_checkbox = vue.resolveComponent("t-checkbox"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [ vue.createElementVNode("div", _hoisted_2$3, [ vue.createElementVNode("div", _hoisted_3$3, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_4$3 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_5$3, [ _hoisted_6$3, vue.createVNode(_component_t_select, { modelValue: vue.unref(userOptions).extractNumber, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).extractNumber = $event), placeholder: "请选择提取次数", "auto-width": "", options: vue.unref(userOptions).extractOptions }, null, 8, ["modelValue", "options"]) ]), vue.createElementVNode("div", _hoisted_7$2, [ _hoisted_8$2, vue.createVNode(_component_t_select, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).expireTime = $event), placeholder: "请选择提取期限", "auto-width": "", options: vue.unref(userOptions).expireTimeOptions }, null, 8, ["modelValue", "options"]) ]), vue.createVNode(_component_t_checkbox, { modelValue: vue.unref(userOptions).allowQuickAccess, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(userOptions).allowQuickAccess = $event) }, { default: vue.withCtx(() => [ vue.createTextVNode("允许快速访问分享链接(无用功能)") ]), _: 1 }, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_9$2, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_10$2, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_11$2, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloudXun = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-3dbd7c07"]]); var ExpireTimeEnum$1 = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["forever"] = -1] = "forever"; ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 7] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["thirtyDay"] = 30] = "thirtyDay"; return ExpireTimeEnum2; })(ExpireTimeEnum$1 || {}); var PwdEnum = /* @__PURE__ */ ((PwdEnum2) => { PwdEnum2[PwdEnum2["no"] = 0] = "no"; PwdEnum2[PwdEnum2["yes"] = 1] = "yes"; return PwdEnum2; })(PwdEnum || {}); var dayjs_min = { exports: {} }; (function(module, exports) { !function(t, e) { module.exports = e(); }(commonjsGlobal, function() { var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c = "month", f = "quarter", h2 = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) { var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100; return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]"; } }, m = function(t2, e2, n2) { var r2 = String(t2); return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2; }, v = { s: m, z: function(t2) { var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60; return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0"); }, m: function t2(e2, n2) { if (e2.date() < n2.date()) return -t2(n2, e2); var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c); return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0); }, a: function(t2) { return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2); }, p: function(t2) { return { M: c, y: h2, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, ""); }, u: function(t2) { return void 0 === t2; } }, g = "en", D = {}; D[g] = M; var p = "$isDayjsObject", S = function(t2) { return t2 instanceof _ || !(!t2 || !t2[p]); }, w = function t2(e2, n2, r2) { var i2; if (!e2) return g; if ("string" == typeof e2) { var s2 = e2.toLowerCase(); D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2); var u2 = e2.split("-"); if (!i2 && u2.length > 1) return t2(u2[0]); } else { var a2 = e2.name; D[a2] = e2, i2 = a2; } return !r2 && i2 && (g = i2), i2 || !r2 && g; }, O = function(t2, e2) { if (S(t2)) return t2.clone(); var n2 = "object" == typeof e2 ? e2 : {}; return n2.date = t2, n2.args = arguments, new _(n2); }, b = v; b.l = w, b.i = S, b.w = function(t2, e2) { return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset }); }; var _ = function() { function M2(t2) { this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true; } var m2 = M2.prototype; return m2.parse = function(t2) { this.$d = function(t3) { var e2 = t3.date, n2 = t3.utc; if (null === e2) return /* @__PURE__ */ new Date(NaN); if (b.u(e2)) return /* @__PURE__ */ new Date(); if (e2 instanceof Date) return new Date(e2); if ("string" == typeof e2 && !/Z$/i.test(e2)) { var r2 = e2.match($); if (r2) { var i2 = r2[2] - 1 || 0, s2 = (r2[7] || "0").substring(0, 3); return n2 ? new Date(Date.UTC(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2)) : new Date(r2[1], i2, r2[3] || 1, r2[4] || 0, r2[5] || 0, r2[6] || 0, s2); } } return new Date(e2); }(t2), this.init(); }, m2.init = function() { var t2 = this.$d; this.$y = t2.getFullYear(), this.$M = t2.getMonth(), this.$D = t2.getDate(), this.$W = t2.getDay(), this.$H = t2.getHours(), this.$m = t2.getMinutes(), this.$s = t2.getSeconds(), this.$ms = t2.getMilliseconds(); }, m2.$utils = function() { return b; }, m2.isValid = function() { return !(this.$d.toString() === l); }, m2.isSame = function(t2, e2) { var n2 = O(t2); return this.startOf(e2) <= n2 && n2 <= this.endOf(e2); }, m2.isAfter = function(t2, e2) { return O(t2) < this.startOf(e2); }, m2.isBefore = function(t2, e2) { return this.endOf(e2) < O(t2); }, m2.$g = function(t2, e2, n2) { return b.u(t2) ? this[e2] : this.set(n2, t2); }, m2.unix = function() { return Math.floor(this.valueOf() / 1e3); }, m2.valueOf = function() { return this.$d.getTime(); }, m2.startOf = function(t2, e2) { var n2 = this, r2 = !!b.u(e2) || e2, f2 = b.p(t2), l2 = function(t3, e3) { var i2 = b.w(n2.$u ? Date.UTC(n2.$y, e3, t3) : new Date(n2.$y, e3, t3), n2); return r2 ? i2 : i2.endOf(a); }, $2 = function(t3, e3) { return b.w(n2.toDate()[t3].apply(n2.toDate("s"), (r2 ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e3)), n2); }, y2 = this.$W, M3 = this.$M, m3 = this.$D, v2 = "set" + (this.$u ? "UTC" : ""); switch (f2) { case h2: return r2 ? l2(1, 0) : l2(31, 11); case c: return r2 ? l2(1, M3) : l2(0, M3 + 1); case o: var g2 = this.$locale().weekStart || 0, D2 = (y2 < g2 ? y2 + 7 : y2) - g2; return l2(r2 ? m3 - D2 : m3 + (6 - D2), M3); case a: case d: return $2(v2 + "Hours", 0); case u: return $2(v2 + "Minutes", 1); case s: return $2(v2 + "Seconds", 2); case i: return $2(v2 + "Milliseconds", 3); default: return this.clone(); } }, m2.endOf = function(t2) { return this.startOf(t2, false); }, m2.$set = function(t2, e2) { var n2, o2 = b.p(t2), f2 = "set" + (this.$u ? "UTC" : ""), l2 = (n2 = {}, n2[a] = f2 + "Date", n2[d] = f2 + "Date", n2[c] = f2 + "Month", n2[h2] = f2 + "FullYear", n2[u] = f2 + "Hours", n2[s] = f2 + "Minutes", n2[i] = f2 + "Seconds", n2[r] = f2 + "Milliseconds", n2)[o2], $2 = o2 === a ? this.$D + (e2 - this.$W) : e2; if (o2 === c || o2 === h2) { var y2 = this.clone().set(d, 1); y2.$d[l2]($2), y2.init(), this.$d = y2.set(d, Math.min(this.$D, y2.daysInMonth())).$d; } else l2 && this.$d[l2]($2); return this.init(), this; }, m2.set = function(t2, e2) { return this.clone().$set(t2, e2); }, m2.get = function(t2) { return this[b.p(t2)](); }, m2.add = function(r2, f2) { var d2, l2 = this; r2 = Number(r2); var $2 = b.p(f2), y2 = function(t2) { var e2 = O(l2); return b.w(e2.date(e2.date() + Math.round(t2 * r2)), l2); }; if ($2 === c) return this.set(c, this.$M + r2); if ($2 === h2) return this.set(h2, this.$y + r2); if ($2 === a) return y2(1); if ($2 === o) return y2(7); var M3 = (d2 = {}, d2[s] = e, d2[u] = n, d2[i] = t, d2)[$2] || 1, m3 = this.$d.getTime() + r2 * M3; return b.w(m3, this); }, m2.subtract = function(t2, e2) { return this.add(-1 * t2, e2); }, m2.format = function(t2) { var e2 = this, n2 = this.$locale(); if (!this.isValid()) return n2.invalidDate || l; var r2 = t2 || "YYYY-MM-DDTHH:mm:ssZ", i2 = b.z(this), s2 = this.$H, u2 = this.$m, a2 = this.$M, o2 = n2.weekdays, c2 = n2.months, f2 = n2.meridiem, h3 = function(t3, n3, i3, s3) { return t3 && (t3[n3] || t3(e2, r2)) || i3[n3].slice(0, s3); }, d2 = function(t3) { return b.s(s2 % 12 || 12, t3, "0"); }, $2 = f2 || function(t3, e3, n3) { var r3 = t3 < 12 ? "AM" : "PM"; return n3 ? r3.toLowerCase() : r3; }; return r2.replace(y, function(t3, r3) { return r3 || function(t4) { switch (t4) { case "YY": return String(e2.$y).slice(-2); case "YYYY": return b.s(e2.$y, 4, "0"); case "M": return a2 + 1; case "MM": return b.s(a2 + 1, 2, "0"); case "MMM": return h3(n2.monthsShort, a2, c2, 3); case "MMMM": return h3(c2, a2); case "D": return e2.$D; case "DD": return b.s(e2.$D, 2, "0"); case "d": return String(e2.$W); case "dd": return h3(n2.weekdaysMin, e2.$W, o2, 2); case "ddd": return h3(n2.weekdaysShort, e2.$W, o2, 3); case "dddd": return o2[e2.$W]; case "H": return String(s2); case "HH": return b.s(s2, 2, "0"); case "h": return d2(1); case "hh": return d2(2); case "a": return $2(s2, u2, true); case "A": return $2(s2, u2, false); case "m": return String(u2); case "mm": return b.s(u2, 2, "0"); case "s": return String(e2.$s); case "ss": return b.s(e2.$s, 2, "0"); case "SSS": return b.s(e2.$ms, 3, "0"); case "Z": return i2; } return null; }(t3) || i2.replace(":", ""); }); }, m2.utcOffset = function() { return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); }, m2.diff = function(r2, d2, l2) { var $2, y2 = this, M3 = b.p(d2), m3 = O(r2), v2 = (m3.utcOffset() - this.utcOffset()) * e, g2 = this - m3, D2 = function() { return b.m(y2, m3); }; switch (M3) { case h2: $2 = D2() / 12; break; case c: $2 = D2(); break; case f: $2 = D2() / 3; break; case o: $2 = (g2 - v2) / 6048e5; break; case a: $2 = (g2 - v2) / 864e5; break; case u: $2 = g2 / n; break; case s: $2 = g2 / e; break; case i: $2 = g2 / t; break; default: $2 = g2; } return l2 ? $2 : b.a($2); }, m2.daysInMonth = function() { return this.endOf(c).$D; }, m2.$locale = function() { return D[this.$L]; }, m2.locale = function(t2, e2) { if (!t2) return this.$L; var n2 = this.clone(), r2 = w(t2, e2, true); return r2 && (n2.$L = r2), n2; }, m2.clone = function() { return b.w(this.$d, this); }, m2.toDate = function() { return new Date(this.valueOf()); }, m2.toJSON = function() { return this.isValid() ? this.toISOString() : null; }, m2.toISOString = function() { return this.$d.toISOString(); }, m2.toString = function() { return this.$d.toUTCString(); }, M2; }(), k = _.prototype; return O.prototype = k, [["$ms", r], ["$s", i], ["$m", s], ["$H", u], ["$W", a], ["$M", c], ["$y", h2], ["$D", d]].forEach(function(t2) { k[t2[1]] = function(e2) { return this.$g(e2, t2[0], t2[1]); }; }), O.extend = function(t2, e2) { return t2.$i || (t2(e2, _, O), t2.$i = true), O; }, O.locale = w, O.isDayjs = S, O.unix = function(t2) { return O(1e3 * t2); }, O.en = D[g], O.Ls = D, O.p = {}, O; }); })(dayjs_min); var dayjs_minExports = dayjs_min.exports; const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports); const transformExcelInfoData$1 = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.expireTimeEnum) { case ExpireTimeEnum$1.forever: time = "永久"; break; case ExpireTimeEnum$1.sevenDay: time = "7天"; break; case ExpireTimeEnum$1.thirtyDay: time = "30天"; break; default: time = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.share_url) ?? "", "提取码": (item == null ? void 0 : item.pwd) ?? "", "有效期": time }; })) ?? []; }; const useAliCloud = () => { const userOptions = vue.ref({ shareDelay: 500, expireTime: ExpireTimeEnum$1.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false, pwd: "", pwdType: PwdEnum.yes }); const handleTransformFormat = (info) => { if (!info.display_message) { let time; switch (info.expireTimeEnum) { case ExpireTimeEnum$1.forever: time = "永久"; break; case ExpireTimeEnum$1.sevenDay: time = "7天"; break; case ExpireTimeEnum$1.thirtyDay: time = "30天"; break; default: time = "未知"; } return `文件名称: ${info.fileName} 链接:${info.share_url} 提取码:${info.pwd ?? "无"} 有效期: ${time} `; } else { return `文件名称: ${info.fileName} 错误信息${info.display_message}`; } }; const handleBatchOperation = async () => { var _a, _b, _c, _d, _e; const reactDOM = document.querySelector("div[class^='node-list--']"); if (!reactDOM) { throw new Error("初始化阿里云盘失败,DOM未找到"); } const key = (_a = Object.keys(reactDOM)) == null ? void 0 : _a.find( (key2) => key2.startsWith("__reactFiber$") ); if (!key) { console.error("初始化阿里云盘失败,key未找到"); throw new Error("初始化阿里云盘失败,key未找到"); } const selectedRowInfos = ((_e = (_d = (_c = (_b = reactDOM == null ? void 0 : reactDOM[key]) == null ? void 0 : _b["return"]) == null ? void 0 : _c.pendingProps) == null ? void 0 : _d.listModel) == null ? void 0 : _e.selectedItems) ?? []; if (!selectedRowInfos.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; const currentShareInfo = []; const token = JSON.parse(localStorage.getItem("token") ?? `{}`) ?? {}; for (let item of selectedRowInfos) { userOptions.value.selectFileInfoList.push({ id: item == null ? void 0 : item.fileId, fileName: (item == null ? void 0 : item.name) ?? "", driveId: (item == null ? void 0 : item.driveId) ?? "", expireTime: (() => { let day; switch (userOptions.value.expireTime) { case ExpireTimeEnum$1.sevenDay: day = 7; break; case ExpireTimeEnum$1.thirtyDay: day = 30; break; } if (!day) return ""; return dayjs().add(day, "d"); })(), expireTimeEnum: userOptions.value.expireTime, //后期回显用 pwd: userOptions.value.pwdType === PwdEnum.yes ? generateRandomString(4) : "" }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const { data } = await axios({ method: "post", url: "https://api.aliyundrive.com/adrive/v2/share_link/create", data: { "drive_id": fileInfo.driveId, "expiration": fileInfo.expireTime, "file_id_list": [fileInfo.id], "sync_to_homepage": false, "share_pwd": fileInfo.pwd }, headers: { "authorization": `${token.token_type} ${token.access_token}` } }).catch(({ response }) => response); let tempData = { ...fileInfo, share_url: (data == null ? void 0 : data.share_url) ?? "", share_name: (data == null ? void 0 : data.share_name) ?? "", display_message: (data == null ? void 0 : data.display_message) || (data == null ? void 0 : data.message) }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.selectFileInfoList = []; userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.selectFileInfoList = []; userOptions.value.shareInfo = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData$1(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$2 = (n) => (vue.pushScopeId("data-v-3ab6544a"), n = n(), vue.popScopeId(), n); const _hoisted_1$2 = { class: "aliCloud" }; const _hoisted_2$2 = { class: "aliCloud_option" }; const _hoisted_3$2 = { class: "aliCloud_option_item" }; const _hoisted_4$2 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "aliCloud_option_item_title" }, "延迟毫秒:", -1)); const _hoisted_5$2 = { class: "aliCloud_option_item" }; const _hoisted_6$2 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "aliCloud_option_item_title" }, "有效期:", -1)); const _hoisted_7$1 = { class: "aliCloud_option_item" }; const _hoisted_8$1 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "aliCloud_option_item_title" }, "分享形式:", -1)); const _hoisted_9$1 = { class: "aliCloud_operation" }; const _hoisted_10$1 = { class: "aliCloud_progress" }; const _hoisted_11$1 = { class: "aliCloud_result" }; const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useAliCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_radio_button = vue.resolveComponent("t-radio-button"); const _component_t_radio_group = vue.resolveComponent("t-radio-group"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [ vue.createElementVNode("div", _hoisted_2$2, [ vue.createElementVNode("div", _hoisted_3$2, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_4$2 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_5$2, [ _hoisted_6$2, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).expireTime = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$1).sevenDay }, { default: vue.withCtx(() => [ vue.createTextVNode("7天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$1).thirtyDay }, { default: vue.withCtx(() => [ vue.createTextVNode("30天") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(ExpireTimeEnum$1).forever }, { default: vue.withCtx(() => [ vue.createTextVNode("永久") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_7$1, [ _hoisted_8$1, vue.createVNode(_component_t_radio_group, { modelValue: vue.unref(userOptions).pwdType, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).pwdType = $event) }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum).no }, { default: vue.withCtx(() => [ vue.createTextVNode("无提取码") ]), _: 1 }, 8, ["value"]), vue.createVNode(_component_t_radio_button, { value: vue.unref(PwdEnum).yes }, { default: vue.withCtx(() => [ vue.createTextVNode("随机提取码") ]), _: 1 }, 8, ["value"]) ]), _: 1 }, 8, ["modelValue"]) ]) ]), vue.createElementVNode("div", _hoisted_9$1, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_10$1, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_11$1, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "(仅限在'资源库'分享资源!)-分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx) 普通用户每天只能使用分享功能5次;会员用户和Lv.1及以上的达人用户,每天可使用分享次数1000次。超过上限后,将提示「今日分享次数已达上限」\r\n " }, null, 8, ["value"]) ]) ]); }; } }); const cloudAli = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-3ab6544a"]]); var ExpireTimeEnum = /* @__PURE__ */ ((ExpireTimeEnum2) => { ExpireTimeEnum2[ExpireTimeEnum2["sevenDay"] = 3] = "sevenDay"; ExpireTimeEnum2[ExpireTimeEnum2["thirty"] = 4] = "thirty"; ExpireTimeEnum2[ExpireTimeEnum2["sixty"] = 5] = "sixty"; ExpireTimeEnum2[ExpireTimeEnum2["halfYear"] = 7] = "halfYear"; ExpireTimeEnum2[ExpireTimeEnum2["forever"] = 1] = "forever"; ExpireTimeEnum2[ExpireTimeEnum2["oneDay"] = 2] = "oneDay"; return ExpireTimeEnum2; })(ExpireTimeEnum || {}); var ExtractEnum = /* @__PURE__ */ ((ExtractEnum2) => { ExtractEnum2[ExtractEnum2["forever"] = -1] = "forever"; ExtractEnum2[ExtractEnum2["one"] = 1] = "one"; ExtractEnum2[ExtractEnum2["five"] = 5] = "five"; ExtractEnum2[ExtractEnum2["ten"] = 10] = "ten"; ExtractEnum2[ExtractEnum2["fifty"] = 50] = "fifty"; ExtractEnum2[ExtractEnum2["hundred"] = 100] = "hundred"; return ExtractEnum2; })(ExtractEnum || {}); function getTaskId(data) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "post", url: "https://pc-api.uc.cn/1/clouddrive/share?pr=UCBrowser&fr=pc", headers: { "accept": "application/json, text/plain, */*" }, data: JSON.stringify(data), onload: ({ response }) => { var _a, _b, _c, _d; const { data: data2 = {} } = JSON.parse(response) || {}; resolve2({ task_id: (data2 == null ? void 0 : data2.task_id) ? data2 == null ? void 0 : data2.task_id : (_b = (_a = data2 == null ? void 0 : data2.task_resp) == null ? void 0 : _a.data) == null ? void 0 : _b.task_id, share_id: ((_d = (_c = data2 == null ? void 0 : data2.task_resp) == null ? void 0 : _c.data) == null ? void 0 : _d.share_id) ?? "" }); }, onerror: (res) => { reject2(res); } }); }); } function getShareId(taskId, time = 0) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "get", url: `https://pc-api.uc.cn/1/clouddrive/task?pr=UCBrowser&fr=pc&task_id=${taskId}&retry_index=${time}`, headers: { "accept": "application/json, text/plain, */*" }, onload: ({ response }) => { const { data = {} } = JSON.parse(response) || {}; resolve2({ share_id: (data == null ? void 0 : data.share_id) ?? "" }); }, onerror: (res) => { reject2(res); } }); }); } function getShareInfo(share_id) { return new Promise((resolve2, reject2) => { _GM_xmlhttpRequest({ method: "post", url: "https://pc-api.uc.cn/1/clouddrive/share/password?pr=UCBrowser&fr=pc", data: JSON.stringify({ share_id }), onload: ({ response }) => { const { data } = JSON.parse(response) || {}; const { share_url = "", passcode = "" } = data || {}; resolve2({ share_url, passcode }); }, onerror: (res) => { reject2(res); } }); }); } const transformExcelInfoData = (data) => { return (data == null ? void 0 : data.map((item) => { let time; switch (item.expireTime) { case ExpireTimeEnum.forever: time = "永久"; break; case ExpireTimeEnum.oneDay: time = "1天"; break; case ExpireTimeEnum.sevenDay: time = "7天"; break; case ExpireTimeEnum.thirty: time = "30天"; break; case ExpireTimeEnum.sixty: time = "60天"; break; case ExpireTimeEnum.halfYear: time = "180天"; break; default: time = "未知"; } let codeNumber; switch (item.extractNumber) { case ExtractEnum.forever: codeNumber = "无限"; break; case null: codeNumber = "无限"; break; case ExtractEnum.one: codeNumber = "1次"; break; case ExtractEnum.five: codeNumber = "5次"; break; case ExtractEnum.ten: codeNumber = "10次"; break; case ExtractEnum.fifty: codeNumber = "50次"; break; case ExtractEnum.hundred: codeNumber = "100次"; break; default: codeNumber = "未知"; } return { "文件名称": (item == null ? void 0 : item.fileName) ?? "", "分享链接": (item == null ? void 0 : item.share_url) ?? "", "提取码": (item == null ? void 0 : item.passcode) ?? "", "有效期": time, "可下载次数": codeNumber, "分享主题": (item == null ? void 0 : item.title) ?? "" }; })) ?? []; }; const useUcCloud = () => { const userOptions = vue.ref({ //有效期 expireTimeOptions: [ { label: "不限", value: ExpireTimeEnum.forever }, { label: "1天", value: ExpireTimeEnum.oneDay }, { label: "7天", value: ExpireTimeEnum.sevenDay }, { label: "30天", value: ExpireTimeEnum.thirty }, { label: "60天", value: ExpireTimeEnum.sixty }, { label: "180天", value: ExpireTimeEnum.halfYear } ], //可下载次数 extractOptions: [ { label: "不限", value: ExtractEnum.forever }, { label: "1次", value: ExtractEnum.one }, { label: "5次", value: ExtractEnum.five }, { label: "10次", value: ExtractEnum.ten }, { label: "50次", value: ExtractEnum.fifty }, { label: "100次", value: ExtractEnum.hundred } ], shareDelay: 500, isPassword: true, shareTopic: "", expireTime: ExpireTimeEnum.forever, extractNumber: ExtractEnum.forever, shareInfo: [], shareInfoUserSee: "", shareProgress: 0, selectFileInfoList: [], isSharing: false }); const handleTransformFormat = (info) => { let time; switch (info.expireTime) { case ExpireTimeEnum.forever: time = "永久"; break; case ExpireTimeEnum.oneDay: time = "1天"; break; case ExpireTimeEnum.sevenDay: time = "7天"; break; case ExpireTimeEnum.thirty: time = "30天"; break; case ExpireTimeEnum.sixty: time = "60天"; break; case ExpireTimeEnum.halfYear: time = "180天"; break; default: time = "未知"; } let codeNumber; switch (info.extractNumber) { case ExtractEnum.forever: codeNumber = "无限"; break; case null: codeNumber = "无限"; break; case ExtractEnum.one: codeNumber = "1次"; break; case ExtractEnum.five: codeNumber = "5次"; break; case ExtractEnum.ten: codeNumber = "10次"; break; case ExtractEnum.fifty: codeNumber = "50次"; break; case ExtractEnum.hundred: codeNumber = "100次"; break; default: codeNumber = "未知"; } return info.title ? `文件名称: ${info.fileName} 分享链接:${info.share_url} 提取码:${info.passcode ?? "为空"} 有效期: ${time} 可下载次数:${codeNumber} 分享主题:${info.title ?? ""}` : `文件名称: ${info.fileName} 分享链接:${info.share_url} 提取码:${info.passcode ?? "为空"} 有效期: ${time} 可下载次数:${codeNumber}`; }; const handleBatchOperation = async () => { var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l; const tempDOM = document.querySelector(".file-list"); if (!tempDOM) { throw new Error("初始化UC云盘失败,DOM未找到"); } const key = (_a = Object.keys(tempDOM)) == null ? void 0 : _a.find( (key2) => key2.startsWith("__reactInternalInstance$") ); if (!key) { console.error("初始化UC云盘失败,key未找到"); throw new Error("初始化UC云盘失败,key未找到"); } const selectedRowKeys = ((_f = (_e = (_d = (_c = (_b = tempDOM[key]) == null ? void 0 : _b.memoizedProps) == null ? void 0 : _c.children) == null ? void 0 : _d[1]) == null ? void 0 : _e.props) == null ? void 0 : _f.selectedRowKeys) ?? []; const allRowInfos = ((_k = (_j = (_i = (_h = (_g = tempDOM[key]) == null ? void 0 : _g.memoizedProps) == null ? void 0 : _h.children) == null ? void 0 : _i[1]) == null ? void 0 : _j.props) == null ? void 0 : _k.list) ?? []; if (!selectedRowKeys.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } const selectRowInfos = ((_l = allRowInfos == null ? void 0 : allRowInfos.filter((item1) => selectedRowKeys == null ? void 0 : selectedRowKeys.some((key2) => key2 === item1.fid))) == null ? void 0 : _l.map((item) => ({ name: item.file_name, id: item.fid }))) ?? []; userOptions.value.isSharing = true; const currentShareInfo = []; for (let item of selectRowInfos) { userOptions.value.selectFileInfoList.push({ id: item == null ? void 0 : item.id, fileName: (item == null ? void 0 : item.name) ?? "", expireTime: userOptions.value.expireTime, //UC网盘提取次数为null代表不限制,但是枚举又不能传入null... extractNumber: userOptions.value.extractNumber === -1 ? null : userOptions.value.extractNumber, passcode: userOptions.value.isPassword ? generateRandomString() : "", title: userOptions.value.shareTopic ?? "" //分享主题 }); } for (let fileInfo of userOptions.value.selectFileInfoList) { const sendData = { expired_type: fileInfo.expireTime, //分享天数 dl_limit: fileInfo.extractNumber, //提取次数 passcode: fileInfo.passcode, //随机提取码 url_type: 2, title: fileInfo.title, //标题 fid_list: [fileInfo.id] //文件id }; const { task_id } = await getTaskId(sendData); let tempShareID = await getShareId(task_id); if (!tempShareID.share_id) { tempShareID = await getShareId(task_id, 1); } const { share_url, passcode } = await getShareInfo(tempShareID.share_id).catch(() => ({ share_url: "", passcode: "" })); let tempData = { ...fileInfo, share_url: share_url ?? "" }; userOptions.value.shareInfo.push(tempData); currentShareInfo.push(tempData); userOptions.value.shareInfoUserSee += handleTransformFormat(tempData) + "\n"; userOptions.value.shareProgress = Math.floor(currentShareInfo.length / userOptions.value.selectFileInfoList.length * 100); await new Promise((resolve2) => { setTimeout(() => { resolve2(); }, userOptions.value.shareDelay); }); } userOptions.value.shareProgress = 100; userOptions.value.selectFileInfoList = []; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareInfo = []; userOptions.value.selectFileInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = () => { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); }; const download = () => { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); }; const downloadExcel = () => { exportXlsxFile(`${cloudInfoStore.cloudName}批量分享${Date.now()}.xlsx`, transformExcelInfoData(userOptions.value.shareInfo)); }; return { userOptions, handleBatchOperation, handleTransformFormat, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId$1 = (n) => (vue.pushScopeId("data-v-95aac119"), n = n(), vue.popScopeId(), n); const _hoisted_1$1 = { class: "ucCloud" }; const _hoisted_2$1 = { class: "ucCloud_option" }; const _hoisted_3$1 = { class: "ucCloud_option_item" }; const _hoisted_4$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "ucCloud_option_item_title" }, "延迟毫秒:", -1)); const _hoisted_5$1 = { class: "ucCloud_option_item" }; const _hoisted_6$1 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "ucCloud_option_item_title" }, "分享主题:", -1)); const _hoisted_7 = { class: "ucCloud_option_item" }; const _hoisted_8 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "ucCloud_option_item_title" }, "可下载(次):", -1)); const _hoisted_9 = { class: "ucCloud_option_item" }; const _hoisted_10 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "ucCloud_option_item_title" }, "有效期(天):", -1)); const _hoisted_11 = { class: "ucCloud_operation" }; const _hoisted_12 = { class: "ucCloud_progress" }; const _hoisted_13 = { class: "ucCloud_result" }; const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useUcCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_input = vue.resolveComponent("t-input"); const _component_t_select = vue.resolveComponent("t-select"); const _component_t_checkbox = vue.resolveComponent("t-checkbox"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_textarea = vue.resolveComponent("t-textarea"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [ vue.createElementVNode("div", _hoisted_2$1, [ vue.createElementVNode("div", _hoisted_3$1, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_4$1 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_5$1, [ _hoisted_6$1, vue.createVNode(_component_t_input, { modelValue: vue.unref(userOptions).shareTopic, "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => vue.unref(userOptions).shareTopic = $event), maxlength: 30, "show-limit-number": "", clearable: "", placeholder: "分享主题(可为空)" }, null, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_7, [ _hoisted_8, vue.createVNode(_component_t_select, { modelValue: vue.unref(userOptions).extractNumber, "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => vue.unref(userOptions).extractNumber = $event), placeholder: "请选择提取次数", "auto-width": "", options: vue.unref(userOptions).extractOptions }, null, 8, ["modelValue", "options"]) ]), vue.createElementVNode("div", _hoisted_9, [ _hoisted_10, vue.createVNode(_component_t_select, { modelValue: vue.unref(userOptions).expireTime, "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => vue.unref(userOptions).expireTime = $event), placeholder: "请选择提取期限", "auto-width": "", options: vue.unref(userOptions).expireTimeOptions }, null, 8, ["modelValue", "options"]) ]), vue.createVNode(_component_t_checkbox, { modelValue: vue.unref(userOptions).isPassword, "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => vue.unref(userOptions).isPassword = $event) }, { default: vue.withCtx(() => [ vue.createTextVNode("是否有收件密码") ]), _: 1 }, 8, ["modelValue"]) ]), vue.createElementVNode("div", _hoisted_11, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_12, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_13, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]); }; } }); const cloudUC = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-95aac119"]]); var CopyValueEnum = /* @__PURE__ */ ((CopyValueEnum2) => { CopyValueEnum2[CopyValueEnum2["shareLink"] = 0] = "shareLink"; CopyValueEnum2[CopyValueEnum2["extraLink"] = 1] = "extraLink"; return CopyValueEnum2; })(CopyValueEnum || {}); const getSelectInfoList = () => { var _a; const reactDOM = document.querySelector("#appRoot > div > div:nth-of-type(2)"); const key = (_a = Object.keys(reactDOM)) == null ? void 0 : _a.find( (key2) => key2.startsWith("__reactFiber$") ); return reactDOM[key].firstEffect.pendingProps.selection._selectedItems ?? []; }; const useOnedriveCloud = () => { const userOptions = vue.ref({ shareDelay: 500, shareProgress: 0, shareResultInfoList: [], shareInfoUserSee: "", isSharing: false }); const handleBatchOperation = async () => { const selectedRows = getSelectInfoList(); console.log("选择的文件", selectedRows); if (!selectedRows.length) { return tdesignVueNext.MessagePlugin.warning("请选择要分享的文件!"); } userOptions.value.isSharing = true; for (let fileInfo of selectedRows) { } userOptions.value.shareProgress = 100; userOptions.value.isSharing = false; await tdesignVueNext.MessagePlugin.success("批量分享成功,请自行查看结果"); }; const handleEnd = () => { userOptions.value.shareResultInfoList = []; userOptions.value.shareInfoUserSee = ""; userOptions.value.shareProgress = 0; }; const copyValue = (type = CopyValueEnum.shareLink) => { if (type === CopyValueEnum.shareLink) { CopyValueToClipBoard(userOptions.value.shareInfoUserSee + "").then(() => { tdesignVueNext.MessagePlugin.success("复制成功"); }).catch(() => { tdesignVueNext.MessagePlugin.warning("复制到剪贴板失败,可能是浏览器不支持该操作"); }); } }; const download = (type = CopyValueEnum.shareLink) => { if (type === CopyValueEnum.shareLink) { DownloadTxt(`${cloudInfoStore.cloudName}批量分享${Date.now()}`, userOptions.value.shareInfoUserSee); } }; const downloadExcel = (type = CopyValueEnum.shareLink) => { if (type === CopyValueEnum.shareLink) ; }; return { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel }; }; const _withScopeId = (n) => (vue.pushScopeId("data-v-3551589d"), n = n(), vue.popScopeId(), n); const _hoisted_1 = { class: "cloud123" }; const _hoisted_2 = { class: "cloud123_progress" }; const _hoisted_3 = { class: "cloud123_option" }; const _hoisted_4 = { class: "cloud123_option_item" }; const _hoisted_5 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "延迟(毫秒):", -1)); const _hoisted_6 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ vue.createElementVNode("div", { class: "cloud123_option_item" }, [ /* @__PURE__ */ vue.createElementVNode("span", { class: "cloud123_option_item_title" }, "有效期:") ], -1)); const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({ __name: "index", setup(__props, { expose: __expose }) { const { userOptions, handleBatchOperation, handleEnd, copyValue, download, downloadExcel } = useOnedriveCloud(); __expose({ handleEnd }); return (_ctx, _cache) => { const _component_t_progress = vue.resolveComponent("t-progress"); const _component_t_button = vue.resolveComponent("t-button"); const _component_t_space = vue.resolveComponent("t-space"); const _component_t_tooltip = vue.resolveComponent("t-tooltip"); const _component_t_input_number = vue.resolveComponent("t-input-number"); const _component_t_textarea = vue.resolveComponent("t-textarea"); const _component_t_collapse_panel = vue.resolveComponent("t-collapse-panel"); const _component_t_collapse = vue.resolveComponent("t-collapse"); return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [ vue.createElementVNode("div", _hoisted_2, [ vue.createVNode(_component_t_progress, { percentage: vue.unref(userOptions).shareProgress, color: { from: " #84fab0", to: "#00A870" } }, null, 8, ["percentage"]) ]), vue.createElementVNode("div", _hoisted_3, [ vue.createVNode(_component_t_collapse, { "default-expand-all": "" }, { default: vue.withCtx(() => [ vue.createVNode(_component_t_collapse_panel, { value: vue.unref(CopyValueEnum).shareLink, header: "分享配置" }, { default: vue.withCtx(() => [ vue.createElementVNode("div", null, [ vue.createVNode(_component_t_space, null, { default: vue.withCtx(() => [ vue.createVNode(_component_t_button, { onClick: vue.unref(handleBatchOperation), loading: vue.unref(userOptions).isSharing }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享") ]), _: 1 }, 8, ["onClick", "loading"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(copyValue) }, { default: vue.withCtx(() => [ vue.createTextVNode("复制到剪贴板") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(download) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载分享链接") ]), _: 1 }, 8, ["onClick"]), vue.createVNode(_component_t_button, { theme: "default", onClick: vue.unref(downloadExcel) }, { default: vue.withCtx(() => [ vue.createTextVNode("下载信息为Excel") ]), _: 1 }, 8, ["onClick"]) ]), _: 1 }) ]), vue.createElementVNode("div", _hoisted_4, [ vue.createVNode(_component_t_tooltip, { content: "分享一次后等待下一次分享的时间(避免请求频率过高)" }, { default: vue.withCtx(() => [ _hoisted_5 ]), _: 1 }), vue.createVNode(_component_t_input_number, { modelValue: vue.unref(userOptions).shareDelay, "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.unref(userOptions).shareDelay = $event), step: "100" }, null, 8, ["modelValue"]) ]), _hoisted_6, vue.createElementVNode("div", null, [ vue.createVNode(_component_t_textarea, { readonly: "", autosize: { minRows: 10 }, value: vue.unref(userOptions).shareInfoUserSee, placeholder: "分享结果(格式为文件名称: xxxx 分享链接: xxxx 提取码:xxxx 分享有效时间: xxxx)" }, null, 8, ["value"]) ]) ]), _: 1 }, 8, ["value"]) ]), _: 1 }) ]) ]); }; } }); const cloudOnedrive = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-3551589d"]]); const _sfc_main = /* @__PURE__ */ vue.defineComponent({ __name: "App", setup(__props) { const visible = vue.ref(false); const operationRef = vue.ref(); const cloudComponent = vue.shallowRef({ cloudTianyi, cloudBaidu, cloud115, cloud123, cloudLanZou, cloudQuark, cloud139, cloudXun, cloudAli, cloudUC, cloudOnedrive }); const handleOpenDrawerClick = () => { visible.value = true; }; const handleClose = () => { visible.value = false; operationRef.value.handleEnd(); }; return (_ctx, _cache) => { const _component_t_button = vue.resolveComponent("t-button"); const _component_t_drawer = vue.resolveComponent("t-drawer"); return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [ vue.unref(cloudInfoStore).currentCloud === vue.unref(CloudInfoEnum).cloudAli ? (vue.openBlock(), vue.createElementBlock("div", { key: 0, onClick: handleOpenDrawerClick, style: { "display": "flex", "flex-direction": "column", "align-items": "center" } }, [ vue.createVNode(vue.unref(CalendarIcon), { slot: "icon" }), vue.createElementVNode("span", { onClick: handleOpenDrawerClick }, "分享") ])) : (vue.openBlock(), vue.createBlock(_component_t_button, { key: 1, onClick: handleOpenDrawerClick }, { default: vue.withCtx(() => [ vue.createTextVNode("批量分享操作") ]), _: 1 })), vue.createVNode(_component_t_drawer, { visible: visible.value, "onUpdate:visible": _cache[0] || (_cache[0] = ($event) => visible.value = $event), header: vue.unref(cloudInfoStore).cloudName, size: "600px", "on-confirm": handleClose, onClose: handleClose, placement: "right", closeOnOverlayClick: false }, { default: vue.withCtx(() => [ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(cloudComponent.value[vue.unref(cloudInfoStore).cloudKey]), { ref_key: "operationRef", ref: operationRef }, null, 512)) ]), _: 1 }, 8, ["visible", "header"]) ], 64); }; } }); const TDesign = (app) => { app.use(tdesignVueNext.Button).use(tdesignVueNext.Drawer).use(tdesignVueNext.Radio).use(tdesignVueNext.Space).use(tdesignVueNext.RadioGroup).use(tdesignVueNext.RadioButton).use(tdesignVueNext.Textarea).use(tdesignVueNext.InputNumber).use(tdesignVueNext.Progress).use(tdesignVueNext.Checkbox).use(tdesignVueNext.Tooltip).use(tdesignVueNext.Collapse).use(tdesignVueNext.CollapsePanel).use(tdesignVueNext.Input).use(tdesignVueNext.Table).use(tdesignVueNext.Select).use(tdesignVueNext.Option); }; const Mount = () => { const app = document.createElement("div"); switch (cloudInfoStore.currentCloud) { case CloudInfoEnum.cloudBaidu: { observeDOMChanges("body", () => { const tempDOM = document.querySelector("div.wp-s-header__right"); tempDOM == null ? void 0 : tempDOM.insertBefore(app, tempDOM == null ? void 0 : tempDOM.firstChild); }); } break; case CloudInfoEnum.cloud115: { setTimeout(() => { var _a; const temp = document.createElement("li"); app.style.cssText = ` margin-top: 12px; margin-left: 10px; `; temp.append(app); (_a = document.querySelector("div.navigation-ceiling ul")) == null ? void 0 : _a.append(temp); }, 1e3); } break; case CloudInfoEnum.cloud123: { observeDOMChanges("body", () => { var _a; app.style.textAlign = "center"; (_a = document.querySelector(".ant-menu-light")) == null ? void 0 : _a.append(app); }); } break; case CloudInfoEnum.cloudLanZou: { setTimeout(() => { var _a; app.style.cssText = ` margin-top: -2px; `; (_a = document.querySelector(".toum")) == null ? void 0 : _a.append(app); }, 2e3); } break; case CloudInfoEnum.cloudTianyi: { observeDOMChanges("body", () => { var _a; (_a = document.querySelector("ul.nav-menu")) == null ? void 0 : _a.append(app); }); } break; case CloudInfoEnum.cloudQuark: { observeDOMChanges("body", () => { setTimeout(() => { var _a; const tempDOM = document.querySelector(".file-search-box"); app.style.cssText = ` margin-right:200px; `; (_a = tempDOM == null ? void 0 : tempDOM.parentNode) == null ? void 0 : _a.insertBefore(app, tempDOM); }, 1e3); }); } break; case CloudInfoEnum.cloud139: { observeDOMChanges(".document_main_warp", () => { var _a; const tempDOM = document.querySelector(".document_top_upload_button"); app.style.cssText = ` display:inline-block; margin-top:20px; `; (_a = tempDOM == null ? void 0 : tempDOM.parentNode) == null ? void 0 : _a.append(app, tempDOM); }); } break; case CloudInfoEnum.cloudXun: { setTimeout(() => { const tempDOM = document.querySelector(".pan-wrapper-asider"); app.style.cssText = ` text-align:center; `; tempDOM == null ? void 0 : tempDOM.append(app); }, 1e3); } break; case CloudInfoEnum.cloudAli: { observeDOMChanges("body", () => { var _a; const tempDOM = document.querySelector("div[class^='nav-tab-item--']"); const iterator = tempDOM == null ? void 0 : tempDOM.classList; let name; for (const value of iterator) { if (value.startsWith("nav-tab-item")) name = value; } if (name) { app.classList.add(name); (_a = document.querySelector("div[class^='nav-tab-content--']")) == null ? void 0 : _a.append(app); } else { document.body.append(app); } }); } break; case CloudInfoEnum.cloudUC: { observeDOMChanges("body", () => { var _a; const tempDOM = document.querySelector(".file-search-box"); app.style.cssText = ` margin-right:16px; margin-bottom:4px; `; (_a = tempDOM == null ? void 0 : tempDOM.parentNode) == null ? void 0 : _a.insertBefore(app, tempDOM); }); } break; case CloudInfoEnum.cloudOnedrive: break; } return app; }; const bootstrap = () => { const app = vue.createApp(_sfc_main); app.use(Pinia); app.use(TDesign); app.mount(Mount()); }; void bootstrap(); })(Vue, Pinia, XLSX, TDesign, axios);