1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180 |
- 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 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 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 {
- scList: [],
- patientInfo: {},
- 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')),
- docInfo1: JSON.parse(window.localStorage.getItem('docInfo')),
- 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
- vm.getPatientInfo(vm.service.patient)
- 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.getList()
- 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)
- }
- })
- },
- getPatientInfo(code) {
- var vm = this
- httpRequest.post('doctor/patient_label_info/patient', { data: { patient: code } }).then(function (res) {
- vm.patientInfo = res.data
- })
- },
- 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 vm = this
- if (this.scList == 0) {
- this.$confirm('提示该居民近一年没有进行冠心病风险评估,请先进行评估,再进行随访登记', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(function () {
- top.layer.open({
- type: 2,
- area: ['820px', '648px'],
- shade: 0.5,
- title: 'ASCVD风险评估',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content:
- `../../jbsc/html/questionnaire.html?fliter_code=6bcd306aaafb4e4381071346d86fadbb1&fliter_title=ASCVD风险评估&resident_code=${vm.patientInfo.code}&resident_name=${vm.patientInfo.name}&surveyStatus=2&age=${vm.patientInfo.age}&noswitch=1`
- })
- })
- } else {
- var planids, recordId
- if (this.islimit) {
- planids = item.id
- } else {
- planids = item.id
- recordId = item.recordId
- }
- this.viewDetail(planids, type, recordId)
- }
- },
- getList: function () {
- var vm = this
- var params = {
- doctor: vm.docInfo1.code,
- diseaseType: vm.service.disease,
- type: '',
- patientName: '',
- patientCode: vm.patientcode,
- isDanger: '',
- pageNo: 1,
- pageSize: 1,
- filterType: 1,
- isAscvd: vm.service.disease == '3' ? 1 : ''
- }
- rehaAPI.getList(params).then(function (res) {
- vm.scList = res.data
- })
- },
- 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 +
- '&disease=' +
- vm.service.disease +
- '&scLenght=' +
- vm.scList.length,
- 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() {
- var vm = this
- top.layer.open({
- type: 2,
- area: ['850px', '700px'],
- shade: 0.5,
- title: '代预约',
- fixed: true, //不固定
- maxmin: true,
- closeBtn: 1,
- // shift: 5,
- shadeClose: false, //点击遮罩关闭层
- content: `../../rehabilitation/html/toDoorService.html?patient=${this.patientcode}&detailId=${this.plandetailid}`,
- end: function () {
- vm.getServiceItem()
- }
- })
- }
- }
- })
- 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')
- })
- }
|