破解百度网盘/百度文库下载限制

【2025】破解百度网盘下载限制,百度文库下载限制,完全免费下载。联系作者/用户QQ群: 882776749

// ==UserScript==
// @name         破解百度网盘/百度文库下载限制
// @namespace    tools
// @version      2.2.0
// @author       大角牛软件科技
// @description  【2025】破解百度网盘下载限制,百度文库下载限制,完全免费下载。联系作者/用户QQ群: 882776749
// @license      AGPL v3
// @icon         https://u2233.vip/favicon.ico
// @match        *://pan.baidu.com/*
// @match        *://www.zhipin.com/*
// @match        *://wenku.baidu.com/*
// @require      https://registry.npmmirror.com/vue/3.5.18/files/dist/vue.global.prod.js
// @require      data:application/javascript,%3Bwindow.Vue%20%3D%20Vue%3B
// @require      https://registry.npmmirror.com/element-plus/2.10.5/files/dist/index.full.min.js
// @require      https://registry.npmmirror.com/systemjs/6.15.1/files/dist/system.min.js
// @require      https://registry.npmmirror.com/systemjs/6.15.1/files/dist/extras/named-register.min.js
// @require      data:application/javascript,%3B(typeof%20System!%3D'undefined')%26%26(System%3Dnew%20System.constructor())%3B
// @resource     ElementPlus  https://registry.npmmirror.com/element-plus/2.10.5/files/dist/index.css
// @connect      dl-test.infiniteworlds.com.cn
// @connect      wan.baidu.com
// @connect      localhost
// @connect      u2233.vip
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_getValue
// @grant        GM_setValue
// @grant        GM_xmlhttpRequest
// @grant        unsafeWindow
// @noframes
// ==/UserScript==

