Browse Source

康复复诊增加分类 功能

zhangyanfang 4 years ago
parent
commit
c37df6bd1b

+ 4 - 1
api/http-request.js

@ -4,7 +4,7 @@
    var docInfo = "app_storage";
    var agentName = "wlyyAgentForDoc";
    var docAgentName = "wlyyAgent";
    var server, userAgent, loginUrl, imserver, socketUrl, imgServer;
    var server, userAgent, loginUrl, imserver, socketUrl, imgServer,teamworkService;

    var IMEI = localStorage.getItem('WLYY_IMEI') || uuid(16, 16)
    localStorage.setItem('WLYY_IMEI', IMEI)
@ -16,6 +16,7 @@
        articleServer = "//www.xmtyw.cn/wlyy/"
        loginUrl = "../../login/login.html";
        imgServer = "//www.xmtyw.cn/";
        teamworkService="//hlwyy.xmzsh.com/hlwyy/ims-web";
        videoChatIntranetFlag = false;
        if(isInner){
            server = "http://10.95.22.10:8011/wlyy/"
@ -45,6 +46,7 @@
        loginUrl = "../../login/login.html";
//      loginUrl = "/PC-prescription/login.html"; //自己本地测试时的路径
        imgServer = "http://172.26.0.110:8888/";
        teamworkService="//ehr.yihu.com/hlwyy/ims-web";
        videoChatIntranetFlag = false;
    }

@ -323,6 +325,7 @@
        imHttpPost: imHttpPost,
        getImgUrl: getImgUrl,
        imgServer:imgServer,
        teamworkService:teamworkService,
        articleGet:articleGet,
        articlePost:articlePost,
        failCodeHandle: failCodeHandle,

+ 14 - 0
app/rehabilitation/css/guide_the_message.css

