Browse Source

预约挂号信息接口对接修改

raolu 7 years ago
parent
commit
4ff960ccde

+ 1 - 3
api/http-request.js

@ -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)
                }

+ 2 - 2
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){

+ 257 - 84
component/appointment/date-source.js

@ -1,83 +1,54 @@
(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"><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" v-for="(item, index) in amData" :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"></div>\
                        </div>\
                        <div class="table-row">\
                            <div class="table-cell c-f16 bgc-ebf4f3">下午</div>\
                            <div class="table-cell" v-for="(item, index) in pmData" :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"></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'],
        data: function(){
            return {
                planDate: [],
                selectedDate: 0,
                amData: [],
                pmData: []
                pmData: [],
                numberSource: [],
                registerNumber: '',
                modeId: '', //号源池模式:1:实时号源池, 0:非实时号源池
                baseInfo: {}, //记录医生医院等基础信息
                specialPrice: 0, //挂号费(单位:分)
            }
        },
        mounted: function(){
@ -88,32 +59,159 @@
                var nDate = now.getDate();
                d.setDate(nDate + i);
                var obj = {
                    date: d.format("MM月dd日"),
                    day: getWeekDay(d.getDay())
                    date: d.format("MM/dd"),
                    day: getWeekDay(d.getDay()),
                    fullDate: d.format("yyyy-MM-dd")
                }
                this.planDate.push(obj);
            }
            
            //获取每天上午和下午的数据
            for(i=0; i<7; i++){
                var d = this.planDate[i].date;
            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;
                }
            },
            chooseNumber: function(id, modeId){
                this.registerNumber = id;
                this.modeId = modeId;
            },
            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;
                }
                
                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{
                    console.log(res.obj.Message);
                }
            }else{
                console.log(res.errorMsg);
            }
        })
    }
    
    //获取医生排班信息
    function getArrangeDate(vm){
    function getArrangeDate(vm, docInfo){
        console.log(vm);
        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;
                    //获取每天上午和下午的数据
                    for(i=0; i<7; i++){
                        var d = vm.planDate[i].fullDate;
                        var objArr = _.where(list, {registerDate: d});
                        if(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, //自定义状态,0无安排,1-4系统定义:1正常 2停诊 3已取消 4暂停预约
                            })
                            vm.pmData.push({
                                arrangeID: '', //没有排号
                                arrangeStatus: 0, //自定义状态,0无安排,1-4系统定义:1正常 2停诊 3已取消 4暂停预约
                            })
                        }
                    }
                }else{
                    console.log(res.obj.Message);
                }
            }else{
                console.log(res.errorMsg);
            }
        });
    }
    
@ -123,10 +221,37 @@
            arrangeID: code
        };
        appointmentAPI.queryNumbers(params).then(function(res){
            
            if(res.successFlg){
                if(res.obj.Code == "10000"){
                    vm.numberSource = res.obj.Result;
                }else{
                    console.log(res.Message);
                }
            }else{
                console.log(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});
        
        //存储这些数据传递去确认页面
        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";
    }
    
    function getWeekDay(val){
        switch(val){
            case 0:
@ -152,4 +277,52 @@
                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;
        }
    }
})()

+ 5 - 1
component/appointment/doctor-list.js

@ -21,7 +21,7 @@
							<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>\
								<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>\
@ -142,6 +142,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 {

+ 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 {

+ 37 - 37
component/common/header.js

@ -1,42 +1,42 @@
(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 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-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 {

+ 1 - 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;

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


+ 35 - 0
page/appointment/css/appointment.css

@ -10,6 +10,12 @@
.c-f4b87f{
    color: #F4B87F;
}
.c-ffb5b6{
    color: #ffb5b6;
}
.c-f3be88{
    color: #f3be88;
}
.div-table{
    display: table;
    width: 100%;
@ -101,3 +107,32 @@
.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;
}

+ 14 - 11
page/appointment/html/confirm-info.html

@ -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,15 @@
        <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="../../../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>

+ 8 - 6
page/appointment/html/select-time.html

@ -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"></date-scource>
                    </div>
                </div>
            </div>
@ -59,6 +59,8 @@
        <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>

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

@ -1,9 +1,72 @@
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: "",
                registerDate: dateInfo.registerDate,
                timeId: dateInfo.timeId,
                commendTime: numberInfo.commendTime,
                serialNo: numberInfo.serialNo
            }
            appointmentAPI.createRegOrderForOpen(params).then(function(res){
                
            });
        },
        cancel: function(){
            window.localStorage.removeItem("dateInfo");
            window.localStorage.removeItem("numberInfo");
            window.localStorage.removeItem("baseInfo");
            document.history.back();
        }
    }
})

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

@ -1,15 +1,24 @@
var request = GetRequest(),
    doctorSn = Base64.decode(request.doctorSn),
    arrangeID = request.arrangeID;
new Vue({
    el: "#main",
    data: {
        page: 1, // 分页,从第一页开始
        pageSize: 10, //1~100
        doctorSn: doctorSn,
        docInfo: {},
        arrangeID: arrangeID
    },
    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: {
        
    }
})

+ 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;
    }