123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- <link rel="stylesheet" href="../../../css/bootstrap.min.css" />
- <link rel="stylesheet" type="text/css" href="../../../css/style.min.css"/>
- <link rel="stylesheet" type="text/css" href="../../../css/cross.css"/>
- <style type="text/css">
- [v-cloak]{display: none;}
- .flex-box{display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6 */ /* OLD - Firefox 19- (buggy but mostly works) */
- display: -ms-flexbox; /* TWEENER - IE 10 */ /* NEW - Chrome */
- display: flex; /* NEW, Spec - Opera 12.1, Firefox 20+ */
- -webkit-box-pack: center;
- -ms-flex-pack: center;
- justify-content: center;
- -webkit-box-align: center;
- -ms-flex-align: center;
- align-items: center;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap;
- }
- .flex-box-item{-webkit-box-flex: 1; /* OLD - iOS 6-, Safari 3.1-6 */
- -moz-box-flex: 1; /* OLD - Firefox 19- */
- -webkit-flex: 1; /* Chrome */
- -ms-flex: 1; /* IE 10 */
- width: 50%; /* For old syntax, otherwise collapses. */
- flex: 1; /* NEW, Spec - Opera 12.1, Firefox 20+ */
- position: relative;}
- .icon{width: 12px;height: 12px;vertical-align: middle;background-size: 100% auto;background-repeat: no-repeat;display: inline-block;background-position: center center;}
- .icon-arrow-down{background-image: url(../images/icon/tiaozhuan_xia_icon.png);}
- .icon-gouxuan{background-image: url(../images/icon/gouxuan_lanse_icon.png);}
- .icon-check,.icon-arrow-down{transition: all .3s ease-in-out;}
- .active .icon-check,.collapsed .icon-arrow-down{transform: rotateZ(180deg);}
- .icon-check{background-image: url(../images/icon/zhankai_btn.png);}
- .icon-16{width: 16px;height: 16px;}
- .icon-18{width: 18px;height: 18px;}
- .record-list{max-height: 0;overflow: hidden;transition: all .3s linear;}
- .record-list.active{max-height: 500px;}
- .record-item{background-color: #f5f5fa;margin-bottom: 10px;padding: 10px;}
- .service-top{font-size: 0;line-height: 1;font-weight: 500;}
- .service-name span{vertical-align: middle;font-size: 16px;}
- .service-name span+span{margin-left: 10px;}
- .service-name{line-height: 1.5;margin-bottom: 0;}
- .service-index{border: 1px solid #12b7f5;width: 16px;line-height: 1;height: 16px;font-size: 14px;display: inline-block;text-align: center;color: #12b7f5;}
- .label-group{padding-left: 26px;}
- .label-group span{color: #12b7f5;font-size: 14px;line-height: 1;margin-top: 10px;}
- .label-blue{border-radius: 5px;border: solid 1px #12b7f5;padding: 4px 15px;display: inline-block;margin-right: 27px;}
- .panel-body{padding: 20px;font-size: 14px;color: #999;}
- .panelcurPage{border-bottom: 1px solid #d7dce6;}
- .service-content{line-height: 30px;padding-bottom: 15px;}
- .service-address{border-bottom: 1px solid #d7dce6;}
- .btn-yuyue{background-color: #02cfb9;color: #fff;}
- .btn-yuyue:hover,.btn-yuyue:link{color: #fff;background-color: #01c1ad;}
- .btn-fuwuma{background-color: #2dbe55;color: #fff;}
- .btn-fuwuma:hover,.btn-fuwuma:link{color: #fff;background-color: #209440;}
- .btn-zhidao{background-color: #12b7f5;color: #fff;}
- .btn-zhidao:hover,.btn-zhidao:link{color: #fff;background-color: #10a0d6;}
- .service-operation .btn{width: 90px;}
- .view-detail{color: #12b7f5;cursor: pointer;}
- .yslb>span:after{content: '、';}
- .yslb>span:last-child:after{display: none;}
- .btns-group{padding-left: 20px;}
- .btns-group .btn{margin-right: 20px;}
- .fuwuma-model{position: fixed;top: 0;left: 0;right: 0;bottom: 0;z-index: 9;}
- .fuwuma-layer{position: absolute;top: 0;left: 0;right: 0;bottom: 0;background-color: rgba(0,0,0,.35);}
- .fuwuma-content{width: 260px;height: 260px;top: 50%;position: absolute;margin-top: -130px;left: 50%;margin-left: -130px;}
- .fuwuma-content img{width: 100%;display: block;}
- </style>
- </head>
- <body>
- <div class="panel-group" id="app" v-cloak role="tablist" aria-multiselectable="true">
- <div class="panelcurPage" v-for="(service,index) in serviceData">
- <div class="panel-heading" role="tab" @click="changeCollapseIndex(index)">
- <h4 class="panel-title">
- <a role="button" class="flex-box">
- <div class="flex-box-item service-top">
- <p class="service-name"><span class="service-index">{{index+1}}</span><span>{{service.title}}</span></p>
- <div class="label-group">
- <span class="pull-right mt5"><i v-if="service.statusName=='已完成'" class="icon icon-gouxuan icon-18 mr5"></i>{{service.statusName}}</span>
- <span class="label-blue">{{service.shortExecuteTime}}</span>
- <span class="label-blue" v-for="doctor in service.executeDoctorList">{{doctor}}</span>
- </div>
- </div>
- <span class="icon icon-arrow-down ml50"></span>
- </a>
- </h4>
- </div>
- <div class="panel-collapse collapse" :class="{in:collapseIndex==index}" role="tabpanel" aria-labelledby="headingOne">
- <div class="panel-body">
- <div class="service-content">{{service.content}}</div>
- <div class="service-address ptb20">
- <div class="flex-box">
- <div class="flex-box-item">
- <p class="m0">地点:{{service.hospitalName}}</p>
- <p class="m0">时间:{{service.executeTime | formatDate}}</p>
- </div>
- <div class="flex-box-item">
- <p class="m0 yslb">执行:<span v-for="(doctor,index) in service.executeDoctorList">{{doctor}}</span></p>
- <p class="m0">收费:{{service.expense}}元</p>
- </div>
- </div>
- </div>
- <div class="service-operation pt10">
- <p><span class="pull-right view-detail" :class="{active:isCollapse}" @click="chakan"><i class="icon icon-check mr5 icon-16"></i>{{isCollapse?'收起详情':'查看详情'}}</span>指导与汇报记录</p>
- <div class="record-list" :class="{active:isCollapse}">
- <div class="record-item" v-for="item in service.messageList">
- <div class="flex-box c-999 f14">
- <div class="flex-box-item">
- {{item.adminTeamName}}
- </div>
- <div class="flex-box-item">
- {{item.createTime}}
- </div>
- </div>
- <div class="f14 c-333">{{item.content}}f</div>
- </div>
- </div>
- <div class="flex-box btns-group">
- <!--<button class="btn btn-yuyue" v-if="service.itemType==0 && service.operate!=1">上传附件</button>-->
- <button class="btn btn-yuyue" v-if="service.itemType==2 && service.operate!=1" @click="jkjy(service.patient,service.planDetaiId)">健康教育</button>
- <button class="btn btn-yuyue" v-if="service.itemType==3 && service.operate!=1" @click="zwkf">健康指导</button>
- <button class="btn btn-yuyue" v-if="service.itemType==4 && service.operate!=1" @click="zwkf">随访</button>
- <button class="btn btn-zhidao" @click="zdly(service)">指导留言</button>
- <button class="btn btn-fuwuma" v-if="service.itemType==1 && service.operate!=1" @click="fwm(service.planDetaiId)">服务码</button>
- <!--<button class="btn btn-fuwuma" @click="fwm(service.planDetaiId)">服务码</button>-->
- <button class="btn btn-fuwuma" v-if="service.operate==1" @click="goToFinish(service.planDetaiId)">完成</button>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="fuwuma-model" v-show="qrModal">
- <div class="fuwuma-layer" @click="qrModal=false"></div>
- <div class="fuwuma-content">
- <img :src="qrCode" width="300px" />
- </div>
- </div>
- </div>
- <script type="text/javascript" src="../../../js/vue.js"></script>
- <script type="text/javascript" src="../../../js/jquery-2.2.4.js"></script>
- <script type="text/javascript" src="../../../api/http-request.js"></script>
- <script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
- <script src="../../../js/util.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript">
- !function(){
- var httpData=GetRequest();
- var userInfo = JSON.parse(window.localStorage.getItem(httpRequest.agentName));
- window.serviceItem=new Vue({
- el:"#app",
- data:{
- planids:httpData['planids'],
- serviceData:[],
- isCollapse :false,
- collapseIndex:0,
- qrCode:'',
- qrModal:false,
- },
- mounted:function(){
- this.getServiceItemList();
- },
- methods:{
- chakan:function(){
- this.isCollapse=!this.isCollapse;
- },
- changeCollapseIndex:function(idx){
- this.collapseIndex=idx;
- },
- //获取服务列表
- getServiceItemList:function(){
- var vm=this;
- var loadding = top.layer.load(0, {shade: false}); //0代表加载的风格,支持0-2
- rehaAPI.serviceItemList({planDetailIds:vm.planids}).then(function(res){
- top.layer.close(loadding);
- if(res.status==200){
- vm.serviceData=res.data;
- }else{
- top.layer.msg(res.msg,{icon:5});
- }
- })
- },
- //健康教育
- jkjy:function(patient,planId){
- var vm=this
- top.layer.open({
- type: 2,
- // offset: ['100px'], //右下角弹出
- area: ['800px', '648px'],
- shade: 0.5,
- title: '健康教育',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: '../../article/html/article.html?code='+patient+'&planId='+planId+'&isReha=true'
- });
- },
- // 暂未开放
- zwkf:function(){
- top.layer.msg('此功能暂未开放',{icon:1});
- },
- goToFinish:function(planid){
- top.layer.open({
- type: 2,
- // offset: ['100px'], //右下角弹出
- area: ['600px', '650px'],
- shade: 0.5,
- title: '完成项目确认',
- fixed: true, //不固定
- maxmin: true,
- closeBtn:1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: '../../rehabilitation/html/guide_the_message.html?planid='+planid
- });
- },
- fwm:function(planid){
- this.loadSocket(planid);
- },
- zdly:function(data){
- var loginDoctor = JSON.parse(window.localStorage.getItem('wlyyAgent'));
- var otherCode,otherName;
- var planDetailId=data.planDetaiId;
- if(loginDoctor.doctorType==1){
- otherCode=data.familyDoctorCode;
- otherName=data.familyDoctorName;
- }else{
- otherCode=data.specialistDoctorCode;
- otherName=data.specialistDoctorName;
- }
- top.layer.open({
- type: 2,
- // offset: ['100px'], //右下角弹出
- area: ['800px', '650px'],
- shade: 0.5,
- title: '指导留言',
- fixed: true, //不固定
- maxmin: true,
- closeBtn:1,
- shift: 5,
- content: '../../consulting/html/consulting.html?otherCode='+otherCode+'&otherName='+encodeURI(otherName)+'&planDetailId='+planDetailId
- });
- },
- loadSocket:function(planid){
- var vm=this;
- var imurl=httpRequest.socketUrl;
- jQuery.getScript(imurl+"/socket.io/socket.io.js").done(function() {
- var type=2;//咨询类型
- var socket = io.connect(imurl);
- var sessionId = 'system';
- socket.emit('login', {userId: userInfo.uid, password: userInfo.uid,sessionId:sessionId,clientType:"doctor"});
- socket.on('message', function (data) {
- console.log(data);
- if(data.type==0){
- vm.checkAfterQrCode(planid);
- }
- });
-
- socket.on('error', function (data) {
- console.log(data);
- });
-
- socket.on('ack', function (data) {
- console.log(data);
- vm.getQRCode(planid);
- });
- function getLocalTime(nS) {
- return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
- }
- })
- .fail(function() {
- top.layer.msg('服务码创建失败',{icon:5});
- });
- },
- checkAfterQrCode:function(planid){
- var vm=this;
- rehaAPI.checkAfterQrCode(params).then(function(res){
- var icon=5;
- if(data.status==200){
- if(data.data){
- icon=1;
- vm.goToFinish(planid);
- }
- }
- top.layer.msg(res.msg,{icon:icon});
- })
- },
- getQRCode:function(planid){
- var vm=this;
- var params={
- planDetailId:planid,
- sessionId: 'system'
- }
- rehaAPI.createServiceQrCode(params).then(function(res){
- console.log(res);
- if(res.status==200){
- vm.qrCode=res.data;
- setTimeout(function(){
- vm.qrModal=true;
- },100)
- }else{
- top.layer.msg('服务码获取失败',{icon:5});
- }
- })
-
- }
- },
- filters:{
- formatDate:function(value, format) {
- if(!value) return ;
- var fmt=format || "yyyy-MM-dd hh:mm";
- var date = new Date(value);
- if (/(y+)/.test(fmt)) {
- fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
- }
- let o = {
- 'M+': date.getMonth() + 1,
- 'd+': date.getDate(),
- 'h+': date.getHours(),
- 'm+': date.getMinutes(),
- 's+': date.getSeconds()
- };
- for (let k in o) {
- if (new RegExp(`(${k})`).test(fmt)) {
- let str = o[k] + '';
- fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
- }
- }
- return fmt;
- }
- }
- })
- }()
- </script>
-
- </body>
- </html>
|