Browse Source

Merge branch 'master' of http://192.168.1.220:10080/raolu/sr-publicServicePlatform

zyz 7 years ago
parent
commit
5a96b43721
83 changed files with 4022 additions and 867 deletions
  1. 341 0
      api/doctor-http-request.js
  2. 28 7
      api/http-request.js
  3. 14 3
      api/patient/appointment-api.js
  4. 17 2
      api/patient/jiuzhen-api.js
  5. 12 12
      api/patient/mine-api.js
  6. 350 94
      component/appointment/date-source.js
  7. 10 4
      component/appointment/doctor-list.js
  8. 2 1
      component/appointment/hospital-source.js
  9. 50 50
      component/common/appointment-step.js
  10. 64 0
      component/common/doctor-header.js
  11. 49 0
      component/common/doctor-top.js
  12. 18 18
      component/common/footer.js
  13. 89 45
      component/common/header.js
  14. 196 0
      component/doctor-home/device-reback.js
  15. 43 0
      component/doctor-home/index.js
  16. 39 0
      component/doctor-home/mine.js
  17. 60 0
      component/doctor-home/per-info.js
  18. 149 0
      component/doctor-home/safe-setting.js
  19. 241 0
      component/doctor/appeal.js
  20. 158 0
      component/doctor/forget.js
  21. 300 0
      component/doctor/login.js
  22. 0 1
      component/login-register/login.js
  23. 86 31
      component/mine/change-password.js
  24. 18 11
      component/mine/personal-dialog-form.js
  25. 73 71
      component/mine/personal-info.js
  26. 243 185
      component/mine/record.js
  27. 19 14
      component/mineJiuZhen/mineJiuZhen-dialog-form.js
  28. 3 1
      css/cross.css
  29. 4 1
      css/style.min.css
  30. 20 0
      doctor/home/css/index.css
  31. 91 0
      doctor/home/css/mine.css
  32. 41 0
      doctor/home/html/index.html
  33. 44 0
      doctor/home/html/mine.html
  34. 6 0
      doctor/home/js/index.js
  35. 65 0
      doctor/login/css/appeal.css
  36. 50 0
      doctor/login/css/forget.css
  37. 134 0
      doctor/login/css/login.css
  38. 43 0
      doctor/login/html/appeal.html
  39. 43 0
      doctor/login/html/forget.html
  40. 43 0
      doctor/login/html/login.html
  41. 5 0
      doctor/login/js/appeal.js
  42. 5 0
      doctor/login/js/forget.js
  43. 5 0
      doctor/login/js/login.js
  44. BIN
      images/biaoqian01_img.png
  45. BIN
      images/biaoqian02_img.png
  46. BIN
      images/chenggong_icon.png
  47. BIN
      images/doctor_denglu_bg_img.png
  48. BIN
      images/doctor_logo_img.png
  49. BIN
      images/doctor_logo_menhu_img.png
  50. BIN
      images/guanbi_btn.png
  51. BIN
      images/kong_img.png
  52. BIN
      images/menghu_bg_img.png
  53. BIN
      images/mima_icon.png
  54. BIN
      images/queshengye-.png
  55. BIN
      images/shangchuan_icon.png
  56. BIN
      images/shouji_icon.png
  57. BIN
      images/shouye_huizheng_icon.png
  58. BIN
      images/shouye_yixue_icon.png
  59. BIN
      images/shouye_zhuanzhen_icon.png
  60. 1 0
      js/base64.min.js
  61. 0 2
      js/toastr/toastr.min.js
  62. 206 103
      page/appointment/css/appointment.css
  63. 16 12
      page/appointment/html/confirm-info.html
  64. 1 0
      page/appointment/html/select-hospital.html
  65. 10 7
      page/appointment/html/select-time.html
  66. 18 40
      page/appointment/html/success-info.html
  67. 110 1
      page/appointment/js/confirm-info.js
  68. 15 4
      page/appointment/js/select-time.js
  69. 79 21
      page/appointment/js/success-info.js
  70. 27 4
      page/home/css/index.css
  71. 23 21
      page/home/html/index.html
  72. BIN
      page/home/image/icon_logo.png
  73. 130 12
      page/home/js/index.js
  74. 9 0
      page/mine/css/record.css
  75. 4 0
      page/mine/css/security-setting.css
  76. 2 0
      page/mine/html/record.html
  77. 1 0
      page/mine/html/security-setting.html
  78. 4 4
      page/mine/js/personal-info.js
  79. 0 11
      page/mine/js/record.js
  80. 1 1
      page/mineJiuZhen/css/mineJiuZhen.css
  81. 22 20
      page/mineJiuZhen/html/mineJiuZhen.html
  82. 71 52
      page/mineJiuZhen/js/mineJiuZhen.js
  83. 1 1
      plugins/artDialog/6.0.5/api/js/dialog-plus.js

+ 341 - 0
api/doctor-http-request.js

@ -0,0 +1,341 @@
(function($) {
    var publish_version = false;
    var isInner = false; //发布线上后有内外网的配置
    var agentName = "wlyyAgentForDoc";
    var server, userAgent, loginUrl, imserver, socketUrl, imgServer, grant_type, client_id
    var IMEI = localStorage.getItem('WLYY_IMEI') || uuid(16, 16)
    localStorage.setItem('WLYY_IMEI', IMEI)
    $.support.cors = true;
    if(publish_version) { // 生产环境配置
        server = "http://www.xmtyw.cn/wlyytest/"
        imserver = "http://27.155.101.77:3000/api/v2";
        socketUrl = "http://27.155.101.77:3000";
        loginUrl = "../../login/login.html";
        imgServer = "http://www.xmtyw.cn/";
        if(isInner){
            server = "http://10.95.22.10:8011/wlyy/"
            imserver = "http://10.95.22.138:3000/api/v2";
            socketUrl = "http://10.95.22.138:3000";
            loginUrl = "../../login/html/login.html";
            imgServer = "http://10.95.22.10:8011/";
        }
    } else {// 测试环境配置
    	grant_type = "password";
        client_id = "WYo0l73F8e";
    	server = "http://172.19.103.73:10001/";
//      server = "http://172.19.103.88:9092/wlyy/"
        imserver = "http://172.19.103.88:3000/api/v2";
        socketUrl = "http://172.19.103.88:3000";
//      server = "http://192.168.131.133:8080/";
		
//		server = "http://192.168.131.215:10001/"; //冬梅
//      server = "http://192.168.131.127:8060/"; //逸祥
//      server = "http://192.168.131.24:8080/"; //仕杰
//      imserver = "http://192.168.131.24:3000/api/v2"
//      socketUrl = "http://192.168.131.24:3000";
        loginUrl = "../../login/html/login.html";
//      loginUrl = "/PC-prescription/login.html"; //自己本地测试时的路径
        imgServer = "http://172.19.103.54/";
    }
    function httpGet(url, options) {
        //发送ajax请求
        return new Promise(function(resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'GET',
                    dataType: 'JSON',
                    beforeSend: function(request) {                    	
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function(res) {
                        reject(res)
                    },
                    success: function(res) {
                        failCodeHandle(res)
                        resolve(res)
                    }
                }, options));
        })
    }
    function httpPost(url, options) {
        //发送ajax请求
        return new Promise(function(resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'POST',
                    dataType: 'JSON',
                    beforeSend: function(request) {
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function(res) {
                        reject(res)
                    },
                    success: function(res) {
                        failCodeHandle(res)
                        resolve(res)
                    }
                }, options));
        })
    }
    
    //调用福州总部的接口的方法
    function fzHttpPost(url, options){
        return new Promise(function(resolve, reject) {
            var url2 = "basic/api/v1.0/fz/open/api",
                params = {
                    apiUrl: url, //相对接口路径,不用"/"开头
                    paramsJson:  JSON.stringify(options)
                }
            $.ajax(server + url2, {
                type: 'POST',
                data: params,
                dataType: 'JSON',
                error: function(res) {
                    reject(res)
                },
                success: function(res) {
                    failCodeHandle(res)
                    resolve(res)
                }
            });
        })
    }
    function imHttpGet(url, options) {
        //发送ajax请求
        return new Promise(function(resolve, reject) {
            $.ajax(imserver + url,
                $.extend({}, {
                    type: 'GET',
                    dataType: 'JSON',
                    beforeSend: function(request) {
//                      request.setRequestHeader("userAgent", JSON.stringify(userAgent));
                    },
                    error: function(res) {
                        reject(res)
                    },
                    success: function(res) {
                        failCodeHandle(res)
                        resolve(res)
                    }
                }, options));
        })
    }
    function imHttpPost(url, options) {
        //发送ajax请求
        return new Promise(function(resolve, reject) {
            $.ajax(imserver + url,
                $.extend({}, {
                    type: 'POST',
                    dataType: 'JSON',
                    beforeSend: function(request) {
//                      request.setRequestHeader("userAgent", JSON.stringify(userAgent));
                    },
                    error: function(res) {
                        reject(res)
                    },
                    success: function(res) {
                        failCodeHandle(res)
                        resolve(res)
                    }
                }, options));
        })
    }
    function toLoginPage() {
        if(location.href.indexOf('login.html') > -1||location.href.indexOf('register.html') > -1) {
            return;
        }
        setTimeout(function() {
            sessionStorage.setItem("wlyy_relogin", 1)
//          var path = top.location.pathname,
//              rootPath = path.split("/")[1];
            top.location.replace(loginUrl + '?redirect_url=' + encodeURIComponent(top.location.href))
        }, 2000)
    }
    var count = 0;
    function failCodeHandle(res) {
        var tip = "";
        if(res.status == 999) {
            tip = "此账号已在别处登录,请重新登录";
        } else if(res.status == 998) {
            tip = "登录超时,请重新登录";
        } else if(res.status == 997) {
            tip = "此账号未登录,请先登录"
        }
        if(tip) {
            count ++;
            if(count == 1){
//              toastr && toastr.warning(tip)
                toLoginPage()
            }
        }
    }
    function uuid(len, radix) {
        var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
        var uuid = [],
            i;
        radix = radix || chars.length;
        if(len) {
            // Compact form  
            for(i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
        } else {
            // rfc4122, version 4 form  
            var r;
            // rfc4122 requires these characters  
            uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
            uuid[14] = '4';
            // Fill in random data.  At i==19 set the high bits of clock sequence as  
            // per rfc4122, sec. 4.1.5  
            for(i = 0; i < 36; i++) {
                if(!uuid[i]) {
                    r = 0 | Math.random() * 16;
                    uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
                }
            }
        }
        return uuid.join('');
    }
    /*
     * 获取图片路径方法修改
     */
    function getImgUrl(str) {
        if(typeof str != 'string') {
            return "";
        }
        if(str.length == 0) {
            return "";
        } else {
            if(str.indexOf("../") > -1) {
                //访问本地路径
                return str;
            } else if((str.indexOf("http://") > -1) || (str.indexOf("https://") > -1)) {
                return str;
            } else {
                //服务器上的图片路径
                return imgServer + str;
            }
        }
    }
    
    function httpPostContent(url, options) {
        //发送ajax请求
        return new Promise(function (resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'POST',
                    beforeSend: function (request) {                    	
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function (xhr, type, errorThrown) {
                        reject(xhr, type, errorThrown)
                    },
                    success: function (res) {
                        resolve(res)
                    }
                }, options));
        })
    }
    function httpPutContent(url, options) {   //加contentType限制
        //发送ajax请求
        return new Promise(function (resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'PUT',
                    dataType: 'JSON',
                    contentType:'application/json; charset=utf-8',
                    beforeSend: function (request) {                    	
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function (xhr, type, errorThrown) {
                        reject(xhr, type, errorThrown)
                    },
                    success: function (res) {
                        resolve(res)
                    },
                }, options));
        })
    }    
    function httpPut(url, options) {
        //发送ajax请求
        return new Promise(function (resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'PUT',
                    dataType: 'JSON',
                    beforeSend: function (request) {
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function (xhr, type, errorThrown) {
                        reject(xhr, type, errorThrown)
                    },
                    success: function (res) {
                        resolve(res)
                    },
                }, options));
        })
    }
    httpRequest = {
        agentName: agentName,
        server: server,
        imserver: imserver,
        socketUrl: socketUrl,
//      userAgent: userAgent,
        get: httpGet,
        post: httpPost,
        imHttpGet: imHttpGet,
        imHttpPost: imHttpPost,
        fzPost: fzHttpPost,
        getImgUrl: getImgUrl,
        grant_type: grant_type,
        client_id: client_id,
        imgServer:imgServer,
        failCodeHandle: failCodeHandle,
        httpPostContent:httpPostContent,
        httpPutContent:httpPutContent,
        put:httpPut,
        loginIm: function(data){
            return imHttpPost('/users/login', data);
        },
        getDoctorInfo: function() {
            return httpGet('doctor/baseinfo');
        }
    }
    window.httpRequest = httpRequest;
})(jQuery)

+ 28 - 7
api/http-request.js

@ -29,7 +29,7 @@
        socketUrl = "http://172.19.103.88:3000";
//      server = "http://192.168.131.133:8080/";
		
//		server = "http://192.168.131.215:10001"; //冬梅
//		server = "http://192.168.131.215:10001/"; //冬梅
//      server = "http://192.168.131.127:8060/"; //逸祥
//      server = "http://192.168.131.24:8080/"; //仕杰
//      imserver = "http://192.168.131.24:3000/api/v2"
@ -94,7 +94,7 @@
    //调用福州总部的接口的方法
    function fzHttpPost(url, options){
        return new Promise(function(resolve, reject) {
            var url2 = "/basic/api/v1.0/fz/open/api",
            var url2 = "basic/api/v1.0/fz/open/api",
                params = {
                    apiUrl: url, //相对接口路径,不用"/"开头
                    paramsJson:  JSON.stringify(options)
@ -104,11 +104,9 @@
                data: params,
                dataType: 'JSON',
                error: function(res) {
                    console.log("error", res);
                    reject(res)
                },
                success: function(res) {
                    console.log("success", res)
                    failCodeHandle(res)
                    resolve(res)
                }
@ -159,7 +157,7 @@
    }
    function toLoginPage() {
        if(location.href.indexOf('login.html') > -1) {
        if(location.href.indexOf('login.html') > -1||location.href.indexOf('register.html') > -1) {
            return;
        }
        setTimeout(function() {
@ -279,7 +277,29 @@
                        }
                    },
                    error: function (xhr, type, errorThrown) {
                        errTip(xhr.status);
                        reject(xhr, type, errorThrown)
                    },
                    success: function (res) {
                        resolve(res)
                    },
                }, options));
        })
    }    
    function httpPut(url, options) {
        //发送ajax请求
        return new Promise(function (resolve, reject) {
            $.ajax(server + url,
                $.extend({}, {
                    type: 'PUT',
                    dataType: 'JSON',
                    beforeSend: function (request) {
                        var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                        if (oauthInfo) {
                            request.setRequestHeader("accessToken", oauthInfo.accessToken);
                            request.setRequestHeader("token", oauthInfo.accessToken);
                        }
                    },
                    error: function (xhr, type, errorThrown) {
                        reject(xhr, type, errorThrown)
                    },
                    success: function (res) {
@ -288,7 +308,7 @@
                }, options));
        })
    }
    
    httpRequest = {
        agentName: agentName,
@ -308,6 +328,7 @@
        failCodeHandle: failCodeHandle,
        httpPostContent:httpPostContent,
        httpPutContent:httpPutContent,
        put:httpPut,
        loginIm: function(data){
            return imHttpPost('/users/login', data);
        },

+ 14 - 3
api/patient/appointment-api.js

@ -25,7 +25,7 @@
        },
        //获取医生详情
        querySimpleDoctorBySn: function(data){
            return httpRequest.post("baseinfo/DoctorInfoApi/querySimpleDoctorBySn", data);
            return httpRequest.fzPost("baseinfo/DoctorInfoApi/querySimpleDoctorBySn", data);
        },
        //查询排班数据
        queryGhtArrangeWater: function(data){
@ -37,7 +37,7 @@
        },
        //查询医院挂号表单项
        getInputFormControls: function(data){
            return httpRequest.post("gh/GhOpen/GetInputFormControls", data);
            return httpRequest.fzPost("gh/GhOpen/GetInputFormControls", data);
        },
        //创建挂号单
        createRegOrderForOpen: function(data){
@ -59,7 +59,18 @@
        queryRegOrderInfos: function(data){
            return httpRequest.fzPost("TradeMgmt/Open/queryRegOrderInfos", data);
        },
        //
        //新增挂号单
        createRegistration: function(data){
            return httpRequest.post("basic/api/v1.0/appointment/registration/save", {data: data})
        },
        //修改挂号单信息
        updateRegistrationOrder: function(data){
            return httpRequest.post("basic/api/v1.0/appointment/registration/update", {data: data});
        },
        //修改挂号单状态
        updateOrderState: function(data){
            return httpRequest.post("basic/api/v1.0/appointment/registration/updateState", {data: data});
        }
    } 
    exports.appointmentAPI = appointmentAPI;

+ 17 - 2
api/patient/jiuzhen-api.js

@ -2,9 +2,24 @@
	var jiuzhenAPI = {
		// 我的就诊
		getRemind: function(data) {
			return httpRequest.get("/basic/api/v1.0/MessageRemindByType",{data: data})
			return httpRequest.get("basic/api/v1.0/MessageRemindByNotifie", {
				data: data
			})
		}, //查询挂号单列表
		queryRegOrderInfos: function(data) {
			return httpRequest.get("basic/api/v1.0/appointment/registration/search", {
				data: data
			});
		}, //查询挂号单详情
		getRegOrderInfo: function(data) {
			return httpRequest.get("basic/api/v1.0/appointment/registration/" + data);
		},
		cancelOrder: function(data) {
			return httpRequest.get("basic/api/v1.0/appointment/registration/updateState", {
				data: data
			});
		},
	}
	
	exports.jiuzhenAPI = jiuzhenAPI;
})(window)

+ 12 - 12
api/patient/mine-api.js

@ -3,51 +3,51 @@
	var mineAPI = {
		// 修改密码
		passwordReset: function(data) {
			return httpRequest.put("/basic/api/v1.0/users/admin/"+data.userId+"/password_reset",{data: data})
			return httpRequest.put("basic/api/v1.0/users/admin/"+data.userId+"/password_reset",{data: data})
		},
		// 修改个人资料
		userInforUpdate: function(data) {
			return httpRequest.httpPutContent("/basic/api/v1.0/users",{data: JSON.stringify(data)})
			return httpRequest.httpPutContent("basic/api/v1.0/users",{data: JSON.stringify(data)})
		},
		checkPhone:function(data){
			return httpRequest.get("/basic/api/v1.0/user/telephone/existence",{data:{telephone:data} })
			return httpRequest.get("basic/api/v1.0/user/telephone/existence",{data:{telephone:data} })
		},
		//校验原密码
		checkOldPass:function(data){
			var userInfo = JSON.parse(plus.storage.getItem("userAgent"));
			var userInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			data['user_name'] = userInfo.loginCode
			return httpRequest.get("/basic/api/v1.0/users/verification",{data:data})
			return httpRequest.get("basic/api/v1.0/users/verification",{data:data})
		},
		// 新增意见
		adviceAdd: function(data) {
			setId(data);
			return httpRequest.postContent("/basic/api/v1.0/portalFeedback",{data: JSON.stringify(data)})
			return httpRequest.postContent("basic/api/v1.0/portalFeedback",{data: JSON.stringify(data)})
		},
		//获取行业列表
		workListGet:function(data){
			return httpRequest.get("/basic/api/v1.0/dictionaries/entries",{data: data})
			return httpRequest.get("basic/api/v1.0/dictionaries/entries",{data: data})
		},
		// 获取意见列表
		adviceGet: function(data) {
			return httpRequest.get("/basic/api/v1.0/portalFeedback/",{data:data})
			return httpRequest.get("basic/api/v1.0/portalFeedback/",{data:data})
		},
		// 根据ID获取反馈意见
		adviceDetailGet: function(data) {
			return httpRequest.get("/basic/api/v1.0/portalFeedback/admin/",{data:data})
			return httpRequest.get("basic/api/v1.0/portalFeedback/admin/",{data:data})
		},
		//获取地址列表
		addressGet: function (pid) {
			return httpRequest.get("/basic/api/v1.0/geography_entries/pid/"+pid)
			return httpRequest.get("basic/api/v1.0/geography_entries/pid/"+pid)
		},
	}
	//给对象设置asstoken
	function setAccessToken(data){   
		var loginInfo = JSON.parse(plus.storage.getItem("oauthInfo"));
		var loginInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
		data.accessToken = loginInfo.accessToken;
	}
	//给对象设置userId
	function setId(data){
		var userInfo = JSON.parse(plus.storage.getItem("userAgent"));
		var userInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
		data.userId = userInfo.id;
	}
	exports.mineAPI = mineAPI;

+ 350 - 94
component/appointment/date-source.js

