|
@ -1,55 +1,55 @@
|
|
|
|
|
|
var currentGMT=new Date();//当前时间GMT
|
|
|
|
|
|
var currentGMT = new Date() //当前时间GMT
|
|
function showSuccessMessage(msg) {
|
|
function showSuccessMessage(msg) {
|
|
layer.msg(msg, {
|
|
|
|
icon: 1
|
|
|
|
})
|
|
|
|
|
|
layer.msg(msg, {
|
|
|
|
icon: 1
|
|
|
|
})
|
|
}
|
|
}
|
|
function showSuccessMessage(msg) {
|
|
function showSuccessMessage(msg) {
|
|
layer.msg(msg, {
|
|
|
|
icon: 1
|
|
|
|
})
|
|
|
|
|
|
layer.msg(msg, {
|
|
|
|
icon: 1
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
function showErrorMessage(msg) {
|
|
function showErrorMessage(msg) {
|
|
layer.msg(msg, {
|
|
|
|
icon: 5
|
|
|
|
})
|
|
|
|
|
|
layer.msg(msg, {
|
|
|
|
icon: 5
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
function showWarningMessage(msg) {
|
|
function showWarningMessage(msg) {
|
|
layer.msg(msg, {
|
|
|
|
icon: 2
|
|
|
|
})
|
|
|
|
|
|
layer.msg(msg, {
|
|
|
|
icon: 2
|
|
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
function showInfoMessage(msg) {
|
|
function showInfoMessage(msg) {
|
|
layer.msg(msg, {
|
|
|
|
icon: 6
|
|
|
|
})
|
|
|
|
|
|
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)
|
|
|
|
|
|
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 closeKFZDlayer(planDetaiId, relationRecordId) {
|
|
|
|
layer.close(KFZDlayerIndex)
|
|
|
|
_vm.saveRehabilitationOperateRecord(planDetaiId, 5)
|
|
}
|
|
}
|
|
function closeKFZD(){
|
|
|
|
layer.close(KFZDlayerIndex)
|
|
|
|
_vm.initData()
|
|
|
|
|
|
function closeKFZD() {
|
|
|
|
layer.close(KFZDlayerIndex)
|
|
|
|
_vm.initData()
|
|
}
|
|
}
|
|
var _vm
|
|
|
|
|
|
var _vm
|
|
Vue.component('server-items-detail', {
|
|
Vue.component('server-items-detail', {
|
|
template: '<div class="p15 ui-grid ui-grid-vertical" style="height:calc(100%);position: relative;">\
|
|
|
|
|
|
template:
|
|
|
|
'<div class="p15 ui-grid ui-grid-vertical" style="height:calc(100%);position: relative;">\
|
|
<div class="icon-group">\
|
|
<div class="icon-group">\
|
|
<i class="icon-edit el-icon-edit-outline mr15" @click="goToEditConfig"></i>\
|
|
<i class="icon-edit el-icon-edit-outline mr15" @click="goToEditConfig"></i>\
|
|
<i class="icon-close el-icon-close" @click="onClose"></i>\
|
|
<i class="icon-close el-icon-close" @click="onClose"></i>\
|
|
@ -153,14 +153,14 @@ Vue.component('server-items-detail', {
|
|
<button v-if="!islimit&&service.executeDoctorCode!=docInfo.uid" class="btn btn-12b7f5" @click="zdly(service)">指导留言</button>\
|
|
<button v-if="!islimit&&service.executeDoctorCode!=docInfo.uid" class="btn btn-12b7f5" @click="zdly(service)">指导留言</button>\
|
|
</div>\
|
|
</div>\
|
|
<div v-else-if="!islimit" class="c-t-center mt15">\
|
|
<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>\
|
|
|
|
|
|
<button class="btn btn-12b7f5" @click="zdly(service)">查看留言</button>\
|
|
|
|
<button v-if="service.type==\'1\'" class="btn btn-yuyue" @click="addCompleteRecord()">添加完成记录</button>\
|
|
|
|
<button v-if="service.type==\'4\'" class="btn btn-yuyue" @click="sendSpecialistWeixinMessage(planDetaiId,4)">发送提醒</button>\
|
|
|
|
<button v-if="service.type==\'4\'" class="btn btn-12b7f5" @click="toDoorDialog">代预约</button>\
|
|
|
|
<button v-if="service.type==\'5\'" class="btn btn-yuyue" @click="kfzd()">发送康复指导</button>\
|
|
|
|
<button v-if="service.type==\'6\'" class="btn btn-yuyue" @click="sfjh()">创建随访计划</button>\
|
|
|
|
<button v-if="service.type==\'7\'" class="btn btn-yuyue" @click="sendSpecialistWeixinMessage(planDetaiId,7)">发送提醒</button>\
|
|
|
|
<button v-if="service.type==\'7\'" class="btn btn-12b7f5" @click="qwapp">代预约</button>\
|
|
</div>\
|
|
</div>\
|
|
<div id="completeRecord" style="display: none; padding: 15px 15px 0;">\
|
|
<div id="completeRecord" style="display: none; padding: 15px 15px 0;">\
|
|
<div class="note-info pt10">\
|
|
<div class="note-info pt10">\
|
|
@ -184,883 +184,928 @@ Vue.component('server-items-detail', {
|
|
</div>\
|
|
</div>\
|
|
</div>\
|
|
</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
|
|
|
|
|
|
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
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
console.log('service', vm.service)
|
|
|
|
|
|
|
|
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)
|
|
}
|
|
}
|
|
|
|
})
|
|
},
|
|
},
|
|
watch:{
|
|
|
|
tabStatus:function(){
|
|
|
|
if(this.islimit){
|
|
|
|
this.goToLoadData(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted: function() {
|
|
|
|
_vm = this
|
|
|
|
this.initData()
|
|
|
|
|
|
goToEditConfig: function () {
|
|
|
|
var vm = this
|
|
|
|
location.href = '../../recover/html/new_recover.html?patient=' + vm.patientcode + '&isEditConfig=true&planId=' + vm.planid + '&planDetailId=' + vm.planDetaiId
|
|
},
|
|
},
|
|
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}`
|
|
|
|
})
|
|
|
|
},
|
|
|
|
|
|
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");
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
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')
|
|
|
|
})
|
|
|
|
}
|