// ==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", "./");