1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066 |
- var currentGMT=new Date();//当前时间GMT
- function showSuccessMessage(msg) {
- layer.msg(msg, {
- icon: 1
- })
- }
- function showSuccessMessage(msg) {
- layer.msg(msg, {
- icon: 1
- })
- }
- function showErrorMessage(msg) {
- layer.msg(msg, {
- icon: 5
- })
- }
- function showWarningMessage(msg) {
- layer.msg(msg, {
- icon: 2
- })
- }
- function showInfoMessage(msg) {
- layer.msg(msg, {
- icon: 6
- })
- }
- var previewLayerIndex, followupLayerIndex, KFZDlayerIndex;
- function closeFollowUpLayer(planDetaiId, relationCode, flag){
- if($.isArray(relationCode)) {
- $.each(relationCode, function(index, item){
- _vm.saveRehabilitationOperateRecord(planDetaiId, 6, item, flag)
- })
- } else {
- _vm.saveRehabilitationOperateRecord(planDetaiId, 6, relationCode, flag)
- }
- layer.close(followupLayerIndex)
- }
- function closeKFZDlayer(planDetaiId, relationRecordId){
- layer.close(KFZDlayerIndex)
- _vm.saveRehabilitationOperateRecord(planDetaiId, 5)
- }
- function closeKFZD(){
- layer.close(KFZDlayerIndex)
- _vm.initData()
- }
- var _vm
- Vue.component('server-items-detail', {
- template: '<div class="p15 ui-grid ui-grid-vertical" style="height:calc(100%);position: relative;">\
- <div class="icon-group">\
- <i class="icon-edit el-icon-edit-outline mr15" @click="goToEditConfig"></i>\
- <i class="icon-close el-icon-close" @click="onClose"></i>\
- </div>\
- <div class="c-t-center c-f18 c-333 mt15">服务内容-{{service.title}}</div>\
- <div class="c-t-center c-f17 c-666 mt10">{{patientname}}患者{{service.title}}计划</div>\
- <div class="c-333 ptb10 c-f17 mt10">指导留言</div>\
- <div @click="zdly(service)">\
- <div class="c-f14 c-666" v-if="!message.isImg" >{{message.content}}</div>\
- <div class="mt10" v-else><img :src="message.content" @click.stop="previewImg(message.content)" style="width:60px;height:60px;" :data-preview-src="message.content" data-preview-group="1"/></div>\
- </div>\
- <div v-if="islimit" class="mtb10 ui-grid">\
- <div class="ui-col-1">\
- <i class="icon icon-prev icon-20" @click="preMonth"></i>\
- <span class="currentDay">{{currentDay}}</span>\
- <i class="icon icon-next icon-20" @click="nextMonth"></i></span>\
- </div>\
- <div class="pull-right switch-list" style="text-align:center">\
- <span class="rili" :class="{active:(tabStatus==1)}" @click="tabStatus=1"><i class="icon icon-rili icon-20"></i></span>\
- <span class="shijianzhou" :class="{active:(tabStatus==2)}" @click="tabStatus=2"><i class="icon icon-liebiao icon-20"></i></span>\
- </div>\
- </div>\
- <div v-if="islimit&&tabStatus==1" class="ui-col-1" style="overflow: hidden; overflow-y: scroll;">\
- <div class="calendar-week">\
- <div class="flex-box text-center">\
- <div class="flex-box-item">周一</div>\
- <div class="flex-box-item">周二</div>\
- <div class="flex-box-item">周三</div>\
- <div class="flex-box-item">周四</div>\
- <div class="flex-box-item">周五</div>\
- <div class="flex-box-item">周六</div>\
- <div class="flex-box-item">周日</div>\
- </div>\
- </div>\
- <div class="calendar-days">\
- <div v-for="items in calendarData" class="flex-box">\
- <div class="calendar-day" v-for="item in items" @click="viewDetail(item.planDetailIds)" :is-future="item.future">\
- <span class="day-number">{{item.day}}</span>\
- <div class="task-icon">\
- <i v-if="item.myTaskFlag" class="icon icon-flag icon-20"></i>\
- <i v-if="item.finishFlag" class="icon icon-check"></i>\
- </div>\
- <div class="coloured-box">\
- <span v-if="item.specialist" class="coloured-ribbon coloured-ribbon-blue">专<br />科</span>\
- <span v-if="item.family" class="coloured-ribbon coloured-ribbon-green">家<br />医</span>\
- </div>\
- <div class="progress-box">\
- <div class="progress" :style="{opacity:item.specialist?\'1\':\'0\'}">\
- <span>{{(item.specialist && item.specialist.finish)}}/{{(item.specialist && item.specialist.all)}}</span>\
- <div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" :style="{width: (item.specialist?(item.specialist.finish/item.specialist.all):0)*100+\'%\'}"></div>\
- </div>\
- <div class="progress" :style="{opacity:item.family?\'1\':\'0\'}">\
- <span>{{(item.family && item.family.finish)}}/{{(item.family && item.family.all)}}</span>\
- <div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="2" aria-valuemin="0" aria-valuemax="100" :style="{width: (item.family?(item.family.finish/item.family.all):0)*100+\'%\'}"></div>\
- </div>\
- <p v-if="!item.noService" class="mb0 f12" :class="{\'visibility-hide\':!curTask}" style="line-height: 1;">{{curTaskName || \' \'}}</p>\
- </div>\
- <p v-if="item.noService" class="no-server">无服务项</p>\
- </div>\
- </div>\
- </div>\
- </div>\
- <div v-show="tabStatus==2" class="ui-col-1 mt10" style="overflow-y: auto">\
- <div class="time-axis">\
- <div>\
- <table class="table">\
- <tr>\
- <th style="padding-right: 50px;text-align: right;">时间</th>\
- <th>项目</th>\
- <th>执行人员</th>\
- <th>执行地点</th>\
- <th class="text-center">相关记录</th>\
- <th class="text-center">状态</th>\
- </tr>\
- <tr v-for="item in timeAxisData" :is-future="item.future">\
- <td class="time text-right time-box">\
- <p class="mb5">{{item.date}}</p>\
- <p class="mb0">{{item.time}}</p>\
- <span class="cur-status">{{item.html}}</span>\
- </td>\
- <td class="project-name mw400">\
- <p class="mt10">{{item.name}}</p>\
- <p class="ellipsis mb0">{{item.content}}</p>\
- </td>\
- <td class="executor">{{item.doctorName}}</td>\
- <td class="place-of-execution">{{item.hospitalName}}</td>\
- <td class="view-task" @click="onViewDetail(item,1)">查看</td>\
- <td class="task-status" :class="item.future==-1?\'c-ff3b30\':(item.status==0?\'c-666\':\'\')">{{item.status==0?\'未完成\':(item.status==1?\'已完成\':\'已预约\')}}</td>\
- </tr>\
- <tr v-if="!timeAxisData.length">\
- <td colspan="6" class="f16 ptb10 text-center">\
- <img src="../../../images/wushuju_img.png" class="mt50"/>\
- <p class="c-666">暂无数据</p>\
- </td>\
- </tr>\
- </table>\
- </div>\
- </div>\
- </div>\
- <div v-if="docInfo.doctorType==1" class="c-t-center mt15">\
- <button v-if="!islimit&&service.executeDoctorCode!=docInfo.uid" class="btn btn-12b7f5" @click="zdly(service)">指导留言</button>\
- </div>\
- <div v-else-if="!islimit" class="c-t-center mt15">\
- <button v-if="service.isMyTask" class="btn btn-12b7f5" @click="zdly(service)">查看留言</button>\
- <button v-if="service.isMyTask&&service.type==\'1\'" class="btn btn-yuyue" @click="addCompleteRecord()">添加完成记录</button>\
- <button v-if="service.isMyTask&&service.type==\'4\'" class="btn btn-yuyue" @click="sendSpecialistWeixinMessage(planDetaiId,4)">发送提醒</button>\
- <button v-if="service.isMyTask&&service.type==\'4\'" class="btn btn-12b7f5" @click="toDoorDialog">代预约</button>\
- <button v-if="service.isMyTask&&service.type==\'5\'" class="btn btn-yuyue" @click="kfzd()">发送康复指导</button>\
- <button v-if="service.isMyTask&&service.type==\'6\'" class="btn btn-yuyue" @click="sfjh()">创建随访计划</button>\
- <button v-if="service.isMyTask&&service.type==\'7\'" class="btn btn-yuyue" @click="sendSpecialistWeixinMessage(planDetaiId,7)">发送提醒</button>\
- <button v-if="service.isMyTask&&service.type==\'7\'" class="btn btn-12b7f5" @click="qwapp">代预约</button>\
- </div>\
- <div id="completeRecord" style="display: none; padding: 15px 15px 0;">\
- <div class="note-info pt10">\
- <p class="f14 c-333">服务完成笔记</p>\
- <textarea class="form-control" style="resize: none;" rows="4" placeholder="可备注您的服务记录" v-model="node"></textarea>\
- </div>\
- <div class="note-info ptb10">\
- <p class="f14 c-333">相关记录</p>\
- <ul class="upload-box">\
- <li class="flex-box" v-for="(img,index) in upImgs">\
- <div class="upload-img-box">\
- <img :src="img.baseUrl" @click="previewImg(img.baseUrl)"/>\
- </div>\
- <a class="delete-img" @click="deleteImg(index)">×</a>\
- </li>\
- <li class="flex-box" v-if="upImgs.length<5">\
- <span class="add-img">+</span>\
- <input type="file" @change="upLoadImgToBase64" class="upload-img" />\
- </li>\
- </ul>\
- </div>\
- </div>\
- </div>',
- props: ['patientname','patientcode', 'planid', 'plandetailid'],
- data: function() {
- return {
- ynow: currentGMT.getFullYear(),//年份
- mnow: currentGMT.getMonth(),//月份(比实际少一个月---0开始至11)
- dnow: currentGMT.getDate(),//当前日
- currentDay:null,//带中文格式的当前年月
- calendarData:[],//日历数据
- timeAxisData: [], //时间轴数据
- tabStatus: 1,
- title: '',
- docInfo: JSON.parse(window.localStorage.getItem('wlyyAgent')),
- upImgs: [],
- upImgArr: [],
- imgData: {
- accept: 'image/gif, image/jpeg, image/png, image/jpg',
- },
- node: '',
- layerIndex: undefined,
- planDetaiId:'',
- service:{
- relationRecordImg:{},
- messageList:{},
- },
- message:{isImg:false,content:""},
- islimit: false,
- relationRecordId: null
- }
- },
- watch:{
- tabStatus:function(){
- if(this.islimit){
- this.goToLoadData(true);
- }
- }
- },
- mounted: function() {
- _vm = this
- this.initData()
- },
- methods: {
- initData: function(){
- var vm = this
- this.planDetaiId = this.plandetailid
- this.getServiceItem()
- },
- getServiceItem: function() {
- var vm = this;
- var loadding = top.layer.load(0, {
- shade: false
- }); //0代表加载的风格,支持0-2
- rehaAPI.serviceItem({
- planDetailId: vm.planDetaiId
- }).then(function(res) {
- top.layer.close(loadding);
- if(res.status == 200) {
- vm.service = res.data;
- var isZK=vm.docInfo.doctorType==1?true:false;
- vm.service.isZK=isZK;
- if(vm.service.isMyTask==1){//执行者
- vm.service.isCK=true;//无法显示按钮
- if(vm.docInfo.uid==vm.service.specialistDoctorCode){//说明我自己是创建者
- vm.service.isCK=false;
- vm.service.isCreate=true;
- }
- }else{
- if(vm.docInfo.uid==vm.service.specialistDoctorCode){//说明我自己是创建者
- vm.service.isCreate=true;
- }
- }
- if(vm.service.frequencyCode){
- vm.islimit = true
- vm.goToLoadData(true)
- vm.monDetail()
- } else {
- vm.islimit = false
- vm.tabStatus = 2
- vm.selectByPlanDetaiId()
- }
- vm.selectByGuidance()
- vm.$forceUpdate()
- } else {
- showErrorMessage(res.msg)
- }
- })
- },
- // 获取康复计划服务项的指导留言
- selectByGuidance: function(){
- var vm = this
- var params = {
- planId: vm.planid,
- itemCode: vm.service.type
- }
- rehaAPI.selectByGuidance(params).then(function(res){
- if(res.status==200){
- var messageIndex = _.findIndex(res.data, {doctor_type: 1});
- if(messageIndex>-1){
- var message = res.data[messageIndex]
- var contentType = message.content_type
- if(contentType==2||contentType==9){
- vm.message.isImg = true
- }
- vm.message.content = vm.getContent(message.content,message.content_type)
- }else{
- vm.message.content = "无"
- }
- } else {
- showErrorMessage(res.msg)
- }
- })
- },
- goToEditConfig: function(){
- var vm = this
- location.href = "../../recover/html/new_recover.html?patient=" + vm.patientcode + '&isEditConfig=true&planId='+vm.planid+'&planDetailId='+vm.planDetaiId
- },
- closeAllLayer: function(name, planDetaiId, type, relationCode, flag){
- if(name=='预览康复指导'){
- layer.close()
- }
- },
- // 提醒患者 num 1康复指导2康复下转3复诊提醒4上门服务提醒5家签提醒
- sendSpecialistWeixinMessage: function(planDetaiId, type){
- var vm = this
- var text = ''
- var patientName = vm.patientname
- var patientCode = vm.patientcode
- if(type==4){ // 上门服务
- text = '请问您是否确认提醒'+patientName+'居民预约上门护理服务?'
- } else if(type==7){ // 康复复诊
- text = '请问您是否确认提醒'+patientName+'居民进行复诊?'
- }
- var current=layer.confirm(text, {
- btn: ['确定', '取消'],
- title: "提示"
- }, function (index) {
- var _type = type == 4? 4:type==7?3:''
- var loading = layer.load(0, {shade: false})
- var params = {
- patient: patientCode,
- doctor: vm.docInfo.uid,
- type: _type,
- relationCode: planDetaiId,
- planId: vm.planid
- }
- rehaAPI.sendSpecialistWeixinMessage(params).then(function(res){
- layer.close(loading)
- if(res.status == 200){
- showSuccessMessage('提交成功!')
- if(_type==3 || _type==4){ // 提醒患者后,即认为是已完成
- vm.saveRehabilitationOperateRecord(planDetaiId, type)
- }
- } else {
- showErrorMessage(res.msg)
- }
- })
- layer.close(current); //再执行关闭
- })
- },
- // 添加完成记录
- addCompleteRecord: function(){
- var vm = this
- var detailId = this.planDetaiId
- var type = vm.service.type
- $("#completeRecord").css('display','block')
- this.layerIndex = layer.open({
- type: 1,
- area: ['500px', '450px'],
- shade: 0.5,
- title: '添加完成记录',
- btn: ['确定', '关闭'], //只是为了演示
- shadeClose: false, //点击遮罩关闭层
- content: $("#completeRecord"),
- yes: function(){
- vm.saveRehabilitationOperateRecord(detailId, 1)
- layer.close(vm.layerIndex)
- },
- });
- },
- monDetail:function(){
- this.currentDay = this.ynow + '年'+ (this.mnow + 1) +'月';
- },
- is_leap:function(year) { //判断是否为闰年
- return (year%100==0?res=(year%400==0?1:0):res=(year%4==0?1:0));
- },
- preMonth:function(){ //上一个月
- if(this.mnow<=0){
- this.mnow=11;
- this.ynow=this.ynow-1;
- }else{
- this.mnow--;
- }
- this.monDetail();
- this.goToLoadData(true);
- },
- getPreMouth:function(){
- var pMnow,pYnow;
- if(this.mnow<=0){
- pMnow=11;
- pYnow=this.ynow-1;
- }else{
- pMnow=this.mnow-1;
- pYnow=this.ynow;
- }
- var m_days=new Array(31,(28+this.is_leap(pYnow)),31,30,31,30,31,31,30,31,30,31); //每个月的天数
- return {
- days:m_days[pMnow],
- date:pYnow+'-'+(++pMnow>=10?pMnow:"0"+pMnow)
- }
- },
- nextMonth:function(){ //下一个月
- if(this.mnow>=11){
- this.mnow=0;
- this.ynow=this.ynow+1;
- }else{
- this.mnow++;
- }
- this.monDetail();
- this.goToLoadData(true);
- },
- getNextMouth:function(){
- var nMnow,nYnow;
- if(this.mnow>=11){
- nMnow=0;
- nYnow=this.ynow+1;
- }else{
- nMnow=this.mnow+1;
- nYnow=this.ynow;
- }
- var m_days=new Array(31,(28+this.is_leap(nYnow)),31,30,31,01,31,31,30,31,30,31); //每个月的天数
- return {
- days:m_days[nMnow],
- date:nYnow+'-'+(++nMnow>=10?nMnow:"0"+nMnow)
- }
- },
- goToLoadData:function(flag){//flag是否更新数据
- this.tabStatus==1 && (!this.calendarData.length || flag) && this.calendar();
- this.tabStatus==2 && (!this.timeAxisData.length || flag) && this.timeAxis();
- },
- calendar:function(){
- var nlstr = new Date(this.ynow,this.mnow,1); //当月第一天
- var firstday = nlstr.getDay()-1;//第一天星期几,默认是周日 我们改成周一
- firstday=firstday==-1?6:firstday;//如果是-1,说明当月的第一天是周日
- var m_days=new Array(31,(28+this.is_leap(this.ynow)),31,30,31,30,31,31,30,31,30,31); //每个月的天数
- var tr_str=Math.ceil((m_days[this.mnow] + firstday)/7); //当前月天数+第一天是星期几的数值 获得 表格行数
- var c_days=m_days[this.mnow];//当前月份的天数
- var p_arr=this.getPreMouth();
- var n_arr=this.getNextMouth();
- var i,k,idx,date_str;
- var dataArr=[];//天数/年月
- for(i=0;i<tr_str;i++) { //表格的行
- for(k=0;k<7;k++) { //表格每行的单元格
- idx=i*7+k; //单元格自然序列号
- date_str=idx-firstday+1; //计算日期
- var __ym;
- if(date_str<=0){//过滤无效日期(小于等于零的、大于月总天数的)
- date_str=date_str+p_arr['days'];//当前日期+上个月的天数就是上个月的日期
- __ym=p_arr['date'];
- }else if(date_str>c_days){
- date_str=date_str-c_days;//下个月的日期就是这个月的天数-当月的天数
- __ym=n_arr['date'];
- }else{
- __ym=this.ynow+'-'+(this.mnow>=9?"":"0")+(this.mnow+1);
- }
- dataArr.push({
- day:date_str,
- date:__ym
- });
- }
- }
- this.__Data=dataArr;
- this.calenderPlanDetail();
- },
- // 日历有计划数据处理
- planHandleData: function(data, day, mounth) {
- var item = data;
- item.day = day;
- if(mounth) {item.mounth = mounth}
- var finishFlag=false
- var sFlag=false;
- var fFlag=false;
- if(item.specialist){
- if(item.specialist.all==item.specialist.finish){
- sFlag=true;
- }
- }else{
- sFlag = true;
- }
- if(item.family){
- if(item.family.all==item.family.finish){
- fFlag = true;
- }
- }else{
- fFlag = true;
- }
- finishFlag = sFlag && fFlag;
- item.finishFlag=finishFlag;
- return item
- },
- calenderPlanDetail:function(){
- var vm=this;
- var __days=vm.__Data;
- var lastDay=(__days.concat()).pop().day;
- lastDay=lastDay>9?lastDay:'0'+lastDay;
- if(vm.searchTask || vm.status || vm.status == 0) {
- vm.isFastSearch = true
- } else {
- vm.isFastSearch = false
- }
- var params={
- executeStartTime: vm.isFastSearch ? '' : __days[0].date+'-'+__days[0].day+' 00:00:00',//日历开始时间(格式:yyyy-MM-dd HH:mm:ss)
- executeEndTime: vm.isFastSearch ? '' : (__days.concat()).pop().date+'-'+lastDay+' 23:59:59',//日历结束时间(格式:yyyy-MM-dd HH:mm:ss)
- planId:vm.planid,//计划id
- searchTask: vm.service.type,//快速查找任务:(1、我的任务,2、健康教育,3、健康指导,4、随访)
- status: null,//任务状态(0未完成,1已完成,2已预约)
- }
- rehaAPI.calendarPlanDetail(params).then(function(res){
- vm.curTask=vm.searchTask;
- vm.curTaskName=vm.searchTaskName;
- vm.calendarData=[];
- var list = [];
- if(res.status==200){
- var data=res.data
- // 快速查找
- if(vm.isFastSearch) {
- vm.searchData = []
- var searchData0 = [],
- searchData1 = [],
- searchData2 = [];
- for(var setM = 1; setM <= 12; setM++) {
- var _setM = setM > 9 ? setM : '0' + setM,
- _setY = new Date().getFullYear();
- var data0 = [],
- data1 = [],
- data2 = [];
- for(var i in data) {
- var getY = i.split("-")[0],
- getM = i.split("-")[1],
- getD = i.split("-")[2];
- // 去年
- if(_setY - 1 == getY && _setM == getM) {
- var item = vm.planHandleData(data[i], getD, getM)
- data0.push(item)
- data.length && data.splice(i,1);
- } else if(_setY == getY && _setM == getM) { // 今年
- var item = vm.planHandleData(data[i], getD, getM)
- data1.push(item)
- data.length && data.splice(i,1);
- } else if(_setY + 1 == getY && _setM == getM) { // 明年
- var item = vm.planHandleData(data[i], getD, getM)
- data2.push(item)
- data.length && data.splice(i,1);
- }
- }
- if(data0.length) {
- var dataSort = vm.daysSort(data0)
- var addlen = (dataSort.length + 1) % 7 ? (dataSort.length + 1) % 7 : 7
- for(var i = 0; i < 7 - addlen; i++) {
- dataSort.push({
- noService:true
- })
- }
- searchData0.push(dataSort)
- }
- if(data1.length) {
- var dataSort = vm.daysSort(data1)
- var addlen = (dataSort.length + 1) % 7 ? (dataSort.length + 1) % 7 : 7
- for(var i = 0; i < 7 - addlen; i++) {
- dataSort.push({
- noService:true
- })
- }
- searchData1.push(dataSort)
- }
- if(data2.length) {
- var dataSort = vm.daysSort(data2)
- var addlen = (dataSort.length + 1) % 7 ? (dataSort.length + 1) % 7 : 7
- for(var i = 0; i < 7 - addlen; i++) {
- dataSort.push({
- noService:true
- })
- }
- searchData2.push(dataSort)
- }
- }
- if(searchData0.length) {vm.searchData.push(searchData0)}
- if(searchData1.length) {vm.searchData.push(searchData1)}
- if(searchData2.length) {vm.searchData.push(searchData2)}
- return false;
- }
- // 正常日历
- var _currentTimeStamp=+new Date(new Date().setHours(0, 0, 0, 0));
- for(var i in __days){
- var _key=__days[i].date+'-'+(__days[i].day>9?__days[i].day:'0'+__days[i].day);
- var item={
- noService:true,
- day:__days[i].day
- };
- for(var j in data){
- if(_key==j){
- item = vm.planHandleData(data[j], __days[i].day)
- data.length && data.splice(j,1);
- break;
- }
- }
- var thatTime=+new Date(_key)-8*60*60*1000;
- var future=_currentTimeStamp>thatTime?0:(_currentTimeStamp==thatTime?1:2);
- item.future=future;
- list.push(item);
- // vm.calendarData.push(item);
- }
- vm.calendarData = vm.chunkFunction(list, 7)
- }
- })
- },
- chunkFunction:function(arr, size) {
- let changeIndex = 0;
- let secondArr = [];
- while (changeIndex < arr.length) {
- secondArr.push(arr.slice(changeIndex, changeIndex += size))
- }
- return secondArr;
- },
- //时间轴请求
- timeAxis:function(){
- var m_days=new Array(31,(28+this.is_leap(this.ynow)),31,30,31,30,31,31,30,31,30,31); //每个月的天数
- var c_days=m_days[this.mnow];//当前月份的天数
- var __ym=this.ynow+'-'+(this.mnow>=9?"":"0")+(this.mnow+1);
- var dataArr=[];//天数/年月
- for(;c_days>0;c_days--){
- dataArr.push({
- day:c_days,
- date:__ym
- });
- }
- this.__xData=dataArr;
- this.calendarPlanDetailList();
- },
- //限频次 时间轴请求
- calendarPlanDetailList:function(){
- var vm=this;
- var __days=vm.__xData;
- var lastDay=(__days.concat()).pop().day;
- lastDay=lastDay>9?lastDay:'0'+lastDay;
- var params={
- executeEndTime:__days[0].date+'-'+__days[0].day+' 23:59:59',//日历开始时间(格式:yyyy-MM-dd HH:mm:ss)
- executeStartTime:(__days.concat()).pop().date+'-'+lastDay+' 00:00:00',//日历结束时间(格式:yyyy-MM-dd HH:mm:ss)
- planId:vm.planid,//计划id
- searchTask:vm.service.type, // 服务项
- status: null, //任务状态(0未完成,1已完成,2已预约)
- }
- rehaAPI.calendarPlanDetailList(params).then(function(res){
- if(res.status==200){
- // var _currentTimeStamp=+new Date(new Date().setHours(0, 0, 0, 0))
- var list=_.map(res.data||{},function(o){
- // var _time=o.executeTime.split(' ');
- // var thatTime=+new Date(_time[0]);
- // var future=_currentTimeStamp>thatTime?0:(_currentTimeStamp==thatTime?1:2);
- // (o.status==0 && _currentTimeStamp>thatTime) && (future=-1)
- // var _html=o.status==2?'预':(future==-1?'逾':'');
- // _html=future==1?'今':_html;
- // if(_html=='预') future=3;
- var _time=o.executeTime.split(' ');
- var _html = ''
- var d = new Date(o.execute_time);
- if(d.format("yyyy-MM-dd") == new Date().format("yyyy-MM-dd")) {
- o.firstSort = '1'
- future = 1
- _html = '今'
- if(o.status) {
- o.secondSort = '2'
- } else {
- o.secondSort = '1'
- }
- } else if(d > new Date()) {
- o.firstSort = '3'
- future = 2
- if(o.status) {
- o.secondSort = '2'
- } else {
- o.secondSort = '1'
- }
- } else {
- o.firstSort = '2'
- future = 0
- if(o.status == 0) {
- future = -1
- _html = '逾'
- o.secondSort = '1'
- } else {
- o.secondSort = '2'
- }
- }
- o.html=_html
- o.date=_time[0];
- o.time=_time[1];
- o.future=future;
- o.doctorName = o.doctor_name
- o.hospitalName = o.hospital_name
- return o;
- })||[];
- var nowTime = new Date().getTime()
- vm.timeAxisData = _.sortBy(list, function(o) {
- return o.firstSort + o.secondSort + (nowTime/o.execute_time)
- });
- } else {
- showErrorMessage(res.msg)
- }
- })
- },
- //不限频次 时间轴请求
- selectByPlanDetaiId: function(){
- var vm = this
- var params = {
- planId: this.planid,
- code: vm.service.type,
- page: 1,
- pagesize: 10000
- }
- rehaAPI.selectByPlanDetaiId(params).then(function(res){
- if(res.status==200){
- var list=_.map(res.data.list||{},function(o){
- var _time=o.completeTime.split(' ');
- var _html = ''
- var d = new Date(o.completeTime);
- if(d.format("yyyy-MM-dd") == new Date().format("yyyy-MM-dd")) {
- o.firstSort = '1'
- future = 1
- _html = '今'
- if(o.status) {
- o.secondSort = '2'
- } else {
- o.secondSort = '1'
- }
- } else if(d > new Date()) {
- o.firstSort = '3'
- future = 2
- if(o.status) {
- o.secondSort = '2'
- } else {
- o.secondSort = '1'
- }
- } else {
- o.firstSort = '2'
- future = 0
- if(o.status == 0) {
- future = -1
- _html = '逾'
- o.secondSort = '1'
- } else {
- o.secondSort = '2'
- }
- }
- o.html=_html
- o.date=_time[0];
- o.time=_time[1];
- o.future=future;
- o.hospitalName = o.hosiptalName
- return o;
- })||[];
- var nowTime = new Date().getTime()
- vm.timeAxisData = _.sortBy(list, function(o) {
- return o.firstSort + o.secondSort + (nowTime/o.execute_time)
- });
- } else {
- showErrorMessage(res.msg)
- }
- })
- },
- zdly: function(data) {
- var vm = this
- var otherCode, otherName;
- var planDetailId = vm.plandetailid;
- if(vm.docInfo.doctorType == 1) {
- if(docInfo.uid == data.specialistDoctorCode) {
- //当前医生为创建计划的专科医生,与全科医生聊天
- otherCode = data.familyDoctorCode;
- otherName = data.familyDoctorName;
- }else {
- //当前医生为专科,当前医生不是创建计划的专科医生,没反应
- return false
- }
- } else {
- otherCode = data.specialistDoctorCode;
- otherName = data.specialistDoctorName;
- }
- top.layer.open({
- type: 2,
- area: ['660px', '600px'],
- shade: 0.5,
- title: '指导留言',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: '../../consulting/html/consulting.html?otherCode=' + otherCode + '&otherName=' + encodeURI(otherName) + '&planDetailId=' + planDetailId,
- end: function() { // 未点击确定按钮,点击关闭按钮
- vm.initData()
- }
- });
- },
- //康复指导
- kfzd:function(){
- var vm=this
- KFZDlayerIndex = layer.open({
- type: 2,
- // offset: ['100px'], //右下角弹出
- area: ['660px', '650px'],
- shade: 0.5,
- title: '康复指导',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content:'../../rehabilitation/html/rehabilitation_guidance.html?patient='+vm.patientcode+'&planDetaiId='+vm.planDetaiId+'&planId='+vm.planid + '&isRecordId=true',
- end: function() { // 未点击确定按钮,点击关闭按钮
- vm.initData()
- }
- });
- },
- // 康复随访计划
- sfjh: function(){
- var vm=this
- followupLayerIndex = layer.open({
- type: 2,
- // offset: ['100px'], //右下角弹出
- area: ['660px', '650px'],
- shade: 0.5,
- title: '随访计划',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content:'../../followup/html/followup_newplan.html?patient='+vm.patientcode+'&planDetaiId='+vm.planDetaiId+'&planId='+vm.planid,
- end: function() { // 未点击确定按钮,点击关闭按钮
- vm.initData()
- }
- });
- },
- upLoadImgToBase64: function() {
- var vm = this;
- var img1 = event.target.files[0];
- var reader = new FileReader();
- var type = img1.type; //文件的类型,判断是否是图片
- var size = img1.size; //文件的大小,判断图片的大小
- if(this.imgData.accept.indexOf(type) == -1) {
- alert('请选择我们支持的图片格式!');
- return false;
- }
- if(size > 3145728) {
- alert('请选择3M以内的图片!');
- return false;
- }
- reader.readAsDataURL(img1);
- reader.onload = function(e) {
- vm.upImgs.push({
- baseUrl: e.target.result
- });
- vm.upImgArr.push(img1);
- vm.uploadImg(vm.upImgArr);
- }
- },
- //上传图片
- uploadImg: function(data) {
- var vm = this;
- var len = data.length;
- if(len==0) {
- return
- } else {
- var file = data[len - 1];
- var formData = new FormData();
- formData.append('file', file);
- rehaAPI.upload(formData).then(function(res) {
- if(res.status == 200) {
- vm.upImgs[len - 1].img = res.data;
- data.pop();
- vm.$forceUpdate()
- vm.uploadImg(data);
- } else {
- layer.msg(res.msg, {
- icon: 5
- });
- }
- })
- }
- },
- saveRehabilitationOperateRecord:function(planDetailId, type, relationCode, flag){
- var vm=this
- var patientName = vm.patientname
- var patientCode = vm.patientcode
- var _image = [];
- for(var i in vm.upImgs) {
- _image.push(vm.upImgs[i].img);
- }
- var params={
- rehabilitationDetailId: planDetailId,
- node: vm.node||'',
- patientCode: patientCode,
- doctorCode: vm.docInfo.uid,
- relationRecordType: type,
- relationRecordCode: '',
- relationRecordImg: '',
- status: flag&&flag==2?1:0, // 改记录的状态
- relationCode: relationCode, //业务id
- flag: flag,//标记(1随访2临时随访)
- }
- rehaAPI.saveRehabilitationOperateRecord({dataJson:JSON.stringify(params)}).then(function(res){
- if(res.status==200){
- if(type==1){
- vm.updateNoteAndImageRehabilitationOperate(planDetailId)
- }else if(type==6){
- vm.updateRelationCodeByDetailId(planDetailId, relationCode)
- } else {
- vm.updateNoteAndImageRehabilitationOperate(planDetailId)
- }
- }else {
- showErrorMessage(res.msg)
- }
- })
-
- },
- updateNoteAndImageRehabilitationOperate: function(planDetailId, relationCode) {
- var vm = this;
- var _image = [];
- for(var i in vm.upImgs) {
- _image.push(vm.upImgs[i].img);
- }
- var params = {
- planDetailId: planDetailId,
- node: vm.node||'',
- image: JSON.stringify(_image)||''
- }
- if(relationCode){
- params['relationCode'] = relationCode
- }
- var loadding = top.layer.load(0, {
- shade: false
- }); //0代表加载的风格,支持0-2
- rehaAPI.updateNoteAndImageRehabilitationOperate(params).then(function(res) {
- top.layer.close(loadding);
- if(res.status == 200) {
- vm.initData()
- }else {
- showErrorMessage(res.msg)
- }
- })
- },
- onViewDetail: function(item, type){
- var planids, recordId;
- if(this.islimit){
- planids = item.id
- } else {
- planids = item.id
- recordId = item.recordId
- }
- this.viewDetail(planids,type, recordId)
- },
- viewDetail:function(planids,type, recordId){
- var vm=this;
- if(!planids){
- layer.msg('无服务项',{icon:5})
- return ;
- }
- if(type==1){ // 单个服务项
- var s = '../../rehabilitation/html/guide_the_message.html?planid='+planids+'&pId='+vm.planid+'&patient='+vm.patientcode+'&patientName='+vm.patientname
- if(recordId){
- s += '&recordId='+ recordId
- }
- layer.open({
- type: 2,
- area: ['800px', '700px'],
- shade: 0.5,
- title: '服务项目内容',
- fixed: true, //不固定
- maxmin: true,
- closeBtn:1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: s,
- end:function(){ // 未点击确定按钮,点击关闭按钮
- vm.initData(); // 刷新
- }
- });
- return ;
- }
- layer.open({ // 康复计划的所有服务项
- type: 2,
- area: ['800px', '700px'],
- shade: 0.5,
- title: '服务项目内容',
- fixed: true, //不固定
- maxmin: true,
- closeBtn:1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: '../../rehabilitation/html/service_item_content.html?planids='+planids+'&planId='+vm.planid+'&patient='+vm.patientcode+'&patientName='+vm.patientname,
- end:function(){
- vm.initData();
- }
-
- });
- },
- onClose: function(){
- this.$emit('onclose')
- },
- qwapp:function(){
- layer.msg('请前往app处理',{icon:5});
- },
- getContent: function(value,type) {
- var res=value;
- if(type==2 || type==9){
- res = "<img src='"+httpRequest.getImgUrl(res)+"' width='100px'>";
- }else if(type==3){
- res = '【语音】';
- }else if(type==19){
- res = '【聊天记录】';
- }else if(type==12){
- res = '【视频】';
- }
- return res;
- },
- previewImg: function(url){
- imgShow("#outerdiv", "#innerdiv", "#bigimg", url);
- },
- toDoorDialog(){
- // console.log("server");
- top.layer.open({
- type: 2,
- area: ['850px', '700px'],
- shade: 0.5,
- title: '代预约',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- // shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: `/app/rehabilitation/html/toDoorService.html?patient=${this.patientcode}&detailId=${this.plandetailid}`
- })
- },
- }
- })
- function imgShow(outerdiv, innerdiv, bigimg, _this){
- var src = _this.attr("src");//获取当前点击的pimg元素中的src属性
- $(bigimg).attr("src", src);//设置#bigimg元素的src属性
- /*获取当前点击图片的真实大小,并显示弹出层及大图*/
- $("<img/>").attr("src", src).load(function(){
- var windowW = $(window).width();//获取当前窗口宽度
- var windowH = $(window).height();//获取当前窗口高度
- var realWidth = this.width;//获取图片真实宽度
- var realHeight = this.height;//获取图片真实高度
- var imgWidth, imgHeight;
- var scale = 0.8;//缩放尺寸,当图片真实宽度和高度大于窗口宽度和高度时进行缩放
-
- if(realHeight>windowH*scale) {//判断图片高度
- imgHeight = windowH*scale;//如大于窗口高度,图片高度进行缩放
- imgWidth = imgHeight/realHeight*realWidth;//等比例缩放宽度
- if(imgWidth>windowW*scale) {//如宽度扔大于窗口宽度
- imgWidth = windowW*scale;//再对宽度进行缩放
- }
- } else if(realWidth>windowW*scale) {//如图片高度合适,判断图片宽度
- imgWidth = windowW*scale;//如大于窗口宽度,图片宽度进行缩放
- imgHeight = imgWidth/realWidth*realHeight;//等比例缩放高度
- } else {//如果图片真实高度和宽度都符合要求,高宽不变
- imgWidth = realWidth;
- imgHeight = realHeight;
- }
- $(bigimg).css("width",imgWidth);//以最终的宽度对图片缩放
-
- var w = (windowW-imgWidth)/2;//计算图片与窗口左边距
- var h = (windowH-imgHeight)/2;//计算图片与窗口上边距
- $(innerdiv).css({"top":h, "left":w});//设置#innerdiv的top和left属性
- $(outerdiv).fadeIn("fast");//淡入显示#outerdiv及.pimg
- });
- $(outerdiv).click(function(){//再次点击淡出消失弹出层
- $(this).fadeOut("fast");
- });
- }
|