@ -1,119 +1,259 @@
(function(){
    Vue.component('date-scource', {
        template: `<section class="mt30" name="date-section">
                    <p class="c-f18">就诊日期</p>
                    <div class="div-table">
                        <div class="table-row">
                            <div class="table-cell arrow-cell"><i class="fa fa-caret-left c-f20 c-909090"></i></div>
                            <div v-for="d in planDate" class="table-cell">{{d.date}} {{d.day}}</div>
                            <div class="table-cell arrow-cell active"><i class="fa fa-caret-right c-f20 c-909090"></i></div>
                        </div>
                        <div class="table-row">
                            <div class="table-cell c-f16 bgc-ebf4f3">上午</div>
                            <div class="table-cell active">可预约<br/><span class="yy-tag active">预约</span></div>
                            <div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-fea7a8">停诊<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-f4b87f">无安排<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell"></div>
                        </div>
                        <div class="table-row">
                            <div class="table-cell c-f16 bgc-ebf4f3">下午</div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
                            <div class="table-cell">可预约<br/><span class="yy-tag active">预约</span></div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-fea7a8">停诊<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-f4b87f">无安排<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell c-909090">已满<br/><span class="yy-tag">预约</span></div>
                            <div class="table-cell"></div>
                        </div>
                    </div>
                    <p class="c-f18 mt30">就诊时间</p>
                    <div class="clearfix">
                        <div class="c-20 fl mb20">
                            <div class="source-tag active"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                        <div class="c-20 fl mb20">
                            <div class="source-tag"><span>第1号</span><span>07:30</span></div>
                        </div>
                    </div>
                    <div class="mt30 c-t-center mb50">
                        <button class="btn btn-primary">确认预约</button>
                    </div>
                </section>`,
        props: [],
        template: '<section class="mt30" name="date-section">\
                    <p class="c-f18">就诊日期</p>\
                    <div class="div-table">\
                        <div class="table-row">\
                            <div class="table-cell arrow-cell" :class="{\'active\': curPage!=1}" @click="prePage"><i class="fa fa-caret-left c-f20 c-909090"></i></div>\
                            <div v-for="(d, index) in planDate" v-show="showCol(index)" class="table-cell">{{d.dStr}} {{d.day}}</div>\
                            <div class="table-cell arrow-cell" :class="{\'active\': curPage != totalPage}" @click="nextPage"><i class="fa fa-caret-right c-f20 c-909090"></i></div>\
                        </div>\
                        <div class="table-row">\
                            <div class="table-cell arrow-cell c-f16 bgc-ebf4f3">上午</div>\
                            <div class="table-cell" v-for="(item, index) in amData" v-show="showCol(index)" :class="{\'active\': item.arrangeID == arrangeid && arrangeid!=undefined}" @click="getNumbers(item.arrangeID)">\
                                <span :class="getColor(item.arrangeStatus, item.numberStatus)">{{getStatusName(item.arrangeStatus, item.numberStatus)}}</span><br/>\
                                <span class="yy-tag" :class="{\'active\': item.arrangeStatus==1 && item.numberStatus==1}">预约</span>\
                            </div>\
                            <div class="table-cell arrow-cell"></div>\
                        </div>\
                        <div class="table-row">\
                            <div class="table-cell arrow-cell c-f16 bgc-ebf4f3">下午</div>\
                            <div class="table-cell" v-for="(item, index) in pmData" v-show="showCol(index)" :class="{\'active\': item.arrangeID == arrangeid && arrangeid!=undefined}" @click="getNumbers(item.arrangeID)">\
                                <span :class="getColor(item.arrangeStatus, item.numberStatus)">{{getStatusName(item.arrangeStatus, item.numberStatus)}}</span><br/>\
                                <span class="yy-tag" :class="{\'active\': item.arrangeStatus==1 && item.numberStatus==1}">预约</span>\
                            </div>\
                            <div class="table-cell arrow-cell"></div>\
                        </div>\
                    </div>\
                    <p class="c-f18 mt30">就诊时间</p>\
                    <div class="clearfix">\
                        <div v-for="it in numberSource" class="c-20 fl mb20">\
                            <div class="source-tag c-t-center" :class="{\'active\': registerNumber==it.numberSN}" @click="chooseNumber(it.numberSN, it.modeId)">\
                                {{it.commendTime || it.commendScope}}\
                            </div>\
                        </div>\
                    </div>\
                    <div class="mt30 c-t-center mb50">\
                        <button class="btn btn-primary" @click="submitForm">确认预约</button>\
                    </div>\
                </section>',
        props: ['doctorsn', 'arrangeid', 'registerdate'],
        data: function(){
            return {
                planDate: [],
                selectedDate: 0,
                amData: [],
                pmData: []
                pmData: [],
                numberSource: [],
                registerNumber: '',
                modeId: '', //号源池模式:1:实时号源池, 0:非实时号源池
                baseInfo: {}, //记录医生医院等基础信息
                specialPrice: 0, //挂号费(单位:分),
                curPage: 1, //当前页
                page: 1 , //日期分页,当有号源的日期数超过了7天,则需要分页展示
                totalPage: 5,
                pageSize: 31
            }
        },
        mounted: function(){
            var now = new Date(),
                d = new Date();
            //默认只有7天的号源
            for(i=1; i<8; i++){
                var nDate = now.getDate();
                d.setDate(nDate + i);
                var obj = {
                    date: d.format("MM月dd日"),
                    day: getWeekDay(d.getDay())
            getDoctorInfo(this);
            getNumbers(this.arrangeid, this);
        },
        methods: {
            getStatusName: function(arrangeStatus, numberStatus){
                return getStatusName(arrangeStatus, numberStatus);
            },
            getColor: function(arrangeStatus, numberStatus){
                return getStatusColor(arrangeStatus, numberStatus);
            },
            getNumbers: function(code, specialPrice){
                if(code && this.arrangeid != code){
                    getNumbers(code, this);
                    this.arrangeid = code;
                }
            },
            showCol: function(index){
                //默认分页一页展示7条数据,然后显示一个月的数据31天
                switch(this.curPage){
                    case 1:
                        return index < 7 ? true: false;
                        break;
                    case 2:
                        return index >=7 && index<14 ? true: false;
                        break;
                    case 3:
                        return index >=14 && index<21 ? true: false;
                        break;
                    case 4:
                        return index >=21 && index<28? true: false;
                        break;
                    case 5:
                        return index>=28 ? true : false;
                        break;
                    default:
                        return true;
                        break;
                }
            },
            chooseNumber: function(id, modeId){
                this.registerNumber = id;
                this.modeId = modeId;
            },
            prePage: function(){
                if(this.curPage > 1){
                    this.curPage --;
                }
            },
            nextPage: function(){
                if(this.curPage < this.totalPage){
                    this.curPage ++;
                }
            },
            submitForm: function(){
                if(!this.arrangeid){
                    dialog({
                        content: "请选择就诊日期",
                        contentType:'tipsbox',
                        skin:'bk-popup',
                        quickClose: true
                    }).showModal();
                    return false;
                }
                if(!this.registerNumber){
                    dialog({
                        content: "请选择就诊时间",
                        contentType:'tipsbox',
                        skin:'bk-popup',
                        quickClose: true
                    }).showModal();
                    return false;
                }
                this.planDate.push(obj);
            }
            
            //获取每天上午和下午的数据
            for(i=0; i<7; i++){
                var d = this.planDate[i].date;
                
                var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
                if(!oauthInfo){
                    //要求登录
                    dialog({
                        title: "登录提醒",
                        skin: "my-dialog",
                        content: "需要登录才可以预约",
                        okValue: "跳转去登录",
                        ok: function(){
                            window.location.href = "../../login/html/login.html";
                        },
                        cancelValue: "我知道了",
                        cancel: function(){}
                    }).showModal();
                    return false;
                }
                
                submitForm(this);
            }
        }
    });
    
    //获取医生基本信息
    function getDoctorInfo(vm){
        var params = {
            doctorSn: vm.doctorsn
        }
        appointmentAPI.querySimpleDoctorBySn(params).then(function(res){
            if(res.successFlg){
                if(res.obj.Code == "10000"){
                    //触发父类获取医生信息
                    EventBus.$emit("get-doctor-info", {docInfo: res.obj});
                    getArrangeDate(vm, res.obj)
                    vm.baseInfo = res.obj;
                }else{
                    showErrorMessage(res.obj.Message);
                }
            }else{
                showErrorMessage(res.errorMsg);
            }
        })
    }
    
    //获取医生排班信息
    function getArrangeDate(vm){
    function getArrangeDate(vm, docInfo){
        var params = {
            hospitalId: '',
            hosDeptId: '',
            doctorSn: '', //科室和医生必选一
            hospitalId: docInfo.hospitalId, //'2h+klDvGn+Q=',
            hosDeptId: docInfo.hosDeptId, //'vp0N0lqGZgA=',
            doctorSn: vm.doctorsn, //'1jGMsR3q3nZawh/iQIuzYg==', //科室和医生必选一
            registerDate: '', //就诊日期 yyyy-MM-dd
            pageIndex: vm.page,
            pageSize: vm.pageSize
        };
        appointmentAPI.queryGhtArrangeWater(params).then(function(res){
            
            if(res.successFlg){
                if(res.obj.Code == "10000"){
                    var list = res.obj.Result;
                    //先groupby结果,判断有几天号源
                    var dateGroup = _.groupBy(list, 'registerDate');
                    //展示整个月的数据
                    var now = new Date();
                    var planDate = [],
                        selectedIndex;
                    for(i=0; i<31; i++){
                        var d = new Date();
                        d.setDate(now.getDate()+i);
                        var dStr = d.format("yyyy-MM-dd");
                        planDate.push({
                            date: dStr,
                            dStr: d.format("MM/dd"),
                            day: getWeekDay(d.getDay())
                        }); //日期记录
                        //记录选中的日期
                        if(vm.registerdate == dStr){
                            selectedIndex = i;
                        }
                        var objArr = dateGroup[dStr];
                        if(objArr && objArr.length > 0){
                            if(objArr.length == 1){
                                var obj = objArr[0];
                                if(obj.timeId == 1){ //1 上午 2下午 3 晚上
                                    vm.amData.push(obj);
                                    vm.pmData.push({
                                        arrangeID: '', //没有排号
                                        arrangeStatus: 0,
                                    });
                                }else{
                                    vm.pmData.push(obj);
                                    vm.amData.push({
                                        arrangeID: '', //没有排号
                                        arrangeStatus: 0,
                                    });
                                }
                            }else if(objArr.length == 2){
                                for(j=0; j<objArr.length; j++){
                                    var obj = objArr[j];
                                    if(obj.timeId == 1){ //1 上午 2下午 3 晚上
                                        vm.amData.push(obj);
                                    }
                                    if(obj.timeId == 2 || obj.timeId == 3){
                                        vm.pmData.push(obj);
                                    }
                                }
                            }
                        }else{
                            vm.amData.push({
                                arrangeID: '', //没有排号
                                arrangeStatus: 0,
                            });
                            vm.pmData.push({
                                arrangeID: '', //没有排号
                                arrangeStatus: 0,
                            });
                        }
                    }
                    vm.planDate = planDate;
                    if(selectedIndex || selectedIndex == 0){
                        vm.curPage = parseInt(selectedIndex / 7) + 1;
                    }
                }else{
                    showErrorMessage(res.obj.Message);
                }
            }else{
                showErrorMessage(res.errorMsg);
            }
        });
    }
    
@ -123,10 +263,71 @@
            arrangeID: code
        };
        appointmentAPI.queryNumbers(params).then(function(res){
            
            if(res.successFlg){
                if(res.obj.Code == "10000"){
                    vm.numberSource = res.obj.Result;
                }else{
                    showErrorMessage(res.Message);
                }
            }else{
                showErrorMessage(res.errorMsg);
            }
        });
    }
    
    //将挂号信息提交给下一个页面去确认
    function submitForm(vm){
        var dateInfo = {};
        var arr = _.where(vm.amData, {arrangeID: parseInt(vm.arrangeid)});
        if(arr.length == 0){
            arr = _.where(vm.pmData, {arrangeID: parseInt(vm.arrangeid)});
        }
        dateInfo = arr[0];
        var numberInfo = _.findWhere(vm.numberSource, {numberSN: vm.registerNumber});
        var patientInfo = JSON.parse(window.sessionStorage.getItem("oauthInfo"));
        
        //请求接口提交挂号单(我们自己系统)
        var params = {
            patientName: patientInfo.realName,
            userId: patientInfo.id,
            cardType: 1, //默认身份证
            cardNo: patientInfo.idCardNo,
            phoneNo: patientInfo.telephone,
            hospitalName: vm.baseInfo.hosName,
            hospitalId: vm.baseInfo.hospitalId,
            deptName: vm.baseInfo.deptName,
            deptId: vm.baseInfo.hosDeptId,
            doctorName: vm.baseInfo.doctorName,
            doctorId: vm.baseInfo.doctorSn,
            lczcName: vm.baseInfo.lczcName,
            photoUri: vm.baseInfo.photoUri,
            registerDate: dateInfo.registerDate,
            timeId: dateInfo.timeId,
            commendTime: numberInfo.commendTime || numberInfo.commendScope,
            serialNo: numberInfo.serialNo,
            invalidDate: dateInfo.invalidDate,
            originType: 1, //来源类型,1:PC,2:APP,
            registerType: 1 //挂号方式,1:预约挂号,2:现场挂号 
        };
        
        appointmentAPI.createRegistration({entityJson: JSON.stringify(params)}).then(function(res){
            if(res.successFlg){
                var id = res.obj.id;
                //存储这些数据传递去确认页面
                window.localStorage.setItem("dateInfo", JSON.stringify(dateInfo));
                window.localStorage.setItem("numberInfo", JSON.stringify(numberInfo));
                window.localStorage.setItem("baseInfo", JSON.stringify(vm.baseInfo));
        
                //跳转去确认信息页面
                window.location.href = "confirm-info.html?id="+id;
            }else{
                showErrorMessage(res.errorMsg);
            }
        })
        
        
    }
    
    function getWeekDay(val){
        switch(val){
            case 0:
@ -152,4 +353,59 @@
                break;
        }
    }
    
    function getStatusName(arrangeStatus, numberStatus){
        //arrangeStatus: 1正常 2停诊 3已取消 4暂停预约,自定义: 5无安排
        //numberStatus: 1可约 2已约满或无号源
        switch(arrangeStatus){
            case 1:
                if(numberStatus==1){
                    return "可预约";
                }else{
                    return "已满"
                }
                break;
            case 2:
                return "停诊";
                break;
            case 3:
                return "已取消";
                break;
            case 4:
                return "暂停预约";
                break;
            default:
                return "无安排";
                break;
        }
    }
    
    function getStatusColor(arrangeStatus, numberStatus){
        switch(arrangeStatus){
            case 1:
                if(numberStatus==1){
                    return "";
                }else{
                    return "c-909090"
                }
                break;
            case 2:
                return "c-ffb5b6";
                break;
            case 3:
            case 4:
                return "c-909090";
                break;
            default:
                return "c-f3be88";
                break;
        }
    }
    
    function showErrorMessage(content){
        layer.msg(content, {
            icon: 2,
            time: 3000
        });
    }
})()

+ 10 - 4
component/appointment/doctor-list.js

@ -19,9 +19,9 @@
								</p>\
							</div>\
							<div class="ui-col-1 div-doctor-section" v-for="(arrange, aindex) in arrangeList" v-if="index==aindex">\
								<div class="div-left-btn c-hide" @click="preClick"></div>\
								<div class="div-left-btn c-hide" @click="preClick" v-show="leftBtn"></div>\
								<ul class="doctor-ul">\
									<li v-for="(arrg, arrIndex) in arrange">\
									<li v-for="(arrg, arrIndex) in arrange" @click="goToDoctorPage(doc.doctorSn, arrg.arrangeID)">\
										<div class="div-doctor-item" :class="getColorClass(arrg.numberStatus,arrg.arrangeStatus)">\
											<div class="mt5">{{arrg.registerDate}}</div>\
											<div class="mt5">{{arrg.timeName}}</div>\
@ -32,7 +32,7 @@
										</div>\
									</li>\
								</ul>\
								<div class="div-right-active-btn" @click="nextClick" v-if="arrangeList[aindex].length>4"></div>\
								<div class="div-right-active-btn" v-show="rightBtn" @click="nextClick" v-if="arrangeList[aindex].length>4"></div>\
							</div>\
						</div>\
						<div id="page" class="page_div fr"></div>\
@ -48,7 +48,9 @@
				totalPage: 0,
				hosDeptId: "",
				doctorList: [],
				arrangeList:[]
				arrangeList:[],
				leftBtn:false,
				rightBtn:false,
			}
		},
		mounted: function() {
@ -142,6 +144,10 @@
			},
			nextClick:function(){
				$(event.target).prev().find("li:lt(4)").hide();
			},
			//跳转去医生号源页面
			goToDoctorPage: function(doctorSn, arrangeID){
			    window.location.href = "select-time.html?doctorSn="+Base64.encode(doctorSn)+"&arrangeID="+arrangeID;
			}
		}
	});

+ 2 - 1
component/appointment/hospital-source.js

