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) // } // } // } }