(t=>{if(typeof GM_addStyle=="function"){GM_addStyle(t);return}const a=document.createElement("style");a.textContent=t,document.head.append(a)})(' #cd-nav[data-v-9c557335]{position:fixed;bottom:10%;right:10%;z-index:999999999999999}ul[data-v-9c557335],li[data-v-9c557335]{list-style:none;-webkit-user-select:none;user-select:none}.btnBox[data-v-9c557335]{display:flex!important;gap:10px 0;flex-direction:row-reverse}#cd-nav ul[data-v-9c557335]{width:90%;width:400px;position:absolute;margin:0;padding:0;right:0;bottom:0;border-radius:.25em;box-shadow:#959da533 0 8px 24px;background:#fff;visibility:hidden;overflow:hidden;z-index:1;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:100% 100%;-moz-transform-origin:100% 100%;-ms-transform-origin:100% 100%;-o-transform-origin:100% 100%;transform-origin:100% 100%;-webkit-transition:-webkit-transform .3s,visibility 0s .3s;-moz-transition:-moz-transform .3s,visibility 0s .3s;transition:transform .3s,visibility 0s .3s}#cd-nav ul li[data-v-9c557335]{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex}#cd-nav ul.is-visible[data-v-9c557335]{visibility:visible;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1);-webkit-transition:-webkit-transform .3s,visibility 0s 0s;-moz-transition:-moz-transform .3s,visibility 0s 0s;transition:transform .3s,visibility 0s 0s}#cd-nav ul.is-visible li[data-v-9c557335]:nth-child(1){-webkit-animation:cd-slide-in-9c557335 .2s;-moz-animation:cd-slide-in-9c557335 .2s;animation:cd-slide-in-9c557335 .2s}#cd-nav ul.is-visible li[data-v-9c557335]:nth-child(2){-webkit-animation:cd-slide-in-9c557335 .3s;-moz-animation:cd-slide-in-9c557335 .3s;animation:cd-slide-in-9c557335 .3s}#cd-nav ul.is-visible li[data-v-9c557335]:nth-child(3){-webkit-animation:cd-slide-in-9c557335 .4s;-moz-animation:cd-slide-in-9c557335 .4s;animation:cd-slide-in-9c557335 .4s}#cd-nav ul.is-visible li[data-v-9c557335]:nth-child(4){-webkit-animation:cd-slide-in-9c557335 .5s;-moz-animation:cd-slide-in-9c557335 .5s;animation:cd-slide-in-9c557335 .5s}#cd-nav ul.is-visible li[data-v-9c557335]:nth-child(5){-webkit-animation:cd-slide-in-9c557335 .6s;-moz-animation:cd-slide-in-9c557335 .6s;animation:cd-slide-in-9c557335 .6s}#cd-nav li>div[data-v-9c557335]{display:block;padding:20px;border-bottom:1px solid #eff2f6;cursor:pointer;box-sizing:border-box;font-size:14px}#cd-nav li>div[data-v-9c557335]:first-child{flex:0 0 250px}#cd-nav li>div[data-v-9c557335]:last-child{flex:1}#cd-nav li:last-child div[data-v-9c557335]{border-bottom:none}.cd-nav-trigger[data-v-9c557335]{position:absolute;bottom:0;right:0;width:44px;height:44px;background:#f56c6c;border-radius:.25em;box-shadow:#959da533 0 8px 24px;overflow:hidden;text-indent:100%;white-space:nowrap;z-index:2;cursor:pointer}.cd-nav-trigger span[data-v-9c557335]{position:absolute;display:block;width:20px;height:2px;background:#fff;top:50%;margin-top:-1px;left:50%;margin-left:-10px;-webkit-transition:background .3s;-moz-transition:background .3s;transition:background .3s}.cd-nav-trigger span[data-v-9c557335]:before,.cd-nav-trigger span[data-v-9c557335]:after{content:"";position:absolute;left:0;background:inherit;width:100%;height:100%;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:-webkit-transform .3s,background 0s;-moz-transition:-moz-transform .3s,background 0s;transition:transform .3s,background 0s}.cd-nav-trigger span[data-v-9c557335]:before{top:-6px;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}.cd-nav-trigger span[data-v-9c557335]:after{bottom:-6px;-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}.cd-nav-trigger.menu-is-open[data-v-9c557335]{box-shadow:none}.cd-nav-trigger.menu-is-open span[data-v-9c557335]{background:#e84a6400}.cd-nav-trigger.menu-is-open span[data-v-9c557335]:before,.cd-nav-trigger.menu-is-open span[data-v-9c557335]:after{background:#fff}.cd-nav-trigger.menu-is-open span[data-v-9c557335]:before{top:0;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-ms-transform:rotate(135deg);-o-transform:rotate(135deg);transform:rotate(135deg)}.cd-nav-trigger.menu-is-open span[data-v-9c557335]:after{bottom:0;-webkit-transform:rotate(225deg);-moz-transform:rotate(225deg);-ms-transform:rotate(225deg);-o-transform:rotate(225deg);transform:rotate(225deg)}@-webkit-keyframes cd-slide-in-9c557335{0%{-webkit-transform:translateX(100px)}to{-webkit-transform:translateY(0)}}@-moz-keyframes cd-slide-in-9c557335{0%{-moz-transform:translateX(100px)}to{-moz-transform:translateY(0)}}@keyframes cd-slide-in-9c557335{0%{-webkit-transform:translateX(100px);-moz-transform:translateX(100px);-ms-transform:translateX(100px);-o-transform:translateX(100px);transform:translate(100px)}to{-webkit-transform:translateY(0);-moz-transform:translateY(0);-ms-transform:translateY(0);-o-transform:translateY(0);transform:translateY(0)}}.el-drawer__header{margin-bottom:0!important}body{font-size:14px!important}a{text-decoration:none!important}:where(*,*:before,*:after){box-sizing:border-box}:where(html){-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;line-height:1.15}:where(body){margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:where(img,picture,video,canvas,svg,iframe,embed,object){display:block}:where(img,svg){height:auto}:where(iframe){border:0}:where(input,button,textarea,select){font:inherit;color:inherit}:where(button,[type=button],[type=reset],[type=submit]){-webkit-appearance:button}:where(textarea){resize:vertical}:where(fieldset){min-width:0;margin:0;padding:.35em .75em .625em;border:1px solid #a9a9a9}:where(legend){padding:0}:where(progress){vertical-align:baseline}:where(ol,ul){list-style:none;margin:0;padding:0}:where(blockquote,q){quotes:none}:where(blockquote:before,blockquote:after,q:before,q:after){content:"";content:none}:where(table){border-collapse:collapse;border-spacing:0}:where(th,td){padding:0;text-align:left}:where(main,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section){display:block}:where(summary){display:list-item}:where(template,[hidden]){display:none}:where(:focus-visible){outline:2px solid Highlight;outline-offset:2px}:where(:focus:not(:focus-visible)){outline:0}:where(html){color-scheme:light dark}:where(html){scrollbar-width:thin;scrollbar-color:#888 transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-track{background:transparent}:where(iframe){width:100%;height:auto}.content[data-v-f8630f3e]{flex:1;box-sizing:border-box;background-color:#fff}.header[data-v-f8630f3e]{text-align:center;margin-bottom:10px;padding:20px;background:linear-gradient(120deg,#a1c4fd,#c2e9fb);box-shadow:0 4px 6px #0000001a}.header h1[data-v-f8630f3e]{margin:0;color:#2c3e50;font-size:28px}.header p[data-v-f8630f3e]{margin:10px 0 0;color:#7f8c8d;font-size:16px}.task-list[data-v-f8630f3e]{display:grid;padding:10px;box-sizing:border-box;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:14px;margin-top:20px}.task-card[data-v-f8630f3e]{background:#fff;border-radius:12px;box-shadow:0 4px 15px #0000001a;padding:14px;transition:all .3s ease;border-left:5px solid #3498db}.task-card[data-v-f8630f3e]:hover{transform:translateY(-5px);box-shadow:0 8px 25px #00000026}.task-card.processing[data-v-f8630f3e]{border-left-color:#f39c12}.task-card.completed[data-v-f8630f3e]{border-left-color:#27ae60}.task-card.error[data-v-f8630f3e]{border-left-color:#e74c3c}.task-title[data-v-f8630f3e]{font-size:16px;font-weight:600;margin:0 0 10px;color:#2c3e50;display:flex;justify-content:space-between;align-items:center}.task-module[data-v-f8630f3e]{background-color:#ecf0f1;color:#7f8c8d;padding:3px 8px;border-radius:12px;font-size:12px;font-weight:400}.task-info[data-v-f8630f3e]{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.info-item[data-v-f8630f3e]{font-size:14px}.info-label[data-v-f8630f3e]{color:#7f8c8d;font-weight:500}.info-value[data-v-f8630f3e]{color:#2c3e50;font-weight:600;margin-top:8px;word-break:break-all}.task-status[data-v-f8630f3e]{padding:8px 12px;border-radius:20px;font-size:13px;font-weight:500;text-align:center;margin-top:10px}.status-pending[data-v-f8630f3e]{background-color:#f8f9fa;color:#6c757d}.status-processing[data-v-f8630f3e]{background-color:#fff3cd;color:#856404}.status-completed[data-v-f8630f3e]{background-color:#d4edda;color:#155724}.status-error[data-v-f8630f3e]{background-color:#f8d7da;color:#721c24}.progress-bar[data-v-f8630f3e]{height:8px;background-color:#ecf0f1;border-radius:4px;margin:15px 0;overflow:hidden}.progress-fill[data-v-f8630f3e]{height:100%;background:linear-gradient(90deg,#3498db,#2ecc71);border-radius:4px;transition:width .3s ease}.loading[data-v-f8630f3e]{text-align:center;padding:40px;color:#7f8c8d}.loading-spinner[data-v-f8630f3e]{border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;width:40px;height:40px;animation:spin-f8630f3e 1s linear infinite;margin:0 auto 20px}@keyframes spin-f8630f3e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-state[data-v-f8630f3e]{text-align:center;padding:60px 20px;color:#7f8c8d}.empty-state i[data-v-f8630f3e]{font-size:48px;margin-bottom:20px;display:block}#el[data-v-f8630f3e]{display:flex;justify-content:space-between} ');

System.addImportMap({ imports: {"vue":"user:vue","element-plus":"user:element-plus"} });
System.set("user:vue", (()=>{const _=Vue;('default' in _)||(_.default=_);return _})());
System.set("user:element-plus", (()=>{const _=ElementPlus;('default' in _)||(_.default=_);return _})());

System.register("./__entry.js", ['./__monkey.entry-Dj1KGqu2.js'], (function (exports, module) {
	'use strict';
	return {
		setters: [null],
		execute: (function () {



		})
	};
}));