@ -36,7 +36,8 @@
		},
		mounted: function() {
			var vm = this;
			getHospitalList(vm);
//			getHospitalList(vm);
            vm.getHospitalList();
		},
		methods: {
			hostipalClick: function(data) {

+ 50 - 50
component/common/appointment-step.js

@ -1,55 +1,55 @@
(function() {
	Vue.component('appointment-step', {
		template: `<div class="div-step-header">
				<div class="div-head-img">
					<div class="c-f16 c-fff pt10 pl20">预约步骤</div>
				</div>
				<div class="mt80 div-step-content">
					<div class="ml14">
						<div class="div-step-item" :class="{\'active\': isFirstStep}">
							<span class="c-f16" v-show="!isFirstStep">1</span>
							<div class="div-active-item" v-show="isFirstStep"></div>
						</div>
						<div class="div-step-line"></div>
						<div class="c-f16 div-step-item" :class="{\'active\': isSecondStep}">
							<span class="c-f16" v-show="!isSecondStep">2</span>
							<div class="div-active-item" v-show="isSecondStep"></div>
						</div>
						<div class="div-step-line"></div>
						<div class="c-f16 div-step-item" :class="{\'active\': isThirdStep}">
							<span class="c-f16" v-show="!isThirdStep">3</span>
							<div class="div-active-item" v-show="isThirdStep"></div>
						</div>
						<div class="div-step-line"></div>
						<div class="c-f16 div-step-item" :class="{\'active\': isFourStep}">
							<span class="c-f16" v-show="!isFourStep">4</span>
							<div class="div-active-item" v-show="isFourStep"></div>
						</div>
					</div>
					<div class="ml20">
						<div>
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isFirstStep}">选择医院</div>
							<div class="c-f14 c-909090 ">选择您满意的医院</div>
						</div>
						<div class="mt40">
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isSecondStep}">选择医生</div>
							<div class="c-f14 c-909090">选择适合您的医生</div>
						</div>
						<div class="mt40">
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isThirdStep}">选择就诊时间</div>
							<div class="c-f14 c-909090">选择您希望的就诊时间</div>
						</div>
						<div class="mt40">
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isFourStep}">确认预约</div>
							<div class="c-f14 c-909090">核对个人信息,确认预约</div>
						</div>
					</div>
				</div>
				<div class="div-step-bottom">
					<img src="../../../images/icon_tishi2.png" width="19" height="19" />
					<div class="c-f14 c-ff8787 ml10">预约完成后,请凭预约信息到<br/>医院救治。</div>
				</div>
			</div>`,
		template: '<div class="div-step-header">\
				<div class="div-head-img">\
					<div class="c-f16 c-fff pt10 pl20">预约步骤</div>\
				</div>\
				<div class="mt80 div-step-content">\
					<div class="ml14">\
						<div class="div-step-item" :class="{\'active\': isFirstStep}">\
							<span class="c-f16" v-show="!isFirstStep">1</span>\
							<div class="div-active-item" v-show="isFirstStep"></div>\
						</div>\
						<div class="div-step-line"></div>\
						<div class="c-f16 div-step-item" :class="{\'active\': isSecondStep}">\
							<span class="c-f16" v-show="!isSecondStep">2</span>\
							<div class="div-active-item" v-show="isSecondStep"></div>\
						</div>\
						<div class="div-step-line"></div>\
						<div class="c-f16 div-step-item" :class="{\'active\': isThirdStep}">\
							<span class="c-f16" v-show="!isThirdStep">3</span>\
							<div class="div-active-item" v-show="isThirdStep"></div>\
						</div>\
						<div class="div-step-line"></div>\
						<div class="c-f16 div-step-item" :class="{\'active\': isFourStep}">\
							<span class="c-f16" v-show="!isFourStep">4</span>\
							<div class="div-active-item" v-show="isFourStep"></div>\
						</div>\
					</div>\
					<div class="ml20">\
						<div>\
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isFirstStep}">选择医院</div>\
							<div class="c-f14 c-909090 ">选择您满意的医院</div>\
						</div>\
						<div class="mt40">\
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isSecondStep}">选择医生</div>\
							<div class="c-f14 c-909090">选择适合您的医生</div>\
						</div>\
						<div class="mt40">\
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isThirdStep}">选择就诊时间</div>\
							<div class="c-f14 c-909090">选择您希望的就诊时间</div>\
						</div>\
						<div class="mt40">\
							<div class="c-f16 c-323232" :class="{\'div-content-active\': isFourStep}">确认预约</div>\
							<div class="c-f14 c-909090">核对个人信息,确认预约</div>\
						</div>\
					</div>\
				</div>\
				<div class="div-step-bottom">\
					<img src="../../../images/icon_tishi2.png" width="19" height="19" />\
					<div class="c-f14 c-ff8787 ml10">预约完成后,请凭预约信息到<br/>医院救治。</div>\
				</div>\
			</div>',
		props: [],
		data: function() {
			return {

+ 64 - 0
component/common/doctor-header.js

@ -0,0 +1,64 @@
(function(){
    Vue.component('doctor-header', {
        template: `<div class="bgc-fff c-border-b">
            <div class="container">
                <div class="row">
                    <div class="clearfix ui-grid-middle">
                        <div class="fl ui-col-0">
                            <img src="../../../images/doctor_logo_menhu_img.png">
                        </div>
                        <div class="fl ml20">
	                        <div class="nav">
	                            <a v-for="(item, index) in navList" class="nav-item" :class="{'active': selectedNav==index}" @click="chooseNav(index)">{{item.text}}</a>
	                        </div>
	                    </div>
                    </div>
                </div>
            </div>
        </div>`,
        props: [],
        data: function(){
            return {
                navList: [{
                	id: 0,
                    text: "首页",
                    link: 'index.html'
                },{
                	id: 1,
                    text: "远程医学教育",
                    link: ''
                },{
                	id: 2,
                    text: "远程会诊服务",
                    link: ''
                },{
                	id: 3,
                    text: "双向转诊服务",
                    link: ''
                }],
                selectedNav: null
            }
        },
        mounted: function() {
        	//判断当前页面是第几个菜单页
            var selectedNav = window.sessionStorage.getItem("selectedDocNav") ? window.sessionStorage.getItem("selectedDocNav") : '0';
            this.selectedNav = selectedNav;
        },
        methods: {
            login: function(){
                //跳转到登录页面
            },
            logout: function(){
                
            },
            download: function(){
                //下载APP
            },
            chooseNav: function(val){
            	window.sessionStorage.setItem("selectedDocNav", val);
                this.selectedNav = val;
                window.location.href = this.navList[val].link
            }
        }
    })
})()

+ 49 - 0
component/common/doctor-top.js

@ -0,0 +1,49 @@
(function(){
    Vue.component('doctor-top', {
        template: `<div class="c-border-b bgc-f5f5f5 c-666">
                <div class="container">
                    <div class="clearfix row ptb10">
                        <div class="fr col-md-6 h24 c-t-right" v-if="!islogin">
                        	<span class="plr10 btn" @click="login">登录</span>
                            <span class="plr10 lh24 c-border-l span-hover" @click="download">下载APP</span>
                        </div>
                        <div class="fr col-md-6 h24 c-t-right" v-if="islogin">
                        	<span class="plr10 lh24 span-hover" :class="{'span-active': selectedNav == -1}" @click="mine" @click>个人中心</span>
                            <span class="plr10 lh24 c-border-l span-hover" @click="download">下载APP</span>
                            <span class="plr10 lh24 c-border-l span-hover" @click="logout">安全退出</span>
                        </div>
                    </div>
                </div>
            </div>`,
        props: [],
        data: function(){
            return {
            	islogin: true,
            	selectedNav: null
            }
        },
        mounted: function() {
        	var selectedNav = window.sessionStorage.getItem("selectedDocNav")
        	if(selectedNav) {
        		this.selectedNav = selectedNav
        	}
        },
        methods: {
            login: function(){
                //跳转到登录页面
                window.location.href = '../../login/html/login.html'
            },
            mine: function() {
            	window.sessionStorage.setItem("selectedDocNav", -1);
            	window.location.href = 'mine.html'
            },
            logout: function(){
            	window.sessionStorage.removeItem("selectedDocNav")
                this.login()
            },
            download: function(){
                //下载APP
            }
        }
    })
})()

+ 18 - 18
component/common/footer.js

@ -1,23 +1,23 @@
(function(){
    Vue.component('page-footer', {
        template: `<div class="pt30" style="height:170px; background-color: #edeef1">
                    <div class="c-909090 ui-grid ui-grid-middle" style="margin: 0 auto; width: 750px;">
                        <div class="ui-col-0 mr20">
                            <img src="../../../images/qr_code.png" width="105">
                        </div>
                        <div class="ui-col-1">
                            <div>
                                <span class="mr100">主办方:上饶市卫生与计划生育委员会</span>
                                <span>技术支持:健康之路(中国)信息技术有限公司</span>
                            </div>
                            <div class="mt20">备案号登记号:赣ICP:98273877号-1</div>
                            <div class="c-909090 mt20">
                                <span class="mr30">版权所有:上饶市卫生信息中心 </span>
                                <span>Copyright ©2009-2017 All Rights Reserved </span>
                            </div>
                        </div>
                    </div>
            </div>`,
        template: '<div class="pt30" style="height:170px; background-color: #edeef1">\
                    <div class="c-909090 ui-grid ui-grid-middle" style="margin: 0 auto; width: 750px;">\
                        <div class="ui-col-0 mr20">\
                            <img src="../../../images/qr_code.png" width="105">\
                        </div>\
                        <div class="ui-col-1">\
                            <div>\
                                <span class="mr100">主办方:上饶市卫生与计划生育委员会</span>\
                                <span>技术支持:健康之路(中国)信息技术有限公司</span>\
                            </div>\
                            <div class="mt20">备案号登记号:赣ICP:98273877号-1</div>\
                            <div class="c-909090 mt20">\
                                <span class="mr30">版权所有:上饶市卫生信息中心 </span>\
                                <span>Copyright ©2009-2017 All Rights Reserved </span>\
                            </div>\
                        </div>\
                    </div>\
            </div>',
        props: [],
        data: function(){
            return {

+ 89 - 45
component/common/header.js

@ -1,71 +1,112 @@
(function(){
    Vue.component('page-header', {
        template: `<div class="bgc-fff c-border-b">
            <div class="bgc-f2f2f2 c-666">
                <div class="container">
                    <div class="row ptb10">
                        <div class="col-md-6">
                            <div class="bgc-fff pl10 pr20" style="width:360px; height:30px; line-height:30px; border-radius: 15px;">
                                <img src="../../../images/icon_laba.png" width="20" style="vertical-align: super;" class="mr5">
                                <span class="c-nowrap c-909090" style="display: inline-block; width: calc(100% - 30px)">[满意度调查]您于2018年2月14日10点30分预约了上饶市第一医院眼科的门诊</span>
                            </div>
                        </div>
                        <div class="col-md-6 c-t-right c-909090" style="line-height: 30px;">
                            <span class="plr20 c-border-r " @click="login">{{loginText}}</span>
                            <span class="plr20 c-border-r " @click="download">下载APP</span>
                            <span class="plr20 " @click="logout">安全退出</span>
                        </div>
                    </div>
                </div>
            </div>
            <div class="container c-birder-b">
                <div class="ui-grid ui-grid-middle">
                    <div class="ui-col-0 ptb30 pr60">
                        <img src="../../../images/LOGO.png">
                    </div>
                    <div class="ui-col-1 plr15">
                        <span v-for="(item, index) in navList" class="nav-item" :class="{'active': index==selectedNav}" @click="chooseNav(index, item.link)">{{item.text}}</span>
                    </div>
                    <div class="ui-col-0 ptb10">
                        <div class="input-group search-box">
                            <input type="text" class="form-control search-input" v-model="searchText" placeholder="请输入医院、医生姓名">
                            <span class="input-group-btn">
                                <img src="../../../images/icon_sousuo.png" width="23">
                            </span>
                        </div>
                    </div>
                </div>
            </div>
        </div>`,
        template: '<div class="bgc-fff c-border-b">\
            <div class="bgc-f2f2f2 c-666">\
                <div class="container">\
                    <div class="row ptb10">\
                        <div class="col-md-6">\
                            <div class="bgc-fff pl10 pr20" style="width:360px; height:30px; line-height:30px; border-radius: 15px;">\
                                <img src="../../../images/icon_laba.png" width="20" style="vertical-align: super;" class="mr5">\
                                <span class="c-nowrap c-909090" style="display: inline-block; width: calc(100% - 30px)">[满意度调查]您于2018年2月14日10点30分预约了上饶市第一医院眼科的门诊</span>\
                            </div>\
                        </div>\
                        <div class="col-md-6 c-t-right c-909090" style="line-height: 30px;">\
                            <span v-show="!isLogin" class="plr20 c-border-r">您好,<a :href="loginUrl" class="c-0ad8c8">请登录</a></span>\
                            <a v-show="isLogin" class="plr20 c-border-r" @click="goToCenter">\
                                <img :src="loginInfo.imgRemotePath" width="30" height="30" class="c-images-cycle mr5">\
                                <span class="c-0ad8c8">个人中心</span>\
                            </a>\
                            <span class="plr20 c-border-r" @click="download">下载APP</span>\
                            <a class="plr20 c-909090" @click="logout">安全退出</a>\
                        </div>\
                    </div>\
                </div>\
            </div>\
            <div class="container c-birder-b">\
                <div class="ui-grid ui-grid-middle">\
                    <div class="ui-col-0 ptb30 pr60">\
                        <img src="../../../images/LOGO.png">\
                    </div>\
                    <div class="ui-col-0 pl15">\
                        <span v-for="(item, index) in navList" class="nav-item" :class="{\'active\': index==selectedNav}" @click="chooseNav(index, item.link)">{{item.text}}</span>\
                    </div>\
                    <div class="ui-col-1 ptb10">\
                        <div class="input-group search-box">\
                            <input type="text" class="form-control search-input" v-model="searchText" placeholder="请输入医院、医生姓名">\
                            <span class="input-group-btn">\
                                <img src="../../../images/icon_sousuo.png" width="23">\
                            </span>\
                        </div>\
                    </div>\
                </div>\
            </div>\
        </div>',
        props: [],
        data: function(){
            return {
                loginText: '您好,请登录',
                isLogin: false,
                searchText: '',
                navList: [{
                    id: 0,
                    text: "首页",
                    link: ''
                },
                {
                    link: '../../home/html/index.html',
                    pathname: "home/html/index.html"
                },{
                    id: 1,
                    text: "预约挂号",
                    link: ''
                    link: '../../appointment/html/home.html',
                    pathname: "appointment/html/home.html"
                },{
                    id: 2,
                    text: "健康档案",
                    link: ''
                    link: '../../',
                    pathname: "health/html/"
                },{
                    id: 3,
                    text: "我的就诊",
                    link: ''
                    link: '../../mineJiuZhen/html/mineJiuZhen.html',
                    pathname: "mineJiuZhen/html/mineJiuZhen.html"
                }],
                selectedNav: 0
                selectedNav: 0,
                loginInfo: {},
                loginUrl: "../../login/html/login.html",
                userCenterUrl: ""
            }
        },
        mounted: function(){
            //判断页面中是否存在登录信息
            var oauthInfo = window.sessionStorage.getItem("oauthInfo");
            if(oauthInfo){
                this.isLogin = true;
                oauthInfo = JSON.parse(oauthInfo);
                this.loginInfo = oauthInfo;
            }
            
            //判断当前页面是第几个菜单页
            var selectedNav = window.sessionStorage.getItem("selectedNav"),
                pathname = window.location.pathname;
            var obj = _.find(this.navList, function(o){
                    if(pathname.indexOf(o.pathname) > -1){
                        return o;
                    }
                });
            
            if(selectedNav && obj){
                this.selectedNav = obj.id;
                window.sessionStorage.setItem("selectedNav", obj.id);
            }else if(selectedNav && !obj){
                this.selectedNav = selectedNav;
            }
            
        },
        methods: {
            login: function(){
                //跳转到登录页面
            },
            goToCenter: function(){
                //跳转去个人中心页面
                window.location.href = "../../mine/html/personal-info.html";
            },
            logout: function(){
                
            },
@ -73,7 +114,10 @@
                //下载APP
            },
            chooseNav: function(val){
                window.sessionStorage.setItem("selectedNav", val);
                this.selectedNav = val;
                var url = this.navList[val].link;
                window.location.href = url;
            }
        }
    })

+ 196 - 0
component/doctor-home/device-reback.js

@ -0,0 +1,196 @@
(function() {
	Vue.component('device-reback', {
		template: `<div>
						<h3 class="pt40 pb20 pl30 pr40 m0 mb30 c-f16 c-border-b clearfix">意见反馈<span class="fr c-f14 c-0ad8c8 f-w400" @click="record()">反馈记录</span></h3>
						<div class="edit-question" v-if="!isRecord && isQuestion">
							<div class="question-form pl20 pr50">
								<h4 class="c-909090 f-w400 m0 mb30 txt-center" v-if="!isEdit">hi~你发现了什么问题?</h4>
								<ul class="container-fluid p0 mb20 clearfix">
									<li v-if="isEdit" class="fl question-li mr30">
										<div class="question-li-div c-323232 c-f14 txt-center select-active">功能优化</div>
									</li>
									<li v-if="!isEdit" class="fl question-li mr30" v-for="list in questionArr" :key="list.code">
										<div class="question-li-div c-323232 c-f14 txt-center" :class="{'select-active': judgeSelectIndex == list.code}" @click="select(list.code)">{{list.name}}</div>
										<p class="c-909090 m0 mt5 c-f12 txt-center">{{list.detail}}</p>
									</li>
								</ul>
								<div>
									<label class="">问题&建议<span class="c-f00">*</span></label>
									<p class="c-position-r m0" v-if="!isEdit">
										<textarea @input="limit" class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										<span class="limit c-909090">最多300字</span>
									</p>
									<p class="c-position-r m0" v-if="isEdit">
										<textarea @input="limit" readonly class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										<span class="limit c-909090">最多300字</span>
									</p>
								</div>
								<div class="h100 mtb20">
									<div class="fl set-img mr20 c-position-r" v-if="quesImg.length > 0" v-for="(imgs, key) in quesImg" :key="key">
										<img src="imgs.src" \>
										<span class="delete-img" v-if="!isEdit" @click="remove(key)"></span>
									</div>
									<div v-if="isEdit ? !isEdit : quesImg.length < 4" class="fl img-add mr20">
				                    	<input type="file" @change="uploadImg()" class="fl set-img type-hide"  accept="image/jpg,image/jpeg,image/png">
				                    </div>
				                    <span class="fl pt40 c-909090">(选填,图片最多可传4张)</span>
								</div>
								<div v-if="isEdit">
									<label class="">答复内容</label>
									<p class="c-position-r m0">
										<textarea readonly="true" class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										<span class="limit c-909090">最多300字</span>
									</p>
								</div>
								<p class="form-group mt10 clearfix" v-if="!isEdit">
									<input class="fl mr10 form-control" placeholder="请输入您的手机号码(必填)" /><span class="c-323232 c-f14">请留下您的联系方式,管理员会尽快为您找到解决方案</span>
								</p>
								<div class="pt20">
									<span v-if="!isEdit" class="btn" @click="submit()">提&emsp;交</span>
									<span v-if="isEdit" class="btn" @click="backRecord()">返&emsp;回</span>
								</div>
							</div>
						</div>
						<div class="finish-device txt-center" v-if="!isRecord && !isQuestion">
							<h3 class="device-success">意见反馈已完成</h3>
							<p class="c-909090 c-f18">您可以在反馈记录查看意见进展</p>
							<div class="pt30">
								<span class="btn" @click="back()">返&emsp;回</span>
							</div>
						</div>
						<div v-if="isRecord">
							<ul class="list-record pl30 c-f14 m0">
								<li v-if="recordList.length == 0" class="txt-center">暂无反馈记录</li>
								<li v-if="recordList.length > 0" class="c-border-b ptb10 clearfix" v-for="(list, index) in recordList" :key="index">
									<span class="fl c-fff list-tap pr5 mr20">{{list.tit}}</span>
									<p class="fl c-909090 list-detail m0">{{list.detail}}</p>
									<span class="fl list-status mr30" :class="{'list-status-active':list.status == 1}">{{list.status == 1 ? "已答复" : '未处理'}}</span>
									<span class="fl list-view pr20 c-0ad8c8" @click="view(list)">查看</span>
								</li>
							</ul>
							<div v-if="recordList.length == 0">
								<span class="btn" @click="back()">返&emsp;回</span>
							</div>
							<div class="mt15 h30 pr30 txt-center clearfix" v-if="recordList.length > 0">
								<div class="fr ml10 clearfix">
									<span class="fl c-border-tb c-border-l page-btn-input m0"><input class="fl c-888 page-input" v-model="editPage" /></span><span class="fr c-f12 btn page-btn page-btn-sure" @click="setPage(editPage)">确定</span>
								</div>
								<span class="fr btn page-btn" @click="setPage(page + 2)" v-if="page == 1">{{page + 2}}</span>
								<span class="fr btn page-btn" @click="setPage(page + 1)">{{page + 1}}</span>
								<span class="fr btn page-btn page-btn-active">{{page}}</span>
								<span class="fr btn page-btn"  @click="setPage(page - 1)" v-if="page != 1">{{page - 1}}</span>
							</div>
						</div>
					</div>`,
		props: [],
		data: function() {
			return {
				isQuestion: true,
				isRecord: false,
				isEdit: false,
				judgeSelectIndex: null,
				questionArr: [{
					name: "功能异常",
					detail: "举例:无法使用功能",
					code: "1"
				},{
					name: "功能优化",
					detail: "举例:不好用、界面难看",
					code: "2"
				},{
					name: "新功能建议",
					detail: "你希望有什么功能?",
					code: "3"
				},{
					name: "其他",
					detail: "举例:身份信息丢失",
					code: "4"
				}],
				quesImg: [{src: '../../../images/bg.png'}],
				recordList: [{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				}],
				page: 1,
				editPage: null
			}
		},
		methods: {
			select: function(key) {
				if(this.judgeSelectIndex == key) {
					this.judgeSelectIndex = null
				} else {
					this.judgeSelectIndex = key
				}
			},
			record: function() {
				this.isRecord = true
			},
			limit: function() {},
			remove: function(key) {
				this.quesImg.splice(key, 1)
			},
			submit: function() {
				this.isQuestion = false
			},
			back: function() {
				this.isQuestion = true
				this.isRecord = false
			},
			setPage: function(key) {
				if(+key) {
					this.page = +key
				} else {
					alert(key)
				}
			},
			view: function(list) {
				this.isRecord = false
				this.isQuestion = true
				this.isEdit = true
			},
			backRecord: function() {
				this.isRecord = true
				this.isQuestion = false
				this.isEdit = false
			}
		}
	})
})()

+ 43 - 0
component/doctor-home/index.js

@ -0,0 +1,43 @@
(function() {
	Vue.component('doctor-index', {
		template: `<div class="container-fluid chahua-bg">
				<div class="chahua container">
					<div class="modules">
						<h2 class="c-f24 c-fff">为您提供个性化工具模块</h2>
						<h2 class="c-f16 c-fff">让医疗工作变得更轻松</h2>
						<div class="clearfix pt70">
							<div v-for="(module, index) in modules" :key="index" class="ui-grid-middle fl ml30 c-border module">
								<img :src="module.img" />
								<h2 class="c-f20">{{module.tit}}</h2>
								<ul class="c-f16">
									<li v-for="(list, ind) in module.list" :key="ind">{{list.name}}</li>
								</ul>
							</div>
						</div>
					</div>
				</div>
			</div>`,
		props: [],
		data: function() {
			return {
				modules: [{
					tit: "远程医学教育",
					img: "../../../images/shouye_yixue_icon.png",
					list: [{name: "海量资料库"},{name: "教学资源共享"},{name: "教学视频播放"}]
				},{
					tit: "远程会诊服务",
					img: "../../../images/shouye_huizheng_icon.png",
					list: [{name: "远程专家会诊"},{name: '"面对面"交流'},{name: "病情智能对接"}]
				},{
					tit: "双向诊断服务",
					img: "../../../images/shouye_zhuanzhen_icon.png",
					list: [{name: "小病进社区"},{name: "大病转医院"},{name: "康复回社区"}]
				}],
				ishover: null
			}
		},
		methods: {
			
		}
	})
})()

+ 39 - 0
component/doctor-home/mine.js

@ -0,0 +1,39 @@
(function() {
	Vue.component('doctor-mine', {
		template: `<div class="container-fluid chahua-bg mt20">
				<div class="chahua container clearfix">
					<div class="fl my-count c-border">
						<h1>我的账户</h1>
						<ul class="list">
							<li v-for="(name, index) in list" :key="index" @click="setCon(index)" class="" :class="{'li-active': index == mineIndex}">{{name}}</li>
						</ul>
					</div>
					<div class="fl my-detail c-border">
						<div class="con1 pt40" v-if="mineIndex == 0">
							<per-info></per-info>
						</div>
						<div class="con2" v-if="mineIndex == 1">
							<safe-setting></safe-setting>
						</div>
						<div class="con3 pl30" v-if="mineIndex == 2">
							<device-reback></device-reback>
						</div>
					</div>
				</div>
			</div>`,
		props: [],
		data: function() {
			return {
				list: ["个人信息", "安全设置", "意见反馈"],
				mineIndex: 0,
				info: null,
				myPhoto: null
			}
		},
		methods: {
			setCon: function(index) {
				this.mineIndex = index
			}
		}
	})
})()

+ 60 - 0
component/doctor-home/per-info.js

@ -0,0 +1,60 @@
(function() {
	Vue.component('per-info', {
		template: `<div>
						<div class="c-t-center">
							<div>
								<div :class="{\'img-add\': !myPhoto}" class="c-vam c-inline-block c-position-r">
			                    	<input id="myPhoto" type="file" @change="uploadImg()" ref="codeImg" style="width: 100px; height: 100px;" class="c-vam c-inline-block type-hide"  accept="image/jpg,image/jpeg,image/png">
			                    	<img style="width: 100px; height: 100px; position: absolute; top: 0; z-index: -1;" class="c-vam c-inline-block" :src="myPhoto"  v-show="myPhoto" />
			                    </div>
			                </div>
		                    <label for="myPhoto" class="mt10 mb25 c-888">修改头像</label>
						</div>
						<div class="detail-info">
							<p class="form-group clearfix">
								<label class="fl form-label">姓&emsp;&emsp;名</label>
								<input class="fl form-control" placeholder="输入姓名" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">医生专长</label>
								<input class="fl form-control" placeholder="医生专长" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">手机号码</label>
								<input class="fl form-control" readonly="true" placeholder="" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">身份证号</label>
								<input class="fl form-control" readonly="true" placeholder="" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">机构部门</label>
								<input class="fl form-control" readonly="true" placeholder="" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">办公电话</label>
								<input class="fl form-control" placeholder="办公电话" />
							</p>
							<p class="form-group clearfix">
								<label class="fl form-label">医生主页</label>
								<input class="fl form-control" placeholder="医生主页" />
							</p>
						</div>
						<div class="pt10">
							<span class="btn" @click="saveMyInfo()">保&emsp;存</span>
						</div>
					</div>`,
		props: [],
		data: function() {
			return {
				info: null,
				myPhoto: null,
			}
		},
		methods: {
			saveMyInfo: function() {
				
			}
		}
	})
})()

+ 149 - 0
component/doctor-home/safe-setting.js

@ -0,0 +1,149 @@
(function() {
	Vue.component('safe-setting', {
		template: `<div>
						<ul class="safe-setting" v-if="!modifyJudge">
							<li class="set-psw m0 c-border-tb clearfix">
								<div class="fl li-txt">
									<h3 class="m0 mtb10">登录密码</h3>
									<p class="m0 c-888 c-f14">建议您定期更换密码,设置安全性更高的密码可以使账户更安全</p>
								</div>
								<div class="fr operate"><span class="btn" @click="modifyPsw">修改</span></>
							</li>
							<li class="safe-phone m0 c-border-b clearfix">
								<div class="fl li-txt">
									<h3 class="m0 mtb10">安全手机&emsp;{{info}}</h3>
									<p class="m0 c-888 c-f14">安全手机可用与登录账号,重置密码或其他安全验证</p>
								</div>
								<div class="fr operate"><span class="btn" @click="modifyPhone">更换</span></>
							</li>
						</ul>
						<div class="modify plr30" v-if="ismdiPsw">
							<h3 class="pt40 pb20 pl30 mb50 c-f16  c-border-b">修改密码</h3>
							<div class="psw-form pt30">
								<h4 class="m0 mb20">原密码</h4>
								<p class="form-group">
									<input class="fl form-control" placeholder="请输入原密码" />
								</p>
								<h4 class="m0 mb20">新密码</h4>
								<p class="form-group">
									<input class="fl form-control" placeholder="请输入6-20位登录密码" />
								</p>
								<p class="form-group">
									<input class="fl form-control" placeholder="请再次输入登录密码" />
								</p>
							</div>
							<div class="operate-btn pt40">
								<span class="btn" @click="savePsw()">确&emsp;定</span>
								<span class="btn btn-cancel" @click="cancel()">取&emsp;消</span>
							</div>
						</div>
						<div class="modify plr30" v-if="ismdiPhone">
							<h3 class="pt40 pb20 pl30 mb50 c-f16 c-border-b">更换手机号码</h3>
							<div class="mdiphone-form pt30">
								<div class="clearfix">
									<div v-for="step in indexArr" :key="step" class="fl step" :class="{'set-active': activeIndex >= step}">
										<div class="clearfix">
											<p v-if="step > 1" class="fl clearfix">
												<em class="fl"></em>
											</p>
											<span class="fl">{{step}}</span>
											<p v-if="step < 3" class="fl">
												<em class="fl"></em>
											</p>
										</div>
										<label class="mt20" :class="setClass(step)">{{setTxt(step)}}</label>
									</div>
								</div>
								<div class="mdi-detail-form txt-center pt50">
									<div class="container-fluid" v-if="activeIndex == 1">
										<h3 class="c-f14 mb40">已绑定的手机号:{{handlePhone(info)}}</h3>
										<p class="form-group clearfix">
											<label class="fl form-label">验证码</label>
											<input class="fl form-control" placeholder="短信验证码" />
											<span class="c-0ad8c8 send">发送验证码</span>
										</p>
										<p class="c-888">若您的手机号码无法使用,请尝试&nbsp;<span class="c-37a6ed">账号申诉</span></p>
									</div>
									<div class="container-fluid pt50" v-if="activeIndex == 2">
										<p class="form-group clearfix">
											<label class="fl form-label">手机号码</label>
											<input class="fl form-control" placeholder="输入新的手机号码" />
										</p>
										<p class="form-group clearfix">
											<label class="fl form-label">验证码</label>
											<input class="fl form-control" placeholder="短信验证码" />
											<span class="c-0ad8c8 send">发送验证码</span>
										</p>
									</div>
									<div class="step3 container-fluid" v-if="activeIndex == 3">
										<h3 class="success">手机号码更换成功</h3>
										<p class="c-909090">下次请使用新号码登录</p>
									</div>
								</div>
								<div>
									<span class="btn" v-if="activeIndex != 3" @click="next()">下一步</span>
									<span class="btn" v-if="activeIndex == 3" @click="cancel()">返回</span>
								</div>
							</div>
						</div>
					</div>`,
		props: [],
		data: function() {
			return {
				info: null,
				
				modifyJudge: false,
				ismdiPsw: false,
				ismdiPhone: false,
				
				indexArr: [1, 2, 3],
				activeIndex: 1
			}
		},
		methods: {
			modifyPsw: function() {
				this.modifyJudge = true
				this.ismdiPsw = true
			},
			modifyPhone: function() {
				this.modifyJudge = true
				this.ismdiPhone = true
			},
			savePsw: function() {},
			cancel: function() {
				this.modifyJudge = false
				this.ismdiPsw = false
				this.ismdiPhone = false
				this.activeIndex = 1
			},
			// 更换手机号
			setTxt: function(index) {
				var str = ''
				switch(+index) {
					case 1: str = '验证身份';break
					case 2: str = '修改手机号码';break
					case 3: str = '完成更换';break
				}
				return str
			},
			setClass: function(index) {
				var str = ''
				switch(+index) {
					case 1: str = '';break
					case 2: str = 'txt-center';break
					case 3: str = 'txt-right';break
				}
				return str
			},
			handlePhone: function(phone) {
				if(!phone) {
					return ''
				}
				return phone.substr(0,3) + '****' + phone.substr(7, 4)
			},
			next: function() {
				this.activeIndex++
			}
		}
	})
})()

+ 241 - 0
component/doctor/appeal.js

@ -0,0 +1,241 @@
(function() {
	Vue.component('appeal-form', {
		template: `<div><div class="container-fluid">
				<div class="container" id="head">
					<div class="top-banner">
						<img src="../../../images/doctor_logo_img.png" class="hlogo" />
						<span class="qr-container">
							<img src="../../../images/qr_code.png" class="qr_code" />
							<p class="c-f12 text-center">下载APP</p>
						</span>
						<span class="c-border-l return" @click="goLogin()">返回登录页</span>
					</div>
				</div>
			</div>
			<div class="container-fluid chahua-bg c-border-t">
				<div class="container ptb40">
					<div class="appeal-form c-border">
						<h3 class="pt20 pb10 pl0 pr20 m0 mb30 c-f16 c-border-b clearfix">账号申诉<span class="fr c-f14 c-0ad8c8 f-w400" @click="record()">申诉记录</span></h3>
						<div class="edit-question" v-if="!isRecord && isQuestion">
							<div class="question-form pl20 pr50">
								<h4 class="c-909090 f-w400 m0 mb10 txt-center" v-if="!isEdit">hi~你发现了什么问题?</h4>
								<label class="mb10">选择申诉类型<span class="c-f00">*</span></label>
								<ul class="container-fluid p0 mb20 clearfix">
									<li v-if="isEdit" class="fl question-li mr30">
										<div class="question-li-div c-323232 c-f14 txt-center select-active">功能优化</div>
									</li>
									<li v-if="!isEdit" class="fl question-li mr30" v-for="list in questionArr" :key="list.code">
										<div class="question-li-div c-323232 c-f14 txt-center" :class="{'select-active': judgeSelectIndex == list.code}" @click="select(list.code)">{{list.name}}</div>
									</li>
								</ul>
								<div>
									<label class="mb10">问题&建议<span class="c-f00">*</span></label>
									<p class="c-position-r m0" v-if="!isEdit">
										<textarea @input="limit" class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										<span class="limit c-909090">最多300字</span>
									</p>
									<p class="c-position-r m0" v-if="isEdit">
										<textarea @input="limit" readonly class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										<span class="limit c-909090">最多300字</span>
									</p>
								</div>
								<div class="h100 mtb20">
									<div class="fl set-img mr20 c-position-r" v-if="quesImg.length > 0" v-for="(imgs, key) in quesImg" :key="key">
										<img src="imgs.src" \>
										<span class="delete-img" v-if="!isEdit" @click="remove(key)"></span>
									</div>
									<div v-if="isEdit ? !isEdit : quesImg.length < 4" class="fl img-add mr20">
				                    	<input type="file" @change="uploadImg()" class="fl set-img type-hide"  accept="image/jpg,image/jpeg,image/png">
				                    </div>
				                    <span class="fl pt40 c-909090">(选填,图片最多可传4张)</span>
								</div>
								<div v-if="isEdit">
									<div class="mb10">
										<label class="m0">处理时间</label><span class="ml10">2018-04-28</span>
									</div>
									<div>
										<label class="mb10">处理记录</label>
										<p class="c-position-r m0">
											<textarea readonly="true" class="form-control" placeholder="请描述您在使用过程中遇到的问题或建议,如果遇到功能异常,上传异常页面截图能更快解决哦~"></textarea>
										</p>
									</div>
								</div>
								<div class="mt10 clearfix" v-if="!isEdit">
									<p class="c-323232 c-f14 txt-center">请留下您的联系方式,管理员会尽快为您找到解决方案</p>
									<div class="c-border pt30 pl50 b-r-5">
										<p class="form-group clearfix">
											<label class="fl form-label">姓名<span class="c-f00">*</span></label>
											<input class="fl form-control" placeholder="请输入姓名" />
										</p>
										<p class="form-group clearfix">
											<label class="fl form-label">身份证<span class="c-f00">*</span></label>
											<input class="fl form-control" placeholder="请输入身份证号" />
										</p>
										<p class="form-group clearfix">
											<label class="fl form-label">手机号<span class="c-f00">*</span></label>
											<input class="fl form-control" placeholder="请输入手机号" />
										</p>
									</div>
								</div>
								<div class="pt20">
									<span v-if="!isEdit" class="btn" @click="submit()">提&emsp;交</span>
									<span v-if="isEdit" class="btn" @click="backRecord()">返&emsp;回</span>
								</div>
							</div>
						</div>
						<div class="finish-device txt-center" v-if="!isRecord && !isQuestion">
							<h3 class="device-success">账号申诉已完成</h3>
							<p class="c-909090 c-f18">您可以在申诉记录查看意见进展</p>
							<div class="pt30">
								<span class="btn" @click="back()">返&emsp;回</span>
							</div>
						</div>
						<div v-if="isRecord">
							<ul class="list-record pl30 c-f14 m0">
								<li v-if="recordList.length == 0" class="txt-center">暂无反馈记录</li>
								<li v-if="recordList.length > 0" class="c-border-b ptb10 clearfix" v-for="(list, index) in recordList" :key="index">
									<span class="fl c-fff list-tap pr5 mr20">{{list.tit}}</span>
									<p class="fl c-909090 list-detail m0">{{list.detail}}</p>
									<span class="fl list-status mr30" :class="{'list-status-active':list.status == 1}">{{list.status == 1 ? "已处理" : '待处理'}}</span>
									<span class="fl list-view pr20 c-0ad8c8" @click="view(list)">查看</span>
								</li>
							</ul>
							<div v-if="recordList.length == 0">
								<span class="btn" @click="back()">返&emsp;回</span>
							</div>
							<div class="mt15 h30 pr30 txt-center clearfix" v-if="recordList.length > 0">
								<div class="fr ml10 clearfix">
									<span class="fl c-border-tb c-border-l page-btn-input m0"><input class="fl c-888 page-input" v-model="editPage" /></span><span class="fr c-f12 btn page-btn page-btn-sure" @click="setPage(editPage)">确定</span>
								</div>
								<span class="fr btn page-btn" @click="setPage(page + 2)" v-if="page == 1">{{page + 2}}</span>
								<span class="fr btn page-btn" @click="setPage(page + 1)">{{page + 1}}</span>
								<span class="fr btn page-btn page-btn-active">{{page}}</span>
								<span class="fr btn page-btn"  @click="setPage(page - 1)" v-if="page != 1">{{page - 1}}</span>
							</div>
						</div>
					</div>
				</div>
			</div></div>`,
		props: [],
		data: function() {
			return {
				isRecord: false,
				isEdit: false,
				isQuestion: true,
				judgeSelectIndex: null,
				questionArr: [{
					name: "手机号无法使用",
					code: "1"
				},{
					name: "无法找回密码",
					code: "2"
				},{
					name: "其他",
					code: "3"
				}],
				quesImg: [],
				recordList: [{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "手机号无法使用",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "无法找回密码",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "1"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				},{
					tit: "功能异常",
					detail: "是啥东西爱尔家圣诞节哦按时大多数萨达阿达擦擦擦市场擦拭菜市场大神擦拭的",
					status: "0"
				}],
				page: 1,
				editPage: null
			}
		},
		methods: {
			goHelp: function() {
				window.location.href = "appeal.html"
			},
			goLogin: function() {
				window.location.href = "login.html"
			},
			select: function(key) {
				if(this.judgeSelectIndex == key) {
					this.judgeSelectIndex = null
				} else {
					this.judgeSelectIndex = key
				}
			},
			record: function() {
				this.isRecord = true
			},
			limit: function() {
				
			},
			remove: function(key) {
				this.quesImg.splice(key, 1)
			},
			submit: function() {
				this.isQuestion = false
			},
			back: function() {
				this.isQuestion = true
				this.isRecord = false
			},
			setPage: function(key) {
				if(+key) {
					this.page = +key
				} else {
					alert(key)
				}
			},
			view: function(list) {
				this.isRecord = false
				this.isQuestion = true
				this.isEdit = true
			},
			backRecord: function() {
				this.isRecord = true
				this.isQuestion = false
				this.isEdit = false
			}
		},
		watch: {
//			Password: function(newVal, oldVal) {
//				var val = newVal.toString();
//				var reg = /\s+/g; //去除空格
//				if(reg.test(val)) {
//					this.Password = oldVal;
//				}
//			}
		}
	})
})()

+ 158 - 0
component/doctor/forget.js

@ -0,0 +1,158 @@
(function() {
	Vue.component('forget-form', {
		template: `<div><div class="container-fluid">
				<div class="container" id="head">
					<div class="top-banner">
						<img src="../../../images/doctor_logo_img.png" class="hlogo" />
						<span class="qr-container">
							<img src="../../../images/qr_code.png" class="qr_code" />
							<p class="c-f12 text-center">下载APP</p>
						</span>
						<span class="c-border-l return" @click="goLogin()">返回登录页</span>
					</div>
				</div>
			</div>
			<div class="container-fluid chahua-bg c-border-t">
				<div class="container ptb100">
					<div class="forget-form c-border">
						<div class="clearfix">
							<div v-for="step in indexArr" :key="step" class="fl step" :class="{'set-active': activeIndex >= step}">
								<div class="clearfix" :class="{'pl15': step == 1}">
									<p v-if="step > 1" class="fl clearfix">
										<em class="fl"></em>
									</p>
									<span class="fl">{{step}}</span>
									<p v-if="step < 4" class="fl">
										<em class="fl"></em>
									</p>
								</div>
								<label class="mt20" :class="setClass(step)">{{setTxt(step)}}</label>
							</div>
						</div>
						<div class="detail-form">
							<div class="container-fluid" v-if="activeIndex == 1">
								<p class="form-group clearfix">
									<label class="fl form-label">用户名称</label>
									<input class="fl form-control" placeholder="手机号码/用户名称" />
								</p>
								<p class="form-group clearfix">
									<label class="fl form-label">验证码</label>
									<input class="fl form-control" placeholder="输入图形验证码" />
								</p>
								<p class="form-group clearfix">
									<label class="fl form-label"></label>
									<img class="fl" height="30" src="">看不清&nbsp;?&nbsp;<span class="c-0ad8c8">换一张</span>
								</p>
							</div>
							<div class="container-fluid" v-if="activeIndex == 2">
								<p class="form-group clearfix">
									<label class="fl form-label">用户名称</label>
									<input class="fl form-control" readonly="true" placeholder="用户名称" />
								</p>
								<div class="form-group">
									<p class="m0 clearfix">
										<label class="fl form-label">手机号码</label>
										<input class="fl form-control" readonly="true" placeholder="手机号码" />
									</p>
									<p class="c-909090 c-f12 m0"><label class="form-label h0"></label>若该手机号码无法正常使用请<span class="c-37a6ed ml5 appeal" @click="goHelp()">账号申诉</span></p>
								</div>
								<p class="form-group clearfix">
									<label class="fl form-label">验证码</label>
									<input class="fl form-control" placeholder="短信验证码" />
									<span class="c-0ad8c8 send">发送验证码</span>
								</p>
							</div>
							<div class="container-fluid" v-if="activeIndex == 3">
								<p class="form-group clearfix">
									<label class="fl form-label">新的密码</label>
									<input class="fl form-control" placeholder="设置6-20位登录密码" />
								</p>
								<p class="form-group clearfix">
									<label class="fl form-label">重复密码</label>
									<input class="fl form-control" placeholder="请再次输入登录密码" />
								</p>
							</div>
							<div class="step4 container-fluid" v-if="activeIndex == 4">
								<h3 class="success">密码重置成功</h3>
								<p class="c-909090">下次请使用新密码登录</p>
							</div>
						</div>
						<div>
							<span class="btn" v-if="activeIndex != 4" @click="next()">下一步</span>
							<span class="btn" v-if="activeIndex == 4" @click="goLogin()">进入登录页</span>
						<div>
					</div>
				</div>
			</div></div>`,
		props: [],
		data: function() {
			return {
				indexArr: [1, 2, 3, 4],
				activeIndex: 1
			}
		},
		methods: {
			setTxt: function(index) {
				var str = ''
				switch(+index) {
					case 1: str = '填写账号名';break
					case 2: str = '验证身份';break
					case 3: str = '设置新密码';break
					case 4: str = '完成';break
				}
				return str
			},
			setClass: function(index) {
				var str = ''
				switch(+index) {
					case 1: str = '';break
					case 2: str = 'txt-center';break
					case 3: str = 'txt-center';break
					case 4: str = 'txt-right';break
				}
				return str
			},
			goHelp: function() {
				window.location.href = "appeal.html"
			},
			goLogin: function() {
				window.location.href = "login.html"
			},
			next: function() {
				this.activeIndex++
			}
		},
		watch: {
//			Password: function(newVal, oldVal) {
//				var val = newVal.toString();
//				var reg = /\s+/g; //去除空格
//				if(reg.test(val)) {
//					this.Password = oldVal;
//				}
//			}
		}
	})
//	function login(data) {
//		httpRequest.post('login/doctor', {
//			data: data
//		}).then(function(res) {
//			if(res.status == 200) {
//				var docInfo = res.data;
//				localoginlStorage.setItem(httpRequest.agentName, JSON.stringify({
//					id: docInfo.id,
//					uid: docInfo.uid,
//					token: docInfo.token,
//					imei: localStorage.getItem('WLYY_IMEI'),
//					platform: 4
//				}));
//				//将用户的角色信息单独存储在localstorage中
//				localStorage.setItem("userRole", JSON.stringify(docInfo.userRole));
//				window.location.href = "../../home/html/index.html";
//			} else {
//				tip(res.msg);
//			}
//		});
//	}
})()

+ 300 - 0
component/doctor/login.js

@ -0,0 +1,300 @@
(function() {
	Vue.component('login-form', {
		template: `<div><div class="container-fluid">
				<div class="container" id="head">
					<div class="top-banner">
						<img src="../../../images/doctor_logo_img.png" class="hlogo" />
						<span class="qr-container">
							<img src="../../../images/qr_code.png" class="qr_code" />
							<p class="c-f12 text-center">下载APP</p>
						</span>
						<span class="c-border-l return" @click="goRetorn">返回门户页</span>
					</div>
				</div>
			</div>
			<div class="container-fluid chahua-bg">
				<div class="chahua container">
					<div class="loginForm fr">
						<div class="tabs-container no-borders mtb20 plr30">
							<ul class="nav nav-tabs c-border-b">
								<li :class="{'active': type==1}" @click="changeType(1)">
									<a style="padding:10px 0px;margin-left:35px;margin-right: 35px;font-size: 20px;">密码登录</a>
								</li>
								<li :class="{'active': type==2}" @click="changeType(2)">
									<a style="padding:10px 0px;margin-left:25px;margin-right: 25px;font-size: 20px;">验证码登录</a>
								</li>
							</ul>
							<div class="tab-content">
								<div class="tab-pane" :class="{'active': type==1}">
									<div class="panel-body  no-borders" style="padding: 0px;">
										<form id="form1" class="m-t" role="form" onsubmit="return false;">
											<div class="form-group">
												<input class="form-control" type="text"  v-model="account" placeholder="请输入身份证号或者手机号码">
											</div>
											<div class="form-group">
												<input class="form-control" type="password" v-model="password" placeholder="请输入密码">
											</div>
											<div class="text-right c-323232" style="margin-top:-10px;"><span class="set-hover" @click="forget">忘记密码</span></div>
											<button type="submit" class="btn btn-theme block full-width m-b" @click="login">登 录</button>
										</form>
									</div>
								</div>
								<div class="tab-pane" :class="{'active': type==2}">
									<div class="panel-body no-borders" style="padding: 0px;">
										<form id="form2" class="m-t" role="form" onsubmit="return false;">
											<div class="form-group">
												<input class="form-control" type="text" maxlength="11" v-model="mobile" placeholder="请输入手机号码">
											</div>
											<div class="form-group">
												<input class="form-control" type="text" v-model="imgcaptcha" placeholder="请输入图形验证码">
												<a class="getCaptcha" :class="{'disabled': countdown}" @click="getCaptcha">{{infoText}}</a>
											</div>
											<div class="form-group">
												<input class="form-control" type="text" v-model="captcha" placeholder="请输入短信验证码">
												<a class="getCaptcha" :class="{'disabled': countdown}" @click="getCaptcha">{{infoText}}</a>
											</div>
											<button type="submit" class="btn btn-theme block full-width m-b" @click="login">登 录</button>
										</form>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div></div>`,
		props: [],
		data: function() {
			return {
				type: 1, //记录选择的登录方式,1-手机号登录,2-验证码登录
				account: '17500000001',
				mobile: '',
				password: '123456',
				imgcaptcha: '',
				captcha: '',
				infoText: '获取验证码',
				countdown: false ,//是否在倒计时
				codeType: 1,
				idCardNo: "350526199501142015",
				rPassword: 'a123123',
				confirmPassword: "a123123",
				toggle: true,
				maxLength:18,
			}
		},
		methods: {
			forget: function() {
				window.location.href = "forget.html"
			},
			changeType: function(val) {
				this.type = val;
			},
			getCaptcha: function() {
				//先校验手机号码是否正确
				var isMobile = isMobilePhone(this.mobile);
				if(!isMobile) {
					alert('请输入正确的手机号码!');
					return false;
				}
				setTimer(this);
				//发送请求
				//			sendToGetCaptcha(this);
			},
			goRetorn: function() {
				window.location.href = "../../home/html/index.html"
			},
			login: function() {
				window.location.href = "../../home/html/index.html"
				var vm = this
				if(this.type == 1) {
					if(!vm.account) {
						console.log("账号不能为空!");
						return false;
					}
					if(!vm.password) {
						console.log("登录密码不能为空!");
						return false;
					}
					console.log(httpRequest)
					var data={
						grant_type: httpRequest.grant_type,
						client_id: httpRequest.client_id,
						username: vm.account,
						password: vm.password
					}
					console.log(data)
					loginAPI.accessToken(data).then(function(oauthInfo) {
						storage.setItem("oauthInfo", JSON.stringify(oauthInfo));
						var data1={
							userName:oauthInfo.user,
							accessToken: oauthInfo.accessToken
						}
						loginAPI.getUserInfo(data1).then(function(res) {
							console.log("登录成功");
							loginedList = [res.telephone]
							storage.setItem("loginedList", JSON.stringify(loginedList));
							storage.setItem("userAgent", JSON.stringify(res));
							vm.getJueSeData(res);
						}), function error(xhr, type, errorThrown) {
							if(type == "timeout" || type == "abort" || type == "error") {
								console.log("账号或密码错误");
							}
						}
					}).catch(function(e) {
						console.log("账号或密码错误")
					})
				} else {
					if(!vm.mobile) {
						console.log("手机号不能为空!");
						return false;
					}
					if(!vm.imgcaptcha) {
						console.log("图形验证码不能为空!");
						return false;
					}
					if(!vm.captcha) {
						console.log("手机验证码不能为空!");
						return false;
					}
				}
			},
			getJueSeData: function(userAgent) {
				var vm = this;
				//获取居民权限接口
				loginAPI.findByUserId({
					userId: userAgent.id
				}).then(function(data) {
					storage.setItem("roleList",JSON.stringify(data.detailModelList));//缓存角色列表
//					app.openWebviewExtras("../../home/html/home.html");//跳转到主页面
				})
			}
		},
		watch: {
			Password: function(newVal, oldVal) {
				var val = newVal.toString();
				var reg = /\s+/g; //去除空格
				if(reg.test(val)) {
					this.Password = oldVal;
				}
			},
			confirmPassword: function(newVal, oldVal) {
				var val = newVal.toString();
				var reg = /\s+/g; //去除空格
				if(reg.test(val)) {
					this.confirmPassword = oldVal;
				}
			},
			codeType: function(newVal) {
				var vm=this;
				var val = newVal.toString();
				if(val == 1) {
					$("#IDCard").attr("placeholder", "请输入身份证号")
					vm.maxLength=18
				} else if(val == 2) {
					$("#IDCard").attr("placeholder", "请输入手机号码")
					vm.maxLength=11
				}
			}
		}
	})
	//验证码定时
	function setTimer(vm) {
		var seconds = 59;
		vm.countdown = true;
		timer = setInterval(function() {
			if(seconds == 0) {
				clearInterval(timer);
				timer = null;
				seconds = 59;
				vm.infoText = "获取验证码";
				vm.countdown = false;
				return;
			}
			seconds--;
			vm.infoText = seconds + "s后重新获取";
		}, 1000)
	}
	function isCardNo(card, codeType) {
		var isidcard = false
		if(codeType == 1) { // 身份证号码为15位或者18位,15位时全为数字,18位前17位为数字,最后一位是校验位,可能为数字或字符X 
			var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
			if(!reg.test(card)) {
				alert("身份证号输入不合法");
			} else {
				isidcard = true
			}
		}else{
			var reg = /0?(13|14|15|18|17)[0-9]{9}/;
			if(!reg.test(card)) {
				alert("手机号码输入不合法");
			} else {
				isidcard = true
			}
		}
		return isidcard
	}
	function sendToGetCaptcha(vm) {
		var url = "common/captcha",
			params = {
				mobile: vm.mobile,
				type: 5,
				captchaToken: 5
			};
		httpRequest.post(url, {
			data: params
		}).then(function(res) {
			if(res.status == 200) {
				tip('发送成功', 'add');
			} else {
				tip('获取验证码失败');
			}
		});
	}
	function getPublicKey(vm) {
		var url = "login/public_key";
		httpRequest.post(url).then(function(res) {
			if(res.status) {
				var mod = res.data.modulus;
				var exp = res.data.exponent;
				key = RSAUtils.getKeyPair(exp, "", mod);
				if(key) {
					encryedPwd = RSAUtils.encryStr(key, vm.password);
					login({
						mobile: vm.mobile,
						password: encryedPwd,
						platform: 4
					})
				} else {
					tip("获取数据失败")
					$submit.removeAttr('disabled')
				}
			} else {
				tip(res.msg);
			}
		})
	}
	function login(data) {
		httpRequest.post('login/doctor', {
			data: data
		}).then(function(res) {
			if(res.status == 200) {
				var docInfo = res.data;
				localoginlStorage.setItem(httpRequest.agentName, JSON.stringify({
					id: docInfo.id,
					uid: docInfo.uid,
					token: docInfo.token,
					imei: localStorage.getItem('WLYY_IMEI'),
					platform: 4
				}));
				//将用户的角色信息单独存储在localstorage中
				localStorage.setItem("userRole", JSON.stringify(docInfo.userRole));
				window.location.href = "../../home/html/index.html";
			} else {
				tip(res.msg);
			}
		});
	}
})()

+ 0 - 1
component/login-register/login.js

@ -106,7 +106,6 @@
						return false;
					}
					var data = {
						grant_type: httpRequest.grant_type,
						client_id: httpRequest.client_id,
						username: vm.account,
						password: vm.password

+ 86 - 31
component/mine/change-password.js

@ -1,38 +1,39 @@
(function() {
	Vue.component('change-password', {
		template: `<div id="password" class="pl30 hidden">
						<div class="pb10 c-border-b c-f20">
							修改密码
						</div>
						<form id="passwordForm" class="" onsubmit="return false">
							<div class="w3-row mt25 form-group">
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">旧密码</div>
								<div class="w3-rest pl15">
									<input type="password" class="form-control" style="width:310px;" name="oldpassword" autocomplete="off">
								</div>
							</div>
							<div class="w3-row mt25 form-group">
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">新密码</div>
								<div class="w3-rest pl15">
									<input type="password" class="form-control" style="width:310px;" name="newpassword" autocomplete="off">
								</div>
							</div>
							<div class="w3-row mt25 form-group">
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">确认密码</div>
								<div class="w3-rest pl15">
									<input type="password" class="form-control" style="width:310px;" name="confirm_password" autocomplete="off">
								</div>
							</div>
							<div class="c-t-center mt50">
								<button type="submit" class="btn btn-theme c-f16" style="width:144px;height: 50px;" @click="changePassword()">确 定</button>
								<button type="button" class="btn btn-default c-f16 ml20" style="width:144px;height: 50px;" @click="gotosetting()">取 消</button>
							</div>
						</form>
					</div>`,
		template: '<div id="password" class="pl30 hidden">\
						<div class="pb10 c-border-b c-f20">修改密码\</div>\
						<form id="passwordForm" class="" onsubmit="return false">\
							<div class="w3-row mt25 form-group">\
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">旧密码</div>\
								<div class="w3-rest pl15">\
									<input  id="oldpassword" type="password" class="form-control" style="width:310px;" name="oldpassword" autocomplete="off"  maxlength="16"  minlength="8" v-model="oldPassword">\
								</div>\
							</div>\
							<div class="w3-row mt25 form-group">\
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">新密码</div>\
								<div class="w3-rest pl15">\
									<input id="newpassword" type="password" class="form-control" style="width:310px;" name="newpassword" autocomplete="off"  maxlength="16"  minlength="8" v-model="newPassword">\
									<p class="remark">8-16位,不允许空格</p>\
								</div>\
							</div>\
							<div class="w3-row mt25 form-group">\
								<div class="w3-col c-f16 m5 c-t-right c-909090" style="width:80px;">确认密码</div>\
								<div class="w3-rest pl15">\
									<input  id="confirm_password" type="password" class="form-control" style="width:310px;" name="confirm_password" autocomplete="off"  maxlength="16"  minlength="8" v-model="confirmPassword">\
								</div>\
							</div>\
							<div class="c-t-center mt50">\
								<button type="submit" class="btn btn-theme c-f16" style="width:144px;height: 50px;" @click="changePassword()">确 定</button>\
								<button type="button" class="btn btn-default c-f16 ml20" style="width:144px;height: 50px;" @click="gotosetting()">取 消</button>\
							</div>\
						</form>\
					</div>',
		props: [],
		data: function() {
			return {
				
				oldPassword:"",
				newPassword:"",
				confirmPassword:"",				
			}
		},
		mounted: function() {
@ -44,9 +45,63 @@
				$("#security").removeClass("hidden")
			},
			changePassword:function(){
				
				var vm = this
				var flag = $("#passwordForm").valid();
				if(!flag) {
					//没有通过验证
					return;
				}
				var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
				mineAPI.checkOldPass({
					password:this.oldPassword
				}).then(function(res){
					mineAPI.passwordReset({
						userId: oauthInfo.id,
						password: vm.confirmPassword
					}).then(function(res) {
						if(res) {
							alert("密码修改成功,请重新登录系统");							
							vm.existUser();
						} else {
							alert("密码修改失败");
						}
					}).catch(function(err){
						alert("密码修改失败");
					})
				}).catch(function(err){
					alert("原密码错误!");
				})			
			},
			existUser: function() {
				sessionStorage.removeItem("oauthInfo");
				sessionStorage.removeItem("userAgent");
				window.location.href="../../../page/login/html/login.html"
			}
		},
		watch: {
			oldPassword: function(newVal, oldVal) {
				var val = newVal.toString();
				var reg = /\s+/g; //去除空格
				if(reg.test(val)) {
					this.oldPassword = oldVal;
				}
			},
			newPassword: function(newVal, oldVal) {
				var val = newVal.toString();
				var reg = /\s+/g; //去除空格
				if(reg.test(val)) {
					this.newPassword = oldVal;
				}
			},
			confirmPassword: function(newVal, oldVal) {
				var val = newVal.toString();
				var reg = /\s+/g; //去除空格
				if(reg.test(val)) {
					this.confirmPassword = oldVal;
				}
			}
		}
	})
})()

+ 18 - 11
component/mine/personal-dialog-form.js

@ -14,21 +14,28 @@
		// 取消预约
		cancelAppointment: function(id) {
			return new Promise(function(resolve, reject) {
				var layerid = top.layer.confirm('<div><h3 class="c-t-center mt10">是否确认取消预约?</h3><div class="quxiaobox">取消须知:<div class="c-909090">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div></div></div>', {
				var layerid = top.layer.confirm('<div><h3 class="c-t-center mt10">是否确认取消预约?</h3><div class="quxiaobox">取消须知:<div class="c-909090">过多的退号可能导致您在一段时间内无法预约,我们对预约和退号频次达到一定数量的帐户将采取限制措施:每个帐号每个月下单满10笔时且退号满5笔时限制该帐户当月预约权限.</div></div></div>', {
					title: '取消预约',
					area: ['500px', '370px'],
					btn: ['确定', '取消'] //按钮
				}, function() {
					//					agentAPI.delCompany({
					//						id: companyId
					//					}).then(function(res) {
					//						if(res.successMsg == "find success") {
					//							top.toastr.success("删除成功!")
					//						} else {
					//							top.toastr.error("删除失败!")
					//						}
					//						resolve(layerid)
					//					})
					var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
					appointmentAPI.cancelOrder({
						orderId: id,
						thirdPartyUserId: oauthInfo.id
					}).then(function(res) {
						if(res.Code == "10000") {
							jiuzhenAPI.cancelOrder({
								id: id,
								state: 99
							}).then(function(res) {
								alert("取消成功!")
							})
						} else {
							alert("取消失败!")
						}
						resolve(layerid)
					})
					resolve(layerid)
				}, function() {

+ 73 - 71
component/mine/personal-info.js

@ -1,76 +1,78 @@
(function() {
	Vue.component('personal-info', {
		template: `<div class="container ptb20 ">
				<div class="row w3-row">
					<left-menu :code="code"></left-menu>
					<div class="pl251">
						<div class="bgc-fff c-border ptb30">
							<form class="mainbox" id="form" role="form" onsubmit="return false;" enctype="multipart/form-data" id="newInterfaceForm">
								<div class="c-t-center mb10">
									<img :src="userinfo.imgRemotePath || defaultImg" class="img-circle" width="100" height="100" id="personalImg" />
									<div class="c-f14 c-909090 pt15">
										<span>修改头像</span>
										<input type="file" @change="uploadImg($event)" class="c-vam c-inline-block type-hide pl105" accept="image/jpg,image/jpeg,image/png" style="height:150px;margin-top:-150px;"></div>
								</div>
								<div class="w3-row mt50 form-group" style="height: 40px;">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">姓&emsp;&emsp;名</div>
									<div class="w3-rest pl15">
										<input type="text" class="form-control" v-model="userinfo.realName" name="realName">
									</div>
								</div>
								<div class="w3-row form-group">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">性&emsp;&emsp;别</div>
									<div class="w3-rest pl15 c-f14">
										<input type="radio" name="gender"  value="0" v-model="userinfo.gender">&emsp;男&emsp;
										<input type="radio" name="gender"  value="1" v-model="userinfo.gender">&emsp;女
									</div>
								</div>
								<div class="w3-row  mt25 form-group">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">手机号码</div>
									<div class="w3-rest pl15">
										<input type="text" class="form-control" v-model="userinfo.telephone" name="telephone">
									</div>
								</div>
								<div class="w3-row mt25 form-group">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">身份证号</div>
									<div class="w3-rest pl15">
										<input type="text" class="form-control" v-model="userinfo.idCardNo" name="idCardNo">
									</div>
								</div>
								<div class="w3-row mt25 form-group">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">社保卡号</div>
									<div class="w3-rest pl15">
										<input type="text" class="form-control" v-model="userinfo.ssid" name="ssid">
									</div>
								</div>
								<div class="w3-row mt25 form-group">
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">医疗保险号</div>
									<div class="w3-rest pl15">
										<input type="text" class="form-control" v-model="userinfo.micard" name="micard">
									</div>
								</div>
								<div class="w3-row mt25 form-group">
									<div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">行&emsp;&emsp;业</div>
									<div class="pl105" data-toggle="modal" data-target="#selindustry">
										<input id="industry" placeholder="请选择行业" type="text" class="form-control" name="industry"  v-model="userinfo.profession" name="profession"><span class="caret selcaret"></span>
									</div>
								</div>
								<div class="w3-row mt25">
									<div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">家庭住址</div>
									<div class="pl105">										
											<selsect-address ref="getAddress"></selsect-address>
										<textarea class="form-control mt10 form-group"  v-model="userinfo.street" name="street"></textarea>
									</div>
								</div>
								<div class="c-t-center ">
									<button type="submit" class="btn btn-theme c-f16 mtb30" style="width:144px;" @click="update()">保 存</button>
								</div>
							</form>
							<select-industry ref="getIndustry"></select-industry>
						</div>
					</div>
				</div>
			</div>`,
		template: '<div class="container ptb20 ">\
				<div class="row w3-row">\
					<left-menu :code="code"></left-menu>\
					<div class="pl251">\
						<div class="bgc-fff c-border ptb30">\
							<form class="mainbox" id="form" role="form" onsubmit="return false;" enctype="multipart/form-data" id="newInterfaceForm">\
								<div class="c-t-center mb10">\
									<img :src="userinfo.imgRemotePath || defaultImg" class="img-circle" width="100" height="100" id="personalImg" />\
									<div class="c-f14 c-909090 pt15">\
										<span>修改头像</span>\
										<input type="file" @change="uploadImg($event)" class="c-vam c-inline-block type-hide pl105" accept="image/jpg,image/jpeg,image/png" style="height:150px;margin-top:-150px;"></div>\
								</div>\
								<div class="w3-row mt50 form-group" style="height: 40px;">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">姓&emsp;&emsp;名</div>\
									<div class="w3-rest pl15">\
										<input type="text" class="form-control" v-model="userinfo.realName" name="realName">\
									</div>\
								</div>\
								<div class="w3-row form-group">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">性&emsp;&emsp;别</div>\
									<div class="w3-rest pl15 c-f14">\
										<input type="radio" name="gender"  value="0" v-model="userinfo.gender">&emsp;男&emsp;\
										<input type="radio" name="gender"  value="1" v-model="userinfo.gender">&emsp;女\
									</div>\
								</div>\
								<div class="w3-row  mt25 form-group">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">手机号码</div>\
									<div class="w3-rest pl15">\
										<input type="text" class="form-control" v-model="userinfo.telephone" name="telephone">\
									</div>\
								</div>\
								<div class="w3-row mt25 form-group">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">身份证号</div>\
									<div class="w3-rest pl15">\
										<input type="text" class="form-control" v-model="userinfo.idCardNo" name="idCardNo" readonly="readonly">\
									</div>\
								</div>\
								<div class="w3-row mt25 form-group">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">社保卡号</div>\
									<div class="w3-rest pl15">\
										<input type="text" class="form-control" v-model="userinfo.ssid" name="ssid">\
									</div>\
								</div>\
								<div class="w3-row mt25 form-group">\
									<div class="w3-col c-f16 m5 c-t-right" style="width:80px;">医疗保险号</div>\
									<div class="w3-rest pl15">\
										<input type="text" class="form-control" v-model="userinfo.micard" name="micard">\
									</div>\
								</div>\
								<div class="w3-row mt25 form-group">\
									<div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">行&emsp;&emsp;业</div>\
									<div class="pl105" data-toggle="modal" data-target="#selindustry">\
										<input id="industry" placeholder="请选择行业" type="text" class="form-control" name="industry"  v-model="userinfo.profession" name="profession"><span class="caret selcaret"></span>\
									</div>\
								</div>\
								<div class="w3-row mt25">\
									<div class="w3-col c-323232 c-f16 m5 c-t-right" style="width:80px;">家庭住址</div>\
									<div class="pl105">\
										<selsect-address ref="getAddress"></selsect-address>\
										<div  class="form-group">\
											<textarea class="form-control mt10"  v-model="userinfo.street" name="street"></textarea>\
										</div>\
									</div>\
								</div>\
								<div class="c-t-center ">\
									<button type="submit" class="btn btn-theme c-f16 mtb30" style="width:144px;" @click="update()">保 存</button>\
								</div>\
							</form>\
							<select-industry ref="getIndustry"></select-industry>\
						</div>\
					</div>\
				</div>\
			</div>',
		props: [],
		data: function() {
			return {

+ 243 - 185
component/mine/record.js

@ -1,204 +1,262 @@
(function() {
	Vue.component('record', {
		template: `<div class="container ptb20">
				<div class="row w3-row">
					<left-menu :code="code"></left-menu>
					<div class="pl251">
						<div class="bgc-fff c-border" style="min-height: 706px;">
							<ul class="nav nav-tabs c-inline-block width-100" role="tablist" id="recordlist">
								<li role="presentation" class="active">
									<a href="#home" aria-controls="home" role="tab" data-toggle="tab" id="_home">待就诊</a>
								</li>
								<li role="presentation">
									<a href="#history" aria-controls="history" role="tab" data-toggle="tab" id="_history">历史记录</a>
								</li>
							</ul>
							<div class="tab-content plr25 ptb8">
								<div role="tabpanel" class="tab-pane active" id="home">
									<div class="list-body" v-for="record in records">
										<div class="list-header"><span>预约时间</span><span class="pl20">{{record.time}}</span></div>
										<div class="div-table">
											<div class="table-row">
												<div class="table-cell">
													<div class="w3-row">
														<div class="w3-col pl15" style="width:95px">
															<img :src="record.photo" class="img-circle" width="80" height="80" />
														</div>
														<div class="w3-rest c-t-left pl20 c-f14 ">
															<div class="mt15">
																<span class="c-f16">{{record.doctor}}</span>
																<span class="plr10">{{record.zhiwu}}</span>
																<span class="c-909090">{{record.keshi}}</span>
															</div>
															<div class="mt10 c-909090">{{record.yiyuan}}</div>
														</div>
													</div>
												</div>
												<div class="table-cell c-f16">
													<div class="mt15">
														{{record.othertime}}
													</div>
													<div class="mt10">
														{{record.othertime1}}
													</div>
												</div>
												<div class="table-cell c-f16 mt25">{{record.bingren}}
												</div>
												<div class="table-cell">
													<div class="cancelbtn" @click="cancelbtn(record.id)">取消预约</div>
													<div class="mt10" style="color:#0AD8C8" data-toggle="modal" data-target="#appointmentinfo">查看详情</span>
													</div>
												</div>
											</div>
										</div>
									</div>
								</div>
								<div role="tabpanel" class="tab-pane" id="history">
									<div class="list-body" v-for="record in records">
										<div class="list-header"><span>预约时间</span><span class="pl20">{{record.time}}</span></div>
										<div class="div-table">
											<div class="table-row">
												<div class="table-cell">
													<div class="w3-row">
														<div class="w3-col pl15" style="width:95px">
															<img :src="record.photo" class="img-circle" width="80" height="80" />
														</div>
														<div class="w3-rest c-t-left pl20 c-f14 ">
															<div class="mt15">
																<span class="c-f16">{{record.doctor}}</span>
																<span class="plr10">{{record.zhiwu}}</span>
																<span class="c-909090">{{record.keshi}}</span>
															</div>
															<div class="mt10 c-909090">{{record.yiyuan}}</div>
														</div>
													</div>
												</div>
												<div class="table-cell c-f16">
													<div class="mt15">
														{{record.othertime}}
													</div>
													<div class="mt10">
														{{record.othertime1}}
													</div>
												</div>
												<div class="table-cell c-f16 mt25">{{record.bingren}}
												</div>
												<div class="table-cell">
													<div class="mt10" style="color:#0AD8C8" data-toggle="modal" data-target="#appointmentinfo">查看详情</span>
													</div>
												</div>
											</div>
										</div>
									</div>
								</div>
							</div>
							<div id="page" class="page_div"></div>
						</div>
					</div>
				</div>
				<div class="modal fade" id="appointmentinfo" tabindex="-1" role="dialog" aria-labelledby="appointmentinfoLabel">
					<div class="modal-dialog" role="document">
						<div class="modal-content">
							<div class="modal-header bgc-f9f9f9">
								<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
								<h4 class="modal-title" id="appointmentinfoLabel">挂号明细</h4>
							</div>
							<div class="modal-body">
								<div class="bgc-fff">
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">订单号</div>
										<div class="w3-rest">18721839005577</div>
									</div>
									<div class="w3-row modal-list" style="border:none;">
										<div class="w3-col" style="width:120px;">订单状态</div>
										<div class="w3-rest">待就诊</div>
									</div>
									<div class="w3-row modal-list bgc-f9f9f9" style="color:#323232;border:none;">预约信息</div>
									<div class="w3-row c-border-b modal-list">
										<div class="w3-col" style="width:120px;">预约医院</div>
										<div class="w3-rest">福建省立医院</div>
									</div>
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">预约科室</div>
										<div class="w3-rest">睡眠眼科</div>
									</div>
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">就诊日期</div>
										<div class="w3-rest">2018-04-04 上午</div>
									</div>
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">就诊时间</div>
										<div class="w3-rest">07:50</div>
									</div>
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">就诊序号</div>
										<div class="w3-rest">2</div>
									</div>
									<div class="w3-row modal-list" style="border:none;">
										<div class="w3-col" style="width:120px;">退号截止时间</div>
										<div class="w3-rest">2018-04-04 23:59:00</div>
									</div>
									<div class="w3-row modal-list bgc-f9f9f9" style="color:#323232;border:none;">就诊人信息</div>
									<div class="w3-row modal-list">
										<div class="w3-col" style="width:120px;">姓名</div>
										<div class="w3-rest">郑绩</div>
									</div>
									<div class="w3-row  modal-list">
										<div class="w3-col" style="width:120px;">证件号</div>
										<div class="w3-rest">35040319850707201X</div>
									</div>
									<div class="w3-row  modal-list">
										<div class="w3-col" style="width:120px;">手机号</div>
										<div class="w3-rest">137******96</div>
									</div>
									<div class="c-t-center">
										<button type="button" class="btn btn-default c-f16 mt30 mb20" style="width:144px;" @click="hideModel()">关 闭</button>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>`,
		template: '<div class="container ptb20">\
				<div class="row w3-row">\
					<left-menu :code="code"></left-menu>\
					<div class="pl251">\
						<div class="bgc-fff c-border" style="min-height: 706px;">\
							<ul class="nav nav-tabs c-inline-block width-100" role="tablist" id="recordlist">\
								<li role="presentation" class="active">\
									<a href="#home" aria-controls="home" role="tab" data-toggle="tab" id="_home">待就诊</a>\
								</li>\
								<li role="presentation">\
									<a href="#history" aria-controls="history" role="tab" data-toggle="tab" id="_history">历史记录</a>\
								</li>\
							</ul>\
							<div class="tab-content plr25 ptb8">\
								<div role="tabpanel" class="tab-pane active" id="home">\
									<template v-if="records.length>0">\
										<div class="list-body" v-for="record in records">\
											<div class="list-header"><span>预约时间</span><span class="pl20">{{record.orderCreateTime}}</span></div>\
												<div class="div-table">\
													<div class="table-row">\
														<div class="table-cell">\
															<div class="w3-row">\
																<div class="w3-col pl15" style="width:95px">\
																	<img :src="record.photoUri || defaultImg" class="img-circle" width="80" height="80" />\
																</div>\
																<div class="w3-rest c-t-left pl20 c-f14 ">\
																	<div class="mt15">\
																		<span class="c-f16">{{record.doctorName}}</span>\
																		<span class="plr10">{{record.doctorName}}</span>\
																		<span class="c-909090">{{record.deptName}}</span>\
																	</div>\
																	<div class="mt10 c-909090">{{record.hospitalName}}</div>\
																</div>\
															</div>\
														</div>\
														<div class="table-cell c-f16">\
															<div class="mt15">{{record.registerDate}}</div>\
															<div class="mt10">{{record.serialNo}},{{record.commendTime}}</div>\
														</div>\
														<div class="table-cell c-f16 mt25">{{record.patientName}}</div>\
														<div class="table-cell">\
															<div class="cancelbtn" @click="cancelbtn(record.orderId)">取消预约</div>\
															<div class="mt10" style="color:#0AD8C8"  @click="getinfo(record.id)">查看详情</span>\
														</div>\
													</div>\
												</div>\
											</div>\
										</div>\
									</template>\
									<div v-else class="c-t-center mtb100">\
										<img src="../../../images/queshengye-.png" />\
									</div>\
									<div id="homepage" class="page_div" v-if="!ishomeNull"></div>\
								</div>\
								<div role="tabpanel" class="tab-pane" id="history">\
									<template v-if="historyrecords.length>0">\
										<div class="list-body" v-for="record in historyrecords">\
											<div class="list-header"><span>预约时间</span><span class="pl20">{{record.orderCreateTime}}</span></div>\
											<div class="div-table">\
												<div class="table-row">\
													<div class="table-cell">\
														<div class="w3-row">\
															<div class="w3-col pl15" style="width:95px">\
																<img :src="record.photoUri|| defaultImg" class="img-circle" width="80" height="80" />\
															</div>\
															<div class="w3-rest c-t-left pl20 c-f14 ">\
																<div class="mt15">\
																	<span class="c-f16">{{record.doctorName}}</span>\
																	<span class="plr10">{{record.deptName}}</span>\
																	<span class="c-909090">{{record.deptName}}</span>\
																</div>\
																<div class="mt10 c-909090">{{record.hospitalName}}</div>\
															</div>\
														</div>\
													</div>\
													<div class="table-cell c-f16">\
														<div class="mt15">{{record.registerDate}}</div>\
														<div class="mt10">{{record.serialNo}},{{record.commendTime}}</div>\
													</div>\
													<div class="table-cell c-f16 mt25">{{record.patientName}}</div>\
													<div class="table-cell">\
														<div class="mt10">{{record.stateDesc}}</span>\
														<div class="mt10" style="color:#0AD8C8"  @click="getinfo(record.id)">查看详情</span>\
														</div>\
													</div>\
												</div>\
											</div>\
										</div>\
									</template>\
									<div v-else class="c-t-center mtb100">\
										<img src="../../../images/queshengye-.png" />\
									</div>\
									<div id="historypage" class="page_div" v-if="!ishistoryNull"></div>\
								</div>\
							</div>\
						</div>\
				</div>\
				<div class="modal fade" id="appointmentinfo" tabindex="-1" role="dialog" aria-labelledby="appointmentinfoLabel">\
					<div class="modal-dialog" role="document">\
						<div class="modal-content">\
							<div class="modal-header bgc-f9f9f9">\
								<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>\
								<h4 class="modal-title" id="appointmentinfoLabel">挂号明细</h4>\
							</div>\
							<div class="modal-body">\
								<div class="bgc-fff">\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">订单号</div>\
										<div class="w3-rest">{{recordinfo.orderId}}</div>\
									</div>\
									<div class="w3-row modal-list" style="border:none;">\
										<div class="w3-col" style="width:120px;">订单状态</div>\
										<div class="w3-rest">{{recordinfo.stateDesc}}</div>\
									</div>\
									<div class="w3-row modal-list bgc-f9f9f9" style="color:#323232;border:none;">预约信息</div>\
									<div class="w3-row c-border-b modal-list">\
										<div class="w3-col" style="width:120px;">预约医院</div>\
										<div class="w3-rest">{{recordinfo.hospitalName}}</div>\
									</div>\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">预约科室</div>\
										<div class="w3-rest">{{recordinfo.deptName}}</div>\
									</div>\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">就诊日期</div>\
										<div class="w3-rest">{{recordinfo.registerDate}} {{recordinfo.timeId}}</div>\
									</div>\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">就诊时间</div>\
										<div class="w3-rest">{{recordinfo.commendTime}}</div>\
									</div>\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">就诊序号</div>\
										<div class="w3-rest">{{recordinfo.serialNo}}</div>\
									</div>\
									<div class="w3-row modal-list" style="border:none;">\
										<div class="w3-col" style="width:120px;">退号截止时间</div>\
										<div class="w3-rest">{{recordinfo.invalidDate}}</div>\
									</div>\
									<div class="w3-row modal-list bgc-f9f9f9" style="color:#323232;border:none;">就诊人信息</div>\
									<div class="w3-row modal-list">\
										<div class="w3-col" style="width:120px;">姓名</div>\
										<div class="w3-rest">{{recordinfo.patientName}}</div>\
									</div>\
									<div class="w3-row  modal-list">\
										<div class="w3-col" style="width:120px;">证件号</div>\
										<div class="w3-rest">{{recordinfo.cardNo}}</div>\
									</div>\
									<div class="w3-row  modal-list">\
										<div class="w3-col" style="width:120px;">手机号</div>\
										<div class="w3-rest">{{recordinfo.phoneNo}}</div>\
									</div>\
									<div class="c-t-center">\
										<button type="button" class="btn btn-default c-f16 mt30 mb20" style="width:144px;" @click="hideModel()">关 闭</button>\
									</div>\
								</div>\
							</div>\
						</div>\
					</div>\
				</div>\
			</div>',
		props: [],
		data: function() {
			return {
				code: "record",
				records: [{
					time: "2017年11月11日 13:13:13",
					photo: "../image/touxiang.jpg",
					doctor: "张三",
					zhiwu: "主任医生",
					keshi: "骨科",
					yiyuan: "上饶医院",
					othertime: "2018-04-04上午",
					othertime1: "第2号,07:50",
					bingren: "李花花",
					id: "1",
				}, {
					time: "2017年11月11日 13:13:13",
					photo: "../image/touxiang.jpg",
					doctor: "张三",
					zhiwu: "主任医生",
					keshi: "骨科",
					yiyuan: "上饶医院",
					othertime: "2018-04-04上午",
					othertime1: "第2号,07:50",
					bingren: "李花花",
					id: "1",
				}, ]
				records: [],
				historyrecords: [],
				recodestype: '2',
				historytype: '',
				recordinfo: {},
				defaultImg: "../../../images/moren_touxiang_img.png",
				ishomeNull: false,
				ishistoryNull: false,
			}
		},
		mounted: function() {
			var vm = this
			vm.getlist(1, vm.recodestype)
			vm.getlist(1, vm.historytype)
		},
		methods: {
			getlist: function(pageNo, types) {
				var vm = this
				var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
				var filters = "userId=" + oauthInfo.id
				if(types == '2') {
					filters += ";state=" + types
				}
				var param = {
					fields: '',
					filters: filters,
					sort: '+registerDate',
					page: pageNo,
					size: 5
				}
				jiuzhenAPI.queryRegOrderInfos(param).then(function(res) {
					if(types == '2') {
						vm.records = res.detailModelList
						if(res.totalCount == 0) {
							vm.ishomeNull = true
						} else {
							vm.inithomePage(pageNo, res.totalPage, res.totalCount)
						}
					} else if(types == '') {
						vm.historyrecords = res.detailModelList
						vm.inithistoryPage(pageNo, res.totalPage, res.totalCount)
						if(res.totalCount == 0) {
							vm.ishistoryNull = true
						} else {
							vm.inithistoryPage(pageNo, res.totalPage, res.totalCount)
						}
					}
				})
			},
			cancelbtn: function(id) {
				personalDialogForm.cancelAppointment(id).then(function(layerid) {
					top.layer.close(layerid)
				})
			},
			hideModel:function(){
			inithomePage: function(pageNo, total, size) {
				var vm = this
				//分页初始化
				$("#homepage").paging({
					pageNo: pageNo,
					totalPage: total,
					totalSize: size,
					callback: function(num) {
						//回调的页数
						vm.getlist(num, vm.recodestype)
					}
				})
			},
			inithistoryPage: function(pageNo, total, size) {
				var vm = this
				//分页初始化
				$("#historypage").paging({
					pageNo: pageNo,
					totalPage: total,
					totalSize: size,
					callback: function(num) {
						//回调的页数
						vm.getlist(num, vm.historytype)
					}
				})
			},
			getinfo: function(orderid) {
				var vm = this
				jiuzhenAPI.getRegOrderInfo(orderid).then(function(res) {
					vm.recordinfo = res.obj
					vm.openmodel()
				})
			},
			openmodel: function() {
				$('#appointmentinfo').modal('show')
			},
			hideModel: function() {
				$('#appointmentinfo').modal('hide')
			}
		},

+ 19 - 14
component/mineJiuZhen/mineJiuZhen-dialog-form.js

@ -7,33 +7,38 @@
				title: '满意度调查',
				shadeClose: false,
				closeBtn: true, //显示关闭按钮
				area: ['500px','714px'],
				area: ['500px', '714px'],
				btn: [], //按钮
				content: '../../../page/mineJiuZhen/html/satisfaction.html', //iframe的url
				end: function() {
					location.reload();
					
				}
			});
		},
		// 取消预约
		cancelAppointment: function(id) {
		cancelAppointment: function(id,orderid) {
			return new Promise(function(resolve, reject) {
				var layerid = top.layer.confirm('<div><h3 class="c-t-center mt10">是否确认取消预约?</h3><div class="quxiaobox">取消须知:<div class="c-909090">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</div></div></div>', {
				var layerid = top.layer.confirm('<div><h3 class="c-t-center mt10">是否确认取消预约?</h3><div class="quxiaobox">取消须知:<div class="c-909090">过多的退号可能导致您在一段时间内无法预约,我们对预约和退号频次达到一定数量的帐户将采取限制措施:每个帐号每个月下单满10笔时且退号满5笔时限制该帐户当月预约权限。</div></div></div>', {
					title: '取消预约',
					area: ['500px', '370px'],
					btn: ['确定', '取消'] //按钮
				}, function() {
					//					agentAPI.delCompany({
					//						id: companyId
					//					}).then(function(res) {
					//						if(res.successMsg == "find success") {
					//							top.toastr.success("删除成功!")
					//						} else {
					//							top.toastr.error("删除失败!")
					//						}
					//						resolve(layerid)
					//					})
					var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
					appointmentAPI.cancelOrder({
						orderId: orderid,
						thirdPartyUserId: oauthInfo.id
					}).then(function(res) {
						if(res.Code == "10000") {
							jiuzhenAPI.cancelOrder({
								id: id,
								state: 99
							}).then(function(res) {alert("取消成功!")})
						} else {
							alert("取消失败!")
						}
						resolve(layerid)
					})
					resolve(layerid)
				}, function() {

+ 3 - 1
css/cross.css

@ -140,7 +140,9 @@
.c-62baf4 {
    color: #62baf4;
}
.c-0ad8c8{
    color: #0ad8c8;
}
.bgc-fff {
    background-color: #fff;
}

+ 4 - 1
css/style.min.css

@ -7405,7 +7405,7 @@ select {
    z-index: 198910150;
}
.search-box{
    width: 410px;
    width: 100%;
}
.search-box input[type=search]{
    border: none;
@ -7488,4 +7488,7 @@ select {
.nav-item:hover{
    color: #0ad8c8;
    font-weight: bold;
}
[v-cloak] {
    display: none;
}

+ 20 - 0
doctor/home/css/index.css

@ -0,0 +1,20 @@
html {overflow: auto; min-width: 970px;}
body {font-size: 13px;}
.ui-grid-middle {-webkit-box-pack: center;}
.btn {vertical-align: top; width: 60px; padding: 0 10px; margin: 0 10px; background-color: #0ad8c8;}
.btn-hover {color: #0ad8c8;}
.nav-item.active, .nav-item:hover {color: #0DBCBA; background-color: #fff;}
.nav-item {height: 122px; line-height: 122px; width: auto; padding: 0 20px; margin-right: 0; color: #888;}
.chahua-bg{position: relative;background: url(../../../images/BG.jpg) no-repeat center;background-size: 100% 100%;height: 700px;}
.chahua{background: url(../../../images/menghu_bg_img.png) no-repeat 0% 46.5%; position: absolute;left: 0;right: 0;top: 0;bottom: 0;}
.modules {padding: 120px 0 0 480px; text-align: center;}
.modules li {text-align: left;}
.module {border-radius: 5px; padding: 10px; border-color: #0ad8c8; color: #63e8e2; cursor: pointer;}
.module:hover {border-color: #fff; color: #fff;}
.pt70 {padding-top: 70px;}
.h24 {height: 24px;}
.lh24 {line-height: 24px;}
.span-hover {cursor: pointer;}
.span-hover:hover {color: #0ad8c8;}
.span-hover:active {text-decoration: underline;}
.span-active {color: #0ad8c8;}

+ 91 - 0
doctor/home/css/mine.css

@ -0,0 +1,91 @@
html {overflow: auto; min-width: 970px;}
body {font-size: 13px;}
ul {list-style: none;}
.ui-grid-middle {-webkit-box-pack: center;}
.btn {vertical-align: top; width: 60px; padding: 0 10px; margin: 0 10px; background-color: #0ad8c8;}
.btn-hover {color: #0ad8c8;}
.nav-item.active, .nav-item:hover {color: #0DBCBA; background-color: #fff;}
.nav-item {height: 122px; line-height: 122px; width: auto; padding: 0 20px; margin-right: 0; color: #888;}
.chahua-bg{height: 700px;}
.pt70 {padding-top: 70px;}
.pl70 {padding-left: 70px;}
.h20 {height: 20px;}
.h24 {height: 24px;}
.lh24 {line-height: 24px;}
.c-888 {color: #888;}
.c-0ad8c8 {color: #0ad8c8;cursor: pointer;}
.c-0ad8c8:active {text-decoration: underline;}
.span-hover {cursor: pointer;}
.span-hover:hover {color: #0ad8c8;}
.span-hover:active {text-decoration: underline;}
.span-active {color: #0ad8c8;}
.my-count {width: 200px; padding: 20px 0 60px;}
.my-count h1 {height: 36px; margin: 0; padding-left: 60px; line-height: 36px; font-size: 18px; font-weight: 600; background: url(../../../images/icon_wodezhanghu.png) no-repeat 28px 6px;}
.list {padding: 0; text-indent: 60px;}
.list li {height: 24px; line-height: 24px; margin: 5px 0; border-left: 3px solid #fff; font-size: 14px; color: #888; cursor: pointer;}
.list .li-active, .list li:hover {border-left: 3px solid #0ad8c8; color: #0ad8c8;}
.my-detail {width: calc(100% - 220px); height: 680px; font-size: 14px; margin-left: 20px;}
.detail-info {width: 480px; margin: 0 auto;}
.c-vam {width: 100px; height: 100px; border-radius: 50%;}
input.type-hide {opacity: 0;-ms-filter: 'alpha(opacity=0)';}
.img-add {background: url(../../../images/shangchuan_icon.png) no-repeat 0 0;}
.form-group {height: 30px; line-height: 30px; margin-bottom: 25px;}
.form-label {width: 120px; height: 30px; color: #323232; margin: 0 20px 0 0; font-weight: normal; text-align: right;}
.form-control {width: 310px; height: 30px;}
.btn {display: block; width: 140px; height: 30px; line-height: 28px; color: #fff; margin: 0 auto;}
.btn:hover {color: #fff;}
.safe-setting {padding: 100px 80px;text-indent: 0px;}
.safe-setting li {height: 120px; padding: 30px 20px 30px 80px;}
.set-psw {background: url(../../../images/mima_icon.png) no-repeat 12px 30px;}
.safe-phone {background: url(../../../images/shouji_icon.png) no-repeat 12px 32px;}
.li-txt {width: calc(100% - 140px)}
.operate {width: 140px; padding-top: 14px;}
.psw-form {width: 310px;margin: 0 auto;}
.modify h4 {font-weight: 400;}
.operate-btn {width: 400px;margin: 0 auto;}
.operate-btn .btn {display: inline-block;margin: 0 25px;}
.operate-btn .btn-cancel {border: 1px solid #888; background-color: #fff; color: #888;}
.operate-btn .btn-cancel:hover {color: #888;}
.mdiphone-form {width: 500px; margin: 0 auto;}
.step p {padding-top: 24px;}
.step em {width: 80px; height: 4px; background-color: #d1d7d4;}
.step span {width: 52px; height: 52px; border: 2px solid #d1d7d4; border-radius: 50%; color: #909090; font-size: 16px; text-align: center; line-height: 50px;}
.set-active em {background-color: #0ad9c8;}
.set-active span, .btn {background-color: #0ad9c8; border-color: #0ad9c8; color: #fff;}
.step label {width: 100%; color: #909090; font-size: 16px; font-weight: normal;}
.set-active label {color: #0ad9c8;}
.txt-center {width: 100%; text-align: center;}
.txt-right {width: 100%; text-align: right;}
.mdi-detail-form {height: 300px;}
.send {display: inline-block; width: 75px; line-height: 32px; margin-left: -100px;}
.step3 {text-align: center;}
.success {padding-top: 100px; margin: 0 0 20px; font-weight: 500; font-size: 24px; background: url(../../../images/chenggong_icon.png) no-repeat center 0;}
.f-w400 {font-weight: 400;}
.question-li {width: 134px;}
.question-li-div {height: 38px; line-height: 38px; border: 1px solid #d1d7d4; border-radius: 3px; cursor: pointer;}
.select-active {border: 1px solid #0ad8c8; background: url(../../../images/icon_xuanzhong.png) no-repeat 115px 23px;background-size: 13% 38%;}
textarea.form-control {width: 100%; height: 100px; border-radius: 5px; resize: none;}
.limit {position: absolute; bottom: 5px; right: 5px;}
.set-img {width: 100px; height: 100px; border-radius: 5px;}
.delete-img {position: absolute; top: -4px; right: -4px; width: 16px; height: 16px; background: url(../../../images/guanbi_btn.png) no-repeat 0 0; cursor: pointer;}
.finish-device {width: 300px; margin: 0 auto; padding-top: 100px;}
.device-success {padding-top: 200px; margin: 0 0 20px; font-weight: 600; font-size: 24px; background: url(../../../images/chenggong_icon.png) no-repeat center 0; background-size: 50% 67%;}
.list-record {height: 510px;}
.list-tap, .list-detail, .list-status, .list-view {height: 30px;line-height: 30px;}
.list-tap {width: 90px; text-align: right; background: url(../../../images/biaoqian01_img.png) 0 0;}
.list-status {width: 50px; color: #ff8787;}
.list-status-active {color: #909090;}
.list-view {width: 50px;}
.list-detail {overflow: hidden; width: calc(100% - 340px); margin-right: 80px; text-overflow: ellipsis; white-space: nowrap;}
.page-btn {height: 30px; width: 30px; padding: 0; background-color: #fff; color: #888; border: 1px solid #e1e1e1; margin-left: 10px; line-height: 28px;}
.page-btn:hover {color: #888;}
.page-btn-active {background-color: #0ad8c8; color: #fff; border: 1px solid #0ad8c8;}
.page-input { width: 30px; height: 28px; padding: 0 2px; border: 0px; text-align: right; outline: none;}
.page-btn-input {width: 32px;height: 30px;margin: 0;}
.page-btn-sure {width: 32px; margin: 0; border-radius: 0; text-align: center; cursor: pointer;}

+ 41 - 0
doctor/home/html/index.html

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>医生工作管理平台</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="renderer" content="webkit">
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <meta name="keywords" content="公众健康服务平台">
        <meta name="description" content="公众健康服务平台">
        <link rel="shortcut icon" href="../../favicon.ico">
        <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/style.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
        <link rel="stylesheet" type="text/css" href="../css/index.css" />
    </head>
    <body>
        <div id="main">
        	<doctor-top></doctor-top>
            <doctor-header></doctor-header>
            <doctor-index></doctor-index>
            <page-footer></page-footer>
        </div>
        <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../js/bootstrap.min.js"></script>
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
        <!--<script src="../../api/http-request.js" type="text/javascript" charset="utf-8"></script>-->
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/doctor-top.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/doctor-header.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/doctor-home/index.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../js/index.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>

+ 44 - 0
doctor/home/html/mine.html

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>医生工作管理平台</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="renderer" content="webkit">
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <meta name="keywords" content="公众健康服务平台">
        <meta name="description" content="公众健康服务平台">
        <link rel="shortcut icon" href="../../favicon.ico">
        <link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/style.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
        <link rel="stylesheet" type="text/css" href="../css/mine.css" />
    </head>
    <body>
        <div id="main">
        	<doctor-top></doctor-top>
            <doctor-header></doctor-header>
            <doctor-mine></doctor-mine>
            <page-footer></page-footer>
        </div>
        <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../js/bootstrap.min.js"></script>
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
        <!--<script src="../../api/http-request.js" type="text/javascript" charset="utf-8"></script>-->
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/doctor-top.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/doctor-header.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/doctor-home/mine.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/doctor-home/per-info.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/doctor-home/safe-setting.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/doctor-home/device-reback.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../js/index.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>

+ 6 - 0
doctor/home/js/index.js

@ -0,0 +1,6 @@
new Vue({
    el: "#main",
    data: {
        
    }
})

+ 65 - 0
doctor/login/css/appeal.css

@ -0,0 +1,65 @@
html {overflow: auto; min-width: 970px;}
body {
	font-size: 13px;
}
ul {list-style: none;}
.top-banner{position: relative;}
.qr-container{position: absolute;right: 120px;height: 100%;display: block;top: 15%;}
.return {position: absolute; right: -5px; top: 40%; width: 105px; color: #888; text-align: center; cursor: pointer;}
.set-hover {cursor: pointer;}
.return:hover, .set-hover:hover, .c-0ad8c8 {color: #0ad8c8}
.return:active, .set-hover:active, .c-0ad8c8:active {text-decoration: underline;}
.hlogo{width: 30%;height: auto;display: block;}
.qr_code{
	height: 60%;
	width: auto;
	display: block;
	border: 3px solid #38D1CB;
	transform-origin: 100% 0;
	transition: all .5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
	cursor: pointer;
}
.qr_code:hover {
	transform: scale(2);
	position: relative;
	z-index: 2;
	box-shadow: 0 4px 8px 0 rgba(255,255,255,0.2),0 6px 20px 0 rgba(255,255,255,0.19);
}
.appeal-form {width: 900px; padding: 0px 0px 20px 30px; margin: 0 auto; border-radius: 5px;}
.txt-center {width: 100%; text-align: center;}
.txt-right {width: 100%; padding-right: 10px; text-align: right;}
.c-vam {width: 100px; height: 100px; border-radius: 50%;}
input.type-hide {opacity: 0;-ms-filter: 'alpha(opacity=0)';}
.img-add {background: url(../../../images/shangchuan_icon.png) no-repeat 0 0;}
.form-group {height: 30px; line-height: 30px; margin-bottom: 30px;}
.form-label {width: 200px; height: 30px; color: #323232; margin: 0 20px 0 0; font-weight: normal; text-align: right;}
.form-control {width: 310px; height: 30px;}
.btn {display: block; width: 140px; border-color: #0ad9c8; margin: 0 auto; background-color: #0ad9c8; color: #fff;}
.btn:hover {color: #fff;}
.question-li {width: 134px;}
.question-li-div {height: 38px; line-height: 38px; border: 1px solid #d1d7d4; border-radius: 3px; cursor: pointer;}
.select-active {border: 1px solid #0ad8c8; background: url(../../../images/icon_xuanzhong.png) no-repeat 115px 23px;background-size: 13% 38%;}
textarea.form-control {width: 100%; height: 100px; border-radius: 5px; resize: none;}
.limit {position: absolute; bottom: 5px; right: 5px;}
.set-img {width: 100px; height: 100px; border-radius: 5px;}
.delete-img {position: absolute; top: -4px; right: -4px; width: 16px; height: 16px; background: url(../../../images/guanbi_btn.png) no-repeat 0 0; cursor: pointer;}
.finish-device {width: 300px; margin: 0 auto; padding-top: 100px;}
.device-success {padding-top: 200px; margin: 0 0 20px; font-weight: 600; font-size: 24px; background: url(../../../images/chenggong_icon.png) no-repeat center 0; background-size: 50% 67%;}
.list-record {height: 510px;}
.list-tap, .list-detail, .list-status, .list-view {height: 30px;line-height: 30px;}
.list-tap {width: 120px; text-align: right; background: url(../../../images/biaoqian02_img.png) no-repeat 0 0;}
.list-status {width: 50px; color: #ff8787;}
.list-status-active {color: #909090;}
.list-view {width: 50px;}
.list-detail {overflow: hidden; width: calc(100% - 370px); margin-right: 80px; text-overflow: ellipsis; white-space: nowrap;}
.page-btn {height: 30px; width: 30px; padding: 0; background-color: #fff; color: #888; border: 1px solid #e1e1e1; margin-left: 10px; line-height: 28px;}
.page-btn:hover {color: #888;}
.page-btn-active {background-color: #0ad8c8; color: #fff; border: 1px solid #0ad8c8;}
.page-input { width: 30px; height: 28px; padding: 0 2px; border: 0px; text-align: right; outline: none;}
.page-btn-input {width: 32px;height: 30px;margin: 0;}
.page-btn-sure {width: 32px; margin: 0; border-radius: 0; text-align: center; cursor: pointer;}
.b-r-5 {border-radius: 5px;}
.c-0ad8c8 {color: #0ad8c8;cursor: pointer;}
.c-0ad8c8:active {text-decoration: underline;}

+ 50 - 0
doctor/login/css/forget.css

@ -0,0 +1,50 @@
html {overflow: auto; min-width: 970px;}
body {
	font-size: 13px;
}
.top-banner{position: relative;}
.qr-container{position: absolute;right: 120px;height: 100%;display: block;top: 15%;}
.return {position: absolute; right: -5px; top: 40%; width: 105px; color: #888; text-align: center; cursor: pointer;}
.set-hover {cursor: pointer;}
.return:hover, .set-hover:hover, .c-0ad8c8 {color: #0ad8c8}
.return:active, .set-hover:active, .c-0ad8c8:active {text-decoration: underline;}
.hlogo{width: 30%;height: auto;display: block;}
.qr_code{
	height: 60%;
	width: auto;
	display: block;
	border: 3px solid #38D1CB;
	transform-origin: 100% 0;
	transition: all .5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
	cursor: pointer;
}
.qr_code:hover {
	transform: scale(2);
	position: relative;
	z-index: 2;
	box-shadow: 0 4px 8px 0 rgba(255,255,255,0.2),0 6px 20px 0 rgba(255,255,255,0.19);
}
.c-0ad8c8 {cursor: pointer;}
.forget-form {width: 900px; padding: 50px 80px 84px; margin: 0 auto; border-radius: 5px;}
.step p {padding-top: 24px;}
.step em {width: 80px; height: 4px; background-color: #d1d7d4;}
.step span {width: 52px; height: 52px; border: 2px solid #d1d7d4; border-radius: 50%; color: #909090; font-size: 16px; text-align: center; line-height: 50px;}
.set-active em {background-color: #0ad9c8;}
.set-active span, .btn {background-color: #0ad9c8; border-color: #0ad9c8; color: #fff;}
.step label {width: 100%; color: #909090; font-size: 16px; font-weight: normal;}
.set-active label {color: #0ad9c8;}
.txt-center {width: 100%; text-align: center;}
.txt-right {width: 100%; padding-right: 10px; text-align: right;}
.detail-form {height: 210px; margin: 80px 0 0;}
.form-group {height: 30px; line-height: 30px; margin-bottom: 30px;}
.form-label {width: 200px; height: 30px; color: #323232; margin: 0 20px 0 0; font-weight: normal; text-align: right;}
.form-control {width: 310px; height: 30px;}
.btn {display: block; width: 310px; margin: 0 auto;}
.btn:hover {color: #fff;}
.appeal {cursor: pointer;}
.appeal:active {text-decoration: underline;}
.send {display: inline-block; width: 75px; line-height: 32px; margin-left: -75px;}
.step4 {text-align: center;}
.success {padding-top: 100px; margin: 0 0 20px; font-weight: 500; font-size: 30px; background: url(../../../images/chenggong_icon.png) no-repeat center 0;}
.h0 {height: 0;}

+ 134 - 0
doctor/login/css/login.css

@ -0,0 +1,134 @@
html {overflow: auto; min-width: 970px;}
body {
	font-size: 13px;
}
.mainbox{
	background: url("../../../images/BG.jpg") no-repeat 100% 100%;
}
.top-banner{position: relative;}
.qr-container{position: absolute;right: 120px;height: 100%;display: block;top: 15%;}
.return {position: absolute; right: -5px; top: 40%; width: 105px; color: #888; text-align: center; cursor: pointer;}
.set-hover {cursor: pointer;}
.return:hover, .set-hover:hover {color: #0ad8c8}
.return:active, .set-hover:active {text-decoration: underline;}
.hlogo{width: 30%;height: auto;display: block;}
.qr_code{
	height: 60%;
	width: auto;
	display: block;
	border: 3px solid #38D1CB;
	transform-origin: 100% 0;
	transition: all .5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
	cursor: pointer;
}
.qr_code:hover {
	transform: scale(2);
	position: relative;
	z-index: 2;
	box-shadow: 0 4px 8px 0 rgba(255,255,255,0.2),0 6px 20px 0 rgba(255,255,255,0.19);
}
.chahua-bg{position: relative;background: url(../../../images/BG.jpg) no-repeat center;background-size: 100% 100%;height: 700px;}
.chahua{background: url(../../../images/doctor_denglu_bg_img.png) no-repeat 5% 46.5%;position: absolute;left: 0;right: 0;top: 0;bottom: 0;}
.tabs-container {
	margin-top: 40;
	border: 10px solid rgba(255,255,255,0.2);
}
.nav.nav-tabs {
	background-color: #fff;
}
.nav.nav-tabs li {
	width: 50%;
	text-align: center;
}
.nav.nav-tabs li.active a {
	color: #0AD8C8;
}
.tabs-container .nav-tabs>li.active>a, 
.tabs-container .nav-tabs>li.active>a:focus, 
.tabs-container .nav-tabs>li.active>a:hover {
	border: 0;
	border-bottom: 3px solid #0AD8C8;
}
button[type="submit"] {
	margin-top: 20px;
}
.form-group {
		position: relative;
	}
	
.form-control{
	height: 50px;	
	background: #F5FAFA;
}	
.fhdl{margin-top: 5px;padding: 10px 10px;cursor: pointer;margin-right: -10px;}
.fhdl:hover{color: #0AD8C8;}
.getCaptcha {
	position: absolute;
	top: 6px;
	bottom: 6px;
	right: 10px;
	line-height: 38px;
}
.c-f26{font-size: 26px;}
.getCaptcha.disabled{
	cursor: not-allowed;
	filter: alpha(opacity=65);
	-webkit-box-shadow: none;
	box-shadow: none;
	opacity: .65;
}
.checkbox input[type='checkbox']{margin-top: 4px;}
.disabled{opacity: .5;pointer-events: none;cursor: default;}
.loginForm,.registerForm{
	margin-top: 100px;
	width: 400px;
	margin-right: -5px;
	border: 5px solid rgba(75, 202, 208, 0.7);
	background-color: #fff;
	transition: all .5s ease-in-out;
}
.loginForm-active{
	margin-right: 0;
}
.registerForm-active{
	margin-right: 0;
}
.btn-theme{
	color:#fff;
	background: #0AD8C8;
	border-color: #0AD8C8;
	font-size: 20px;
}
.btn-theme:hover,.btn-theme:active{
	color:#fff;
	background: #0aD9ff;
	border-color: #0AD8C8;
}
.btn-default{
	background: #fff;
	color:#333;
	font-size: 20px;
    padding-top: 10px;
}
.btn-default:hover,.btn-default:active{
	color:#333;
	background: #F4F6FA;
}
.btn{
	height: 53px;
}

+ 43 - 0
doctor/login/html/appeal.html

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>账号申诉</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />
		<meta name="keywords" content="登录">
		<meta name="description" content="登录">
		<link rel="shortcut icon" href="../../../favicon.ico">
		<!--<link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />-->
		<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../css/appeal.css" />
	</head>
	<body>
		<div id="app">
			<appeal-form></appeal-form>
			<page-footer></page-footer>
		</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
		<script src="../../../js/bootstrap.min.js"></script>
		<script src="../../../js/validate/jquery.validate.min.js"></script>
		<script src="../../../js/validate/messages_zh.min.js"></script>
		<script src="../../../js/security.js"></script>
		<script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/patient/login-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>		
		<script src="../../../component/doctor/appeal.js"></script>
		<script src='../../../component/common/footer.js'></script>
		<script src="../js/appeal.js"></script>
	</body>
</html>

+ 43 - 0
doctor/login/html/forget.html

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>忘记密码</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />
		<meta name="keywords" content="登录">
		<meta name="description" content="登录">
		<link rel="shortcut icon" href="../../../favicon.ico">
		<!--<link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />-->
		<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../css/forget.css" />
	</head>
	<body>
		<div id="app">
			<forget-form></forget-form>
			<page-footer></page-footer>
		</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
		<script src="../../../js/bootstrap.min.js"></script>
		<script src="../../../js/validate/jquery.validate.min.js"></script>
		<script src="../../../js/validate/messages_zh.min.js"></script>
		<script src="../../../js/security.js"></script>
		<script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/patient/login-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>		
		<script src="../../../component/doctor/forget.js"></script>
		<script src='../../../component/common/footer.js'></script>
		<script src="../js/forget.js"></script>
	</body>
</html>

+ 43 - 0
doctor/login/html/login.html

@ -0,0 +1,43 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>登录</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0">
		<meta name="renderer" content="webkit">
		<meta http-equiv="Cache-Control" content="no-siteapp" />
		<meta name="keywords" content="登录">
		<meta name="description" content="登录">
		<link rel="shortcut icon" href="../../../favicon.ico">
		<!--<link rel="stylesheet" type="text/css" href="../../../css/font-awesome.min.css" />-->
		<link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/api/css/ui-dialog.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../css/login.css" />
	</head>
	<body>
		<div id="app">
			<login-form></login-form>
			<page-footer></page-footer>
		</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
		<script src="../../../js/bootstrap.min.js"></script>
		<script src="../../../js/validate/jquery.validate.min.js"></script>
		<script src="../../../js/validate/messages_zh.min.js"></script>
		<script src="../../../js/security.js"></script>
		<script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/patient/login-api.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>		
		<script src="../../../component/doctor/login.js"></script>
		<script src='../../../component/common/footer.js'></script>
		<script src="../js/login.js"></script>
	</body>
</html>

+ 5 - 0
doctor/login/js/appeal.js

@ -0,0 +1,5 @@
new Vue({
	el: "#app",
	data: {
	},
});

+ 5 - 0
doctor/login/js/forget.js

@ -0,0 +1,5 @@
new Vue({
	el: "#app",
	data: {
	},
});

+ 5 - 0
doctor/login/js/login.js

@ -0,0 +1,5 @@
new Vue({
	el: "#app",
	data: {
	},
});

BIN
images/biaoqian01_img.png


BIN
images/biaoqian02_img.png


BIN
images/chenggong_icon.png


BIN
images/doctor_denglu_bg_img.png


BIN
images/doctor_logo_img.png


BIN
images/doctor_logo_menhu_img.png


BIN
images/guanbi_btn.png


BIN
images/kong_img.png


BIN
images/menghu_bg_img.png


BIN
images/mima_icon.png


BIN
images/queshengye-.png


BIN
images/shangchuan_icon.png


BIN
images/shouji_icon.png


BIN
images/shouye_huizheng_icon.png


BIN
images/shouye_yixue_icon.png


BIN
images/shouye_zhuanzhen_icon.png


File diff suppressed because it is too large
+ 1 - 0
js/base64.min.js


File diff suppressed because it is too large
+ 0 - 2
js/toastr/toastr.min.js


+ 206 - 103
page/appointment/css/appointment.css

@ -1,103 +1,206 @@
.bgc-ebf4f3{
    background-color: #EBF4F3;
}
.bgc-f6f6f6{
    background-color: #f6f6f6;
}
.c-fea7a8{
    color: #FEA7A8;
}
.c-f4b87f{
    color: #F4B87F;
}
.div-table{
    display: table;
    width: 100%;
    border-top: 1px solid #e1e1e1;
    border-left: 1px solid #e1e1e1;
}
.table-row{
    display: table-row;
}
.table-cell{
    display: table-cell;
    border-bottom: 1px solid #e1e1e1;
    border-right: 1px solid #e1e1e1;
    padding: 15px 0 8px;
    text-align: center;
    vertical-align: middle;
}
.table-cell.arrow-cell{
    width: 54px;
}
.table-cell.arrow-cell.active{
    background-color: #0AD8C8;
}
.table-cell.arrow-cell.active>i{
    color: #fff;
}
.table-cell.active{
    border: 2px solid #0AD8C8;
    position: relative;
}
.table-cell.active:after{
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 25px;
    height: 27px;
    background: url(../../../images/icon_xuanzhong.png) no-repeat;
    background-size: 100% 100%;
}
.table-cell.arrow-cell.active:after{
    background: none;
}
.yy-tag{
    display: inline-block;
    background-color: #c1c1c1;
    color: #fff;
    padding: 1px 10px;
    border-radius: 12px;
    margin-top: 5px;
}
.yy-tag.active{
    background-color: #0AD8C8;
}
.source-tag{
    border: 1px solid #e1e1e1;
    width: calc(100% - 20px);
    padding: 10px 0;
}
.source-tag span{
    display: inline-block;
    width: 50%;
    text-align: center;
}
.source-tag span:first-child{
    border-right: 1px solid #e1e1e1;
}
.source-tag.active{
    border: 1px solid #0AD8C8;
    position: relative;
}
.source-tag.active:after{
    content: '';
    position: absolute;
    right: 0;
    bottom: 0;
    width: 25px;
    height: 27px;
    background: url(../../../images/icon_xuanzhong.png) no-repeat;
    background-size: 100% 100%;
}
.c-border-t-dashed{
    border-bottom: 1px dashed #e1e1e1;
}
.btn-white{
    border-color: #d1d7d4;
    color: #d1d7d4;
}
.c-border-dashed{
    border: 1px dashed #e1e1e1;
}
.bgc-ebf4f3 {
	background-color: #EBF4F3;
}
.bgc-f6f6f6 {
	background-color: #f6f6f6;
}
.c-fea7a8 {
	color: #FEA7A8;
}
.c-f4b87f {
	color: #F4B87F;
}
.c-ffb5b6 {
	color: #ffb5b6;
}
.c-f3be88 {
	color: #f3be88;
}
.div-table {
	display: table;
	width: 100%;
	border-top: 1px solid #e1e1e1;
	border-left: 1px solid #e1e1e1;
}
.table-row {
	display: table-row;
}
.table-cell {
	display: table-cell;
	border-bottom: 1px solid #e1e1e1;
	border-right: 1px solid #e1e1e1;
	padding: 15px 0 8px;
	text-align: center;
	vertical-align: middle;
}
.table-cell.arrow-cell {
	width: 54px;
}
.table-cell.arrow-cell.active {
	background-color: #0AD8C8;
}
.table-cell.arrow-cell.active>i {
	color: #fff;
}
.table-cell.active {
	border: 2px solid #0AD8C8;
	position: relative;
}
.table-cell.active:after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	width: 25px;
	height: 27px;
	background: url(../../../images/icon_xuanzhong.png) no-repeat;
	background-size: 100% 100%;
}
.table-cell.arrow-cell.active:after {
	background: none;
}
.yy-tag {
	display: inline-block;
	background-color: #c1c1c1;
	color: #fff;
	padding: 1px 10px;
	border-radius: 12px;
	margin-top: 5px;
}
.yy-tag.active {
	background-color: #0AD8C8;
}
.source-tag {
	border: 1px solid #e1e1e1;
	width: calc(100% - 20px);
	padding: 10px 0;
}
.source-tag span {
	display: inline-block;
	width: 50%;
	text-align: center;
}
.source-tag span:first-child {
	border-right: 1px solid #e1e1e1;
}
.source-tag.active {
	border: 1px solid #0AD8C8;
	position: relative;
}
.source-tag.active:after {
	content: '';
	position: absolute;
	right: 0;
	bottom: 0;
	width: 25px;
	height: 27px;
	background: url(../../../images/icon_xuanzhong.png) no-repeat;
	background-size: 100% 100%;
}
.c-border-t-dashed {
	border-bottom: 1px dashed #e1e1e1;
}
.btn-white {
	border-color: #d1d7d4;
	color: #d1d7d4;
}
.c-border-dashed {
	border: 1px dashed #e1e1e1;
}
.my-dialog .ui-dialog-footer button {
	color: #909090;
	border-color: #e1e1e1;
}
.my-dialog .ui-dialog-footer button:hover,
.my-dialog .ui-dialog-footer button:focus,
.my-dialog .ui-dialog-footer button:active {
	color: #909090;
	border-color: #e1e1e1;
	background-color: #fff;
}
.my-dialog .ui-dialog-footer button:focus {
	outline: none;
	outline: 5px auto -webkit-focus-ring-color;
	outline-offset: -2px;
}
.my-dialog .ui-dialog-footer button.ui-dialog-autofocus {
	color: #fff;
	background-color: #0AD8C8;
	border-color: #0AD8C8;
}
.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: #0AD8C8;
	border-color: #0AD8C8;
}
.h50 {
	height: 50px;
}
.h684 {
	height: 684px;
}
.btn-primary {
	border-color: #0AD8C8;
}
.div-btn {
	height: 50px;
	line-height: 50px;
	width: 130px;
	text-align: center;
}
.ml67 {
	margin-left: 67px;
}
.mr16 {
	margin-right: 16px;
}
.mt26 {
	margin-top: 26px;
}
.mt18 {
	margin-top: 18px;
}
#div_map {
	height: 474px;
	border: 1px solid #dcdcdc;
}

+ 16 - 12
page/appointment/html/confirm-info.html

@ -18,7 +18,7 @@
        <link rel="stylesheet" type="text/css" href="../css/appointment.css"/>
    </head>
    <body class="bgc-f5f9f9">
        <div id="main">
        <div id="main" v-cloak>
            <page-header></page-header>
            <div class="container mt20">
                <div class="ui-grid">
@ -33,19 +33,19 @@
                            <div class="ui-grid" style="padding: 20px 40px 20px;">
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">就诊时间</div>
                                    <div class="c-f16 mt20">2017/01/03<span class="ml10">上午</span></div>
                                    <div class="c-f16 mt20">{{dateInfo.registerDate}}<span class="ml10">{{dateInfo.timeId == 1 ? "上午" : "下午"}}</span></div>
                                </div>
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">预约医生</div>
                                    <div class="c-f16 mt20">刘的还<span class="ml10 c-909090 c-f14">主任医师</span></div>
                                    <div class="c-f16 mt20">{{baseInfo.doctorName}}<span class="ml10 c-909090 c-f14">{{baseInfo.lczcName}}</span></div>
                                </div>
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">预约医院</div>
                                    <div class="c-f16 mt20">上饶第一医院</div>
                                    <div class="c-f16 mt20">{{baseInfo.hosName}}</div>
                                </div>
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">预约科室</div>
                                    <div class="c-f16 mt20">骨科</div>
                                    <div class="c-f16 mt20">{{baseInfo.deptName}}</div>
                                </div>
                            </div>
                        </div>
@ -56,23 +56,23 @@
                            <div class="ui-grid" style="padding: 20px 40px 20px;">
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">姓名</div>
                                    <div class="c-f16 mt20">李云龙</div>
                                    <div class="c-f16 mt20">{{patientInfo.realName}}</div>
                                </div>
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">证件号码</div>
                                    <div class="c-f16 mt20">350266198802153655</div>
                                    <div class="c-f16 mt20">{{patientInfo.idCardNo}}</div>
                                </div>
                                <div class="ui-col-1">
                                    <div class="c-f14 c-909090">手机号</div>
                                    <div class="c-f16 mt20">12700000002</div>
                                    <div class="c-f16 mt20">{{patientInfo.telephone}}</div>
                                </div>
                            </div>
                        </div>
                        <div class="mt50 text-center">
                            <button type="button" class="btn btn-primary mr50">确认预约</button>
                            <button type="button" class="btn btn-white">取消预约</button>
                            <button type="button" class="btn btn-primary mr50" @click="confirm">确认预约</button>
                            <button type="button" class="btn btn-white" @click="cancel">取消预约</button>
                        </div>
                        <div class="mt30 c-border-dashed bgc-f6f6f6 ptb15 plr20">
                        <div class="mt30 mb30 c-border-dashed bgc-f6f6f6 ptb15 plr20">
                            <div class="c-f16 c-909090">预约须知</div>
                            <div class="c-666 mt5">频繁刷新导致IP被限制2小时不能预约挂号,若耽误您预约,后果自负。</div>
                            <div class="c-f16 c-909090 mt10">温馨提示</div>
@ -89,12 +89,16 @@
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
        <!--<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>-->
        <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/patient/appointment-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../plugins/layer/layer.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/appointment-step.js" type="text/javascript" charset="utf-8"></script>
        <!--利用搜狐的接口获得ip-->
        <script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
        <script src="../js/confirm-info.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>

+ 1 - 0
page/appointment/html/select-hospital.html

@ -50,6 +50,7 @@
		<script src="../../../api/patient/appointment-api.js"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/paging.js"></script>
		<script src="../../../js/base64.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>

+ 10 - 7
page/appointment/html/select-time.html

@ -18,7 +18,7 @@
        <link rel="stylesheet" type="text/css" href="../css/appointment.css"/>
    </head>
    <body>
        <div id="main">
        <div id="main" v-cloak>
            <page-header></page-header>
            <div class="container mt20">
                <div class="ui-grid">
@ -30,23 +30,23 @@
                        <section class="mt10" name="doc-info">
                            <div class="ui-grid">
                                <div class="ui-col-0 mr30">
                                    <img src="../../../images/d-male.png" width="120" height="120" class="c-images-cycle">
                                    <img :src="docInfo.photoUri || '../../../images/d-male.png'" width="120" height="120" class="c-images-cycle">
                                </div>
                                <div class="ui-col-1">
                                    <p><span class="c-f20 c-323232 c-bold mr20">路易斯</span><span class="c-f16 c-323232 mr20">主治医师</span><span class="c-f16 c-909090">骨科</span></p>
                                    <p class="c-f16 c-909090">上饶市第一医院</p>
                                    <p class="c-f16"><span class="c-909090">擅长:</span><span class="c-323232">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</span></p>
                                    <p><span class="c-f20 c-323232 c-bold mr20">{{docInfo.doctorName}}</span><span class="c-f16 c-323232 mr20">{{docInfo.lczcName}}</span><span class="c-f16 c-909090">{{docInfo.deptName}}</span></p>
                                    <p class="c-f16 c-909090">{{docInfo.hosName}}</p>
                                    <p class="c-f16"><span class="c-909090">擅长:</span><span class="c-323232">{{docInfo.skill}}</span></p>
                                    <div class="ui-grid c-f16">
                                        <div class="ui-col-0"><span class="c-909090">简介:</span></div>
                                        <div class="ui-col-1">
                                            <p class="c-323232 c-nowrap-multi">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</p>
                                            <p class="c-323232 c-nowrap-multi">{{docInfo.intro}}</p>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </section>
                        <!--医生号源日期展示-->
                        <date-scource></date-scource>
                        <date-scource :doctorsn="doctorSn" :arrangeid="arrangeID" :registerdate="registerDate"></date-scource>
                    </div>
                </div>
            </div>
@ -59,9 +59,12 @@
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../plugins/pace/pace.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/base64.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/patient/appointment-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../plugins/layer/layer.min.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>

+ 18 - 40
page/appointment/html/success-info.html

@ -16,32 +16,6 @@
        <link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
        <link rel="stylesheet" type="text/css" href="../../../css/common.css"/>
        <link rel="stylesheet" type="text/css" href="../css/appointment.css"/>
        <style>
        	.h50{
        		height: 50px;
        	}
        	.h684{
        		height: 684px;
        	}
        	.btn-primary{
        		border-color: #0AD8C8;
        	}
        	.div-btn{
        		height: 50px;line-height: 50px;width: 130px;text-align: center;
        	}
        	.ml67{
        		margin-left: 67px;
        	}
        	.mr16{
        		margin-right: 16px;
        	}
        	.mt26{
        		margin-top: 26px;
        	}
        	.mt18{
        		margin-top: 18px;
        	}
        </style>
    </head>
    <body class="bgc-f5f9f9">
        <div id="main">
@ -56,53 +30,57 @@
                            <img src="../../../images/success.png" width="228" height="137" class="mt20">
                            <div class="c-f16 c-bold">预约成功!</div>
                            <div class="mt50">
                                <button type="button" class="btn btn-primary plr20">返回</button>
                                <button type="button" class="btn btn-primary plr20" @click="backPage">返回</button>
                            </div>
                        </div>
                        <div class="mt30 c-border bgc-fff">
                            <div class="h50 c-border-b" style="display: -webkit-box">
                            	<div class="div-btn c-border-r btn-primary">交通路线</div>
                            	<div class="div-btn c-border-r">楼层分布</div>
                            	<div class="div-btn c-border-r" :class="{'btn-primary': activeTabIdx==1}" @click="activeTab(1)">交通路线</div>
                            	<!--<div class="div-btn c-border-r" :class="{'btn-primary': activeTabIdx==2}" @click="activeTab(2)">楼层分布</div>-->
                            </div>
                            <div class="h684" id="jiaoTongLuXian">
                            <div class="h684" v-show="activeTabIdx==1" v-cloak>
                            	<div class="ml30 mt20">
                            		<img src="../../../images/icon_lianxifangshi.png" width="21" height="21" class="mr16"/>
                            		<label class="c-f14 c-323232">联系方式:</label>
                            		<label class="c-f14 c-909090">13500000001</label>
                            		<label class="c-f14 c-909090">{{data.contact}}</label>
                            	</div>
                            	<div class="ml30 mt26">
                            		<img src="../../../images/icon_dizhiyiyuan.png" width="21" height="21" class="mr16"/>
                            		<label class="c-f14 c-323232">医院地址:</label>
                            		<label class="c-f14 c-909090">福建省厦门市思明区</label>
                            		<label class="c-f14 c-909090">{{data.address}}</label>
                            	</div>
                            	<div class="ml30 mt26">
                            		<img src="../../../images/icon-gonggjiaotong.png" width="21" height="21" class="mr16"/>
                            		<label class="c-f14 c-323232">公共交通:</label>
                            		<label class="c-f14 c-909090">乘1、15路到厦大站下车</label>
                            		<label class="c-f14 c-909090">{{data.traffic}}</label>
                            	</div>
                            	<div class="ml67 mt18 c-f14 c-909090">
                            	<!--<div class="ml67 mt18 c-f14 c-909090">
                            		乘1、15路到厦大站下车
                            	</div>
                            	<div class="ml30 mt20 mb20 mr20" style="height: 474px;border: 1px solid #dcdcdc;">
                            		地图内容
                            	</div>-->
                            	<div class="ml30 mt20 mb20 mr20" id="div_map">
                            		
                            	</div>
                            </div>
                        	<div class="c-909090 c-f14 h684 c-hide" id="louCengFenBu">
                        	<!--<div class="c-909090 c-f14 h684" v-show="activeTabIdx==2">
                        		楼层位置信息
                        	</div>
                        	</div>-->
                        </div>
                    </div>
                </div>
            </div>
            <page-footer></page-footer>
        </div>
        <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=1W9gqPiqc7C9TDliPP8S9Rj9"></script>
		<script type="text/javascript" src="http://api.map.baidu.com/library/TextIconOverlay/1.2/src/TextIconOverlay_min.js"></script>
		<script type="text/javascript" src="http://api.map.baidu.com/library/MarkerClusterer/1.2/src/MarkerClusterer_min.js"></script>
        <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../js/bootstrap.min.js"></script>
        <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
        <!--<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>-->
        <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../api/patient/appointment-api.js"></script>
        <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>

+ 110 - 1
page/appointment/js/confirm-info.js

@ -1,9 +1,118 @@
var request = GetRequest(),
    id = request.id;
new Vue({
    el: "#main",
    data: {
        
        dateInfo: {},
        numberInfo: {},
        baseInfo: {},
        patientInfo: {}
    },
    mounted: function(){
        EventBus.$emit("jump-step",{step:4});//step:跳转的步数
        //从缓存获取前一个页面缓存的信息
        var dateInfo = window.localStorage.getItem("dateInfo"),
            numberInfo = window.localStorage.getItem("numberInfo"),
            baseInfo = window.localStorage.getItem("baseInfo"),
            patientInfo = window.sessionStorage.getItem("oauthInfo");
        
        if(patientInfo){
            patientInfo = JSON.parse(patientInfo);
            this.patientInfo = patientInfo;
        }
        if(dateInfo){
            dateInfo = JSON.parse(dateInfo);
            this.dateInfo = dateInfo;
        }
        if(numberInfo){
            numberInfo = JSON.parse(numberInfo);
            this.numberInfo = numberInfo;
        }
        if(baseInfo){
            baseInfo = JSON.parse(baseInfo);
            this.baseInfo = baseInfo;
        }
    },
    methods: {
        confirm: function(){
            var userInfo = this.patientInfo,
                baseInfo = this.baseInfo,
                dateInfo = this.dateInfo,
                numberInfo = this.numberInfo;
            var params = {
                thirdPartyUserId: userInfo.id,
                patientName: userInfo.realName,
                tel: userInfo.telephone,
                IP: returnCitySN.cip, //通过搜狐接口获得ip地址
                cardNo: userInfo.idCardNo,
                modeId: dateInfo.modeId,
                hospitalId: baseInfo.hospitalId,
                hospitalName: baseInfo.hosName,
                hosDeptId: baseInfo.hosDeptId,
                hosDeptName: baseInfo.deptName,
                doctorSn: baseInfo.doctorSn,
                doctorName: baseInfo.doctorName,
                numberSn: numberInfo.numberSN,
                numberPrice: dateInfo.specialPrice,
                thirdPartyOrderId: id,
                registerDate: dateInfo.registerDate,
                timeId: dateInfo.timeId,
                commendTime: numberInfo.commendTime,
                serialNo: numberInfo.serialNo
            }
            appointmentAPI.createRegOrderForOpen(params).then(function(res){
                if(res.successFlg){
                    if(res.obj.Code == "10000"){
                        var orderId = res.obj.orderId;
                        //更新我们自己系统的挂号单信息
                        var params2 = {
                            id: res.obj.thirdPartyOrderId,
                            userId: userInfo.id
                        };
                        appointmentAPI.updateRegistrationOrder(params2).then(function(res){
                            console.log(res);
                            if(res.successFlg){
                                window.localStorage.removeItem("dateInfo");
                                window.localStorage.removeItem("numberInfo");
                                window.localStorage.removeItem("baseInfo");
                                
                                window.location.href = "success-info.html?orderId="+orderId+"&hospitalId="+baseInfo.hospitalId+"&deptId="+baseInfo.hosDeptId;
                            }else{
                                console.log(res.errorMsg);
                            }
                        })
                    }else{
                        showErrorMessage(res.obj.Message);
                    }
                }else{
                    showErrorMessage(res.errorMsg);
                }
            });
        },
        cancel: function(){
            var params = {
                id: id,
                state: 99 //订单状态: 1-待付款,2-待就诊,11-预约中,22-退款中,99-已退号,-1-系统取消,3-已就诊
            };
            appointmentAPI.updateOrderState(params).then(function(res){
                if(res.successFlg){
                    window.localStorage.removeItem("dateInfo");
                    window.localStorage.removeItem("numberInfo");
                    window.localStorage.removeItem("baseInfo");
            
                    document.history.back();
                }else{
                    showErrorMessage(res.errorMsg);
                }
            })
            
        }
    }
    
    function showErrorMessage(content){
        layer.msg(content, {
            icon: 2,
            time: 3000
        });
    }
})

+ 15 - 4
page/appointment/js/select-time.js

@ -1,15 +1,26 @@
var request = GetRequest(),
    doctorSn = Base64.decode(request.doctorSn),
    arrangeID = request.arrangeID,
    registerDate = request.registerDate;
new Vue({
    el: "#main",
    data: {
        page: 1, // 分页,从第一页开始
        pageSize: 10, //1~100
        doctorSn: doctorSn,
        docInfo: {},
        arrangeID: arrangeID,
        registerDate: registerDate
    },
    mounted: function(){
        EventBus.$emit("jump-step",{step:3});//step:跳转的步数
        
        //设置监听获取医生信息
        var vm = this;
        EventBus.$on("get-doctor-info", function(arg){
            vm.docInfo = arg.docInfo;
        });
//      getDoctorInfo(this);
    },
    methods: {
        
    }
})

+ 79 - 21
page/appointment/js/success-info.js

@ -1,22 +1,80 @@
new Vue({
    el: "#main",
    data: {
        
    },
    mounted: function(){
        EventBus.$emit("jump-step",{step:4});//step:跳转的步数
        
        $(".div-btn").on("click",function(){
        	var index = $(this).index();
        	if(index==0){
        		$("#jiaoTongLuXian").show();
        		$("#louCengFenBu").hide();
        	}else{
        		$("#jiaoTongLuXian").hide();
        		$("#louCengFenBu").show();
        	}
        	$(".div-btn").removeClass("btn-primary");
        	$(this).addClass("btn-primary");
        })
    }
})
	el: "#main",
	data: function() {
		return {
			activeTabIdx: 1,
			hospitalId:"",
			data: {}
		}
	},
	mounted: function() {
		this.hospitalId = this.getRequest("hospitalId");
		EventBus.$emit("jump-step", {
			step: 4
		}); //step:跳转的步数
		this.querySimpleHospitalById();
	},
	methods: {
		activeTab: function(idx) {
			this.activeTabIdx = idx;
		},
		//获取医院详情
		querySimpleHospitalById: function() {
			var vm = this;
			appointmentAPI.querySimpleHospitalById({
				hospitalId: vm.hospitalId
			}).then(function(res) {
				if(res.successFlg && res.obj.Code == "10000") {
					var obj = res.obj;
					vm.data = obj;
					vm.doLocate(obj.jd, obj.wd);
				}
			});
		},
		backPage: function() {
			window.location.href = "select-hospital.html";
		},
		//根据经纬度定位
		doLocate: function(jd, wd) {
			// 百度地图API功能
			var map = new BMap.Map("div_map");
			// 创建Map实例
			map.enableScrollWheelZoom();
			//启用滚轮放大缩小
			map.centerAndZoom(new BMap.Point(jd, wd), 15);
			var point = new BMap.Point(jd, wd);
			var marker = new BMap.Marker(point);
			map.addOverlay(marker);
			// map.addOverlay(new BMap.Marker(point));
			//			marker.enableDragging(); //启用标注拖动
			//			marker.addEventListener('dragend', function(e) { //拖动标注结束
			//				var pointNew = e.point;
			//				console.log(pointNew);
			//				alert(pointNew.lng + '|' + pointNew.lat);
			//			});
			map.centerAndZoom(point, 15);
			// 初始化地图,设置中心点坐标和地图级别。
		},
		getRequest: function(name) {
			var url = window.location.href; //获取地址栏url
			var pattern = new RegExp("[?&]" + name + "\=([^&]+)", "g");
			var matcher = pattern.exec(url);
			var items = null;
			if(null != matcher) {
				try {
					items = decodeURIComponent(decodeURIComponent(matcher[1]));
				} catch(e) {
					try {
						items = decodeURIComponent(matcher[1]);
					} catch(e) {
						items = matcher[1];
					}
				}
			}
			return items;
		}
	}
})

+ 27 - 4
page/home/css/index.css

@ -1,12 +1,13 @@
.item img{
    height: 450px!important;
    /* height: 450px!important; */
    width: 100%!important
}
.fc{
    display: flex;
    display: -webkit-flex; 
    align-items: center;
    justify-content: center
    justify-content: center;
    flex-wrap: wrap
}
.fcolumn{
    display: flex;
@ -18,9 +19,12 @@
.carousel-indicators .active{
    width: 36px;
}
.box_container{
    overflow: hidden;
.box_container:after {
    clear: both;
}
.box{
    width:414px;
    height: 366px;
@ -29,6 +33,9 @@
    float: left;
    margin-right: 20px
}
.lastBox{
  margin-right:0
}
.box_head{
    padding: 20px 24px 0  20px
}
@ -127,4 +134,20 @@
}
.mb60{
    margin-bottom: 60px
}
.dropdown-menu{
    max-height:300px ;
    overflow: auto;
}
@media (min-width: 1300px){
    .container {
        width: 1300px;
    }
}
@media (max-width: 943px){
    .lastBox{
        margin-right:20px
    }
}

+ 23 - 21
page/home/html/index.html

@ -43,7 +43,7 @@
        </div>
        <div class="fc mb60">
            <div class="index_wrap">
                <div class="box_container">
                <div class="box_container fc fwrap">
                    <div class="box">
                        <div class="box_head">
                            <span class="box_title">我的就诊</span>
@ -51,7 +51,7 @@
                        </div>
                        <div class="box_content">下载APP已便获取提醒消息,我们诚邀您对每一次就诊进行评价,帮助我们提供更好的服务</div>
                        <div class="box_bottom">
                            <button class="box_button">查看详情</button>
                            <button class="box_button" @click="goMyJiuZhen">查看详情</button>
                            <img src="../image/p1.png">
                        </div>
                    </div>
@ -66,68 +66,68 @@
                            <img src="../image/p2.png">
                        </div>
                    </div>
                    <div class="box" style="margin-right:0">
                    <div class="box lastBox" >
                        <div class="box_head">
                            <span class="box_title">快速节约</span>
                            <span class="frendBox_head">快速预约</span>
                            <span class="box_title_remark">节省80%就医时间</span>
                        </div>
                        <div class="fcolumn">
                            <div class="dropdown" style="margin-top:30px">
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu1" data-toggle="dropdown">{{yuYue.hospital || '请选择医院'}}
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu1" data-toggle="dropdown">{{YiYuan.hosName || '请选择医院'}}
                                    <span class="caret"></span>
                                </a>
                                <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu1">
                                    <li role="presentation" >
                                        <a role="menuitem" tabindex="-1"  @click="setYiYuan('Java')">Java</a>
                                    <li role="presentation"  v-for="(item,i) in YiYuanArr">
                                        <a role="menuitem" tabindex="-1"  @click="setYiYuan(item)">{{item.hosName}}</a>
                                    </li>
                                    
                                </ul>
                            </div>
                            <div class="dropdown">
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu2" data-toggle="dropdown">{{yuYue.hospital || '请选择科室'}}
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu2" data-toggle="dropdown">{{KeShi.deptName   ||  '请选择科室'}}
                                    <span class="caret"></span>
                                </a>
                                <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu2">
                                    <li role="presentation" >
                                        <a role="menuitem" tabindex="-1"  @click="setYiYuan('Java')">Java</a>
                                    <li role="presentation"  v-for="(item,i) in KeShiArr">
                                        <a role="menuitem" tabindex="-1"  @click="setKeShi(item)">{{item.deptName}}</a>
                                    </li>
                                    
                                </ul>
                            </div>
                            <div class="dropdown">
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu3" data-toggle="dropdown">{{yuYue.hospital || '请选择医生'}}
                                <a type="button" class="btn dropdown-toggle box_select" id="dropdownMenu3" data-toggle="dropdown">{{YiSheng.doctorName  ||  '请选择医生'}}
                                    <span class="caret"></span>
                                </a>
                                <ul class="dropdown-menu" role="menu" aria-labelledby="dropdownMenu3">
                                    <li role="presentation" >
                                        <a role="menuitem" tabindex="-1"  @click="setYiYuan('Java')">Java</a>
                                    <li role="presentation"  v-for="(item,i) in YiShengArr">
                                        <a role="menuitem" tabindex="-1"  @click="setYiSheng(item)">{{item.doctorName}}</a>
                                    </li>
                                    
                                </ul>
                            </div>
                            <button class="box_largeBtn">立即挂号</button>
                            <button class="box_largeBtn" @click="save">立即挂号</button>
                        </div>
        
                    </div>
                </div>
                <div class="frendBox">
                    <div class="frendBox_head">友情链接</div>
                    <div class="frendBox_content">
                    <div class="frendBox_head ml20">友情链接</div>
                    <div class="frendBox_content fc fwrap">
                        <div class="frendBox_content_box fc">
                            <img src="../image/frend_logo.png">
                            <span>国家卫生与计划生育委员会</span>
                        </div>
                        <div class="frendBox_content_box fc">
                            <img src="../image/frend_logo.png">
                            <span>国家卫生与计划生育委员会</span>
                            <span>江西省卫生与计划生育委员会</span>
                        </div>
                        <div class="frendBox_content_box fc">
                            <img src="../image/frend_logo.png">
                            <span>国家卫生与计划生育委员会</span>
                            <span>上饶市卫生与计划生育委员会</span>
                        </div>
                        <div class="frendBox_content_box fc">
                            <img src="../image/frend_logo.png">
                            <span>国家卫生与计划生育委员会</span>
                            <img src="../image/icon_logo.png">
                            <span>健康上饶医生工作管理平台</span>
                        </div>
                    </div>       
                </div>
@ -143,8 +143,10 @@
    <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
    <!--<script src="../../api/http-request.js" type="text/javascript" charset="utf-8"></script>-->
    <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/base64.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../api/patient/appointment-api.js"></script>
    <script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/footer.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>

BIN
page/home/image/icon_logo.png


+ 130 - 12
page/home/js/index.js

@ -1,23 +1,141 @@
$(function () {
$(function(){
  
    new Vue({
        el: "#main",
        data: {
            yuYue:{
               hospital:''
            }
            YiYuan: {
                hosName: '',
                hospitalId: ''
            },
            YiYuanArr: [],
            KeShi: {
                deptName: '',
                hosDeptId: ''
            },
            KeShiArr: [],
            YiSheng: {
                doctorName: '',
                doctorSn: ''
            },
            YiShengArr: [],
        },
        mounted () {
            $("#myCarousel").carousel('cycle')
        mounted() {
            $("#myCarousel").carousel('cycle');
            this.getYiYuan();
            //从缓存获取前一个页面缓存的信息
            var dateInfo = window.localStorage.getItem("dateInfo"),
                numberInfo = window.localStorage.getItem("numberInfo"),
                patientInfo = window.sessionStorage.getItem("oauthInfo");
            if (patientInfo) {
                patientInfo = JSON.parse(patientInfo);
                this.patientInfo = patientInfo;
            }
            if (numberInfo) {
                numberInfo = JSON.parse(numberInfo);
                this.numberInfo = numberInfo;
            }
        },
        methods: {
            setYiYuan(value){
                this.yuYue.hospital = value
            setYiYuan(value) {
                console.log(value);
                this.YiYuan.hosName = value.hosName;
                this.YiYuan.hospitalId = value.hospitalId;
                var vm = this;
                var params = {
                    pageIndex: 1,
                    pageSize: 99,
                    hospitalId: this.YiYuan.hospitalId
                }
                appointmentAPI.querySimpleHosDeptList(params).then(function (res) {
                    console.log(res);
                    if (res.successFlg && res.obj.Code == "10000") {
                        vm.KeShiArr = res.obj.Result;
                        vm.KeShi.deptName = '';
                        vm.KeShi.hosDeptId = '';
                        vm.YiShengArr = [];
                        vm.YiSheng.doctorName = '';
                        vm.YiSheng.doctorUid = '';
                    }
                }).catch(function (err) {
                    consolel.log(err)
                })
            },
            setKeShi(value) {
                console.log(value);
                if (!this.YiYuan.hospitalId) {
                    alert('请先选择医院')
                    return
                }
                this.KeShi.deptName = value.deptName;
                this.KeShi.hosDeptId = value.hosDeptId;
                //查询医生总数
                var vm = this;
                var params = {
                    pageIndex: 1,
                    pageSize: 99,
                    hospitalId: vm.YiYuan.hospitalId,
                    hosDeptId: vm.KeShi.hosDeptId
                }
                appointmentAPI.querySimpleDoctorList(params).then(function (res) {
                    console.log(res);
                    if (res.successFlg && res.obj.Code == "10000") {
                        if (!res.obj.Result) {
                            res.obj.Message && alert(res.obj.Message)
                        } else {
                            vm.YiShengArr = res.obj.Result;
                            vm.YiSheng.doctorName = '';
                            vm.YiSheng.doctorUid = '';
                        }
                        //获取医生排班数据
                    }
                })
            },
            setYiSheng(value) {
                console.log(value);
                if (!this.KeShi.hosDeptId) {
                    alert('请先选择科室')
                    return
                }
                this.YiSheng.doctorName = value.doctorName;
                this.YiSheng.doctorSn = value.doctorSn;
            },
            goMyJiuZhen() {
                window.location.href = '../../mineJiuZhen/html/mineJiuZhen.html'
            },
            getYiYuan() {
                var params = {
                        pageIndex: 1,
                        pageSize: 99,
                        provinceCode: 360000,
                        cityCode: 361100
                    },
                    vm = this;
                appointmentAPI.querySimpleHospitalList(params).then(function (res) {
                    console.log(res);
                    if (res.successFlg && res.obj.Code == "10000") {
                        vm.YiYuanArr = res.obj.Result;
                    }
                }).catch(function (err) {
                    console.error(err)
                })
            },
            save() {
                if (!this.YiYuan.hospitalId) {
                    alert('请选择医院')
                    return
                } else if (!this.KeShi.hosDeptId) {
                    alert('请选择科室')
                    return
                } else if (!this.YiSheng.doctorSn) {
                    alert('请选择医生')
                    return
                }
                window.location.href = "../../appointment/html/select-time.html?doctorSn="+Base64.encode(this.YiSheng.doctorSn);
            }
        }
    })
})
})

+ 9 - 0
page/mine/css/record.css

@ -18,6 +18,15 @@ cancelbtnbody {
	overflow: hidden
}
.w60{
	width:60px !important;
	position: relative;
	top:10px;
	right: 30px;
}
.w60:hover{
	color:#0AD8C8;
}
.div-table {
	display: table;
	width: 100%;

+ 4 - 0
page/mine/css/security-setting.css

@ -79,3 +79,7 @@ body {
	color:#333;
	background: #F4F6FA;
}
.remark {
	color: #a8a8a8;
	font-size: 12px;
}

+ 2 - 0
page/mine/html/record.html

@ -35,6 +35,8 @@
		<script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/layer/layer.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/patient/appointment-api.js"></script>
		<script src="../../../api/patient/jiuzhen-api.js"></script>
		<script src="../../../js/paging.js"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../component/common/footer.js"></script>

+ 1 - 0
page/mine/html/security-setting.html

@ -35,6 +35,7 @@
		<script src="../../../api/http-request.js " type="text/javascript " charset="utf-8 "></script>
		<script src="../../../plugins/artDialog/6.0.5/api/js/dialog-plus.js " type="text/javascript " charset="utf-8 "></script>
		<script src="../../../js/selector.js " type="text/javascript " charset="utf-8 "></script>
		<script src="../../../api/patient/mine-api.js" type="text/javascript " charset="utf-8 "></script>
		<script src="../../../component/common/footer.js "></script>
		<script src="../../../component/common/header.js "></script>
		<script src="../../../component/mine/left-menu.js "></script>

+ 4 - 4
page/mine/js/personal-info.js

@ -38,7 +38,6 @@ $.validator.setDefaults({
			ssid: {
				required: !0,
				noNull: !0,
				validNumWord:!0,
			}, 
			idCardNo: {
				required: !0,
@ -48,6 +47,7 @@ $.validator.setDefaults({
			telephone: {
				required: !0,
				noNull: !0,
				istelephone:!0,
			}, 
			profession: {
				required: !0,
@ -98,7 +98,7 @@ jQuery.validator.addMethod("validSSC", function(value, element) {
	var reg =/^([a-zA-Z]{1}[a-zA-Z0-9]{8}|[0-9]{12})$/
	return this.optional(element) || reg.test(value);
}, "请填写有效的医保卡卡号!");
jQuery.validator.addMethod("validNumWord", function(value, element) {
	var reg =/^[0-9a-zA-Z]+$/
jQuery.validator.addMethod("istelephone", function(value, element) {
	var reg =/^1[3|4|5|6|7|8][0-9]\d{4,8}$/
	return this.optional(element) || reg.test(value);
}, "请填写有效的社保卡号!");
}, "请填写有效的手机号码!");

+ 0 - 11
page/mine/js/record.js

@ -27,18 +27,7 @@ new Vue({
//		}, ]
	},
	mounted: function() {
		//分页初始化
		$("#page").paging({
			pageNo: 1,
			totalPage: 50,
			totalSize: 20,
			callback: function(num) {
				//回调的页数
				alert("查询第"+num+"页");
			}
		})
		
		EventBus.$emit("jump-step",{step:3});//step:跳转的步数
	},
	methods: {

+ 1 - 1
page/mineJiuZhen/css/mineJiuZhen.css

@ -81,7 +81,7 @@ body {
	font-size: 16px;
	margin-right: 0;
	border: none;
	height: 47px;
	height: 47.5px;
}
.list-body {

+ 22 - 20
page/mineJiuZhen/html/mineJiuZhen.html

@ -37,45 +37,45 @@
						<div role="tabpanel" class="tab-pane active" id="home">
							<template v-if="records.length>0">
								<div class="list-body" v-for="record in records">
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.time}}</span></div>
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.mRegistration.register_date}} {{record.mRegistration.time_id_desc}} {{record.mRegistration.commend_time}}</span></div>
									<div class="w3-row">
										<div class="w3-col" style="width:150px;float: right;padding-top: 30px;">
											<div class="cancelbtn" @click="cancelbtn(record.id)">取消预约</div>
											<div class="cancelbtn" @click="cancelbtn(record.id,record.mRegistration.order_id)">取消预约</div>
										</div>
										<div class="w3-rest">
											<div class="div-table">
												<div class="table-row">
													<div class="table-cell">
														<div class="c-909090">医院</div>
														<div>{{record.yiyuan}}</div>
														<div>{{record.mRegistration.hospital_name}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">科室</div>
														<div>{{record.keshi}}</div>
														<div>{{record.mRegistration.dept_name}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">主任医师</div>
														<div>{{record.doctor}}</div>
														<div class="c-909090">医师</div>
														<div>{{record.mRegistration.doctor_name}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">挂号方式</div>
														<div>{{record.type}}</div>
														<div>预约挂号</div>
													</div>
												</div>
											</div>
										</div>
									</div>
								</div>								
								<div id="page1" class="page_div"></div>
								</div>
							</template>
							<div v-else class="c-t-center mtb100">
								<img src="../../../images/wushuju_icon.png" />
								<img src="../../../images/queshengye-.png" />
							</div>
							<div id="homepage" class="page_div"></div>
						</div>
						<div role="tabpanel" class="tab-pane" id="history">
							<template v-if="history.length>0">
							<template v-if="historyrecords.length>0">
								<div class="list-body" v-for="record in historyrecords">
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.time}}</span></div>
									<div class="list-header"><span>就诊时间</span><span class="pl20">{{record.registerDate}}</span></div>
									<div class="w3-row">
										<div class="w3-col" style="width:150px;float: right;padding-top: 30px;">
											<div class="satisfactionbtn" @click="satisfactionbtn(record.id)">满意度调查</div>
@ -85,29 +85,30 @@
												<div class="table-row">
													<div class="table-cell">
														<div class="c-909090">医院</div>
														<div>{{record.yiyuan}}</div>
														<div>{{record.hospitalName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">科室</div>
														<div>{{record.keshi}}</div>
														<div>{{record.deptName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">主任医师</div>
														<div>{{record.doctor}}</div>
														<div>{{record.doctorName}}</div>
													</div>
													<div class="table-cell">
														<div class="c-909090">挂号方式</div>
														<div>{{record.type}}</div>
														<div>预约挂号</div>
													</div>
												</div>
											</div>
										</div>
									</div>
								</div>
								<div id="page2" class="page_div"></div></template>
							<div v-else class="c-t-center mtb100">
								<img src="../../../images/wushuju_icon.png" />
							</div>
								<div v-else class="c-t-center mtb100">
									<img src="../../../images/queshengye-.png" />
								</div>
								<div id="historypage" class="page_div"></div>
							</template>
						</div>
					</div>
				</div>
@ -128,6 +129,7 @@
		<script src="../../../plugins/layer/layer.min.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/paging.js"></script>
		<script src="../../../api/patient/jiuzhen-api.js"></script>
		<script src="../../../api/patient/appointment-api.js"></script>
		<script src="../../../component/common/event-bus.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/mineJiuZhen/mineJiuZhen-dialog-form.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/header.js" type="text/javascript" charset="utf-8"></script>

+ 71 - 52
page/mineJiuZhen/js/mineJiuZhen.js

@ -2,72 +2,91 @@ new Vue({
	el: "#app",
	data: {
		records: [],
		historyrecords:[],
		historyrecords: [],
		recodestype: '101',
		historytype: '100',
		ishomeNull: false,
		ishistoryNull: false,
	},
	mounted: function() {
		var vm=this
		//分页初始化
		$("#page1").paging({
			pageNo: 1,
			totalPage: 50,
			totalSize: 20,
			callback: function(num) {
				//回调的页数
				vm.getlist(num)
//				alert("查询第" + num + "页");
			}
		}) //分页初始化
		$("#page2").paging({
			pageNo: 1,
			totalPage: 50,
			totalSize: 20,
			callback: function(num) {
				//回调的页数
				vm.gethistory(num)
//				alert("查询第" + num + "页");
			}
		})
		EventBus.$emit("jump-step", {
			step: 3
		}); //step:跳转的步数
		this.initlist(this.pageNo)
		var vm = this
		vm.getlist(1, vm.recodestype)
		vm.getlist(1, vm.historytype)
	},
	methods: {
		initlist: function(pageNo) {
		getlist: function(pageNo, types) {
			var vm = this
			vm.getlist(1)
			vm.gethistory(1)
		},
		getlist:function(pageNo){
			var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			var param = {
				type: '101',
				appid: httpRequest.client_id,
				type: types,
				appId: httpRequest.client_id,
				toUserId: oauthInfo.id,
				page: pageNo,
				size: 5
				size: 5,
				typeId: 7,
			}
			jiuzhenAPI.getRemind(param).then(function(res) {
				vm.records = res.detailModelList
				if(types == '101') {
					vm.records = res.detailModelList
					if(res.totalCount == 0) {
						vm.ishomeNull = true
					} else {
						vm.inithomePage(pageNo, Math.ceil(res.obj.total / 5), res.obj.total)
					}
				} else if(types == '100') {
					vm.historyrecords = res.detailModelList
					vm.historyrecords = res.detailModelList.map(function(v) {
						var content = JSON.parse(v.content);
						for(var i = 0; i < content.length; i++) {
							var aaa = content[i].code
							if(content[i].code == 'registerDate') {
								v.registerDate = content[i].value
							} else if(content[i].code == 'deptName') {
								v.deptName = content[i].value
							} else if(content[i].code == 'doctorName') {
								v.doctorName = content[i].value
							} else if(content[i].code == 'hospitalName') {
								v.hospitalName = content[i].value
							}
						}
						return v
					})
					if(res.totalCount == 0) {
						vm.ishomeNull = true
					} else {
						vm.inithistoryPage(pageNo, Math.ceil(res.obj.total / 5), res.obj.total)
					}
				}
			})
		},
		gethistory:function(pageNo){
			var oauthInfo = JSON.parse(sessionStorage.getItem("oauthInfo"));
			var param = {
				type: '100',
				appid: httpRequest.client_id,
				toUserId: oauthInfo.id,
				page: pageNo,
				size: 5
			}
			jiuzhenAPI.getRemind(param).then(function(res) {
				vm.historyrecords = res.detailModelList
		inithomePage: function(pageNo, total, size) {
			var vm = this
			//分页初始化
			$("#homepage").paging({
				pageNo: pageNo,
				totalPage: total,
				totalSize: size,
				callback: function(num) {
					//回调的页数
					vm.getrecords(num)
				}
			})
		}
		cancelbtn: function(id) {
			mineJiuZhenDialogForm.cancelAppointment(id).then(function(layerid) {
		},
		inithistoryPage: function(pageNo, total, size) {
			var vm = this
			//分页初始化
			$("#historypage").paging({
				pageNo: pageNo,
				totalPage: total,
				totalSize: size,
				callback: function(num) {
					//回调的页数
					vm.gethistory(num, vm.monthtimes)
				}
			})
		},
		cancelbtn: function(id, orderid) {
			mineJiuZhenDialogForm.cancelAppointment(id, orderid).then(function(layerid) {
				top.layer.close(layerid)
			})
		},

+ 1 - 1
plugins/artDialog/6.0.5/api/js/dialog-plus.js

@ -840,7 +840,7 @@ var artDialog = function (options, ok, cancel) {
    // 快捷关闭支持:点击对话框外快速关闭对话框
    if (options.quickClose) {
        options.modal = true;
        options.backdropOpacity = 0;
        options.backdropOpacity = .5;
    }