Преглед на файлове

提交续方咨询的代码,并新增dialog插件的代码

raolu преди 7 години
родител
ревизия
b3c4d7ec5b

+ 398 - 0
css/consulting.css

@ -0,0 +1,398 @@
.consulting-panel{
    height: calc(100% - 150px);
}
.input-panel{
    height: 150px;
    position: relative;
}
.mtb6{
    margin-top: 6px;
    margin-bottom: 6px;
}
p{
    margin-top: 6px;
    margin-bottom: 6px;
}
/* css3-Grid
-----------------------------------------------------------------------------*/
.ui-grid { display: -webkit-box; display: box; }
.ui-grid-middle { -webkit-box-pack: center; -webkit-box-align: center; box-pack: center; box-align: center; }
.ui-grid-vertical { -webkit-box-orient: vertical; box-orient: vertical; }
.ui-grid-label { -webkit-box-flex: 0; box-flex: 0; width: 100px; font-weight: 600; }
.ui-col-0 { -webkit-box-flex: 0; box-flex: 0; }
.ui-col-1 { -webkit-box-flex: 1; box-flex: 1; }
.ui-col-2 { -webkit-box-flex: 2; box-flex: 2; }
.ui-col-3 { -webkit-box-flex: 3; box-flex: 3; }
.ui-col-4 { -webkit-box-flex: 4; box-flex: 3; }
.ui-col-5 { -webkit-box-flex: 5; box-flex: 5; }
.ui-col-6 { -webkit-box-flex: 6; box-flex: 6; }
.c-chat-box {
	border: none;
	padding-left: 2%;
	padding-right: 2%;
}
.time-tips {
	margin: 10px 0 0 0;
	text-align: center;
	clear: both;
}
.time-tips span {
	position: relative;
	display: inline-block;
	padding: 0 60px;
	color: #aeaeae;
	font-size: 15px;
}
.time-tips span:before,
.time-tips span:after {
	position: absolute;
	content: "";
	display: block;
	width: 50px;
	height: 1px;
	background: #e6e4e1;
	top: 50%;
}
.time-tips span:before {
	left: 0;
}
.time-tips span:after {
	right: 0;
}
.chat-left,
.chat-right {
	clear: both;
	overflow: hidden;
	padding: 10px 0;
}
.chat-left > dt,
.chat-right > dt {
	width: 40px;
	height: 40px;
}
.chat-left > dt {
	float: left;
	margin-right: 15px;
}
.chat-right > dt {
	float: right;
	margin-left: 15px;
}
.chat-left > dt img,
.chat-right > dt img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
}
.chat-left > dd,
.chat-right > dd {
	position: relative;
	min-height: 18px;
	font-size: 15px;
	display: inline-block;
	max-width: 80%;
	background: #fff;
	border: 1px solid #e1e1e1;
	border-radius: 6px;
	padding: 8px 10px;
	box-shadow: 1px 1px 1px rgba(0, 0, 0, .1);
}
.chat-left > dd {
	float: left;
	/* white-space: pre-wrap; */
	word-wrap: break-word;
}
.chat-right > dd {
	float: right;
	background: #bce0ff;
	border: 1px solid #81bdf7;
	/* white-space: pre-wrap; */
	word-wrap: break-word;
}
.chat-left > dd:after {
	content: "";
	position: absolute;
	top: 14px;
	left: -6px;
	display: block;
	width: 8px;
	height: 8px;
	background: #fff;
	border-color: #e1e1e1;
	border-style: solid;
	border-width: 1px 0 0 1px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
.chat-right > dd:after {
	content: "";
	position: absolute;
	top: 14px;
	right: -6px;
	display: block;
	width: 8px;
	height: 8px;
	background: #bce0ff;
	border-color: #81bdf7;
	border-style: solid;
	border-width: 1px 0 0 1px;
	-webkit-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	transform: rotate(135deg);
}
.chat-left > dd p img,
.chat-right > dd p img {
	max-width: 150px;
	max-height: 150px;
	margin: 5px 0;
}
.chat-msg-box {
	bottom: 0;
	left: 0
}
.chat-msg-box .input-group .form-control {
	height: 32px;
}
.pull-more {
	text-align: center;
	color: #5b5b5b;
	font-size: 14px;
	padding: 14px 0;
}
.chat-right .word-bread.sys-msg{
    background-color: #fff;
    
}
.chat-right .word-bread.sys-msg:after{
    background-color: #fff;
    border-color: #17b3ec;
}
.chat-left .word-bread.sys-msg{
    background-color: #fff;
    border-color: #17b3ec;
}
.chat-left .word-bread.sys-msg:after{
    background-color: #fff;
    border-color: #17b3ec;
}
.sys-header{
    display: inline-block;
    background-color: #17b3ec;
    height: 28px;
    line-height: 28px;
    padding: 0 10px;
    border-radius: 14px;
    color: #fff
}
.sys-header img{
    vertical-align: middle;
    margin-right: 5px;
}
.time-tips span{
	padding: 2px 10px;
	border-radius: 15px;
	color: #aaa;
	/*background-color: #E1E1E1;*/
	font-size: 12px;
}
.time-tips .xt-xiaoxi{
    background-color: #e1e1e1;
}
.chat-left, .chat-right {
	display: -webkit-box;
	clear: both;
	overflow: hidden;
	padding: 10px 0;
}
.chat-right{
	-webkit-box-direction: reverse;
}
.chat-left > dt{
	float: none;
}
.chat-right > dt {
	float: none;
}
.chat-right .word-bread{
	text-align: left;
	/*float: right;*/
	background: #17b3ec;
	border: 1px solid #17b3ec;
	/* white-space: pre-wrap; */
	word-wrap: break-word;
	
	position: relative;
	min-height: 18px;
	font-size: 15px;
	display: inline-block;
	max-width: 80%;
	border-radius: 6px;
	padding: 8px 10px;
	box-shadow: 1px 1px 1px rgba(0, 0, 0, .1);
}
.chat-right > div.c-content{
	-webkit-box-flex: 1;
	text-align: right;
}
.chat-right .word-bread:after{
	content: "";
	position: absolute;
	top: 5px;
	right: -5px;
	display: block;
	width: 8px;
	height: 8px;
	background: #17b3ec;
	border-color: #17b3ec;
	border-style: solid;
	border-width: 1px 0 0 1px;
	-webkit-transform: rotate(135deg);
	-moz-transform: rotate(135deg);
	transform: rotate(135deg);
}
.chat-left .word-bread{
	/*float: left;*/
	/* white-space: pre-wrap; */
	word-wrap: break-word;
	
	position: relative;
	min-height: 18px;
	font-size: 15px;
	display: inline-block;
	max-width: 80%;
	background: #fff;
	border: 1px solid #e1e1e1;
	border-radius: 6px;
	padding: 8px 10px;
	box-shadow: 1px 1px 1px rgba(0, 0, 0, .1);
}
.chat-left > div.c-content{
	-webkit-box-flex: 1;
	text-align: left;
}
.chat-left .word-bread:after{
	content: "";
	position: absolute;
	top: 5px;
	left: -5px;
	display: block;
	width: 8px;
	height: 8px;
	background: #fff;
	border-color: #e1e1e1;
	border-style: solid;
	border-width: 1px 0 0 1px;
	-webkit-transform: rotate(-45deg);
	-moz-transform: rotate(-45deg);
	transform: rotate(-45deg);
}
.chat-left span.name, .chat-right span.name{
	display: block;
	height: 24px;
}
.time-tips span:before, .time-tips span:after{
	height: 0!important;
}
.action-panel{
    background-color: #F5F5FA;
    height: 30px;
    line-height: 30px;
    padding-left: 20px;
    padding-right: 20px;
}
.action-panel i{
    font-size: 18px;
}
.send-btn{
    background-color: #12b7f5;
    color: #fff;
    border: 1px solid #12b7f5;
    position: absolute;
    right: 10px;
    bottom: 10px;
    padding: 4px 10px;
}
.send-btn.disabled,
.send-btn.disabled:hover
{
    border: 1px solid #e7eaec;
    background-color: #f2f4f6;
    color: #ccc;
}
.input-msg{
    width: 100%;
    line-height: 22px;
    overflow-x: hidden;
    overflow-y: auto;
    height: 76px;
    padding: 5px 10px;
    font-size: 14px;
    -webkit-user-select: auto;
    user-modify: read-write-plaintext-only;
    -webkit-user-modify: read-write-plaintext-only
}
.info-panel{
    height: 26px;
    line-height: 26px;
    font-size: 12px;
    color: #666;
    text-align: center;
    background-color: #fafaeb;
}
.info-panel a{
    color: #12b7f5;
}
.diseaseInfo{
    font-size: 12px;
    color: #999;
    background-color: #f5f5fa;
    display: inline-block;
    padding: 5px 12px;
    border-radius: 14px;
    margin-top: 10px;
    margin-bottom: 10px;
}
.status-btn{
    display: inline-block;
    height: 30px;
    border: 1px solid #12b7f5;
    line-height: 30px;
    padding: 0 12px;
    border-radius: 2px;
    color: #12b7f5;
    margin-top: 10px;
}

+ 350 - 0
js/buz/prescription-consulting.js

@ -0,0 +1,350 @@
var request = getRequest(),
    sessionId = request.sessionId,
    patiCode,
    consultCode,
    prescriptionStatus,
    page = 1,
    members = [];
var docInfo = window.localStorage.getItem("docInfo");
docInfo = JSON.parse(docInfo);
$(function(){
    //续方咨询的sessionId 格式 居民code+咨询code+咨询类型( 8 )
    patiCode = sessionId.split("_")[0];
    consultCode = sessionId.split("_")[1];
    getConsultStatus();
    
    //获得会话参与人员
    consultingAPI.getMembers(sessionId).then(function(res){
        members = res;
        getMessage(true);
    })
    getPrescriptionInfo();
    getPatientServiceType(); //获得患者的标签类型
    connectSocket();
    bindEvents();
})
function getConsultStatus(){
    var params = {consult: consultCode};
    consultingAPI.getConsultStatus({data: params}).then(function(res){
        if(res.status == 200){
            //咨询状态(0进行中,1已完成,-1患者取消,-2超时未响应自动关闭)
            if(res.data == 0) { //咨询未结束
                
            } else { //咨询已结束
                $('.info-panel').html('咨询求助已结束');
                $('.send-btn').addClass("disabled");
                $("#file_head").attr("disabled", true);
            }
        }else{
        }
    });
}
function getMessage(isInit){
    var params = {
        page: page,
        pagesize: 10,
        end_msg_id: '',
        start_msg_id: '',
        user: docInfo.code,
        session_id: sessionId,
        content_type: '',
        isoffset: ''
    }
    consultingAPI.getMessages(sessionId, {data: params}).then(function(res){
        var list = res;
        if (list && list.length > 0) {
            id = list[list.length - 1].id;
            var html = '',
                length = list.length;
            
            for (var j = list.length-1; j >= 0; j--) {
                var reply = list[j];
                html += formatMsg(reply);
            }
            if(isInit){
                $("#talkBox").append(html);
                $("#talkBox").slimScroll({
                    height: '100%',
                    width: '100%',
                    alwaysVisible: true,
                    start : 'bottom',
                }).bind('slimscroll', function(e, pos) {
                    if(pos == 'top'){
                        if(length == 10){
                            page++;
                            getMessage();
                        }
                    }
                });
            }else{
                $("#talkBox").prepend(html);
                $("#talkBox").slimScroll();
            }
            
            $(".fancybox").fancybox({openEffect:"none",closeEffect:"none"});
            plyr.setup();
        }
    });
}
function formatMsg(reply){
    try{
        reply = JSON.parse(reply);
    }catch(e){
        console.log(reply);
    }
    console.log(reply);
    var isSelf = (reply.sender_id==docInfo.code) ? true : false;
    var isSystem = reply.sender_id == 'system';
    var html = '';
    if(reply.content_type == 7 || reply.content_type == 10){
        var content = reply.content;
        if(isSystem){
            content = '居民24小时内未回复,系统自动结束咨询';
        }
        html = template('sys_msg_tmp', {content: content});
    }else{
        var member;
        for(var i=0; i<members.length; i++){
            if(reply.sender_id == members[i].id){
                member = members[i];
                break;
            }
        }
        var img = member.avatar;
        if((img.indexOf('http') == -1) && (img.indexOf("https") == -1)){
            img = member.is_patient ? 'img/p-default.png' : 'img/d-male.png';
        }
        var content = '';
        try{
            content = JSON.parse(reply.content);
        }catch(e){
            if(reply.content_type == 12){ //视频文件
                var arr = reply.content.split(",");
                content = {};
                content.img = arr[0];
                content.path = arr[1];
                content.time = arr[2];
            }else{
                content = reply.content;
            }
        }
        var obj = {
            isSelf: isSelf,
            time: new Date(reply.timestamp).format('yyyy-MM-dd HH:mm:ss'),
            type: reply.content_type,
            name: member.name,
            img: img,
            content: content
        };
        html = template('msg_tmp', obj);
    }
    return html;
}
function getPrescriptionInfo(){
    var params = { consult: consultCode};
    consultingAPI.getPrescriptionInfo({data: params}).then(function(res){
        if(res.status == 200){
            var html = template('prescriptionInfo_tmp', res.data);
            prescriptionStatus = res.data.status;
            var statusName = getStatusName(res.data.status);
            $(".status-btn").text(statusName);
            $("#prescriptionInfo").empty().append(html);
            $("#prescriptionInfo").slimscroll({
                height: 'calc(100% - 60px)',
                width: '100%'
            });
        }else{
            toastr && toastr.warning(res.msg);
        }
    });
}
function getPatientServiceType(){
    var params = {patient: patiCode};
    consultingAPI.getPatientServiceType({data: params}).then(function(res){
        if(res.status == 200){
            //slowDiseasePatient: 0 //0表示没有慢病服务类型,1表示有
            if(res.data.slowDiseasePatient == 0){
                $(".diseaseInfo").html("此居民未被标注【慢病】相关标签,请在i健康APP上核实");
            }else{
                var disease = "";
                for(var i=0; i<res.data.signFamilyServer.length; i++){
                    var item = res.data.signFamilyServer[i];
                    if(i>0){
                        disease += ','+item.name;
                    }else{
                        disease += item.name;
                    }
                }
                $(".diseaseInfo").text("该居民为"+disease+"患者");
            }
        }else{
            toastr && toastr.warning(res.msg);
        }
    });
}
function connectSocket(){
    jQuery.getScript(APIService.socketUrl+"/socket.io/socket.io.js").done(function() {
        var socket = io.connect(APIService.socketUrl );
        socket.emit('login', {
            userId: docInfo.code, 
            password: docInfo.code, 
            sessionId: sessionId,
            clientType: "doctor"
        });
        socket.on('message', function (data) {
            console.log(data);
            var html = formatMsg(data);
            $("#talkBox").append(html);
            $("#talkBox").slimscroll();
        });
        socket.on('error', function (data) {
            console.log(data)
        });
        socket.on('ack', function (data) {
        });
    }).fail(function() {
        // dialog({contentType:'tipsbox', skin:'bk-popup' ,bottom:true, content:"医生实时对话连接失败!"}).show();     
    });
}
function sendMessage(contentType, content){
    var params = {
        sender_id: docInfo.code,
        sender_name: docInfo.name,
        content_type: contentType,
        content: content,
        view: 0
    };
    consultingAPI.sendMessage(sessionId, {data: params}).then(function(res){
        console.log(res);
        // var html = "";
        // for(var i=0; i<res.messages.length; i++){
        //     var reply = res.messages[i];
        //     console.log(reply);
        //     html += formatMsg(reply);
        // }
        // $("#talkBox").append(html);
        // $("#talkBox").slimscroll({
        //     scrollTo: this.height
        // });
    });
}
//结束咨询
function finish(){
    //判断续方状态,如果未审核,则不可以结束咨询
    if(prescriptionStatus > 0 && prescriptionStatus < 21){
        dialog({
            content:'续方申请未审核,不能结束咨询',
            width: 460,
            okValue:'我知道了',
            ok: function() {
                return;
            }
        }).width(320).showModal();
        return false;
    }
    dialog({
        content:'结束咨询后,居民及所有医生均无法再次回复,是否确认继续结束?',
        width: '460px',
        okValue:'继续结束',
        ok: function() {
            var params = {consult: consultCode};
            consultingAPI.finishConsult({data: params}).then(function(res){
                if(res.status == 200) {
                    var content = docInfo.name+'结束了咨询',
                        html = template('sys_msg_tmp', {content: content});
                    $("#talkBox").append(html);
                    $("#talkBox").slimScroll();
                    $('.info-panel').html("咨询求助已结束");
                    $(".send-btn").addClass("disabled");
                    $("#file_head").attr("disabled", true);
                    toastr.success("已结束咨询");
                } else {
                    toastr.error(res.msg);
                }
            })
        },
        cancelValue: '我再看看',
        cancel: function(){}
    }).showModal();
}
function bindEvents(){
    $(".send-btn").on('click', function(){
        var $this = $(this);
        if($this.hasClass("disabled")){
            return false;
        }else{
            var text = $.trim($("#input_content").text());
            if(text.length == 0){
                toastr.options = {
                    "positionClass": "toast-top-center",
                }
                toastr.warning('发送内容不能为空');
                return false;
            }else{
                sendMessage(1, text);
                $("#input_content").text('');
                var obj = {
                    content: text,
                    content_type: '1',
                    sender_id: docInfo.code,
                    timestamp: new Date().getTime()
                }
                var html = formatMsg(obj);
                
                $("#talkBox").append(html);
                $("#talkBox").slimscroll({
                    scrollTo: this.height + 80
                });
            }
        }
    });
    $("#file_head").on('change', function(){
        var file = this.files[0];
        //先上传图片去服务器,然后再发送消息
        var fd=new FormData();
        fd.append("action", "UploadVMKImagePath");  
        fd.append("file", file); //加入文件对象
        fd.append("type", '2');
        var ajaxObj = {
            data: fd,
            cache: false,
            processData: false,
            contentType: false 
        }
        consultingAPI.uploadImage(ajaxObj).then(function(res){
            if(res.status == 200){
                sendMessage(2, res.urls);
                var obj = {
                    content: res.urls,
                    content_type: '2',
                    sender_id: docInfo.code,
                    timestamp: new Date().getTime()
                }
                var html = formatMsg(obj);
                
                $("#talkBox").append(html);
                $("#talkBox").slimscroll({
                    scrollTo: this.height + 80
                });
            }else{
            }
        });
    })
}

+ 16 - 0
js/consulting-api.js

@ -19,17 +19,33 @@
        getListCount: function(data){
            return APIService.httpGet('/im_new/consult/getListCount', data);
        },
        getConsultStatus: function(data){
            return APIService.httpGet('doctor/consult/getConsultStatus', data);
        },
        getPrescriptionInfo: function(data){
            return APIService.httpGet('/doctor/consult/prescriptionDetail', data);
        },
        uploadImage: function(data){
            return APIService.httpPost('upload/chat', data);
        },
        getPatientServiceType: function(data){
            return APIService.httpGet('doctor/sign/getPatientFamilyServer', data);
        },
        finishConsult: function(data){
            return APIService.httpPost('doctor/consult/finish_consult', data);
        },
        //IM相关的接口
        socketUrl: APIService.imserver+'/socket.io/socket.io.js',
        getMessages: function(sessionId, data){
            return APIService.imHttpGet('/sessions/'+sessionId+'/messages', data);
        },
        sendMessage: function(sessionId, data){
            return APIService.imHttpPost('/sessions/'+sessionId+'/messages', data);
        },
        getMembers: function(sessionId){
            return APIService.imHttpGet('/sessions/'+sessionId+'/participants');
        }
    
    };
    window.consultingAPI = consulting;

