Browse Source

康复下转

yht2016 5 years ago
parent
commit
7f90f6e467

+ 8 - 0
api/recover_api.js

@ -24,6 +24,14 @@
		getPatientInfoByDoctor: function(data) {
			return httpRequest.get("doctor/specialist/getPatientInfoByDoctor", {data: data})
		},
		// 获取专病居民类别 2020-03-03 新增接口
		findHealthLabelAndPatientCountByDoctor: function(data) {
			return httpRequest.get("doctor/specialist/findHealthLabelAndPatientCountByDoctor", {data: data})
		},
		// 获取居民列表by医生 2020-03-03 新增接口
		getPatientInfoByDoctorAndHealth: function(data) {
			return httpRequest.get("doctor/specialist/getPatientInfoByDoctorAndHealth", {data: data})
		},
		// 获取居民信息
		getPatientInfo: function(data) {
			return httpRequest.get("doctor/patient_label_info/patient", {data: data})

+ 40 - 1
api/rehabilitation-api.js

@ -73,7 +73,46 @@
		sendWxMsg: function(data) {
			return httpRequest.post("doctor/specialist/rehabilitationPlan/sendWxMsg", {data: data})
		},
		
		//获取康复计划服务项
		calendarPlanDetailItems: function(data) {
			return httpRequest.get("doctor/specialist/rehabilitation/calendarPlanDetailItems",{data:data})
		},
		//获取康复服务项
		getServiceItemList: function(data) {
			return httpRequest.get("doctor/specialist/rehabilitation/getServiceItemList", {data: data})
		},
		//获取下转居民列表
		getRehabilitationPatientList: function(data) {
			return httpRequest.get("/doctor/rehabilitation/getRehabilitationPatientList", {data: data})
		},
		//获取居民标签(健康情况、疾病类型、自定义分组)
		getPatientLabelInfo: function(data) {
			return httpRequest.get("doctor/patient_label_info/getPatientLabelInfo", {data: data})
		},
		// 获取诊断信息
		getIcd10Info: function(data) {
			return httpRequest.get("doctor/prescriptionInfo/getIcd10Info", {data: data})
		},
		// 添加住院病历
		createMedicalRecords: function(data) {
			return httpRequest.post("/doctor/rehabilitation/createMedicalRecords", {data: data})
		},
		// 获取住院病历列表
		selectByMedicalCode: function(data){
			return httpRequest.get("doctor/specialist/rehabilitation/selectByMedicalCode", {data: data})
		},
		// 获取康复计划列表
		selectPlanByPatient: function(data){
			return httpRequest.get("doctor/specialist/rehabilitation/selectPlanByPatient", {data: data})
		},
		// 获取专科团队
		getSpecialistTeamList: function(data){
			return httpRequest.get("doctor/specialist/getSpecialistTeamList", {data: data})
		},
		// 更新居民专科标签(健康情况、疾病类型、自定义分组)
		updatePatientLabelInfo: function(data){
			return httpRequest.get("doctor/patient_label_info/updatePatientLabelInfo", {data: data})
		}
	}
    exports.rehaAPI = rehaAPI;
})(window)

+ 10 - 10
app/consulting/css/style.css

@ -5795,14 +5795,14 @@ a.disabled:hover{
}
/* css3-Grid
-----------------------------------------------------------------------------*/
.ui-grid { display: -webkit-box; display: box; }
.ui-grid-middle { -webkit-box-pack: center; -webkit-box-align: center; box-pack: center; box-align: center; }
.ui-grid-vertical { -webkit-box-orient: vertical; box-orient: vertical; }
.ui-grid { display: -webkit-box; display: box; display: flex;}
.ui-grid-middle { -webkit-box-pack: center; -webkit-box-align: center; box-pack: center; box-align: center; align-items: center;}
.ui-grid-vertical { -webkit-box-orient: vertical; box-orient: vertical; flex-direction: column;}
.ui-grid-label { -webkit-box-flex: 0; box-flex: 0; width: 100px; font-weight: 600; }
.ui-col-0 { -webkit-box-flex: 0; box-flex: 0; }
.ui-col-1 { -webkit-box-flex: 1; box-flex: 1; }
.ui-col-2 { -webkit-box-flex: 2; box-flex: 2; }
.ui-col-3 { -webkit-box-flex: 3; box-flex: 3; }
.ui-col-4 { -webkit-box-flex: 4; box-flex: 3; }
.ui-col-5 { -webkit-box-flex: 5; box-flex: 5; }
.ui-col-6 { -webkit-box-flex: 6; box-flex: 6; }
.ui-col-0 { -webkit-box-flex: 0; box-flex: 0;}
.ui-col-1 { -webkit-box-flex: 1; box-flex: 1; flex: 1;}
.ui-col-2 { -webkit-box-flex: 2; box-flex: 2; flex: 2;}
.ui-col-3 { -webkit-box-flex: 3; box-flex: 3; flex: 3;}
.ui-col-4 { -webkit-box-flex: 4; box-flex: 4; flex: 4;}
.ui-col-5 { -webkit-box-flex: 5; box-flex: 5; flex: 5;}
.ui-col-6 { -webkit-box-flex: 6; box-flex: 6; flex: 6;}

+ 10 - 10
app/record/css/style.css

@ -5795,14 +5795,14 @@ a.disabled:hover{
}
/* css3-Grid
-----------------------------------------------------------------------------*/
.ui-grid { display: -webkit-box; display: box; }
.ui-grid-middle { -webkit-box-pack: center; -webkit-box-align: center; box-pack: center; box-align: center; }
.ui-grid-vertical { -webkit-box-orient: vertical; box-orient: vertical; }
.ui-grid { display: -webkit-box; display: box; display: flex;}
.ui-grid-middle { -webkit-box-pack: center; -webkit-box-align: center; box-pack: center; box-align: center; align-items: center; }
.ui-grid-vertical { -webkit-box-orient: vertical; box-orient: vertical; flex-direction: column;}
.ui-grid-label { -webkit-box-flex: 0; box-flex: 0; width: 100px; font-weight: 600; }
.ui-col-0 { -webkit-box-flex: 0; box-flex: 0; }
.ui-col-1 { -webkit-box-flex: 1; box-flex: 1; }
.ui-col-2 { -webkit-box-flex: 2; box-flex: 2; }
.ui-col-3 { -webkit-box-flex: 3; box-flex: 3; }
.ui-col-4 { -webkit-box-flex: 4; box-flex: 3; }
.ui-col-5 { -webkit-box-flex: 5; box-flex: 5; }
.ui-col-6 { -webkit-box-flex: 6; box-flex: 6; }
.ui-col-0 { -webkit-box-flex: 0; box-flex: 0;}
.ui-col-1 { -webkit-box-flex: 1; box-flex: 1; flex: 1;}
.ui-col-2 { -webkit-box-flex: 2; box-flex: 2; flex: 2;}
.ui-col-3 { -webkit-box-flex: 3; box-flex: 3; flex: 3;}
.ui-col-4 { -webkit-box-flex: 4; box-flex: 4; flex: 4;}
.ui-col-5 { -webkit-box-flex: 5; box-flex: 5; flex: 5;}
.ui-col-6 { -webkit-box-flex: 6; box-flex: 6; flex: 6;}

+ 123 - 0
app/recover/css/common.css

@ -0,0 +1,123 @@
[v-cloak] {
    display: none;
}
.flex{
    display: flex;
}
.flex1{
    flex: 1;
}
.vc{
    align-items: center;
}
.w-80{
	width: 80px;
}
.w-180{
	width: 180px;
}
.w-220{
	width: 220px;
}
.h30{
	height: 30px;
	line-height: 30px;
}
/* 按钮样式 */
.btn{
	outline: 0;
	cursor: pointer;
	display: inline-block;
}
.btn-size-s{
    width: 80px;
    height: 30px;
    font-size: 14px;
}
.btn-size-m{
    width: 120px;
    height: 36px;
    font-size: 14px;
}
.btn-12B7F5{
    background-color: #12B7F5;
    border-color: #12B7F5;
    color: #FFF;
}
/* 必填*样式 */
.required{
    position: relative;
    padding-left: 10px;
}
.required::after{
    content: "*";
    display: inline-block;
    color: red;
    position: absolute;
    left: 0;
    top: 7px;
    z-index: 0;
    font-size: 14px;
}
.ui-row{
	flex-wrap: wrap;
}
.ui-row label{
    min-width: 70px;
    padding-top: 5px;
}
.ui-row .ui-row-item{
	margin-bottom: 20px;
}
.ui-row .el-input__inner{
    height: 30px;
    line-height: 30px;
    background-color: transparent;
    cursor: pointer;
    font-size: 14px;
}
.ui-row .el-input__icon{
    line-height: 30px;
}
/* 输入框样式 */
.form-control{
	border-radius: 3px;
	padding: 0 12px;
	box-sizing: border-box;
}
/* 单选框样式 */
.row-line-item {
    display: inline-block;
    font-size: 14px;
	margin-bottom: 20px;
}
.checkbox-inline, .radio-inline {
    position: relative;
    display: inline-block;
    padding-left: 20px;
    margin-bottom: 0;
    font-weight: 400;
    vertical-align: middle;
    cursor: pointer;
}
.checkbox-inline {
    padding-left: 24px;
}
.checkbox-inline input[type='checkbox'], .radio-inline input[type='radio'] {
	position: absolute;
	margin-left: -20px;
    opacity: 0;
}
input[type='checkbox']+span:before {
    content: '';
    position: absolute;
    left: 0;
    top: 4px;
    background: url(../images/gouxuan_btn.png);
    width: 14px;
    height: 14px;
    display: inline-block;
}
input[type='checkbox']:checked+span:before {
    background: url(../images/gouxuan_pre.png);
}

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