@ -67,3 +67,17 @@
.btns-group{padding: 20px 0 10px 185px;}
.btns-group .btn{margin-right: 185px;}
.c-999{color: #999;}
.setRadio{
	width: 30%;
}
.setRadio .el-radio+.el-radio{
	margin-left: 0;
}
.setRadio .el-radio{
	margin-bottom: 20px;
}
.setPicker{
	position: absolute;
    left: 45%;
	bottom:17%;
}

+ 91 - 5
app/rehabilitation/html/guide_the_message.html

@ -6,7 +6,8 @@
		<link rel="stylesheet" href="../../../css/bootstrap.min.css" />
	    <link rel="stylesheet" type="text/css" href="../../../css/style.min.css"/>
	    <link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
	    <link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css">
		<link rel="stylesheet" href="../css/guide_the_message.css" />
	</head>
	<body>
@ -74,19 +75,102 @@
		      				</div>
		      			</div>
		      			<p class="c-999" style="margin-top: -10px;" v-if="service.messageList && !service.messageList.length">暂无记录</p>
	      			</div>
					  </div>
					  <!-- 协诊信息 -->
					  <div>
						<div class="setRadio mt40" v-if="showAppointHelpCheckBtn && !service.appointmentTime && service.type==7 && service.status!=1 && service.isMyTask==1">
							<el-radio-group v-model="selectCheckTyperadio">
								<el-radio :label="0">线下复诊--预约至专家医院进行复诊</el-radio>
								<el-radio :label="1">远程协诊--家庭医生与专科医生协同会诊</el-radio>
								<el-radio :label="2">线上复诊--入驻互联网医院提供线上复诊开方咨询</el-radio>
							</el-radio-group>
						</div>
						<div v-if="(selectCheckTyperadio==1 &&!showAppointHelpCheckBtn) || service.appointmentTime" class="ptb10">
							<div class="pb10 c-f14 c-333">协诊信息</div>
							<div class="flex-box-item">
								<p class="m0">预约时间:{{service.appointmentTime || appointTime}}</p>
								<p class="m0">预约医生:{{service.appointmentDoctorName || service.specialistDoctorName}}</p>
								<p class="m0">预约项目:远程协诊</p>
							</div>	
						</div>
					  </div>
					<div class="note-info pt10" v-if="service.type==7 && ((islimit&&service.status==1) || (!islimit&&service.recordStatus==1)) || ((islimit&&service.status!=1) || (!islimit&&service.recordStatus!=1)) && service.isMyTask==1 && showRecordFinished">
					<p class="f14 c-333">服务完成笔记</p>
					<textarea v-if="((islimit&&service.status!=1) || (!islimit&&service.recordStatus!=1)) && service.isMyTask==1 && showRecordFinished" class="form-control" style="resize: none;" rows="4" placeholder="可备注您的服务记录" v-model="service.node"></textarea>
					<div  v-if="service.type==7 && ((islimit&&service.status==1) || (!islimit&&service.recordStatus==1))">{{service.node || '暂无服务记录'}}</div>
					</div>
					<div class="note-info ptb10" v-if="service.type==7 && ((islimit&&service.status!=1) || (!islimit && service.recordStatus!=1)) && service.isMyTask==1 && showRecordFinished">
							<p class="f14 c-333">相关记录</p>
							<ul class="upload-box">
								<li class="flex-box" v-for="(img,index) in upImgs">
									<div class="upload-img-box">      						
										<img :src="img.baseUrl" />
									</div>
									<a class="delete-img" @click="deleteImg(index)">&times;</a>
								</li>
								<li class="flex-box" v-if="upImgs.length<5">
									<span class="add-img">+</span>
									<input type="file" @change="upLoadImgToBase64" class="upload-img" />
								</li>
							</ul>
					</div>
					<div class="note-info ptb10" v-if="service.type==7 && ((islimit&&service.status==1) || (!islimit&&service.recordStatus==1))">
							<p class="f14 c-333">相关记录</p>
							<ul class="upload-box" v-if="service.relationRecordImg && service.relationRecordImg.length">
								<li class="flex-box" v-for="img in service.relationRecordImg">
									<div class="upload-img-box">      						
										<img :src="img | getImgUrl" />
									</div>
								</li>
							</ul>
							<div class="upload-box" v-else>
								<p>暂无相关记录</p>
							</div>
					</div>  
					<!-- operate: 是否完成任务 0 未完成 1 已完成 isMyTask: 0 不是自己的任务 1是自己的任务 status: 0 未完成 1已完成 2已预约-->
					<!-- planStatus:计划的状态 0 已终止 1进行中 2已完成 -->
					<!-- type: 服务项code 1 电话/短信关怀 2康复咨询 3远程健康监测 4 上门服务 5康复指导 6 康复随访 7 复诊-->
					<div v-if="islimit&&service.planStatus!=0" class="flex-box btns-group clearfix"> <!-- 限制频次 -->
					<!-- selectCheckTyperadio 0 线下复诊 1远程协诊 2线上复诊 -->
					<div v-if="islimit&&service.planStatus!=0" class="flex-box btns-group clearfix" style="position: relative;"> <!-- 限制频次 -->
						<button class="btn btn-yuyue" v-if="service.type==4 && service.status!=1 && service.isMyTask==1" @click="sendSpecialistWeixinMessage(4)">提醒患者</button>
						<button class="btn btn-12b7f5" v-if="service.type==4 && service.status!=1 && service.isMyTask==1" @click="qwapp">代预约</button>
						<button class="btn btn-yuyue" v-if="service.type==5 && service.status!=1 && service.isMyTask==1" @click="kfzd()">发送指导</button>
						<button class="btn btn-yuyue" v-if="service.type==6 && service.status!=1 && service.isMyTask==1 && service.operate==0"  @click="sfjh()" style="width: auto">创建随访计划</button>
						<button class="btn btn-12b7f5" v-if="service.type==6 && service.status!=1 && service.isMyTask==1 && service.operate==1" @click="qwapp" style="width: auto">记录随访表单</button>
						<button class="btn btn-12b7f5" v-if="service.type==6 && service.status==1" @click="qwapp" style="width: auto">查看随访结果</button>
						<button class="btn btn-yuyue" v-if="service.type==7 && service.status!=1 && service.isMyTask==1" @click="sendSpecialistWeixinMessage(7)">提醒患者</button>
						<button class="btn btn-12b7f5" v-if="service.type==7 && service.status!=1 && service.isMyTask==1" @click="qwapp">代预约</button>
						<button class="btn btn-yuyue" v-if="service.type==7 && service.status!=1 && service.isMyTask==1 && selectCheckTyperadio!=1 && !service.appointmentTime" @click="sendSpecialistWeixinMessage(7)">提醒患者</button>
						<button class="btn btn-12b7f5" v-if="service.type==7 && service.status!=1 && service.isMyTask==1 && selectCheckTyperadio==0 && !service.appointmentTime" @click="qwapp">代预约</button>
						<button class="btn btn-12b7f5" v-if="selectCheckTyperadio==1 && showAppointHelpCheckBtn" @click="$refs.datePicker.pickerVisible = true">预约协诊</button>
						<div class="setPicker" style="visibility: hidden;">
							<el-date-picker
								v-model="appointDate"
								type="date"
								ref="datePicker"
								@change="$refs.timePicker.pickerVisible = true"
								value-format="yyyy-MM-dd"
								:picker-options="pickerOptions"
							>
							</el-date-picker>
						</div>		
						<div class="setPicker" style="visibility: hidden;">
								<el-time-select
								v-model="appointHour"
								:picker-options="{
									step: '00:05',
									minTime:startTime,
									start:'08:00',
									end:'20:00'
								}"
								value-format="HH:mm"
								@change="appointHelpCheck(service)"
								ref="timePicker"
								placeholder="选择时间">
							</el-time-select>
						</div>
						<button class="btn btn-12b7f5" v-if="(!service.appointmentTime && selectCheckTyperadio==1 &&!showAppointHelpCheckBtn && doctorlevel==2 && service.isMyTask==1) || (service.appointmentTime && service.isMyTask==1 && !service.completeTime && !showRecordFinished  && doctorlevel==2)" @click="openHelpCheck">开启协诊</button>
						<button class="btn btn-12b7f5" v-if="(!service.appointmentTime && selectCheckTyperadio==1 &&!showAppointHelpCheckBtn  && service.isMyTask==1 ) || (service.appointmentTime && service.isMyTask==1 && !showRecordFinished && !service.completeTime)" style="width: auto" @click="recordFinished">记录完成情况</button>
						<!-- 复诊的确认完成 -->
						<button class="btn btn-zhidao" v-if="islimit&&service.planStatus!=0 && service.status!=1 && service.isMyTask==1 && service.type==7 && showRecordFinished && showRecordFinished" @click="qrwc(service.patient,service.type)">确认完成</button>
					</div>
					<div v-if="!islimit&&service.planStatus!=0" class="flex-box btns-group clearfix"> <!-- 不限制频次 -->
						<button class="btn btn-12b7f5" v-if="service.type==6 && service.recordStatus!=1 && service.isMyTask==1 && service.operate==1" @click="qwapp" style="width: auto">记录随访表单</button>
