问卷星_大塘卫生院专供

用于大塘卫生院问卷调查

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         问卷星_大塘卫生院专供
// @namespace    https:www.yowayimono.cn
// @version      0.4.1
// @description  用于大塘卫生院问卷调查
// @author       Yowayimono
// @match        https://www.wjx.cn/*
// @grant        none
// @require https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js
// ==/UserScript==

sessionStorage.clear();

(function() {
    'use strict';
    var url = "https://www.wjx.cn/vm/hS5amYI.aspx";
    if (window.location.href.includes("https://www.wjx.cn/wjx/join/complete")) {
        window.location.href = url;
    }

    var socre = [9,9.7, 9.5, 8, 8.8, 8.9,9.3, 9.4, 8.5,9.6];
    var appraise = [
        "医护人员服务态度非常好,让人感到温馨和安心。",
        "医院环境干净整洁,医护人员专业且细心。",
        "医生耐心解答我的疑问,让我对治疗充满信心。",
        "护士的服务态度非常亲切,让我感到非常满意。",
        "医院的医疗设备先进,医生的诊断准确。",
        "医护人员的服务效率高,让我节省了很多时间。",
        "医院的就诊流程清晰,服务人员态度友好。",
        "医生的治疗方案专业,护士的护理工作细致。",
        "医院的环境舒适,医护人员的服务态度让人感到温暖。",
        "医生的医术高超,护士的服务态度让人感到放心。",
        "医院的医疗服务周到,医护人员的沟通能力很强。",
        "医生的治疗效果显著,护士的护理工作到位。",
        "医院的就诊环境安静,医护人员的服务态度让人感到舒适。",
        "医生的诊断准确,护士的护理工作专业。",
        "医院的医疗服务态度好,医护人员的服务效率高。",
        "医生的治疗方案合理,护士的护理工作细心。",
        "医院的就诊流程简单,医护人员的服务态度让人满意。",
        "医生的医术精湛,护士的服务态度让人感到温馨。",
        "医院的医疗服务专业,医护人员的服务态度让人感到尊重。",
        "医生的治疗方案周到,护士的护理工作专业。",
        "医院的就诊环境舒适,医护人员的服务态度让人感到安心。",
        "医生的诊断准确,护士的护理工作细心。",
        "医院的医疗服务态度好,医护人员的服务效率高。",
        "医生的治疗方案专业,护士的护理工作到位。",
        "医院的就诊流程清晰,医护人员的服务态度让人感到满意。",
        "医生的医术高超,护士的服务态度让人感到放心。",
        "医院的医疗服务周到,医护人员的沟通能力很强。",
        "医生的治疗效果显著,护士的护理工作专业。",
        "医院的就诊环境安静,医护人员的服务态度让人感到舒适。",
        "医生的诊断准确,护士的护理工作细心。",
        "医院的医疗服务态度好,医护人员的服务效率高。",
        "医生的治疗方案合理,护士的护理工作专业。",
        "医院的就诊流程简单,医护人员的服务态度让人感到满意。",
        "医生的医术精湛,护士的服务态度让人感到温馨。",
        "医院的医疗服务专业,医护人员的服务态度让人感到尊重。",
        "医生的治疗方案周到,护士的护理工作细心。",
        "医院的就诊环境舒适,医护人员的服务态度让人感到安心。",
        "医生的诊断准确,护士的护理工作专业。",
        "医院的医疗服务态度好,医护人员的服务效率高。",
        "医生的治疗方案专业,护士的护理工作到位。",
        "医院的就诊流程清晰,医护人员的服务态度让人感到满意。"
    ];

    function generateChinesePhoneNumbers(count) {
        const phoneNumbers = [];
        const prefixes = ['131', '132', '133', '134', '135', '136', '137', '138', '139', '147', '150', '151', '152', '153', '155', '156', '157', '158', '159', '166', '170', '171', '172', '173','167', '176', '177', '178', '180', '181', '182', '183', '184', '185', '186', '187', '188', '189'];

        for (let i = 0; i < count; i++) {
            const prefix = prefixes[Math.floor(Math.random() * prefixes.length)];
            const suffix = Math.floor(Math.random() * 90000000) + 10000000; // 8 位随机数字
            const phoneNumber = prefix + suffix.toString();
            phoneNumbers.push(phoneNumber);
        }

        return phoneNumbers;
    }

    const phones = generateChinesePhoneNumbers(100);

    clearCookies();

    function getRandomNumber(min, max) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    }

    function clearCookies() {
        var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; i++) {
            var cookie = cookies[i];
            var eqPos = cookie.indexOf("=");
            var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
            document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;";
        }
    }

    function doNext() {
        var nextButton = document.getElementById("divNext").querySelector("a");
        nextButton.click();
    }

    doNext();

    function setRandomInputValue(inputId, valueArray) {
        var inputElement = document.getElementById(inputId);
        var randomIndex = getRandomNumber(0, valueArray.length - 1);
        inputElement.value = valueArray[randomIndex];
        console.log("设置的值:", valueArray[randomIndex]);
    }

    setRandomInputValue("q1", phones);

    doNext();

    clickLayButton();

    function clickRandomRadio(container) {
        var radioElements = container.getElementsByClassName("ui-radio");
        var randomIndex = getRandomNumber(0, radioElements.length - 2);
        radioElements[randomIndex].click();
    }

    function clickLayButton() {
        var lay = document.getElementsByClassName("layui-layer-btn0");
        if (lay.length > 0) {
            lay[0].click();
        }
    }

    function setInputValue(div, value) {
        var ins = div.querySelectorAll("input");
        if (ins.length > 0) {
            ins[0].value = value;
        }
    }

    var questions = document.getElementsByClassName("field ui-field-contain");

    clickRandomRadio(questions[1]);

    var labelDivs = questions[2].getElementsByClassName("ui-radio");
    for (var i = 0; i < labelDivs.length; i++) {
        var tmp = labelDivs[i];
        var d = tmp.getElementsByClassName("label")[0];
        var text = d.textContent.trim();
        if (text === "乡镇卫生院") {
            console.log(text);
            tmp.click();
            var labelDivs2 = questions[4].getElementsByClassName("ui-radio");
            labelDivs2[2].click();
        }
    }

    function setAge(div) {
        const ageInput = div.querySelectorAll("input");
        const randomAge = getRandomNumber(15, 70);
        ageInput[0].value = randomAge;
        console.log(`设置 ${div} 的年龄为 ${randomAge}`);
    }

    setAge(questions[6]);

    clickRandomRadio(questions[7]);
    clickRandomRadio(questions[8]);
    clickRandomRadio(questions[9]);
    clickRandomRadio(questions[10]);
    clickRandomRadio(questions[11]);
    clickRandomRadio(questions[12]);
    clickRandomRadio(questions[13]);

    var ins2 = questions[15].querySelectorAll("input");
    var ind1 = getRandomNumber(0,appraise.length + 160);
    //ins2[0].value = appraise[ind1];

    if (appraise[ind1]!== undefined) {
        ins2[0].value = appraise[ind1];
    } else {
        console.log("ind2 is undefined, skipping assignment.");
    }

    var ins3 = questions[14].querySelectorAll("input");
    var ind2 = getRandomNumber(0, socre.length + 30);

    if (socre[ind2]!== undefined) {
        ins3[0].value = socre[ind2];
    } else {
        console.log("ind2 is undefined, skipping assignment.");
    }

    // 从 localStorage 中获取提交次数和上次提交日期
    let submissionCount = parseInt(localStorage.getItem('submissionCount')) || 0;
    let lastSubmissionDate = localStorage.getItem('lastSubmissionDate');
    let currentDate = new Date().toDateString();

    // 如果日期发生变化,重置提交次数
    if (lastSubmissionDate !== currentDate) {
        submissionCount = 0;
        localStorage.setItem('lastSubmissionDate', currentDate);
    }

    // 创建一个显示提交次数的元素
    const submissionCountElement = document.createElement('div');
    submissionCountElement.style.position = 'fixed';
    submissionCountElement.style.top = '10px';
    submissionCountElement.style.left = '10px';
    submissionCountElement.style.backgroundColor = 'white';
    submissionCountElement.style.border = '1px solid black';
    submissionCountElement.style.padding = '5px';
    submissionCountElement.style.zIndex = '1000';
    submissionCountElement.textContent = `今日提交次数${submissionCount}`;
    document.body.appendChild(submissionCountElement);

    async function submit() {
        submissionCount++; // 每次提交时增加计数器
        localStorage.setItem('submissionCount', submissionCount); // 保存提交次数到 localStorage
        submissionCountElement.textContent = `提交次数: ${submissionCount}`; // 更新显示的提交次数

        await new Promise((resolve) => {
            setTimeout(() => {
                const nextBtn = document.evaluate('//*[@id="ctlNext"]', document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
                if (nextBtn) {
                    nextBtn.click();
                    resolve();
                }
            }, 5000);
        });

        await new Promise((resolve) => {
            setTimeout(() => {
                document.querySelector('#rectMask').click();
                resolve();
            }, 2000);
        });

        await new Promise((resolve) => {
            setTimeout(() => {
                simulateSliderVerification();
                resolve();
            }, 4000);
        });

        await new Promise((resolve) => {
            setTimeout(() => {
                window.location.reload(); // 刷新页面
                resolve();
            }, 5000);
        });
    }

    async function simulateSliderVerification() {
        const slider = document.querySelector('#nc_1__scale_text > span');
        if (slider.textContent.startsWith('请按住滑块')) {
            const width = slider.offsetWidth;
            const eventOptions = { bubbles: true, cancelable: true };
            const dragStartEvent = new MouseEvent('mousedown', eventOptions);
            const dragEndEvent = new MouseEvent('mouseup', eventOptions);
            const steps = 10;
            const stepWidth = width / steps;
            let currX = stepWidth / 2;
            slider.dispatchEvent(dragStartEvent);
            const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
            for (let i = 0; i < steps; i++) {
                const randomTime = Math.random() * 100 + 50;
                slider.dispatchEvent(new MouseEvent('mousemove', Object.assign({ clientX: currX }, eventOptions)));
                currX += stepWidth;
                await delay(randomTime);
            }
            slider.dispatchEvent(dragEndEvent);
            console.log("滑动完成");
        }
    }

    const targetUrl = 'https://www.wjx.cn/wjx/join/completemobile2.aspx';

    window.addEventListener('load', function() {
        if (window.location.href.includes(targetUrl)) {
            captureScreenshot();
        }
    });

    function captureScreenshot() {
        html2canvas(document.body).then(function(canvas) {
            var dataURL = canvas.toDataURL('image/png');
            GM_download(dataURL, 'screenshot.png');
        });
    }
    function getTimeOut() {
    return 16000 + Math.floor(Math.random() * 14000); // 16 秒到 30 秒之间的随机时间
}
    
    var timeOut = getTimeOut();
    console.log(timeOut);

    // 确保每次提交时都调用 submit 函数
    setInterval(submit, timeOut); // 每 15 秒提交一次
})();