Browse Source

康复计划生成计划

linehang 5 years ago
parent
commit
f1d11c2020

+ 7 - 6
api/http-request.js

@ -1,5 +1,5 @@
(function($) {
    var publish_version = true;
    var publish_version = false;
    var isInner = false; //发布线上后有内外网的配置
    var docInfo = "app_storage";
    var agentName = "wlyyAgentForDoc";
@ -25,18 +25,19 @@
            imgServer = "http://10.95.22.10:8011/";
        }
    } else { // 测试环境配置
        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.172:9092/wlyy/"
        imserver = "http://192.168.131.172:3000/api/v2";
        socketUrl = "http://192.168.131.172:3000";
//      server = "http://192.168.131.154:8080/"
        articleServer="http://172.19.103.88:9092/wlyy/"
        articleServer="http://192.168.131.172:9092/wlyy/"
//   server = "http://192.168.131.130:8080/";
//		server = "http://192.168.131.123:8080/"; // 明芬
//      server = "http://192.168.131.127:8060/"; //逸祥
//      server = "http://192.168.131.24:8080/"; //仕杰
//		server = "http://192.168.131.143:8080/"; // 志南
//      imserver = "http://192.168.131.24:3000/api/v2"
//      socketUrl = "http://192.168.131.24:3000";
//		server = "http://192.168.131.144:8080/";//冬梅
        loginUrl = "../../login/login.html";
//      loginUrl = "/PC-prescription/login.html"; //自己本地测试时的路径
        imgServer = "http://172.19.103.54/";

+ 9 - 1
api/recover_api.js

@ -59,7 +59,15 @@
		// 根据患者获取专科医生跟技管师
		findPatientSignSpecialistInfo: function(data) {
			return httpRequest.get("doctor/specialist/findPatientSignSpecialistInfo", {data: data})
		}
		},
		// 获取频次接口
		selectFrequencys: function(data) {
			return httpRequest.get("doctor/specialist/rehabilitation/selectFrequencys", {data: data})
		},
		// 获取专科团队接口
		specialistTeam: function(data) {
			return httpRequest.get("doctor/admin-teams/teams/info", {data: data})
		},
	}
    exports.recoverAPI = recoverAPI;
})(window)

+ 19 - 2
app/recover/css/new_recover.css