+ 58 - 0
js/plugins/artDialog/6.0.5/api/css/doc.css

@ -0,0 +1,58 @@
.doc-line {
	height: 3px;
}
.doc-gotop {
	position: fixed;
	bottom: 5px;
	right: 5px;
	z-index: 9;
}
h1 span[id],
h2 span[id],
h3 span[id],
h4 span[id],
h5 span[id],
h6 span[id] {
	cursor: pointer;
}
/*避免对话框样式被工具生成的全局样式污染*/
.ui-dialog table,
.ui-dialog table tr,
.ui-dialog tr td,
.ui-dialog tr:nth-child(2n) {
	border: 0 none;
	background: transparent;
}
.ui-dialog td.ui-dialog-header {
	border-bottom: 1px solid #E5E5E5;
}
code.sh_sourceCode { color: #000000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_keyword { color: #009; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_type { color: #0000ff; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_string { color: #00F; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_regexp { color: #060; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_specialchar { color: #C42DA8; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_comment { color: #999; font-weight: normal; font-style: italic; }
code.sh_sourceCode .sh_number { color: #F00; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_codeproc { color: #00b800; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_symbol { color: #009; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_function { color: #000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_cbracket { color: #009; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_url { color: #ff0000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_date { color: #0000ff; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_time { color: #0000ff; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_file { color: #0000ff; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_ip { color: #ff0000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_name { color: #ff0000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_variable { color: #ec7f15; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_oldfile { color: #C42DA8; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_newfile { color: #ff0000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_difflines { color: #0000ff; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_selector { color: #ec7f15; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_property { color: #0000ff; font-weight: bold; font-style: normal; }
code.sh_sourceCode .sh_value { color: #ff0000; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_codedef_var { color: #909; font-weight: normal; font-style: normal; }
code.sh_sourceCode .sh_codedef_func { color: #099; font-weight: normal; font-style: normal; }

+ 435 - 0
js/plugins/artDialog/6.0.5/api/css/ui-dialog.css

@ -0,0 +1,435 @@
/*!
 * ui-dialog.css
 * Date: 2014-07-03
 * https://github.com/aui/artDialog
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
*/
.ui-popup-full{
    width:100%;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding:0 15px !important;
    left:0 !important;
}
.ui-dialog {
    *zoom:1;
    _float: left;
    position: relative;
    background-color: #FFF;
    border: 1px solid #999;
    border-radius: 6px;
    outline: 0;
    background-clip: padding-box;
    font-family: Helvetica, arial, sans-serif;
    font-size: 14px;
    line-height: 1.428571429;
    color: #333;
    opacity: 0;
    -webkit-transform: scale(0);
    transform: scale(0);
    -webkit-transition: -webkit-transform .15s ease-in-out, opacity .15s ease-in-out;
    transition: transform .15s ease-in-out, opacity .15s ease-in-out;
	padding:0 10px;
}
.ui-popup-show .ui-dialog {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
}
.ui-popup-focus .ui-dialog {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
}
.ui-popup-modal .ui-dialog {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1), 0 0 256px rgba(255, 255, 255, .3);
}
.ui-dialog-grid {
    width: 100%;
    margin: 0;
    border: 0 none;
    border-collapse:collapse;
    border-spacing: 0;
    background: transparent;
}
.ui-dialog-header,
.ui-dialog-body,
.ui-dialog-footer {
    padding: 0;
    border: 0 none;
    text-align: left;
    background: transparent;
}
.ui-dialog-header {
    white-space: nowrap;
    border-bottom: 1px solid #E5E5E5;
}
.ui-dialog-close {
    position: relative;
    _position: absolute;
    float: right;
    top: 13px;
    right: 13px;
    _height: 26px;
    padding: 0 4px;
    font-size: 21px;
    font-weight: bold;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #FFF;
    opacity: .2;
    filter: alpha(opacity=20);
    cursor: pointer;
    background: transparent;
    _background: #FFF;
    border: 0;
    -webkit-appearance: none;
}
.ui-dialog-close:hover,
.ui-dialog-close:focus {
    color: #000000;
    text-decoration: none;
    cursor: pointer;
    outline: 0;
    opacity: 0.5;
    filter: alpha(opacity=50);
}
.ui-dialog-title {
    margin: 0;
    line-height: 1.428571429;
    min-height: 16.428571429px;
    padding: 15px;
    overflow:hidden; 
    white-space: nowrap;
    text-overflow: ellipsis;
    font-weight: bold;
    cursor: default;
}
.ui-dialog-body {
    padding: 20px;
    text-align: center;
}
.ui-dialog-content {
    display: inline-block;
    position: relative;
    vertical-align: middle;
    *zoom: 1;
    *display: inline;
    text-align: left;
}
.ui-dialog-footer {
    padding: 0 20px 20px 20px;
}
.ui-dialog-statusbar {
    float: left;
    margin-right: 20px;
    padding: 6px 0;
    line-height: 1.428571429;
    font-size: 14px;
    color: #888;
    white-space: nowrap;
}
.ui-dialog-statusbar label:hover {
    color: #333;
}
.ui-dialog-statusbar input,
.ui-dialog-statusbar .label {
    vertical-align: middle;
}
.ui-dialog-button {
    float: right;
    white-space: nowrap;
}
.ui-dialog-footer button+button {
    margin-bottom: 0;
    margin-left: 5px;
}
.ui-dialog-footer button {
    width:auto;
    overflow:visible;
    display: inline-block;
    padding: 6px 12px;
    _margin-left: 5px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.428571429;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
       -o-user-select: none;
          user-select: none;
}
.ui-dialog-footer button:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus {
  color: #333333;
  text-decoration: none;
}
.ui-dialog-footer button:active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.ui-dialog-footer button[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
          box-shadow: none;
}
.ui-dialog-footer button {
  color: #333333;
  background-color: #ffffff;
  border-color: #cccccc;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus,
.ui-dialog-footer button:active {
  color: #333333;
  background-color: #ebebeb;
  border-color: #adadad;
}
.ui-dialog-footer button:active{
  background-image: none;
}
.ui-dialog-footer button[disabled],
.ui-dialog-footer button[disabled]:hover,
.ui-dialog-footer button[disabled]:focus,
.ui-dialog-footer button[disabled]:active {
  background-color: #ffffff;
  border-color: #cccccc;
}
.ui-dialog-footer button.ui-dialog-autofocus {
  color: #ffffff;
  background-color: #428bca;
  border-color: #357ebd;
}
.ui-dialog-footer button.ui-dialog-autofocus:hover,
.ui-dialog-footer button.ui-dialog-autofocus:focus,
.ui-dialog-footer button.ui-dialog-autofocus:active {
  color: #ffffff;
  background-color: #3276b1;
  border-color: #285e8e;
}
.ui-dialog-footer button.ui-dialog-autofocus:active {
  background-image: none;
}
.ui-popup-top-left .ui-dialog,
.ui-popup-top .ui-dialog,
.ui-popup-top-right .ui-dialog {
    top: -8px;
}
.ui-popup-bottom-left .ui-dialog,
.ui-popup-bottom .ui-dialog,
.ui-popup-bottom-right .ui-dialog {
    top: 8px;
}
.ui-popup-left-top .ui-dialog,
.ui-popup-left .ui-dialog,
.ui-popup-left-bottom .ui-dialog {
    left: -8px;
}
.ui-popup-right-top .ui-dialog,
.ui-popup-right .ui-dialog,
.ui-popup-right-bottom .ui-dialog {
    left: 8px;
}
.ui-dialog-arrow-a,
.ui-dialog-arrow-b {
    position: absolute;
    display: none;
    width: 0;
    height: 0;
    overflow:hidden;
    _color:#FF3FFF;
    _filter:chroma(color=#FF3FFF);
    border:8px dashed transparent;
}
.ui-popup-follow .ui-dialog-arrow-a,
.ui-popup-follow .ui-dialog-arrow-b{
    display: block;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-a {
    bottom: -16px;
    border-top:8px solid #7C7C7C;
}
.ui-popup-top-left .ui-dialog-arrow-b,
.ui-popup-top .ui-dialog-arrow-b,
.ui-popup-top-right .ui-dialog-arrow-b {
    bottom: -15px;
    border-top:8px solid #fff;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top-left .ui-dialog-arrow-b  {
    left: 15px;
}
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-b  {
    left: 50%;
    margin-left: -8px;
}
.ui-popup-top-right .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-b {
    right: 15px;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-a {
    top: -16px;
    border-bottom:8px solid #7C7C7C;
}
.ui-popup-bottom-left .ui-dialog-arrow-b,
.ui-popup-bottom .ui-dialog-arrow-b,
.ui-popup-bottom-right .ui-dialog-arrow-b {
    top: -15px;
    border-bottom:8px solid #fff;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom-left .ui-dialog-arrow-b {
    left: 15px;
}
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-b {
    margin-left: -8px;
    left: 50%;
}
.ui-popup-bottom-right .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-b {
    right: 15px;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-a {
    right: -16px;
    border-left:8px solid #7C7C7C;
}
.ui-popup-left-top .ui-dialog-arrow-b,
.ui-popup-left .ui-dialog-arrow-b,
.ui-popup-left-bottom .ui-dialog-arrow-b {
    right: -15px;
    border-left:8px solid #fff;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left-top .ui-dialog-arrow-b {
    top: 15px;
}
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-b {
    margin-top: -8px;
    top: 50%;
}
.ui-popup-left-bottom .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-b {
    bottom: 15px;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-a {
    left: -16px;
    border-right:8px solid #7C7C7C;
}
.ui-popup-right-top .ui-dialog-arrow-b,
.ui-popup-right .ui-dialog-arrow-b,
.ui-popup-right-bottom .ui-dialog-arrow-b {
    left: -15px;
    border-right:8px solid #fff;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right-top .ui-dialog-arrow-b {
    top: 15px;
}
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-b {
    margin-top: -8px;
    top: 50%;
}
.ui-popup-right-bottom .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-b {
    bottom: 15px;
}
@-webkit-keyframes ui-dialog-loading {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}
@keyframes ui-dialog-loading {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
.ui-dialog-loading {
    vertical-align: middle;
    position: relative;
    display: block;
    *zoom: 1;
    *display: inline;
    overflow: hidden;
    width: 32px;
    height: 32px;
    top: 50%;
    margin: -16px auto 0 auto;
    font-size: 0;
    text-indent: -999em;
    color: #666;
}
.ui-dialog-loading {
    width: 100%\9;
    text-indent: 0\9;
    line-height: 32px\9;
    text-align: center\9;
    font-size: 12px\9;
}
.ui-dialog-loading::after {
    position: absolute;
    content: '';
    width: 3px;
    height: 3px;
    margin: 14.5px 0 0 14.5px;
    border-radius: 100%;
    box-shadow: 0 -10px 0 1px #ccc, 10px 0px #ccc, 0 10px #ccc, -10px 0 #ccc, -7px -7px 0 0.5px #ccc, 7px -7px 0 1.5px #ccc, 7px 7px #ccc, -7px 7px #ccc;
    -webkit-transform: rotate(360deg);
    -webkit-animation: ui-dialog-loading 1.5s infinite linear;
    transform: rotate(360deg);
    animation: ui-dialog-loading 1.5s infinite linear;
    display: none\9;
}

Файловите разлики са ограничени, защото са твърде много
+ 1314 - 0
js/plugins/artDialog/6.0.5/api/index.html


+ 1648 - 0
js/plugins/artDialog/6.0.5/api/js/dialog-plus.js

@ -0,0 +1,1648 @@
/*! artDialog v6.0.5 | https://github.com/aui/artDialog */
!(function () {
var __modules__ = {};
function require (id) {
    var mod = __modules__[id];
    var exports = 'exports';
    if (typeof mod === 'object') {
        return mod;
    }
    if (!mod[exports]) {
        mod[exports] = {};
        mod[exports] = mod.call(mod[exports], require, mod[exports], mod) || mod[exports];
    }
    return mod[exports];
}
function define (path, fn) {
    __modules__[path] = fn;
}
define("jquery", function () {
	return jQuery;
});
/*!
 * PopupJS
 * Date: 2014-11-09
 * https://github.com/aui/popupjs
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
 */
define("popup", function (require) {
var $ = require("jquery");
var _count = 0;
var _isIE6 = !('minWidth' in $('html')[0].style);
var _isFixed = !_isIE6;
function Popup () {
    this.destroyed = false;
    this.__popup = $('<div />')
    /*使用 <dialog /> 元素可能导致 z-index 永远置顶的问题(chrome)*/
    .css({
        display: 'none',
        position: 'absolute',
        /*
        left: 0,
        top: 0,
        bottom: 'auto',
        right: 'auto',
        margin: 0,
        padding: 0,
        border: '0 none',
        background: 'transparent'
        */
        outline: 0
    })
    .attr('tabindex', '-1')
    .html(this.innerHTML)
    .appendTo('body');
    this.__backdrop = this.__mask = $('<div />')
    .css({
        opacity: .7,
        background: '#000'
    });
    // 使用 HTMLElement 作为外部接口使用,而不是 jquery 对象
    // 统一的接口利于未来 Popup 移植到其他 DOM 库中
    this.node = this.__popup[0];
    this.backdrop = this.__backdrop[0];
    _count ++;
}
$.extend(Popup.prototype, {
    
    /**
     * 初始化完毕事件,在 show()、showModal() 执行
     * @name Popup.prototype.onshow
     * @event
     */
    /**
     * 关闭事件,在 close() 执行
     * @name Popup.prototype.onclose
     * @event
     */
    /**
     * 销毁前事件,在 remove() 前执行
     * @name Popup.prototype.onbeforeremove
     * @event
     */
    /**
     * 销毁事件,在 remove() 执行
     * @name Popup.prototype.onremove
     * @event
     */
    /**
     * 重置事件,在 reset() 执行
     * @name Popup.prototype.onreset
     * @event
     */
    /**
     * 焦点事件,在 foucs() 执行
     * @name Popup.prototype.onfocus
     * @event
     */
    /**
     * 失焦事件,在 blur() 执行
     * @name Popup.prototype.onblur
     * @event
     */
    /** 浮层 DOM 素节点[*] */
    node: null,
    /** 遮罩 DOM 节点[*] */
    backdrop: null,
    /** 是否开启固定定位[*] */
    fixed: false,
    /** 判断对话框是否删除[*] */
    destroyed: true,
    /** 判断对话框是否显示 */
    open: false,
    /** close 返回值 */
    returnValue: '',
    /** 是否自动聚焦 */
    autofocus: true,
    /** 对齐方式[*] */
    align: 'bottom left',
    /** 内部的 HTML 字符串 */
    innerHTML: '',
    /** CSS 类名 */
    className: 'ui-popup',
    /**
     * 显示浮层
     * @param   {HTMLElement, Event}  指定位置(可选)
     */
    show: function (anchor) {
        if (this.destroyed) {
            return this;
        }
        var that = this;
        var popup = this.__popup;
        var backdrop = this.__backdrop;
        this.__activeElement = this.__getActive();
        this.open = true;
        this.follow = anchor || this.follow;
        // 初始化 show 方法
        if (!this.__ready) {
            popup
            .addClass(this.className)
            .attr('role', this.modal ? 'alertdialog' : 'dialog')
            .css('position', this.fixed ? 'fixed' : 'absolute');
            if (!_isIE6) {
                $(window).on('resize', $.proxy(this.reset, this));
            }
            // 模态浮层的遮罩
            if (this.modal) {
                var backdropCss = {
                    position: 'fixed',
                    left: 0,
                    top: 0,
                    width: '100%',
                    height: '100%',
                    overflow: 'hidden',
                    userSelect: 'none',
                    zIndex: this.zIndex || Popup.zIndex
                };
                popup.addClass(this.className + '-modal');
                if (!_isFixed) {
                    $.extend(backdropCss, {
                        position: 'absolute',
                        width: $(window).width() + 'px',
                        height: $(document).height() + 'px'
                    });
                }
                backdrop
                .css(backdropCss)
                .attr({tabindex: '0'})
                .on('focus', $.proxy(this.focus, this));
                // 锁定 tab 的焦点操作
                this.__mask = backdrop
                .clone(true)
                .attr('style', '')
                .insertAfter(popup);
                backdrop
                .addClass(this.className + '-backdrop')
                .insertBefore(popup);
                this.__ready = true;
            }
            if (!popup.html()) {
                popup.html(this.innerHTML);
            }
        }
        popup
        .addClass(this.className + '-show')
        .show();
        backdrop.show();
        this.reset().focus();
        this.__dispatchEvent('show');
        return this;
    },
    /** 显示模态浮层。参数参见 show() */
    showModal: function () {
        this.modal = true;
        return this.show.apply(this, arguments);
    },
    
    
    /** 关闭浮层 */
    close: function (result) {
        
        if (!this.destroyed && this.open) {
            
            if (result !== undefined) {
                this.returnValue = result;
            }
            
            this.__popup.hide().removeClass(this.className + '-show');
            this.__backdrop.hide();
            this.open = false;
            this.blur();// 恢复焦点,照顾键盘操作的用户
            this.__dispatchEvent('close');
        }
    
        return this;
    },
    /** 销毁浮层 */
    remove: function () {
        if (this.destroyed) {
            return this;
        }
        this.__dispatchEvent('beforeremove');
        
        if (Popup.current === this) {
            Popup.current = null;
        }
        // 从 DOM 中移除节点
        this.__popup.remove();
        this.__backdrop.remove();
        this.__mask.remove();
        if (!_isIE6) {
            $(window).off('resize', this.reset);
        }
        this.__dispatchEvent('remove');
        for (var i in this) {
            delete this[i];
        }
        return this;
    },
    /** 重置位置 */
    reset: function () {
        var elem = this.follow;
        if (elem) {
            this.__follow(elem);
        } else {
            this.__center();
        }
        this.__dispatchEvent('reset');
        return this;
    },
    /** 让浮层获取焦点 */
    focus: function () {
        var node = this.node;
        var popup = this.__popup;
        var current = Popup.current;
        var index = this.zIndex = Popup.zIndex ++;
        if (current && current !== this) {
            current.blur(false);
        }
        // 检查焦点是否在浮层里面
        if (!$.contains(node, this.__getActive())) {
            var autofocus = popup.find('[autofocus]')[0];
            if (!this._autofocus && autofocus) {
                this._autofocus = true;
            } else {
                autofocus = node;
            }
            this.__focus(autofocus);
        }
        // 设置叠加高度
        popup.css('zIndex', index);
        //this.__backdrop.css('zIndex', index);
        Popup.current = this;
        popup.addClass(this.className + '-focus');
        this.__dispatchEvent('focus');
        return this;
    },
    /** 让浮层失去焦点。将焦点退还给之前的元素,照顾视力障碍用户 */
    blur: function () {
        var activeElement = this.__activeElement;
        var isBlur = arguments[0];
        if (isBlur !== false) {
            this.__focus(activeElement);
        }
        this._autofocus = false;
        this.__popup.removeClass(this.className + '-focus');
        this.__dispatchEvent('blur');
        return this;
    },
    /**
     * 添加事件
     * @param   {String}    事件类型
     * @param   {Function}  监听函数
     */
    addEventListener: function (type, callback) {
        this.__getEventListener(type).push(callback);
        return this;
    },
    /**
     * 删除事件
     * @param   {String}    事件类型
     * @param   {Function}  监听函数
     */
    removeEventListener: function (type, callback) {
        var listeners = this.__getEventListener(type);
        for (var i = 0; i < listeners.length; i ++) {
            if (callback === listeners[i]) {
                listeners.splice(i--, 1);
            }
        }
        return this;
    },
    // 获取事件缓存
    __getEventListener: function (type) {
        var listener = this.__listener;
        if (!listener) {
            listener = this.__listener = {};
        }
        if (!listener[type]) {
            listener[type] = [];
        }
        return listener[type];
    },
    // 派发事件
    __dispatchEvent: function (type) {
        var listeners = this.__getEventListener(type);
        if (this['on' + type]) {
            this['on' + type]();
        }
        for (var i = 0; i < listeners.length; i ++) {
            listeners[i].call(this);
        }
    },
    // 对元素安全聚焦
    __focus: function (elem) {
        // 防止 iframe 跨域无权限报错
        // 防止 IE 不可见元素报错
        try {
            // ie11 bug: iframe 页面点击会跳到顶部
            if (this.autofocus && !/^iframe$/i.test(elem.nodeName)) {
                elem.focus();
            }
        } catch (e) {}
    },
    // 获取当前焦点的元素
    __getActive: function () {
        try {// try: ie8~9, iframe #26
            var activeElement = document.activeElement;
            var contentDocument = activeElement.contentDocument;
            var elem = contentDocument && contentDocument.activeElement || activeElement;
            return elem;
        } catch (e) {}
    },
    // 居中浮层
    __center: function () {
    
        var popup = this.__popup;
        var $window = $(window);
        var $document = $(document);
        var fixed = this.fixed;
        var dl = fixed ? 0 : $document.scrollLeft();
        var dt = fixed ? 0 : $document.scrollTop();
        var ww = $window.width();
        var wh = $window.height();
        var ow = popup.width();
        var oh = popup.height();
        var left = (ww - ow) / 2 + dl;
        var top = (wh - oh) * 382 / 1000 + dt;// 黄金比例
        var style = popup[0].style;
        
        style.left = Math.max(parseInt(left), dl) + 'px';
        style.top = Math.max(parseInt(top), dt) + 'px';
    },
    
    
    // 指定位置 @param    {HTMLElement, Event}  anchor
    __follow: function (anchor) {
        
        var $elem = anchor.parentNode && $(anchor);
        var popup = this.__popup;
        
        if (this.__followSkin) {
            popup.removeClass(this.__followSkin);
        }
        // 隐藏元素不可用
        if ($elem) {
            var o = $elem.offset();
            if (o.left * o.top < 0) {
                return this.__center();
            }
        }
        
        var that = this;
        var fixed = this.fixed;
        var $window = $(window);
        var $document = $(document);
        var winWidth = $window.width();
        var winHeight = $window.height();
        var docLeft =  $document.scrollLeft();
        var docTop = $document.scrollTop();
        var popupWidth = popup.width();
        var popupHeight = popup.height();
        var width = $elem ? $elem.outerWidth() : 0;
        var height = $elem ? $elem.outerHeight() : 0;
        var offset = this.__offset(anchor);
        var x = offset.left;
        var y = offset.top;
        var left =  fixed ? x - docLeft : x;
        var top = fixed ? y - docTop : y;
        var minLeft = fixed ? 0 : docLeft;
        var minTop = fixed ? 0 : docTop;
        var maxLeft = minLeft + winWidth - popupWidth;
        var maxTop = minTop + winHeight - popupHeight;
        var css = {};
        var align = this.align.split(' ');
        var className = this.className + '-';
        var reverse = {top: 'bottom', bottom: 'top', left: 'right', right: 'left'};
        var name = {top: 'top', bottom: 'top', left: 'left', right: 'left'};
        var temp = [{
            top: top - popupHeight,
            bottom: top + height,
            left: left - popupWidth,
            right: left + width
        }, {
            top: top,
            bottom: top - popupHeight + height,
            left: left,
            right: left - popupWidth + width
        }];
        var center = {
            left: left + width / 2 - popupWidth / 2,
            top: top + height / 2 - popupHeight / 2
        };
        
        var range = {
            left: [minLeft, maxLeft],
            top: [minTop, maxTop]
        };
        // 超出可视区域重新适应位置
        $.each(align, function (i, val) {
            // 超出右或下边界:使用左或者上边对齐
            if (temp[i][val] > range[name[val]][1]) {
                val = align[i] = reverse[val];
            }
            // 超出左或右边界:使用右或者下边对齐
            if (temp[i][val] < range[name[val]][0]) {
                align[i] = reverse[val];
            }
        });
        // 一个参数的情况
        if (!align[1]) {
            name[align[1]] = name[align[0]] === 'left' ? 'top' : 'left';
            temp[1][align[1]] = center[name[align[1]]];
        }
        //添加follow的css, 为了给css使用
        className += align.join('-') + ' '+ this.className+ '-follow';
        
        that.__followSkin = className;
        if ($elem) {
            popup.addClass(className);
        }
        
        css[name[align[0]]] = parseInt(temp[0][align[0]]);
        css[name[align[1]]] = parseInt(temp[1][align[1]]);
        popup.css(css);
    },
    // 获取元素相对于页面的位置(包括iframe内的元素)
    // 暂时不支持两层以上的 iframe 套嵌
    __offset: function (anchor) {
        var isNode = anchor.parentNode;
        var offset = isNode ? $(anchor).offset() : {
            left: anchor.pageX,
            top: anchor.pageY
        };
        anchor = isNode ? anchor : anchor.target;
        var ownerDocument = anchor.ownerDocument;
        var defaultView = ownerDocument.defaultView || ownerDocument.parentWindow;
        
        if (defaultView == window) {// IE <= 8 只能使用两个等于号
            return offset;
        }
        // {Element: Ifarme}
        var frameElement = defaultView.frameElement;
        var $ownerDocument = $(ownerDocument);
        var docLeft =  $ownerDocument.scrollLeft();
        var docTop = $ownerDocument.scrollTop();
        var frameOffset = $(frameElement).offset();
        var frameLeft = frameOffset.left;
        var frameTop = frameOffset.top;
        
        return {
            left: offset.left + frameLeft - docLeft,
            top: offset.top + frameTop - docTop
        };
    }
    
});
/** 当前叠加高度 */
Popup.zIndex = 1024;
/** 顶层浮层的实例 */
Popup.current = null;
return Popup;
});
// artDialog - 默认配置
define("dialog-config", {
    /* -----已注释的配置继承自 popup.js,仍可以再这里重新定义它----- */
    // 对齐方式
    //align: 'bottom left',
    
    // 是否固定定位
    //fixed: false,
    
    // 对话框叠加高度值(重要:此值不能超过浏览器最大限制)
    //zIndex: 1024,
    // 设置遮罩背景颜色
    backdropBackground: '#000',
    // 设置遮罩透明度
    backdropOpacity: 0.7,
    // 消息内容
    content: '<span class="ui-dialog-loading">Loading..</span>',
    
    // 标题
    title: '',
    // 对话框状态栏区域 HTML 代码
    statusbar: '',
    
    // 自定义按钮
    button: null,
    
    // 确定按钮回调函数
    ok: null,
    
    // 取消按钮回调函数
    cancel: null,
    // 确定按钮文本
    okValue: 'ok',
    
    // 取消按钮文本
    cancelValue: 'cancel',
    cancelDisplay: true,
    
    // 内容宽度
    width: '',
    
    // 内容高度
    height: '',
    
    // 内容与边界填充距离
    padding: '',
    
    // 对话框自定义 className
    skin: '',
    // 对话框最外层自定义 className
    boxSkin: '',
    // 是否支持快捷关闭(点击遮罩层自动关闭)
    quickClose: false,
    // css 文件路径,留空则不会使用 js 自动加载样式
    // 注意:css 只允许加载一个
    cssUri: '../css/ui-dialog.css',
    // 模板(使用 table 解决 IE7 宽度自适应的 BUG)
    // js 使用 i="***" 属性识别结构,其余的均可自定义
    innerHTML:
        '<div i="dialog" class="ui-dialog">'
        +       '<div class="ui-dialog-arrow-a"></div>'
        +       '<div class="ui-dialog-arrow-b"></div>'
        +       '<table class="ui-dialog-grid">'
        +           '<tr>'
        +               '<td i="header" class="ui-dialog-header">'
        +                   '<button i="close" class="ui-dialog-close">&#215;</button>'
        +                   '<div i="title" class="ui-dialog-title"></div>'
        +               '</td>'
        +           '</tr>'
        +           '<tr>'
        +               '<td i="body" class="ui-dialog-body">'
        +                   '<div i="content" class="ui-dialog-content"></div>'
        +               '</td>'
        +           '</tr>'
        +           '<tr>'
        +               '<td i="footer" class="ui-dialog-footer">'
        +                   '<div i="statusbar" class="ui-dialog-statusbar"></div>'
        +                   '<div i="button" class="ui-dialog-button"></div>'
        +               '</td>'
        +           '</tr>'
        +       '</table>'
        +'</div>'
    
});
/*!
 * artDialog
 * Date: 2014-11-09
 * https://github.com/aui/artDialog
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
 */
define("dialog", function (require) {
var $ = require("jquery");
var Popup = require("popup");
var defaults = require("dialog-config");
var css = defaults.cssUri;
// css loader: RequireJS & SeaJS
if (css) {
    var fn = require[require.toUrl ? 'toUrl' : 'resolve'];
    if (fn) {
        css = fn(css);
        css = '<link rel="stylesheet" href="' + css + '" />';
        if ($('base')[0]) {
            $('base').before(css);
        } else {
            $('head').append(css);
        } 
    }
}
var _count = 0;
var _expando = new Date() - 0; // Date.now()
var _isIE6 = !('minWidth' in $('html')[0].style);
var _isMobile = 'createTouch' in document && !('onmousemove' in document)
    || /(iPhone|iPad|iPod)/i.test(navigator.userAgent);
var _isFixed = !_isIE6 && !_isMobile;
var artDialog = function (options, ok, cancel) {
    var originalOptions = options = options || {};
    
    if (typeof options === 'string' || options.nodeType === 1) {
    
        options = {content: options, fixed: !_isMobile};
    }
    
    options = $.extend(true, {}, artDialog.defaults, options);
    options.original = originalOptions;
    var id = options.id = options.id || _expando + _count;
    var api = artDialog.get(id);
    
    
    // 如果存在同名的对话框对象,则直接返回
    if (api) {
        return api.focus();
    }
    
    
    // 目前主流移动设备对fixed支持不好,禁用此特性
    if (!_isFixed) {
        options.fixed = false;
    }
    // 快捷关闭支持:点击对话框外快速关闭对话框
    if (options.quickClose) {
        options.modal = true;
        options.backdropOpacity = 0;
    }
    
    // 按钮组
    if (!$.isArray(options.button)) {
        options.button = [];
    }
    // 取消按钮
    if (cancel !== undefined) {
        options.cancel = cancel;
    }
    
    if (options.cancel) {
        options.button.push({
            id: 'cancel',
            value: options.cancelValue,
            callback: options.cancel,
            display: options.cancelDisplay
        });
    }
    
    
    // 确定按钮
    if (ok !== undefined) {
        options.ok = ok;
    }
    
    if (options.ok) {
        options.button.push({
            id: 'ok',
            value: options.okValue,
            callback: options.ok,
            autofocus: true
        });
    }
    
    return artDialog.list[id] = new artDialog.create(options);
};
var popup = function () {};
popup.prototype = Popup.prototype;
var prototype = artDialog.prototype = new popup();
artDialog.create = function (options) {
    var that = this;
    $.extend(this, new Popup());
    var originalOptions = options.original;
    var $popup = $(this.node).html(options.innerHTML);
    var $backdrop = $(this.backdrop);
    this.options = options;
    this._popup = $popup;
    
    $.each(options, function (name, value) {
        if (typeof that[name] === 'function') {
            that[name](value);
        } else {
            that[name] = value;
        }
    });
    // 更新 zIndex 全局配置
    if (options.zIndex) {
        Popup.zIndex = options.zIndex;
    }
    // 设置 ARIA 信息
    $popup.attr({
        'aria-labelledby': this._$('title')
            .attr('id', 'title:' + this.id).attr('id'),
        'aria-describedby': this._$('content')
            .attr('id', 'content:' + this.id).attr('id')
    });
    // 关闭按钮
    this._$('close')
    .css('display', this.cancel === false ? 'none' : '')
    .attr('title', this.cancelValue)
    .on('click', function (event) {
        that._trigger('cancel');
        event.preventDefault();
    });
    
    // 添加视觉参数
    this._$('dialog').addClass(this.skin);
    $popup.addClass(this.boxSkin);
    this._$('body').css('padding', this.padding);
    // 点击任意空白处关闭对话框
    if (options.quickClose) {
        $backdrop
        .on(
            'onmousedown' in document ? 'mousedown' : 'click',
            function () {
            that._trigger('cancel');
            return false;// 阻止抢夺焦点
        });
    }
    // 遮罩设置
    this.addEventListener('show', function () {
        $backdrop.css({
            opacity: 0,
            background: options.backdropBackground
        }).animate(
            {opacity: options.backdropOpacity}
        , 150);
    });
    // ESC 快捷键关闭对话框
    this._esc = function (event) {
        var target = event.target;
        var nodeName = target.nodeName;
        var rinput = /^input|textarea$/i;
        var isTop = Popup.current === that;
        var keyCode = event.keyCode;
        // 避免输入状态中 ESC 误操作关闭
        if (!isTop || rinput.test(nodeName) && target.type !== 'button') {
            return;
        }
        
        if (keyCode === 27) {
            that._trigger('cancel');
        }
    };
    $(document).on('keydown', this._esc);
    this.addEventListener('remove', function () {
        $(document).off('keydown', this._esc);
        delete artDialog.list[this.id];
    });
    _count ++;
    
    artDialog.oncreate(this);
    return this;
};
artDialog.create.prototype = prototype;
$.extend(prototype, {
    /**
     * 显示对话框
     * @name artDialog.prototype.show
     * @param   {HTMLElement Object, Event Object}  指定位置(可选)
     */
    
    /**
     * 显示对话框(模态)
     * @name artDialog.prototype.showModal
     * @param   {HTMLElement Object, Event Object}  指定位置(可选)
     */
    /**
     * 关闭对话框
     * @name artDialog.prototype.close
     * @param   {String, Number}    返回值,可被 onclose 事件收取(可选)
     */
    /**
     * 销毁对话框
     * @name artDialog.prototype.remove
     */
    /**
     * 重置对话框位置
     * @name artDialog.prototype.reset
     */
    /**
     * 让对话框聚焦(同时置顶)
     * @name artDialog.prototype.focus
     */
    /**
     * 让对话框失焦(同时置顶)
     * @name artDialog.prototype.blur
     */
    /**
     * 添加事件
     * @param   {String}    事件类型
     * @param   {Function}  监听函数
     * @name artDialog.prototype.addEventListener
     */
    /**
     * 删除事件
     * @param   {String}    事件类型
     * @param   {Function}  监听函数
     * @name artDialog.prototype.removeEventListener
     */
    /**
     * 对话框显示事件,在 show()、showModal() 执行
     * @name artDialog.prototype.onshow
     * @event
     */
    /**
     * 关闭事件,在 close() 执行
     * @name artDialog.prototype.onclose
     * @event
     */
    /**
     * 销毁前事件,在 remove() 前执行
     * @name artDialog.prototype.onbeforeremove
     * @event
     */
    /**
     * 销毁事件,在 remove() 执行
     * @name artDialog.prototype.onremove
     * @event
     */
    /**
     * 重置事件,在 reset() 执行
     * @name artDialog.prototype.onreset
     * @event
     */
    /**
     * 焦点事件,在 foucs() 执行
     * @name artDialog.prototype.onfocus
     * @event
     */
    /**
     * 失焦事件,在 blur() 执行
     * @name artDialog.prototype.onblur
     * @event
     */
    
    /**
     * 设置内容
     * @param    {String, HTMLElement}   内容
     */
    content: function (html) {
    
        var $content = this._$('content');
        // HTMLElement
        if (typeof html === 'object') {
            html = $(html);
            $content.empty('').append(html.show());
            this.addEventListener('beforeremove', function () {
                $('body').append(html.hide());
            });
        // String
        } else {
            $content.html(html);
        }
                
        return this.reset();
    },
    
    
    /**
     * 设置标题
     * @param    {String}   标题内容
     */
    title: function (text) {
        this._$('title').html(text);
        this._$('header')[text ? 'show' : 'hide']();
        return this;
    },
    /** 设置宽度 */
    width: function (value) {
        this._$('content').css('width', value);
        return this.reset();
    },
    /** 设置高度 */
    height: function (value) {
        this._$('content').css('height', value);
        return this.reset();
    },
    /**
     * 设置按钮组
     * @param   {Array, String}
     * Options: value, callback, autofocus, disabled 
     */
    button: function (args) {
        args = args || [];
        var that = this;
        var html = '';
        var number = 0;
        this.callbacks = {};
        
           
        if (typeof args === 'string') {
            html = args;
            number ++;
        } else {
            $.each(args, function (i, val) {
                var id = val.id = val.id || val.value;
                var style = '';
                that.callbacks[id] = val.callback;
                if (val.display === false) {
                    style = ' style="display:none"';
                } else {
                    number ++;
                }
                html +=
                  '<button'
                + ' type="button"'
                + ' i-id="' + id + '"'
                + style
                + (val.disabled ? ' disabled' : '')
                + (val.autofocus ? ' autofocus class="ui-dialog-autofocus"' : '')
                + '>'
                +   val.value
                + '</button>';
                that._$('button')
                .on('click', '[i-id=' + id +']', function (event) {                
                    var $this = $(this);
                    if (!$this.attr('disabled')) {// IE BUG
                        that._trigger(id);
                    }
                
                    event.preventDefault();
                });
            });
        }
        this._$('button').html(html);
        this._$('footer')[number ? 'show' : 'hide']();
        return this;
    },
    statusbar: function (html) {
        this._$('statusbar')
        .html(html)[html ? 'show' : 'hide']();
        return this;
    },
    _$: function (i) {
        return this._popup.find('[i=' + i + ']');
    },
    
    
    // 触发按钮回调函数
    _trigger: function (id) {
        var fn = this.callbacks[id];
            
        return typeof fn !== 'function' || fn.call(this) !== false ?
            this.close().remove() : this;
    }
    
});
artDialog.oncreate = $.noop;
/** 获取最顶层的对话框API */
artDialog.getCurrent = function () {
    return Popup.current;
};
/**
 * 根据 ID 获取某对话框 API
 * @param    {String}    对话框 ID
 * @return   {Object}    对话框 API (实例)
 */
artDialog.get = function (id) {
    return id === undefined
    ? artDialog.list
    : artDialog.list[id];
};
artDialog.list = {};
/**
 * 默认配置
 */
artDialog.defaults = defaults;
return artDialog;
});
/*!
 * drag.js
 * Date: 2013-12-06
 * https://github.com/aui/artDialog
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
 */
define("drag", function (require) {
var $ = require("jquery");
var $window = $(window);
var $document = $(document);
var isTouch = 'createTouch' in document;
var html = document.documentElement;
var isIE6 = !('minWidth' in html.style);
var isLosecapture = !isIE6 && 'onlosecapture' in html;
var isSetCapture = 'setCapture' in html;
var types = {
    start: isTouch ? 'touchstart' : 'mousedown',
    over: isTouch ? 'touchmove' : 'mousemove',
    end: isTouch ? 'touchend' : 'mouseup'
};
var getEvent = isTouch ? function (event) {
    if (!event.touches) {
        event = event.originalEvent.touches.item(0);
    }
    return event;
} : function (event) {
    return event;
};
var DragEvent = function () {
    this.start = $.proxy(this.start, this);
    this.over = $.proxy(this.over, this);
    this.end = $.proxy(this.end, this);
    this.onstart = this.onover = this.onend = $.noop;
};
DragEvent.types = types;
DragEvent.prototype = {
    start: function (event) {
        event = this.startFix(event);
        $document
        .on(types.over, this.over)
        .on(types.end, this.end);
        
        this.onstart(event);
        return false;
    },
    over: function (event) {
        event = this.overFix(event);
        this.onover(event);
        return false;
    },
    end: function (event) {
        event = this.endFix(event);
        $document
        .off(types.over, this.over)
        .off(types.end, this.end);
        this.onend(event);
        return false;
    },
    startFix: function (event) {
        event = getEvent(event);
        this.target = $(event.target);
        this.selectstart = function () {
            return false;
        };
        $document
        .on('selectstart', this.selectstart)
        .on('dblclick', this.end);
        if (isLosecapture) {
            this.target.on('losecapture', this.end);
        } else {
            $window.on('blur', this.end);
        }
        if (isSetCapture) {
            this.target[0].setCapture();
        }
        return event;
    },
    overFix: function (event) {
        event = getEvent(event);
        return event;
    },
    endFix: function (event) {
        event = getEvent(event);
        $document
        .off('selectstart', this.selectstart)
        .off('dblclick', this.end);
        if (isLosecapture) {
            this.target.off('losecapture', this.end);
        } else {
            $window.off('blur', this.end);
        }
        if (isSetCapture) {
            this.target[0].releaseCapture();
        }
        return event;
    }
    
};
/**
 * 启动拖拽
 * @param   {HTMLElement}   被拖拽的元素
 * @param   {Event} 触发拖拽的事件对象。可选,若无则监听 elem 的按下事件启动
 */
DragEvent.create = function (elem, event) {
    var $elem = $(elem);
    var dragEvent = new DragEvent();
    var startType = DragEvent.types.start;
    var noop = function () {};
    var className = elem.className
        .replace(/^\s|\s.*/g, '') + '-drag-start';
    var minX;
    var minY;
    var maxX;
    var maxY;
    var api = {
        onstart: noop,
        onover: noop,
        onend: noop,
        off: function () {
            $elem.off(startType, dragEvent.start);
        }
    };
    dragEvent.onstart = function (event) {
        var isFixed = $elem.css('position') === 'fixed';
        var dl = $document.scrollLeft();
        var dt = $document.scrollTop();
        var w = $elem.width();
        var h = $elem.height();
        minX = 0;
        minY = 0;
        maxX = isFixed ? $window.width() - w + minX : $document.width() - w;
        maxY = isFixed ? $window.height() - h + minY : $document.height() - h;
        var offset = $elem.offset();
        var left = this.startLeft = isFixed ? offset.left - dl : offset.left;
        var top = this.startTop = isFixed ? offset.top - dt  : offset.top;
        this.clientX = event.clientX;
        this.clientY = event.clientY;
        $elem.addClass(className);
        api.onstart.call(elem, event, left, top);
    };
    
    dragEvent.onover = function (event) {
        var left = event.clientX - this.clientX + this.startLeft;
        var top = event.clientY - this.clientY + this.startTop;
        var style = $elem[0].style;
        left = Math.max(minX, Math.min(maxX, left));
        top = Math.max(minY, Math.min(maxY, top));
        style.left = left + 'px';
        style.top = top + 'px';
        
        api.onover.call(elem, event, left, top);
    };
    
    dragEvent.onend = function (event) {
        var position = $elem.position();
        var left = position.left;
        var top = position.top;
        $elem.removeClass(className);
        api.onend.call(elem, event, left, top);
    };
    dragEvent.off = function () {
        $elem.off(startType, dragEvent.start);
    };
    if (event) {
        dragEvent.start(event);
    } else {
        $elem.on(startType, dragEvent.start);
    }
    return api;
};
return DragEvent;
});
/*!
 * artDialog-plus
 * Date: 2013-11-09
 * https://github.com/aui/artDialog
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
 */
define("dialog-plus", function (require) {
var $ = require("jquery");
var dialog = require("dialog");
var drag = require("drag");
dialog.oncreate = function (api) {
    var options = api.options;
    var originalOptions = options.original;
    // 页面地址
    var url = options.url;
    // 页面加载完毕的事件
    var oniframeload = options.oniframeload;
    var $iframe;
    if (url) {
        this.padding = options.padding = 0;
        $iframe = $('<iframe />');
        $iframe.attr({
            src: url,
            name: api.id,
            width: '100%',
            height: '100%',
            allowtransparency: 'yes',
            frameborder: 'no',
            scrolling: 'no'
        })
        .on('load', function () {
            var test;
            
            try {
                // 跨域测试
                test = $iframe[0].contentWindow.frameElement;
            } catch (e) {}
            if (test) {
                if (!options.width) {
                    api.width($iframe.contents().width());
                }
                
                if (!options.height) {
                    api.height($iframe.contents().height());
                }
            }
            if (oniframeload) {
                oniframeload.call(api);
            }
        });
        api.addEventListener('beforeremove', function () {
            // 重要!需要重置iframe地址,否则下次出现的对话框在IE6、7无法聚焦input
            // IE删除iframe后,iframe仍然会留在内存中出现上述问题,置换src是最容易解决的方法
            $iframe.attr('src', 'about:blank').remove();
        }, false);
        api.content($iframe[0]);
        api.iframeNode = $iframe[0];
    }
    // 对于子页面呼出的对话框特殊处理
    // 如果对话框配置来自 iframe
    if (!(originalOptions instanceof Object)) {
        var un = function () {
            api.close().remove();
        };
        // 找到那个 iframe
        for (var i = 0; i < frames.length; i ++) {
            try {
                if (originalOptions instanceof frames[i].Object) {
                    // 让 iframe 刷新的时候也关闭对话框,
                    // 防止要执行的对象被强制收回导致 IE 报错:“不能执行已释放 Script 的代码”
                    $(frames[i]).one('unload', un);
                    break;
                }
            } catch (e) {} 
        }
    }
    // 拖拽支持
    $(api.node).on(drag.types.start, '[i=title]', function (event) {
        // 排除气泡类型的对话框
        if (!api.follow) {
            api.focus();
            drag.create(api.node, event);
        }
    });
};
dialog.get = function (id) {
    // 从 iframe 传入 window 对象
    if (id && id.frameElement) {
        var iframe = id.frameElement;
        var list = dialog.list;
        var api;
        for (var i in list) {
            api = list[i];
            if (api.node.getElementsByTagName('iframe')[0] === iframe) {
                return api;
            }
        }
    // 直接传入 id 的情况
    } else if (id) {
        return dialog.list[id];
    }
};
return dialog;
});
window.dialog = require("dialog-plus");
})();

+ 67 - 0
js/plugins/artDialog/6.0.5/api/js/doc.js

@ -0,0 +1,67 @@
!(function () {
	window.console = window.console || {
		log: $.noop
	};
	var codes = {};
	var debug = location.href.indexOf('Users/tangbin') !== -1;
	$(function () {
		console.log('你可以在调试器中粘贴本页示例代码运行');
		var RE = /[\n\s\t]*?\/\/\.\.[\r\n]/;
		$('pre code').each(function (index) {
			var $this = $(this);
			var code = $this.text();
			// 忽略不完整的代码片段
			// 开头使用"//.."表示
			if (RE.test(code)) {
				$this.text(code.replace(RE, ''));
				return;
			}
			try {
				codes[index] = new Function(code);
			} catch (e) {
				return;
			}
			$this
			.after('<div class="doc-line"></div>'
				+'<button data-code="' + index + '">运行</button>');
		});
		// 回到顶部
		var $top = $('<a class="doc-gotop" href="javascript:;">TOP</a>')
		.on('click', function () {
			$(window).scrollTop(0);
			return false;
		});
		$('body').append($top);
	});
	var runCode = function (id) {
		codes[id]();
		var api = dialog.getCurrent();
		if (debug && api) {
			console.log(api);
		}
	};
	$(document).on('click', 'button[data-code]', function () {
		var id = $(this).data('code');
		runCode(id);
		return false;
	}).on('click', 'h1 [id], h2 [id], h3 [id], h4 [id], h5 [id], h6 [id]', function () {
		var id = this.id;
		location.hash = id;
	});
}());

Файловите разлики са ограничени, защото са твърде много
+ 5 - 0
js/plugins/artDialog/6.0.5/api/js/jquery.js


Файловите разлики са ограничени, защото са твърде много
+ 9 - 0
js/plugins/artDialog/6.0.5/api/js/sh_languages.js


+ 435 - 0
js/plugins/artDialog/6.0.5/css/ui-dialog.css

@ -0,0 +1,435 @@
/*!
 * ui-dialog.css
 * Date: 2014-07-03
 * https://github.com/aui/artDialog
 * (c) 2009-2014 TangBin, http://www.planeArt.cn
 *
 * This is licensed under the GNU LGPL, version 2.1 or later.
 * For details, see: http://www.gnu.org/licenses/lgpl-2.1.html
*/
.ui-popup-full{
    width:100%;
    box-sizing: border-box;
    -webkit-box-sizing: border-box;
    padding:0 15px !important;
    left:0 !important;
}
.ui-dialog {
    *zoom:1;
    _float: left;
    position: relative;
    background-color: #FFF;
    border: 1px solid #999;
    border-radius: 6px;
    outline: 0;
    background-clip: padding-box;
    font-family: Helvetica, arial, sans-serif;
    font-size: 14px;
    line-height: 1.428571429;
    color: #333;
    opacity: 0;
    -webkit-transform: scale(0);
    transform: scale(0);
    -webkit-transition: -webkit-transform .15s ease-in-out, opacity .15s ease-in-out;
    transition: transform .15s ease-in-out, opacity .15s ease-in-out;
	padding:0 10px;
}
.ui-popup-show .ui-dialog {
    opacity: 1;
    -webkit-transform: scale(1);
    transform: scale(1);
}
.ui-popup-focus .ui-dialog {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1);
}
.ui-popup-modal .ui-dialog {
    box-shadow: 0 0 8px rgba(0, 0, 0, 0.1), 0 0 256px rgba(255, 255, 255, .3);
}
.ui-dialog-grid {
    width: 100%;
    margin: 0;
    border: 0 none;
    border-collapse:collapse;
    border-spacing: 0;
    background: transparent;
}
.ui-dialog-header,
.ui-dialog-body,
.ui-dialog-footer {
    padding: 0;
    border: 0 none;
    text-align: left;
    background: transparent;
}
.ui-dialog-header {
    white-space: nowrap;
    border-bottom: 1px solid #E5E5E5;
}
.ui-dialog-close {
    position: relative;
    _position: absolute;
    float: right;
    top: 13px;
    right: 13px;
    _height: 26px;
    padding: 0 4px;
    font-size: 21px;
    font-weight: bold;
    line-height: 1;
    color: #000;
    text-shadow: 0 1px 0 #FFF;
    opacity: .2;
    filter: alpha(opacity=20);
    cursor: pointer;
    background: transparent;
    _background: #FFF;
    border: 0;
    -webkit-appearance: none;
}
.ui-dialog-close:hover,
.ui-dialog-close:focus {
    color: #000000;
    text-decoration: none;
    cursor: pointer;
    outline: 0;
    opacity: 0.5;
    filter: alpha(opacity=50);
}
.ui-dialog-title {
    margin: 0;
    line-height: 1.428571429;
    min-height: 16.428571429px;
    padding: 15px;
    overflow:hidden; 
    white-space: nowrap;
    text-overflow: ellipsis;
    font-weight: bold;
    cursor: default;
}
.ui-dialog-body {
    padding: 20px;
    text-align: center;
}
.ui-dialog-content {
    display: inline-block;
    position: relative;
    vertical-align: middle;
    *zoom: 1;
    *display: inline;
    text-align: left;
}
.ui-dialog-footer {
    padding: 0 20px 20px 20px;
}
.ui-dialog-statusbar {
    float: left;
    margin-right: 20px;
    padding: 6px 0;
    line-height: 1.428571429;
    font-size: 14px;
    color: #888;
    white-space: nowrap;
}
.ui-dialog-statusbar label:hover {
    color: #333;
}
.ui-dialog-statusbar input,
.ui-dialog-statusbar .label {
    vertical-align: middle;
}
.ui-dialog-button {
    float: right;
    white-space: nowrap;
}
.ui-dialog-footer button+button {
    margin-bottom: 0;
    margin-left: 5px;
}
.ui-dialog-footer button {
    width:auto;
    overflow:visible;
    display: inline-block;
    padding: 6px 12px;
    _margin-left: 5px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.428571429;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
       -o-user-select: none;
          user-select: none;
}
.ui-dialog-footer button:focus {
  outline: thin dotted #333;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus {
  color: #333333;
  text-decoration: none;
}
.ui-dialog-footer button:active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
}
.ui-dialog-footer button[disabled] {
  pointer-events: none;
  cursor: not-allowed;
  opacity: 0.65;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
          box-shadow: none;
}
.ui-dialog-footer button {
  color: #333333;
  background-color: #ffffff;
  border-color: #cccccc;
}
.ui-dialog-footer button:hover,
.ui-dialog-footer button:focus,
.ui-dialog-footer button:active {
  color: #333333;
  background-color: #ebebeb;
  border-color: #adadad;
}
.ui-dialog-footer button:active{
  background-image: none;
}
.ui-dialog-footer button[disabled],
.ui-dialog-footer button[disabled]:hover,
.ui-dialog-footer button[disabled]:focus,
.ui-dialog-footer button[disabled]:active {
  background-color: #ffffff;
  border-color: #cccccc;
}
.ui-dialog-footer button.ui-dialog-autofocus {
  color: #ffffff;
  background-color: #428bca;
  border-color: #357ebd;
}
.ui-dialog-footer button.ui-dialog-autofocus:hover,
.ui-dialog-footer button.ui-dialog-autofocus:focus,
.ui-dialog-footer button.ui-dialog-autofocus:active {
  color: #ffffff;
  background-color: #3276b1;
  border-color: #285e8e;
}
.ui-dialog-footer button.ui-dialog-autofocus:active {
  background-image: none;
}
.ui-popup-top-left .ui-dialog,
.ui-popup-top .ui-dialog,
.ui-popup-top-right .ui-dialog {
    top: -8px;
}
.ui-popup-bottom-left .ui-dialog,
.ui-popup-bottom .ui-dialog,
.ui-popup-bottom-right .ui-dialog {
    top: 8px;
}
.ui-popup-left-top .ui-dialog,
.ui-popup-left .ui-dialog,
.ui-popup-left-bottom .ui-dialog {
    left: -8px;
}
.ui-popup-right-top .ui-dialog,
.ui-popup-right .ui-dialog,
.ui-popup-right-bottom .ui-dialog {
    left: 8px;
}
.ui-dialog-arrow-a,
.ui-dialog-arrow-b {
    position: absolute;
    display: none;
    width: 0;
    height: 0;
    overflow:hidden;
    _color:#FF3FFF;
    _filter:chroma(color=#FF3FFF);
    border:8px dashed transparent;
}
.ui-popup-follow .ui-dialog-arrow-a,
.ui-popup-follow .ui-dialog-arrow-b{
    display: block;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-a {
    bottom: -16px;
    border-top:8px solid #7C7C7C;
}
.ui-popup-top-left .ui-dialog-arrow-b,
.ui-popup-top .ui-dialog-arrow-b,
.ui-popup-top-right .ui-dialog-arrow-b {
    bottom: -15px;
    border-top:8px solid #fff;
}
.ui-popup-top-left .ui-dialog-arrow-a,
.ui-popup-top-left .ui-dialog-arrow-b  {
    left: 15px;
}
.ui-popup-top .ui-dialog-arrow-a,
.ui-popup-top .ui-dialog-arrow-b  {
    left: 50%;
    margin-left: -8px;
}
.ui-popup-top-right .ui-dialog-arrow-a,
.ui-popup-top-right .ui-dialog-arrow-b {
    right: 15px;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-a {
    top: -16px;
    border-bottom:8px solid #7C7C7C;
}
.ui-popup-bottom-left .ui-dialog-arrow-b,
.ui-popup-bottom .ui-dialog-arrow-b,
.ui-popup-bottom-right .ui-dialog-arrow-b {
    top: -15px;
    border-bottom:8px solid #fff;
}
.ui-popup-bottom-left .ui-dialog-arrow-a,
.ui-popup-bottom-left .ui-dialog-arrow-b {
    left: 15px;
}
.ui-popup-bottom .ui-dialog-arrow-a,
.ui-popup-bottom .ui-dialog-arrow-b {
    margin-left: -8px;
    left: 50%;
}
.ui-popup-bottom-right .ui-dialog-arrow-a,
.ui-popup-bottom-right .ui-dialog-arrow-b {
    right: 15px;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-a {
    right: -16px;
    border-left:8px solid #7C7C7C;
}
.ui-popup-left-top .ui-dialog-arrow-b,
.ui-popup-left .ui-dialog-arrow-b,
.ui-popup-left-bottom .ui-dialog-arrow-b {
    right: -15px;
    border-left:8px solid #fff;
}
.ui-popup-left-top .ui-dialog-arrow-a,
.ui-popup-left-top .ui-dialog-arrow-b {
    top: 15px;
}
.ui-popup-left .ui-dialog-arrow-a,
.ui-popup-left .ui-dialog-arrow-b {
    margin-top: -8px;
    top: 50%;
}
.ui-popup-left-bottom .ui-dialog-arrow-a,
.ui-popup-left-bottom .ui-dialog-arrow-b {
    bottom: 15px;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-a {
    left: -16px;
    border-right:8px solid #7C7C7C;
}
.ui-popup-right-top .ui-dialog-arrow-b,
.ui-popup-right .ui-dialog-arrow-b,
.ui-popup-right-bottom .ui-dialog-arrow-b {
    left: -15px;
    border-right:8px solid #fff;
}
.ui-popup-right-top .ui-dialog-arrow-a,
.ui-popup-right-top .ui-dialog-arrow-b {
    top: 15px;
}
.ui-popup-right .ui-dialog-arrow-a,
.ui-popup-right .ui-dialog-arrow-b {
    margin-top: -8px;
    top: 50%;
}
.ui-popup-right-bottom .ui-dialog-arrow-a,
.ui-popup-right-bottom .ui-dialog-arrow-b {
    bottom: 15px;
}
@-webkit-keyframes ui-dialog-loading {
    0% {
        -webkit-transform: rotate(0deg);
    }
    100% {
        -webkit-transform: rotate(360deg);
    }
}
@keyframes ui-dialog-loading {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}
.ui-dialog-loading {
    vertical-align: middle;
    position: relative;
    display: block;
    *zoom: 1;
    *display: inline;
    overflow: hidden;
    width: 32px;
    height: 32px;
    top: 50%;
    margin: -16px auto 0 auto;
    font-size: 0;
    text-indent: -999em;
    color: #666;
}
.ui-dialog-loading {
    width: 100%\9;
    text-indent: 0\9;
    line-height: 32px\9;
    text-align: center\9;
    font-size: 12px\9;
}
.ui-dialog-loading::after {
    position: absolute;
    content: '';
    width: 3px;
    height: 3px;
    margin: 14.5px 0 0 14.5px;
    border-radius: 100%;
    box-shadow: 0 -10px 0 1px #ccc, 10px 0px #ccc, 0 10px #ccc, -10px 0 #ccc, -7px -7px 0 0.5px #ccc, 7px -7px 0 1.5px #ccc, 7px 7px #ccc, -7px 7px #ccc;
    -webkit-transform: rotate(360deg);
    -webkit-animation: ui-dialog-loading 1.5s infinite linear;
    transform: rotate(360deg);
    animation: ui-dialog-loading 1.5s infinite linear;
    display: none\9;
}

+ 126 - 0
js/plugins/artDialog/6.0.5/css/ui-dialog.min.css

@ -0,0 +1,126 @@
.ui-popup-full { width: 100%; box-sizing: border-box; -webkit-box-sizing: border-box; padding: 0 25px !important; left: 0 !important }
.ui-dialog {
 *zoom: 1; _float: left; position: relative; background-color: #FFF; border: 1px solid #999; border-radius: 6px; outline: 0; background-clip: padding-box; font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.428571429; color: #333; opacity: 0; -webkit-transform: scale(0); transform: scale(0); -webkit-transition: -webkit-transform .15s ease-in-out, opacity .15s ease-in-out; transition: transform .15s ease-in-out, opacity .15s ease-in-out; padding: 0 10px }
.ui-popup-show .ui-dialog { opacity: 1; -webkit-transform: scale(1); transform: scale(1) }
.ui-popup-focus .ui-dialog { box-shadow: 0 0 8px rgba(0, 0, 0, 0.1) }
.ui-popup-modal .ui-dialog { box-shadow: 0 0 8px rgba(0, 0, 0, 0.1), 0 0 256px rgba(255, 255, 255, .3) }
.ui-dialog-grid { width: 100%; margin: 0; border: 0 none; border-collapse: collapse; border-spacing: 0; background: transparent }
.ui-dialog-header, .ui-dialog-body, .ui-dialog-footer { padding: 0; border: 0 none; text-align: left; background: transparent }
.ui-dialog-header { white-space: nowrap; border-bottom: 1px solid #e5e5e5 }
.ui-dialog-close { position: relative; _position: absolute; float: right; top: 13px; right: 13px; _height: 26px; padding: 0 4px; font-size: 21px; font-weight: bold; line-height: 1; color: #000; text-shadow: 0 1px 0 #FFF; opacity: .2; filter: alpha(opacity=20); cursor: pointer; background: transparent; _background: #FFF; border: 0; -webkit-appearance: none }
.ui-dialog-close:hover, .ui-dialog-close:focus { color: #000; text-decoration: none; cursor: pointer; outline: 0; opacity: .5; filter: alpha(opacity=50) }
.ui-dialog-title { margin: 0; line-height: 1.428571429; min-height: 16.428571429px; padding: 15px; overflow: hidden; white-space: pre-wrap;font-weight: bold; cursor: default }
.ui-dialog-body { padding: 20px; text-align: center }
.ui-dialog-content { display: inline-block; position: relative; vertical-align: middle;  *zoom: 1; *display: inline;text-align: left }
.ui-dialog-footer { padding: 0 20px 20px 20px }
.ui-dialog-statusbar { float: left; margin-right: 20px; padding: 6px 0; line-height: 1.428571429; font-size: 14px; color: #888; white-space: nowrap }
.ui-dialog-statusbar label:hover { color: #333 }
.ui-dialog-statusbar input, .ui-dialog-statusbar .label { vertical-align: middle }
.ui-dialog-button { float: right; white-space: nowrap }
.ui-dialog-footer button + button { margin-bottom: 0; margin-left: 5px }
.ui-dialog-footer button { width: auto; overflow: visible; display: inline-block; padding: 6px 12px; _margin-left: 5px; margin-bottom: 0; font-size: 14px; font-weight: normal; line-height: 1.428571429; text-align: center; white-space: nowrap; vertical-align: middle; cursor: pointer; background-image: none; border: 1px solid transparent; border-radius: 4px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none }
.ui-dialog-footer button:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px }
.ui-dialog-footer button:hover, .ui-dialog-footer button:focus { color: #333; text-decoration: none }
.ui-dialog-footer button:active { background-image: none; outline: 0; -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125) }
.ui-dialog-footer button[disabled] { pointer-events: none; cursor: not-allowed; opacity: .65; filter: alpha(opacity=65); -webkit-box-shadow: none; box-shadow: none }
.ui-dialog-footer button { color: #333; background-color: #fff; border-color: #ccc }
.ui-dialog-footer button:hover, .ui-dialog-footer button:focus, .ui-dialog-footer button:active { color: #333; background-color: #ebebeb; border-color: #adadad }
.ui-dialog-footer button:active { background-image: none }
.ui-dialog-footer button[disabled], .ui-dialog-footer button[disabled]:hover, .ui-dialog-footer button[disabled]:focus, .ui-dialog-footer button[disabled]:active { background-color: #fff; border-color: #ccc }
.ui-dialog-footer button.ui-dialog-autofocus { color: #fff; background-color: #428bca; border-color: #357ebd }
.ui-dialog-footer button.ui-dialog-autofocus:hover, .ui-dialog-footer button.ui-dialog-autofocus:focus, .ui-dialog-footer button.ui-dialog-autofocus:active { color: #fff; background-color: #3276b1; border-color: #285e8e }
.ui-dialog-footer button.ui-dialog-autofocus:active { background-image: none }
.ui-popup-top-left .ui-dialog, .ui-popup-top .ui-dialog, .ui-popup-top-right .ui-dialog { top: -8px }
.ui-popup-bottom-left .ui-dialog, .ui-popup-bottom .ui-dialog, .ui-popup-bottom-right .ui-dialog { top: 8px }
.ui-popup-left-top .ui-dialog, .ui-popup-left .ui-dialog, .ui-popup-left-bottom .ui-dialog { left: -8px }
.ui-popup-right-top .ui-dialog, .ui-popup-right .ui-dialog, .ui-popup-right-bottom .ui-dialog { left: 8px }
.ui-dialog-arrow-a, .ui-dialog-arrow-b { position: absolute; display: none; width: 0; height: 0; overflow: hidden; _color: #ff3fff; _filter: chroma(color=#FF3FFF); border: 8px dashed transparent }
.ui-popup-follow .ui-dialog-arrow-a, .ui-popup-follow .ui-dialog-arrow-b { display: block }
.ui-popup-top-left .ui-dialog-arrow-a, .ui-popup-top .ui-dialog-arrow-a, .ui-popup-top-right .ui-dialog-arrow-a { bottom: -16px; border-top: 8px solid #7c7c7c }
.ui-popup-top-left .ui-dialog-arrow-b, .ui-popup-top .ui-dialog-arrow-b, .ui-popup-top-right .ui-dialog-arrow-b { bottom: -15px; border-top: 8px solid #fff }
.ui-popup-top-left .ui-dialog-arrow-a, .ui-popup-top-left .ui-dialog-arrow-b { left: 15px }
.ui-popup-top .ui-dialog-arrow-a, .ui-popup-top .ui-dialog-arrow-b { left: 50%; margin-left: -8px }
.ui-popup-top-right .ui-dialog-arrow-a, .ui-popup-top-right .ui-dialog-arrow-b { right: 15px }
.ui-popup-bottom-left .ui-dialog-arrow-a, .ui-popup-bottom .ui-dialog-arrow-a, .ui-popup-bottom-right .ui-dialog-arrow-a { top: -16px; border-bottom: 8px solid #7c7c7c }
.ui-popup-bottom-left .ui-dialog-arrow-b, .ui-popup-bottom .ui-dialog-arrow-b, .ui-popup-bottom-right .ui-dialog-arrow-b { top: -15px; border-bottom: 8px solid #fff }
.ui-popup-bottom-left .ui-dialog-arrow-a, .ui-popup-bottom-left .ui-dialog-arrow-b { left: 15px }
.ui-popup-bottom .ui-dialog-arrow-a, .ui-popup-bottom .ui-dialog-arrow-b { margin-left: -8px; left: 50% }
.ui-popup-bottom-right .ui-dialog-arrow-a, .ui-popup-bottom-right .ui-dialog-arrow-b { right: 15px }
.ui-popup-left-top .ui-dialog-arrow-a, .ui-popup-left .ui-dialog-arrow-a, .ui-popup-left-bottom .ui-dialog-arrow-a { right: -16px; border-left: 8px solid #7c7c7c }
.ui-popup-left-top .ui-dialog-arrow-b, .ui-popup-left .ui-dialog-arrow-b, .ui-popup-left-bottom .ui-dialog-arrow-b { right: -15px; border-left: 8px solid #fff }
.ui-popup-left-top .ui-dialog-arrow-a, .ui-popup-left-top .ui-dialog-arrow-b { top: 15px }
.ui-popup-left .ui-dialog-arrow-a, .ui-popup-left .ui-dialog-arrow-b { margin-top: -8px; top: 50% }
.ui-popup-left-bottom .ui-dialog-arrow-a, .ui-popup-left-bottom .ui-dialog-arrow-b { bottom: 15px }
.ui-popup-right-top .ui-dialog-arrow-a, .ui-popup-right .ui-dialog-arrow-a, .ui-popup-right-bottom .ui-dialog-arrow-a { left: -16px; border-right: 8px solid #7c7c7c }
.ui-popup-right-top .ui-dialog-arrow-b, .ui-popup-right .ui-dialog-arrow-b, .ui-popup-right-bottom .ui-dialog-arrow-b { left: -15px; border-right: 8px solid #fff }
.ui-popup-right-top .ui-dialog-arrow-a, .ui-popup-right-top .ui-dialog-arrow-b { top: 15px }
.ui-popup-right .ui-dialog-arrow-a, .ui-popup-right .ui-dialog-arrow-b { margin-top: -8px; top: 50% }
.ui-popup-right-bottom .ui-dialog-arrow-a, .ui-popup-right-bottom .ui-dialog-arrow-b { bottom: 15px }
 @-webkit-keyframes ui-dialog-loading {
 0% {
 -webkit-transform: rotate(0deg)
}
 100% {
 -webkit-transform: rotate(360deg)
}
}
 @keyframes ui-dialog-loading {
 0% {
 transform: rotate(0deg)
}
 100% {
 transform: rotate(360deg)
}
}
.ui-dialog-loading { vertical-align: middle; position: relative; display: block;  *zoom: 1;
 *display: inline;
overflow: hidden; width: 32px; height: 32px; top: 50%; margin: -16px auto 0 auto; font-size: 0; text-indent: -999em; color: #666 }
.ui-dialog-loading { width: 100% \9; text-indent: 0 \9; line-height: 32px \9; text-align: center \9; font-size: 12px \9 }
.ui-dialog-loading::after { position: absolute; content: ''; width: 3px; height: 3px; margin: 14.5px 0 0 14.5px; border-radius: 100%; box-shadow: 0 -10px 0 1px #ccc, 10px 0 #ccc, 0 10px #ccc, -10px 0 #ccc, -7px -7px 0 .5px #ccc, 7px -7px 0 1.5px #ccc, 7px 7px #ccc, -7px 7px #ccc; -webkit-transform: rotate(360deg); -webkit-animation: ui-dialog-loading 1.5s infinite linear; transform: rotate(360deg); animation: ui-dialog-loading 1.5s infinite linear; display: none \9 }
.ax-popup { padding: 0; border: 0; border-radius: 10px; outline: 0; font-size: 14px; line-height: 1.428571429; color: #333; overflow: hidden; }
.ax-popup .ui-dialog-header { font-size: 17px; font-weight: 700; border: 0; text-align: center; }
.ax-popup .ui-dialog-close { display: none; }
.ax-popup .ui-dialog-title { padding: 15px 20px 0 20px; border-top-left-radius: 10px; border-top-right-radius: 10px; overflow: hidden; }
.fat-title .ui-dialog-title { padding: 25px 15px 0 15px; }
.ax-popup .ui-dialog-body, .ax-popup .ui-dialog-content { text-align: center; color: #5b5b5b; }
.ui-popup-modal .ui-dialog { -webkit-box-shadow: none; box-shadow: none; }
.ax-popup .ui-dialog-body { padding: 15px; line-height:1.8; }
.ax-popup .ui-dialog-footer { border-top: 1px solid #e1e1e1; padding: 0; text-align: center; border-radius: 0 0 10px 10px; overflow: hidden; }
.ax-popup .ui-dialog-button { float: none; width: 100%; white-space: nowrap; display: -webkit-box; display: box; }
.ax-popup .ui-dialog-footer button { display: box; display: -webkit-box; -webkit-box-flex: 1; box-flex: 1; box-sizing: border-box; -webkit-box-sizing: border-box; padding: 0; margin: 0; height: 44px; font-size: 17px; font-weight: normal; color: #167efb; cursor: pointer; background: none; border: 0; text-align: center !important; border-left: 1px solid #e1e1e1; border-radius: 0; outline: 0; }
.ax-popup .ui-dialog-footer button span { display: block; width: 100%; text-align: center; }
.ax-popup .ui-dialog-footer button + button { margin-bottom: 0; margin-left: 0; }
.ax-popup .ui-dialog-footer button.ui-dialog-autofocus { color: #167efb; background-color: #fff; border: 0; border-left: 1px solid #e1e1e1; }
.ax-popup .ui-dialog-footer button:first-child { border: 0; border-bottom-left-radius: 10px; }
.ax-popup .ui-dialog-footer button:last-child { border-bottom-right-radius: 10px; }
.ax-popup .ui-dialog-footer button:active { background-image: none; outline: 0; -webkit-box-shadow: none; box-shadow: none; background: #efefef; }
.bk-popup { padding: 0 10px; border: 0; border-radius: 10px; outline: 0; font-size: 14px; line-height: 1.428571429; color: #fff; overflow: hidden; border:0; background:rgba(0,0,0,.8);}
.ui-popup-focus .bk-popup{ box-shadow:none; }
.bk-popup .ui-dialog-header { font-size: 17px; font-weight: 700; border: 0; text-align: center;}
.bk-popup .ui-dialog-close { display: none; }
.bk-popup .ui-dialog-title { padding: 15px 20px 0 20px; border-top-left-radius: 10px; border-top-right-radius: 10px; overflow: hidden; }
.fat-title .ui-dialog-title { padding: 25px 15px 0 15px; }
.bk-popup .ui-dialog-body, .bk-popup .ui-dialog-content { text-align: center; color: #5b5b5b; font-size:17px; line-height:1.5; background:rgba(0,0,0,0); }
.ui-popup .bk-popup tr, .ui-popup  .bk-popup tr {background:none}
.ui-popup-modal .ui-dialog { -webkit-box-shadow: none; box-shadow: none; }
.bk-popup .ui-dialog-content, .bk-popup tr{ background:transparent; color:#fff;}
.thin-con .ui-dialog-body { padding: 9px 10px; }
.bk-popup .ui-dialog-footer { border-top: 1px solid rgba(255,255,255,.3); padding: 10px 0; text-align: center; border-radius: 0 0 10px 10px; overflow: hidden; }
.bk-popup .ui-dialog-button { float: none; width: 100%; white-space: nowrap; display: -webkit-box; display: box; }
.bk-popup .ui-dialog-footer button { display: box; display: -webkit-box; -webkit-box-flex: 1; box-flex: 1; box-sizing: border-box; -webkit-box-sizing: border-box; padding: 0; margin: 0; height: 28px; font-size: 17px; font-weight: normal; color: #fff; cursor: pointer; background: none; border: 0; text-align: center !important; border-left: 1px solid rgba(255,255,255,.3); border-radius: 0; outline: 0; }
.bk-popup .ui-dialog-footer button span { display: block; width: 100%; text-align: center; }
.bk-popup .ui-dialog-footer button + button { margin-bottom: 0; margin-left: 0; }
.bk-popup .ui-dialog-footer button.ui-dialog-autofocus { color: #fff; background-color:transparent; border: 0; border-left: 1px solid rgba(255,255,255,.3); }
.bk-popup .ui-dialog-footer button:first-child { border: 0; border-bottom-left-radius: 10px; }
.bk-popup .ui-dialog-footer button:last-child { border-bottom-right-radius: 10px; }
.bk-popup .ui-dialog-footer button:active { background-image: none; outline: 0; color:#167efb; -webkit-box-shadow: none; box-shadow:none;}
.ui-dialog-loading{ text-align:left;}
.smallTips .ui-dialog-grid{margin:15px 0;}
.ui-popup p,.ui-popup blockquote,.ui-popup ul,.ui-popup ol,.ui-popup dl,.ui-popup li, .ui-popup pre { margin: 15px 0; }
.ui-popup table { padding: 0; border-collapse: collapse; }
.ui-popup tr { background-color: white; margin: 0; padding: 0; }
.ui-popup th { font-weight: bold; text-align: left; margin: 0; padding: 6px 13px; }
.ui-popup td { text-align: left; margin: 0; padding: 6px 13px; }
.ui-popup th :first-child,.ui-popup td :first-child { margin-top: 0; }
.ui-popup th :last-child,.ui-popup td :last-child { margin-bottom: 0; }

Файловите разлики са ограничени, защото са твърде много
+ 930 - 0
js/plugins/artDialog/6.0.5/js/dialog-plus.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 0
js/plugins/artDialog/6.0.5/js/dialog-plus.min.js


+ 170 - 0
prescription-consulting.html

@ -0,0 +1,170 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="renderer" content="webkit">
    <meta http-equiv="Cache-Control" content="no-siteapp" />
    <title>咨询详情页</title>
    <meta name="keywords" content="">
    <meta name="description" content="">
    <link rel="shortcut icon" href="favicon.ico">
    <link href="css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
    <link href="css/font-awesome.min93e3.css?v=4.4.0" rel="stylesheet">
    <link href="css/animate.min.css" rel="stylesheet">
    <link href="css/plugins/toastr/toastr.min.css" rel="stylesheet">
    <link href="js/plugins/fancybox/jquery.fancybox.css" rel="stylesheet">
    <link href="js/plugins/artDialog/6.0.5/css/ui-dialog.min.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    <link rel="stylesheet" href="css/consulting.css">
    <link rel="stylesheet" href="css/plugins/plyr/plyr.css">
</head>
<body class="">
    <div class="consulting-panel ui-grid border-bottom">
        <div class="ui-col-3 border-right" style="height: 100%">
            <div class="info-panel">审核完成24时后将自动关闭咨询,<a onclick="finish()">点击关闭</a></div>
            <div class="text-center">
                <span class="diseaseInfo"></span>
            </div>
            <div style="height: calc(100% - 74px);">
                <div class="plr20 pb20" id="talkBox"></div>
            </div>
            
        </div>
        <div class="ui-col-1" style="height: 100%">
            <div class="ptb20 plr10" id="prescriptionInfo"></div>
            <div class="text-center">
                <span class="status-btn"></span>
            </div>
        </div>
    </div>
    <div class="input-panel">
        <div class="action-panel">
            <i class="fa fa-picture-o c-666" onclick="file_head.click()"></i>
            <input type="file" class="hidden" id="file_head" accept="image/*">
        </div>
        <div id="input_content" type="text" class="input-msg width-100" ></div>
        <button class="btn send-btn" type="button"><i class="fa fa-send mr5"></i>发送</button>
    </div>
    <!-- 系统消息模板 -->
    <script type="text/html" id="sys_msg_tmp">
        <div class="time-tips"><span class="xt-xiaoxi">{{content}}</span></div>
    </script>
    <!-- 消息模板 -->
    <script type="text/html" id="msg_tmp">
        <div class="time-tips"><span>{{time}}</span></div>
        <dl class="{{if isSelf}}chat-right{{else}}chat-left{{/if}}">
            <dt style="height: auto; text-align: center;">
                <img src="{{img}}" class="images-cycle"/>
            </dt>
            <div class="c-content">
                <span class="c-f12 name">{{name}}</span>
            {{if type == 0 || type == 1 || type == 8 }}
            <dd class="word-bread">
                <span>{{content}}</span>
            </dd>
            {{/if}}
            {{if type == 2}}
            <dd class="word-bread wb-img">
                <a class="fancybox" href="{{content}}" title="图片">
                    <img width="100" src="{{content}}" />
                </a>
            </dd>
            {{/if}}
            {{if type == 3}}
            <dd class="word-bread">
                <div class="player" style="width:292px;">
                    <audio controls>
                        <!-- Audio files -->
                        <source src="{{content.path}}" type="audio/mp3">
                        <!-- Fallback for browsers that don't support the <audio> element -->
                        您的浏览器不支持在线播放,请<a href="{{content.path}}">下载</a>
                    </audio>
                </div>
            </dd>
            {{/if}}
            {{if type == 6}}
            <dd class="word-bread sys-msg">
                <div class="c-f14 sys-header mb5">
                    <img src="img/xitongtixing_im_icon.png" width="14">本消息为系统提示
                </div>
                <p class="c-333 c-f14">{{content.title}}</p>
                <p class="c-333 c-f14">体征信息:{{content.tzMsg}}</p>
            </dd>
            {{/if}}
            {{if type == 12}}
            <dd class="word-bread">
                <div class="player" style="width:292px;">
                    <video poster="{{content.img}}" controls crossorigin>
                        <!-- Video files -->
                        <source src="{{content.path}}" type="video/mp4">
                        <!-- Text track file -->
                        <!-- <track kind="captions" label="English" srclang="en" src="https://cdn.selz.com/plyr/1.0/example_captions_en.vtt" default> -->
                        <!-- Fallback for browsers that don't support the <video> element -->
                        <a href="{{content.path}}">Download</a>
                    </video>
                </div>
            </dd>
            {{/if}}
            {{if type == 15}}
            <dd class="word-bread sys-msg">
                <div class="c-f14 sys-header mb5">
                    <img src="img/xitongtixing_im_icon.png" width="14">本消息为系统提示
                </div>
                <p class="c-333 c-f14">审核消息:</p>
                <p class="c-333 c-f14">{{content.title}}</p>
                <p class="c-333 c-f14">审核结果:{{content.result}}</p>
                <p class="c-333 c-f14">原因:{{content.reason}}</p>
                <a href="javascript:void(0);" class="view-detail c-f14">点此查看详情</a>
            </dd>
            {{/if}}
        </div>
        </dl>
    </script>
    <script type="text/html" id="prescriptionInfo_tmp">
        <h4 class="text-center">{{symptoms}}-续方咨询</h4>
        <p class="mt20">诊断结果</p>
        <p>
            {{each prescriptionDt as dt}}
            {{dt.name}}
            {{/each}}
        </p>
        <p class="mt30">药品</p>
        <ul class="" style="padding:0">
            {{each prescriptionInfo as dg}}
            <li class="ui-grid">
                <div class="ui-col-1">{{dg.drugName}}</div>
                <div class="ui-col-0">{{dg.num}}{{dg.drugNumUnitName}}</div>
            </li>
            {{/each}}
        </ul>
    </script>
</body>
<script>
    (function(d,u){var a=new XMLHttpRequest(),b=d.body;if("withCredentials" in a){a.open("GET",u,true);a.send();a.onload=function(){var c=d.createElement("div");c.setAttribute("hidden","");c.innerHTML=a.responseText;b.insertBefore(c,b.childNodes[0])}}})(document, "css/plugins/plyr/sprite.svg");
</script>
<script src="js/jquery.min.js?v=2.1.4"></script>
<script src="js/bootstrap.min.js?v=3.3.6"></script>
<script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
<script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
<script src="js/plugins/layer/layer.min.js"></script>
<script src="js/hplus.min.js?v=4.1.0"></script>
<script type="text/javascript" src="js/contabs.min.js"></script>
<script src="js/plugins/pace/pace.min.js"></script>
<script src="js/plugins/toastr/toastr.min.js"></script>
<script src="js/es6-promise.js"></script>
<script src="js/util.js"></script>
<script src="js/template.js"></script>
<script src="js/api-service.js"></script>
<script src="js/consulting-api.js"></script>
<script src="js/plugins/fancybox/jquery.fancybox.js"></script>
<script src="js/plugins/plyr/plyr.js"></script>
<script src="js/plugins/artDialog/6.0.5/js/dialog-plus.min.js"></script>
<script src="js/buz/prescription-consulting.js"></script>
</html>