var docInfo = JSON.parse(window.localStorage.getItem('wlyyAgent'));
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 TemplateItems = {
template: '
\
\
{{name}}\
\
\
请在左侧“服务项”列表中选择\
\
\
\
\
{{o.name}}
\
\
\
执行人员:\
家庭医生\
{{o.type==1?\'家庭医生\':\'专科医生\'}}\
\
\
医 院:\
待选择\
\
\
\
\
计划时间:\
不限频次\
{{o.frequencyName||\'待选择\'}}\
\
\
\
任务项目:{{seletc[\'name\']}}
\
\
\
\
\
\
\
费 用:\
元\
\
\
\
\
\
\
\
',
props: [],
data: function() {
return {
name: '',
items: [],
isNew: null,
templateId: "",
dialogVisible:false,
item: null,
seletc:{'frequency':'','time':'','doctor':'','name':'','index':'','i':''},
selectFrequencyItem:null,
multipleTimeList:{},
multipleTimeArr:[],
doctorList:[{name:'家庭医生',code:1},{name:'专科医生',code:2}], //执行人员列表
frequencysList1:[{'code':'','name':'不限频次'},{"code":"qd_10-week1","name":"1周/次","type":1,mode:"week"},
{"code":"qd_10-week1","name":"2周/次","type":2,mode:"week"},
{"code":"qd_10-month1","name":"1月/次","type":1,mode:"month"},
{"code":"qd_10-month1","name":"2月/次","type":2,mode:"month"},
{"code":"qd_10-month1","name":"3月/次","type":3,mode:"month"}], //频次列表-multiple
options:[{label:'0',value:'0'}]
}
},
beforeRouteEnter: function (to, from, next) {
next(function(vm) {
var query = vm.$route.query
vm.name = query.name || '模板未命名',
vm.templateId = query.templateId
if(from.path != "/template-item-detail" || from.path == "/") {
vm.items = []
}
if(vm.isNew == true || vm.isNew === "true") {
vm.isNew = true
} else {
vm.isNew = false
}
})
},
created: function() {
var vm = this
// 点击添加 初始化数据
EventBus.$on("add-template-item", function(o) {
if(o.isInit){
vm.items.push(o)
}else{
var isEast=_.findIndex(vm.items,{code:o.code})
if(isEast==-1){
o.list=[{}]
o.expense=0
vm.items.push(o)
}else{
_.map(vm.items,function(item){
if(item.code==o.code){
item.list.push({})
return item
}
})
}
}
_.map(vm.items, function (item) {
if(item.list.length>=1){
_.map(item.list,function(it){
!it.executeTimes?it.frequencyName='待选择':''
return it
})
}
return item
})
_.map(vm.items, function (item) {
_.map(item.list,function(it){
it.name=item.name
it.code=item.code
return it
})
return item
})
vm.$forceUpdate()
})
},
mounted: function() {
var vm = this
vm.initTimeData()
},
methods: {
deleteItem: function(o, i) {
var vm = this
o.enable = true
_.some(vm.items,function(item,index){
if(item.code==o.code){
item.list.splice(i, 1)
if(item.list.length==0){
vm.items.splice(index,1)
}
return true
}
})
vm.$forceUpdate()
EventBus.$emit("delete-template-item", o,i,vm.items)
},
initTimeData:function(){
var vm=this
vm.multipleTimeList ={"week":[],"month":[]}
for(var i=1;i<=28;i++){
switch(i){
case 1:vm.multipleTimeList.week.push({name:"周一",code:String(i)});break;
case 2:vm.multipleTimeList.week.push({name:"周二",code:String(i)});break;
case 3:vm.multipleTimeList.week.push({name:"周三",code:String(i)});break;
case 4:vm.multipleTimeList.week.push({name:"周四",code:String(i)});break;
case 5:vm.multipleTimeList.week.push({name:"周五",code:String(i)});break;
case 6:vm.multipleTimeList.week.push({name:"周六",code:String(i)});break;
case 7:vm.multipleTimeList.week.push({name:"周日",code:String(i)});break;
default:break;
}
// if(i<=7){
vm.multipleTimeList.month.push({name:i+"号",code:String(i)})
// }
}
},
// 编辑按钮
showDialog:function(item,index,i){
this.seletc['frequency']=item.frequencyName
if(this.seletc['frequency']=='待选择'){
this.seletc['frequency']='不限频次'
}
// 根据频率获取执行时间选择返回
if(this.seletc['frequency']){
this.selectFrequencyItem=_.find(this.frequencysList1,{'name':this.seletc['frequency']})
this.multipleTimeArr=this.multipleTimeList[this.selectFrequencyItem.mode]
}
this.seletc['doctor']=item.type
this.seletc['time']=item.dateCode
this.seletc['name']=item.name
this.seletc['index']=index
this.seletc['i']=i
this.dialogVisible = true
},
// 点击同意按钮
confirmTaskItem:function(){
var index=this.seletc['index'],
i=this.seletc['i'],
item=this.items[index].list[i];
if(this.seletc['frequency']=='不限频次'){
var list=[{'name':item.name,'code':item.code,'frequencyName':'不限频次'}]
this.items.splice(index,1,{'code':item.code,'name':item.name,'expense':0,list})
this.dialogVisible = false
return
}
item.type=this.seletc['doctor']
item.dateCode=this.seletc['time']
item.dateCode?item.dateName=_.find(this.multipleTimeArr,{'code':this.seletc['time']}).name:''
item.frequencyName=this.selectFrequencyItem.name
item.frequencyCode=this.selectFrequencyItem.code
if(item.dateCode){
item.date=getFreDateArr(this.selectFrequencyItem.mode+this.selectFrequencyItem.type, Number(item.dateCode)).map(function(o) {return o.format("YYYY-MM-DD")})
item.executeTimesArr = _.map(item.date,function(citem){
return citem+" 00:00"
})
item.executeTimes=item.executeTimesArr.join(",")
}
this.dialogVisible = false
},
selectFrequency:function(){
this.selectFrequencyItem=_.find(this.frequencysList1,{'name':this.seletc['frequency']})
this.multipleTimeArr=this.multipleTimeList[this.selectFrequencyItem.mode]
},
selectTime:function(item){
if(!this.seletc['frequency']){
showErrorMessage('请先选择频次')
return false
}
},
handleClose:function(){
this.dialogVisible = false
},
saveTemplate: function() {
var vm = this
//检查有频次时(同一个服务项超过1个)计划时间是否填写完整
var ispass=_.every(vm.items,function(item){
if(item.list.length>1){
return _.every(item.list,function(it){
return it.dateCode && it.type && it.frequencyCode
})
}else{
return true
}
})
if(!ispass){
showErrorMessage('请完善计划时间')
return false
}
var ispass1=_.every(vm.items,function(item){
if(item.code!='2'&&item.code!='3'){
return _.every(item.list,function(it,index){
return _.every(item.list,function(i,ind){
if(index!=ind){
var same=_.intersection(it.executeTimesArr,i.executeTimesArr)
if(same.length>0){
return false
}else{
return true
}
}else{
return true
}
})
})
}else{
return true
}
})
if(!ispass1){ //时间重复
showErrorMessage('存在重复时间')
return false
}
_.map(vm.items, function (item) {
item.plan=[]
// 过滤有执行时间的数组
var arr=[]
arr=_.filter(item.list,function(ee){
return ee.executeTimes
})
item.num=arr.length
_.map(item.list,function(it){
it.name=item.name
it.code=item.code
return it
})
// 存在执行时间
if(item.num){
item.plan =item.list||[]
item.remark=item.list[0].remark
_.map(item.plan,function(item2){
item2.executeTimes?item2.executeTimesArr=item2.executeTimes.split(','):''
item2.mode='multiple' //模板
item2.show=false
if(item2.type){
item2.doctorName=item2.type==1?'家庭医生':'专科医生'
}else{
item2.doctorName=''
}
item2.doctor=item2.type
_.map(vm.frequencysList1,function(it){
if(it.name==item2.frequencyName){
item2.frequencyName?item2.frequencyCode=it.code:''
}
})
item2.date=_.map(item2.executeTimesArr,function(item3){
return item3.substring(0,item3.length-6)
})
return item2
})
}
return item
})
var params = []
_.each(vm.items, function (item, index) {
if (item.plan && item.plan.length) {
_.each(item.plan, function (citem, cindex) {
var param = {
'templateId': vm.templateId,
"hospitalServiceItemId": item.code,
"type": citem.type, //1家医2专医
"executeTimes": citem.executeTimes,
"frequencyCode": citem.frequencyCode.split("-")[0],
'frequencyName':citem.frequencyName,
'dateName':citem.dateName,
'dateCode':citem.dateCode,
"timeType": 0, //1白天2晚上0全天
'expense':item.expense||0,
"remark": item.remark,
}
params.push(param)
})
} else {
var param = {
'templateId': vm.templateId,
"hospitalServiceItemId": item.code,
"type": '', //1家医2专医
"executeTimes": "",
"frequencyCode": "",
"timeType": 0, //1白天2晚上0全天
'expense':item.expense||0,
"remark": ""
}
params.push(param)
}
})
vm.loading.showModal()
rehaAPI.createTemplateDetail({
doctor: docInfo.uid,
json:JSON.stringify(params),
type: vm.isNew?"create":"edit"
}).then(function(res) {
if(res.status == 200) {
vm.loading.close()
showSuccessMessage('保存成功')
EventBus.$emit("refresh-index")
vm.$router.replace("/")
} else {
vm.loading.close()
showErrorMessage(res.msg)
}
}).catch(function(e) {
vm.loading.close()
console.error(e)
})
},
deleteTemplate: function() {
var vm = this
if(this.name=='系统模板'){
showErrorMessage('不能删除系统模板!')
return false
}
layer.confirm('确定删除该模板?', {
btn: ['确认','取消'] //按钮
}, function(){
vm.loading.showModal()
rehaAPI.deleteTemplate({
templateId: vm.templateId
}).then(function(res) {
vm.loading.close()
if(res.status == 200) {
showSuccessMessage('删除成功')
} else {
showErrorMessage(res.msg)
}
EventBus.$emit("refresh-index")
vm.$router.replace("/")
}).catch(function(e) {
vm.loading.close()
console.error(e)
})
}, function(){
});
},
toDetail: function(o) {
var vm = this
vm.item = o
vm.$router.push({
path:"/template-item-detail",
query: {
templateId: vm.templateId,
itemId: o.code
}
})
}
},
// watch: {
// '$route': function (to, from) {
// var vm = this
//// if(to.path == "/template-item-detail" && (from.path != "/template-item-detail" || from.path == "/")) {
//// EventBus.$emit("show-item-detail", vm.item)
//// }
// if(to.path == "/template-item-detail") {
// EventBus.$emit("show-item-detail", vm.item)
// }
// }
// }
}