System.register("./__monkey.entry-Dj1KGqu2.js", ['vue', 'element-plus'], (function (exports, module) {
  'use strict';
  var createApp, resolveComponent, createElementBlock, openBlock, createVNode, createBlock, createCommentVNode, resolveDynamicComponent, createElementVNode, normalizeClass, Fragment, renderList, withCtx, createTextVNode, toDisplayString, ElementPlus, ElMessage;
  return {
    setters: [module => {
      createApp = module.createApp;
      resolveComponent = module.resolveComponent;
      createElementBlock = module.createElementBlock;
      openBlock = module.openBlock;
      createVNode = module.createVNode;
      createBlock = module.createBlock;
      createCommentVNode = module.createCommentVNode;
      resolveDynamicComponent = module.resolveDynamicComponent;
      createElementVNode = module.createElementVNode;
      normalizeClass = module.normalizeClass;
      Fragment = module.Fragment;
      renderList = module.renderList;
      withCtx = module.withCtx;
      createTextVNode = module.createTextVNode;
      toDisplayString = module.toDisplayString;
    }, module => {
      ElementPlus = module.default;
      ElMessage = module.ElMessage;
    }],
    execute: (function () {

      const scriptRel = /* @__PURE__ */ function detectScriptRel() {
        const relList = typeof document !== "undefined" && document.createElement("link").relList;
        return relList && relList.supports && relList.supports("modulepreload") ? "modulepreload" : "preload";
      }();
      const assetsURL = function(dep) {
        return "/" + dep;
      };
      const seen = {};
      const __vitePreload = function preload(baseModule, deps, importerUrl) {
        let promise = Promise.resolve();
        if (deps && deps.length > 0) {
          let allSettled = function(promises$2) {
            return Promise.all(promises$2.map((p$1) => Promise.resolve(p$1).then((value$1) => ({
              status: "fulfilled",
              value: value$1
            }), (reason) => ({
              status: "rejected",
              reason
            }))));
          };
          document.getElementsByTagName("link");
          const cspNonceMeta = document.querySelector("meta[property=csp-nonce]");
          const cspNonce = cspNonceMeta?.nonce || cspNonceMeta?.getAttribute("nonce");
          promise = allSettled(deps.map((dep) => {
            dep = assetsURL(dep);
            if (dep in seen) return;
            seen[dep] = true;
            const isCss = dep.endsWith(".css");
            const cssSelector = isCss ? '[rel="stylesheet"]' : "";
            if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) return;
            const link = document.createElement("link");
            link.rel = isCss ? "stylesheet" : scriptRel;
            if (!isCss) link.as = "script";
            link.crossOrigin = "";
            link.href = dep;
            if (cspNonce) link.setAttribute("nonce", cspNonce);
            document.head.appendChild(link);
            if (isCss) return new Promise((res, rej) => {
              link.addEventListener("load", res);
              link.addEventListener("error", () => rej(/* @__PURE__ */ new Error(`Unable to preload CSS for ${dep}`)));
            });
          }));
        }
        function handlePreloadError(err$2) {
          const e$1 = new Event("vite:preloadError", { cancelable: true });
          e$1.payload = err$2;
          window.dispatchEvent(e$1);
          if (!e$1.defaultPrevented) throw err$2;
        }
        return promise.then((res) => {
          for (const item of res || []) {
            if (item.status !== "rejected") continue;
            handlePreloadError(item.reason);
          }
          return baseModule().catch(handlePreloadError);
        });
      };
      const _export_sfc = exports("_", (sfc, props) => {
        const target = sfc.__vccOpts || sfc;
        for (const [key, val] of props) {
          target[key] = val;
        }
        return target;
      });
      const _sfc_main$1 = {
        name: "HamburgerMenu",
        props: {
          menuItems: {
            type: Array,
            required: true,
            default: () => []
          }
        },
        data() {
          return {
            menuOpen: false,
            isHidden: false
          };
        },
        methods: {
          toggleMenu() {
            this.menuOpen = !this.menuOpen;
          },
          onItemClick(index) {
            this.$emit("itemClick", index);
          },
          btnClickEvent(index1, index2) {
            this.$emit("btnClickEvent", {
              index1,
              index2
            });
          }
        }
      };
      const _hoisted_1 = {
        id: "cd-nav",
        class: "is-fixed"
      };
      const _hoisted_2 = {
        key: 0,
        class: "btnBox"
      };
      const _hoisted_3 = ["onClick"];
      function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
        const _component_el_link = resolveComponent("el-link");
        return openBlock(), createElementBlock("div", _hoisted_1, [
          createElementVNode("a", {
            class: normalizeClass(["cd-nav-trigger", { "menu-is-open": $data.menuOpen }]),
            onClick: _cache[0] || (_cache[0] = (...args) => $options.toggleMenu && $options.toggleMenu(...args))
          }, _cache[1] || (_cache[1] = [
            createElementVNode("span", null, null, -1)
          ]), 2),
          createElementVNode("ul", {
            class: normalizeClass(["has-transitions", "is-hidden", { "is-visible": $data.menuOpen }])
          }, [
            (openBlock(true), createElementBlock(Fragment, null, renderList($props.menuItems, (item, index) => {
              return openBlock(), createElementBlock("li", { key: index }, [
                createElementVNode("div", null, [
                  createVNode(_component_el_link, {
                    type: "primary",
                    disabled: item.disabled,
                    onClick: ($event) => $options.onItemClick(index)
                  }, {
                    default: withCtx(() => [
                      createTextVNode(toDisplayString(item.text), 1)
                    ]),
                    _: 2
                  }, 1032, ["disabled", "onClick"])
                ]),
                item.btns && item.btns.length ? (openBlock(), createElementBlock("div", _hoisted_2, [
                  (openBlock(true), createElementBlock(Fragment, null, renderList(item.btns, (btn, index2) => {
                    return openBlock(), createElementBlock("div", {
                      key: index2,
                      onClick: ($event) => $options.btnClickEvent(index, index2)
                    }, [
                      createVNode(_component_el_link, { type: "warning" }, {
                        default: withCtx(() => [
                          createTextVNode(toDisplayString(btn.text), 1)
                        ]),
                        _: 2
                      }, 1024)
                    ], 8, _hoisted_3);
                  }), 128))
                ])) : createCommentVNode("", true)
              ]);
            }), 128))
          ], 2)
        ]);
      }
      const HamburgerMenu = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__scopeId", "data-v-9c557335"]]);
      const _sfc_main = {
        name: "App",
        components: {
          HamburgerMenu
        },
        data() {
          return {
            currentComponent: null,
            config: {
              text: {
                callme: "请全屏截图并发给管理员",
                error: "出现异常!"
              }
            }
          };
        },
        computed: {
          tingConfig() {
            return $tingConfig || { qq: "882776749" };
          },
          menuItems() {
            let that = this;
            let items = [
              // 小红书爬虫,爬取所有讨论自考帖子的用户,然后发帖子@
              // logo制作
              // https://www.logomaker.com.cn/guide#/generate?title=%E5%A4%A7%E8%A7%92%E7%89%9B&slogan=Big%20Horn%20Bull&brand_true_slogan=&industry_id=139&industry_tag=&industry_keyword=%E8%BD%AF%E4%BB%B6%E5%BA%94%E7%94%A8&sceneSelect=b&source=new&preview_dialog=true
              {
                text: "百度文库 | 下载当前文档",
                disabled: !window.location.href.includes("wenku.baidu.com/view"),
                click() {
                  let url = window.location.href;
                  url = encodeURIComponent(url);
                  window.open(`https://u2233.vip/BDWK/index.html?url=${url}`);
                  document.getElementsByClassName("cd-nav-trigger")[0].click();
                },
                btns: [
                  {
                    text: "💡 使用教程",
                    click: () => {
                      window.open("https://u2233.vip/BDWK/word.html", "_blank");
                    }
                  }
                ]
              },
              {
                text: "百度网盘 | 领取极速下载卷",
                disabled: !window.location.href.includes("pan.baidu.com"),
                async click() {
                  $createVerifyCodeModal(async () => {
                    const component = await __vitePreload(() => module.import('./index-5Ieqwn6L-DPFXxYN9.js'), void 0 );
                    that.currentComponent = component.default;
                    that.$nextTick(() => {
                      that.$refs.dynamicComponent.open();
                    });
                  });
                  document.getElementsByClassName("cd-nav-trigger")[0].click();
                },
                btns: [
                  {
                    text: "💡 使用教程",
                    click: () => {
                      window.open("https://u2233.vip/BDWP/word.html", "_blank");
                    }
                  }
                ]
              },
              {
                text: "BOOS直聘 | 抓取数据",
                disabled: !window.location.href.includes("zhipin.com/web/geek/jobs"),
                async click() {
                  $createVerifyCodeModal(async (captcha) => {
                    const capStatus = await $httpRequest({
                      url: `https://dl-test.infiniteworlds.com.cn/TING/checkCaptcha?captcha=${captcha}`
                    });
                    if (capStatus.data.code != 0) {
                      ElMessage.warning(capStatus.data.message);
                      return;
                    }
                    const component = await __vitePreload(() => module.import('./index-DHChVgv2-Ca4Z4yQE.js'), void 0 );
                    that.currentComponent = component.default;
                    that.$nextTick(() => {
                      if (that.$refs.dynamicComponent && typeof that.$refs.dynamicComponent.open === "function") {
                        that.$refs.dynamicComponent.open();
                      }
                    });
                  });
                  document.getElementsByClassName("cd-nav-trigger")[0].click();
                },
                btns: [
                  {
                    text: "💡 使用教程",
                    click: () => {
                      window.open("https://u2233.vip/BOSS/word.html", "_blank");
                    }
                  }
                ]
              },
              {
                text: `点击联系开发者/QQ群(${this.tingConfig.qq})`,
                click() {
                  window.open(
                    `https://jq.qq.com/?_wv=1027&k=${this.tingConfig.qq}`,
                    "_blank"
                  );
                }
              }
            ];
            return items.sort((a, b) => {
              const aHasDisabled = "disabled" in a;
              const bHasDisabled = "disabled" in b;
              if (!aHasDisabled && bHasDisabled) return 1;
              if (aHasDisabled && !bHasDisabled) return -1;
              if (!aHasDisabled && !bHasDisabled) return 0;
              return (a.disabled ? 1 : 0) - (b.disabled ? 1 : 0);
            });
          }
        },
        methods: {
          // 操作按钮点击事件
          btnClickEvent({ index1, index2 }) {
            this.menuItems[index1].btns[index2].click();
          },
          async itemClick(index) {
            try {
              this.menuItems[index].click();
            } catch (error) {
              ElMessage.warning(
                `${this.config.text.error} ${this.config.text.callme} :${error}`
              );
            }
          }
        }
      };
      function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
        const _component_HamburgerMenu = resolveComponent("HamburgerMenu");
        return openBlock(), createElementBlock("div", null, [
          createVNode(_component_HamburgerMenu, {
            "menu-items": $options.menuItems,
            onItemClick: $options.itemClick,
            onBtnClickEvent: $options.btnClickEvent
          }, null, 8, ["menu-items", "onItemClick", "onBtnClickEvent"]),
          $data.currentComponent ? (openBlock(), createBlock(resolveDynamicComponent($data.currentComponent), {
            key: 0,
            ref: "dynamicComponent"
          }, null, 512)) : createCommentVNode("", true)
        ]);
      }
      const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
      const cssLoader = (e) => {
        const t = GM_getResourceText(e);
        return GM_addStyle(t), t;
      };
      cssLoader("ElementPlus");
      var _GM_getValue = /* @__PURE__ */ (() => typeof GM_getValue != "undefined" ? GM_getValue : void 0)();
      var _GM_setValue = /* @__PURE__ */ (() => typeof GM_setValue != "undefined" ? GM_setValue : void 0)();
      var _GM_xmlhttpRequest = /* @__PURE__ */ (() => typeof GM_xmlhttpRequest != "undefined" ? GM_xmlhttpRequest : void 0)();
      const apis = {
        GM_xmlhttpRequest: _GM_xmlhttpRequest,
        GM_setValue: _GM_setValue,
        GM_getValue: _GM_getValue
      };
      Object.keys(apis).forEach((key) => {
        window[key] = apis[key];
        if (typeof unsafeWindow !== "undefined") {
          unsafeWindow[key] = apis[key];
        }
      });
      const appContainer = document.createElement("div");
      document.body.appendChild(appContainer);
      if (window.$tingConfig) {
        createApp(App).use(ElementPlus).mount(appContainer);
      } else {
        const script = document.createElement("script");
        script.src = "https://u2233.vip/static/js/public.js";
        script.async = true;
        script.crossOrigin = "anonymous";
        script.onload = () => {
          createApp(App).use(ElementPlus).mount(appContainer);
        };
        script.onerror = (error) => {
          createApp(App).use(ElementPlus).mount(appContainer);
        };
        document.head.appendChild(script);
      }

    })
  };
}));