@ -174,7 +258,9 @@
		</div>
		<script type="text/javascript" src="../../../js/vue.js"></script>
		<script type="text/javascript" src="../../../js/jquery-2.2.4.js" ></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jsencrypt.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../plugins/toastr/toastr.min.js"></script>
		<script type="text/javascript" src="../../../api/http-request.js"></script>
		<script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>

+ 78 - 4
app/rehabilitation/js/guide_the_message.js

@ -1,5 +1,7 @@
var httpData = GetRequest();
var docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'));
var tempwindow;
var previewLayerIndex, followupLayerIndex, KFZDlayerIndex;
function closeGuidancePreview(){
	layer.close(previewLayerIndex)
@ -32,10 +34,17 @@ function showErrorMessage(msg) {
top.rehabilitationGuideVue = new Vue({
	el: "#app",
	data: {
		doctorlevel:docInfo.doctorlevel,
		imgData: {
			accept: 'image/gif, image/jpeg, image/png, image/jpg',
		},
		isCollapse: false,
		selectCheckTyperadio:0,	
		showAppointHelpCheckBtn:true, //点击预约协诊按钮结束变为false
		showRecordFinished:false,	//点击完成记录按钮变为true
		appointTime:'',
		appointDate:"",
		appointHour:'',
		upImgs: [],
		upImgArr: [],
		planid: httpData['planid'], // 服务项id
@ -43,15 +52,22 @@ top.rehabilitationGuideVue = new Vue({
			relationRecordImg:{},
			messageList:{},
		},
		startTime:'',
		pickerOptions:{
			disabledDate(time) {
				return time.format('yyyy-MM-dd') < new Date().format('yyyy-MM-dd')
			}
		},
		pId: httpData['pId'], // 康复计划id
		patient: httpData['patient'],
		patientName: decodeURI(httpData['patientName']),
		layerIndex: undefined,
		recordId: httpData['recordId']||undefined,
		islimit: false
		islimit: false,
	},
	mounted: function() {
		this.getServiceItem();
		this.startTime=new Date(new Date().getTime()).format('hh:mm')
	},
	methods: {
		// 提醒患者 num 1康复指导2康复下转3复诊提醒4上门服务提醒5家签提醒
@ -67,6 +83,7 @@ top.rehabilitationGuideVue = new Vue({
				btn: ['确定', '取消'],
				title: "提示"
			}, function (index) {
				var reservationTypeObj={0:2,1:3,2:1}
				var _type = type == 4? 4:type==7?3:''
				var loading = layer.load(0, {shade: false})
				var params = {
@ -74,7 +91,8 @@ top.rehabilitationGuideVue = new Vue({
					doctor: docInfo.uid,
					type: _type,
					relationCode: vm.planid,
					planId: vm.pId
					planId: vm.pId,
					reservationType:reservationTypeObj[vm.selectCheckTyperadio] //复诊类型:1线上,2线下,3远程
				}
				rehaAPI.sendSpecialistWeixinMessage(params).then(function(res){
					layer.close(loading)
@ -90,6 +108,61 @@ top.rehabilitationGuideVue = new Vue({
				layer.close(current); //再执行关闭
			})
		},
		appointHelpCheck:function(data){
			var vm=this
			vm.showAppointHelpCheckBtn=false
			vm.appointTime=vm.appointDate+' '+vm.appointHour
			var params={
				patient:vm.patient,
				doctor:data.familyDoctorCode,
				doctorName:data.familyDoctorName, //家签医生
				sendTime:vm.appointTime,
				planDetailId:vm.planid,
				appointmentDoctor:data.specialistDoctorCode,
				appointmentDoctorName:data.specialistDoctorName //专科医生
			}
			var loading = layer.load(0, {shade: fa})
			rehaAPI.appointmentConsultation(params).then(function(res){
				layer.close(loading)
				if(res.status == 200){
					showSuccessMessage('操作成功')
					setTimeout(function(){
						vm.getServiceItem()
					},400)
				} else {
					showErrorMessage(res.msg)
				}
			})			
		},
		encryptCode: function(docCode) {
			var publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4lT0JWcv9xx6Q1hsxMal2F1AmKti/xVbBeh8jrD5CiYsFTH0DO1Mpyvv8YtkGdnDSLRjOQOA1PiaYvZoHIhml/jTvEMsvFlAD5i1BsHa5blLlJxQNp/XI7wpMZPfczqO+I/JONrV6ib+6Ci/1FyTjPQfHaiT2ehGyM/CFzOW1PQIDAQAB"
			var encrypt =new JSEncrypt()
			encrypt.setPublicKey(publicKey)
			return encodeURIComponent(encrypt.encrypt(docCode))
		},
		openWindow(url, p1, p2){
			try{
				if(tempwindow)
					tempwindow.close()
			}catch(e){
				console.log(e)
			}
			
			if(p1){
				tempwindow = window.open('_blank', p1, p2)
			} else {
				tempwindow = window.open('_blank')
			}
			tempwindow.location = url
		},	
		openHelpCheck:function(){
			var encryptCode = this.encryptCode(docInfo.uid)
			var url = httpRequest.teamworkService + '/#/teamwork/login?_code='+ encryptCode
            this.openWindow(url)
		},
		recordFinished:function(){
			this.showRecordFinished=true
		},
		//康复指导
		kfzd:function(){
			var vm=this, str = '../../rehabilitation/html/rehabilitation_guidance.html?patient='+vm.patient+'&planDetaiId='+vm.planid+'&planId='+vm.pId
@ -227,7 +300,7 @@ top.rehabilitationGuideVue = new Vue({
				if(vm.service.status==1){
					var index = top.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
					top.layer.title('服务记录详情', index)  //再改变当前层的标题						
				}
				}		
			})
		},
		getRelationRecord: function(type, planDetaiId){
@ -333,7 +406,7 @@ top.rehabilitationGuideVue = new Vue({
			}
			rehaAPI.saveRehabilitationOperateRecord({dataJson:JSON.stringify(params)}).then(function(res){
				if(res.status==200){
					if(type==1){
					if(type==1 || type==7){
						vm.uploadImg(vm.upImgArr);
					}else if(type==6){
						vm.updateRelationCodeByDetailId(planDetailId, relationCode)
@ -481,6 +554,7 @@ top.rehabilitationGuideVue = new Vue({
		}
	}
})
$("body").on('click','img',function(){  
	var _this = $(this);//将当前的img元素作为_this传入函数  
	imgShow("#outerdiv", "#innerdiv", "#bigimg", _this);  

File diff suppressed because it is too large
+ 4181 - 0
js/jsencrypt.js