@ -16,7 +16,7 @@ p {margin-bottom: 0; margin-top: 0;}
.plr5 {padding-left: 5px; padding-right: 5px;}
.pl56 {padding-left: 56px;}
.pl65 {padding-left: 65px;}
.c-12b7f5 {color: #12b7f5;)}
.c-12b7f5 {color: #12b7f5;}
.bgc-12b7f5 {background-color: #12b7f5;}
.bgc-e1e1e1 {background-color: #e1e1e1;}
.w40 {width: 32px; height: 24px; text-indent: 0.5em;}
@ -217,4 +217,52 @@ ul {
    display: inline-block;
    float: right;
    line-height: 20px;
}
}
.ellipsis-1{
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
}
.w-row{
	width: 100%;
}
.flex {
    display: flex;
}
.flex1{
	flex: 1;
}
.c-12b7f5 {
    color: #12b7f5;
}
.bg-f5f5fa{
	background-color: #f5f5fa;
}
.link-control{
	padding-right: 20px;
	position: relative;
}
.link-control::after{
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
    width: 6px;
    height: 6px;
	border-right: 1px solid #D7DCE6;
	border-bottom: 1px solid #D7DCE6;
	-webkit-transform: translateY(-50%) rotate(-45deg);
	-moz-transform: translateY(-50%) rotate(-45deg);
	-ms-transform: translateY(-50%) rotate(-45deg);
	-o-transform: translateY(-50%) rotate(-45deg);
	transform: translateY(-50%) rotate(-45deg);
}
.link-control.is-active{
	border-color: #12b7f5;
}
.click-text{
    float: right;
    font-size: 14px;
	color: #12B7F5;
	cursor: pointer;
}

+ 65 - 0
app/recover/css/personal-manage.css

@ -70,4 +70,69 @@
}
.b-c-12b7f5 {
	border-color: #12b7f5;
}
.w-row{
	width: 100%;
}
.flex {
    display: flex;
}
.flex1{
	flex: 1;
}
.c-12b7f5 {
    color: #12b7f5;
}
.bg-f5f5fa{
	background-color: #f5f5fa;
}
.link-control{
	padding-right: 20px;
	position: relative;
}
.link-control::after{
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
    width: 6px;
    height: 6px;
	border-right: 1px solid #D7DCE6;
	border-bottom: 1px solid #D7DCE6;
	-webkit-transform: translateY(-50%) rotate(-45deg);
	-moz-transform: translateY(-50%) rotate(-45deg);
	-ms-transform: translateY(-50%) rotate(-45deg);
	-o-transform: translateY(-50%) rotate(-45deg);
	transform: translateY(-50%) rotate(-45deg);
}
.link-control.is-active{
	border-color: #12b7f5;
}
.vc{
	align-items: center;
}
.zhibiao_icon{
	padding-right: 10px;
	position: relative;
}
.zhibiao_icon::after{
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
}
.zhibiao_icon.low::after{
	background: url('../images/zhibiao_di_icon.png') no-repeat;
	background-size: 100% 100%;
}
.zhibiao_icon.high::after{
	background: url('../images/zhibiao_gao_icon.png') no-repeat;
	background-size: 100% 100%;
}

+ 289 - 0
app/recover/html/addRecoveryDown.html

@ -0,0 +1,289 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>康复下转</title>
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" />
		<link rel="stylesheet" type="text/css" href="../css/common.css" />
	</head>
	<body class="m0">
	<div id="app" class="p15 c-333" v-cloak>
        <div class="ui-row flex">
            <div class="ui-row-item flex">
                <label class="c-999 w-80">专科团队:</label>
				<select v-model="curTeamId" class="form-control w-180 h30">
					<option :value="o.id" v-for="(o, i) in teamList">{{o.name}}</option> 
				</select>
            </div>
            <div class="ui-row-item flex ml50">
                <label class="c-999 w-80">患者身份证:</label>
				<div>
					<input type="text" v-model="searchKey" placeholder="请输入患者身份证查询" class="form-control w-220 h30">
				</div>
            </div>
			<div class="ui-row-item flex">
				<button class="btn btn-12B7F5 btn-size-s ml10" @click="onSearch">搜索</button>
				<button class="btn btn-12B7F5 btn-size-s ml10">扫码下转</button>
			</div>
        </div>
		<div v-if="patientInfo" >
			<h4 class="m0 h30 c-f14 c-border-b f-w500">家签信息</h4>
			<div class="flex mt20">
			    <div class="flex1 flex c-f14">
			        <label class="c-999 w-80">患者信息:</label>
			        <div class="flex1 c-333">{{patientInfo.patientName}}&emsp;{{patientInfo.sex=='1'?'男':'女'}}&emsp;{{patientInfo.age}}岁</div>
			    </div>
			    <div class="flex1 flex c-f14">
			        <label class="c-999 w-80">家签社区:</label>
			        <div class="flex1 c-333">{{patientInfo.hospitalName}}</div>
			    </div>
			    <div class="flex1 flex c-f14">
			        <label class="c-999 w-80">家签医生:</label>
			        <div class="flex1 c-333">{{patientInfo.doctorName}}{{patientInfo.doctorHealthName?'、'+patientInfo.doctorHealthName:''}}</div>
			    </div>
			</div>
			<h4 class="m0 h30 c-f14 c-border-b f-w500 mt30">患者分类</h4>
			<div class="mt20">
			    <div class="flex vc">
			        <label class="c-999 w-80">健康情况:</label>
					<select v-model="curHealthStatu" class="form-control w-180 h30">
						<option v-for="(o, i) in healthLabel" v-bind:value="o.label">{{o.labelName}}</option> 
					</select>
			    </div>
			    <div class="flex mt20">
			        <label class="c-999 w-80">疾病类型:</label>
					<div class="flex1">
						<div v-for="(o, i) in  diseaseLabel" class="row-line-item w-180">
							<label class="checkbox-inline">
								<input type="checkbox" v-model="o.flag"/>
								<span>{{o.diseaseName}}</span>
							</label>
						</div>
					</div>
			    </div>
			    <div class="flex mt20">
			        <label class="c-999 w-80">自定义分组:</label>
					<div class="flex1">
						<div v-for="(o, i) in  customLabel" class="row-line-item w-180">
							<label class="checkbox-inline">
								<input type="checkbox" v-model="o.flag"/>
								<span>{{o.labelName}}</span>
							</label>
						</div>
					</div>
			    </div>
			</div>
			<div class="c-t-center mt50">
			    <button type="button" class="btn btn-white btn-size-m mr15">取消</button>
			    <button type="button" class="btn btn-12B7F5 btn-size-m" @click="saveBtn">保存</button>
			</div>
		</div>
		<div v-else class="c-t-center mt50"><img src="../images/wushuju_img.png" alt=""> <p class="c-999 mt10">患者暂未家签,请先提醒患者完成家庭医生签约</p></div>
	</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../plugins/layer/layer.min.js"></script>
		<script src="../../../plugins/toastr/toastr.min.js"></script>
		<script src="https://unpkg.com/element-ui/lib/index.js" type="text/javascript" charset="utf-8"></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"></script>
		<script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
		<script type="text/javascript">
			var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType
			var httpData=GetRequest()
			var docInfo = JSON.parse(window.localStorage.getItem("docInfo"));
			console.log(httpData)
			function showSuccessMessage(msg) {
				layer.msg(msg, {
					icon: 1
				})
			}
			
			function showErrorMessage(msg) {
				layer.msg(msg, {
					icon: 5
				})
			}
			
			function showWarningMessage(msg) {
				layer.msg(msg, {
					icon: 2
				})
			}
			
			function showInfoMessage(msg) {
				layer.msg(msg, {
					icon: 6
				})
			}
			
			selectVue = new Vue({
                el: "#app",
                data: {
					pickerOptions1: {
			        	disabledDate: function(time) {
			            	return time.getTime() < Date.now() - 8.64e7;
			        	}
			        },
					patientInfo: undefined,
					searchKey: '350524200505041022',
					customLabel: [],
					diseaseLabel: [],
					healthLabel: [],
					teamList: [], // 专科团队列表
					curTeamId: '',
					curHealthStatu: ''
                },
                mounted: function() {
					this.getSpecialistTeamList()
                },
                methods: {
					// 获取下转居民列表
					onSearch: function(){
						if(this.searchKey.trim().length==0){
							return false;
						}
						var vm = this,
							loading = layer.load(0, {shade: false})
						var params = {
							idcard: this.searchKey
						}
						rehaAPI.getRehabilitationPatientList(params).then(function(res){
							layer.close(loading)
							if(res.status == 200) {
								if(res.data.length>0){
									vm.patientInfo = res.data[0]
									vm.getPatientLabelInfo()
								}
							} else {
								showErrorMessage(res.msg);
							}
						})
					},
					// 获取居民标签(健康情况、疾病类型、自定义分组)
					getPatientLabelInfo: function(){
						var vm = this,
							loading = layer.load(0, {shade: false})
						var params = {
							patient: vm.patientInfo.patient // "915cdef5-5b1d-11e6-8344-fa163e8aee56"
						}
						rehaAPI.getPatientLabelInfo(params).then(function(res){
							layer.close(loading)
							if(res.status == 200) {
								var diseaseLabel = [], customLabel = [];
								$.each(res.data['diseaseServer'], function(index, o){
									o.flag = false
									diseaseLabel.push(o)
								})
								$.each(res.data['customLabel'], function(index, o){
									o.flag = false
									customLabel.push(o)
								})
								vm.healthLabel = res.data['healthLabel'] || []
								vm.curHealthStatu = vm.healthLabel.length>0?vm.healthLabel[0].label:undefined
								vm.diseaseLabel = diseaseLabel
								vm.customLabel = customLabel
							} else {
								showErrorMessage(res.msg);
							}
						})
					},
					getSpecialistTeamList: function(){
						var vm = this,
							loading = layer.load(0, {shade: false})
						var params = {
							doctor: docInfo.code
						}
						rehaAPI.getSpecialistTeamList(params).then(function(res){
							layer.close(loading)
							if(res.status == 200) {
								vm.teamList = res.data || []
								vm.curTeamId = vm.teamList[0].id
							} else {
								showErrorMessage(res.msg);
							}
						})
					},
					saveBtn: function(){
						var vm = this
						var vm = this, num1 = 0, num2 = 0,
						health = {}, disease = [], custom = []
						if(!vm.curHealthStatu){
							showWarningMessage('请选择健康情况!')
							return false
						}
						$.each(vm.healthLabel, function(index, o){
							if(o.label == vm.curHealthStatu){
								health = {
									label: o.label,
									labelName: o.labelName,
									labelType: o.labelType
								}
							}
						})
						for(var i=0; i<vm.diseaseLabel.length; i++){
							var o = vm.diseaseLabel[i]
							if(!o.flag){
								num1++
							} else {
								disease.push({
									disease: o.disease,
									diseaseName: o.diseaseName
								})
							}
							if(num1==vm.diseaseLabel.length){
								showWarningMessage('请选择疾病类型!')
								return false
							}
						}
						for(var i=0; i<vm.customLabel.length; i++){
							var o = vm.customLabel[i]
							if(!o.flag){
								num2++
							} else {
								custom.push({
									label: o.label,
									labelName: o.labelName,
									labelType: o.labelType
								})
							}
							if(num2==vm.customLabel.length){
								showWarningMessage('请选择自定义分组!')
								return false
							}
						}
						var data = {
							health: health,
							disease: disease,
							custom: custom
						}
						var params = {
							patient: vm.patientInfo.patient, // "915cdef5-5b1d-11e6-8344-fa163e8aee56"
							patientName: vm.patientInfo.patientName,
							json: JSON.stringify(data)
						}
						var loading = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
						rehaAPI.updatePatientLabelInfo(params).then(function(res){
							layer.close(loading);
							if(res.status==200){
								layer.confirm('康复下转基本信息保存成功,请为患者创建康复计划', { btn: ['创建康复计划', '取消'], title: "康复下转" }, function (index) {
									window.location.href="./new_recover.html?patient="+vm.patientInfo.patient
								})
							}else{
								showErrorMessage(res.msg)
							}
						})
					}
                }
            })
		</script>
	</body>
</html>

+ 235 - 0
app/recover/html/medical-records.html

@ -0,0 +1,235 @@
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>添加住院病历</title>
		<link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/cross.ui.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" type="text/css" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" />
		<link rel="stylesheet" type="text/css" href="../css/common.css" />
	</head>
	<body class="m0">
	<div id="app" class="p10 c-333" v-cloak>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">入院时间:</label>
            <div class="flex1">
				<el-date-picker v-model="admissionTime" type="date" placeholder="请选择">
				</el-date-picker>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">出院时间:</label>
            <div class="flex1">
				<!-- :picker-options="pickerOptions1" -->
				<el-date-picker v-model="dischargeTime" type="date" placeholder="请选择">
				</el-date-picker>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">诊断结果:</label>
            <div class="flex1">
				<div class="flex">
					<el-select v-model="diagnosisValue" filterable placeholder="请选择">
						<el-option
							v-for="item in diseaseData"
							:key="item.value"
							:label="item.name"
							:value="item.value"
							clearable>
						</el-option>
					</el-select>
					<button type="button" class="btn btn-12B7F5 btn-size-s ml15" style="border-radius: 0;" @click="saveDiagnosisWrap">+ 添加</button>
				</div>
				<div>
					<el-tag
						v-for="(v, i) in tags"
						:key="i"
						closable
						class="mr5 mt5"
						@close="closeTag(i)">
						{{v}}
					</el-tag>
				</div>
            </div>
        </div>
        <div class="pt10 flex ui-row mt10">
            <label class="c-999 required" style="font-weight: normal;">医嘱小结:</label>
            <div class="flex1">
                <textarea v-model="advice" class="p10 c-333" style="height: 160px; width: 100%; border:1px solid #e1e1e1; resize:none;box-sizing: border-box"></textarea>
            </div>
        </div>
        <div class="c-t-center mt20">
            <button type="button" class="btn btn-white btn-size-m mr15" @click="cancelMedicalRecords">取消</button>
            <button type="button" class="btn btn-12B7F5 btn-size-m" @click="addMedicalRecords">保存</button>
        </div>
	</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js"></script>
        <script src="../../../plugins/layer/layer.min.js"></script>
		<script src="../../../plugins/toastr/toastr.min.js"></script>
		<script src="https://unpkg.com/element-ui/lib/index.js" type="text/javascript" charset="utf-8"></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"></script>
		<script src="../../../api/recover_api.js" type="text/javascript"></script>
		<script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
		<script type="text/javascript">
			var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType,
				docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'))
			var httpData=GetRequest()
			console.log('httpData:', httpData)
			function showSuccessMessage(msg) {
				layer.msg(msg, {
					icon: 1
				})
			}
			
			function showErrorMessage(msg) {
				layer.msg(msg, {
					icon: 5
				})
			}
			
			function showWarningMessage(msg) {
				layer.msg(msg, {
					icon: 2
				})
			}
			
			function showInfoMessage(msg) {
				layer.msg(msg, {
					icon: 6
				})
			}
			
			selectVue = new Vue({
                el: "#app",
                data: {
					pickerOptions1: {
			        	disabledDate: function(time) {
			            	return time.getTime() < Date.now() - 8.64e7;
			        	}
					},
					admissionTime: '',
					dischargeTime: '',
					diseaseData: [], //诊断列表
					diagnosisValue: '',
					diagnosisObj: undefined,
					tags: [],//诊断标签
					advice: '',
					doctorCode: docInfo.uid,
					patient: httpData.patient,
					patientName: decodeURI(httpData.patientName),
					isPending: false, // 请求发送中标识 防止重复提交
                },
                mounted: function() {
					this.getIcd10Info()
                },
                methods: {
					handleSelect: function(res){
						
					},
					//添加诊断
					saveDiagnosisWrap: function(){
						if(this.diagnosisValue.trim().length>0){
							this.tags.push(this.diagnosisValue)
							this.diagnosisValue = ''
						}
					},
					//删除诊断标签
					closeTag: function(i){
						this.tags.splice(i, 1)
					},
					getIcd10Info: function(v){
						var vm = this, nameKey='',
			    			loadding = layer.load(0, {shade: false}),
			    			params = {
								nameKey:nameKey,
								page: 0,
								pageSize: 10000
							}
						if(v){
							nameKey = v.trim()
						}
						rehaAPI.getIcd10Info(params).then(function(res){
							layer.close(loadding)
							if(res.status == 200) {
								vm.diseaseData = $.each(res.data, function(i, o){
									o.value = o.name									
									return o
								})
							} else {
								showErrorMessage(res.msg);
							}
						})
					},
					cancelMedicalRecords: function(){
						top.recoverVue.closeMedicalRecords()
					},
					addMedicalRecords: function(){
						var vm = this
						if(this.isPending) return false
						if(!this.admissionTime){
							showErrorMessage('请选择入院时间!')
							return false
						}
						if(!this.dischargeTime){
							showErrorMessage('请选择出院时间!')
							return false
						}
						if(this.admissionTime>this.dischargeTime){
                			showWarningMessage("入院时间应小于出院时间!")
                			return false;
                		}
						if(this.tags.length<=0){
							showErrorMessage('请添加诊断!')
							return false
						}
						if(!this.advice||this.advice.trim().length<=0){
							showErrorMessage('请输入医嘱小结!')
							return false
						}
						var diagnosisArr=[], diagnosisNameArr=[];
						$.each(vm.diseaseData, function(i, o){
							$.each(vm.tags, function(index, value){
								if(o.value==value){
									diagnosisArr.push(o.code)
									diagnosisNameArr.push(o.value)
								}
							})
						})
						var jsonData = {
							admissionTime: new Date(this.admissionTime).format('yyyy-MM-dd HH:mm:ss'),
							dischargeTime: new Date(this.dischargeTime).format('yyyy-MM-dd HH:mm:ss'),
							diagnosis: diagnosisArr.join(','),
							diagnosisName: diagnosisNameArr.join(','),
							advice: this.advice
						}
						var params = {
							doctorCode: vm.doctorCode,
							patient: vm.patient,
							patientName: vm.patientName,
							jsonData: JSON.stringify(jsonData)
						}
						this.isPending = true
						rehaAPI.createMedicalRecords(params).then(function(res){
							this.isPending = false
							if(res.status==200){
								top.recoverVue.completeMedicalRecords(res.data)
							}else{
								top.recoverVue.closeMedicalRecords()
								showErrorMessage(res.msg);
							}
							
						})
						
					}
                }
            })
		</script>
	</body>
</html>

+ 520 - 361
app/recover/html/new_recover.html

@ -55,8 +55,8 @@
		        		<li class="pt10"><span class="c-999">全科医生:</span>{{patiInfo.ssDoctorName || patiInfo.jtDoctorName}}</li>
		        		<li class="pt10"><span class="c-999">健&ensp;管&ensp;师:</span>{{patiInfo.ssDoctorHealthName || patiInfo.jtDoctorHealthName}}</li>
		        	</ul>
		        	<h4 class="h30 m0 c-f14 c-border-b">诊疗信息</h4>
		        	<ul class="c-333 m0 p0 pb20" >
		        	<!-- <h4 class="h30 m0 c-f14 c-border-b">诊疗信息</h4> -->
		        	<!-- <ul class="c-333 m0 p0 pb20" >
	        			<div class="input-group mtb10" >
	        				<label style="transform: translateY(50%); color: #999999;font-weight: normal;">就诊事件:</label>
							<div class="input-group-btn" style="width: 80%; transform: translateY(50%);top: -5px;">
@ -85,12 +85,32 @@
		        			<label class="c-999" style="font-weight: normal;">出院诊断:</label>
		        			<input class="form-control" v-bind:disabled="edit" v-bind:value="nodata == true? '请输入': subsidiaryInfo.data.dischargeDiagnosis" style="text-align: center; height: 22px; border-radius: 3px; width: 80%;">
		        		</li>
		        	</ul>
		        	<h4 class="h30 m0 c-f14 c-border-b c-999">医嘱小结</h4>
		        	<!--<p class="m0 pt10 c-333">依旧本次判断,对新消息进行出院诊断做出以下结论:忧郁啥啥事等等等问题</p>-->
		        	<textarea v-bind:disabled="edit" class="tipText m0 pt10 c-333 mt10" style="height: 200px; width: 100%; border:1px solid #e1e1e1; resize:none;text-indent:28px" v-html="subsidiaryInfo.data.dischargeOrder"></textarea>
		        	<button type="button" class="btn btn-default fr" style="width: 60px; background: #12B7F5; border-radius: 0px ;border: 0px ;" @click="editdiagnosis()" v-html="edit == true? '编辑':'保存'"></button>
	        	</div>
		        	</ul> -->
		        	<!-- <h4 class="h30 m0 c-f14 c-border-b c-999">医嘱小结</h4> -->
		        	<!-- <textarea v-bind:disabled="edit" class="tipText m0 pt10 c-333 mt10" style="height: 200px; width: 100%; border:1px solid #e1e1e1; resize:none;text-indent:28px" v-html="subsidiaryInfo.data.dischargeOrder"></textarea> -->
		        	<!-- <button type="button" class="btn btn-default fr" style="width: 60px; background: #12B7F5; border-radius: 0px ;border: 0px ;" @click="editdiagnosis()" v-html="edit == true? '编辑':'保存'"></button> -->
					<h4 class="h30 m0 c-f14 c-border-b f-w500" style="overflow: hidden;">
						康复建议
						<span class="click-text" @click="editAdviceTextarea">
							{{isEdit == true? '编辑':'保存'}}
						</span>
					</h4>
					<textarea v-bind:disabled="isEdit" v-model="adviceContent" class="m0 p10 c-333 mt10" :class="{'bg-f5f5fa':isEdit}" style="width: 100%;height: 200px; width: 100%; border:1px solid #e1e1e1; resize:none;" placeholder="请输入您的康复建议..."></textarea>
					<h4 class="h30 m0 c-f14 c-border-b f-w500" style="overflow: hidden;">
						住院病历
					</h4>
					<div v-if="medicalRecordsList.length>0" v-for="(o, i) in medicalRecordsList" class="mt10">
						<div class="flex vc c-f14 c-border plr10 ptb5 link-control">
							<span class="c-666 mr15">
								{{formatter(o.admissionTime)}}
							</span>
							<div class="flex1 c-12b7f5 ellipsis-1">
								{{o.hospitalName}}
							</div>
						</div>
					</div>
					<button  type="button" class="btn btn-default fr" style="width: 100%; background: #12B7F5; border-radius: 0px ;border: 0px ;padding: 10px;margin-top: 15px;" @click="addMedicalRecords()">添加住院病历</button>
				</div>
	        </div>
	        <div class="fl c-h100 w-100-400">
	        	<div class="c-h100 plr5" v-if="!isPlan">
@ -119,72 +139,94 @@
		        			<div class="c-h100-41" style="overflow: hidden;">
		        				<ul class="c-h100 p0 m0" style="overflow: auto;">
		        					<li class="mt10 plr10 ptb5 c-border b-r-3 clearfix" v-for="(detail, index) in templateDetail" :key="index">
		        						<div class="fl w-100-78 c-333">
		        							<p :class='detail.isTimeSame ? "m0 p0 mb10 txt-ells cur-pit c-red" : "m0 p0 mb10 txt-ells cur-pit"' @click="lookProject(detail)">{{detail.specialistServiceItemDO.title}}</p>
	        								<div class="clearfix">
	        									<p class="w400 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="w400 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" 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="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 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[0]" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions1" @input="getRandgeDate(index)">
														</el-date-picker>
														<span>—</span>
														<el-date-picker v-model="detail.value14[1]" type="date" placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions1" @input="getRandgeDate(index)">
										<div v-if="detail.name=='康复咨询'||detail.name=='远程健康监测'">
											<div class="fl w-100-78 c-333">
												<p :class='detail.isTimeSame ? "m0 p0 mb10 txt-ells cur-pit c-red" : "m0 p0 mb10 txt-ells cur-pit"' @click="lookProject(detail)">{{detail.name}}</p>
												<div class="clearfix">
													<p class="w400 m0 mb10 p0 fl"><span class="c-999">医&emsp;&emsp;院:</span>{{docInfo.hospitalName}}</p>
													<p class="m0 p0 mb10 fl"><span class="c-999">费&emsp;&emsp;用:</span>0.00</p>
												</div>
												<div class="m0 p0 clearfix">
													<div class="w400 m0 mb10 p0 fl clearfix">
														<span class="fl c-999">选择频次:</span>
														<div class="fl c-position-r w100">
															不限频次
														</div>
													</div>
												</div>
												<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'>
												<div class="clearfix mb10"><span class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></span></div>
											</div>
										</div>
										<div v-else>
											<div class="fl w-100-78 c-333"> 
												<p :class='detail.isTimeSame ? "m0 p0 mb10 txt-ells cur-pit c-red" : "m0 p0 mb10 txt-ells cur-pit"' @click="lookProject(detail)">{{detail.name}}</p>
												<div class="clearfix">
													<p class="w400 m0 mb10 p0 fl"><span class="c-999">医&emsp;&emsp;院:</span>{{detail.executeHospitalName}}</p>
													<p class="m0 p0 mb10 fl"><span class="c-999">费&emsp;&emsp;用:</span>0.00</p>
												</div>
												<div class="m0 p0 clearfix">
													<div class="w400 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" 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="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 mb10">
															<el-date-picker v-model="detail.value14[0]" type="date" placeholder="开始日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions1" @input="getRandgeDate(index, 0)">
															</el-date-picker>
															<span>—</span>
															<el-date-picker v-model="detail.value14[1]" type="date" placeholder="结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions1" @input="getRandgeDate(index, 1)">
															</el-date-picker>
														</div>
														</el-date-picker>
	        											<!--<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 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>
        									</div>
        									<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">×{{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>
														<span class="fl lh24 mlr10 c-999">或</span>
														<div class="fl maxw600 mb10">
															<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>
												</div>
												<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">×{{mul(detail.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>
										</div>
		        					</li>
		        					<li class="pt100 c-t-center" v-if="!templateDetail.length">
		        						<span class="set-right-arraw pr20">请在右侧“服务项”列表中选择</span>
@ -196,8 +238,8 @@
	        				<p class="m0 p0 pl20 ptb10 c-border-b set-label">支付方式:<span class="ml10 pl20 active">按服务支付</span><em class="c-red ml20">(按选择支付方式完成收费)</em></p>
	        				<div class="pl20 lh40">总费用:
	        					<span class="c-red c-f16">¥{{allFee}}</span>
	        					<span class="fr lh30 cur-pit plr15 c-t-center bgc-green c-fff" @click="canclePlan()">取消</span>
	        					<span class="fr lh30 cur-pit plr15 c-t-center c-fff" :class="havePlan ? 'bgc-12b7f5' : 'bgc-d7dce6'" @click="createRehabilitationPlan()">生成计划</span>
	        					<span class="fr lh30 cur-pit plr15 c-t-center bgc-green c-fff" @click="canclePlan()">取消</span>
	        				</div>
	        			</div>
		        	</div>
@ -211,6 +253,20 @@
								<span class="fr search-btn" @click="searchProject()"></span>
							</div>
							<div class="c-h100-99" style="overflow: hidden;">
								<div class="c-h100 p0 m0" style="overflow: auto;">
									<ul class="p0 m0 pr10">
										<li v-for="(o, i) in serviceItems" :key="i" class="clearfix ptb5">
											<!-- @click="selectProject(i, o)" -->
											<div class="fl c-border w-100-66 cur-pit border-c12b7f5 ptb5 plr5 b-r-3 clearfix" :class="o.isSelect ? 'bgc-12b7f5' : 'bgc-fff'">
												<p class="fl w-100-78 txt-ells lh18" :class="o.isSelect ? 'c-fff' : 'c-666'">{{o.name}}</p>
											</div>
											<span class="fr h30 btn cur-pit plr10 bgc-12b7f5 c-fff b-r-3" style="padding: 0 10px;" v-if="!o.isSelect" @click="addProject(i, o)">添加</span>
											<span class="fr h30 btn plr10 bgc-e1e1e1 c-fff b-r-3" style="padding: 0 10px;" v-else>添加</span>
										</li>
									</ul>
								</div>
							</div>
							<!-- <div class="c-h100-99" style="overflow: hidden;">
								<ul class="c-h100 p0 m0" style="overflow: auto;">
									<li v-for="(project1, index) in projectList" :key="index">
										<h4 class="set-arrow c-f14 h30 p0 m0 pl20 f-w500 cur-pit" :class="{'active': index == proIndex1}" @click="selectPro(1, index)">{{project1.itemType == 1 ? '诊疗服务' : '健康服务'}}</h4>
@ -232,7 +288,7 @@
										</ul>
									</li>
								</ul>
							</div>
							</div> -->
		        		</div>
		        	</div>
		        </div>
@ -250,9 +306,10 @@
		<script src="https://unpkg.com/element-ui/lib/index.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../api/http-request.js" type="text/javascript"></script>
		<script src="../../../api/recover_api.js" type="text/javascript"></script>
		<script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
		<script type="text/javascript">
			var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType,
				docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'))
				docInfo = JSON.parse(window.localStorage.getItem('docInfo'))
			var httpData=GetRequest()
			function showSuccessMessage(msg) {
				layer.msg(msg, {
@ -292,12 +349,13 @@
                	proIndex1: null,
                	proIndex2: null,
                	patiInfo: null,
                	diseaseObj: null,
                	diseaseObj: null, // 疾病
                	mubanList: [],
                	templateDetail: [],
                	templateResult: [],
                	allFee: 0,
                	projectList: null,
					projectList: null,
					serviceItems: null, // 服务项列表
                	labelIndex: 2,
                	labelCode: 1,
                	spanLabel: [{
@ -310,8 +368,8 @@
                		labelName: "康复计划",
                		code: 1
                	}],
                	jDlist: null,
                	zDlist: null,
                	jDlist: [], //家签医生
                	zDlist: [], //专科医生
                	selectProjectDetail: null,
                	searchKey: null,
                	havePlan: false,
@ -323,8 +381,20 @@
                	subsidiaryInfo:{},
                	edit:true,
                	selectDiseaseIndex:'',
                	isPlanId :''
                },
					isPlanId :'',
					selectPatientIndex: '',
					adviceContent: '', //康复建议
					isEdit: false, 
					medicalRecordsList: [],
					docInfo: JSON.parse(window.localStorage.getItem('docInfo'))
				},
				watch: {
					templateDetail: function(){
						if(this.templateDetail.length==0){
							this.havePlan = false
						}
					}
				},
                mounted: function() {
                	this.selectFrequencys()
                	if(httpData.patient) {
@ -334,10 +404,32 @@
                		this.pati = {patient: httpData.patient}
                		this.getPatientInfo()
                		this.findTemplateList()
                		this.diagnosisQuery()
                		// this.diagnosisQuery()
                	}
                },
                methods: {
					// 添加住院病历
					addMedicalRecords: function(){
						var vm = this
						this.selectPatientIndex = layer.open({
							type: 2,
							area: ['480px', '520px'],
							shade: 0.5,
							title: '添加住院病历',
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
							content: "medical-records.html?patient="+vm.pati.patient+'&patientName='+vm.pati.patientName
						});
					},
					//关闭添加住院病历弹框
					closeMedicalRecords: function(){
						layer.close(this.selectPatientIndex)
					},
					completeMedicalRecords: function(data){
						this.medicalRecordsList.unshift(data)
						layer.close(this.selectPatientIndex)
					},
                	//获取诊疗信息
                	diagnosisQuery:function(){
                		var vm = this;
@ -454,6 +546,11 @@
						vm.subsidiaryInfo.data.admissionDiagnosis = $('#department').find('input').val()
						vm.subsidiaryInfo.data.dischargeDiagnosis = $('#dischargeDiagnosis').find('input').val()
					},
					// 编辑康复建议
					editAdviceTextarea: function(){
						this.isEdit = !this.isEdit
					},
                	// 获取频次列表
                	selectFrequencys: function() {
                		var vm = this,
@ -480,13 +577,21 @@
							if(res.status == 200) {
								vm.patiInfo = res.data
								vm.pati.patientName = res.data.name
								vm.jDlist = [{
								vm.jDlist.push({
									name: docInfo.name,
									code: docInfo.uid,
									hospitalName: docInfo.hospitalName
								})
								vm.jDlist.push({
									name: vm.patiInfo.ssDoctorName || vm.patiInfo.jtDoctorName,
									code: vm.patiInfo.ssDoctor || vm.patiInfo.jtDoctor
								}, {
									code: vm.patiInfo.ssDoctor || vm.patiInfo.jtDoctor,
									hospitalName: vm.patiInfo.jtHospitalName
								})
								vm.jDlist.push({
									name: vm.patiInfo.ssDoctorHealthName || vm.patiInfo.jtDoctorHealthName,
									code: vm.patiInfo.ssDoctorHealth || vm.patiInfo.jtDoctorHealth
								}]
									code: vm.patiInfo.ssDoctorHealth || vm.patiInfo.jtDoctorHealth,
									hospitalName: vm.patiInfo.jtHospitalName
								})
							} else {
								showErrorMessage(res.msg);
							}
@ -502,6 +607,10 @@
						recoverAPI.findPatientSignSpecialistInfo(params).then(function(res) {
							if(res.status == 200) {
								vm.pati.teamCode = res.data.teamCode
								// vm.jDlist.push({
								// 	name: res.data.doctorName,
								// 	code: res.data.doctor
								// })
								vm.specialistTeam(res.data.teamCode)
							} else {
								showErrorMessage(res.msg);
@ -551,70 +660,120 @@
							if(res.status == 200) {
								vm.templateDetail = []
								vm.templateResult = res.data
								vm.findServiceItemsByHospital()
								vm.getServiceItemList().then(function(){
									$.each(vm.serviceItems, function(index,o) {
										$.each(vm.templateResult, function(index1, o1) {
											if(o1.code == o.code) {
												o.isSelect = true
												o1.isSelect = true
												o1.selectDoc = false
												o1.selectDate = 1
												o1.value14 = []
												o1.value15 = null
												o1.executeTime = []
												o1.selectDateRange = []
												// 默认频次
												o1.selectFre = false
												o1.frequencyCode = vm.frequencyList[0].code
												o1.frequency = vm.frequencyList[0]
												o1.frequencyList = vm.frequencyList
												o1.timeType = 0
												o1.remark = null
												o1.executeDoctor = vm.jDlist[0].code
												o1.executeDoctorName = vm.jDlist[0].name
												o1.executeHospitalName = vm.jDlist[0].hospitalName
												o1.docList = vm.jDlist
												vm.templateDetail.push(o1)
											}
										})
										return o
									})
								})
								// vm.findServiceItemsByHospital()
							} else {
								showErrorMessage(res.msg);
							}
						})
                	},
                	// 服务项目列表
                	findServiceItemsByHospital: function() {
                		var vm = this,
			    			loadding = layer.load(0, {shade: false}),
			    			params = {
			    				doctor: docInfo.uid,
								patient: this.pati.patient,
								serviceItemName: this.searchKey
			    			}
						recoverAPI.findServiceItemsByHospital(params).then(function(res) {
					},
					// 服务项目列表 2020-03-03 新增接口
					getServiceItemList: function(isSearch){
						var vm = this,
							loadding = layer.load(0, {shade: false}),
							params = {
								name: vm.searchKey
							}
						return rehaAPI.getServiceItemList(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.projectList = $.each(res.data[0], function(index, o) {
									$.each(vm.templateResult, function(index1, o1) {
										if(o1.specialistServiceItemDO.itemType == o.itemType) {
											$.each(o.item, function(index2, o2) {
												if(o1.specialistServiceItemDO.diseaseItem == o2.itemName) {
													$.each(o2.hospitalServiceItems, function(index3, o3) {
														if(o3.serviceItemId == o1.serviceItemId) {
															o3.isSelect = true
															o3.selectDoc = false
															o3.selectDate = 1
															o3.value14 = []
															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
																o3.docList = vm.zDlist
															} else {
																o3.executeDoctor = vm.jDlist[0].code
																o3.executeDoctorName = vm.jDlist[0].name
																o3.docList = vm.jDlist
															}
															vm.templateDetail.push(o3)
														}
													});
												}
											});
										}
									});
								var serviceItems = res.data
								vm.serviceItems = $.each(serviceItems, function(index,o) {
									o.isSelect = false
									return o;
								});
							} else {
								})
							}else {
								showErrorMessage(res.msg);
							}
						})
                	},
					},
                	// 服务项目列表
                	// findServiceItemsByHospital: function() {
                	// 	var vm = this,
			    	// 		loadding = layer.load(0, {shade: false}),
			    	// 		params = {
			    	// 			doctor: docInfo.uid,
					// 			patient: this.pati.patient,
					// 			serviceItemName: this.searchKey
			    	// 		}
					// 	recoverAPI.findServiceItemsByHospital(params).then(function(res) {
					// 		layer.close(loadding)
					// 		if(res.status == 200) {
					// 			vm.projectList = $.each(res.data[0], function(index, o) {
					// 				$.each(vm.templateResult, function(index1, o1) {
					// 					if(o1.specialistServiceItemDO.itemType == o.itemType) {
					// 						$.each(o.item, function(index2, o2) {
					// 							if(o1.specialistServiceItemDO.diseaseItem == o2.itemName) {
					// 								$.each(o2.hospitalServiceItems, function(index3, o3) {
					// 									if(o3.serviceItemId == o1.serviceItemId) {
					// 										o3.isSelect = true
					// 										o3.selectDoc = false
					// 										o3.selectDate = 1
					// 										o3.value14 = []
					// 										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
					// 										// 标识 (1 社区 2 医院 3 社区、医院)
					// 										if(o3.flag == 2) {
					// 											o3.executeDoctor = vm.zDlist[0].code
					// 											o3.executeDoctorName = vm.zDlist[0].name
					// 											o3.docList = vm.zDlist
					// 										} else {
					// 											o3.executeDoctor = vm.jDlist[0].code
					// 											o3.executeDoctorName = vm.jDlist[0].name
					// 											o3.docList = vm.jDlist
					// 										}
					// 										vm.templateDetail.push(o3)
					// 									}
					// 								});
					// 							}
					// 						});
					// 					}
					// 				});
					// 				return o;
					// 			});
					// 		} else {
					// 			showErrorMessage(res.msg);
					// 		}
					// 	})
                	// },
                	searchProject: function() {
                		this.findServiceItemsByHospital()
						this.getServiceItemList(true)
                	},
                	setPatImg: function(src) {
			    		if(!src) {
@ -649,7 +808,8 @@
			    	selectLi: function(index, list) {
			    		this.templateDetail[index].selectDoc = false
			    		this.templateDetail[index].executeDoctor = list.code
			    		this.templateDetail[index].executeDoctorName = list.name
						this.templateDetail[index].executeDoctorName = list.name
						this.templateDetail[index].executeHospitalName = list.hospitalName
			    		this.templateDetail[index] = this.templateDetail[index]
			    		this.isTest = !this.isTest
			    	},
@ -658,50 +818,41 @@
			    		var vm = this
			    		this.isTest = !this.isTest
			    		this.templateDetail.splice(index, 1)
			    		var len = detail.specialistServiceItemDO.executeTime.length
			    		if(len) {
			    			this.checkAllMoney()
			    		}
			    		var len = detail.executeTime.length
			    		var deleteJudge = true
			    		$.each(vm.templateDetail, function(index, o) {
			    			if(o.hospitalServiceItemId == detail.hospitalServiceItemId) {
			    			if(o.code == detail.code) {
			    				deleteJudge = false
			    			}
			    		});
			    		if(deleteJudge) {
			    			$.each(vm.projectList, function(index, o) {
								if(detail.specialistServiceItemDO.itemType == o.itemType) {
									$.each(o.item, function(index2, o2) {
										if(detail.specialistServiceItemDO.diseaseItem == o2.itemName) {
											$.each(o2.hospitalServiceItems, function(index3, o3) {
												if(o3.serviceItemId == detail.serviceItemId) {
													o3.isSelect = false
													o3.specialistServiceItemDO.executeTime = []
												}
											});
										}
									});
			    			$.each(vm.serviceItems, function(index, o) {
								if(detail.code == o.code) {
									o.isSelect = false
									o.executeTime = []
									vm.serviceItems[index] = o
								}
							});
			    		}
						vm.judgeHavePlan()
						}
						this.judgeHavePlan()
			    	},
			    	// 复制计划
			    	copyTemplate: function(index, detail) {
			    		var vm = this,
			    			obj = JSON.parse(JSON.stringify(detail))
//			    		this.templateDetail[index] = detail
			    			obj = JSON.parse(JSON.stringify(detail));
			    		this.isTest = !this.isTest
			    		obj.specialistServiceItemDO.executeTime = []
			    		obj.executeTime = []
			    		obj.value14 = []
			    		obj.value15 = null
			    		this.templateDetail.push(obj)
			    		this.checkAllMoney()
						this.templateDetail.push(obj)
						if(obj.code!='2'&&obj.code!='3'){
							this.havePlan = false
						}
			    	},
			    	// 选择项目
			    	selectProject: function(index, index2, index3, o) {
			    		this.selectProjectDetail = o
                		selectPatientIndex = layer.open({
                		this.selectPatientIndex = layer.open({
							type: 2,
							area: ['400px', '500px'],
							shade: 0.5,
@ -713,7 +864,7 @@
						});
                	},
                	// 添加项目
                	addProject: function(index, index2, index3, obj) {
                	addProject: function(index, obj) {
                		if(obj) {
                			this.selectProjectDetail = obj
                		}
@ -726,8 +877,8 @@
                		this.selectProjectDetail.selectDate = 1
						this.selectProjectDetail.value14 = []
						this.selectProjectDetail.value15 = null
                		this.selectProjectDetail.specialistServiceItemDO.executeTime = []
                		this.selectProjectDetail.specialistServiceItemDO.selectDateRange = []
                		this.selectProjectDetail.executeTime = []
                		this.selectProjectDetail.selectDateRange = []
                		// 频次选择
                		this.selectProjectDetail.selectFre = false
                		this.selectProjectDetail.frequencyCode = this.frequencyList[0].code
@ -735,21 +886,20 @@
                		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
							this.selectProjectDetail.docList = this.zDlist
						} else {
							this.selectProjectDetail.executeDoctor = this.jDlist[0].code
							this.selectProjectDetail.executeDoctorName = this.jDlist[0].name
							this.selectProjectDetail.docList = this.jDlist
						}
						this.selectProjectDetail.executeDoctor = this.jDlist[0].code
						this.selectProjectDetail.executeDoctorName = this.jDlist[0].name
						this.selectProjectDetail.executeHospitalName = this.jDlist[0].hospitalName
						this.selectProjectDetail.docList = this.jDlist
                		this.templateDetail.push(this.selectProjectDetail)
                		this.projectList[index].item[index2].hospitalServiceItems[index3] = this.selectProjectDetail
						this.serviceItems[index] = this.selectProjectDetail
						if(this.selectProjectDetail.code!='2'&&this.selectProjectDetail.code!='3'){
							this.havePlan = false
						}
						
                	},
                	// 查看项目
                	lookProject: function(o) {
                		selectPatientIndex = layer.open({
                		this.selectPatientIndex = layer.open({
							type: 2,
							area: ['400px', '500px'],
							shade: 0.5,
@ -762,11 +912,11 @@
                	},
                	// 选择居民
                	selectPatient: function() {
                		selectPatientIndex = layer.open({
                		this.selectPatientIndex = layer.open({
							type: 2,
							area: ['400px', '500px'],
							shade: 0.5,
							title: '同步出院小结',
							title: '同步患者',
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
@ -781,21 +931,24 @@
                		this.pati = pati
                		this.getPatientInfo()
                		this.findTemplateList()
                		this.diagnosisQuery()
						// this.diagnosisQuery()
						layer.close(this.selectPatientIndex)
                	},
                	// 添加模板
                	addMuban: function(oId) {
                		var vm = this
                		vm.selectDiseaseIndex = layer.open({
							type: 2,
							area: ['400px', '500px'],
							shade: 0.5,
							title: '选择疾病',
							closeBtn: 1,
							shift: 5,
							shadeClose: false, //点击遮罩关闭层
							content: "select-disease.html?teamCode=" + vm.pati.teamCode +"&templateId=" + oId || ''
						});
						var vm = this
                		// vm.selectDiseaseIndex = layer.open({
						// 	type: 2,
						// 	area: ['400px', '500px'],
						// 	shade: 0.5,
						// 	title: '选择疾病',
						// 	closeBtn: 1,
						// 	shift: 5,
						// 	shadeClose: false, //点击遮罩关闭层
						// 	content: "select-disease.html?teamCode=" + vm.pati.teamCode +"&templateId=" + oId || ''
						// });
						var templateId = oId||''
						vm.newPlan(templateId)
                	},
                	// 取消计划
                	canclePlan: function(obj) {
@ -815,15 +968,18 @@
                		this.isPlan = false
                		this.allFee = 0
                		this.templateDetail = []
                	},
                	newPlan: function(disease, templateId) {
                		this.diseaseObj = disease
					},
					// (disease, templateId)
                	newPlan: function(templateId) {
						// this.diseaseObj = disease
						// var templateId = this.templateId
                		this.isPlan = true
                		if(templateId) {
                			this.findTemplateDetail(templateId)
                		} else {
	                		this.templateDetail = []
	                		this.findServiceItemsByHospital()
							this.templateDetail = []
							this.getServiceItemList()
	                		// this.findServiceItemsByHospital()
	                	}
                	},
                	selectPro: function(pro, index) {
@ -839,7 +995,7 @@
                		this.labelCode = label.code
                	},
                	changeSelectDate: function(index, num) {
                		if(this.templateDetail[index].specialistServiceItemDO.executeTime.length) {
                		if(this.templateDetail[index].executeTime.length) {
                			showWarningMessage("请先清除此选项的计划时间!");
                			return false;
                		}
@ -858,51 +1014,50 @@
							shadeClose: false, //点击遮罩关闭层
							content: "select_timer.html"
						});
                	},
					},
					formatter: function(time){
						return new Date(time).format('yyyy-MM-dd')
					},
                	// 选择日期
                	getSelectDate: function(index) {
                		var vm = this,
                			projectId = vm.templateDetail[index].hospitalServiceItemId;
                		vm.templateDetail = $.map(vm.templateDetail, function(o, index) {
								if(projectId == o.hospitalServiceItemId) {
									o.isTimeSame = false
								}
								return o
							})
                		this.templateDetail[index].specialistServiceItemDO.executeTime = []
                		if(!this.templateDetail[index].value15) {
                			this.checkAllMoney()
							projectId = vm.templateDetail[index].code;
						if(!this.templateDetail[index].value15) {
                			return false;
                		}
                		vm.templateDetail = $.map(vm.templateDetail, function(o, index) {
							if(projectId == o.code) {
								o.isTimeSame = false
							}
							return o
						})
                		this.templateDetail[index].executeTime = []
                		var arr = this.templateDetail[index].value15
                		this.templateDetail[index].specialistServiceItemDO.executeTime = arr
                		this.templateDetail[index].executeTime = arr
                		this.templateDetail[index].value14 = []
                		this.isTest = !this.isTest
                		this.checkAllMoney()
                		this.judgeHavePlan()
                	},
					},
                	// 选择周期
                	getRandgeDate: function(index) {
                	getRandgeDate: function(index, i) {
                		var vm = this
                		var templateDetail=this.templateDetail[index]
                		if(!templateDetail.value14[0]||!templateDetail.value14[1]){
                			return false;
                		}else if(templateDetail.value14[0]>templateDetail.value14[1]){
						var templateDetail=this.templateDetail[index]
						if(!templateDetail.value14[i]){
							this.templateDetail[index].executeTime = []
							this.havePlan = false
							return false
						}	
						if(templateDetail.value14[0]>templateDetail.value14[1]){
                			showWarningMessage("开始时间应小于结束时间!")
                			return false;
                		}
                		var	projectId = vm.templateDetail[index].hospitalServiceItemId;
						}
                		var	projectId = vm.templateDetail[index].code;
                		vm.templateDetail = $.map(vm.templateDetail, function(o, index) {
								if(projectId == o.hospitalServiceItemId) {
									o.isTimeSame = false
								}
								return o
							})
                		this.templateDetail[index].specialistServiceItemDO.executeTime = []
                		if(!this.templateDetail[index].value14) {
                			this.checkAllMoney()
                			return false;
                		}
							if(projectId == o.code) {
								o.isTimeSame = false
							}
							return o
						})
                		this.templateDetail[index].executeTime = []
                		var arr = this.templateDetail[index].value14,
                			startTime = new Date(arr[0]).getTime(),
                			endTime = new Date(arr[1]).getTime(),
@ -912,159 +1067,163 @@
                		for(i; i * oneday <= absTime; i++) {
                			var num = i * oneday + startTime,
                				str = new Date(num).format("yyyy-MM-dd")
                			this.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
                			this.templateDetail[index].executeTime.push(str)
                		}
                		this.checkAllMoney()
                		var obj = {
                			startTime: arr[0],
                			endTime: arr[1],
                			length: i
                		}
                		this.templateDetail[index].specialistServiceItemDO.selectDateRange.push(obj)
                		this.templateDetail[index].selectDateRange.push(obj)
                		this.templateDetail[index].value15 = null
                		this.isTest = !this.isTest
                		this.judgeHavePlan()
						this.isTest = !this.isTest
						this.judgeHavePlan()
                	},
                	// 计算总费用
                	checkAllMoney: function() {
                		var vm = this
                		this.allFee = 0
                		$.each(vm.templateDetail, function(index, o) {
                			var fee = vm.mul(vm.mul(o.expense, o.frequency.count), o.specialistServiceItemDO.executeTime.length)
                			var fee = vm.mul(vm.mul(o.expense, o.frequency.count), o.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() {
						var arr = []
                		for(var k = 0; k < this.templateDetail.length; k++) {
                			for(var i = 0; i < this.templateDetail[k].specialistServiceItemDO.executeTime.length; i++) {
		    					if(this.templateDetail[k].specialistServiceItemDO.executeTime[i]) {
		    						this.havePlan = true;
		    						return false;
		    					}
		    				}
                		}
                		this.havePlan = false
							if(this.templateDetail[k].code!='2'&&this.templateDetail[k].code!='3'){
								if(this.templateDetail[k].executeTime[0]) {
									arr.push(true)
								}else {
									arr.push(false)
								}
							}
						}
						var flag = _.every(arr, Boolean)
						if(flag){
							this.havePlan = true
						}else{
							this.havePlan = false
						}
                	},
                	createRehabilitationPlan: function() {
						var vm = this
                		if(!this.havePlan) {
                			showWarningMessage("请选择计划时间!")
                			return false;
                		}
//              		for(var k = 0; k < this.templateDetail.length; k++) {
//              			for(var i = 0; i < this.templateDetail[k].specialistServiceItemDO.executeTime.length; i++) {
//		    					for(var j = i + 1; j < this.templateDetail[k].specialistServiceItemDO.executeTime.length; j++) {
//		    						if(this.templateDetail[k].specialistServiceItemDO.executeTime[i] == this.templateDetail[k].specialistServiceItemDO.executeTime[j]) {
//		    							showWarningMessage("请核对项目“" + this.templateDetail[k].specialistServiceItemDO.title + "”的计划时间选择!");
//		    							return false;
//		    						}
//		    					}
//		    				}
//              		}
                		
						var vm = this;
			    		if(vm.edit == true){
			    			var loadding = layer.load(0, {shade: false}),
			    			data = {
			    				patient: this.pati.patient,
			    				name: this.pati.patientName,
			    				title: this.pati.patientName + this.diseaseObj.diseaseName + "康复计划",
			    				disease: this.diseaseObj.diseaseCode,
			    				diseaseName: this.diseaseObj.diseaseName,
			    				planType: this.labelCode,
			    				payment: 2,
			    				totalExpense: this.allFee,
			    				detail: []
			    			},
			    			params = {};
				    		$.each(vm.templateDetail, function(index, o) {
				    			if(o.specialistServiceItemDO.executeTime.length) {
				    				var executeTime = []
				    				$.each(o.specialistServiceItemDO.executeTime, function(ind, v) {
				    					v += ' 00:00'
				    					executeTime.push(v)
				    				});
				    				var obj = {
				    					hospitalServiceItemId: o.id,
				    					type: o.flag == 2 ? 2 : 1,
				    					doctor: o.executeDoctor,
				    					doctorName: o.executeDoctorName,
				    					executeTimes: executeTime.join(","),
				    					frequencyCode: o.frequencyCode,
				    					timeType: o.timeType,
				    					remark: o.remark || ''
				    				}
				    				data.detail.push(obj)
				    			}
				    		});
				    		params = {
				    			json: JSON.stringify(data)
				    		}
							recoverAPI.createRehabilitationPlan(params).then(function(res) {
								layer.close(loadding)
								if(res.status == 200) {
									vm.isPlanId = res.data
									if(vm.isPlanId){
										var thr_parems ={
											patient:vm.pati.patient,
											patientName:vm.pati.patientName,
											planId:vm.isPlanId,
											hospitalName:$('.input-group-btn button').text().trim(),
											department:$('#department').find('input').val(),//vm.subsidiaryInfo.data.department|| ""
											attendingDoctorName:$('#attendingDoctor').find('input').val(),//vm.subsidiaryInfo.data.attendingDoctor ||""
											admittingDiagnosis:$('#admissionDiagnosis').find('input').val(),//vm.subsidiaryInfo.data.admissionDiagnosis || ""
											dischargeDiagnosis:$('#dischargeDiagnosis').find('input').val(),//vm.subsidiaryInfo.data.dischargeDiagnosis|| ""
											advice:$('.tipText').val().trim(),//vm.subsidiaryInfo.data.dischargeOrder ||""
											dischargeTime:vm.subsidiaryInfo.data.dischargeTime || ""
										}
										loadding = layer.load(0, {shade: false});
										recoverAPI.preservationInfo(thr_parems).then(function(res){
				        					layer.close(loadding)
				        					if (res.status == 200) {
				        						setTimeout(function() {
													window.location.href = "../../rehabilitation/html/health_control.html"
												}, 1000)
				                				showSuccessMessage('保存成功')
			            					}else{
			                					showErrorMessage(res.msg);
			                				}
			                			})
						}
						if(!this.adviceContent){
							showWarningMessage("请输入康复建议!")
                			return false;
						}
						if(vm.medicalRecordsList.length==0){
							showWarningMessage("请选择住院病历!")
                			return false;
						}
						var codeArr=[];
						$.each(vm.medicalRecordsList,function(i, o){
							codeArr.push(o.code)
						})
						var loadding = layer.load(0, {shade: false}),
						data = {
							patient: this.pati.patient,
							name: this.pati.patientName,
							title: this.pati.patientName + "的康复计划",
							// disease: this.diseaseObj.diseaseCode,
							// diseaseName: this.diseaseObj.diseaseName,
							planType: this.labelCode || 1,
							payment: 2,
							totalExpense: this.allFee || 0,
							adviceContent: this.adviceContent,
							medicalRecordsCode: codeArr.join(','),
							detail: []
						};
						$.each(vm.templateDetail, function(index, o) {
							if(o.code=='2'||o.code=='3'){
								var obj = {
									hospitalServiceItemId: o.code,
									type: 2,
									doctor: '',
									doctorName: '',
									executeTimes: '',
									frequencyCode: '',
									timeType: 0,
									remark: o.remark || ''
								}
								data.detail.push(obj)
							}else{
								if(o.executeTime.length) {
									var executeTime = []
									$.each(o.executeTime, function(ind, v) {
										v += ' 00:00'
										executeTime.push(v)
									});
									var obj = {
										hospitalServiceItemId: o.code,
										type: 2,
										doctor: o.executeDoctor,
										doctorName: o.executeDoctorName,
										executeTimes: executeTime.join(","),
										frequencyCode: o.frequencyCode,
										timeType: o.timeType,
										remark: o.remark || ''
									}
									showSuccessMessage("康复计划配置成功!")
								} else {
									showErrorMessage(res.msg || "同康复计划项目创建时间重复!");
									vm.templateDetail = $.map(vm.templateDetail, function(o, index) {
										$.each(res.data, function(ind, v) {
											if(v == o.id) {
												o.isTimeSame = true
											}
										});
										return o
									})
									data.detail.push(obj)
								}
							})
			    		}else{
			    			showSuccessMessage("请先保存诊疗信息!")
			    		}
							}
						});
						var params = {
							json: JSON.stringify(data)
						}
						// console.log('paramsparamsparamsparamsparams', data)
						// return
						recoverAPI.createRehabilitationPlan(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.isPlanId = res.data
								// if(vm.isPlanId){
								// 	var thr_parems ={
								// 		patient:vm.pati.patient,
								// 		patientName:vm.pati.patientName,
								// 		planId:vm.isPlanId,
								// 		hospitalName:$('.input-group-btn button').text().trim(),
								// 		department:$('#department').find('input').val(),//vm.subsidiaryInfo.data.department|| ""
								// 		attendingDoctorName:$('#attendingDoctor').find('input').val(),//vm.subsidiaryInfo.data.attendingDoctor ||""
								// 		admittingDiagnosis:$('#admissionDiagnosis').find('input').val(),//vm.subsidiaryInfo.data.admissionDiagnosis || ""
								// 		dischargeDiagnosis:$('#dischargeDiagnosis').find('input').val(),//vm.subsidiaryInfo.data.dischargeDiagnosis|| ""
								// 		advice:$('.tipText').val().trim(),//vm.subsidiaryInfo.data.dischargeOrder ||""
								// 		dischargeTime:vm.subsidiaryInfo.data.dischargeTime || ""
								// 	}
								// 	loadding = layer.load(0, {shade: false});
								// 	recoverAPI.preservationInfo(thr_parems).then(function(res){
								// 		layer.close(loadding)
								// 		if (res.status == 200) {
								// 			setTimeout(function() {
								// 				window.location.href = "../../rehabilitation/html/health_control.html"
								// 			}, 1000)
								// 			showSuccessMessage('保存成功')
								// 		}else{
								// 			showErrorMessage(res.msg);
								// 		}
								// 	})
								// }
								setTimeout(function() {
									window.location.href = "../../rehabilitation/html/health_control.html"
								}, 1000)
								showSuccessMessage("康复计划配置成功!")
							} else {
								showErrorMessage(res.msg || "同康复计划项目创建时间重复!");
								vm.templateDetail = $.map(vm.templateDetail, function(o, index) {
									$.each(res.data, function(ind, v) {
										if(v == o.id) {
											o.isTimeSame = true
										}
									});
									return o
								})
							}
						})
    				},
    				// 字符串方法计算加减乘除(精确度百分位)
               		add: function(num1,num2){

+ 199 - 42
app/recover/html/personal-manage.html

@ -60,8 +60,9 @@
	    				</li>
	    			</ul>
    			</div>
    			<h4 class="m0 pl15 lh40 c-position-r"><em class="c-position-a set-blue-span"></em>医嘱小结</h4>
				<ul class="m0 p0 ptb10 ui-col-1 c-border b-r-3 c-h100" style="overflow: auto;">
				<h4 class="m0 pl15 lh40 c-border-b c-position-r"><em class="c-position-a set-blue-span"></em>康复建议</h4>
				<textarea placeholder="此处内容是康复建议" readonly class="m0 p10 c-333 mt10 bg-f5f5fa" style="outline: 0;height: 200px;border: 1px solid rgb(225, 225, 225); resize: none;">{{recentRecoverDetail.adviceContent}}</textarea>
				<!-- <ul class="m0 p0 ptb10 ui-col-1 c-border b-r-3 c-h100 mt10" style="overflow: auto;">
					<li class="pt5 plr10" v-for="(info, index) in diagnosisInformation" :key="index">
						<p class="c-999 ptb10 clearfix" style="line-height: 20px;">
							<span class="fl w-100-78">&emsp;{{info.dischargeDiagnosis}}</span>
@ -72,40 +73,61 @@
						</div>
					</li>
					<li class="c-t-center ptb10" v-if="!diagnosisInformation.length">无医嘱小结</li>
				</ul>
				</ul> -->
				<h4 class="m0 pl15 lh40 c-border-b c-position-r"><em class="c-position-a set-blue-span"></em>住院病历</h4>
				<div>
					<div v-for="(o, i) in medicalRecordsList" class="flex vc c-f14 c-border plr10 ptb5 link-control mt10">
						<span class="c-666 mr15">
							{{formatter(o.admissionTime)}}
						</span>
						<div class="flex1 c-12b7f5 ellipsis-1">
							{{o.hospitalName}}
						</div>
					</div>
				</div>
	        </div>
	        <div class="ui-col-1 c-h100 w-100-360 ui-grid">
	        	<div class="ui-col-1 c-h100 ui-grid ui-grid-vertical">
	        		<!--<div class="plr5">-->
		        		<div class="m0 pl15 lh40 c-border-b c-position-r clearfix">
		        			<em class="c-position-a set-blue-span"></em>
		        			<span class="fl">康复计划</span>
		        			<span class="fl plr20 ml20 c-f12 bgc-12b7f5 c-fff cur-pit" @click="gotoNewplan()" v-if="doctorType == 1">新建计划</span>
		        			<span class="fr w80 c-333 c-f12 c-t-center">进行中:{{recoverPatInfo.planUnderway}}</span>
		        			<span class="fr w80 c-333 c-f12 c-t-center">已完成:{{recoverPatInfo.planFinish}}</span>
		        		</div>
		        		<div class="pb10" style="overflow: hidden; height: 230px;">
			    			<ul class="p0 plr5 m0 c-h100" style="overflow: auto;">
			    				<li class="plr5 ptb10 mt10 plan-li cur-pit c-border b-r-3 ui-grid" v-for="(plan, index) in recoverPatInfo.planList" :key="index" @click="jumpPlan(plan)">
			    					<div class="ui-col-1">
			    						<p class="p0 m0 lh22 clearfix">
			    							<span class="fl">{{plan.planTypeName}}</span>
			    							<span class="fr c-999">{{plan.time}}</span>
			    						</p>
			    						<div class="ui-grid">
			    							<p class="ui-col-1 bgc-c1c1c1 lh22 b-r-11 c-position-r c-t-center">
			    								<span class="c-position-a bgc-orange lh22 b-r-11 c-t-center c-fff" :style="{width: setPercent(plan), left: 0}"></span>
			    								<span class="c-position-r w-100 c-t-center">{{setPercent(plan)}}</span>
			    							</p>
			    							<div class="ui-col-0 ml10 c-999 lh22">{{plan.allFinishCount}}/{{plan.allCount}}</div>
			    						</div>
			    					</div>
			    					<div class="ui-col-0 ml15 c-007cd9 lh40">{{plan.statusName}}</div>
			    				</li>
			    				<li class="ptb10 c-t-center" v-if="!recoverPatInfo.planList || !recoverPatInfo.planList.length">暂无相关计划</li>
			    			</ul>
		    			</div>
	    			<!--</div>-->
					<div class="m0 pl15 lh40 c-border-b c-position-r clearfix">
						<em class="c-position-a set-blue-span"></em>
						<span class="fl">康复计划</span>
						<span class="fl plr20 ml20 c-f12 bgc-12b7f5 c-fff cur-pit" @click="gotoNewplan()" v-if="doctorType == 1">新建计划</span>
						<span class="fr w80 c-333 c-f12 c-t-center">进行中:{{recoverPatInfo.planUnderway}}</span>
						<span class="fr w80 c-333 c-f12 c-t-center">已完成:{{recoverPatInfo.planFinish}}</span>
					</div>
					<div class="pb10" style="overflow: hidden; height: 230px;">
						<ul class="p0 plr5 m0 c-h100" style="overflow: auto;">
							<li class="plr5 ptb10 mt10 plan-li cur-pit c-border b-r-3 ui-grid link-control" v-for="(plan, index) in planList" :key="index" @click="jumpPlan(plan)">
								<!-- <div class="ui-col-1">
									<p class="p0 m0 lh22 clearfix">
										<span class="fl">{{plan.planTypeName}}</span>
										<span class="fr c-999">{{plan.time}}</span>
									</p>
									<div class="ui-grid">
										<p class="ui-col-1 bgc-c1c1c1 lh22 b-r-11 c-position-r c-t-center">
											<span class="c-position-a bgc-orange lh22 b-r-11 c-t-center c-fff" :style="{width: setPercent(plan), left: 0}"></span>
											<span class="c-position-r w-100 c-t-center">{{setPercent(plan)}}</span>
										</p>
										<div class="ui-col-0 ml10 c-999 lh22">{{plan.allFinishCount}}/{{plan.allCount}}</div>
									</div>
								</div> -->
								<!-- <div class="ui-col-0 ml15 c-007cd9 lh40">{{plan.statusName}}</div> -->
								<div class="ui-col-1">
									<div class="ui-grid">
										<img :src="setPatImg(plan.photo)" class="mr20"/>
										<div class="ui-col-1">
											<p>{{plan.doctorName}}</p>
											<p class="mt5">{{plan.deptName}}/{{plan.hospitalName}}</p>
										</div>
									</div>
								</div>
								<div class="c-999 ui-grid ui-grid-middle">
									{{formatter(plan.createTime)}}
								</div>
							</li>
							<li class="ptb10 c-t-center" v-if="!planList || !planList.length">暂无相关计划</li>
						</ul>
					</div>
	    			<h4 class="m0 pl15 pr5 lh40 c-border-tb clearfix c-position-r"><em class="c-position-a set-blue-span"></em>康复相关记录<span class="fr w80 c-333 c-f12 c-t-center">已完成:{{finishData.planDetailFinish}}</span></h4>
	    			<div class="ui-col-1" style="overflow: hidden; overflow-y: auto;">
	    				<ul class="p0 m0 c-h100 c-999">
@ -119,7 +141,7 @@
	    						</div>
	    						<div class="fl ptb10 w-100-220">
	    							<p class="p0 m0 lh18">{{plan.title}}</p>
	    							<p class="p0 m0 lh18 txt-ells">{{plan.content}}</p>
	    							<!-- <p class="p0 m0 lh18 txt-ells">{{plan.content}}</p> -->
	    						</div>
	    						<div class="fr ptb10 w60 c-t-center">
	    							<p class="p0 m0 lh18">已完成</p>
@ -131,7 +153,29 @@
	    					</li>
	    					<li class="ptb10 c-t-center c-333" v-if="!planDetailList.length">暂无相关记录</li>
	    				</ul>
	    			</div>
					</div>
					<div class="plr10 pb10">
						<div class="mt10" v-for="(o, i) in limitlessItems">
							<div v-if="o.code=='2'" class="flex vc c-f14 c-border plr10 ptb5 link-control" @click="goConsulting">
								<div class="flex1 c-12b7f5 ellipsis-1">
									康复咨询
								</div>
							</div>
							<div v-if="o.code=='3'" class="flex vc c-f14 c-border plr10 ptb5">
								<div class="flex1 c-12b7f5 ellipsis-1">
									远程健康监测
								</div>
								<!-- o.type 1: 血糖 2: 血压  -->
								<div v-if="o.type==1">
									<div class="zhibiao_icon" :class="{'low':o.levelClazz1=='low', 'high':o.levelClazz1=='high'}">{{o.levelName}}血糖:{{o.value1}}</div>
								</div>
								<div v-if="o.type==2" class="flex vc" style="flex-direction: column">
									<div class="zhibiao_icon" :class="{'low':o.levelClazz1=='low', 'high':o.levelClazz1=='high'}">收缩压:{{o.value1}}</div>
									<div class="zhibiao_icon" :class="{'low':o.levelClazz2=='low', 'high':o.levelClazz2=='high'}">舒张压:{{o.value2}}</div>
								</div>
							</div>
						</div>
					</div>
	        	</div>
	        	<div class="ui-col-0 w360 c-h100 c-border-l ui-grid ui-grid-vertical">
	        		<div class="plr5 ui-col-0">
@ -229,6 +273,7 @@
        <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"></script>
		<script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
		<script src="../../../api/recover_api.js" type="text/javascript"></script>
		<script type="text/javascript">
			var doctorType = (JSON.parse(window.localStorage.getItem('wlyyAgent'))||{}).doctorType
@ -257,7 +302,18 @@
				})
			}
			var nowDate = new Date().format("yyyy/MM/dd")
			
			var xuetangDuring = ['', '早餐前', '早餐后', '午餐前', '午餐后', '晚餐前', '晚餐后', '睡前'];
			var normalLevel = [
							[],
							[7, 4],
							[11.1, 4],
							[7, 4],
							[11.1, 4],
							[7, 4],
							[11.1, 4],
							[7, 4]
						];
			var docInfo = JSON.parse(window.localStorage.getItem("docInfo"));
			recoverVue = new Vue({
                el: "#app",
                data: {
@ -288,10 +344,15 @@
            		xtMax: 0, // 血糖最高
            		xtMin: 0, // 血糖最低
            		xyMax: [139, 89], // 血压最高
            		xyMin: [90, 60], // 血压最低
					xyMin: [90, 60], // 血压最低
					planList: [], // 计划列表
					recentRecoverDetail: undefined,
					medicalRecordsList: [], // 住院病历列表
					limitlessItems: [], // 不限频次服务项列表
                },
                mounted: function() {
                	this.patientRehabilitationDetail()
					this.patientRehabilitationDetail()
					this.selectPlanByPatient()
                	this.recentPlanDetailRecord()
                	this.archivesEvent()
                	// 获取最新的诊疗信息2条
@ -307,7 +368,7 @@
                		location.href = "new_recover.html?patient=" + httpData.patientCode
                	},
                	jumpPlan: function(plan) {
                		location.href = "../../rehabilitation/html/rehabilitation_management.html?planId=" + plan.planId + "&patientCode=" + httpData.patientCode
                		location.href = "../../rehabilitation/html/rehabilitation_management.html?planId=" + plan.id + "&patientCode=" + httpData.patientCode
                	},
					lookProject: function(obj) {
						layer.open({
@ -338,6 +399,24 @@
							}
						})
					},
					// 获取住院病历
					selectByMedicalCode: function(medicalRecordsCode){
						var vm = this;
						var  params = {
							medical: medicalRecordsCode
						};
						rehaAPI.selectByMedicalCode(params).then(function(res){
							if(res.status==200){
								vm.medicalRecordsList = res.data
							}else {
								showErrorMessage(res.msg);
							}
						})
					},
					formatter: function(time){
						return new Date(time).format('yyyy-MM-dd')
					},
					// 获取康复计划信息
					patientRehabilitationDetail: function() {
			    		var vm = this,
			    			loadding = layer.load(0, {shade: false}),
@ -352,7 +431,78 @@
								showErrorMessage(res.msg);
							}
						})
			    	},
					},
					// 所有康复计划列表
					selectPlanByPatient: function(){
			    		var vm = this,
			    			loadding = layer.load(0, {shade: false}),
			    			params = {
			    				patient: httpData.patientCode || "e040dd6814b648ceb3ba8d8a04f9f22c"
			    			}
						rehaAPI.selectPlanByPatient(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								if(res.data&&res.data.length>0){
									var list = res.data
									vm.recentRecoverDetail = list[0]
									vm.planList = res.data
									vm.selectByMedicalCode(list[0].medicalRecordsCode)
									vm.calendarPlanDetailItems(list[0].id)
								}
							} else {
								showErrorMessage(res.msg);
							}
						})
					},
					calendarPlanDetailItems: function(planId){
						var vm=this;
						var year = new Date().getFullYear()
						var params={
							executeStartTime: year+'-01-01'+' 00:00:00',//日历开始时间(格式:yyyy-MM-dd HH:mm:ss)
							executeEndTime: year+'-12-31'+' 23:59:59',//日历结束时间(格式:yyyy-MM-dd HH:mm:ss)
							planId: planId,//计划id
							searchTask: '',//快速查找任务:(1、我的任务,2、随访,3、复诊,4、健康教育)
							status: '',//任务状态(0未完成,1已完成,2已预约)
						}
						rehaAPI.calendarPlanDetailItems(params).then(function(res){
							if(res.status==200){
								var arr = []
								$.each(res.data, function(i, o){
									if(o.code=='3'&&o.type){
										if(o.type==2){
											o.levelClazz = vm.getLevelClazz(o.value1, 139, 90) || vm.getLevelClazz(o.value2, 89, 60)
											o.levelClazz1 = vm.getLevelClazz(o.value1, 139, 90)
											o.levelClazz2 = vm.getLevelClazz(o.value2, 89, 60)
											o.levelClazz3 = vm.getLevelClazz(o.value3, 100, 60)
										} else {
											var num = parseInt(o.value2)
											var max = normalLevel[num][0],
											min = normalLevel[num][1];
											o.levelClazz1 = vm.getLevelClazz(o.value1, max, min)
											o.levelName = xuetangDuring[o.value2]
										}
									}
									arr.push(o)
									
								})
								vm.limitlessItems = arr
							}
						})
					},
					getLevelClazz: function(value,max,min) {
						if(!value||(!max && !min)) {
							return '';
						}
						var value = parseFloat(value);
						if(value < min) {
							return 'low';
						} else if(value > max) {
							return 'high';
						} else {
							return ''
						}
					},
					// 获取已完成的康复服务项
			    	recentPlanDetailRecord: function() {
			    		var vm = this,
			    			loadding = layer.load(0, {shade: false}),
@ -367,7 +517,8 @@
								vm.finishData = res.data
								vm.planDetailList = vm.planDetailList.concat(vm.finishData.planDetailList)
								vm.planDetailList = $.each(vm.planDetailList, function(index, o) {
									if(nowDate == o.executeTime.split(" ")[0]) {
									var executeTime = new Date(o.executeTime).format("yyyy/MM/dd")
									if(nowDate == executeTime) {
										o.istaDay = true
									}
									return o
@ -381,7 +532,13 @@
								showErrorMessage(res.msg);
							}
						})
			    	},
					},
					goConsulting: function(){
						var otherCode = docInfo.code,
						otherName = docInfo.name,
						planDetailId = vm.recentRecoverDetail.id;
						window.location.href = '../../consulting/html/consulting.html?otherCode=' + otherCode + '&otherName=' + encodeURI(otherName) + '&planDetailId=' + planDetailId
					},
			    	selectType: function(type) {
			    		this.eventType = type
			    		this.seeRecord = []

+ 10 - 8
app/recover/html/select-patient.html

@ -14,7 +14,7 @@
		<div class="plr20 ptb10 c-border-b">
			<div class="clearfix c-border">
				<input class="fl search-input plr10" type="text" placeholder="输入居民姓名或身份证号码" v-model="keyword" />
				<span class="fr search-btn" @click="getPatientInfoByDoctor()"></span>
				<span class="fr search-btn" @click="getPatientInfoByDoctorAndHealth()"></span>
			</div>
		</div>
		<div style="overflow: hidden; height: calc(100% - 59px);">
@ -125,7 +125,7 @@
                	patiInfo: null
                },
                mounted: function() {
                	this.findLabelAndPatientCountByDoctor()
                	this.findHealthLabelAndPatientCountByDoctor()
                },
                methods: {
                	showLayer: function() {
@ -140,13 +140,14 @@
							content: "<div class='plr10 ptb10'>&emsp;&emsp;" + "这是医嘱大的大爱大" + "</div>"
                		})
                	},
                	findLabelAndPatientCountByDoctor: function() {
                	findHealthLabelAndPatientCountByDoctor: function() {
                		var vm = this,
			    			loadding = layer.load(0, {shade: false}),
			    			params = {
			    				doctor: doctorCode
			    			}
						recoverAPI.findLabelAndPatientCountByDoctor(params).then(function(res) {
						// findLabelAndPatientCountByDoctor
						recoverAPI.findHealthLabelAndPatientCountByDoctor(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.labelList = res.data
@ -155,7 +156,7 @@
							}
						})
                	},
                	getPatientInfoByDoctor: function(label) {
                	getPatientInfoByDoctorAndHealth: function(label) {
                		if(!label && !this.keyword) {
							this.selectIndex = null
							this.isSearch = false
@ -167,11 +168,12 @@
			    			params = {
			    				doctor: doctorCode,
								patientInfo: this.keyword, // 居民身份证或者姓名
								disease: label ? label.label : "",
								label: label ? label.label : "",
								page: vm.page,
								size: 50
			    			}
						recoverAPI.getPatientInfoByDoctor(params).then(function(res) {
						// getPatientInfoByDoctor
						recoverAPI.getPatientInfoByDoctorAndHealth(params).then(function(res) {
							layer.close(loadding)
							if(res.status == 200) {
								vm.patiList = res.data
@ -194,7 +196,7 @@
                			this.selectIndex = null
                		} else {
                			this.selectIndex = index
                			this.getPatientInfoByDoctor(label)
                			this.getPatientInfoByDoctorAndHealth(label)
                		}
                	},
                	selectPatient: function() {

BIN
app/recover/images/gouxuan_btn.png


BIN
app/recover/images/gouxuan_pre.png


BIN
app/recover/images/zhibiao_di_icon.png


BIN
app/recover/images/zhibiao_gao_icon.png


+ 15 - 6
app/rehabilitation/css/management.css

@ -224,20 +224,26 @@ a {
}
.list-item-name {
	display: inline-block;
	width: 320px;
	height: 28px;
	line-height: 28px;
	background-color: #12b7f5;
	border: 1px solid #12b7f5;
	border-radius: 5px;
	/*border: solid 1px #82dcfa;*/
	color: #fff;
	display: inline-block;
	color: #666;
	vertical-align: middle;
	cursor: pointer;
	padding-left: 5px;
	padding-right: 5px;
	font-size: 13px;
}
.list-item-name.is-active{
	background-color: #12b7f5;
	color: #fff;
}
.add-item-btn {
	width: 60px;
	height: 28px;
	height: 30px;
	background-color: #12b7f5;
	border-radius: 5px;
	color: #fff;
@ -245,6 +251,9 @@ a {
	vertical-align: middle;
	text-align: center;
	line-height: 28px;
	padding: 0 10px;
	font-size: 14px;
	cursor: pointer;
}
.add-item-btn.disabled {

+ 65 - 0
app/rehabilitation/css/rehabilitation_management.css

@ -789,3 +789,68 @@ html,
.wkp-end{
	-webkit-box-pack: end;
}
.w-row{
	width: 100%;
}
.flex {
    display: flex;
}
.flex1{
	flex: 1;
}
.vc{
	align-items: center;
}
.c-12b7f5 {
    color: #12b7f5;
}
.bg-f5f5fa{
	background-color: #f5f5fa;
}
.link-control{
	padding-right: 20px;
	position: relative;
}
.link-control::after{
	content: "";
	position: absolute;
	right: 10px;
	top: 50%;
    width: 6px;
    height: 6px;
	border-right: 1px solid #D7DCE6;
	border-bottom: 1px solid #D7DCE6;
	-webkit-transform: translateY(-50%) rotate(-45deg);
	-moz-transform: translateY(-50%) rotate(-45deg);
	-ms-transform: translateY(-50%) rotate(-45deg);
	-o-transform: translateY(-50%) rotate(-45deg);
	transform: translateY(-50%) rotate(-45deg);
}
.link-control.is-active{
	border-color: #12b7f5;
}
.zhibiao_icon{
	padding-right: 10px;
	position: relative;
}
.zhibiao_icon::after{
	content: "";
	position: absolute;
	right: 0;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-moz-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	-o-transform: translateY(-50%);
	transform: translateY(-50%);
	width: 8px;
	height: 12px;
}
.zhibiao_icon.low::after{
	background: url('../images/zhibiao_di_icon.png') no-repeat;
	background-size: 100% 100%;
}
.zhibiao_icon.high::after{
	background: url('../images/zhibiao_gao_icon.png') no-repeat;
	background-size: 100% 100%;
}

+ 1 - 0
app/rehabilitation/html/management.html

@ -40,6 +40,7 @@
		<script src="../../../js/vue-router.js"></script>
		<script src="../../../component/rehabilitation/template-items.js"></script>
		<script src="../../../component/rehabilitation/template-items-select.js"></script>
		<script src="../../../component/rehabilitation/template-items-select2.js"></script>
		<script src="../../../component/rehabilitation/template-list.js"></script>
		<script src="../../../component/rehabilitation/new-template-form.js"></script>
		<script src="../../../component/rehabilitation/new-template.js"></script>

+ 85 - 37
app/rehabilitation/html/rehabilitation_management.html

@ -50,6 +50,10 @@
				line-height: 28px;
			}
			.bgc-2dbe55 {background-color: #2dbe55;}
			.layui-layer-loading{
				margin-left: auto;
				margin-right: auto;
			}
		</style>
	</head>
@ -68,7 +72,7 @@
					</div>
				</div>
			</div>
			<div class="rehabilition c-position-r bgc-f5f5f5 ui-col-1">
			<div class="rehabilition c-position-r bgc-f5f5f5 ui-col-1" style="margin: 0 !important">
				<div class="search-left w400 c-position-a">
					<span class="c-position-a set-close" @click="changeSearch(-1)"></span>
					<div class="search-condition">
@ -86,7 +90,7 @@
					</div>
				</div>
				<div class="ui-grid c-h100">
					<div class="div-left ui-col-0 plr11" style="position: fixed;height: 100%;overflow: auto;">
					<div class="div-left ui-col-0 plr11" style="position: fixed;height: calc(100% - 50px);overflow: auto;padding-bottom: 10px;">
						<div class="ui-grid c-border-b lh30">
							<div class="ui-col-0 div-line"></div>
							<div class="ui-col-1 c-f16 c-333">居民信息</div>
@ -102,7 +106,7 @@
							<div class="ui-col-0 div-patient-home c-f14 c-333">进入居民首页</div>
						</div>
						<div class="ui-grid mt15 pb15">
							<div class="ui-col-1 c-f16 c-333">冠心病康复计划</div>
							<div class="ui-col-1 c-f16 c-333">康复计划</div>
							<div class="ui-col-1 c-f14 c-999">总进度:</div>
							<div class="ui-col-0 div-patient-comfirm c-f14 c-fff bgc-12b7f5" v-show="planInfo.status==2 && !planInfo.patientImg" @tap="weiXinConfirmClick">邀请居民确认</div>
						</div>
@ -133,9 +137,12 @@
						</div>
						<div class="ui-grid c-border-b lh30 mt15">
							<div class="ui-col-0 div-line"></div>
							<div class="ui-col-1 c-f16 c-333">医嘱小结</div>
							<div class="ui-col-1 c-f16 c-333">康复建议</div>
						</div>
						<div class="ui-grid">
							<textarea placeholder="此处内容是康复建议" readonly class="m0 p10 c-333 mt10 bg-f5f5fa" style="width: 100%;outline: 0;height: 200px;border: 1px solid rgb(225, 225, 225); resize: none;">{{planInfo.adviceContent}}</textarea>
						</div>
						<div class="w-100 c-border pb23 plr13 mt10 mb50">
						<!-- <div class="w-100 c-border pb23 plr13 mt10 mb50">
							<div class="ui-grid pt20">
								<div class="ui-col-1" v-if="diagnosisInformation">
									<div class="ui-grid">
@ -146,6 +153,20 @@
								</div>
								<div class="ui-col-1 c-t-center" v-if="!diagnosisInformation">无医嘱小结</div>
							</div>
						</div> -->
						<div class="ui-grid c-border-b lh30 mt15">
							<div class="ui-col-0 div-line"></div>
							<div class="ui-col-1 c-f16 c-333">住院病历</div>
						</div>
						<div>
							<div v-for="(o, i) in medicalRecordsList" class="w-row flex vc c-f14 c-border plr10 ptb5 link-control mt10">
								<span class="c-666 mr15">
									{{formatter(o.admissionTime)}}
								</span>
								<div class="flex1 c-12b7f5 ellipsis-1">
									{{o.hospitalName}}
								</div>
							</div>
						</div>
					</div>
					<div class="nav-content-center bgc-fff c-position-r c-h100 div-right ui-col-1" style="margin-left: 460px;height: 100%;" v-show="tabStatus==3">
@ -251,39 +272,66 @@
    							</div>
							</div>
						</div>
						<div class="time-axis mt50" v-show="tabStatus==2">
							<table class="table">
								<tr>
									<th style="padding-right: 50px;text-align: right;">时间</th>
									<th>项目</th>
									<th>执行人员</th>
									<th>执行地点</th>
									<th class="text-center">相关记录</th>
									<th class="text-center">状态</th>
								</tr>
								<tr v-for="item in timeAxisData" :is-future="item.future">
									<td class="time text-right time-box">
										<p class="mb5">{{item.date}}</p>
										<p class="mb0">{{item.time}}</p>
										<span class="cur-status">{{item.html}}</span>
									</td>
									<td class="project-name mw400">
										<p class="mb5">{{item.title}}</p>
										<p class="ellipsis mb0">{{item.content}}</p>
									</td>
									<td class="executor">{{item.doctor_name}}</td>
									<td class="place-of-execution">{{item.hospital_name}}</td>
									<td class="view-task" @click="viewDetail(item.id,item.status,1)">查看</td>
									<td class="task-status" :class="item.future==-1?'c-ff3b30':(item.status==0?'c-666':'')">{{item.status==0?'未完成':(item.status==1?'已完成':'已预约')}}</td>
								</tr>
								<tr v-if="!timeAxisData.length">
									<td colspan="6" class="f16 ptb10 text-center">
										<img src="../../../images/wushuju_img.png" />
										<p class="c-666">暂无数据</p>
									</td>
								</tr>
							</table>
						<div class="mt50 ui-grid ui-grid-vertical" style="height:calc(100% - 50px)" v-show="tabStatus==2">
							<div class="time-axis ui-col-1 c-h100" style="overflow-y: auto">							
								<div>
									<table class="table">
										<tr>
											<th style="padding-right: 50px;text-align: right;">时间</th>
											<th>项目</th>
											<th>执行人员</th>
											<th>执行地点</th>
											<th class="text-center">相关记录</th>
											<th class="text-center">状态</th>
										</tr>
										<tr v-for="item in timeAxisData" :is-future="item.future">
											<td class="time text-right time-box">
												<p class="mb5">{{item.date}}</p>
												<p class="mb0">{{item.time}}</p>
												<span class="cur-status">{{item.html}}</span>
											</td>
											<td class="project-name mw400">
												<p class="mb5">{{item.name}}</p>
												<p class="ellipsis mb0">{{item.content}}</p>
											</td>
											<td class="executor">{{item.doctor_name}}</td>
											<td class="place-of-execution">{{item.hospital_name}}</td>
											<td class="view-task" @click="viewDetail(item.id,item.status,1)">查看</td>
											<td class="task-status" :class="item.future==-1?'c-ff3b30':(item.status==0?'c-666':'')">{{item.status==0?'未完成':(item.status==1?'已完成':'已预约')}}</td>
										</tr>
										<tr v-if="!timeAxisData.length">
											<td colspan="6" class="f16 ptb10 text-center">
												<img src="../../../images/wushuju_img.png"  class="mt50"/>
												<p class="c-666">暂无数据</p>
											</td>
										</tr>
									</table>
								</div>
							</div>
							<div class="plr10 pb10 ui-col-0">
								<div class="mt10" v-for="(o, i) in limitlessItems">
									<div v-if="o.code=='2'" class="flex vc c-f14 c-border plr10 ptb5 link-control">
										<div class="flex1 c-12b7f5 ellipsis-1"  @click="goConsulting">
											康复咨询
										</div>
									</div>
									<div v-if="o.code=='3'" class="flex vc c-f14 c-border plr10 ptb5">
										<div class="flex1 c-12b7f5 ellipsis-1">
											远程健康监测
										</div>
										<!-- o.type 1: 血糖 2: 血压  -->
										<div v-if="o.type==1">
											<div class="zhibiao_icon" :class="{'low':o.levelClazz1=='low', 'high':o.levelClazz1=='high'}">{{o.levelName}}血糖:{{o.value1}}</div>
										</div>
										<div v-if="o.type==2" class="flex vc" style="flex-direction: column">
											<div class="zhibiao_icon" :class="{'low':o.levelClazz1=='low', 'high':o.levelClazz1=='high'}">收缩压:{{o.value1}}</div>
											<div class="zhibiao_icon" :class="{'low':o.levelClazz2=='low', 'high':o.levelClazz2=='high'}">舒张压:{{o.value2}}</div>
										</div>
									</div>
								</div>
							</div>
						</div>
					</div>
				</div>
			</div>

BIN
app/rehabilitation/images/zhibiao_di_icon.png


BIN
app/rehabilitation/images/zhibiao_gao_icon.png


+ 3 - 3
app/rehabilitation/js/management.js

@ -18,21 +18,21 @@ var routes = [
       {
          path: '/template-items',
          components: {
	        leftView: TemplateItemsSelect,
	        leftView: TemplateItemsSelect2,
	        rightView: TemplateItems
	      }
       },
       {
          path: '/template-items-select',
          components: {
	        leftView: TemplateItemsSelect,
	        leftView: TemplateItemsSelect2,
	        rightView: TemplateItems
	      }
       },
       {
          path: '/template-item-detail',
          components: {
	        leftView: TemplateItemsSelect,
	        leftView: TemplateItemsSelect2,
	        rightView: ItemDetail
	      }
       },

+ 103 - 4
app/rehabilitation/js/rehabilitation_management.js

@ -1,6 +1,17 @@
!function(){
				var httpData=GetRequest();
				var currentGMT=new Date();//当前时间GMT
	var httpData=GetRequest();
	var currentGMT=new Date();//当前时间GMT
	var xuetangDuring = ['', '早餐前', '早餐后', '午餐前', '午餐后', '晚餐前', '晚餐后', '睡前'];
	var normalLevel = [
		[],
		[7, 4],
		[11.1, 4],
		[7, 4],
		[11.1, 4],
		[7, 4],
		[11.1, 4],
		[7, 4]
	];
	new Vue({
		el:"#app",
		data:{
@ -39,6 +50,8 @@
			docList:[],
			diagnosisInformation: null,
			searchData: [], // 搜索计划安排(去年、今年、明年)
			medicalRecordsList: [], //病历列表
			limitlessItems: []
		},
		mounted:function(){
			if(!this.planId){
@ -55,6 +68,7 @@
		methods:{
			//获取计划表
			planSchedule:function(){
				
				var vm = this;
				var  params = {
		            planId: this.planId,
@ -70,12 +84,30 @@
			            }else if(vm.planInfo.status==2 && vm.planInfo.patientImg){//居民已确认计划完成
			            	vm.tabStatus=3;
							$("#framePage").attr("src","stop_special_service.html?planids="+vm.planId+"&planStatus="+vm.planInfo.status)
			            }
						}
						vm.selectByMedicalCode(res.data.medicalRecordsCode)
			        }else{
			        	layer.msg(res.msg,{icon:5});
			        }
				})
			},
			// 获取住院病历
			selectByMedicalCode: function(medicalRecordsCode){
				var vm = this;
				var  params = {
		            medical: medicalRecordsCode
		        };
				rehaAPI.selectByMedicalCode(params).then(function(res){
					if(res.status==200){
						vm.medicalRecordsList = res.data
					}else {
						showErrorMessage(res.msg);
					}
				})
			},
			formatter: function(time){
				return new Date(time).format('yyyy-MM-dd')
			},
			// 获取最新的诊疗消息
			findDiagnosisInformationByPlanId: function() {
				var vm = this,
@ -167,7 +199,6 @@
					});
					return ;
				}
//							planids='402803f6657f195301657f4c4ce70000';
				layer.open({
				  type: 2,
				  area: ['800px', '650px'],
@ -462,6 +493,7 @@
				this.__xData=dataArr;
				this.monDetail();
				this.calendarPlanDetailList();
				this.calendarPlanDetailItems();
			},
//						时间轴请求
			calendarPlanDetailList:function(){
@ -496,6 +528,67 @@
					}
				})
			},
			calendarPlanDetailItems: function(){
				var vm=this;
				var __days=vm.__xData;
				var lastDay=(__days.concat()).pop().day;
				lastDay=lastDay>9?lastDay:'0'+lastDay;
				var params={
					executeEndTime:__days[0].date+'-'+__days[0].day+' 00:00:00',//日历开始时间(格式:yyyy-MM-dd HH:mm:ss)
					executeStartTime:(__days.concat()).pop().date+'-'+lastDay+' 23:59:59',//日历结束时间(格式:yyyy-MM-dd HH:mm:ss)
					planId:vm.planId,//计划id
					searchTask:vm.searchTask,//快速查找任务:(1、我的任务,2、随访,3、复诊,4、健康教育)
					status:vm.status,//任务状态(0未完成,1已完成,2已预约)
				}
				rehaAPI.calendarPlanDetailItems(params).then(function(res){
					if(res.status==200){
						var arr = []
						$.each(res.data, function(i, o){
							if(o.code=='3'&&o.type){
								if(o.type==2){
									o.levelClazz = vm.getLevelClazz(o.value1, 139, 90) || vm.getLevelClazz(o.value2, 89, 60)
									o.levelClazz1 = vm.getLevelClazz(o.value1, 139, 90)
									o.levelClazz2 = vm.getLevelClazz(o.value2, 89, 60)
									o.levelClazz3 = vm.getLevelClazz(o.value3, 100, 60)
								} else {
									var num = parseInt(o.value2)
									var max = normalLevel[num][0],
									min = normalLevel[num][1];
									o.levelClazz1 = vm.getLevelClazz(o.value1, max, min)
									o.levelName = xuetangDuring[o.value2]
								}
							}
							arr.push(o)
						})
						vm.limitlessItems = arr
					}
				})
			},
			getLevelClazz: function(value,max,min) {
				if(!value||(!max && !min)) {
					return '';
				}
				var value = parseFloat(value);
				if(value < min) {
					return 'low';
				} else if(value > max) {
					return 'high';
				} else {
					return ''
				}
			},
			getNormalLevel: function(index) {
				return [
					[],
					[7, 4],
					[11.1, 4],
					[7, 4],
					[11.1, 4],
					[7, 4],
					[11.1, 4],
					[7, 4]
				][index];
			},
			changeSearch: function(status) {
				var i = status == 1 ? -400 : 0;
				var timer1 = setInterval(function() {
@ -509,6 +602,12 @@
					}
				}, 5)
			},
			goConsulting: function(){
				var otherCode = this.curDoc.code,
				otherName = this.curDoc.name,
				planDetailId = this.planId;
				window.location.href = '../../consulting/html/consulting.html?otherCode=' + otherCode + '&otherName=' + encodeURI(otherName) + '&planDetailId=' + planDetailId
			},
			//邀请视频聊天
			openVideoChat: function(otherDoc){
				var vm = this;

+ 121 - 0
component/rehabilitation/template-items-select2.js

@ -0,0 +1,121 @@
var TemplateItemsSelect2 = {
    template: '<div style="height: 100%;">\
    				<div class="title-name c-f16">\
	    				<span class="c-vam mr15">项目表</span><img @click="goBack" src="../../../images/fanhui02_icon.png" class="c-vam"/>\
	    			</div>\
	    			<div class="search-warp">\
						<input class="inp-search" v-model="searchName" placeholder="搜索项目名称" @input="debounceSearch"/>\
					</div>\
	    			<div class="mt10 pt10 pl10 ul-wrap">\
						<ul class="level-third">\
							<li v-for="(o, k) in serviceItems" class="ptb5">\
								<div class="list-item-name c-nowrap mr5" :class="{\'is-active\': !o.enable}">{{o.name}}</div>\
								<a href="javascript:void(0);" @click="addItem(o,k)" class="add-item-btn" :class="{\'disabled\': !o.enable}">\
									添加\
								</a>\
							</li>\
						</ul>\
	    			</div>\
    			</div>',
    props: [],
    data: function() {
        return {
        	isNew: null,
        	searchName: "",
			serviceItems: [],
			templateDetail: []
        }
    },
    beforeRouteEnter: function(to, from, next) {
	    next(function(vm) {
	    	var query = vm.$route.query
	    	if(vm.isNew == true || vm.isNew === "true") {
	    		vm.isNew = true
	    	} else {
	    		vm.isNew = false
	    	}
	    	vm.templateId = query.templateId
			if((to.path == "/template-item-detail" || from.path == "/template-item-detail" ) && from.path != "/") {
				return 
			}
			if(!vm.isNew) {
				vm.loading.show()
				vm.findTemplateDetail().then(function(res) {
					vm.loading.close()
					if(res.status == 200) {
						vm.templateDetail = res.data
						vm.getServiceItemList().then(function(){
							_.each(vm.templateDetail, function(o) {
								EventBus.$emit("add-template-item", o)
							})
						})
					} else {
						toastr && toastr.error(res.msg)
					}
				})
			} else {
				vm.getServiceItemList()
			}
	    	
	    })
	 },
	created: function() {
	},
    mounted: function() {
		var vm = this
		EventBus.$on("delete-template-item", function(obj, i){
			_.each(vm.serviceItems, function(item, index) {
				if(item.code==obj.code){
					item.enable = true
					vm.$set(vm.serviceItems, index, item)
					vm.templateDetail.splice(i, 1)
				}
			})
		})
    },
    methods: {
    	goBack: function() {
    		this.$router.replace('/');
    	},
    	addItem: function(o, k) {
			if(!o.enable){
				return
			}
			o.enable = false
			EventBus.$emit("add-template-item", o)
			this.$set(this.serviceItems, k, o)
			this.templateDetail.push(o)
    	},
    	debounceSearch: _.debounce(function() {
			var vm = this
			vm.getServiceItemList()
		}, 500, false),
		getServiceItemList: function(){
			var vm = this
			return rehaAPI.getServiceItemList({
				name: vm.searchName
			}).then(function(res) {
				vm.serviceItems = res.data
				var selected = vm.templateDetail
				var selectedIds = _.pluck(selected, "code")
				_.each(vm.serviceItems, function(o) {
					if(_.contains(selectedIds, o.code)) {
						o.enable = false
					} else {
						o.enable = true
					}
				})
			})
		},
		findTemplateDetail: function() {
			var vm = this
			return rehaAPI.findTemplateDetail({
				templateId: vm.templateId
			}).then(function(res) {
				return res
			})
		},
    }
}

+ 10 - 10
component/rehabilitation/template-items.js

@ -7,12 +7,12 @@ var TemplateItems = {
	    				<img src="../../../images/fanhui_icon.png" class="c-vam"/>请在左侧“服务项”列表中选择\
	    			</div>\
	    			<div class="template-items" v-show="items.length">\
	    				<div class="item-card ptb10 plr15 mt10" v-for="(o, i) in items" @click="toDetail(o)">\
		    				<div class="c-nowrap">{{o.specialistServiceItemDO.title}}</div>\
	    				<div class="item-card ptb10 plr15 mt10" v-for="(o, i) in items">\
		    				<div class="c-nowrap">{{o.name}}</div>\
			    			<div class="c-row c-f14 mt5">\
						        <div class="c-50">\
						        	<span class="c-909090">医&emsp;&emsp;院:</span>\
						        	<span>{{o.hospitalName}}</span>\
						        	<span>待选择</span>\
						        </div>\
						        <div class="c-50">\
						        	<span class="c-909090">执行人员:</span>\
@ -26,13 +26,13 @@ var TemplateItems = {
						        </div>\
						        <div class="c-50">\
						        	<span class="c-909090">费&emsp;&emsp;用:</span>\
						        	<span>{{o.expense}}元</span>\
						        	<span>0.00元</span>\
						        </div>\
						    </div>\
						    <img src="../../../images/qingchu_icon.png" class="item-delete-btn" @click.stop="deleteItem(o, i)"/>\
						    <img v-if="name!=\'系统模板\'" src="../../../images/qingchu_icon.png" class="item-delete-btn" @click.stop="deleteItem(o, i)"/>\
	    				</div>\
	    			</div>\
	    			<div class="foot-btns">\
	    			<div v-if="name!=\'系统模板\'" class="foot-btns">\
			    		<a class="delete-btn c-t-center mr50" @click="deleteTemplate">\
			    			删除模板\
			    		</a>\
@ -78,11 +78,11 @@ var TemplateItems = {
		
    },
    methods: {
    	deleteItem: function(o, i) {
    		var vm = this
    		o.enable = true
    		vm.items.splice(i, 1)
			vm.items.splice(i, 1)
			EventBus.$emit("delete-template-item", o, i)
    	},
    	saveTemplate: function() {
    		var vm = this
@ -91,7 +91,7 @@ var TemplateItems = {
    			doctor: storage.docInfo.code,
    			json: JSON.stringify({
    				templateId: vm.templateId,
    				hospitalServiceItemId: _.pluck(vm.items, 'id').join(',')
    				hospitalServiceItemId: _.pluck(vm.items, 'code').join(',')
    			}),
    			type: vm.isNew?"create":"edit"
    		}).then(function(res) {
@ -147,7 +147,7 @@ var TemplateItems = {
    			path:"/template-item-detail",
    			query: {
    				templateId: vm.templateId,
    				itemId: o.id
    				itemId: o.code
    			}
    		})
    		

+ 5 - 0
css/cross.css

@ -1128,6 +1128,7 @@
.ui-grid {
    display: -webkit-box;
    display: box;
    display: flex;
}
.ui-grid-middle {
@ -1135,11 +1136,13 @@
    -webkit-box-align: center;
    box-pack: center;
    box-align: center;
    align-items: center;
}
.ui-grid-vertical {
    -webkit-box-orient: vertical;
    box-orient: vertical;
    flex-direction: column;
}
.ui-grid-label {
@ -1157,11 +1160,13 @@
.ui-col-1 {
    -webkit-box-flex: 1;
    box-flex: 1;
    flex: 1;
}
.ui-col-2 {
    -webkit-box-flex: 2;
    box-flex: 2;
    flex: 2;
}
.ui-col-3 {