weihl_test

open one's eyes to see the world.

// ==UserScript==
// @name         weihl_test
// @namespace    http://tampermonkey.net/
// @version      V0.1
// @description  open one's eyes to see the world.
// @author       weihule
// @match        https://pmos.sd.sgcc.com.cn:18080/trade/main/index.do*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=google.com
// @grant        GM_download
// @grant        GM_xmlhttpRequest
// @license      AGPL-3.0
// ==/UserScript==

(function() {
    'use strict';

    function doMYExport() {
        let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
        console.log('进入 iframe 时未报错')

        let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
        console.log('这里也没报错')

        setTimeout(function() {
            let dialog_header = iframeDocument.getElementsByClassName('modal-dialog modal-lg')[1].getElementsByClassName('modal-content')[0].getElementsByClassName('modal-header')[0];
            dialog_header.getElementsByClassName('close')[0].click();
        }, 3000);

        // 定位数据表单控件
        iframeDocument.getElementsByClassName('dataTables_scroll')[0]
        let table = iframeDocument.querySelector('.dataTables_scrollBody table');
        let headers = [];
        let headerCells = table.querySelectorAll('thead th');
        headerCells.forEach(cell => {
            headers.push(cell.textContent.trim());
        });
        let table_data = [];
        let rows = table.querySelectorAll('tbody tr');
        rows.forEach(row => {
            let rowData = [];
            let cells = row.querySelectorAll('td');
            cells.forEach(cell => {
                rowData.push(cell.textContent.trim());
            });
            table_data.push(rowData);
        });

        console.log('表头:', headers);
        console.log('数据:', table_data);

        table_data = JSON.stringify(table_data)

        console.log('---数据:', table_data);
        const data2 = {"key": "value","key1": "value","key11": "value"};
        GM_xmlhttpRequest({
            method: "POST",
            url: "http://192.168.1.76:8000/",
            headers: {
                "Content-Type": "application/json;charset=utf-8"
            },
            data:table_data,
            onload: function(response){
                console.log("请求成功");
                console.log(response.responseText);
            },
            onerror: function(response){
            console.log("请求失败");
            }
        });
    }

    function addButton() {
        let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
        if (!iframe) return;

        let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
        if (!iframeDocument) return;

        let targetParentDiv = iframeDocument.getElementsByClassName('paper-top');
        let secondChildDiv = iframeDocument.getElementsByClassName('fbutton paperBut');

        if (!targetParentDiv.length ||!secondChildDiv.length) return;

        // 创建新的 div
        let newDiv = iframeDocument.createElement('div');
        newDiv.className = 'customDiv';
        newDiv.style.marginTop = '5px';
        // newDiv.style.width = '90px';

        const button = iframeDocument.createElement('button');
        button.type = 'button';
        button.className = 'btn btn-primary hover';
        button.textContent = '导出-MY';

        // 添加点击事件监听器
        button.addEventListener('click', doMYExport);

        // 将按钮添加到新创建的 div 中
        newDiv.appendChild(button);

        targetParentDiv[0].insertBefore(newDiv, secondChildDiv[0]);
    }

    window.addEventListener('load', function() {
        addButton();

        setInterval(() => {
            let iframe = document.getElementsByClassName('container-fluid')[2].querySelector('iframe');
            if (!iframe) return;
    
            let iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
            if (!iframeDocument) return;
    
            let targetElement = iframeDocument.getElementsByClassName('customDiv');
            if (targetElement.length === 0){
                console.log("需要添加")
                addButton()
            }
            else{
                console.log("无需添加")
            }
        }, 1000);
    
    });
})();