mui.init();
var CITY_CODE = "350200";
var self,
userRole,
areaCode,
areaTitle,
initLevel,
level,
initDate,//记录从前一个页面跳转过来的日期
dateType,//记录前一个页面跳转时柱状图的日期类型 1-日期,2-周,3-月
disease, //记录从前一个页面跳转过来的疾病
status, //从前一个页面跳转过来的状态
expressType, //从前一个页面跳转过来的配送状态
selectedArea, //从前一个页面带过来的区域信息
startDate,
endDate,
currentYear,
minYear = '2017', //长处方功能开始的时间2017才有这个功能
page = 1,
pageSize = 10,
filterSelectedData = {
area: {
town: '',
hospital: ''
},
filter: {
disease: '',
status: '',
type: ''
},
date:{
sDate: '',
eData: '',
year: '',
month: ''
}
};
var now = new Date();
currentYear = now.getFullYear();
mui.plusReady(function(){
//获得权限
userRole = JSON.parse(plus.storage.getItem("selectedRole"));
areaCode = userRole.code;
self = plus.webview.currentWebview();
initDate = self.date;
dateType = self.dateType;
disease = self.disease;
status = self.status;
expressType = self.expressType;
areaCode = self.area + '';
level = areaCode == CITY_CODE ? 4 : areaCode.length==6 ? 3 : 2;
areaTitle = self.areaTitle;
$("#area").text(self.areaTitle);
//填充帅选条件
if(disease){
var val = 0;
if(disease == 'HP0047'){ //糖尿病
val = 2;
}else if(disease == 'HP0093'){ //高血压
val = 1;
}
$(".disease[data-val="+val+"]").addClass("active");
}
if(status){
$(".status[data-val="+status+"]").addClass("active");
}
if(expressType){
$(".express-type[data-val="+expressType+"]").addClass("active");
}
getStartEndDate(initDate, dateType);
//填充时间筛选数据
if(dateType == 1 || dateType == 3){
$("#date").text(initDate);
}else if(dateType == 2){
var str = startDate.substr(5, 5) + "~"+endDate.substr(5, 5);
$("#date").text(str);
//处理选中的时间
var $inputs = $(".date-input");
$($inputs[0]).val(startDate);
$($inputs[1]).val(endDate);
}
getFilterData();
getList(true);
initListPanelScroller();
initComminityScroller();
initYearScroller();
bindEvents();
})
function getFilterData(){
initLevel = userRole.code == CITY_CODE ? 4 : userRole.code.length==6 ? 3 : 2;
var areaTitle = userRole.name;
if(initLevel == 4){
getTown();
filterSelectedData.area.town = CITY_CODE;
}else if(initLevel == 3){
$("#districtPanel").hide();
filterSelectedData.area.town = userRole.code;
//TODO 获取社区列表
getHospital(userRole.code, userRole.name);
}else if(initLevel == 2){
filterSelectedData.area.hospital = userRole.code;
$("#districtPanel").hide();
var html = "
"+areaTitle+"";
$(".community-panel").empty().append(html);
}
var dateHtml = "";
for(i=currentYear; i>=minYear; i--){
dateHtml += ''+i+'年';
}
$("#yearPanel").empty().append(dateHtml);
}
//获得列表数据
function getList(isInit){
if(isInit){
page = 1;
}
var url = "/doctor/prescriptionInfo/getPrescriptionByCondition",
$disease = $(".disease.active"),
disease = $disease.length > 0 ? $disease.attr("data-val") : '',
$status = $(".status.active"),
status = $status.length > 0 ? $status.attr("data-val") : 1,
$type = $(".express-type.active"),
type = $type.length > 0 ? $type.attr("data-val") : '',
params = {
level: level,
area: areaCode,
disease: disease,
status: status,
type: type,
startTime: startDate,
endTime: endDate,
pageNo: page,
pageSize: pageSize
};
plus.nativeUI.showWaiting();
sendGet(url, params, null, function(res){
if(res.status == 200){
if(isInit){
mui('#listPanel').scroll().scrollTo(0,0);
if(res.data.length == 0){
$("#listPanel").hide();
$("#no_result_wrap").show();
}else{
$("#listPanel").show();
$("#no_result_wrap").hide();
$("#totalCount").text(res.data.count);
$("#totalAmount").text(res.data.totalAmount);
var html = template("list-tmp", res.data);
$("#listPanel .list-panel").empty().append(html);
if(res.data.length < pageSize){
mui('#listPanel').pullRefresh().endPullupToRefresh(true);
}else{
mui('#listPanel').pullRefresh().refresh(true);
page ++;
}
}
}else{
var html = template("list-tmp", res.data);
$("#listPanel .list-panel").append(html);
if(res.data.length < pageSize){
mui('#listPanel').pullRefresh().endPullupToRefresh(true);
}else{
mui('#listPanel').pullRefresh().endPullupToRefresh();
page ++;
}
}
}else{
mui.toast(res.msg);
}
plus.nativeUI.closeWaiting();
}, true);
}
//获得市区信息
function getTown(){
var url = "/area/"+CITY_CODE+"/towns";
sendGet(url, {city: CITY_CODE}, null, function(res){
if(res.status == 200){
console.log(res);
var html = template("town-tmp", {list: res.data, cityCode: CITY_CODE, cityName: userRole.name});
$("#districtPanel").empty().append(html);
//判断前一个页面带过来的区域是否在此页显示
if(level == 3){
$(".district").removeClass("active");
var $node = $(".district[data-code="+areaCode+"]");
$node.addClass("active");
getHospital(areaCode, $node.attr("data-name"));
}else if(level == 2){
var parentCode = areaCode.substr(0,6);
$(".district").removeClass("active");
var $node = $(".district[data-code="+parentCode+"]");
$node.addClass("active");
getHospital(parentCode, $node.attr("data-name"));
}
}
}, true);
}
//获得服务中心的数据
function getHospital(code, name){
var url = "/area/getHospitals",
params = {
town: code
};
$(".mui-loading").show();
$(".community-panel").hide();
sendGet(url, params, null, function(res){
if(res.status = 200){
var html = template("community-temp", {townCode: code, townName: name, list: res.data});
$(".community-panel").empty().append(html);
$(".mui-loading").hide();
$(".community-panel").show();
//判断前一个页面带过来的区域是否在此页显示
if(level == 2){
$("li[data-level=2]").removeClass("active");
$("li[data-code="+areaCode+"]").addClass("active");
}
}else{
$(".mui-loading").hide();
mui.toast(res.msg);
}
}, true);
}
function getStartEndDate(str, type){
//type 1-日,2-周,3-月, 4-年
switch(parseInt(type)){
case 1:
startDate = str;
endDate = str;
break;
case 2:
startDate = str;
var d = new Date(str),
end = new Date(str);
end.setDate(d.getDate() + 6);
endDate = end.format("yyyy-MM-dd");
break;
case 3:
var month = str.substr(5,2);
if(month == '12'){
startDate = str+"-01";
endDate = str+"-31";
}else{
var d = new Date(str);
startDate = d.format("yyyy-MM-dd");
d.setMonth(d.getMonth() + 1);
d.setDate(d.getDate()-1);
endDate = d.format("yyyy-MM-dd");
}
break;
case 4:
startDate = str+"-01-01";
endDate = str+"-12-31";
break;
}
}
function bindEvents(){
$("#area").on('click', function(){
if($(this).hasClass("active")){
$(this).removeClass("active");
$("#showHeader").removeClass("show");
$("#showHeader").hide();
return false;
}
$("#tabs .j-tag").removeClass("active");
$(this).addClass("active");
$("#areaPanel").show();
$("#filterPanel").hide();
$("#datePanel").hide();
$("#showHeader").show();
$("#showHeader").addClass("show");
});
$("#filter").on('click', function(){
if($(this).hasClass("active")){
$(this).removeClass("active");
$("#showHeader").removeClass("show");
$("#showHeader").hide();
return false;
}
$("#tabs .j-tag").removeClass("active");
$(this).addClass("active");
$("#areaPanel").hide();
$("#filterPanel").show();
$("#datePanel").hide();
$("#showHeader").show();
$("#showHeader").addClass("show")
});
$("#date").on('click', function(){
if($(this).hasClass("active")){
$(this).removeClass("active");
$("#showHeader").removeClass("show");
$("#showHeader").hide();
return false;
}
$("#tabs .j-tag").removeClass("active");
$(this).addClass("active");
$("#areaPanel").hide();
$("#filterPanel").hide();
$("#datePanel").show();
$("#showHeader").show();
$("#showHeader").addClass("show")
});
$("#showHeader").on('tap', '.tag', function(){
var $this = $(this);
if($this.hasClass("active")){
return false;
}
$this.siblings().removeClass("active");
$this.addClass("active");
//如果是日期选项,则清空输入框的内容
var type = $this.attr("data-type");
if(type == 'year'){
$(".date-input").val("");
}
});
$("#districtPanel").on('click', '.district', function(){
var $this = $(this),
code = $this.attr("data-code"),
name = $this.attr("data-name");
if($this.hasClass("active")){
return false;
}
$this.siblings().removeClass("active");
$this.addClass("active");
if(code == CITY_CODE){
$("#communityPanel .mui-loading").hide();
$("#communityPanel .community-panel").hide();
}
// $("#area").text(name);
// $("#area").attr("data-code", code);
//TODO 获得社区服务中心列表
getHospital(code, name);
});
$("#communityPanel").on('tap', "li", function(){
var $this = $(this),
code = $this.attr("data-code"),
name = $this.attr("data-name");
if($this.hasClass("active")){
return false;
}
$this.siblings().removeClass("active");
$this.addClass("active");
// $("#area").text(name);
// $("#area").attr("data-code", code);
})
$(".date-input").on('click', function(){
var picker = new mui.DtPicker({
"type": 'date',
"beginYear": minYear,
"endYear": currentYear
});
var $this = $(this);
picker.show(function(rs){
$this.val(rs.text);
//将不选中选中的月份和年份
$("#datePanel .tag").removeClass("active");
picker.dispose();
})
});
//重置按钮绑定事件
$("#showHeader").on('click', ".reset-btn", function(){
var activeTab = $("#tabs .j-tag.active").attr("id");
if(activeTab == "area"){
//位置的重置,直接使用默认初始的
var areaTitle = userRole.name;
$("#area").text(areaTitle);
if(initLevel == 4){
$("#districtPanel .district").removeClass("active");
$("#districtPanel .district").eq(0).addClass("active");
$(".community-panel").hide();
}else if(initLevel == 3){
$(".community-panel .district").removeClass("active");
$(".community-panel .district").eq(0).addClass("active");
}else if(initLevel == 2){
}
}else if(activeTab == "filter"){
$("#filterPanel").find(".tag").removeClass("active");
}else{
$("#datePanel").find(".tag").removeClass("active");
$("#datePanel").find(".date-input").val("");
}
});
//确定按钮绑定事件
$("#showHeader").on('click', ".confirm-btn", function(){
//先处理地区选中的值
if(initLevel == 4){
var $selectTown = $("#districtPanel .district.active");
filterSelectedData.area.town = $selectTown.attr("data-code");
if($selectTown.attr("data-code") != CITY_CODE){
var $hospital = $("#communityPanel li.active");
filterSelectedData.area.hospital = $hospital.attr("data-code");
$("#area").text($hospital.attr("data-name"));
$("#area").attr("data-code", $hospital.attr("data-code"));
areaCode = $hospital.attr("data-code");
level = $hospital.attr("data-code").length > 6 ? 2 : 3;
}else{
$("#area").text(userRole.name);
$("#area").attr("data-code", userRole.code);
areaCode = userRole.code;
level = 4;
}
}else if(initLevel == 3){
var $hospital = $("#communityPanel li.active");
filterSelectedData.area.hospital = $hospital.attr("data-code");
$("#area").text($hospital.attr("data-name"));
$("#area").attr("data-code", $hospital.attr("data-code"));
areaCode = $hospital.attr("data-code");
level = $hospital.attr("data-code").length > 6 ? 2 : 3;
}
//处理选中的时间
var $inputs = $(".date-input"),
sd = $($inputs[0]).val(),
ed = $($inputs[1]).val();
if(sd && ed){
startDate = sd;
endDate = ed;
$("#date").text("自定义时间");
}else if(sd || ed){
//不改变时间值
}else{
var year = $("#yearPanel .tag.active").attr("data-val"),
month = $(".month.active").attr("data-val");
if(year && month){
getStartEndDate(year+"-"+month, 3);
$("#date").text(year+"年"+month+"月");
}else if(year && !month){
getStartEndDate(year, 4);
$("#date").text(year+"年");
}else if(!year && month){
mui.toast("请选择年份");
return false;
}
}
getList(true);
$("#showHeader").hide();
});
$("#listPanel").on('tap', ".order", function(){
var code = $(this).attr("data-code");
openWebview("xufangxiangqing2.html", {prescriptionCode: code});
});
$(".search-input").on('click', function(){
openWebview("search-xufang-order.html");
});
template.helper("getStatusName", function(status){
status = parseInt(status);
if(status == 100){
return "已完成";
}else if(status == -2){
return "居民取消";
}else if(status == -1){
return "审核不通过";
}else if(status <= -3){
return "其他原因取消";
}else if(status >=0 && status<100){
return "进行中";
}
});
template.helper("getExpressName", function(type){
switch(type){
case 1:
return '自取';
break;
case 3:
return "健管师配送";
break;
case 2:
return "快递配送";
break;
default:
return "";
break;
}
})
template.helper("formatDate", function(str){
if(!str){
return "";
}
var timeStm = parseInt(str),
d = new Date(timeStm);
return d.format("yyyy-MM-dd hh:mm")
})
}
function initListPanelScroller(){
//阻尼系数
var deceleration = mui.os.ios?0.003:0.0009;
mui('.mui-scroll-wrapper').scroll({
bounce: false,
indicators: true, //是否显示滚动条
deceleration:deceleration
});
mui("#listPanel").pullRefresh({
up: {
callback: function(){
var self = this;
setTimeout(function(){
getList(false);
// self.endPullupToRefresh();
}, 500);
}
}
})
}
function initComminityScroller(){
mui("#communityPanel .mui-scroll-wrapper").pullRefresh();
}
function initYearScroller(){
mui("#year-panel").scroll({
scrollY: false, //是否竖向滚动
scrollX: true, //是否横向滚动
startX: 0, //初始化时滚动至x
startY: 0, //初始化时滚动至y
indicators: true, //是否显示滚动条
deceleration:0.0006, //阻尼系数,系数越小滑动越灵敏
bounce: true
});
}