@ -15,6 +15,7 @@ p {margin-bottom: 0; margin-top: 0;}
.lh28 {line-height: 28px;}
.plr5 {padding-left: 5px; padding-right: 5px;}
.pl56 {padding-left: 56px;}
.pl65 {padding-left: 65px;}
.c-12b7f5 {color: #12b7f5;)}
.bgc-12b7f5 {background-color: #12b7f5;}
.bgc-e1e1e1 {background-color: #e1e1e1;}
@ -24,7 +25,7 @@ p {margin-bottom: 0; margin-top: 0;}
.lh18 {height: 18px; line-height: 18px;}
.lh24 {height: 24px; line-height: 24px;}
.h30 {height: 30px; line-height: 30px}
.lh40 {line-height: 40px}
.lh40 {line-height: 40px;}
.cur-pit {cursor: pointer;}
.set-photo, .set-photo img {
	height: 45px;
@ -112,6 +113,12 @@ ul {
	background: url(../images/qingchu_icon.png) no-repeat no-repeat right top;
	background-size: 18px 18px;
}
.fuzhi-tap {
	width: 18px;
	height: 18px;
	background: url(../images/fuzhi_icon.png) no-repeat no-repeat right top;
	background-size: 18px 18px;
}
.w-50 {width: 50%;}
.set-qiehuan {
	right: 10px;
@ -184,7 +191,7 @@ ul {
   color: #12b7f5;
}
.el-date-editor.el-input, .el-date-editor.el-input__inner {
	width: 90px;
	width: 180px;
}
.el-input--suffix .el-input__inner {
	padding-right: 0px;
@ -192,3 +199,13 @@ ul {
.el-date-editor.el-range-editor.el-input__inner.el-date-editor--daterange {
	width: 220px;
}
.set-textarea {
	width: 100%;
}
.set-textarea textarea {
	border: 0;
	outline: none;
	width: 100%;
	height: 40px;
	resize: none;
}

+ 163 - 58
app/recover/html/new_recover.html

@ -95,45 +95,63 @@
		        						<div class="fl w-100-78 c-333">
		        							<p class="m0 p0 mb10 txt-ells cur-pit" @click="lookProject(detail)">{{detail.specialistServiceItemDO.title}}</p>
	        								<div class="clearfix">
	        									<p class="w300 m0 mb5 p0 fl"><span class="c-999">医&emsp;&emsp;院:</span>{{detail.hospitalName}}</p>
	        									<div class="m0 mb5  p0 fl clearfix">
	        									<p class="w300 m0 mb10 p0 fl"><span class="c-999">医&emsp;&emsp;院:</span>{{detail.hospitalName}}</p>
	        									<p class="m0 p0 mb10 fl"><span class="c-999">费&emsp;&emsp;用:</span>{{detail.expense}}{{detail.specialistServiceItemDO.unit}}</p>
	        								</div>
		        							<div class="m0 p0 clearfix">
		        								<div class="w300 m0 mb10 p0 fl clearfix">
	        										<span class="fl c-999">选择频次:</span>
	        										<div class="fl c-position-r w100">
	        											<p class="m0 p0 plr10 c-border cur-pit set-xia" :class="{'set-shang':detail.selectFre}" @click="changeSelectFre(index, detail.selectFre)">{{detail.frequencyCode}}</p>
	        											<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectFre" style="overflow-y: auto; height: 100px;">
	        												<li class="plr10 c-border-t cur-pit" v-for="(list, indDoc) in detail.frequencyList" :key="indDoc" @click="selectFre(index, list)">{{list.code}}</li>
	        											</ul>
	        										</div>
	        									</div>
        										<div class="m0 mb10 p0 fl clearfix">
	        										<span class="fl c-999">执行人员:</span>
	        										<div class="fl c-position-r w100">
	        											<p class="m0 p0 plr10 c-border cur-pit set-xia" :class="{'set-shang':detail.selectDoc}" @click="changeSelectDoc(index, detail.selectDoc)">{{detail.executeDoctorName}}</p>
	        											<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectDoc">
	        											<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectDoc" style="overflow-y: auto; max-height: 100px;">
	        												<li class="plr10 c-border-t cur-pit" v-for="(list, indDoc) in detail.docList" :key="indDoc" @click="selectLi(index, list)">{{list.name}}</li>
	        											</ul>
	        										</div>
	        									</div>
	        								</div>
		        							<div class="m0 p0 lh18 clearfix">
		        								<div class="w300 fl clearfix">
	        										<span class="fl c-999">计划时间:</span>
	        										<div class="fl set-label clearfix">
	        											<span class="fl mr20 pl20 c-f14 cur-pit" :class="{'active': detail.selectDate == 1}" @click="changeSelectDate(index, 1)">日期</span>
	        											<span class="fl mr20 pl20 c-f14 cur-pit" :class="{'active': detail.selectDate == 2}" @click="changeSelectDate(index, 2)">周期</span>
        									</div>
        									<div class="pl65 mb10 set-label" v-if="detail.frequency.unit == 'H'">
        										<span :class="detail.timeType == 1 ? 'pl20 mr5 cur-pit active' : 'pl20 mr5 cur-pit'" @click="selectTimeType(index, 1)">白天</span>
        										<span :class="detail.timeType == 2 ? 'pl20 mr5 cur-pit active' : 'pl20 mr5 cur-pit'" @click="selectTimeType(index, 2)">晚上</span>
        										<span :class="detail.timeType == 0 ? 'pl20 cur-pit active' : 'pl20 cur-pit'" @click="selectTimeType(index, 0)">全天</span>
        									</div>
        									<div>
        										<div class="clearfix">
	        										<span class="fl c-999 lh24">起始时间:</span>
	        										<div class="fl maxw600 c-border mb10">
	        											<!--<p class="lh24 pl10 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.selectDateRange" :key="ind" v-if="detail.specialistServiceItemDO.selectDateRange.length">
		        											<span class="pb10 mr10">{{time.startTime}}</span>至<span class="pb10 ml10">{{time.endTime}}</span><span class="pb10 ml5 c-red cur-pit" @click="spliceTimeRange(index, ind)">删除</span>
		        										</p>-->
	        											<el-date-picker v-model="detail.value14" type="daterange" :picker-options="pickerOptions1" value-format="yyyy-MM-dd" @input="getRandgeDate(index)" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
	        										</div>
	        										<span class="fl lh24 mlr10 c-999">或</span>
	        										<div class="fl maxw600 c-border mb10">
	        											<!--<p class="fl pl10 lh24 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.executeTime" :key="ind" v-if="detail.specialistServiceItemDO.executeTime.length">
		        											<span class="fl pb10">{{time}}</span><span class="fl pb10 ml5 c-red cur-pit" @click="spliceTimeArr(index, ind)">删除</span>
		        										</p>-->
	        											<el-date-picker type="dates" :picker-options="pickerOptions1" v-model="detail.value15" value-format="yyyy-MM-dd" @input="getSelectDate(index)" placeholder="选择一个或者多个日期"></el-date-picker>
	        										</div>
        										</div>
        										<p class="m0 p0 fl"><span class="c-999">费&emsp;&emsp;用:</span>{{detail.expense}}{{detail.specialistServiceItemDO.unit}}</p>
        									</div>
        									<div class="pl56">
        										<div class="maxw600 ptb10 bgc-f5f5fa" v-show="detail.selectDate == 1">
        											<p class="fl pl10 lh24 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.executeTime" :key="ind" v-if="detail.specialistServiceItemDO.executeTime.length">
	        											<span class="fl pb10">{{time}}</span><span class="fl pb10 ml5 c-red cur-pit" @click="spliceTimeArr(index, ind)">删除</span>
	        										</p>
        											<el-date-picker type="date" :picker-options="pickerOptions1" v-model="detail.value14" value-format="yyyy-MM-dd" @input="getSelectDate(index)" placeholder="选择日期"></el-date-picker>
        										</div>
        										<div class="maxw600 ptb10 bgc-f5f5fa" v-show="detail.selectDate == 2">
        											<p class="lh24 pl10 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.selectDateRange" :key="ind" v-if="detail.specialistServiceItemDO.selectDateRange.length">
	        											<span class="pb10 mr10">{{time.startTime}}</span>至<span class="pb10 ml10">{{time.endTime}}</span><span class="pb10 ml5 c-red cur-pit" @click="spliceTimeRange(index, ind)">删除</span>
	        										</p>
        											<el-date-picker v-model="detail.value14" type="daterange" :picker-options="pickerOptions1" value-format="yyyy-MM-dd" @input="getRandgeDate(index)" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
        									<div class="clearfix">
        										<span class="fl c-999">备&emsp;&emsp;注:</span>
        										<div class="fl maxw600 plr15 ptb10 c-border set-textarea">
        											<textarea placeholder="不补充说明特殊用法、方式" v-model="detail.remark" name="" rows="" cols=""></textarea>
        										</div>
        									</div>
		        						</div>
		        						<div class='fr w60 c-t-right clearfix'>
		        							<p class="m0 p0 mb10">×{{detail.specialistServiceItemDO.executeTime.length}}</p>
		        							<div class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></div>
		        							<p class="m0 p0 mb10">×{{mul(detail.specialistServiceItemDO.executeTime.length, detail.frequency.count)}}</p>
		        							<div class="clearfix mb10"><span class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></span></div>
		        							<div class="clearfix"><span class="fr fuzhi-tap cur-pit" @click="copyTemplate(index, detail)"></span></div>
		        						</div>
		        					</li>
		        					<li class="pt100 c-t-center" v-if="!templateDetail.length">
@ -264,9 +282,11 @@
                	zDlist: null,
                	selectProjectDetail: null,
                	searchKey: null,
                	havePlan: false
                	havePlan: false,
                	frequencyList: []
                },
                mounted: function() {
                	this.selectFrequencys()
                	if(httpData.patient) {
                		this.isPlan = false
                		this.allFee = 0
@ -277,6 +297,19 @@
                	}
                },
                methods: {
                	// 获取频次列表
                	selectFrequencys: function() {
                		var vm = this,
			    			loadding = layer.load(0, {shade: false});
			    		recoverAPI.selectFrequencys().then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.frequencyList = res.data
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	// 获取居民信息
                	getPatientInfo: function() {
                		this.findPatientSignSpecialistInfo()
@ -302,6 +335,7 @@
							}
						})
                	},
                	// 签约专科信息
                	findPatientSignSpecialistInfo: function() {
                		var vm = this,
			    			params = {
@ -311,13 +345,21 @@
						recoverAPI.findPatientSignSpecialistInfo(params).then(function(res) {
							if(res.status == 200) {
								vm.pati.teamCode = res.data.teamCode
								vm.zDlist = [{
									name: res.data.doctorName,
									code: res.data.doctor
								}, {
									name: res.data.healthAssistantName,
									code: res.data.healthAssistant
								}]
								vm.specialistTeam(res.data.teamCode)
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	// 获取专科团队
                	specialistTeam: function(teamcode) {
                		var vm = this,
			    			params = {
			    				teamId: teamcode
			    			}
						recoverAPI.specialistTeam(params).then(function(res) {
							if(res.status == 200) {
								vm.zDlist = res.data.members
							} else {
								showErrorMessage(res.msg);
							}
@ -381,8 +423,16 @@
															o3.selectDoc = false
															o3.selectDate = 1
															o3.value14 = null
															o3.value15 = null
															o3.specialistServiceItemDO.executeTime = []
															o3.specialistServiceItemDO.selectDateRange = []
															// 默认频次
															o3.selectFre = false
															o3.frequencyCode = vm.frequencyList[0].code
															o3.frequency = vm.frequencyList[0]
															o3.frequencyList = vm.frequencyList
															o3.timeType = 0
															o3.remark = null
															if(o3.flag == 2) {
																o3.executeDoctor = vm.zDlist[0].code
																o3.executeDoctorName = vm.zDlist[0].name
@ -417,10 +467,28 @@
			    			return str
			    		}
			    	},
			    	changeSelectFre: function(index, bool) {
			    		this.templateDetail[index].selectFre = !bool
			    		this.isTest = !this.isTest
			    	},
			    	changeSelectDoc: function(index, bool) {
			    		this.templateDetail[index].selectDoc = !bool
			    		this.isTest = !this.isTest
			    	},
			    	// 选择频次
			    	selectFre: function(index, list) {
			    		this.templateDetail[index].selectFre = false
			    		this.templateDetail[index].frequencyCode = list.code
			    		this.templateDetail[index].frequency = list
			    		this.templateDetail[index] = this.templateDetail[index]
			    		this.isTest = !this.isTest
			    	},
			    	// 选择时间段
			    	selectTimeType: function(index, timetype) {
			    		this.templateDetail[index].timeType = timetype
			    		this.isTest = !this.isTest
			    	},
//			    	选择执行医生
			    	selectLi: function(index, list) {
			    		this.templateDetail[index].selectDoc = false
			    		this.templateDetail[index].executeDoctor = list.code
@ -428,13 +496,14 @@
			    		this.templateDetail[index] = this.templateDetail[index]
			    		this.isTest = !this.isTest
			    	},
			    	// 删除配置计划
			    	subTemplate: function(index, detail) {
			    		var vm = this
			    		this.isTest = !this.isTest
			    		this.templateDetail.splice(index, 1)
			    		var len = detail.specialistServiceItemDO.executeTime.length
			    		if(len) {
			    			this.allFee = vm.sub(vm.allFee, vm.mul(len, detail.expense))
			    			this.checkAllMoney()
			    		}
			    		$.each(vm.projectList, function(index, o) {
							if(detail.specialistServiceItemDO.itemType == o.itemType) {
@ -452,6 +521,20 @@
						});
						vm.judgeHavePlan()
			    	},
			    	// 复制计划
			    	copyTemplate: function(index, detail) {
			    		var vm = this,
			    			obj = JSON.parse(JSON.stringify(detail))
//			    		this.templateDetail[index] = detail
			    		this.isTest = !this.isTest
			    		console.log(obj)
//			    		obj.specialistServiceItemDO.executeTime = []
//			    		obj.value14 = null
//			    		obj.value15 = null
			    		this.templateDetail.push(obj)
			    		console.log(this.templateDetail)
			    		this.checkAllMoney()
			    	},
			    	// 选择项目
			    	selectProject: function(index, index2, index3, o) {
			    		this.selectProjectDetail = o
@ -479,8 +562,16 @@
                		this.selectProjectDetail.selectDoc = false
                		this.selectProjectDetail.selectDate = 1
						this.selectProjectDetail.value14 = null
						this.selectProjectDetail.value15 = null
                		this.selectProjectDetail.specialistServiceItemDO.executeTime = []
                		this.selectProjectDetail.specialistServiceItemDO.selectDateRange = []
                		// 频次选择
                		this.selectProjectDetail.selectFre = false
                		this.selectProjectDetail.frequencyCode = this.frequencyList[0].code
                		this.selectProjectDetail.frequency = this.frequencyList[0]
                		this.selectProjectDetail.frequencyList = this.frequencyList
                		this.selectProjectDetail.timeType = 0
						this.selectProjectDetail.remark = null
						if(this.selectProjectDetail.flag == 2) {
							this.selectProjectDetail.executeDoctor = this.zDlist[0].code
							this.selectProjectDetail.executeDoctorName = this.zDlist[0].name
@ -606,15 +697,17 @@
                	},
                	// 选择日期
                	getSelectDate: function(index) {
                		var str = this.templateDetail[index].value14
                		this.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
                		this.templateDetail[index].specialistServiceItemDO.executeTime = []
                		var arr = this.templateDetail[index].value15
                		this.templateDetail[index].specialistServiceItemDO.executeTime = arr
                		this.templateDetail[index].value14 = null
                		this.isTest = !this.isTest
                		this.allFee = this.add(this.allFee, this.templateDetail[index].expense)
                		this.checkAllMoney()
                		this.judgeHavePlan()
                	},
                	// 选择周期
                	getRandgeDate: function(index) {
                		this.templateDetail[index].specialistServiceItemDO.executeTime = []
                		var arr = this.templateDetail[index].value14,
                			startTime = new Date(arr[0]).getTime(),
                			endTime = new Date(arr[1]).getTime(),
@ -625,38 +718,47 @@
                			var num = i * oneday + startTime,
                				str = new Date(num).format("yyyy-MM-dd")
                			this.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
	                		this.allFee = this.add(this.allFee, this.templateDetail[index].expense)
                		}
                		this.checkAllMoney()
                		var obj = {
                			startTime: arr[0],
                			endTime: arr[1],
                			length: i
                		}
                		this.templateDetail[index].specialistServiceItemDO.selectDateRange.push(obj)
                		this.templateDetail[index].value14 = null
                		this.templateDetail[index].value15 = null
                		this.isTest = !this.isTest
                		this.judgeHavePlan()
                	},
                	spliceTimeArr: function(index, ind) {
                	// 计算总费用
                	checkAllMoney: function() {
                		var vm = this
                		this.templateDetail[index].specialistServiceItemDO.executeTime.splice(ind, 1)
                		this.isTest = !this.isTest
                		vm.allFee = vm.sub(vm.allFee, vm.templateDetail[index].expense)
                		vm.judgeHavePlan()
                	},
                	spliceTimeRange: function(index, ind) {
                		var startPos = 0,
                			len = this.templateDetail[index].specialistServiceItemDO.selectDateRange[ind].length,
                			vm = this
                		for(var i = 0; i < ind; i++) {
                			startPos += this.templateDetail[index].specialistServiceItemDO.selectDateRange[i].length
                		}
                		this.templateDetail[index].specialistServiceItemDO.selectDateRange.splice(ind, 1)
                		this.templateDetail[index].specialistServiceItemDO.executeTime.splice(startPos, len)
                		this.isTest = !this.isTest
                		vm.allFee = vm.sub(vm.allFee, vm.mul(vm.templateDetail[index].expense, len))
                		vm.judgeHavePlan()
                		this.allFee = 0
                		$.each(vm.templateDetail, function(index, o) {
                			var fee = vm.mul(vm.mul(o.expense, o.frequency.count), o.specialistServiceItemDO.executeTime.length)
                			vm.allFee = vm.add(vm.allFee, fee)
                		});
                	},
//              	spliceTimeArr: function(index, ind) {
//              		var vm = this
//              		this.templateDetail[index].specialistServiceItemDO.executeTime.splice(ind, 1)
//              		this.isTest = !this.isTest
//              		vm.allFee = vm.sub(vm.allFee, vm.templateDetail[index].expense)
//              		vm.judgeHavePlan()
//              	},
//              	spliceTimeRange: function(index, ind) {
//              		var startPos = 0,
//              			len = this.templateDetail[index].specialistServiceItemDO.selectDateRange[ind].length,
//              			vm = this
//              		for(var i = 0; i < ind; i++) {
//              			startPos += this.templateDetail[index].specialistServiceItemDO.selectDateRange[i].length
//              		}
//              		this.templateDetail[index].specialistServiceItemDO.selectDateRange.splice(ind, 1)
//              		this.templateDetail[index].specialistServiceItemDO.executeTime.splice(startPos, len)
//              		this.isTest = !this.isTest
//              		vm.allFee = vm.sub(vm.allFee, vm.mul(vm.templateDetail[index].expense, len))
//              		vm.judgeHavePlan()
//              	},
                	judgeHavePlan: function() {
                		for(var k = 0; k < this.templateDetail.length; k++) {
                			for(var i = 0; i < this.templateDetail[k].specialistServiceItemDO.executeTime.length; i++) {
@ -709,7 +811,10 @@
			    					type: o.flag == 2 ? 2 : 1,
			    					doctor: o.executeDoctor,
			    					doctorName: o.executeDoctorName,
			    					executeTime: executeTime.join(",")
			    					executeTimes: executeTime.join(","),
			    					frequencyCode: o.frequencyCode,
			    					timeType: o.timeType,
			    					remark: o.remark || ''
			    				}
			    				data.detail.push(obj)
			    			}

BIN
app/recover/images/fuzhi_icon.png