订餐问卷一键填写, 不要忘记订餐😂
当前为
// ==UserScript==
// @name 订餐问卷一键填写
// @version 0.0.6
// @namespace ly525
// @description 订餐问卷一键填写, 不要忘记订餐😂
// @author ly525
// @match *://*.www.wenjuan.com/*
// @run-at document-end
// @license MIT
// ==/UserScript==
(function() {
function readSavedConfig() {
var baseConfig = {
name: "刘岩",
breakfast: "公司用餐",
lunch: "公司盒饭",
dinner: "公司盒饭",
location: "舜天",
department: "TaurusX Group"
};
return (
(localStorage.__config && JSON.parse(localStorage.__config)) || baseConfig
);
}
var config = readSavedConfig();
function saveConfig() {
localStorage.__config = textarea.value.replace(/[\r\n]/g, "");
}
// ---------
var textarea = document.createElement("textarea");
textarea.style.position = "absolute";
textarea.style["z-index"] = 100;
textarea.style.right = "10px";
textarea.style.top = "10px";
textarea.setAttribute("rows", 10);
textarea.setAttribute("cols", 40);
textarea.innerHTML = JSON.stringify(config, undefined, 4);
textarea.addEventListener("change", function(e) {
localStorage.__config = e.target.value.replace(/[\r\n]/g, "");
});
document.body.appendChild(textarea);
// ---------------
var nameLabel = "姓名";
var locationLabel = "办公地点";
var breakfastLabel = "早餐";
var lunchLabel = "午餐";
var dinnerLabel = "晚餐";
var departmentLabel = "部门";
function fillName(el) {
el.querySelector("input[type=text]").value = config.name;
}
function fillOption(el, labelKey) {
// el.querySelectorAll('input[type=radio]')[1].checked = true
var cells = [].slice.apply(el.querySelectorAll(".option_cell"));
cells.forEach(function(cell) {
if (cell.innerHTML.includes(config[labelKey])) {
cell.querySelector("input[type=radio]").checked = true;
}
});
}
function autoFill() {
var question_boxs = [].slice.apply(
document.querySelectorAll(".wjques.maxtop.question")
);
question_boxs.forEach(function(el) {
var content = el.innerHTML;
if (content.includes(nameLabel)) {
fillName(el);
} else if (content.includes(locationLabel)) {
fillOption(el, "location");
} else if (content.includes(breakfastLabel)) {
fillOption(el, "breakfast");
} else if (content.includes(lunchLabel)) {
fillOption(el, "lunch");
} else if (content.includes(dinnerLabel)) {
fillOption(el, "dinner");
} else if (content.includes(departmentLabel)) {
fillOption(el, "department");
}
});
}
function addOneClickBtn() {
var btn = document.createElement("button");
btn.classList.add("WJButton");
btn.innerHTML = "一键订餐";
btn.style = `position: absolute;
right: 140px;
top: 240px;
width: 120px;
height: 50px;
background: rebeccapurple;
z-index: 1000;`;
document.body.appendChild(btn);
btn.addEventListener("click", function() {
// 点击的时候,始终读取最新的配置
config = readSavedConfig();
saveConfig();
autoFill();
updateConfigBtnPosition();
});
}
function updateConfigBtnPosition() {
var confirmBtn = document.querySelector("#next_button");
confirmBtn.style.right = "140px";
confirmBtn.style.width = "280px";
}
var btn = addOneClickBtn();
})();