|
@ -95,45 +95,63 @@
|
|
|
<div class="fl w-100-78 c-333">
|
|
|
<p class="m0 p0 mb10 txt-ells cur-pit" @click="lookProject(detail)">{{detail.specialistServiceItemDO.title}}</p>
|
|
|
<div class="clearfix">
|
|
|
<p class="w300 m0 mb5 p0 fl"><span class="c-999">医  院:</span>{{detail.hospitalName}}</p>
|
|
|
<div class="m0 mb5 p0 fl clearfix">
|
|
|
<p class="w300 m0 mb10 p0 fl"><span class="c-999">医  院:</span>{{detail.hospitalName}}</p>
|
|
|
<p class="m0 p0 mb10 fl"><span class="c-999">费  用:</span>{{detail.expense}}{{detail.specialistServiceItemDO.unit}}</p>
|
|
|
</div>
|
|
|
<div class="m0 p0 clearfix">
|
|
|
<div class="w300 m0 mb10 p0 fl clearfix">
|
|
|
<span class="fl c-999">选择频次:</span>
|
|
|
<div class="fl c-position-r w100">
|
|
|
<p class="m0 p0 plr10 c-border cur-pit set-xia" :class="{'set-shang':detail.selectFre}" @click="changeSelectFre(index, detail.selectFre)">{{detail.frequencyCode}}</p>
|
|
|
<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectFre" style="overflow-y: auto; height: 100px;">
|
|
|
<li class="plr10 c-border-t cur-pit" v-for="(list, indDoc) in detail.frequencyList" :key="indDoc" @click="selectFre(index, list)">{{list.code}}</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="m0 mb10 p0 fl clearfix">
|
|
|
<span class="fl c-999">执行人员:</span>
|
|
|
<div class="fl c-position-r w100">
|
|
|
<p class="m0 p0 plr10 c-border cur-pit set-xia" :class="{'set-shang':detail.selectDoc}" @click="changeSelectDoc(index, detail.selectDoc)">{{detail.executeDoctorName}}</p>
|
|
|
<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectDoc">
|
|
|
<ul class="m0 p0 c-border-b c-border-l c-border-r c-position-a doc_list" v-if="detail.selectDoc" style="overflow-y: auto; max-height: 100px;">
|
|
|
<li class="plr10 c-border-t cur-pit" v-for="(list, indDoc) in detail.docList" :key="indDoc" @click="selectLi(index, list)">{{list.name}}</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="m0 p0 lh18 clearfix">
|
|
|
<div class="w300 fl clearfix">
|
|
|
<span class="fl c-999">计划时间:</span>
|
|
|
<div class="fl set-label clearfix">
|
|
|
<span class="fl mr20 pl20 c-f14 cur-pit" :class="{'active': detail.selectDate == 1}" @click="changeSelectDate(index, 1)">日期</span>
|
|
|
<span class="fl mr20 pl20 c-f14 cur-pit" :class="{'active': detail.selectDate == 2}" @click="changeSelectDate(index, 2)">周期</span>
|
|
|
</div>
|
|
|
<div class="pl65 mb10 set-label" v-if="detail.frequency.unit == 'H'">
|
|
|
<span :class="detail.timeType == 1 ? 'pl20 mr5 cur-pit active' : 'pl20 mr5 cur-pit'" @click="selectTimeType(index, 1)">白天</span>
|
|
|
<span :class="detail.timeType == 2 ? 'pl20 mr5 cur-pit active' : 'pl20 mr5 cur-pit'" @click="selectTimeType(index, 2)">晚上</span>
|
|
|
<span :class="detail.timeType == 0 ? 'pl20 cur-pit active' : 'pl20 cur-pit'" @click="selectTimeType(index, 0)">全天</span>
|
|
|
</div>
|
|
|
<div>
|
|
|
<div class="clearfix">
|
|
|
<span class="fl c-999 lh24">起始时间:</span>
|
|
|
<div class="fl maxw600 c-border mb10">
|
|
|
<!--<p class="lh24 pl10 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.selectDateRange" :key="ind" v-if="detail.specialistServiceItemDO.selectDateRange.length">
|
|
|
<span class="pb10 mr10">{{time.startTime}}</span>至<span class="pb10 ml10">{{time.endTime}}</span><span class="pb10 ml5 c-red cur-pit" @click="spliceTimeRange(index, ind)">删除</span>
|
|
|
</p>-->
|
|
|
<el-date-picker v-model="detail.value14" type="daterange" :picker-options="pickerOptions1" value-format="yyyy-MM-dd" @input="getRandgeDate(index)" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|
|
</div>
|
|
|
<span class="fl lh24 mlr10 c-999">或</span>
|
|
|
<div class="fl maxw600 c-border mb10">
|
|
|
<!--<p class="fl pl10 lh24 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.executeTime" :key="ind" v-if="detail.specialistServiceItemDO.executeTime.length">
|
|
|
<span class="fl pb10">{{time}}</span><span class="fl pb10 ml5 c-red cur-pit" @click="spliceTimeArr(index, ind)">删除</span>
|
|
|
</p>-->
|
|
|
<el-date-picker type="dates" :picker-options="pickerOptions1" v-model="detail.value15" value-format="yyyy-MM-dd" @input="getSelectDate(index)" placeholder="选择一个或者多个日期"></el-date-picker>
|
|
|
</div>
|
|
|
</div>
|
|
|
<p class="m0 p0 fl"><span class="c-999">费  用:</span>{{detail.expense}}{{detail.specialistServiceItemDO.unit}}</p>
|
|
|
</div>
|
|
|
<div class="pl56">
|
|
|
<div class="maxw600 ptb10 bgc-f5f5fa" v-show="detail.selectDate == 1">
|
|
|
<p class="fl pl10 lh24 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.executeTime" :key="ind" v-if="detail.specialistServiceItemDO.executeTime.length">
|
|
|
<span class="fl pb10">{{time}}</span><span class="fl pb10 ml5 c-red cur-pit" @click="spliceTimeArr(index, ind)">删除</span>
|
|
|
</p>
|
|
|
<el-date-picker type="date" :picker-options="pickerOptions1" v-model="detail.value14" value-format="yyyy-MM-dd" @input="getSelectDate(index)" placeholder="选择日期"></el-date-picker>
|
|
|
</div>
|
|
|
<div class="maxw600 ptb10 bgc-f5f5fa" v-show="detail.selectDate == 2">
|
|
|
<p class="lh24 pl10 mb5 mr20 clearfix" v-for="(time, ind) in detail.specialistServiceItemDO.selectDateRange" :key="ind" v-if="detail.specialistServiceItemDO.selectDateRange.length">
|
|
|
<span class="pb10 mr10">{{time.startTime}}</span>至<span class="pb10 ml10">{{time.endTime}}</span><span class="pb10 ml5 c-red cur-pit" @click="spliceTimeRange(index, ind)">删除</span>
|
|
|
</p>
|
|
|
<el-date-picker v-model="detail.value14" type="daterange" :picker-options="pickerOptions1" value-format="yyyy-MM-dd" @input="getRandgeDate(index)" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
|
|
|
<div class="clearfix">
|
|
|
<span class="fl c-999">备  注:</span>
|
|
|
<div class="fl maxw600 plr15 ptb10 c-border set-textarea">
|
|
|
<textarea placeholder="不补充说明特殊用法、方式" v-model="detail.remark" name="" rows="" cols=""></textarea>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class='fr w60 c-t-right clearfix'>
|
|
|
<p class="m0 p0 mb10">×{{detail.specialistServiceItemDO.executeTime.length}}</p>
|
|
|
<div class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></div>
|
|
|
<p class="m0 p0 mb10">×{{mul(detail.specialistServiceItemDO.executeTime.length, detail.frequency.count)}}</p>
|
|
|
<div class="clearfix mb10"><span class="fr sub-tap cur-pit" @click="subTemplate(index, detail)"></span></div>
|
|
|
<div class="clearfix"><span class="fr fuzhi-tap cur-pit" @click="copyTemplate(index, detail)"></span></div>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li class="pt100 c-t-center" v-if="!templateDetail.length">
|
|
@ -264,9 +282,11 @@
|
|
|
zDlist: null,
|
|
|
selectProjectDetail: null,
|
|
|
searchKey: null,
|
|
|
havePlan: false
|
|
|
havePlan: false,
|
|
|
frequencyList: []
|
|
|
},
|
|
|
mounted: function() {
|
|
|
this.selectFrequencys()
|
|
|
if(httpData.patient) {
|
|
|
this.isPlan = false
|
|
|
this.allFee = 0
|
|
@ -277,6 +297,19 @@
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
// 获取频次列表
|
|
|
selectFrequencys: function() {
|
|
|
var vm = this,
|
|
|
loadding = layer.load(0, {shade: false});
|
|
|
recoverAPI.selectFrequencys().then(function(res) {
|
|
|
layer.close(loadding)
|
|
|
if(res.status == 200) {
|
|
|
vm.frequencyList = res.data
|
|
|
} else {
|
|
|
showErrorMessage(res.msg);
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
// 获取居民信息
|
|
|
getPatientInfo: function() {
|
|
|
this.findPatientSignSpecialistInfo()
|
|
@ -302,6 +335,7 @@
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
// 签约专科信息
|
|
|
findPatientSignSpecialistInfo: function() {
|
|
|
var vm = this,
|
|
|
params = {
|
|
@ -311,13 +345,21 @@
|
|
|
recoverAPI.findPatientSignSpecialistInfo(params).then(function(res) {
|
|
|
if(res.status == 200) {
|
|
|
vm.pati.teamCode = res.data.teamCode
|
|
|
vm.zDlist = [{
|
|
|
name: res.data.doctorName,
|
|
|
code: res.data.doctor
|
|
|
}, {
|
|
|
name: res.data.healthAssistantName,
|
|
|
code: res.data.healthAssistant
|
|
|
}]
|
|
|
vm.specialistTeam(res.data.teamCode)
|
|
|
} else {
|
|
|
showErrorMessage(res.msg);
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
// 获取专科团队
|
|
|
specialistTeam: function(teamcode) {
|
|
|
var vm = this,
|
|
|
params = {
|
|
|
teamId: teamcode
|
|
|
}
|
|
|
recoverAPI.specialistTeam(params).then(function(res) {
|
|
|
if(res.status == 200) {
|
|
|
vm.zDlist = res.data.members
|
|
|
} else {
|
|
|
showErrorMessage(res.msg);
|
|
|
}
|
|
@ -381,8 +423,16 @@
|
|
|
o3.selectDoc = false
|
|
|
o3.selectDate = 1
|
|
|
o3.value14 = null
|
|
|
o3.value15 = null
|
|
|
o3.specialistServiceItemDO.executeTime = []
|
|
|
o3.specialistServiceItemDO.selectDateRange = []
|
|
|
// 默认频次
|
|
|
o3.selectFre = false
|
|
|
o3.frequencyCode = vm.frequencyList[0].code
|
|
|
o3.frequency = vm.frequencyList[0]
|
|
|
o3.frequencyList = vm.frequencyList
|
|
|
o3.timeType = 0
|
|
|
o3.remark = null
|
|
|
if(o3.flag == 2) {
|
|
|
o3.executeDoctor = vm.zDlist[0].code
|
|
|
o3.executeDoctorName = vm.zDlist[0].name
|
|
@ -417,10 +467,28 @@
|
|
|
return str
|
|
|
}
|
|
|
},
|
|
|
changeSelectFre: function(index, bool) {
|
|
|
this.templateDetail[index].selectFre = !bool
|
|
|
this.isTest = !this.isTest
|
|
|
},
|
|
|
changeSelectDoc: function(index, bool) {
|
|
|
this.templateDetail[index].selectDoc = !bool
|
|
|
this.isTest = !this.isTest
|
|
|
},
|
|
|
// 选择频次
|
|
|
selectFre: function(index, list) {
|
|
|
this.templateDetail[index].selectFre = false
|
|
|
this.templateDetail[index].frequencyCode = list.code
|
|
|
this.templateDetail[index].frequency = list
|
|
|
this.templateDetail[index] = this.templateDetail[index]
|
|
|
this.isTest = !this.isTest
|
|
|
},
|
|
|
// 选择时间段
|
|
|
selectTimeType: function(index, timetype) {
|
|
|
this.templateDetail[index].timeType = timetype
|
|
|
this.isTest = !this.isTest
|
|
|
},
|
|
|
// 选择执行医生
|
|
|
selectLi: function(index, list) {
|
|
|
this.templateDetail[index].selectDoc = false
|
|
|
this.templateDetail[index].executeDoctor = list.code
|
|
@ -428,13 +496,14 @@
|
|
|
this.templateDetail[index] = this.templateDetail[index]
|
|
|
this.isTest = !this.isTest
|
|
|
},
|
|
|
// 删除配置计划
|
|
|
subTemplate: function(index, detail) {
|
|
|
var vm = this
|
|
|
this.isTest = !this.isTest
|
|
|
this.templateDetail.splice(index, 1)
|
|
|
var len = detail.specialistServiceItemDO.executeTime.length
|
|
|
if(len) {
|
|
|
this.allFee = vm.sub(vm.allFee, vm.mul(len, detail.expense))
|
|
|
this.checkAllMoney()
|
|
|
}
|
|
|
$.each(vm.projectList, function(index, o) {
|
|
|
if(detail.specialistServiceItemDO.itemType == o.itemType) {
|
|
@ -452,6 +521,20 @@
|
|
|
});
|
|
|
vm.judgeHavePlan()
|
|
|
},
|
|
|
// 复制计划
|
|
|
copyTemplate: function(index, detail) {
|
|
|
var vm = this,
|
|
|
obj = JSON.parse(JSON.stringify(detail))
|
|
|
// this.templateDetail[index] = detail
|
|
|
this.isTest = !this.isTest
|
|
|
console.log(obj)
|
|
|
// obj.specialistServiceItemDO.executeTime = []
|
|
|
// obj.value14 = null
|
|
|
// obj.value15 = null
|
|
|
this.templateDetail.push(obj)
|
|
|
console.log(this.templateDetail)
|
|
|
this.checkAllMoney()
|
|
|
},
|
|
|
// 选择项目
|
|
|
selectProject: function(index, index2, index3, o) {
|
|
|
this.selectProjectDetail = o
|
|
@ -479,8 +562,16 @@
|
|
|
this.selectProjectDetail.selectDoc = false
|
|
|
this.selectProjectDetail.selectDate = 1
|
|
|
this.selectProjectDetail.value14 = null
|
|
|
this.selectProjectDetail.value15 = null
|
|
|
this.selectProjectDetail.specialistServiceItemDO.executeTime = []
|
|
|
this.selectProjectDetail.specialistServiceItemDO.selectDateRange = []
|
|
|
// 频次选择
|
|
|
this.selectProjectDetail.selectFre = false
|
|
|
this.selectProjectDetail.frequencyCode = this.frequencyList[0].code
|
|
|
this.selectProjectDetail.frequency = this.frequencyList[0]
|
|
|
this.selectProjectDetail.frequencyList = this.frequencyList
|
|
|
this.selectProjectDetail.timeType = 0
|
|
|
this.selectProjectDetail.remark = null
|
|
|
if(this.selectProjectDetail.flag == 2) {
|
|
|
this.selectProjectDetail.executeDoctor = this.zDlist[0].code
|
|
|
this.selectProjectDetail.executeDoctorName = this.zDlist[0].name
|
|
@ -606,15 +697,17 @@
|
|
|
},
|
|
|
// 选择日期
|
|
|
getSelectDate: function(index) {
|
|
|
var str = this.templateDetail[index].value14
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime = []
|
|
|
var arr = this.templateDetail[index].value15
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime = arr
|
|
|
this.templateDetail[index].value14 = null
|
|
|
this.isTest = !this.isTest
|
|
|
this.allFee = this.add(this.allFee, this.templateDetail[index].expense)
|
|
|
this.checkAllMoney()
|
|
|
this.judgeHavePlan()
|
|
|
},
|
|
|
// 选择周期
|
|
|
getRandgeDate: function(index) {
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime = []
|
|
|
var arr = this.templateDetail[index].value14,
|
|
|
startTime = new Date(arr[0]).getTime(),
|
|
|
endTime = new Date(arr[1]).getTime(),
|
|
@ -625,38 +718,47 @@
|
|
|
var num = i * oneday + startTime,
|
|
|
str = new Date(num).format("yyyy-MM-dd")
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime.push(str)
|
|
|
this.allFee = this.add(this.allFee, this.templateDetail[index].expense)
|
|
|
}
|
|
|
this.checkAllMoney()
|
|
|
var obj = {
|
|
|
startTime: arr[0],
|
|
|
endTime: arr[1],
|
|
|
length: i
|
|
|
}
|
|
|
this.templateDetail[index].specialistServiceItemDO.selectDateRange.push(obj)
|
|
|
this.templateDetail[index].value14 = null
|
|
|
this.templateDetail[index].value15 = null
|
|
|
this.isTest = !this.isTest
|
|
|
this.judgeHavePlan()
|
|
|
},
|
|
|
spliceTimeArr: function(index, ind) {
|
|
|
// 计算总费用
|
|
|
checkAllMoney: function() {
|
|
|
var vm = this
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime.splice(ind, 1)
|
|
|
this.isTest = !this.isTest
|
|
|
vm.allFee = vm.sub(vm.allFee, vm.templateDetail[index].expense)
|
|
|
vm.judgeHavePlan()
|
|
|
},
|
|
|
spliceTimeRange: function(index, ind) {
|
|
|
var startPos = 0,
|
|
|
len = this.templateDetail[index].specialistServiceItemDO.selectDateRange[ind].length,
|
|
|
vm = this
|
|
|
for(var i = 0; i < ind; i++) {
|
|
|
startPos += this.templateDetail[index].specialistServiceItemDO.selectDateRange[i].length
|
|
|
}
|
|
|
this.templateDetail[index].specialistServiceItemDO.selectDateRange.splice(ind, 1)
|
|
|
this.templateDetail[index].specialistServiceItemDO.executeTime.splice(startPos, len)
|
|
|
this.isTest = !this.isTest
|
|
|
vm.allFee = vm.sub(vm.allFee, vm.mul(vm.templateDetail[index].expense, len))
|
|
|
vm.judgeHavePlan()
|
|
|
this.allFee = 0
|
|
|
$.each(vm.templateDetail, function(index, o) {
|
|
|
var fee = vm.mul(vm.mul(o.expense, o.frequency.count), o.specialistServiceItemDO.executeTime.length)
|
|
|
vm.allFee = vm.add(vm.allFee, fee)
|
|
|
});
|
|
|
},
|
|
|
// spliceTimeArr: function(index, ind) {
|
|
|
// var vm = this
|
|
|
// this.templateDetail[index].specialistServiceItemDO.executeTime.splice(ind, 1)
|
|
|
// this.isTest = !this.isTest
|
|
|
// vm.allFee = vm.sub(vm.allFee, vm.templateDetail[index].expense)
|
|
|
// vm.judgeHavePlan()
|
|
|
// },
|
|
|
// spliceTimeRange: function(index, ind) {
|
|
|
// var startPos = 0,
|
|
|
// len = this.templateDetail[index].specialistServiceItemDO.selectDateRange[ind].length,
|
|
|
// vm = this
|
|
|
// for(var i = 0; i < ind; i++) {
|
|
|
// startPos += this.templateDetail[index].specialistServiceItemDO.selectDateRange[i].length
|
|
|
// }
|
|
|
// this.templateDetail[index].specialistServiceItemDO.selectDateRange.splice(ind, 1)
|
|
|
// this.templateDetail[index].specialistServiceItemDO.executeTime.splice(startPos, len)
|
|
|
// this.isTest = !this.isTest
|
|
|
// vm.allFee = vm.sub(vm.allFee, vm.mul(vm.templateDetail[index].expense, len))
|
|
|
// vm.judgeHavePlan()
|
|
|
// },
|
|
|
judgeHavePlan: function() {
|
|
|
for(var k = 0; k < this.templateDetail.length; k++) {
|
|
|
for(var i = 0; i < this.templateDetail[k].specialistServiceItemDO.executeTime.length; i++) {
|
|
@ -709,7 +811,10 @@
|
|
|
type: o.flag == 2 ? 2 : 1,
|
|
|
doctor: o.executeDoctor,
|
|
|
doctorName: o.executeDoctorName,
|
|
|
executeTime: executeTime.join(",")
|
|
|
executeTimes: executeTime.join(","),
|
|
|
frequencyCode: o.frequencyCode,
|
|
|
timeType: o.timeType,
|
|
|
remark: o.remark || ''
|
|
|
}
|
|
|
data.detail.push(obj)
|
|
|
}
|