chenyubai 10 mesiacov pred
rodič
commit
8d271ec0d5

+ 3 - 2
api/http-request.js

@ -1,12 +1,12 @@
(function($) {
    window.ajaxInsArr = {}
	window.eventBuss = new Vue();
    var publish_version = true;
    var isInner = false; //发布线上后有内外网的配置
    var docInfo = "app_storage";
    var agentName = "wlyyAgentForDoc";
    var docAgentName = "wlyyAgent";
    var server, userAgent, loginUrl, imserver, socketUrl, imgServer,teamworkService;
    var IMEI = localStorage.getItem('WLYY_IMEI') || uuid(16, 16)
    localStorage.setItem('WLYY_IMEI', IMEI)
    $.support.cors = true;
@ -28,7 +28,8 @@
            imgServer = "http://10.95.22.10:8011/";
        }
    } else { // 测试环境配置
        server = "https://ehr.yihu.com/wlyy/"  //测试环境
        // server = "https://ehr.yihu.com/wlyy/"  //测试环境
		server = "http://172.26.0.118:8081/wlyy/";   //ip
        imserver = "https://172.26.0.118:3000/api/v2";
        socketUrl = "https://172.26.0.118:3000";

+ 20 - 1
api/jbsc-api.js

@ -6,7 +6,7 @@
    },
    //统计模型
    screenStatics: function (data) {
      return httpRequest.post('doctor/screen/screenStatics')
      return httpRequest.post('doctor/screen/screenStatics',{ data: data })
    },
    //专科疾病列表
    getSpecialDisease: function (data) {
@ -16,6 +16,18 @@
    getResultList: function (data) {
      return httpRequest.get('doctor/screen/getResultList', { data: data })
    },
	//专科获取筛查列表
	getList: function (data) {
	  return httpRequest.get('doctor/specialist/screen/getList', { data: data })
	},
	// 获取ASCVD居民
	getPatientSignByTwoDoctor: function (data) {
	  return httpRequest.get('doctor/patient/getPatientSignByDoctor', { data: data })
	},
	// ASCVD   社区随访
	changeSurveyState: function (data) {
	  return httpRequest.post('doctor/screen/changeSurveyState', { data: data })
	},
    //		获取筛查问卷列表
    getScreenList: function (data) {
      return httpRequest.post('doctor/screen/getScreenList', { data: data })
@ -85,9 +97,16 @@
    getHospitalInfoByMappingId: function (data) {
      return httpRequest.get('/hospitals/getHospitalInfoByMappingId', { data: data })
    },
	getHospitalSpecialistList: function (data) {
	  return httpRequest.get('/doctor/specialist/screen/getHospitalSpecialistList', { data: data })
	},
    getOrgList: function (data) {
      return httpRequest.post('/doctor/guahao/GetOrgListToMysql', { data: data })
    },
	GetOrgListToMysqlByDisease: function (data) {
	  return httpRequest.post('/doctor/guahao/GetOrgListToMysqlByDisease', { data: data })
	},
	
    GetOrgDepListToMysql: function (data) {
      return httpRequest.post('/doctor/guahao/GetOrgDepListToMysql', { data: data })
    },

+ 2 - 0
app/guidance/html/index.html

@ -14,6 +14,7 @@
    <link rel="stylesheet" type="text/css" href="../../../plugins/toastr/toastr.min.css" />
    <link rel="stylesheet" type="text/css" href="../../../plugins/artDialog/6.0.5/css/ui-dialog.min.css" />
    <link rel="stylesheet" type="text/css" href="../css/index.css" />
	<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css"/>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
  </head>
@ -36,6 +37,7 @@
    <script src="../../../api/guidance-api.js"></script>
    <script src="../../../js/vue-router.js"></script>
    <script src="../../../js/util.js"></script>
	<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../component/guidance/index-page.js"></script>
    <script src="../../../component/guidance/nav-tab.js"></script>
    <script src="../../../component/guidance/person-panel.js"></script>

+ 4 - 4
app/jbsc/appointment/appoint-hospital.js

@ -2,19 +2,20 @@ Vue.component('appoint-hospital', {
  template:
    '<div>\
			<div class="c-f16 c-border-b pb5 ui-grid middle search-wrapper">\
				<div>医&emsp;&emsp;院&emsp;&emsp;</div>\
				<div v-if="show==0">冠心病专病医院(已入驻)</div>\
				<div v-if="show==1">医&emsp;&emsp;院&emsp;&emsp;</div>\
				<div class="ml30" id="search"><input class="h34" v-model="HosKeyword" @keyup.enter="searchItem" placeholder="请输入医院名称查询"/><span @click="searchItem"></span></div>\
			</div>\
			<ul class="clearfix">\
				<li v-for="(list, index) in hospital">\
					<a href="javascript:void(0)" :title="list.address" @click="selHospital(list)">{{list.address}}<span class="col-999" v-show="list.level">(</span><span class="col-red"  v-show="list.level">{{list.level}}</span><span class="col-999"  v-show="list.level">)</span></a>\
					<a href="javascript:void(0)" :title="list.address || list.hospital_name" @click="selHospital(list)">{{list.address || list.hospital_name}}<span class="col-999" v-show="list.level">(</span><span class="col-red"  v-show="list.level">{{list.level}}</span><span class="col-999"  v-show="list.level">)</span></a>\
				</li>\
        <li>\
					 <div  v-if="hospital.length<2" style="border: 1px solid #12b7f5;color:#12b7f5 ;width:200px;text-align: center;cursor: pointer" @click="moreHospital">更多医院</div>\
				</li>\
			</ul>\
			</div>',
  props: ['hospital'],
  props: ['hospital','show'],
  data: function () {
    return {
      HosKeyword: '',
@ -40,7 +41,6 @@ Vue.component('appoint-hospital', {
      if (backToSynergy) {
        content += '&backToSynergy=1'
      }
      console.log('11111111111111111111111111', patient)
      top.layer.open({
        type: 2,
        title: false,

+ 2 - 2
app/jbsc/appointment/visitor-info.js

@ -51,9 +51,9 @@ Vue.component('visitor-info', {
			}
		},
		initValidate: function() {
			var user = JSON.parse(sessionStorage.getItem("LoginUser"))
			var docInfo = JSON.parse(window.localStorage.getItem('docInfo'))
			var vm = this
			APIService.captchaWithDoctor(user.code, {
			APIService.captchaWithDoctor(docInfo.jobCode, {
				
			}).then(function(res) {
				if(res.status == 200) {

+ 6 - 0
app/jbsc/component/canvas-progress.js

@ -12,6 +12,12 @@ Vue.component('canvas-progress', {
        this.drawMain(this.canvas, this.progress, "#12b7f5", "#bec8d2");
	},
	methods: {
		dataFunction:function(v) {
			if(v) {
				this.canvas=document.getElementById("time-graph-canvas")
				this.drawMain(this.canvas, v, "#12b7f5", "#bec8d2");
			}
		},
		drawMain: function(drawing_elem, percent, forecolor, bgcolor) {
		    /*
		        @drawing_elem: 绘制对象

+ 32 - 2
app/jbsc/css/filter_type.css

@ -1,6 +1,6 @@
.layer-mask{width: 280px;overflow: hidden;}
.c-container{width: 560px;transition: all .3s ease-in-out;}
.select-type,.select-denuzen{float: left;}
.c-container{width: 840px;transition: all .3s ease-in-out;}
.select-type,.select-denuzen,.select-sxuan{float: left;}
.filter-list{background: #fff;text-align: center;padding: 0;width: 280px;list-style: none;margin-bottom: 0;}
.filter-list li,.filter-list-list{height: 40px;line-height: 40px;cursor: pointer;color: #333;font-size: 14px;border-bottom: 1px solid #ccc;}
.filter-list-list.active,.filter-list-list:hover{color: #12B7F5;background-color: #f5f5f5;}
@ -77,3 +77,33 @@
.btn-fixed-bottom{background: #fff;position: fixed;left: 0;right: 0;bottom: 0;max-width: 280px;}
.clear-fixed-bottom-gdwj{background: #fff;position: fixed;left: 0;right: 0;bottom: 0;max-width: 280px;border-top: 1px solid #ececec;}
.clear-fixed-bottom-gdwj .filter-list-list{border-bottom: none;background: none;}
.status-tag{
	border-color: #17b3ec;
	min-width: 70px;
	text-align: center;
	border: 1px solid #676a6c;
	border-radius: 8px;
	margin-top: 10px;
	margin-right: 5px;
	font-size: 14px;
	width: 70px;
	cursor: pointer;
}
.labelTag{
	height: 40px;
	line-height: 40px;
	border: 1px solid #17b3ec;
	border-radius: 30px;
	font-size: 12px;
	padding: 3px 6px;
	color: #17b3ec;
}
.contetnBox{
	width: 280px; display: flex;flex-wrap: wrap;
}

+ 3 - 0
app/jbsc/css/statistics.css

@ -287,3 +287,6 @@ button.dropdown-toggle:hover .caret {
	background-image: url(../images/3_img.png);
	background-position: 50px;	
}
.el-dialog--center .el-dialog__body{
	text-align: center;
}

+ 87 - 75
app/jbsc/html/appointment/appoint-commit.html

@ -14,6 +14,8 @@
    <link href="../../../../css/jqgrid/ui.jqgridffe4.css?0820" rel="stylesheet" />
    <link href="../../../../css/animate.min.css" rel="stylesheet" />
    <link href="../../../../css/style1.min.css?v=4.1.0" rel="stylesheet" />
	<link rel="stylesheet" type="text/css" href="../../../../css/element-ui.css"/>
	<link rel="stylesheet" type="text/css" href="../../../../css/element-ui.css" />
	    <style>
	    	body {padding-top: 20px;}
	    	.w20 {
@ -60,12 +62,13 @@
	    	}
				.referenceItems{
					position: absolute;
					width: 250px;
					width: 280px;
					height: 200px;
					right: 150px;
					bottom: 10px;
					right: 144px;
					background-color: #f5f5f5;
					overflow-y: scroll;
					padding: 10px;
					bottom: 21px;
				}
				.item{
					display: flex;
@ -76,83 +79,91 @@
				.user-info{
				}
				.el-checkbox__input{
					display: flex;
					position: absolute;
					margin-top: 14px;
				}
	    </style>
	</head>
	<body>
		<div id="app" class="pl30 pr30">
			<visit-info :param="param"></visit-info>
			<visitor-info :param="param"></appoint-info>
		</div>
		<div class="pl30 pr30"><div class="c-f16 c-border-b pb5 pl30">参考信息</div>
		<ul class="pl40">
			<li class="h34">
				<span class="fc-999 mr40 w100">就诊类型</span>
				<div class="radio-inline">
					<input type="radio"  name="killOrder" id="killOrder1" value="1" style="margin-top: 2px;" checked/>
					<label for="killOrder1">普诊</label>
				</div>
				<div class="radio-inline">
					<input type="radio"  name="killOrder" id="killOrder2" value="0"  style="margin-top: 2px;"/>
					<label for="killOrder2">复诊</label>
				</div>
			</li>
			<li class="h34">
				<span class="fc-999 mr40 w100">参考信息</span>
					<input class="ti1 bd1" v-model="referenceInfo">
					<div class="referenceItems ti1">
						<div class="item">
							<input type="checkbox" name="referInfo" value="0">
							<div class="user-info">
								<div style="height: 15px;line-height: 15px;">黄小蕾 <span>记录于2024-1-1</span></div>
								<div style="height: 15px;line-height: 15px;">风险评估(冠心病、脑卒中)</div>
								<div style="height: 15px;line-height: 15px;" style="color: #FF9933;">91分</div>
							</div>
						</div>
						<div class="item">
							<input type="checkbox" name="referInfo" value="1">
							<div class="user-info">
								<div style="height: 15px;line-height: 15px;">黄小蕾 <span>记录于2024-1-1</span></div>
								<div style="height: 15px;line-height: 15px;">风险评估(冠心病、脑卒中)</div>
								<div style="height: 15px;line-height: 15px;" style="color: #FF9933;">91分</div>
							</div>
						</div>
			
						<div class="item">
							<input type="checkbox" name="referInfo" value="2">
							<div class="user-info">
								<div style="height: 15px;line-height: 15px;">黄小蕾 <span>记录于2024-1-1</span></div>
								<div style="height: 15px;line-height: 15px;">风险评估(冠心病、脑卒中)</div>
								<div style="height: 15px;line-height: 15px;" style="color: #FF9933;">91分</div>
							</div>
						</div>
						<div class="item">
							<input type="checkbox" name="referInfo" value="3">
							<div class="user-info">
								<div style="height: 15px;line-height: 15px;">黄小蕾 <span>记录于2024-1-1</span></div>
								<div style="height: 15px;line-height: 15px;">风险评估(冠心病、脑卒中)</div>
								<div style="height: 15px;line-height: 15px;" style="color: #FF9933;">91分</div>
							</div>
						</div>
						<div class="item">
							<input type="checkbox" name="referInfo" value="4">
							<div class="user-info">
								<div style="height: 15px;line-height: 15px;">黄小蕾 <span>记录于2024-1-1</span></div>
								<div style="height: 15px;line-height: 15px;">风险评估(冠心病、脑卒中)</div>
								<div style="height: 15px;line-height: 15px; " style="color: #FF9933;">91分</div>
		<div id="app">
			<div  class="pl30 pr30">
				<visit-info :param="param"></visit-info>
				<visitor-info :param="param"></visitor-info>
			</div>
			<div class="pl30 pr30"><div class="c-f16 c-border-b pb5">参考信息</div>
			<ul class="pl40">
				<li class="h34">
					<span class="fc-999 mr40 w100">就诊类型</span>
					<div class="radio-inline">
						<input type="radio"  name="killOrder" id="killOrder1" value="1" style="margin-top: 2px;" checked/>
						<label for="killOrder1">普诊</label>
					</div>
					<div class="radio-inline">
						<input type="radio"  name="killOrder" id="killOrder2" value="2"  style="margin-top: 2px;"/>
						<label for="killOrder2">复诊</label>
					</div>
				</li>
				<li class="" style="display: flex;">
					<span class="fc-999 mr40 w100">参考信息</span>
					<div class="input-group" @click="referenceShow = !referenceShow">
					  <input
					    id="Type"
					    :placeholder="placeholder"
					    type="text"
					    class="form-control"
					    name="Type"
					    readonly="readonly" />
					  <div class="input-group-btn">
					    <button
					      type="button"
					      class="btn btn-white dropdown-toggle"
					      data-toggle="dropdown"
					      aria-haspopup="true"
					      aria-expanded="false">
					      <span class="caret"></span>
					    </button>
					    <ul class="dropdown-menu dropdown-menu-right"></ul>
					  </div>
					</div>
					<div class="referenceItems ti1" v-if="referenceShow">
						<el-checkbox-group v-model="checkList">
							<div class="item" v-for="(item,index) in tablelist" :key='index'>
							    <el-checkbox :label="item">
									<div class="user-info">
										<div style="height: 15px;line-height: 15px;">{{item.patientName}} <span>记录于{{item.czrq}}</span></div>
										<div style="height: 15px;line-height: 15px;">{{item.templateTitle}}</div>
										<div style="height: 15px;line-height: 15px;" style="color: #FF9933;">{{item.screenResult}}</div>
									</div>
								</el-checkbox>
							<!-- <input type="checkbox" name="referInfo" value="0"> -->
							
							</div>
						</el-checkbox-group>
						<div class="" v-if="pagetotal>1" style="text-align: center;margin-top: 5px;cursor: pointer;" @click="more">
							查看更多
						</div>
					</div>
			</li>
			<li class="h50">
				<span class="fc-999 mr40 w100">转诊原因</span> 
				<textarea id="textarea"  v-model="EDUCATE_CONTENT" class="ti1" style="margin-top: 20px;height: 100px;"></textarea>
			</li>
		</ul>
				</li>
				<li class="h50">
					<span class="fc-999 mr40 w100">转诊原因</span> 
					<textarea id="textarea"  v-model="EDUCATE_CONTENT" placeholder='简要说明一下,居民初步诊断或转诊目的(选填)' class="ti1" style="margin-top: 20px;height: 100px;"></textarea>
				</li>
			</ul>
			</div>
			<div class="w280 mt50"><span class="btn w120 mr40" @click="submitBtn">确&nbsp;认</span><span class="btn w120" id="closeBtn">取&nbsp;消</span></div>
		</div>
		<div class="w280 mt50"><span class="btn w120 mr40" id="submitBtn">确&nbsp;认</span><span class="btn w120" id="closeBtn">取&nbsp;消</span></div>
		<script src="../../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../../js/vue.js"></script>
	<script src="../../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
	
	<script src="../../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
	<script src="../../../../plugins/layer/layer.min.js"></script>
	<script src="../../../../api/http-request.js"></script>
	<script src="../../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
	<script src="../../../../plugins/suggest/bootstrap-suggest.min.js"></script>
	<script src="../../../../component/common/pagination.js"></script>
    <script src="../../../../js/underscore.js"></script>
    <script src="../../../../js/es6-promise.js"></script>
    <script src="../../../../js/util.js"></script>
@ -163,9 +174,10 @@
    <script src="../../../../plugins/jqgrid/i18n/grid.locale-cnffe4.js?0820"></script>
    <script src="../../../../plugins/jqgrid/jquery.jqGrid.minffe4.js"></script>
    <script src="../../../../component/common/event-bus.js"></script>
	    <script src="../../appointment/visit-info.js"></script>
	    <script src="../../appointment/visitor-info.js"></script>
	    <script src="../../js/api-service.js"></script>
	    <script src="appoint-commit.js"></script>
	<script src="../../appointment/visit-info.js"></script>
	<script src="../../appointment/visitor-info.js"></script>
	<script src="../../../../api/jbsc-api.js"></script>
	<script src="../../js/api-service.js"></script>
	<script src="appoint-commit.js"></script>
	</body>
</html>

+ 130 - 55
app/jbsc/html/appointment/appoint-commit.js

@ -5,61 +5,20 @@ var param = JSON.parse(decodeURIComponent(Request.paramStr)),
param.key = ''
param.text = ''
$(function () {
	// document.getElementById('referenceInformation').bsSuggest({
	//   data: [{
	//           code: '',
	//           name: '全部'
	//         }],
	//   getDataMethod: 'data',
	//   effectiveFields: ['name'],
	//   idField: 'code',
	//   keyField: 'name'
	// })
  $('#closeBtn').click(function () {
    closeLayer()
  })
  $('#submitBtn').click(function () {
    var loadingid = top.layer.load(1, {
      shade: [0.1, '#fff'] //0.1透明度的白色背景
    })
    if (!param.patientPhone) {
      top.showErrorMessage('请填写病人手机号码')
      top.layer.close(loadingid)
      return
    }
    if (!param.text) {
      top.showErrorMessage('请填写验证码')
      top.layer.close(loadingid)
      return
    }
    var p = JSON.parse(JSON.stringify(param))
    var user = JSON.parse(sessionStorage.getItem('LoginUser'))
    p.dcode = user.code
    p.dname = user.name
    p.relationCode = ''
    p.reservationType = 1
    p.incidentalMsgType = ''
    p.incidentalMsg = ''
    p.reservationReason = ''
    p.paramJson = encodeURIComponent(encodeURIComponent(JSON.stringify([])))
    var arrangeDate = JSON.parse(p.arrangeDate)
    arrangeDate.sectionType = 'a'
    arrangeDate.clazz = 'div-time-enable'
    p.arrangeDate = JSON.stringify(arrangeDate)
    // "sectionType":"a","clazz":"div-time-enable"
    // p.arrangeDate = JSON.stringify(p.arrangeDate)
    // {"max":"1","startTime":"2020/4/17 8:00:00","used":"0","endTime":"2020/4/17 8:07:00","sectionType":"a","clazz":"div-time-enable"}
    APIService.createOrderByDoctor(p)
      .then(function (res) {
        top.layer.close(loadingid)
        if (res.status == 200) {
          top.showSuccessMessage('提交预约挂号成功!')
          if (backToSynergy) {
            top.setSynergyData(param)
          }
          closeLayer()
        } else {
          top.showErrorMessage(res.msg || '预约挂号提交失败!请稍后重试')
        }
      })
      .catch(function (e) {
        top.layer.close(loadingid)
        console && console.error(e)
      })
  })
  
  $('input:radio').click(function () {
    console.log($('input:radio:checked').val(), 'aaaaaaaaaaaaaaaaaaa')
  })
@ -83,9 +42,125 @@ new Vue({
      param: param,
      imgCodeImg: '',
      radio: 0,
      referenceInfo: '已选0'
      referenceInfo: '已选0',
	  EDUCATE_CONTENT:'',
	  referenceShow:false,
	  tablelist:[],
	  pageNo:1,
	  pagesize:10,
	  pagetotal:'',
	  checkList:[],
	  placeholder:"请选择参考信息",
    }
  },
  mounted: function () {},
  methods: {}
  mounted: function () {
	  var vm = this
	  this.getResultList()
	  document.addEventListener('click',function(){
		  // if(vm.referenceShow){
			 //  vm.referenceShow = false
		  // }
	  })
  },
  watch:{
	  checkList() {
		  this.placeholder = this.checkList.length!=0?"已选"+this.checkList.length+"项":"请选择参考信息"
	  },
  },
  methods: {
	  submitBtn:function() {
		  var vm = this
		  var loadingid = top.layer.load(1, {
		    shade: [0.1, '#fff'] //0.1透明度的白色背景
		  })
		  
		  if (!param.patientPhone) {
		    top.showErrorMessage('请填写病人手机号码')
		    top.layer.close(loadingid)
		    return
		  }
		  if (!param.text) {
		    top.showErrorMessage('请填写验证码')
		    top.layer.close(loadingid)
		    return
		  }
		  var p = JSON.parse(JSON.stringify(param))
		  var user = JSON.parse(sessionStorage.getItem('LoginUser'))
		  p.dcode = user.code
		  p.dname = user.name
		  
		  p.relationCode = ''
		  p.reservationType = $('input:radio:checked').val()
		  p.incidentalMsgType = '11'  //筛查报告11
		  p.incidentalMsg = '筛查报告'    //参考信息
		  p.reservationReason = vm.EDUCATE_CONTENT // 转诊原因
		  var content = []
		  vm.checkList.forEach(function(s){
			  content.push({
				addinfoText:s.czrq+s.templateTitle,
				code:s.code,
				patient:s.patientCode,
				patientName:s.patientName,
			  })
		  })
		  var para = {
		  	type:"11",
		  	content:content,
		  }
		  p.paramJson = encodeURIComponent(encodeURIComponent(JSON.stringify([para])))
		  
		  var arrangeDate = JSON.parse(p.arrangeDate)
		  arrangeDate.sectionType = 'a'
		  arrangeDate.clazz = 'div-time-enable'
		  p.arrangeDate = JSON.stringify(arrangeDate)
		  // "sectionType":"a","clazz":"div-time-enable"
		  // p.arrangeDate = JSON.stringify(p.arrangeDate)
		  // {"max":"1","startTime":"2020/4/17 8:00:00","used":"0","endTime":"2020/4/17 8:07:00","sectionType":"a","clazz":"div-time-enable"}
		   
		  APIService.createOrderByDoctor(p)
		    .then(function (res) {
		      top.layer.close(loadingid)
		      if (res.status == 200) {
		        top.showSuccessMessage('提交预约挂号成功!')
		        if (backToSynergy) {
		          top.setSynergyData(param)
		        }
		        closeLayer()
		      } else {
		        top.showErrorMessage(res.msg || '预约挂号提交失败!请稍后重试')
		      }
		    })
		    .catch(function (e) {
		      top.layer.close(loadingid)
		      console && console.error(e)
		    })
	  },
	  more:function() {
		  this.pageNo++
		  this.getResultList()
	  },
	  getResultList:function() {
		  var vm = this
		  var params = {
		    diseaseType: '', //疾病类型
		    dealType: '', //处理方式(全部为空 1已预约 2已跟踪 3已接诊4待处理)
		    patientName:vm.param.patientName, //搜索居民的姓名
		    isDanger: 1, //是否高危预警(0否 1是)
		    pageNo: this.pageNo,
		    pageSize: vm.pagesize
		  }
		  jbscAPI.getResultList(params).then(function (res) {
		    if (res.status == 200) {
				if(this.pageNo==1) {
					vm.tablelist = res.data.data
				}else{
					vm.tablelist = vm.tablelist.concat(res.data.data)
				}
				vm.pagetotal = Math.ceil(res.data.num / vm.pagesize)
		    } else {
		      showErrorMessage(res.msg)
		    }
		  })
	  },
  }
})

+ 7 - 6
app/jbsc/html/appointment/appoint-doctor-detail.js

@ -35,7 +35,7 @@ $(function () {
      top.layer.close(loadingid)
      console && console.error(e)
    })
  $('.tit').html(hospital.address)
  $('.tit').html(hospital.address || hospital.hospital_name)
  $('.reback').click(function () {
    top.layer.open({
      type: 2,
@ -176,7 +176,7 @@ new Vue({
      jbscAPI
        .getOrgDeptList({
          city: 350200,
          hospitalId: hospital.code,
          hospitalId: hospital.code=='gxb'?hospital.hospital:hospital.code,
          filter: keyWord || '',
          pageIndex: 1,
          pageSize: 100
@ -203,7 +203,7 @@ new Vue({
        vm = this
      jbscAPI
        .regDeptSpeDoctorList({
          hospitalId: hospital.code,
          hospitalId: hospital.code=='gxb'?hospital.hospital:hospital.code,
          hosDeptId: list.code
        })
        .then(function (res) {
@ -264,8 +264,8 @@ new Vue({
      arrangeDate.startTime = data.startTime
      var param = {
        city: 350200,
        hospitalId: hospital.code,
        hospitalName: hospital.address,
        hospitalId: hospital.code=='gxb'?hospital.hospital:hospital.code,
        hospitalName: hospital.address || hospital.hospital_name,
        hosDeptId: dept.code,
        hosDeptName: dept.name,
        doctorId: bookDoctor.id,
@ -291,7 +291,8 @@ new Vue({
        title: false,
        closeBtn: true,
        area: ['600px', '800px'],
        content: content
        content: content,
		zIndex:'9'
      })
      closeLayer()
    }

+ 26 - 11
app/jbsc/html/appointment/appoint-select.html

@ -131,17 +131,32 @@
  </head>
  <body>
    <div id="app" class="pl30 pr30 pb30">
      <div class="hosipital-wrapper">
        <div class="hospital" :class="selectHospital==1? 'selectedItem':''" @click="changeTypeHospital(1)">
          医院预约
        </div>
        <div class="hospital" :class="selectHospital==2? 'selectedItem':''" @click="changeTypeHospital(2)">
          社区预约
        </div>
      </div>
      <appoint-hospital :hospital="hospital" v-if="selectHospital==1"></appoint-hospital>
      <appoint-country :country="country" v-if="selectHospital==2"></appoint-country>
      <div><span class="btn w120" id="closeBtn">返回</span></div>
		<template v-if="show==0">
			<!-- <div class="hosipital-wrapper">
			  <div class="hospital" :class="selectHospital==1? 'selectedItem':''" @click="changeTypeHospital(1)">
			    医院预约
			  </div>
			  <div class="hospital" :class="selectHospital==2? 'selectedItem':''" @click="changeTypeHospital(2)">
			    社区预约
			  </div>
			</div> -->
			<appoint-hospital :hospital="hospital" v-if="selectHospital==1" :show='0'></appoint-hospital>
			<!-- <appoint-country :country="country" v-if="selectHospital==2"></appoint-country> -->
			<div><span class="btn w120" style="background: #12b7f5;color: #fff;" @click="subscribe(1)">预约其他医院</span></div>
		</template>
		<template v-if="show==1">
		  <div class="hosipital-wrapper">
			<div class="hospital" :class="selectHospital==1? 'selectedItem':''" @click="changeTypeHospital(1)">
			  医院预约
			</div>
			<div class="hospital" :class="selectHospital==2? 'selectedItem':''" @click="changeTypeHospital(2)">
			  社区预约
			</div>
		  </div>
		  <appoint-hospital :hospital="hospital" v-if="selectHospital==1"></appoint-hospital>
		  <appoint-country :country="country" v-if="selectHospital==2"></appoint-country>
		  <div><span class="btn w120" id="closeBtn" @click="subscribe(0)">返回</span></div>
		</template>
    </div>
    <script src="../../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../../js/vue.js"></script>

+ 65 - 37
app/jbsc/html/appointment/appoint-select.js

@ -5,9 +5,9 @@ var patient = Request.patient,
  backToSynergy = Request.backToSynergy
$(function () {
  $('#closeBtn').click(function () {
    closeLayer()
  })
  // $('#closeBtn').click(function () {
  //   closeLayer()
  // })
})
function closeLayer() {
  var index = top.layer.getFrameIndex(window.name)
@ -20,15 +20,39 @@ new Vue({
      hospital: [],
      country: [],
      selectHospital: 1,
      town: ''
      town: '',
	  show:0,
    }
  },
  mounted: function () {
    // top.showSuccessMessage("提交预约挂号成功!")
    // this.town = JSON.parse(sessionStorage.getItem('LoginUser')).town
    this.initData()
	if(this.show == 1){
		this.initData()
	}else{
		this.initDataTwo()
	}
  },
  methods: {
	  subscribe:function(num) {
		  this.show = num
		  if(num == 1){
		  	this.initData()
		  }else{
		  	this.initDataTwo()
		  }
	  },
	initDataTwo:function(keyWord) {
		var vm = this
		jbscAPI.getHospitalSpecialistList({
			code:'gxb',
			hospitalName:keyWord,
			pageNo:'',   //后端暂无分页
			pageSize:''  //后端暂无分页
		}).then(function(res){
			vm.hospital = res.data.hospitalSpecialistList
		})
	},
    initData: function (keyWord, keyWord2) {
      var loadingid = top.layer.load(1, {
          shade: [0.1, '#fff'] //0.1透明度的白色背景
@ -76,38 +100,42 @@ new Vue({
        })
    },
    initTypeof: function (type, keyWord) {
      var loadingid = top.layer.load(1, {
          shade: [0.1, '#fff'] //0.1透明度的白色背景
        }),
        vm = this
      jbscAPI
        .getOrgList({
          city: '350200',
          filter: keyWord || '',
          type: type,
          page: 1,
          pageSize: 100
        })
        .then(function (res) {
          top.layer.close(loadingid)
          if (res.status == 200) {
            if (type == 1) {
              vm.hospital = res.data
            } else {
              vm.country = res.data
            }
          } else {
            if (type == 1) {
              top.showErrorMessage(res.msg || '医院列表获取失败!')
            } else {
              top.showErrorMessage(res.msg || '社区列表获取失败!')
            }
          }
        })
        .catch(function (e) {
          top.layer.close(loadingid)
          console && console.error(e)
        })
		if(this.show == 1) {
		  var loadingid = top.layer.load(1, {
			  shade: [0.1, '#fff'] //0.1透明度的白色背景
			}),
			vm = this
		  jbscAPI
			.getOrgList({
			  city: '350200',
			  filter: keyWord || '',
			  type: type,
			  page: 1,
			  pageSize: 100
			})
			.then(function (res) {
			  top.layer.close(loadingid)
			  if (res.status == 200) {
				if (type == 1) {
				  vm.hospital = res.data
				} else {
				  vm.country = res.data
				}
			  } else {
				if (type == 1) {
				  top.showErrorMessage(res.msg || '医院列表获取失败!')
				} else {
				  top.showErrorMessage(res.msg || '社区列表获取失败!')
				}
			  }
			})
			.catch(function (e) {
			  top.layer.close(loadingid)
			  console && console.error(e)
			})
		}else{
			this.initDataTwo(keyWord)
		}
    },
    changeTypeHospital(value) {
      this.selectHospital = value

+ 216 - 33
app/jbsc/html/filter_type.html

@ -17,13 +17,13 @@
	</head>
	<body>
		<div class="layer-mask" id="app">
			<div class="c-container" :style="{marginLeft:currentType==1?'-280px':'0'}">
			<div class="c-container" :style="{marginLeft:currentType==1?'-280px':currentType==2?'-560px':'0'}">
				<div class="select-type">
					<ul class="filter-list">
						<li class="text-left pl20">筛选类型:</li>
						<li class="filter-list-list" v-for="item in screenList" :class="{'active':screeningType==item}" v-text="item.title" @click="goDenizen(item)"></li>
					</ul>
					<div class="text-center ptb10 clear-fixed-bottom-gdwj" v-if="screenList.length && !noScreen" @click="getScreenList('more')">						
					<div class="text-center ptb10 clear-fixed-bottom-gdwj" v-if="screenList.length && !noScreen && currentType==0" @click="getScreenList('more')">						
						<p class="filter-list-list">更多问卷</p>
					</div>
				</div>
@ -40,6 +40,19 @@
							<input type="text" placeholder="搜索居民名" v-model="denizenName" class="form-control" />
							<span class="search-icon" @click="searchDenizen"></span>
						</li>
						<div class=" ptb10 bgc-fff c-border-b ui-grid ui-grid-middle isThird3" v-if="screeningType.isThird==3">
							<!-- <div class="ui-col-0 c-f14">过滤条件: </div> -->
							<div class="ui-col-1 ui-grid c-f16 ui-grid-middle c-f14">
								<div class="ui-col-1" style="display: flex;">
									<div class="c-f12 filter-label c-17b3ec c-border-r" style="text-align: center;padding: 0 5px;">{{screenStatusName || '全部筛查情况'}}</div>
									<div class="c-f12 filter-label c-17b3ec c-border-r" style="text-align: center;padding: 0 5px;">{{assessmentStatusName || '全部结果'}}</div>	
									<div class="c-f12 filter-label c-17b3ec" style="text-align: center;padding: 0 5px;">{{medicalStatusName || '全部体检情况'}}</div>	
								</div>
								<div class="ui-col-0" @click="filterBtn" style="cursor: pointer;">
									<span class="c-666 c-f14">筛选&nbsp;</span><img src="../images/saixuan_icon.png" style="width:9px;vertical-align:baseline;">
								</div>
							</div>
						</div>
						<li class="text-left denizen-group">
							<ul class="denizen-list">
								<li class="flex-box denizen-item" v-for="item in denizenList" v-if="denizenList.length" :class="{'active':(screeningResidents==item)}" @click="selectDenizen(item)">
@ -86,19 +99,54 @@
											<span class="icon icon-xueyaji-gray" v-else></span>
											<span class="icon icon-xuetangyi"v-if='item.deviceType && item.deviceType.indexOf("1") > -1'></span>
											<span class="icon icon-xuetangyi-gray" v-else></span>
											<span v-if="item.medicalNo" class="labelTag">体检</span>
											<span v-if="item.screenResultCode" class="labelTag">
												{{item.screenResultCode==1?"超高危":item.screenResultCode==2?'极高危':item.screenResultCode==3?'高危':item.screenResultCode==4?'中危':item.screenResultCode==5?"低危":''}}
											</span>
										</p>
									</div>
								</li>
								<li v-if="!denizenList.length" class="flex-box">暂无居民信息</li>
							</ul>
							<div class="text-center ptb10" v-if="!noDenizen" @click="getPatientSignByDoctor('more')">						
							<div class="text-center ptb10" v-if="!noDenizen" @click="getDataFunction">						
								<button class="btn btn-default">更多居民</button>
							</div>
						</li>
					</ul>
					<div class="clear-fixed-bottom" v-if="(currentType==1)">
						<div class="btn-fixed-bottom">
							<button class="btn" :class="{'start-screening':screeningResidents.code}"  @click="startScreening">{{isReLoad==1?'确认':'开始筛查'}}</button>
							<button class="btn" :class="{'start-screening':screeningResidents.code || screeningResidents.patient}"  @click="startScreening">{{isReLoad==1?'确认':'开始筛查'}}</button>
						</div>
					</div>
				</div>
				<div class="select-sxuan" v-if="(currentType==2)">
					<ul class="select-list">
						<li class="text-left pl10 active go-back" @click="getTopTwo">〈返回上一步</li>
					</ul>
					<ul class="filter-list">
						<li class="text-left pl20 c-f14">筛选条件:</li>
					</ul>
					<div id="statusType">
						<div class="c-333 c-f14 mt15 pl20">筛查情况</div>
						<div class="c-border-b pb20 pl20 contetnBox">
							<div class="tag status-tag" :style="item.show?'background-color: #17b3ec;color: #fff;border: 1px solid #17b3ec;':''" v-for="(item,index) in status1" :key='index' @click="statusClick(item,1)">{{item.text}}</div>
						</div>	
					</div>
					<div id="statusType"> 
						<div class="c-333 c-f16 mt15 pl20">评估结果</div>
						<div class="c-border-b pb20 pl20 contetnBox">
							<div class="tag status-tag" :style="item.show?'background-color: #17b3ec;color: #fff;border: 1px solid #17b3ec;':''" v-for="(item,index) in status2" :key='index' @click="statusClick(item,2)">{{item.text}}</div>
						</div>	
					</div>
					<div id="statusType">
						<div class="c-333 c-f16 mt15 pl20">体检情况</div>
						<div class="c-border-b pb20 pl20 contetnBox">
							<div class="tag status-tag" :style="item.show?'background-color: #17b3ec;color: #fff;border: 1px solid #17b3ec;':''" v-for="(item,index) in status3" :key='index' @click="statusClick(item,3)">{{item.text}}</div>
						</div>		
					</div>
					<div class="clear-fixed-bottom" >
						<div class="btn-fixed-bottom">
							<button class="btn" style="background-color: #12b7f5;color: #fff;cursor: pointer"   @click="searchDenizen">筛选居民</button>
						</div>
					</div>
				</div>
@ -106,8 +154,9 @@
		</div>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
	    <script src="../../../js/jquery-2.2.4.js"></script>
	     <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
	     <script src="../../../plugins/toastr/toastr.min.js"></script>
		 <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		 <script src="../../../plugins/layer/layer.min.js"></script>
		 <script src="../../../plugins/toastr/toastr.min.js"></script>
	    <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
	    <script src="../../../api/http-request.js" type="text/javascript" charset="utf-8"></script>
	    <script type="text/javascript" src="../../../api/jbsc-api.js" ></script>
@ -134,13 +183,103 @@
					teamCode:'',
					denizenName:'',
					isSearch:false,
					isReLoad:httpData['isReLoad']!=undefined?1:0
					isReLoad:httpData['isReLoad']!=undefined?1:0,
					status1:[
						{id:'',text:'全部',show:true},
						{id:'0',text:'未筛查',show:false},
						{id:'1',text:'已筛查',show:false},
					],
					status2:[
						{id:'',text:'全部',show:true},
						{id:'1',text:'超高危',show:false},
						{id:'2',text:'极高危',show:false},
						{id:'3',text:'高危',show:false},
						{id:'4',text:'中危',show:false},
						{id:'5',text:'低危',show:false},
					],
					status3:[
						{id:'',text:'全部',show:true},
						{id:'0',text:'未体检',show:false},
						{id:'1',text:'已体检',show:false},
					],
					medicalStatus:'',
					screenStatus:'',
					assessmentStatus:'',
					screenStatusName:"",
					assessmentStatusName:"",
					medicalStatusName:'',
					docInfo:JSON.parse(window.localStorage.getItem('docInfo')),
				},
				mounted: function(){
					this.currentType=(httpData['goDenizen'] || 0)
					this.getScreenList();
				},
				methods: {
					getDataFunction:function() {
						// 更多
						if(this.screeningType.isThird == 3) {
							this.residentsFunction('more')
						}else{
							this.getPatientSignByDoctor('more')
						}
					},
					residentsFunction:function(flag) {
						var vm=this;
						flag=='more' && ++vm.sPage
						flag=='one' && (vm.sPage=1) && (vm.denizenList=[]);
						vm.isSearch=false;
						var vm=this;
						var data={
							pageNo: vm.sPage,
							pageSize: vm.pageSize,
							keyWord: vm.denizenName,
							teamCode: vm.teamCode,
							medicalStatus:vm.medicalStatus,  //体检状态 0 没有 1有 空全部
							screenStatus:vm.screenStatus,   //筛查 0 没有 1有 空全部
							assessmentStatus:vm.assessmentStatus,// 评估 1极高危、2超高危、3高危、4中危、5低危
						}
						jbscAPI.getPatientSignByTwoDoctor(data).then(function(res){
							if(res.status==200){
								var list=vm.denizenList;
								var _length=res.data && res.data.length || 0;
								_length && (list=list.concat(res.data));
								vm.denizenList=list;
								if(_length<vm.pageSize){
									vm.noDenizen=true;
								}
								
							}
						})
					},
					filterBtn:function() {
						this.currentType = 2
					},
					getTopTwo:function() {
						this.currentType = 1
					},
					statusClick:function(item,num) {
						var vm = this
						var data = num == 1?this.status1:num == 2?this.status2:this.status3
						if(num==1){
							vm.screenStatus = item.id
							vm.screenStatusName = item.text=='全部'?'':item.text
						}
						if(num==2){
							vm.assessmentStatus = item.id
							vm.assessmentStatusName = item.text=='全部'?'':item.text
						}
						if(num==3){
							vm.medicalStatus = item.id
							vm.medicalStatusName = item.text=='全部'?'':item.text
						}
						data.forEach(function(v){
							if(v.id == item.id) {
								v.show = true
							}else{
								v.show = false
							}
						})
					},
//					获取筛查类型
					getScreenList:function(flag){
			    		var vm=this;
@ -155,7 +294,18 @@
			    				var list=JSON.parse(JSON.stringify(vm.screenList));
			    				var _length=res.data && res.data.length || 0;
			    				_length && (list=list.concat(res.data));
			    				vm.screenList=list
								// 专科不显示ASCVD
								if(vm.docInfo.level=='2') {
									vm.screenList=list
								}else{
									var ls = []
									list.forEach(function(v){
										if(v.isThird != 3) {
											ls.push(v)
										}
									})
									vm.screenList=ls
								}
			    				if(_length<vm.pageSize){
			    					vm.noScreen=true;
			    				}
@ -166,28 +316,55 @@
			   			return httpRequest.getImgUrl(url)
			   		},
			   		searchDenizen: function(){
			   			var vm=this;
			   			!vm.isSearch && (vm.sPage=1);
			   			vm.isSearch && (++vm.sPage);
			   			vm.isSearch=true;
			   			var data={
			   				filter: vm.denizenName,
			   				teamCode: vm.teamCode,
			   				page: vm.sPage,
			   				pagesize: vm.pageSize,
			   			}
			   			jbscAPI.searchDenizen(data).then(function(res){
			   				if(res.status==200){
			   					if(res.data){			   						
			   						vm.denizenList=res.data;
			   					}else{
			   						top.layer.msg('无相关居民信息', {icon: 5});
			   					}
			   				}else{
			   					top.layer.msg(res.msg, {icon: 5});
			   					vm.getPatientSignByDoctor();
			   				}
			   			})
						var vm=this;
						if(this.screeningType.isThird == 3) {
							vm.isSearch && (++vm.sPage);
							vm.isSearch=true;
							var data={
								pageNo: '1',
								pageSize: vm.pageSize,
								keyWord: vm.denizenName,
								teamCode: vm.teamCode,
								medicalStatus:vm.medicalStatus,  //体检状态 0 没有 1有 空全部
								screenStatus:vm.screenStatus,   //筛查 0 没有 1有 空全部
								assessmentStatus:vm.assessmentStatus,// 评估 1极高危、2超高危、3高危、4中危、5低危
							}
							jbscAPI.getPatientSignByTwoDoctor(data).then(function(res){
								if(res.status==200){
									if(res.data){
										vm.denizenList=res.data;
									}else{
										top.layer.msg('无相关居民信息', {icon: 5});
									}
								}else{
									top.layer.msg(res.msg, {icon: 5});
									vm.getPatientSignByDoctor();
								}
							})
							this.currentType = 1
						}else{
							!vm.isSearch && (vm.sPage=1);
							vm.isSearch && (++vm.sPage);
							vm.isSearch=true;
							var data={
								filter: vm.denizenName,
								teamCode: vm.teamCode,
								page: vm.sPage,
								pagesize: vm.pageSize,
							}
							jbscAPI.searchDenizen(data).then(function(res){
								if(res.status==200){
									if(res.data){			   						
										vm.denizenList=res.data;
									}else{
										top.layer.msg('无相关居民信息', {icon: 5});
									}
								}else{
									top.layer.msg(res.msg, {icon: 5});
									vm.getPatientSignByDoctor();
								}
							})
						}
			   		},
			   		getPatientSignByDoctor:function(flag){
			   			var vm=this;
@ -248,12 +425,13 @@
			    			return ;
			    		}
						if(vm.isReLoad==1){//是否是重选问题
							parent.question.screeningResidents=vm.screeningResidents.code
							parent.question.screeningResidents=vm.screeningResidents.code || vm.screeningResidents.patient
							parent.question.screeningResidentsName=vm.screeningResidents.name
							parent.question.getHealth();
							var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
							parent.layer.close(index); //再执行关闭
						}
						var pCode = vm.screeningResidents.code || vm.screeningResidents.patient
			    		top.layer.open({
						  type: 2,
		//				  offset: ['100px'], //右下角弹出
@ -265,7 +443,7 @@
						  closeBtn:1,
						  shift: 5,
						  shadeClose: false, //点击遮罩关闭层
						  content: '../../jbsc/html/questionnaire.html?fliter_code='+vm.screeningType.code+'&fliter_title='+vm.screeningType.title+'&resident_code='+vm.screeningResidents.code+'&resident_name='+vm.screeningResidents.name
						  content: '../../jbsc/html/questionnaire.html?fliter_code='+vm.screeningType.code+'&fliter_title='+vm.screeningType.title+'&resident_code='+pCode+'&resident_name='+vm.screeningResidents.name+'&sex='+vm.screeningResidents.sex+'&age='+vm.screeningResidents.age
						});
						var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
						parent.layer.close(index); //再执行关闭
@ -277,6 +455,7 @@
			    	},
			    	selectDenizen:function(item){
			    		var vm=this;
						console.log(item,"23432")
			    		if(vm.screeningResidents==item){
			    			vm.screeningResidents={}
			    			return
@ -287,7 +466,11 @@
				watch:{
					teamCode:function(){
						this.noDenizen=false
						this.getPatientSignByDoctor('one')
						if(this.screeningType.isThird == 3) {
							this.residentsFunction('one')
						}else{
							this.getPatientSignByDoctor('one')
						}
					},
					currentType:function(val){
						val &&  this.getDoctorTeam();

+ 225 - 29
app/jbsc/html/questionnaire.html

@ -14,6 +14,8 @@
		<link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
		<link href="../../../plugins/toastr/toastr.min.css" rel="stylesheet">
		<link rel="stylesheet" href="../css/questionnaire.css" />
		<link rel="stylesheet" type="text/css" href="../../../css/element-ui.css" />
		<!-- <link rel="stylesheet" type="text/css" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css" /> -->
	</head>
	<body>
		<div class="ui-grid" id="app" style="align-items: flex-start;" v-cloak>
@ -27,12 +29,48 @@
								<p class="question-name" v-text="key+'、'+qst.question.title"></p>
								<div class="daan-list" v-if="qst.question.questionType!=2">
									<lable class="label-block" v-for="opt in qst.option" @click="selectItem(qst.question,opt)">
										<span class="pull-right" v-text="(opt.score || 0)+'分'"></span>
										<input :type="qst.questionType==1?'checked':'radio'" :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
									</lable>	
										<span class="pull-right" v-text="(opt.score || 0)+'分'" v-if="qst.isThird!=3"></span>
										<template v-if="qst.isThird==3&&qst.question.thirdKey=='sex'">
											<input :type="qst.questionType==1?'checked':'radio'"  :checked="opt.thirdValue == sex" :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
										<template v-if="qst.isThird==3&&qst.question.thirdKey=='acs'">
											<input :type="qst.questionType==1?'checked':'radio'"  :checked="opt.thirdValue == (ascvdShow?ascvdShow:ascvdS1)" id='myInput1' :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
										<template v-if="qst.isThird==3&&qst.question.thirdKey=='myocardialInfarct'">
											<input :type="qst.questionType==1?'checked':'radio'"  :checked="opt.thirdValue == (ascvdShow?ascvdShow:ascvdS2)" id='myInput2' :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
										<template v-if="qst.isThird==3&&qst.question.thirdKey=='ischemicStroke'">
											<input :type="qst.questionType==1?'checked':'radio'"  :checked="opt.thirdValue == (ascvdShow?ascvdShow:ascvdS3)" id='myInput3' :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
										<template v-if="qst.isThird==3&&qst.question.thirdKey=='seriousMedicalHistory'">
											<input :type="qst.questionType==1?'checked':'radio'"  :checked="opt.thirdValue == (ascvdShow?ascvdShow:ascvdS4)" id='myInput4' :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
										<template v-if="qst.question.thirdKey!='sex'&&qst.question.thirdKey!='acs'&&qst.question.thirdKey!='myocardialInfarct'&&qst.question.thirdKey!='ischemicStroke'&&qst.question.thirdKey!='seriousMedicalHistory'">
											<input :type="qst.questionType==1?'checked':'radio'" v-if="qst.question.thirdKey!='sex'" :name="'ques'+index+screeningType+(qst.questionType==1?'[]':'')" value="1" /><i></i><span v-text="opt.content"></span>									
										</template>
									</lable>
								</div>
								<div class="daan-list" v-else>
									<textarea class="wenjuan-textarea" @keyup="changeContent(qst.question,qst.question.content)" rows="2" v-model="qst.question.content"></textarea>
								<div v-else>
									<template v-if="qst.isThird==3&&qst.question.thirdKey == 'assessTime'">
										<div style="padding-left: 20px;">
											<el-date-picker
											  v-model="qst.question.content"
											  type="datetime"
											  format="yyyy-MM-dd HH:mm"
											  value-format="yyyy-MM-dd HH:mm"
											  placeholder="选择日期时间"
											  @change='changeContent(qst.question,qst.question.content)'>
											</el-date-picker>
										</div>
									</template>
									<template v-else>
										<div class="daan-list" v-if="qst.isThird==3 && (qst.question.thirdKey == 'assessDoctor' || qst.question.thirdKey == 'assessOrgId')">
											<textarea class="wenjuan-textarea" disabled rows="2"  v-model="qst.question.content"></textarea>
										</div>
										<div class="daan-list" v-else>
											<textarea class="wenjuan-textarea" @keyup="changeContent(qst.question,qst.question.content)" rows="2" v-model="qst.question.content"></textarea>
										</div>
									</template>
								</div>
							</li>
						</ul>
@ -81,7 +119,7 @@
				<div class="completion-of-progress">
					<p class="f16 mb0">完成情况</p>
					<div class="canvas-box">
						<canvas-progress :progress="progress"></canvas-progress>
						<canvas-progress :progress="progress" ref="progress"></canvas-progress>
						<p class="progress-number">
							<span>已完成</span>
						</p>
@ -97,6 +135,9 @@
		<script type="text/javascript" src="../../../plugins/echarts/3.8.5/echarts.min.js" ></script>
		<script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
		<script src="../../../component/common/event-bus.js"></script>
		<script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>
		<!-- <script src="https://unpkg.com/element-ui/lib/index.js" type="text/javascript" charset="utf-8"></script> -->
		<script src="../../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
		 <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
		 <script src="../../../plugins/toastr/toastr.min.js"></script>
@ -107,7 +148,7 @@
		<script type="text/javascript" src="../component/canvas-progress.js" ></script>
		<script type="text/javascript">
			var httpData=GetRequest();
			var wlyyAgentForDoc=JSON.parse(window.localStorage.getItem('wlyyAgentForDoc'));
			var docInfo = JSON.parse(window.localStorage.getItem('docInfo'));
			var question=new Vue({
				el: "#app",
				data: {
@ -118,15 +159,22 @@
					screeningType:httpData['fliter_code'],
					screeningResidents:httpData['resident_code'],
					screeningResidentsName:decodeURI(httpData['resident_name']),
					doctorInfo:{code:wlyyAgentForDoc.uid},
					sex:decodeURI(httpData['sex']),
					age:decodeURI(httpData['age']),
					doctorInfo:{code:docInfo.code},
					questions:[],
					tizhongRecord:{},
					labelType:5,//问卷筛查labelType=5
					isAgain:(httpData['isAgain'] || 0),
					ascvdShow:'',
					ascvdS1:'',
					ascvdS2:'',
					ascvdS3:'',
					ascvdS4:'',
				},
				mounted: function(){
					this.getQuestion();
					this.getHealth();
					this.getQuestion();
					this.getDoctorInfo()
				},
				methods: {
@ -142,35 +190,111 @@
								top.layer.msg(res.msg, {icon: 5});
							}
						})
						
					},
					//计算选中个数,组装成后台接收格式
					selectItem:function(qst,select){
					    console.log("selectItem");
						var vm = this
						if(vm.ascvdShow) {
							if(select.thirdKey == 'acs' || select.thirdKey == 'myocardialInfarct' || select.thirdKey == 'ischemicStroke' || select.thirdKey == 'seriousMedicalHistory') {
								return false
							}
						}
						var data={
							qstCode:qst.code,
							type:qst.questionType,
							content:qst.content,
							thirdKey:qst.thirdKey
						}
						var options=[];
						var ls = []
						if(select){
							options=[{
								optionCode:select.code,
								comment:select.content,
								score:select.score
								score:select.score,
								thirdKey:select.thirdKey,
								thirdValue:select.thirdValue
							}]
							if(select.thirdKey=="ascvd"&&select.thirdValue==0) {
								this.ascvdShow = '0'
								vm.spliceFunction()
								for(var i in this.questions) {
									if(this.questions[i].question.thirdKey == 'acs' || this.questions[i].question.thirdKey == 'myocardialInfarct' || this.questions[i].question.thirdKey == 'ischemicStroke' || this.questions[i].question.thirdKey == 'seriousMedicalHistory') {
										var s = this.questions[i].option[1]
										ls.push({
											optionCode:s.code,
											comment:s.content,
											score:s.score,
											thirdKey:s.thirdKey,
											thirdValue:s.thirdValue
										})
										this.questions[i].question.content = '0'
									}
								}
								document.getElementById("myInput1").disabled = true;
								document.getElementById("myInput2").disabled = true;
								document.getElementById("myInput3").disabled = true;
								document.getElementById("myInput4").disabled = true;
							}else if(select.thirdKey=="ascvd"&&select.thirdValue==1){
								this.ascvdShow = ''
								this.ascvdS1 = ''
								this.ascvdS2 = ''
								this.ascvdS3 = ''
								this.ascvdS4 = ''
								document.getElementById("myInput1").disabled = false;
								document.getElementById("myInput2").disabled = false;
								document.getElementById("myInput3").disabled = false;
								document.getElementById("myInput4").disabled = false;
								ls = []
								vm.spliceFunction()
								
							}
							if(select.thirdKey == 'acs') {vm.ascvdS1 = select.thirdValue}
							if(select.thirdKey == 'myocardialInfarct') {vm.ascvdS2 = select.thirdValue}
							if(select.thirdKey == 'ischemicStroke') {vm.ascvdS3 = select.thirdValue}
							if(select.thirdKey == 'seriousMedicalHistory') {vm.ascvdS4 = select.thirdValue}
						}
						data.options=options;
						var oldLen = this.selectArr.length;
						this.selectArr = _.filter(this.selectArr,function(o) {
								return o.qstCode !=data.qstCode;
						}) || [];
						this.selectArr = this.selectArr.concat(ls)
						this.selectArr.push(data);
						var len=this.selectArr.length;
//						var questions=Object.values(this.questions)
                        var questions = _.toArray(this.questions)
						var allLen=questions.length;
						var progress=len===allLen?100:((len/allLen)*100);
						this.progress=progress;
						if(select&&select.thirdKey=="ascvd") {
							this.$refs.progress.dataFunction(progress)
						}else{
							this.progress=progress;
						}
					},
					spliceFunction:function() {
						var vm = this
						vm.selectArr.forEach(function(v,i){
							if(v.thirdKey == 'acs') {
								vm.selectArr.splice(i,1)
							}
						})
						vm.selectArr.forEach(function(v,i){
							if(v.thirdKey == 'myocardialInfarct') {
								vm.selectArr.splice(i,1)
							}
						})
						vm.selectArr.forEach(function(v,i){
							if(v.thirdKey == 'ischemicStroke') {
								vm.selectArr.splice(i,1)
							}
						})
						vm.selectArr.forEach(function(v,i){
							if(v.thirdKey == 'seriousMedicalHistory') {
								vm.selectArr.splice(i,1)
							}
						})
					},
					signOut:function(){
						var index = top.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
@ -193,8 +317,51 @@
			    		}
			    		jbscAPI.getAllQuestions(data).then(function(res){
			    			if(res.status==200){
								var questions = res.data;
								vm.questions = questions
								console.log(res.data,"res.data")
								for(var i in res.data) {
									if(res.data[i].isThird == 3){
										if(res.data[i].option.length!=0){
											res.data[i].question.thirdKey = res.data[i].option[0].thirdKey
										}
										if(res.data[i].question.thirdKey == 'assessDoctor') {
											res.data[i].question.content = docInfo.name
										}
										if(res.data[i].question.thirdKey == 'assessOrgId') {
											res.data[i].question.content = docInfo.hospitalName
										}
										if(res.data[i].question.thirdKey == 'name') {
											res.data[i].question.content = vm.screeningResidentsName
										} 
										if(res.data[i].question.thirdKey == 'sex') {
											res.data[i].question.content = vm.sex
										} 
										if(res.data[i].question.thirdKey == 'age') {
											res.data[i].question.content = vm.age
										} 
										
									}
								}
								vm.questions = res.data;
								for(var i in res.data) {
									if(res.data[i].isThird == 3){
										if(res.data[i].question.thirdKey == 'assessDoctor') {
											vm.changeContent(res.data[i].question,docInfo.name)
										}
										if(res.data[i].question.thirdKey == 'assessOrgId') {
											vm.changeContent(res.data[i].question,docInfo.hospitalName)
										}
										if(res.data[i].question.thirdKey == 'name') {
											vm.changeContent(res.data[i].question,vm.screeningResidentsName)
										} 
										if(res.data[i].question.thirdKey == 'age') {
											vm.changeContent(res.data[i].question,vm.age)
										} 
										if(res.data[i].question.thirdKey == 'sex') {
											var index = vm.sex==1?"0":'1'
											vm.selectItem(res.data[i].question,res.data[i].option[index])
										} 
									}
								}
							}
			    		})
					},
@ -208,6 +375,16 @@
								vm.tizhongRecord = _.find(res.data,function(o) {
									return o.type =="3";
								}) || {};
								for(var i in vm.questions) {
									if(vm.questions[i].question.thirdKey == "height") {
										vm.questions[i].question.content = vm.tizhongRecord.value2
										vm.changeContent(vm.questions[i].question,vm.tizhongRecord.value2)
									} 
									if(vm.questions[i].question.thirdKey == "weight") {
										vm.questions[i].question.content = vm.tizhongRecord.value1
										vm.changeContent(vm.questions[i].question,vm.tizhongRecord.value1)
									} 
								}
							} else {
								top.layer.msg(res.msg, {icon: 5});
							}
@ -228,26 +405,45 @@
							source:1,
							jsonData:JSON.stringify({
								surveyCode:vm.screeningType,
								questions:vm.selectArr
								questions:vm.selectArr	
							})
						}
						jbscAPI.saveAnswer(data).then(function(res){
							top.layer.close(loadding);
							if(res.status == 200) {
								top.layer.open({
								  type: 2,
								  area: ['820px', '648px'],
								  shade: 0.5,
								  title: '筛选统计',
								  fixed: true, //不固定
								  maxmin: true,
								  closeBtn:1,
								  shift: 5,
								  shadeClose: false, //点击遮罩关闭层
								  content: '../../jbsc/html/filter_result.html?code='+res.data+'&filter_type='+vm.screeningType
								});
								var index = top.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
								top.layer.close(index); //再执行关闭
								if(vm.questions[1].isThird == 3) {
									top.layer.open({
									  type: 2,
					//				  offset: ['100px'], //右下角弹出
									  area: ['568px', '100%'],
									  shade: 0.5,
									  title: '查看筛选结果',
									  fixed: true, //不固定
									  maxmin: true,
									  closeBtn:1,
									  shift: 5,
									  shadeClose: false, //点击遮罩关闭层
									  content: '../../jbsc/html/view_screening_results.html?resultCode='+res.data,
									  end:function() {
										  var index = top.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
										  parent.eventBuss.$emit('guan_results',index)
									  },
									});
								}else{
									top.layer.open({
									  type: 2,
									  area: ['820px', '648px'],
									  shade: 0.5,
									  title: '筛选统计',
									  fixed: true, //不固定
									  maxmin: true,
									  closeBtn:1,
									  shift: 5,
									  shadeClose: false, //点击遮罩关闭层
									  content: '../../jbsc/html/filter_result.html?code='+res.data+'&filter_type='+vm.screeningType
									});
								}
								
							} else {
								top.layer.msg(res.msg, {icon: 5});
							}

+ 55 - 29
app/jbsc/html/statistics.html

@ -101,7 +101,7 @@
                <div class="border-FAB675 bgc-FAB675">
                  <div class="c-fff c-f16 lheight-24">社区随访</div>
                  <div class="c-FF9630 smallbox">
                    <span class="c-f20">{{Statics.orderCount}}</span>
                    <span class="c-f20">{{Statics.followupCount}}</span>
                  </div>
                </div>
@ -189,7 +189,7 @@
      </div>
      <!--疑似高危记录表-表格-->
      <div id="sc_table" class="p20">
        <table class="table-bordered table-striped width-100 c-t-center">
        <table class="table-bordered table-striped width-100 c-t-center" v-loading="isloading">
          <thead>
            <tr>
              <th>姓名</th>
@ -205,36 +205,55 @@
            <tr v-if="!wujilu" v-for="(data, index) in tablelist">
              <td style="width: 80px">{{data.patientName}}</td>
              <td @click="view(data)">{{data.templateTitle}}</td>
              <td class="c-FF9630" style="width: 50px">{{data.screenResultScore?data.screenResultScore+"分":""}}</td>
              <td class="c-FF9630" style="width: 50px" v-if="data.screenResultScore==-1">{{data.screenResult}}</td>
              <td class="c-FF9630" style="width: 50px" v-else>{{data.screenResultScore?data.screenResultScore+"分":""}}</td>
              <td style="width: 70px">
                <div v-if="data.isAgain==1&&data.isDanger==1">
                  <span v-if="data.following==1">已跟踪</span>
                  <span v-if="data.isOrder==1">已预约</span>
                  <span v-if="data.isOrder==2">已接诊</span>
                  <span v-if="data.following==0&&data.isOrder==0">待处理</span>
                  <span v-if="data.isDanger==0">日常健康管理</span>
                </div>
                <div v-else>&nbsp;</div>
				  <!--  -->
				<template v-if="!data.surveyStatus">
					<!-- 是否可以再次评估 && 是否高危 -->
					<!-- <div v-if="data.isAgain==1&&data.isDanger==1"> -->
					<div v-if="data.isDanger==1">
						<span v-if="data.following==1">已跟踪</span>
						<span v-if="data.isOrder==1">已预约</span>
						<span v-if="data.isOrder==2">已接诊</span>
						<span v-if="data.following==0&&data.isOrder==0">待处理</span>
					</div>
					<span v-if="data.isDanger==0">日常健康管理</span>
				</template>
				<template v-if="data.surveyStatus">
				  <span v-if ="data.surveyStatus==1">已管理</span>
				  <span v-if ="data.surveyStatus==2">住院补筛</span>
				</template>
                <!-- <div v-else>&nbsp;</div> -->
              </td>
              <td>{{data.screenResult}}</td>
              <td v-if="data.screenResultScore==-1">{{data.thirdAdvice}}</td>
              <td v-else>{{data.screenResult}}</td>
              <td style="width: 155px">{{data.czrq}}</td>
              <td style="width: 200px">
                <div v-if="data.isAgain==1 && data.isDanger==1">
                  <div v-if="data.isOrder==1" class="c-12B7F5">已预约</div>
                  <div v-else-if="data.following==0 && data.isOrder==0">
                    <span class="btn bgc-FF9630 fl ml10" @click="jkgz(data) " v-if="data.disease!=3">健康跟踪</span>
                    <span class="btn bgc-FF9630 fl ml10" @click="sqsf(data) " v-else>社区随访</span>
                    <span class="btn bgc-02cfb9 fl ml10" @click="zhuanzhen(data)">转诊</span>
                  </div>
                  <div v-else-if="data.following==1">
                    <span class="btn bgc-2DBE55 fl ml10" @click="jkjy(data)">健康教育</span>
                    <span class="btn bgc-12B7F5 fl ml10" @click="shaicha(data,1)">再次筛查</span>
                  </div>
                  <div v-else-if="data.isOrder==2" class="c-12B7F5">已接诊</div>
                </div>
                <div v-else-if=" data.isDanger==0">
                  <div class="btn bgc-12B7F5" style="text-align: center" @click="jkzd(data)">健康指导</div>
                </div>
				<template v-if="docInfo.level==2">
					<div v-if="data.isAgain==1 && data.isDanger==1">
					  <div v-if="data.isOrder==1" class="c-12B7F5">已预约</div>
					  <div v-else-if="data.following==0 && data.isOrder==0">
						<span class="btn bgc-FF9630 fl ml10" @click="jkgz(data) " v-if="data.disease!=3">健康跟踪</span>
					  </div>
					  <div v-else-if="data.following==1">
						<span class="btn bgc-2DBE55 fl ml10" @click="jkjy(data)">健康教育</span>
						<span class="btn bgc-12B7F5 fl ml10" @click="shaicha(data,1)">再次筛查</span>
					  </div>
					  <div v-else-if="data.isOrder==2" class="c-12B7F5">已接诊</div>
					</div>
					<div class="" v-if="docInfo.level==2&&!data.surveyStatus&&data.screenResultScore==-1&&(data.isDanger==1)&&(data.following==0&&data.isOrder==0)">
					  <span class="btn bgc-FF9630 fl ml10" @click="sqsf(data) ">社区随访</span>
					  <span class="btn bgc-02cfb9 fl ml10" @click="zhuanzhen(data)">转诊</span>
					</div>
					<div v-else-if="data.isDanger==0">
					  <div class="btn bgc-12B7F5" style="text-align: center" @click="jkzd(data)">健康指导</div>
					</div>
				</template>
				<!-- 专科 已管理 待处理 已预约 已接诊-->
				<template v-if="docInfo.level=='1'&&(data.surveyStatus==1||(data.following==0&&data.isOrder==0)||(data.isOrder==1)||(data.isOrder==2))">
					<span class="btn fl ml10" style="background-color: #12b7f5;" @click="lianxijiayi(data)">联系家医</span>
				</template>
              </td>
            </tr>
            <tr v-if="wujilu">
@ -253,12 +272,19 @@
        <span>是否纳入本社区随访</span>
        <span slot="footer" class="dialog-footer">
          <el-button @click="centerDialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
          <el-button type="primary" @click="centerDialogClick">确 定</el-button>
        </span>
      </el-dialog>
	  <el-dialog title="家医联系方式" :visible.sync="jiayiShow" width="25%" center>
	    <span>如需联系家医,请拨打下方电话:<br> {{doctorMobile || '无'}}</span>
	    <span slot="footer" class="dialog-footer">
	      <el-button type="primary" @click="jiayiShow = false">确 定</el-button>
	    </span>
	  </el-dialog>
    </div>
    <script type="text/javascript" src="../../../js/vue.js"></script>
    <script type="text/javascript" src="../../../js/jquery-2.2.4.js"></script>
	<script src="../../../component/common/event-bus.js"></script>
    <script src="../../../js/es6-promise.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../plugins/toastr/toastr.min.js"></script>
    <script src="../../../js/element-ui.js" type="text/javascript" charset="utf-8"></script>

+ 197 - 59
app/jbsc/html/view_screening_results.html

@ -226,7 +226,7 @@
        color: #74bf00;
        font-size: 12px;
      }
      .score-box {
      .score-box{
        height: 80px;
        padding-left: 120px;
        padding-top: 8px;
@ -242,6 +242,56 @@
        color: #74bf00;
        background-image: url(../images/jiaofeichengong_icon.png);
      }
	  .score-box1{
		color: #E52F2F;
		background-image: url(../images/jiaofeishibai_1.png);
		height: 80px;
		padding-left: 120px;
		padding-top: 8px;
		background-size: auto 100%;
		background-repeat: no-repeat;
		background-position: 0 center;
	  }
	  .score-box2{
	  		color: #E56D27;
	  		background-image: url(../images/jiaofeishibai_2.png);
			height: 80px;
			padding-left: 120px;
			padding-top: 8px;
			background-size: auto 100%;
			background-repeat: no-repeat;
			background-position: 0 center;
	  }
	  .score-box3{
	  		color: #FEA13F;
	  		background-image: url(../images/jiaofeishibai_3.png);
			height: 80px;
			padding-left: 120px;
			padding-top: 8px;
			background-size: auto 100%;
			background-repeat: no-repeat;
			background-position: 0 center;
	  }
	  .score-box4{
	  		color: #18D6AA;
	  		background-image: url(../images/jiaofeishibai_4.png);
			height: 80px;
			padding-left: 120px;
			padding-top: 8px;
			background-size: auto 100%;
			background-repeat: no-repeat;
			background-position: 0 center;
	  }
	  .score-box5{
	  		color: #D0CFCD;
	  		background-image: url(../images/jiaofeishibai_5.png);
			height: 80px;
			padding-left: 120px;
			padding-top: 8px;
			background-size: auto 100%;
			background-repeat: no-repeat;
			background-position: 0 center;
	  }
      .score {
        font-size: 30px;
      }
@ -328,6 +378,9 @@
        color: #fff;
        background-color: #00bda8;
      }
	  .el-dialog--center .el-dialog__body{
		 text-align: center;
	  }
    </style>
  </head>
  <body>
@ -340,7 +393,7 @@
          </div>
          <div class="flex-box-item">
            筛查人员:
            <span v-text="doctorInfo.name"></span>
            <span v-text="userInfo.doctorName"></span>
          </div>
        </div>
        <div class="flex-box mb20">
@ -366,11 +419,11 @@
          </div>
          <div class="flex-box-item ui-grid">
            <div class="ui-col-0">筛查机构:</div>
            <div class="ui-col-1" v-text="doctorInfo.hospitalName"></div>
            <div class="ui-col-1" v-text="">{{userInfo.doctorHosptailName}}</div>
          </div>
        </div>
      </div>
      <div class="single-choice-question">
      <div class="single-choice-question" v-loading="isloading">
        <div class="question-title">问卷题目</div>
        <div class="question-content">
          <ul class="question-list" v-for="(qst,key,index) in answer">
@ -381,7 +434,7 @@
                  <span
                    class="pull-right"
                    v-text="qst.option.score+'分'"
                    v-if="userInfo.isThird != 1 && userInfo.isThird !=2"></span>
                    v-if="getScreenData.result.screen_result_score!=-1&&userInfo.isThird != 1 && userInfo.isThird !=2"></span>
                  <input
                    :type="qst.questionType==1?'checked':'radio'"
                    readonly="readonly"
@ -417,19 +470,23 @@
      </div>
      <div class="base-info">
        <div :class="userInfo.is_danger?'warning-text':'success-text'">
          <div class="score-box">
            <!-- 冠心病 评分改为文字提示-并删除评估报告-->
            <p class="f-16 mb0" v-if="userInfo.isThird != 1 && userInfo.isThird !=2">
              <span class="c-333">评分</span>
              <span class="score">
                <span v-text="result.screen_result_score"></span>
                <small>分</small>
              </span>
            </p>
            <p class="screen_result" v-text="result.screen_result"></p>
          </div>
        <div :class="userInfo.is_danger?'warning-text':'success-text'" v-if="result.screen_result_score!=-1">
			<div class="score-box">
				<p class="f-16 mb0" v-if="userInfo.isThird != 1 && userInfo.isThird !=2">
				  <span class="c-333">评分</span>
				  <span class="score">
					<span v-text="result.screen_result_score"></span>
					<small>分</small>
				  </span>
				</p>
				<p class="screen_result" v-text="result.screen_result"></p>
			</div>
        </div>
		<div v-else>
			<div v-if="userInfo.screen_result_code" :class="userInfo.screen_result_code==1?'score-box1':userInfo.screen_result_code==2?'score-box2':userInfo.screen_result_code==3?'score-box3':userInfo.screen_result_code==4?'score-box4':'score-box5'">
				<p class="mt10" style="font-size: 30px;" v-text="result.screen_result"></p>
			</div>
		</div>
      </div>
      <div class="calculation-score">
        <p class="f16 mb10">评估报告</p>
@ -453,22 +510,44 @@
          </div>
        </div>
      </div>
      <div class="clear-bottom" v-if="!isView || (userInfo.is_again==1 && userInfo.is_danger==1)">
        <div class="btn-group-bottom flex-box">
          <button class="btn bgc-2DBE55" @click="jkjy" v-if="result.doctorOtherAdvice || result.doctorAdvice">
            健康教育
          </button>
          <button class="btn bgc-FF9630" @click="sqsf" v-else-if="userInfo.disease==3">社区随访</button>
          <button class="btn bgc-FF9630" @click="jkzg" v-else>健康跟踪</button>
          <button
            class="btn bgc-12b7f5"
            v-if="userInfo.is_again&&(result.doctorOtherAdvice || result.doctorAdvice)"
            @click="reScreening">
            再次筛查
          </button>
          <button class="btn bgc-02cfb9" @click="referral">转诊</button>
        </div>
      </div>
	  <template v-if="docInfo.level=='2'&&!userInfo.survey_status">
		  <div class="clear-bottom" v-if="!isView || (userInfo.is_again==1 && userInfo.is_danger==1)">
			<div class="btn-group-bottom flex-box">
			  <button class="btn bgc-2DBE55" @click="jkjy" v-if="result.doctorOtherAdvice || result.doctorAdvice">
				健康教育
			  </button>
				  <button class="btn bgc-FF9630" @click="jkzg" v-else>健康跟踪</button>
			  <button
				class="btn bgc-12b7f5"
				v-if="userInfo.is_again&&(result.doctorOtherAdvice || result.doctorAdvice)"
				@click="reScreening">
				再次筛查
			  </button>
			  
			</div>
		  </div>
		  <div class="clear-bottom" v-if="userInfo.is_danger==0">
			  <div class="btn-group-bottom flex-box">
				<button class="btn" style="background-color: #12B7F5;color: #fff;"  @click="jkzd(userInfo)">健康指导</button>
			  </div>
		  </div>
	  </template>
	  <!-- 专科 已管理 待处理 已预约 已接诊-->
	  <template v-if="docInfo.level=='1'&&(userInfo.survey_status == 1||(userInfo.following == 0 && (userInfo.isOrder == 0 || userInfo.is_order == 0))||(userInfo.isOrder == 1 || userInfo.is_order == 1)||(userInfo.isOrder == 2 || userInfo.is_order == 2))">
			<div class="clear-bottom">
				<div class="btn-group-bottom flex-box">
					<button class="btn bgc-12b7f5" @click="lianxijiayi" >联系家医</button>
				</div>
			</div>
	  </template>
	  <template v-if="docInfo.level=='2'">
		  <div class="clear-bottom" v-if="!userInfo.survey_status&&userInfo.screen_result_score==-1&&(userInfo.isDanger == 1 || userInfo.is_danger == 1)&&(userInfo.following == 0 && (userInfo.isOrder == 0 || userInfo.is_order == 0))">
			  <div class="btn-group-bottom flex-box">
				  <button class="btn bgc-FF9630" @click="sqsf" >社区随访</button>
				  <button class="btn bgc-02cfb9" @click="referral">转诊</button>
			  </div>
		  </div>
	  </template>
      <div class="clear-bottom" v-if="(userInfo.is_order>=1)">
        <div class="btn-group-bottom text-center">
          <p class="c-12b7f5">{{userInfo.is_order==1?'已预约':'已接诊'}}</p>
@ -479,9 +558,15 @@
        <span>是否纳入本社区随访</span>
        <span slot="footer" class="dialog-footer">
          <el-button @click="centerDialogVisible = false">取 消</el-button>
          <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
          <el-button type="primary" @click="centerDialogClick">确 定</el-button>
        </span>
      </el-dialog>
	  <el-dialog title="家医联系方式" :visible.sync="jiayiShow" width="65%" center>
	    <span>如需联系家医,请拨打下方电话:<br> {{userInfo.doctorMobile}}</span>
	    <span slot="footer" class="dialog-footer">
	      <el-button type="primary" @click="jiayiShow = false">确 定</el-button>
	    </span>
	  </el-dialog>
    </div>
    <script src="../../../js/jquery-2.2.4.js" type="text/javascript" charset="utf-8"></script>
    <script src="../../../js/vue.js" type="text/javascript" charset="utf-8"></script>
@ -510,13 +595,38 @@
          doctorInfo: { code: wlyyAgent.uid },
          resultCode: httpData['resultCode'],
          isView: httpData['isView'] || false,
          dealAction: []
          dealAction: [],
		  getScreenData:'',
		  surveyResultCode:'',
		  isloading:false,
		  docInfo:JSON.parse(window.localStorage.getItem('docInfo')),
		  jiayiShow:false,
        },
        mounted: function () {
          this.getScreenResultDetail()
          this.getDoctorInfo()
        },
        methods: {
			lianxijiayi:function() {
				this.jiayiShow = true
			},
			centerDialogClick:function() {
				var vm = this
				var docInfo=JSON.parse(window.localStorage.getItem('docInfo'));
				this.centerDialogVisible = false
				vm.isloading = true
				jbscAPI.changeSurveyState({
					surveyResultCode:this.resultCode,   //问卷code
					surveyStatus:1,       //surveyStatus =1 社区随访--已管理    
					doctorCode:docInfo.code        //医生code
				}).then(function(res){
					if(res.status == 200) {
						top.layer.msg('操作成功')
						vm.isloading = false
						vm.getScreenResultDetail()
					}
				})
			},
          getDoctorInfo: function () {
            var vm = this
            var data = {
@ -547,6 +657,22 @@
                '../../article/html/article.html?code=' + this.userInfo.patient_code + '&resultCode=' + vm.resultCode
            })
          },
		  //健康指导
		  jkzd: function (data) {
		    top.layer.open({
		      type: 2,
		      //				  offset: ['100px'], //右下角弹出
		      area: ['80%', '648px'],
		      shade: 0.5,
		      title: '健康指导',
		      fixed: true, //不固定
		      maxmin: true,
		      closeBtn: 1,
		      shift: 5,
		      shadeClose: false, //点击遮罩关闭层
		      content: '../../guidance/html/index.html?patient=' + data.patientCode + '&resultCode=' + data.code
		    })
		  },
          jkzg: function () {
            var vm = this
            var index = top.layer.getFrameIndex(window.name) //先得到当前iframe层的索引
@ -583,34 +709,46 @@
              top.layer.close(loadding)
              if (res.status == 200) {
                var data = res.data
                console.log('ressaaaaaaaaaaaaaaaaaaa', res.data)
				vm.getScreenData = res.data
                data && ((vm.answer = data.answer), (vm.userInfo = data.info), (vm.result = data.result))
                data && data.info && data.info.code && vm.getHealth()
                data && (vm.specialDoctorName = data.specialDoctorName)
                var userInfo = data.info || []
                if (
                  (userInfo.isDanger == 1 || userInfo.is_danger == 1) &&
                  (userInfo.isAgain == 1 || userInfo.is_again == 1)
                ) {
                  //只有高危的筛查需要处理
                  if (userInfo.following == 1) {
                    vm.dealAction.push('已跟踪')
                  }
                  if (userInfo.isOrder == 1 || userInfo.is_order == 1) {
                    vm.dealAction.push('已预约')
                  }
                  if (userInfo.isOrder == 2 || userInfo.is_order == 2) {
                    vm.dealAction.push('已接诊')
                  }
                  if (userInfo.following == 0 && (userInfo.isOrder == 0 || userInfo.is_order == 0)) {
                    vm.dealAction.push('待处理')
                  }
                  if (userInfo.isDanger == 0 || userInfo.is_danger == 0) {
                    vm.dealAction.push('日常健康管理')
                  }
                } else {
                  vm.dealAction.push('')
                }
				vm.dealAction = []
				
				if(!userInfo.survey_status) {
					if (
					  (userInfo.isDanger == 1 || userInfo.is_danger == 1) 
					  // (userInfo.isAgain == 1 || userInfo.is_again == 1)
					) {
					  //只有高危的筛查需要处理
					  if (userInfo.following == 1) {
						vm.dealAction.push('已跟踪')
					  }
					  if (userInfo.isOrder == 1 || userInfo.is_order == 1) {
						vm.dealAction.push('已预约')
					  }
					  if (userInfo.isOrder == 2 || userInfo.is_order == 2) {
						vm.dealAction.push('已接诊')
					  }
					  if (userInfo.following == 0 && (userInfo.isOrder == 0 || userInfo.is_order == 0)) {
						vm.dealAction.push('待处理')
					  }
					 //  if (userInfo.isDanger == 0 || userInfo.is_danger == 0) {
						// vm.dealAction.push('日常健康管理')
					 //  }
				  } else {
					vm.dealAction.push('日常健康管理')
				  }
				}else{
					if (userInfo.survey_status == 1) {
						vm.dealAction.push('已管理')
					}
					if (userInfo.survey_status == 2) {
						vm.dealAction.push('住院补筛')
					}
				}
                
                vm.dealAction = vm.dealAction.join(',')
                if (data.info.third_source && data.info.third_source != 4) {
                  for (let i in vm.answer) {

BIN
app/jbsc/images/jiaofeishibai_1.png


BIN
app/jbsc/images/jiaofeishibai_2.png


BIN
app/jbsc/images/jiaofeishibai_3.png


BIN
app/jbsc/images/jiaofeishibai_4.png


BIN
app/jbsc/images/jiaofeishibai_5.png


BIN
app/jbsc/images/saixuan_icon.png


+ 2 - 2
app/jbsc/js/api-service.js

@ -14,7 +14,8 @@
		imgUrlDomain = "http://www.xmtyw.cn/"; //正式环境
		serverWlyy = "http://www.xmtyw.cn/wlyy"
	} else {
		 server = "https://www.xmtyw.cn/wlyytest"//测试
		 // server = "https://www.xmtyw.cn/wlyytest"//测试
		 server = "http://172.26.0.118:8081/wlyy/";   //ip
		//  server = "http://192.168.131.243:8180"//培强
//       server = "http://192.168.131.123:8180/wlyy_manager" // 文杰
//       server = "http://192.168.131.144:8180/wlyy_manager" // 冬梅
@ -193,7 +194,6 @@
		findByPatient: function(data) {
			return httpPost('/doctor/patient_label_info/patient',{data: data})
		},
		captchaWithDoctor: function(doctorCode, data) {
			return httpPost('/doctor/captcha/withDoctorCode/'+ doctorCode,{data: data})
		},

+ 98 - 6
app/jbsc/js/statistics.js

@ -21,6 +21,8 @@ function showInfoMessage(msg) {
    icon: 6
  })
}
new Vue({
  el: '#app',
  data: {
@ -38,19 +40,69 @@ new Vue({
    Statics: {},
    wujilu: false,
    datamodelshow: true,
    centerDialogVisible: false
    centerDialogVisible: false,
	surveyResultCode:"",
	isloading:false,
	docInfo:JSON.parse(window.localStorage.getItem('docInfo')),
	jiayiShow:false,
	doctorMobile:'',
  },
  created:function() {
	
  },
  mounted: function () {
    var vm = this
    vm.getModal()
    vm.getDatas()
	// 专科
	if(vm.docInfo.level == '1') {
		vm.getList()
	}else{
		vm.getDatas()
	}
    vm.gettypes()
	parent.eventBuss.$on('guan_results',function(index){
		top.layer.close(index)
		if(vm.docInfo.level == '1') {
			vm.getList()
		}else{
			vm.getDatas()
		}
		vm.getModal()
	})
  },
  methods: {
	lianxijiayi:function(data) {
		this.doctorMobile = data.doctorMobile
		this.jiayiShow = true
	},
	centerDialogClick:function() {
		var vm = this
		var docInfo=JSON.parse(window.localStorage.getItem('docInfo'));
		this.centerDialogVisible = false
		vm.isloading = true
		jbscAPI.changeSurveyState({
			surveyResultCode:this.surveyResultCode,   //问卷code
			surveyStatus:1,       //surveyStatus =1 社区随访--已管理    
			doctorCode:docInfo.code        //医生code
		}).then(function(res){
			if(res.status == 200) {
				showSuccessMessage('操作成功')
				vm.isloading = false
				if(vm.docInfo.level == '1') {
					vm.getList()
				}else{
					vm.getDatas()
				}
				vm.getModal()
			}
		})
	},
    //获取筛查数据模型
    getModal: function () {
      var vm = this
      jbscAPI.screenStatics().then(function (res) {
      jbscAPI.screenStatics({
		  type:vm.docInfo.level==1?"2":'1' //  类型 1全科 2专科(默认1)
	  }).then(function (res) {
        if (res.status == 200) {
          vm.Statics = res.data
        } else {
@ -83,6 +135,31 @@ new Vue({
        }
      })
    },
	getList:function() {
		var vm = this
		var params = {
			doctor: vm.docInfo.code, //专科医生code
            diseaseType: vm.type, //疾病类型
            type: vm.status, //处理方式(全部为空 1已预约 2已跟踪 3已接诊4待处理)
            patientName: vm.name, //搜索居民的姓名
            isDanger: vm.isDanger, //是否高危预警(''否 1是 0日常健康管理)
            pageNo: vm.currentPage,
            pageSize: vm.pagesize
		}
		jbscAPI.getList(params).then(function (res) {
		  if (res.status == 200) {
		    vm.wujilu = false
		    vm.total = res.total?res.total:'0'
		    vm.pagetotal = Math.ceil(res.total / vm.pagesize)
		    vm.tablelist = res.data
		    if (vm.tablelist.length == 0) {
		      vm.wujilu = true
		    }
		  } else {
		    showErrorMessage(res.msg)
		  }
		})
	},
    gettypes: function () {
      var vm = this
      var search = true
@ -199,7 +276,11 @@ new Vue({
        vm.status = status
      }
      vm.currentPage = page
      vm.getDatas()
	  if(vm.docInfo.level == '1') {
	  	vm.getList()
	  }else{
	  	vm.getDatas()
	  }
    },
    //转诊
    zhuanzhen: function (data) {
@ -252,6 +333,7 @@ new Vue({
      //		location.href="../../../../health-education/login.html?origin=jbsc"
    },
    view: function (data) {
		var vm = this
      layer.open({
        type: 2,
        //				  offset: ['100px'], //右下角弹出
@ -263,7 +345,16 @@ new Vue({
        closeBtn: 1,
        shift: 5,
        shadeClose: false, //点击遮罩关闭层
        content: '../../jbsc/html/view_screening_results.html?isView=true&resultCode=' + data.code
        content: '../../jbsc/html/view_screening_results.html?isView=true&resultCode=' + data.code,
		end:function() {
			vm.tablelist = []
			if(vm.docInfo.level == '1') {
				vm.getList()
			}else{
				vm.getDatas()
			}
			vm.getModal()
		},
      })
    },
    //筛查
@ -341,8 +432,9 @@ new Vue({
        }
      })
    },
    sqsf: function () {
    sqsf: function (item) {
      var vm = this
	  vm.surveyResultCode = item.code
      vm.centerDialogVisible = true
    }
  }

+ 1 - 1
app/statistics/js/comprehensive-query.js

@ -1462,7 +1462,7 @@ new Vue({
				team:vm.teamCode, 
				area:vm.areaCode=='350200'?'':vm.areaCode,   //地区
				range:vm.rangeCode,      //数据范围(town区传值area,hospital医院传值hospital,team团队传值team) 
				hospital:'', //医院
				hospital:vm.communityCode, //医院
				pageSize:vm.currentSize,
				page:vm.currentPage,
			}

+ 8 - 4
component/guidance/person-edit-panel.js

@ -1,7 +1,7 @@
var PersonEditPanel = {
  template:
    '<div>\
    			<div style="height: 34px;" >\
    '<div v-loading="isloading">\
    			<div style="height: 34px;">\
		    		指导模板\
		    		<div class="save-btn ml10" @click="save" v-show="sendMode">\
		    		保存\
@ -70,7 +70,9 @@ var PersonEditPanel = {
      imgs: [],
      modelCode: '',
      editable: true,
      sendMode: false // 根据url中是否携带patient来判断是否是"发送"模式
      sendMode: false, // 根据url中是否携带patient来判断是否是"发送"模式
	  isloading:false,
	  
    }
  },
  mounted: function () {
@ -180,6 +182,7 @@ var PersonEditPanel = {
        content: '发出后无法变更,是否确认发送给居民?',
        okValue: '继续发送',
        ok: function () {
		vm.isloading = true
          guidanceAPI
            .sendTemplate({
              patient: storage.patient,
@ -188,6 +191,7 @@ var PersonEditPanel = {
              images: vm.imgs.join(',')
            })
            .then(function (res) {
				vm.isloading = false
              toastr && toastr.success('发送成功')
              var obj = {
@ -208,7 +212,7 @@ var PersonEditPanel = {
                    var index = parent.layer && parent.layer.getFrameIndex(window.name) //先得到当前iframe层的索引
                    parent.layer && parent.layer.close(index)
                  } else {
                    toastr && toastr.success(res.msg)
                    // toastr && toastr.success(res.msg)
                  }
                })
            })

+ 3 - 1
component/guidance/person-panel.js

@ -26,7 +26,9 @@ Vue.component('person-panel', {
    created: function() {
    	var vm = this
		EventBus.$on('refresh-person-panel',function() {
			vm.throttledTempList()
			vm.pageNo = 1
			vm.items = []
			vm.guidanceTempList()
		})
    },
    mounted: function() {

+ 1 - 1
plugins/artDialog/6.0.5/api/css/ui-dialog.min.css

@ -88,7 +88,7 @@ overflow: hidden; width: 32px; height: 32px; top: 50%; margin: -16px auto 0 auto
.ax-popup .ui-dialog-footer { border-top: 1px solid #e1e1e1; padding: 0; text-align: center; border-radius: 0 0 10px 10px; overflow: hidden; }
.ax-popup .ui-dialog-button { float: none; width: 100%; white-space: nowrap; display: -webkit-box; display: box; }
.ax-popup .ui-dialog-footer button { display: box; display: -webkit-box; -webkit-box-flex: 1; box-flex: 1; box-sizing: border-box; -webkit-box-sizing: border-box; padding: 0; margin: 0; height: 44px; font-size: 17px; font-weight: normal; color: #167efb; cursor: pointer; background: none; border: 0; text-align: center !important; border-left: 1px solid #e1e1e1; border-radius: 0; outline: 0; }
.ax-popup .ui-dialog-footer button span { display: block; width: 100%; text-align: center; }
.ax-popup .ui-dialog-footer button span { display: block; width: 186px; text-align: center; }
.ax-popup .ui-dialog-footer button + button { margin-bottom: 0; margin-left: 0; }
.ax-popup .ui-dialog-footer button.ui-dialog-autofocus { color: #167efb; background-color: #fff; border: 0; border-left: 1px solid #e1e1e1; }
.ax-popup .ui-dialog-footer button:first-child { border: 0; border-bottom-left-radius: 10px; }

+ 1 - 1
plugins/artDialog/6.0.5/css/ui-dialog.min.css

@ -88,7 +88,7 @@ overflow: hidden; width: 32px; height: 32px; top: 50%; margin: -16px auto 0 auto
.ax-popup .ui-dialog-footer { border-top: 1px solid #e1e1e1; padding: 0; text-align: center; border-radius: 0 0 10px 10px; overflow: hidden; }
.ax-popup .ui-dialog-button { float: none; width: 100%; white-space: nowrap; display: -webkit-box; display: box; }
.ax-popup .ui-dialog-footer button { display: box; display: -webkit-box; -webkit-box-flex: 1; box-flex: 1; box-sizing: border-box; -webkit-box-sizing: border-box; padding: 0; margin: 0; height: 44px; font-size: 17px; font-weight: normal; color: #17b3ec; cursor: pointer; background: none; border: 0; text-align: center !important; border-left: 1px solid #e1e1e1; border-radius: 0; outline: 0; }
.ax-popup .ui-dialog-footer button span { display: block; width: 100%; text-align: center; }
.ax-popup .ui-dialog-footer button span { display: block; width: 186px; text-align: center; }
.ax-popup .ui-dialog-footer button + button { margin-bottom: 0; margin-left: 0; }
.ax-popup .ui-dialog-footer button.ui-dialog-autofocus { color: #17b3ec; background-color: #fff; border: 0; border-left: 1px solid #e1e1e1; }
.ax-popup .ui-dialog-footer button:first-child { border: 0; border-bottom-left-radius: 10px; }