var aTerritory=[], iTerritory=0, aHospital, iHospital, aCategory, iCategory, aDepartment, iDepartment, aPerson, iPerson, oPerson;
|
var oMeet={}, fxSelect, sDate, sTime;
|
|
$(document).ready( onDocumentReady );
|
|
function onDocumentReady() {
|
pageInit(showPersonList);
|
}
|
|
function promptSelection(field, content) {
|
var p=$("#prompt_"+field);
|
p.html(content);
|
p.attr("class", "div_form_content");
|
$("#row_"+field).show();
|
}
|
|
function showPersonList() {
|
menuSwitch("person_list");
|
aPage.pop();
|
promptPerson("showPersonInfo()");
|
}
|
|
function showPersonInfo() {
|
pageGo("person_info");
|
loadPersonInfo();
|
}
|
|
function loadPersonInfo() {
|
var req={};
|
req.person_uid=aPerson[iPerson].uid;
|
jsonRequest("client", "load_person_info", req, onPersonInfoResponse, "正在获取客户信息……请稍候");
|
}
|
|
function onPersonInfoResponse(res) {
|
oPerson=res;
|
var labels=["姓名", "性别", "医院", "科室", "职位", "职称", "联系电话", "电子邮件", "英文姓名", "英文职务", "其他信息"];
|
var genders=["", "男", "女"];
|
var contents=[res.name, genders[res.gender], res.hospital_name, res.department_name, res.title, res.level,
|
res.phone, res.email, res.name_en, res.title_en, res.info];
|
var html=property(labels, contents);
|
$("#div_person_info").html(html);
|
}
|
|
function showPersonAdd() {
|
oPerson={level:"", gender:0};
|
showPersonEdit();
|
}
|
|
function showPersonEdit() {
|
$("#button_person_close").toggle((oPerson.uid!=null));
|
$("#input_person_name").val(oPerson.name);
|
$("#input_person_title").val(oPerson.title);
|
$("#input_person_phone").val(oPerson.phone);
|
$("#input_person_email").val(oPerson.email);
|
$("#input_person_name_en").val(oPerson.name_en);
|
$("#input_person_title_en").val(oPerson.title_en);
|
$("#input_person_info").val(oPerson.info);
|
promptSelection("person_hospital_name", oPerson.hospital_name);
|
promptSelection("person_department_name", oPerson.department_name);
|
var levels=["", "住院医师", "主治医师", "副主任医师", "主任医师"];
|
var level=levels.indexOf(oPerson.level);
|
toggleSwitch("level", level);
|
toggleSwitch("gender", oPerson.gender);
|
pageGo("person_edit");
|
$("#input_person_name").focus();
|
}
|
|
function promptPersonClose() {
|
showConfirm("是否删除客户信息?", "confirmPersonClose()");
|
}
|
|
function confirmPersonClose() {
|
var req={person_uid:oPerson.uid};
|
jsonRequest("client", "do_person_close", req, onPersonCloseResponse);
|
}
|
|
function onPersonCloseResponse() {
|
alertMessage("客户信息已删除");
|
pageBack();
|
pageBack();
|
loadPersonList();
|
}
|
|
function setLevel(i) {
|
var levels=["", "", "主治医师", "副主任医师", "主任医师"];
|
oPerson.level=levels[i];
|
if ($("#input_person_title").val()=="") {
|
$("#input_person_title").val(levels[i]);
|
}
|
toggleSwitch("level", i);
|
}
|
|
function setGender(i) {
|
oPerson.gender=i;
|
toggleSwitch("gender", i);
|
}
|
|
function confirmPersonEdit() {
|
oPerson.name=$("#input_person_name").val();
|
oPerson.title=$("#input_person_title").val();
|
oPerson.phone=$("#input_person_phone").val();
|
oPerson.email=$("#input_person_email").val();
|
oPerson.name_en=$("#input_person_name_en").val();
|
oPerson.title_en=$("#input_person_title_en").val();
|
oPerson.info=$("#input_person_info").val();
|
if (oPerson.uid) {
|
oPerson.person_uid=oPerson.uid;
|
}
|
if (!oPerson.hospital_uid) {
|
alertMessage("请选择医院");
|
} else if (!oPerson.department_uid) {
|
alertMessage("请选择科室");
|
} else if (!oPerson.name) {
|
alertMessage("请填写姓名");
|
} else if (!oPerson.title) {
|
alertMessage("请填写职位");
|
} else {
|
jsonRequest("client", "do_person_edit", oPerson, onPersonEditResponse, "正在保存客户信息……请稍候");
|
}
|
}
|
|
function onPersonEditResponse(res) {
|
pageBack();
|
if (aPage[aPage.length-1]=="person_list") {
|
loadPersonList();
|
} else {
|
loadPersonInfo();
|
}
|
}
|
|
/************ TERRITORY *************/
|
function promptTerritory() {
|
pageGo("territory_selection");
|
loadTerritoryList();
|
}
|
|
function loadTerritoryList() {
|
jsonRequest("client", "load_territory_list", {}, onTerritoryListResponse, "正在获取团队成员……请稍候");
|
}
|
|
function onTerritoryListResponse(res) {
|
aTerritory=res.territory_list;
|
var html="";
|
for (var i=0; i<aTerritory.length; i++) {
|
var t=aTerritory[i];
|
html+=div("div_employee_"+(iTerritory==i?"on":"off"),
|
img("img_employee_headimg", t.headimg)+
|
div("div_employee_name", t.name)+
|
div("div_employee_code", t.code)+
|
div("div_employee_title", t.title)+
|
div("div_employee_level", t.level), "selectTerritory("+i+")");
|
}
|
$("#div_territory_group").html(html);
|
}
|
|
function selectTerritory(i) {
|
iTerritory=i;
|
pageBack();
|
}
|
|
/************ HOSPITAL ************/
|
|
function promptHospital() {
|
pageGo("hospital_selection");
|
loadHospitalList();
|
}
|
|
function loadHospitalList() {
|
jsonRequest("client", "load_hospital_list", {}, onHospitalListResponse, "正在获取医院列表……请稍候");
|
}
|
|
function onHospitalListResponse(res) {
|
aHospital=res.hospital_list;
|
var html="";
|
for (var i=0; i<aHospital.length; i++) {
|
var hp=aHospital[i];
|
html+=div("div_hospital_item",
|
div("div_hospital_code", hp.code)+
|
div("div_hospital_name", hp.name),
|
"selectHospital("+i+")");
|
}
|
$("#div_hospital_group").html(html);
|
}
|
|
function selectHospital(i) {
|
iHospital=i;
|
promptSelection("person_hospital_name", aHospital[iHospital].name);
|
oPerson.hospital_uid=aHospital[iHospital].uid;
|
promptDepartment();
|
}
|
|
/**************** DEPARTMENT ******************/
|
|
function promptDepartment() {
|
if (iHospital>=0) {
|
pageGo("department_selection");
|
loadDepartmentList();
|
} else {
|
alertMessage("请先选择医院");
|
}
|
}
|
|
function loadDepartmentList() {
|
var req={};
|
req.hospital_uid=aHospital[iHospital].uid;
|
jsonRequest("client", "load_department_list", req, onDepartmentListResponse, "正在获取科室列表……请稍候");
|
}
|
|
function onDepartmentListResponse(res) {
|
aDepartment=res.department_list;
|
var html="";
|
for (var i=0; i<aDepartment.length; i++) {
|
var dept=aDepartment[i];
|
html+=div("div_department_item",
|
div("div_department_name", dept.name)+
|
div("div_department_name_ch", dept.name_ch)+
|
div("div_department_name_en", dept.name_en),
|
"selectDepartment("+i+")");
|
}
|
$("#div_department_group").html(html);
|
}
|
|
function selectDepartment(i) {
|
iDepartment=i;
|
promptSelection("person_department_name", aDepartment[iDepartment].name);
|
oPerson.department_uid=aDepartment[iDepartment].uid;
|
if (aPage[aPage.length-2]=="hospital_selection") {
|
pageBack();
|
}
|
pageBack();
|
}
|
|
/******************** CATEGORY *********************/
|
function promptCategory() {
|
pageGo("category_selection");
|
loadCategoryList();
|
}
|
|
function loadCategoryList() {
|
jsonRequest("client", "load_category_list", {}, onCategoryListResponse, "正在获取科室类型……请稍候");
|
}
|
|
function onCategoryListResponse(res) {
|
aCategory=res.category_list;
|
var html="", major="";
|
for (var i=0; i<aCategory.length; i++) {
|
var category=aCategory[i];
|
if (category.major!=major) {
|
major=category.major;
|
html+=div("div_category_major", major);
|
}
|
html+=div("div_category_item",
|
div("div_category_name_ch", category.name_ch)+
|
div("div_category_name_en", category.name_en),
|
"iCategory="+i+"; showDepartmentAdd();" );
|
}
|
$("#div_category_group").html(html);
|
}
|
|
function showDepartmentAdd() {
|
var category=aCategory[iCategory];
|
$("#input_department_name").val(category.name_ch);
|
$("#div_category_name_ch").html(category.name_ch);
|
$("#div_category_name_en").html(category.name_en);
|
pageGo("department_add");
|
$("#input_department_name").focus();
|
}
|
|
function confirmDepartmentAdd() {
|
var req={};
|
req.hospital_uid=aHospital[iHospital].uid;
|
req.category_code=aCategory[iCategory].code;
|
req.department_name=$("#input_department_name").val();
|
if (!req.department_name) {
|
alertMessage("请填写科室名称");
|
} else {
|
var title=$("#input_person_title_ch").val();
|
$("#input_person_title").val(title);
|
jsonRequest("client", "do_department_add", req, onDepartmentAddResponse, "正在添加新的科室……请稍候");
|
}
|
}
|
|
function onDepartmentAddResponse(res) {
|
oPerson.department_uid=res.department_uid;
|
promptSelection("person_department_name", res.department_name);
|
pageBack();
|
pageBack();
|
pageBack();
|
pageBack();
|
}
|
|
/************* PERSON *************/
|
|
function promptPerson(fx) {
|
fxSelect=fx;
|
pageGo("person_selection");
|
loadPersonList();
|
}
|
|
function loadPersonList() {
|
var req={};
|
if (oMeet.hospital_uid) {
|
req.hospital_uid=oMeet.hospital_uid;
|
}
|
jsonRequest("client", "load_person_list", req, onPersonListResponse, "正在获取医生列表……请稍候");
|
}
|
|
function onPersonListResponse(res) {
|
aPerson=res.person_list;
|
var html="", code="";
|
for (var i=0; i<aPerson.length; i++) {
|
var person=aPerson[i];
|
if (person.hospital_code != code) {
|
html+=div("div_person_hospital", person.hospital_name+" ("+person.hospital_code+") ");
|
code=person.hospital_code;
|
}
|
html+=div("div_person_item",
|
div("div_person_doctor_"+person.gender, "")+
|
div("div_person_name", person.name)+
|
div("div_person_title", person.title)+
|
div("div_person_department_name", person.department_name),
|
"iPerson="+i+"; "+fxSelect );
|
}
|
$("#div_person_group").html(html);
|
}
|
|
function selectMeetPerson() {
|
var person=aPerson[iPerson];
|
oMeet.person_uid=person.uid;
|
promptSelection("meet_person_name", person.name);
|
promptSelection("meet_department_name", person.department_name);
|
promptSelection("meet_hospital_name", person.hospital_name);
|
pageGo("meet");
|
if ($("#row_meet_objective").is(":visible")) {
|
$("#input_meet_objective").focus();
|
} else {
|
$("#input_meet_content").focus();
|
}
|
}
|
|
/************* DATE **************/
|
|
function promptTime(fx) {
|
fxSelect=fx;
|
var html="";
|
var di0=getDateInfo();
|
var ms=di0.ms-1000*60*60*24*(di0.day-1);
|
var di=getDateInfo(ms);
|
|
for (var m=0; m<2; m++) {
|
html+=div("div_date_month", di.year+"年"+di.month+"月");
|
for (var w=0; w<di.week; w++) {
|
var b=(w==0)?"off":"on";
|
html+=div("div_date_item_"+b);
|
}
|
var m1=di.month;
|
while (m1==di.month) {
|
var b=(di.week==0 || di.week==6)?"off":"on";
|
var today=(di.str==di0.str)?" div_date_today":"";
|
html+=div("div_date_item_"+b+today, di.day, "sDate='"+di.str+"'; promptHour();");
|
ms+=1000*60*60*24;
|
di=getDateInfo(ms);
|
}
|
for (var w=di.week; w<7; w++) {
|
var b=w==6?"off":"on";
|
html+=div("div_date_item_"+b);
|
}
|
}
|
$("#div_date_group").html(html);
|
pageGo("date_selection");
|
}
|
|
function getDateInfo(ms) {
|
var di={};
|
di.date=ms?new Date(ms):new Date();
|
di.year=di.date.getFullYear();
|
di.month=di.date.getMonth()+1;
|
di.day=di.date.getDate();
|
di.week=di.date.getDay();
|
di.str=di.year+(di.month<10?"-0":"-")+di.month+(di.day<10?"-0":"-")+di.day;
|
di.ms=Date.parse(di.date)
|
return di;
|
}
|
|
function promptHour() {
|
var html="";
|
html+=htmlTimeRow("上午", "08");
|
html+=htmlTimeRow("", "09");
|
html+=htmlTimeRow("", "10");
|
html+=htmlTimeRow("", "11");
|
html+=htmlTimeRow("", "12");
|
html+=htmlTimeRow("下午", "13");
|
html+=htmlTimeRow("", "14");
|
html+=htmlTimeRow("", "15");
|
html+=htmlTimeRow("", "16");
|
html+=htmlTimeRow("", "17");
|
html+=htmlTimeRow("傍晚", "18");
|
html+=htmlTimeRow("", "19");
|
html+=htmlTimeRow("", "20");
|
$("#div_time_group").html(html);
|
pageGo("time_selection");
|
}
|
|
function htmlTimeRow(period, hour) {
|
return (period?div("div_time_divider"):"")+
|
div("div_time_row",
|
div("div_time_period", period, "sTime=sDate+' "+hour+":00'; "+fxSelect)+
|
div("div_time_hour", hour+":00", "sTime=sDate+' "+hour+":00'; "+fxSelect)+
|
div("div_time_half", hour+":15", "sTime=sDate+' "+hour+":15'; "+fxSelect)+
|
div("div_time_half", hour+":30", "sTime=sDate+' "+hour+":30'; "+fxSelect)+
|
div("div_time_half", hour+":45", "sTime=sDate+' "+hour+":45'; "+fxSelect) );
|
}
|
|
function selectPlanTime() {
|
promptSelection("meet_plan_time", sTime);
|
oMeet.plan_time=sTime;
|
promptPerson("selectMeetPerson()");
|
}
|
|
function selectCallTime() {
|
promptSelection("meet_call_time", sTime);
|
oMeet.call_time=sTime;
|
promptPerson("selectMeetPerson()");
|
}
|
|
function selectFinishTime() {
|
promptSelection("meet_call_time", sTime);
|
oMeet.call_time=sTime;
|
pageBack();
|
pageBack();
|
}
|
|
/************* MEET ***************/
|
|
function showPlanList() {
|
menuSwitch("plan_list");
|
loadPlanList();
|
}
|
|
function loadPlanList() {
|
var req={};
|
if (iTerritory>0) {
|
req.territory_uid=aTerritory[iTerritory].uid;
|
}
|
jsonRequest("client", "load_plan_list", req, onPlanListResponse, "正在获取拜访日程……请稍候");
|
}
|
|
function onPlanListResponse(res) {
|
aPlan=res.plan_list;
|
var lastDate="", html="";
|
for (var i=0; i<aPlan.length; i++) {
|
var plan=aPlan[i];
|
if (plan.date!=lastDate) {
|
lastDate=plan.date;
|
html+=div("div_plan_date", plan.date+plan.weekday);
|
}
|
html+=div("div_plan_item",
|
div("div_plan_time", plan.time)+
|
div("div_plan_person_name", plan.person_name)+
|
div("div_plan_department_name", plan.department_name)+
|
div("div_plan_hospital_name", plan.hospital_name)+
|
div("div_plan_objective", plan.objective)+
|
div("div_plan_called_"+(plan.called?"on":"off")),
|
plan.called?"":"showCallFinish("+i+")");
|
}
|
$("#div_plan_group").html(html);
|
}
|
|
function showCallList() {
|
menuSwitch("call_list");
|
loadCallList();
|
}
|
|
function loadCallList() {
|
var req={};
|
if (iTerritory>0) {
|
req.territory_uid=aTerritory[iTerritory].uid;
|
}
|
jsonRequest("client", "load_call_list", req, onCallListResponse, "正在获取拜访记录……请稍候");
|
}
|
|
function onCallListResponse(res) {
|
aCall=res.call_list;
|
var lastDate="", html="";
|
for (var i=0; i<aCall.length; i++) {
|
var call=aCall[i];
|
if (call.date!=lastDate) {
|
lastDate=call.date;
|
html+=div("div_plan_date", call.date+call.weekday);
|
}
|
html+=div("div_plan_item",
|
div("div_plan_time", call.time)+
|
(call.checkin?div("div_call_checkin"):"")+
|
div("div_plan_person_name", call.person_name)+
|
div("div_plan_department_name", call.department_name)+
|
div("div_plan_hospital_name", call.hospital_name)+
|
div("div_call_content", call.content)+
|
div("div_call_feedback", call.feedback) );
|
}
|
$("#div_call_group").html(html);
|
}
|
|
function showPlanAdd() {
|
oMeet={};
|
$("#row_meet_plan_time").show();
|
$("#row_meet_objective").show();
|
$("#row_meet_call_time").hide();
|
$("#row_meet_content").hide();
|
$("#row_meet_feedback").hide();
|
$("#input_meet_objective").val("");
|
promptTime("selectPlanTime()");
|
}
|
|
function showCallAdd() {
|
oMeet={};
|
$("#row_meet_plan_time").hide();
|
$("#row_meet_objective").hide();
|
$("#row_meet_call_time").show();
|
$("#row_meet_content").show();
|
$("#row_meet_feedback").show();
|
$("#input_meet_content").val("");
|
$("#input_meet_feedback").val("");
|
promptTime("selectCallTime()");
|
}
|
|
function showCallFinish(i) {
|
var plan=aPlan[i];
|
oMeet={};
|
oMeet.uid=plan.uid;
|
oMeet.call_time=plan.date+" "+plan.time;
|
promptSelection("meet_call_time", plan.date+" "+plan.time);
|
promptSelection("meet_hospital_name", plan.hospital_name);
|
promptSelection("meet_department_name", plan.department_name);
|
promptSelection("meet_person_name", plan.person_name);
|
$("#input_meet_content").val(plan.objective);
|
$("#input_meet_feedback").val("");
|
$("#row_meet_plan_time").hide();
|
$("#row_meet_objective").hide();
|
$("#row_meet_call_time").show();
|
$("#row_meet_content").show();
|
$("#row_meet_feedback").show();
|
pageGo("meet");
|
}
|
|
function confirmMeet() {
|
if (oMeet.plan_time) {
|
oMeet.objective=$("#input_meet_objective").val();
|
if (!oMeet.objective) {
|
alertMessage("请填写计划拜访目的");
|
} else {
|
jsonRequest("client", "do_plan_add", oMeet, onPlanAddResponse, "正在新建拜访计划……请稍候");
|
}
|
} else {
|
oMeet.content=$("#input_meet_content").val();
|
oMeet.feedback=$("#input_meet_feedback").val();
|
if (!oMeet.content) {
|
alertMessage("请填写实际拜访内容");
|
} else if (!oMeet.feedback) {
|
alertMessage("请填写拜访反馈信息");
|
} else {
|
jsonRequest("client", "do_call_add", oMeet, onCallAddResponse, "正在保存拜访内容……请稍候");
|
}
|
}
|
}
|
|
function onPlanAddResponse() {
|
pageGo("plan_list");
|
aPage=['menu', 'plan_list'];
|
loadPlanList();
|
}
|
|
function onCallAddResponse() {
|
pageGo("call_list");
|
aPage=['menu', 'call_list'];
|
loadCallList();
|
}
|
|
function promptMeetClose() {
|
showConfirm("是否取消拜访?", "confirmMeetClose()");
|
}
|
|
function confirmMeetClose() {
|
var req={meet_uid:oMeet.uid};
|
jsonRequest("client", "do_meet_close", req, onMeetCloseResponse);
|
|
}
|
|
function onMeetCloseResponse() {
|
alertMessage("拜访已取消");
|
pageBack();
|
loadPlanList();
|
}
|
|
|
/**************** KPI ***************/
|
|
function showKPI() {
|
menuSwitch("kpi");
|
loadKPI();
|
}
|
|
function loadKPI() {
|
var req={};
|
if (iTerritory>0) {
|
req.territory_uid=aTerritory[iTerritory].uid;
|
}
|
jsonRequest("client", "load_person_kpi", req, onKPIResponse, "正在统计客户拜访……请稍候");
|
}
|
|
function onKPIResponse(res) {
|
var html="";
|
for (var i=0; i<res.hospital_list.length; i++) {
|
var hos=res.hospital_list[i];
|
var h2="", h3="";
|
h3+=div("div_kpi_hospital_name", hos.name);
|
h3+=div("div_kpi_bar", "<div class='div_kpi_percent' style='width:"+hos.rate+"'></div>");
|
h3+=div("div_kpi_actual", "已拜访"+hos.actual+"位");
|
h3+=div("div_kpi_rate", hos.rate);
|
h3+=div("div_kpi_total", "目标"+hos.total+"位");
|
h2+=div("div_kpi_header", h3);
|
|
h3="";
|
for (var j=0; j<hos.called_list.length; j++) {
|
h3+=div("div_kpi_person_on", hos.called_list[j]);
|
}
|
h2+=div("div_kpi_person_group", h3);
|
|
h3="";
|
for (var j=0; j<hos.uncalled_list.length; j++) {
|
h3+=div("div_kpi_person_off", hos.uncalled_list[j]);
|
}
|
h2+=div("div_kpi_person_group", h3);
|
html+=div("div_kpi_item", h2);
|
}
|
$("#div_kpi_group").html(html);
|
}
|