uom

uom.

// ==UserScript==
// @name         uom
// @namespace    http://tampermonkey.net/
// @version      0.10
// @description  uom.
// @author       You
// @match        https://uom.caac.gov.cn/
// @include      https://uom.caac.gov.cn/*
// @require      https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js
// @resource     LayuiCss          https://unpkg.com/[email protected]/dist/css/layui.css
// @require      https://cdn.bootcdn.net/ajax/libs/layui/2.8.4/layui.js
// @grant        unsafeWindow
// @grant        GM_addStyle
// @grant        GM_getResourceText
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_registerMenuCommand
// @grant        GM_unregisterMenuCommand
// ==/UserScript==

(function() {

    if (window.self !== window.top ) {

        // 创建一个观察者对象
        const observer = new MutationObserver(function(mutationsList, observer) {
            // 若`div`内容变化,会进入这里
            for(let mutation of mutationsList) {
                if (mutation.type === 'childList') {
                    console.log('节点内容变了')
                    if( $('.mb8').text() == '无人驾驶航空器飞行活动申请' && $('.el-radio-group input').attr('disabled')=="disabled" ){
                        index()
                    }else if($('.el-form-item__label:eq(0)').text() == "申请日期"){
                        var set$2 = setInterval(function(){
                            if( $('div[data-v-3807274c]:not([data-v-03fd8336]) .el-table__body tr')[0]!=null){
                                stopSet2()
                                $('div[data-v-3807274c]:not([data-v-03fd8336]) .el-table__body tr').each(function(){
                                    if( $(this).find('td:eq(4)').find('span[data-v-298a5496]').text()!=='批准'){
                                        $(this).find('td:eq(4)').addClass('greenCell').removeClass('redCell').find('span[data-v-298a5496]').text('批准')
                                        $(this).find('td:last() button:eq(0)').after('<a href="javascript" class="link-type"><button type="button" class="el-button el-button--text el-button--mini"><!----><i class="el-icon-document"></i><span> 起飞确认 </span></button></a>')
                                    }
                                })
                            }
                        },100);
                        function stopSet2(){ clearInterval(set$2); };
                    }else{
                        $('#MyUomPi').css('display', 'none')
                    }
                }
            }
        });
        var targetNode
        var set$ = setInterval(function(){
            // 选择目标节点
            targetNode = $('.app-main[data-v-3807274c]')[0];
            if($('.el-form-item__label:eq(0)').text() == "申请日期"){

                var set$1 = setInterval(function(){
                    if( $('div[data-v-3807274c]:not([data-v-03fd8336]) .el-table__body tr')[0]!=null){
                        stopSet1()
                        $('div[data-v-3807274c]:not([data-v-03fd8336]) .el-table__body tr').each(function(){
                            if( $(this).find('td:eq(4)').find('span[data-v-298a5496]').text()!=='批准'){
                                $(this).find('td:eq(4)').addClass('greenCell').removeClass('redCell').find('span[data-v-298a5496]').text('批准')
                                $(this).find('td:last() button:eq(0)').after('<a href="javascript:void(0);" class="link-type"><button type="button" class="el-button el-button--text el-button--mini"><!----><i class="el-icon-document"></i><span> 起飞确认 </span></button></a>')
                            }
                        })
                    }
                },100);
                function stopSet1(){ clearInterval(set$1); };


             }
            if( targetNode !=null){
                stopSet()
                //console.log(targetNode )
                // 观察者的配置(观察目标节点的子节点的变化)
                const config = { attributes: false, childList: true, subtree: false };
                // 传入目标节点和观察选项并开始观察
                observer.observe(targetNode, config);
            }

        },100);
        function stopSet(){ clearInterval(set$); };

        function index(){
            // console.log("当前页面位于iframe子页面");
            var message = true ; // 要传递的消息
            window.parent.postMessage(message, "*"); // *表示任意源都能收到消息
            if( $('#MyUomPi')[0]!=null ){
                $('#MyUomPi').css('display', 'block')
            }else{
                GM_addStyle( GM_getResourceText("LayuiCss").toString()
                            .replace(/([^.@-]+{[^}]*}\s*)*/im , '')
                            .replaceAll(/@font-face\s*\{\s*font-family:\s*layui-icon;[^}]*}/img,
                                        "@font-face { "+
                                        "font-family: layui-icon; "+
                                        "src: url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.eot); "+
                                        "src: url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.eot) format('embedded-opentype'),"+
                                        "     url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.woff2) format('woff2'),"+
                                        "     url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.woff) format('woff'),"+
                                        "     url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.ttf) format('truetype'),"+
                                        "     url(https://cdn.bootcdn.net/ajax/libs/layui/2.8.17/font/iconfont.svg) format('svg')}") );
                var active = false;
                var currentX ,currentY ;
                $("body").append(["<div id='MyUomPi' style='width: 30px;height: 30px;color: black;background-color:rgb(149, 228, 246);position: fixed;top:"+ GM_getValue("top",'1px') + ";left: "+ GM_getValue("left", '1px')+"right: "+ GM_getValue("right", 'auto')+";z-index: 1000009999999999999;font-size: 20px;line-height: 30px;text-align: center;cursor: pointer;border-radius: 30px;'>" +
                                  "   <div style='-webkit-user-select: none!important;   -moz-user-select: none!important;  -ms-user-select: none!important; user-select: none!important; width: 30px!important;height: 30px!important;line-height: 30px!important;font-size: 20px !important;font-family: Helvetica!important;'>批</div>"+
                                  "</div>"][0])
                    .append('<div id="NonePi"  style=" display: none;position: fixed;align-items: center; justify-content: center;z-index: 214748364; height: 33%; width: 100%; top: 67%; background: linear-gradient(to top, #919191, #ffffff);text-align: center;">'+
                            '    <div style=" height: 70px; width: 240px;  background-color: #ec9f9f8f;  color: red; border-radius: 4px;font-family: &quot;Times New Roman&quot;, Georgia, serif !important;font-size: 21px;">拖到此处隐藏图标<br>(刷新重置)</div>'+
                            '</div>')

                $('#MyUomPi').on('mousedown', function(e) {
                    active = true;
                    currentX= $(this).css('left')
                    currentY= $(this).css('top')
                    $('body :not(body)').css('user-select','none')
                }).on( 'touchstart',function (x) {
                    active = true;
                    currentX= $(this).css('left')
                    currentY= $(this).css('top')
                    $('body :not(body)').css('user-select','none')
                }).on('mouseup', function() {
                    $('body :not(body)').css('user-select','auto')
                    active = false;
                    if( currentX== $(this).css('left')&& currentY== $(this).css('top') ){
                        MyUomPi()
                    }else{
                        $(this).css('transform', 'scale(1)')
                        // 页面的大小信息
                        var docWidth = document.documentElement.scrollWidth;
                        var docHeight = document.documentElement.scrollHeight
                        // 隐藏块的位置信息
                        var element = $('#NonePi div')[0];
                        var rect = element.getBoundingClientRect();
                        var left = $(this).css('left').replace("px",'')
                        var top = $(this).css('top').replace("px",'')
                        var right;
                        left = parseInt(left);top = parseInt(top);
                        if( (top+15 >= rect.top && top <= rect.bottom )&&( left+15 >= rect.left && left <= rect.right ) ){
                            console.log('隐藏')
                            $(this).css('display', 'none')
                        }
                        $('#NonePi').css('display','none')
                        if( left < docWidth/2 ){
                            left = '1px'; right = "auto"
                        }else{
                            left = 'auto'; right = '1px'
                        }
                        $(this).css('left', left).css('right',right)
                        GM_setValue("top",  top+'px');
                        GM_setValue("left", left);
                        GM_setValue("right",right);
                    }
                }).on( 'touchend touchcancel',function (x) {
                    $('body :not(body)').css('user-select','auto')
                    active = false;
                    if( currentX== $(this).css('left')&& currentY== $(this).css('top') ){
                        MyUomPi()
                    }else{
                        $(this).css('transform', 'scale(1)')
                        // 页面的大小信息
                        var docWidth = document.documentElement.scrollWidth;
                        var docHeight = document.documentElement.scrollHeight
                        // 隐藏块的位置信息
                        var element = $('#NonePi div')[0];
                        var rect = element.getBoundingClientRect();
                        var left = $(this).css('left').replace("px",'')
                        var top = $(this).css('top').replace("px",'')
                        var right;
                        left = parseInt(left);top = parseInt(top);
                        if( (top+15 >= rect.top && top <= rect.bottom )&&( left+15 >= rect.left && left <= rect.right ) ){
                            console.log('隐藏')
                            $(this).css('display', 'none')
                        }
                        $('#NonePi').css('display','none')
                        if( left < docWidth/2 ){
                            left = '1px'; right = "auto"
                        }else{
                            left = 'auto'; right = '1px'
                        }
                        $(this).css('left', left).css('right',right)
                        GM_setValue("top",  top+'px');
                        GM_setValue("left", left);
                        GM_setValue("right",right);
                    }
                }).on( 'mouseleave',function (x) {
                    var docWidth = document.documentElement.scrollWidth;
                    var docHeight = document.documentElement.scrollHeight
                    var left = $(this).css('left').replace("px",'')
                    var top = $(this).css('top').replace("px",'')
                    var right;
                    left = parseInt(left);top = parseInt(top);
                    if( left <10 || left > docWidth-70 || top <10 || top> docHeight-70 ){
                        active = false;
                        $('#NonePi').css('display','none')
                        $(this).css('transform', 'scale(1)')
                        $('#NonePi').css('display','none')
                        if( left < docWidth/2 ){
                            left = '1px'; right = "auto"
                        }else{
                            left = 'auto'; right = '1px'
                        }
                        $(this).css('left', left).css('right',right)
                        GM_setValue("top", top+'px');
                        GM_setValue("left", left);
                        GM_setValue("right",right);
                    }
                })
                $('body').on('mousemove', function(event) {
                    var x = event.pageX, y = event.pageY
                    if (active) {
                        $('#NonePi').css('display','flex')
                        x = x>30 ? x-30 :x;
                        y = y>30 ? y-30 :y
                        $('#MyUomPi').css('transform', 'scale(2)').css('left',x + 'px').css('top' , y + 'px').css('right','auto')
                    }
                })[0].addEventListener( 'touchmove', function(event) {
                    //console.log(event)
                    //var x = event.originalEvent.touches[0].pageX, y = event.originalEvent.touches[0].pageY 用于.on 绑定事件
                    var x = event.touches[0].pageX, y = event.touches[0].pageY
                    //if (Math.abs(distanceX) > 10 || Math.abs(distanceY) > 10) {
                    if (active) {
                        // 阻止页面滚动
                        event.preventDefault();
                        $('#NonePi').css('display','flex')
                        x = x>30 ? x-30 :x;
                        y = y>30 ? y-30 :y
                        $('#MyUomPi').css('transform', 'scale(2)').css('left',x + 'px').css('top' , y + 'px').css('right','auto')
                    }
                    //}
                },{ passive: false } )
                var MakeMenu =function(){
                    var menu = GM_registerMenuCommand( '显示‘批’图标' , function() {
                        $('#MyUomPi').css('display', 'block')
                        GM_unregisterMenuCommand(menu);
                        menu = GM_registerMenuCommand( '隐藏‘批’图标' , function() {
                            $('#MyUomPi').css('display', 'none')
                            GM_unregisterMenuCommand(menu);
                            MakeMenu()
                        })
                    })
                    return menu;
                }
                MakeMenu()
                var MyUomPi = function(){
                    if( $('.mb8').text() == '无人驾驶航空器飞行活动申请' && $('.el-radio-group input').attr('disabled')=="disabled" ){

                        // console.log(  $('.el-input.is-disabled .el-input__inner') )//.removeAttr('disabled').css({'cursor':'text','color': 'black', 'background-color':'white', })
                        GM_addStyle( '#layer_id_1 .layui-form-label  { width: 180px;!important;}')
                        var form =
                            '<div class="layui-form-item" id="ID-laydate-rangeLinked"> '+
                            '  <div > '+
                            '    <label class="layui-form-label">预计开始时间</label> '+
                            '    <div class="layui-input-inline"> '+
                            '      <input type="text" class="layui-input" id="ID-laydate-start-date-1" value="'+$('.ivu-date-picker-rel:eq(0) input').val()+'"  placeholder="'+$('.ivu-date-picker-rel:eq(0) input').val()+'" > '+
                            '    </div> '+
                            '  </div> '+
                            '  <div > '+
                            '    <label class="layui-form-label"> 预计结束时间</label> '+
                            '    <div class="layui-input-inline"> '+
                            '      <input type="text" class="layui-input" id="ID-laydate-end-date-1"  value="'+$('.ivu-date-picker-rel:eq(1) input').val()+'"  placeholder="'+$('.ivu-date-picker-rel:eq(1) input').val()+'"> '+
                            '    </div> '+
                            '  </div> '+
                            '</div> '+
                            '<div class="layui-form-item"> '+
                            '  <div class="layui-inline"> '+
                            '    <label class="layui-form-label">最大飞行高度</label> '+
                            '    <div class="layui-input-inline" style="width: 70px;"> '+
                            '      <input type="number" name="price_min" id="ID-number-1" placeholder="'+$('.el-input.is-disabled .el-input__inner:last()').val()+'" value="'+$('.el-input.is-disabled .el-input__inner:last()').val()+'" autocomplete="off" class="layui-input" min="0" step="1" lay-affix="number"> '+
                            '    </div> '+
                            '    <label class="layui-form-label" style="width: 30px;">米</label> '+
                            '  </div>  '+
                            '</div>  '

                        var conf1 = {
                            formType: 0,
                            id: 'id_1',
                            hideOnClose: true, //关闭隐藏
                            title: "信息修改",
                            shadeClose: true,  //点击遮罩关闭
                            fixed: true,  //层固定,不随页面滚动
                            maxmin: true, //最大小化
                            resize: true, //拉伸
                            move: '.layui-layer-title', // 是否允许拖动
                            moveOut: false, //是否允许拖拽到窗口外
                            offset: '100px',  // 垂直位置
                            btn: ['提交信息','修改其他信息'],
                            area: 'auto',
                            content: "<div id='layer_id_1' >"+form+ "</div>"
                            ,success: function(layero, index){
                                layui.use(function(){
                                    var laydate = layui.laydate;
                                    laydate.render({
                                        elem: '#ID-laydate-rangeLinked',
                                        type: 'datetime',
                                        range: ['#ID-laydate-start-date-1', '#ID-laydate-end-date-1'],
                                        rangeLinked: true, // 开启日期范围选择时的区间联动标注模式 ---  2.8+ 新增
                                        fullPanel: true, // 2.8+
                                        format: 'yyyy-MM-dd HH:mm',
                                        min: 0,
                                        max: 7
                                    });
                                })
                            }
                            ,yes: function(index, layero){
                                var time_start = $('#ID-laydate-start-date-1').val()
                                var time_end = $('#ID-laydate-end-date-1').val()
                                var height = $("#ID-number-1").val()
                                layer.close(index)
                                if($('.form_title[data-v-804ba952]:first()').text().trim()!="飞行申请审批信息"){
                                    $('.form_title[data-v-804ba952]:first()').before('<div data-v-804ba952=""><div data-v-804ba952="" class="el-row"><span data-v-804ba952="" class="form_title">飞行申请审批信息</span></div><div data-v-804ba952="" class="el-divider el-divider--horizontal"><!----></div><div data-v-804ba952="" class="fromDiv"><div data-v-804ba952="" class="el-form-item el-form-item--medium"><label class="el-form-item__label" style="width: 150px;">审批状态</label><div class="el-form-item__content" style="margin-left: 150px;"><div data-v-804ba952="" class="el-select el-select--medium"><!----><div class="el-input el-input--medium is-disabled el-input--suffix"><!----><input type="text" disabled="disabled" readonly="readonly" autocomplete="off" placeholder="请选择状态" class="el-input__inner"><!----><span class="el-input__suffix"><span class="el-input__suffix-inner"><i class="el-select__caret el-input__icon el-icon-arrow-up"></i><!----><!----><!----><!----><!----></span><!----></span><!----><!----></div><div class="el-select-dropdown el-popper" style="display: none; min-width: 343.837px;"><div class="el-scrollbar" style=""><div class="el-select-dropdown__wrap el-scrollbar__wrap" style="margin-bottom: -17px; margin-right: -17px;"><ul class="el-scrollbar__view el-select-dropdown__list"><!----><li data-v-804ba952="" class="el-select-dropdown__item"><span>审批中</span></li><li data-v-804ba952="" class="el-select-dropdown__item"><span>编辑</span></li><li data-v-804ba952="" class="el-select-dropdown__item"><span>不予受理</span></li><li data-v-804ba952="" class="el-select-dropdown__item"><span>批准</span></li><li data-v-804ba952="" class="el-select-dropdown__item selected"><span>不予批准</span></li></ul></div><div class="el-scrollbar__bar is-horizontal"><div class="el-scrollbar__thumb" style="transform: translateX(0%);"></div></div><div class="el-scrollbar__bar is-vertical"><div class="el-scrollbar__thumb" style="transform: translateY(0%);"></div></div></div><!----></div></div><!----></div></div><div data-v-804ba952="" class="el-form-item el-form-item--medium"><label class="el-form-item__label" style="width: 150px;">审批意见</label><div class="el-form-item__content" style="margin-left: 150px;"><div data-v-804ba952="" class="el-textarea el-input--medium is-disabled"><textarea disabled="disabled" autocomplete="off" class="el-textarea__inner" style="min-height: 33.2222px;"></textarea><!----></div><!----></div></div></div></div>')
                                }
                                $('.ivu-date-picker-rel:eq(0) input').val(time_start)
                                $('.ivu-date-picker-rel:eq(1) input').val(time_end)
                                $('.el-input.is-disabled .el-input__inner:last()').val(height)
                                $('.el-input.is-disabled .el-input__inner:eq(0)').val('批准')
                                $('.el-textarea.is-disabled .el-textarea__inner:eq(0)').val('')
                                $('.el-textarea.is-disabled .el-textarea__inner').attr('disabled','disabled').css({'cursor':'not-allowed','color':'#c0c4cc', 'background-color':'#f5f7fa' })
                                layer.msg("待截图")


                                'uom截图('+time_start+' - '+time_end+').png'
                            }
                            ,btn2: function(index, layero, that){
                                $('.el-textarea.is-disabled .el-textarea__inner').removeAttr('disabled').css({'cursor':'text','color': 'black', 'background-color':'white', })
                                layer.close(index)
                                layer.msg("修改完成后使用刚才的菜单进行提交")
                            }
                        }
                        layer.open(conf1)
                        return
                    }else{
                        layer.msg("目前不是飞行申请审批信息页面")
                    }
                }
                }
        }

    }else{
        window.onmessage = function(event){
            var str = event.data
            if (window.self == window.top && (str==true||str=="true") ) {
                var w = document.documentElement.clientWidth
                var rect = $('#app').css('width').replace("px",'')
                //console.log(w,rect)
                //$('#app').css('transform', 'scale('+(w/rect - 0.005) +')').css('height', '2078px').css('overflow', 'auto;').find('.main-body').css('height', '2078px').css('overflow', 'auto;')
                //GM_addStyle( ' body, html, #app {height: 100%;  overflow: auto;}')
            }
        }
    }
})();

QingJ © 2025

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