System.register("./index-5Ieqwn6L-DPFXxYN9.js", ['element-plus', 'vue', './__monkey.entry-Dj1KGqu2.js'], (function (exports, module) {
  'use strict';
  var ElMessage, resolveComponent, createBlock, openBlock, withCtx, createElementVNode, createElementBlock, Fragment, renderList, normalizeClass, createCommentVNode, toDisplayString, normalizeStyle, _export_sfc;
  return {
    setters: [module => {
      ElMessage = module.ElMessage;
    }, module => {
      resolveComponent = module.resolveComponent;
      createBlock = module.createBlock;
      openBlock = module.openBlock;
      withCtx = module.withCtx;
      createElementVNode = module.createElementVNode;
      createElementBlock = module.createElementBlock;
      Fragment = module.Fragment;
      renderList = module.renderList;
      normalizeClass = module.normalizeClass;
      createCommentVNode = module.createCommentVNode;
      toDisplayString = module.toDisplayString;
      normalizeStyle = module.normalizeStyle;
    }, module => {
      _export_sfc = module._;
    }],
    execute: (function () {

      const config = $baiDuYunLingJuanConfig;
      window.addEventListener("message", (e) => {
        if (e.data.type === "start") {
          start();
        }
      });
      async function start(obj) {
        const tasks = await getAllTask();
        Promise.all(
          tasks.map((item) => getOneDownload(item.selectGameParams, item))
        ).then();
      }
      async function getAllTask() {
        const channelArr = config.channelArr;
        const promises = channelArr.map(
          (channel) => new Promise((resolve) => {
            $httpRequest({
              method: "GET",
              url: `https://wan.baidu.com/gameapi?action=bonus_pan_task_list&channel=${channel}`,
              headers: {
                "Content-Type": "application/json"
              }
            }).then((response) => {
              resolve(response.data);
            });
          })
        );
        const task_result = await Promise.all(promises);
        const taskOneWei = [];
        task_result.forEach((item) => {
          if (item.errorNo === 0 && item.result && item.result.data) {
            item.result.data.forEach((task) => {
              if (Array.isArray(task.data)) {
                taskOneWei.push(...task.data);
              }
            });
          }
        });
        const taskMianFei = taskOneWei.filter(
          (item) => config.taskModules.includes(item.taskModule)
        );
        const taskReal = taskMianFei.map((item) => {
          let selectGame = getRandomItem(item.taskGames);
          return {
            ...item,
            selectGame,
            selectGameParams: {
              ...url2obj(selectGame.gameUrl)
            }
          };
        });
        send_message({ type: "task_result", taskReal });
        return taskReal;
      }
      async function getOneDownload({ gameId, taskId, activityId }, task) {
        const sendApi = (params) => {
          $httpRequest({
            method: "GET",
            url: `https://wan.baidu.com/gameapi?${obj2url(params)}`,
            headers: {
              "Content-Type": "application/json"
            }
          }).then(async (response) => {
            const data = response.data;
            if (data.errorNo === 110503 || data.result && data.result.data && data.result.data.remainingTaskTime === 0) {
              await setStorage(getId(taskId), 0);
              return send_message({
                type: "task_status_update",
                taskId: params.taskId,
                status: `completed`,
                progress: 100
              });
            }
            if (data.errorNo !== 0) {
              return send_message({
                type: "task_status_update",
                taskId: params.taskId,
                errorNo: data.errorNo,
                status: `error`,
                progress: 40,
                errorMessage: `${data.message}(请刷新页面 或 重新登录(不可用) )`
              });
            }
            if (data.result && data.result.data && data.result.data.remainingTaskTime) {
              let finiTime = task.eachTaskNeedPlayTimeSecs - data.result.data.remainingTaskTime;
              send_message({
                type: "task_status_update",
                taskId: params.taskId,
                status: `processing`,
                needTime: task.eachTaskNeedPlayTimeSecs - finiTime,
                progress: parseInt(
                  finiTime / task.eachTaskNeedPlayTimeSecs * 100
                )
              });
              await setStorage(getId(taskId), data.result.data.remainingTaskTime);
            }
            if (data.result && data.result.data && data.result.data.nextReportInterval) {
              setTimeout(() => {
                sendApi({ ...params, isFirstReport: 0 });
              }, 10 * 1e3);
            }
          });
        };
        sendApi({
          gameId,
          isFirstReport: await getStorage(getId(taskId)) ? 0 : 1,
          taskId,
          activityId,
          action: "bonus_task_game_play_report"
        });
      }
      function send_message(data) {
        window.postMessage({
          type: data.type,
          data
        });
      }
      function getId(taskId) {
        var date = /* @__PURE__ */ new Date();
        var year = date.getFullYear();
        var month = date.getMonth() + 1;
        var day = date.getDate();
        return year + "_" + month + "_" + day + "_" + taskId;
      }
      function getRandomItem(arr) {
        return arr[Math.floor(Math.random() * arr.length)];
      }
      function url2obj(url) {
        var obj = {};
        var arr = url.split("?")[1].split("&");
        for (var i = 0; i < arr.length; i++) {
          var item = arr[i].split("=");
          if (item[0].trim()) {
            obj[item[0]] = item[1];
          }
        }
        return obj;
      }
      function obj2url(obj) {
        var url = "";
        for (var key in obj) {
          url += key + "=" + obj[key] + "&";
        }
        return url.substring(0, url.length - 1);
      }
      function setStorage(key, value) {
        return new Promise((resolve) => {
          GM_setValue(key, value);
          resolve();
        });
      }
      function getStorage(key) {
        return new Promise((resolve) => {
          resolve(GM_getValue(key, null));
        });
      }
      const _sfc_main = {
        name: "BaiDuYunLingJuan",
        data() {
          return {
            drawer: false,
            tasks: [],
            loading: false
          };
        },
        methods: {
          open() {
            this.drawer = true;
            if (this.tasks.length == 0) {
              this.handleStartTask();
            }
          },
          handleStartTask() {
            this.loading = true;
            window.postMessage({ type: "start" }, "*");
          },
          handleMessage(event) {
            let eventData = event.data;
            if (eventData.type === "task_result") {
              this.tasks = eventData.data.taskReal.map((task) => ({
                ...task,
                status: "pending",
                progress: 0
              }));
              this.loading = false;
            }
            if (event.data.type === "task_status_update") {
              const taskIndex = this.tasks.findIndex((task) => {
                return +task?.taskId === +eventData.data.taskId;
              });
              if (taskIndex !== -1) {
                this.tasks[taskIndex] = {
                  ...this.tasks[taskIndex],
                  ...eventData.data
                };
                if (eventData.data.errorNo === 110008) {
                  ElMessage({
                    message: `请登录(不可用)【百度网盘网页版】后再领取下载卷`,
                    duration: 5e3,
                    type: "warning"
                  });
                }
              } else {
                console.log(`找不到:${taskIndex}`);
              }
            }
          },
          init() {
            window.addEventListener("message", this.handleMessage);
          }
        },
        mounted() {
          this.init();
        },
        beforeUnmount() {
          window.removeEventListener("message", this.handleMessage);
        }
      };
      const _hoisted_1 = { id: "el" };
      const _hoisted_2 = { class: "content" };
      const _hoisted_3 = {
        key: 0,
        class: "loading"
      };
      const _hoisted_4 = {
        key: 1,
        class: "empty-state"
      };
      const _hoisted_5 = {
        key: 2,
        class: "task-list"
      };
      const _hoisted_6 = { class: "task-title" };
      const _hoisted_7 = { class: "task-module" };
      const _hoisted_8 = { class: "task-info" };
      const _hoisted_9 = { class: "info-item" };
      const _hoisted_10 = { class: "info-value" };
      const _hoisted_11 = { class: "info-item" };
      const _hoisted_12 = { class: "info-value" };
      const _hoisted_13 = {
        key: 0,
        class: "progress-bar"
      };
      const _hoisted_14 = { key: 0 };
      const _hoisted_15 = { key: 1 };
      const _hoisted_16 = { key: 2 };
      const _hoisted_17 = { key: 3 };
      const _hoisted_18 = { key: 4 };
      function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
        const _component_el_drawer = resolveComponent("el-drawer");
        return openBlock(), createBlock(_component_el_drawer, {
          modelValue: $data.drawer,
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.drawer = $event),
          direction: "ltr",
          title: "百度下载卷领取助手",
          size: "60%"
        }, {
          default: withCtx(() => [
            createElementVNode("div", _hoisted_1, [
              createElementVNode("div", _hoisted_2, [
                $data.loading ? (openBlock(), createElementBlock("div", _hoisted_3, _cache[1] || (_cache[1] = [
                  createElementVNode("div", { class: "loading-spinner" }, null, -1),
                  createElementVNode("p", null, "正在加载可用下载卷...", -1)
                ]))) : $data.tasks.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_4, _cache[2] || (_cache[2] = [
                  createElementVNode("div", null, "📋", -1),
                  createElementVNode("h3", null, "暂无进行中任务,点击开始领取", -1)
                ]))) : (openBlock(), createElementBlock("div", _hoisted_5, [
                  (openBlock(true), createElementBlock(Fragment, null, renderList($data.tasks, (task, index2) => {
                    return openBlock(), createElementBlock("div", {
                      key: index2,
                      class: normalizeClass(["task-card", {
                        processing: task.status === "processing",
                        completed: task.status === "completed",
                        error: task.status === "error"
                      }])
                    }, [
                      createElementVNode("div", _hoisted_6, [
                        createElementVNode("span", null, "极速下载卷 #" + toDisplayString(index2 + 1), 1),
                        createElementVNode("span", _hoisted_7, toDisplayString(task.taskModule || "未知模块"), 1)
                      ]),
                      createElementVNode("div", _hoisted_8, [
                        createElementVNode("div", _hoisted_9, [
                          _cache[3] || (_cache[3] = createElementVNode("div", { class: "info-label" }, "程序ID", -1)),
                          createElementVNode("div", _hoisted_10, toDisplayString(task.selectGameParams?.gameId || "N/A"), 1)
                        ]),
                        createElementVNode("div", _hoisted_11, [
                          _cache[4] || (_cache[4] = createElementVNode("div", { class: "info-label" }, "任务ID", -1)),
                          createElementVNode("div", _hoisted_12, toDisplayString(index2 + 1), 1)
                        ])
                      ]),
                      task.progress ? (openBlock(), createElementBlock("div", _hoisted_13, [
                        createElementVNode("div", {
                          class: "progress-fill",
                          style: normalizeStyle({ width: task.progress + "%" })
                        }, null, 4)
                      ])) : createCommentVNode("", true),
                      createElementVNode("div", {
                        class: normalizeClass(["task-status", {
                          "status-pending": task.status === "pending",
                          "status-processing": task.status === "processing",
                          "status-completed": task.status === "completed",
                          "status-error": task.status === "error"
                        }])
                      }, [
                        task.status === "pending" ? (openBlock(), createElementBlock("span", _hoisted_14, "等待领取")) : task.status === "processing" ? (openBlock(), createElementBlock("span", _hoisted_15, "领取中... " + toDisplayString(task.progress) + "%", 1)) : task.status === "completed" ? (openBlock(), createElementBlock("span", _hoisted_16, "✅ 已领取,明天再来吧~")) : task.status === "error" ? (openBlock(), createElementBlock("span", _hoisted_17, "❌ 错误: " + toDisplayString(task.errorMessage), 1)) : (openBlock(), createElementBlock("span", _hoisted_18, "未知状态"))
                      ], 2)
                    ], 2);
                  }), 128))
                ])),
                _cache[5] || (_cache[5] = createElementVNode("p", { style: { "color": "orange", "text-align": "center", "margin-top": "20px" } }, " 领劵过程中请勿刷新页面,可能影响领卷。可以点击黑色区域,切到后台运行 ", -1))
              ])
            ])
          ]),
          _: 1
        }, 8, ["modelValue"]);
      }
      const index = exports("default", /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-f8630f3e"]]));

    })
  };
}));

System.register("./index-DHChVgv2-Ca4Z4yQE.js", ['element-plus', 'vue', './__monkey.entry-Dj1KGqu2.js'], (function (exports, module) {
  'use strict';
  var ElMessage, resolveComponent, createBlock, openBlock, withCtx, createElementVNode, createVNode, createElementBlock, createTextVNode, toDisplayString, Fragment, renderList, _export_sfc;
  return {
    setters: [module => {
      ElMessage = module.ElMessage;
    }, module => {
      resolveComponent = module.resolveComponent;
      createBlock = module.createBlock;
      openBlock = module.openBlock;
      withCtx = module.withCtx;
      createElementVNode = module.createElementVNode;
      createVNode = module.createVNode;
      createElementBlock = module.createElementBlock;
      createTextVNode = module.createTextVNode;
      toDisplayString = module.toDisplayString;
      Fragment = module.Fragment;
      renderList = module.renderList;
    }, module => {
      _export_sfc = module._;
    }],
    execute: (function () {

      const _sfc_main = {
        name: "BossXiaZaiGongZuo",
        data() {
          return {
            drawer: false,
            jobs: [],
            currentPage: 1,
            pageSize: 10,
            downloading: false,
            autoDetect: false,
            autoDetectTimer: null
          };
        },
        computed: {
          totalPages() {
            return Math.ceil(this.jobs.length / this.pageSize);
          },
          paginatedJobs() {
            const start = (this.currentPage - 1) * this.pageSize;
            const end = start + this.pageSize;
            return this.jobs.slice(start, end);
          }
        },
        methods: {
          open() {
            this.drawer = true;
          },
          // 切换自动检测
          toggleAutoDetect() {
            this.autoDetect = !this.autoDetect;
            if (this.autoDetect) {
              ElMessage.success("已开启自动爬取岗位功能");
              this.getJobs();
              this.autoDetectTimer = setInterval(() => {
                this.getJobs();
              }, 3e3);
            } else {
              this.stopInterval();
              ElMessage.info("已暂停爬取岗位功能");
            }
          },
          stopInterval() {
            if (this.autoDetectTimer) {
              clearInterval(this.autoDetectTimer);
              this.autoDetectTimer = null;
            }
          },
          // 爬取工作
          getJobs() {
            try {
              const jobContainer = document.querySelector(
                "#wrap > div.page-jobs-main"
              );
              if (!jobContainer) {
                if (this.autoDetect) {
                  console.log("未找到岗位列表容器");
                } else {
                  ElMessage.error(
                    "未找到岗位列表容器,请确保在BOSS直聘岗位搜索页面使用"
                  );
                }
                return;
              }
              const vueInstance = jobContainer.__vue__;
              if (!vueInstance || !vueInstance.jobList) {
                if (this.autoDetect) {
                  console.log("无法爬取岗位数据");
                } else {
                  ElMessage.error("无法爬取岗位数据,请刷新页面后重试");
                }
                return;
              }
              const rawJobs = vueInstance.jobList || [];
              console.log("原始岗位数据:", rawJobs);
              const formattedJobs = rawJobs.map((job) => {
                return {
                  jobId: job.jobId,
                  encryptJobId: job.encryptJobId,
                  jobName: job.jobName,
                  brandName: job.brandName,
                  salaryDesc: job.salaryDesc,
                  jobLabels: job.jobLabels || [],
                  skills: job.skills || [],
                  areaDistrict: job.areaDistrict,
                  jobExperience: job.jobExperience,
                  jobDegree: job.jobDegree,
                  cityName: job.cityName,
                  brandLogo: job.brandLogo,
                  brandStageName: job.brandStageName,
                  brandIndustry: job.brandIndustry,
                  brandScaleName: job.brandScaleName,
                  bossName: job.bossName,
                  bossTitle: job.bossTitle,
                  bossAvatar: job.bossAvatar,
                  goldHunter: job.goldHunter,
                  jobUrl: `https://www.zhipin.com/job_detail/${job.encryptJobId}.html`,
                  securityId: job.securityId,
                  lid: job.lid
                };
              });
              const uniqueJobs = [];
              const jobIds = /* @__PURE__ */ new Set();
              formattedJobs.forEach((job) => {
                if (!jobIds.has(job.encryptJobId)) {
                  jobIds.add(job.encryptJobId);
                  uniqueJobs.push(job);
                }
              });
              if (this.jobs.length === uniqueJobs.length) {
                ElMessage({
                  message: "当前页面没有数据了~",
                  type: "success",
                  duration: 5e3
                });
                this.autoDetect = false;
                this.stopInterval();
                return;
              }
              this.jobs = uniqueJobs;
              if (this.autoDetect) {
                ElMessage.success(`自动检测: 爬取到 ${uniqueJobs.length} 个岗位信息`);
                window.scrollTo({
                  top: document.body.scrollHeight,
                  behavior: "smooth"
                });
              } else {
                ElMessage({
                  message: `成功爬取到 ${uniqueJobs.length} 个岗位信息`,
                  type: "success"
                });
              }
            } catch (error) {
              console.error("爬取岗位信息失败:", error);
              if (!this.autoDetect) {
                ElMessage.error("爬取岗位信息失败: " + error.message);
              }
            }
          },
          // 下载所有岗位
          async downloadAll() {
            if (this.jobs.length === 0) {
              ElMessage.warning("没有岗位信息可下载");
              return;
            }
            this.downloading = true;
            try {
              this.exportToCSV(this.jobs);
              ElMessage({
                message: `成功下载 ${this.jobs.length} 个岗位信息`,
                type: "success"
              });
            } catch (error) {
              console.error("下载失败:", error);
              ElMessage.error("下载失败: " + error.message);
            } finally {
              this.downloading = false;
            }
          },
          // 导出为CSV - 优化大数据量处理
          exportToCSV(jobsData) {
            const headers = [
              "职位名称",
              "公司名称",
              "薪资",
              "城市",
              "地区",
              "经验要求",
              "学历要求",
              "技能要求",
              "标签",
              "公司行业",
              "公司规模",
              "HR姓名",
              "HR职位",
              "职位链接"
            ];
            const chunkSize = 1e3;
            const chunks = [];
            for (let i = 0; i < jobsData.length; i += chunkSize) {
              chunks.push(jobsData.slice(i, i + chunkSize));
            }
            const csvChunks = chunks.map((chunk) => {
              return chunk.map(
                (job) => [
                  `"${this.escapeCSVField(job.jobName || "")}"`,
                  `"${this.escapeCSVField(job.brandName || "")}"`,
                  `"${this.escapeCSVField(job.salaryDesc || "")}"`,
                  `"${this.escapeCSVField(job.cityName || "")}"`,
                  `"${this.escapeCSVField(job.areaDistrict || "")}"`,
                  `"${this.escapeCSVField(job.jobExperience || "")}"`,
                  `"${this.escapeCSVField(job.jobDegree || "")}"`,
                  `"${this.escapeCSVField((job.skills || []).join("|"))}"`,
                  `"${this.escapeCSVField((job.jobLabels || []).join("|"))}"`,
                  `"${this.escapeCSVField(job.brandIndustry || "")}"`,
                  `"${this.escapeCSVField(job.brandScaleName || "")}"`,
                  `"${this.escapeCSVField(job.bossName || "")}"`,
                  `"${this.escapeCSVField(job.bossTitle || "")}"`,
                  `"${this.escapeCSVField(job.jobUrl || "")}"`
                ].join(",")
              );
            });
            const csvContent = [headers.join(","), ...csvChunks.flat()].join("\n");
            const blob = new Blob(["\uFEFF" + csvContent], {
              type: "text/csv;charset=utf-8;"
            });
            const url = URL.createObjectURL(blob);
            const link = document.createElement("a");
            link.setAttribute("href", url);
            link.setAttribute(
              "download",
              `BOSS岗位信息_${(/* @__PURE__ */ new Date()).toISOString().slice(0, 10)}.csv`
            );
            link.style.visibility = "hidden";
            document.body.appendChild(link);
            link.click();
            document.body.removeChild(link);
          },
          // CSV字段转义
          escapeCSVField(field) {
            if (typeof field !== "string") return field;
            return field.replace(/"/g, '""');
          },
          // 处理分页变化
          handleCurrentChange(page) {
            this.currentPage = page;
          }
        },
        beforeDestroy() {
          if (this.autoDetectTimer) {
            clearInterval(this.autoDetectTimer);
          }
        }
      };
      const _hoisted_1 = { style: { "margin-bottom": "20px" } };
      const _hoisted_2 = { key: 0 };
      const _hoisted_3 = { style: { "display": "flex", "flex-wrap": "wrap", "gap": "4px" } };
      const _hoisted_4 = { style: { "display": "flex", "flex-wrap": "wrap", "gap": "4px" } };
      const _hoisted_5 = { style: { "margin-top": "20px", "display": "flex", "justify-content": "space-between", "align-items": "center" } };
      const _hoisted_6 = { key: 1 };
      function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
        const _component_el_button = resolveComponent("el-button");
        const _component_el_alert = resolveComponent("el-alert");
        const _component_el_table_column = resolveComponent("el-table-column");
        const _component_el_link = resolveComponent("el-link");
        const _component_el_tag = resolveComponent("el-tag");
        const _component_el_table = resolveComponent("el-table");
        const _component_el_pagination = resolveComponent("el-pagination");
        const _component_el_drawer = resolveComponent("el-drawer");
        return openBlock(), createBlock(_component_el_drawer, {
          modelValue: $data.drawer,
          "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.drawer = $event),
          direction: "ttb",
          title: "BOSS岗位信息下载工具",
          size: "80%"
        }, {
          default: withCtx(() => [
            createElementVNode("div", _hoisted_1, [
              createVNode(_component_el_button, {
                onClick: $options.toggleAutoDetect,
                type: $data.autoDetect ? "danger" : "primary"
              }, {
                default: withCtx(() => [
                  createTextVNode(toDisplayString($data.autoDetect ? "暂停爬取" : "爬取【当前页】岗位"), 1)
                ]),
                _: 1
              }, 8, ["onClick", "type"]),
              createVNode(_component_el_button, {
                onClick: $options.downloadAll,
                type: "success",
                loading: $data.downloading,
                disabled: $data.jobs.length === 0,
                style: { "margin-left": "20px" }
              }, {
                default: withCtx(() => [
                  createTextVNode(toDisplayString($data.downloading ? "下载中..." : `下载全部岗位 (${$data.jobs.length}个)`), 1)
                ]),
                _: 1
              }, 8, ["onClick", "loading", "disabled"])
            ]),
            createVNode(_component_el_alert, {
              type: "error",
              description: "本插件仅用于学习和技术研究目的,不得用于任何商业用途。使用本插件产生的任何后果均由使用者自行承担,开发者不承担任何责任。",
              "show-icon": "",
              style: { "margin-bottom": "20px" },
              closable: ""
            }),
            $data.jobs.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_2, [
              createVNode(_component_el_alert, {
                title: `共爬取到 ${$data.jobs.length} 个岗位信息,当前显示第 ${$data.currentPage} 页,共 ${$options.totalPages} 页`,
                type: "success",
                "show-icon": "",
                style: { "margin-bottom": "20px" }
              }, null, 8, ["title"]),
              createVNode(_component_el_table, {
                data: $options.paginatedJobs,
                height: "500",
                style: { "width": "100%" },
                border: ""
              }, {
                default: withCtx(() => [
                  createVNode(_component_el_table_column, {
                    type: "index",
                    label: "#",
                    width: "60"
                  }, {
                    default: withCtx((scope) => [
                      createTextVNode(toDisplayString(($data.currentPage - 1) * $data.pageSize + scope.$index + 1), 1)
                    ]),
                    _: 1
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "jobName",
                    label: "职位名称",
                    "min-width": "150"
                  }, {
                    default: withCtx((scope) => [
                      createVNode(_component_el_link, {
                        href: scope.row.jobUrl,
                        target: "_blank",
                        type: "primary"
                      }, {
                        default: withCtx(() => [
                          createTextVNode(toDisplayString(scope.row.jobName), 1)
                        ]),
                        _: 2
                      }, 1032, ["href"])
                    ]),
                    _: 1
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "brandName",
                    label: "公司名称",
                    "min-width": "120"
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "salaryDesc",
                    label: "薪资",
                    width: "100"
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "skills",
                    label: "技能要求",
                    "min-width": "200"
                  }, {
                    default: withCtx((scope) => [
                      createElementVNode("div", _hoisted_3, [
                        (openBlock(true), createElementBlock(Fragment, null, renderList(scope.row.skills, (skill) => {
                          return openBlock(), createBlock(_component_el_tag, {
                            key: skill,
                            size: "small"
                          }, {
                            default: withCtx(() => [
                              createTextVNode(toDisplayString(skill), 1)
                            ]),
                            _: 2
                          }, 1024);
                        }), 128))
                      ])
                    ]),
                    _: 1
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "jobLabels",
                    label: "标签",
                    "min-width": "150"
                  }, {
                    default: withCtx((scope) => [
                      createElementVNode("div", _hoisted_4, [
                        (openBlock(true), createElementBlock(Fragment, null, renderList(scope.row.jobLabels, (tag) => {
                          return openBlock(), createBlock(_component_el_tag, {
                            key: tag,
                            size: "small"
                          }, {
                            default: withCtx(() => [
                              createTextVNode(toDisplayString(tag), 1)
                            ]),
                            _: 2
                          }, 1024);
                        }), 128))
                      ])
                    ]),
                    _: 1
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "areaDistrict",
                    label: "地区",
                    width: "100"
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "jobExperience",
                    label: "经验要求",
                    width: "100"
                  }),
                  createVNode(_component_el_table_column, {
                    prop: "jobDegree",
                    label: "学历要求",
                    width: "100"
                  })
                ]),
                _: 1
              }, 8, ["data"]),
              createElementVNode("div", _hoisted_5, [
                createVNode(_component_el_pagination, {
                  "current-page": $data.currentPage,
                  "page-size": $data.pageSize,
                  total: $data.jobs.length,
                  layout: "prev, pager, next, jumper",
                  background: "",
                  style: { "margin": "0 auto" },
                  onCurrentChange: $options.handleCurrentChange
                }, null, 8, ["current-page", "page-size", "total", "onCurrentChange"])
              ])
            ])) : (openBlock(), createElementBlock("div", _hoisted_6, [
              createVNode(_component_el_alert, {
                title: "暂无岗位信息,点击上方按钮开始爬取岗位信息",
                type: "info",
                "show-icon": ""
              })
            ]))
          ]),
          _: 1
        }, 8, ["modelValue"]);
      }
      const index = exports("default", /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]));

    })
  };
}));

System.import("./__entry.js", "./");

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址