$(function () {
var repairMain = JSON.parse(sessionStorage.getItem("repair_main")); //报修主体
var reqHasCategory = JSON.parse(sessionStorage.getItem("reqHasCategory")); //自动建单
var loginUser = JSON.parse(window.sessionStorage.getItem("loginUser")); //用户信息
// repairMain.valueconfig = '2';
var placeList = []; //获取到的地点列表
var wxId = ""; //微信报修ID
var processMessageData = null; //详情页流程数据
var dictionary = []; //详情页流程数据
var imgList = []; //待上传的图片信息formData
var imgAjaxNum = 0; //待上传的图片请求计数器
var currentBxOrCh = 0; //0是最新报修列表,1是查号列表
var bx_pageNum = 0; //最新报修或电话查号分页
var bx_arr = { data: [] }; //最新报修所有数据列表
var ch_arr = { list: [] }; //电话查号所有数据列表
var bx_len = 0; //最新报修或电话查号所有数据列表数量
var solution_pageNum = 0; //常见问题分页
var solution_arr = { list: [] }; //常见问题所有数据列表
var solution_len = 0; //常见问题所有数据列表数量
var isSearch = false; //是否搜索常见问题
var isSearch1 = false; //是否搜索电话挂号
var ks_pageNum = 0; //科室下拉列表分页
var ks_len = 0; //科室所有数据列表数量
var ks_arr = { list: [] }; //科室所有数据
// 兼容ie的placeholder
$("input, textarea").placeholder();
//获取报修类别列表seimin
function getEventClass() {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "bpm/data/fetchDataList/incidentcategory",
data: JSON.stringify({
idx: 0,
sum: 100,
incidentcategory: { selectType: "one" },
}),
success: function (res) {
if (res.status == 200) {
var html = "";
for (var i = 0; i < res.list.length; i++) {
html +=
'";
}
$("#bx_eventClass").html(html);
}
},
error: function (err) {
console.log(err);
},
});
}
// 自动建单
if (reqHasCategory.valueconfig == 1) {
getEventClass();
} else {
$("#if_bx_eventClass").remove();
}
// 获取公告列表3条
getNoticeList({ idx: 0, sum: 3, notice: { status: 1 } });
// 获取常见问题列表
getSolutionList({
idx: solution_pageNum,
sum: 10,
solution: { title: "", status: { id: 72 }, solutionRange: 1 },
});
// 获取区域列表
getAreaList({ idx: 0, sum: 1000, area: { wechatArea: true } });
// 获取地点列表
getPlaceList({ idx: 0, sum: 1000, area: { wechatAreaId: "" } });
// 获取WxId
getWxId();
// 获取最新报修列表
getNewBxList(currentBxOrCh);
//获取详情页流程数据
getProcessMessageData();
//获取评价五颗星的数据
getDictionary();
//初始化页面--seimin
function pageInit() {
$("#bx_name").val(loginUser.name); //事件报修表单->报修人
$(".logOut .user").text(loginUser.name); //登录人名称
if (repairMain.valueconfig == 1) {
//报修人
$(".repairFlag").show(); //class是repairFlag的时候显示元素
$(".repairFlagReverse").hide(); //class是repairFlagReverse的时候隐藏元素
$("#bx_tel").val(loginUser.mphone); //事件报修表单->联系电话
} else if (repairMain.valueconfig == 2) {
//报修科室
$(".repairFlag").hide(); //class是repairFlag的时候隐藏元素
$(".repairFrepairFlagReverselag").show(); //class是repairFlagReverse的时候显示元素
$("#bx_tel").val(loginUser.dept ? loginUser.dept.phone : ""); //事件报修表单->联系电话
}
}
pageInit();
//故障地点seimin
// (function () {
// //故障地点带入区域地点
// $('#bx_address').val(loginUser.place ? loginUser.place.area.area + loginUser.place.place : '');
// //点击文本框
// $('#bx_address').on('click', searchAreaPlace);
// //修改文字,实时监听
// $('#bx_address').on('keyup', debounce(searchAreaPlace, 500));
// //报修科室滚动条
// $('#bx_address_ul').niceScroll();
// //故障地点搜索
// function searchAreaPlace() {
// $.ajax({
// type: "POST",
// contentType: "application/json;charset=UTF-8",
// url: baseUrl + "apply/bpm/searchFaultLocation",
// data: JSON.stringify({ "searchKey": $('#bx_address').val() }),
// success: function (res) {
// if (res.state == 200) {
// $('#bx_address_ul').find('li').off('click');
// var html = template('bx_address_ul_temp', { list: res.result });
// $('#bx_address_ul').html(html).show().find('li').on('click', function () {
// $('#bx_address').val($(this).text());//文本框赋值
// $('#bx_address_ul').hide();
// })
// }
// },
// error: function (err) {
// console.log(err);
// }
// });
// }
// //点击空白处隐藏
// $(document).on('click', function (e) {
// if (e.target !== $('#bx_address').get(0)) {
// $('#bx_address_ul').hide();
// //模拟placeholder
// if ($('#bx_address').val() == '') {
// $('#bx_address').val('请输入故障地点');
// }
// }
// })
// })();
//报修科室seimin
(function () {
//自动带入报修科室
if (loginUser.dept) {
$("#bx_ks").val(loginUser.dept.dept).data("id", loginUser.dept.id);
} else {
$("#bx_address").val("请输入详细的地址");
}
//点击文本框
$("#bx_ks").on("click", function () {
ks_arr.list = [];
ks_pageNum = 0;
getDepartmentList(0);
$("#bx_ks_ul").scrollTop(0);
});
//修改文字,实时监听
$("#bx_ks").on(
"keyup",
debounce(function () {
ks_arr.list = [];
ks_pageNum = 0;
getDepartmentList(0);
$("#bx_ks_ul").scrollTop(0);
}, 500)
);
//报修科室必须选中下拉框,否则恢复为默认值
$("#bx_ks").on("blur", function () {
//自动带入报修科室
if (loginUser.dept) {
// document.title +=1;
$(this).val(loginUser.dept.dept).data("id", loginUser.dept.id);
} else {
$(this).val("").data("id", "");
}
});
//报修科室滚动条
$("#bx_ks_ul").niceScroll();
//滚动加载
$("#bx_ks_ul").on(
"scroll",
debounce(function () {
var itemLen = $(this).find("li").length;
var itemHeight = $(this).find("li").outerHeight();
var wrapHeight = $(this).outerHeight();
var max = itemLen * itemHeight - wrapHeight;
var diff = max - $(this).scrollTop();
if (Math.abs(diff) < 200) {
ks_pageNum++;
if (ks_len != itemLen) {
ks_len = itemLen;
getDepartmentList(ks_pageNum);
}
}
}, 500)
);
//获取科室信息
function getDepartmentList(idx) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "user/data/fetchDataList/department",
data: JSON.stringify({
idx: idx,
sum: 50,
department: { dept: $("#bx_ks").val() },
}),
success: function (res) {
if (res.status == 200) {
$("#bx_ks_ul").find("li").off("click");
//添加分页数据,汇总
ks_arr.list = ks_arr.list.concat(res.list);
var html = template("bx_ks_ul_temp", ks_arr);
// 选中科室
$("#bx_ks_ul")
.html(html)
.show()
.find("li")
.on("click", function () {
// document.title +=2;
$("#bx_ks").val($(this).text()).data("id", $(this).data("id")); //文本框赋值
// 故障地点和电话联动
var id = $(this).data("id");
for (var i = 0; i < ks_arr.list.length; i++) {
if (ks_arr.list[i].id == id) {
$("#bx_tel").val(ks_arr.list[i].phone);
$("#bx_address").val(
ks_arr.list[i].place.place
? ks_arr.list[i].place.area.area +
ks_arr.list[i].place.place
: ks_arr.list[i].place.area
);
}
}
$("#bx_ks_ul").hide();
});
}
},
error: function (err) {
console.log(err);
},
});
}
//点击空白处隐藏
$(document).on("click", function (e) {
if (e.target !== $("#bx_ks").get(0)) {
$("#bx_ks_ul").hide();
//模拟placeholder
if ($("#bx_ks").val() == "") {
$("#bx_ks").val("请选择报修科室");
}
}
});
})();
// 滚动条
$(".r-list").niceScroll();
$(".form").niceScroll();
$(".con-wrap").niceScroll();
// pop1HdScroll();
//placeholder
$("#searchPro")
.on("focus", function () {
if ($(this).val() == "请输入关键字") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入关键字");
}
});
$("#bx_address").on("focus", function () {
if ($(this).val() == "请输入详细的地址") {
$(this).val("");
}
});
$("#bx_ks").on("focus", function () {
if ($(this).val() == "请选择报修科室") {
$(this).val("");
}
});
$("#bx_description")
.on("focus", function () {
if ($(this).val() == "请输入报修的内容") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入报修的内容");
}
});
$("#bx_name")
.on("focus", function () {
if ($(this).val() == "请输入联系人") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入联系人");
}
});
$("#bx_tel")
.on("focus", function () {
if ($(this).val() == "请输入联系电话") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入联系电话");
}
});
//报修图片预览
$(".formItem .f-images-item--file .f-file").on("change", function () {
if (!isLtIe10()) {
//ie>=10
var file = $(this)[0].files[0]; //获取文件信息
var $this = $(this);
//防止ie10,ie11触发两次change
if (file == null) {
return;
}
//小于10M&&格式是png与jpg
if (file.size.toFixed(1) < 10 * 1024 * 1024 && isAllowFile(file.name)) {
var reader = new FileReader(); //调用FileReader
reader.readAsDataURL(file); //将文件读取为 DataURL(base64)
reader.onload = function (evt) {
//读取操作完成时触发。
$this.val(""); //清空file的值
//最多3张图
if ($("#f-images-list").find(".f-images-item").length == 3) {
$("#f-images-list").find(".f-images-item--file").hide();
} else {
$("#f-images-list").find(".f-images-item--file").show();
}
var formData = new FormData();
formData.append("fileName", file.name);
formData.append("file", file);
var imgId = uuid.v4(); //id
imgList.push({ list: formData, id: imgId });
$("#f-images-list").prepend(
$(
'
'
)
);
//取消上传图片
$(".formItem .f-images-item .f-thumb-close").on("click", function () {
for (var i = 0; i < imgList.length; i++) {
if (
imgList[i].id == $(this).closest(".f-images-item").data("id")
) {
imgList.splice(i, 1);
break;
}
}
$(this).closest(".f-images-item").remove();
if ($("#f-images-list").find(".f-images-item").length == 4) {
$("#f-images-list").find(".f-images-item--file").hide();
} else {
$("#f-images-list").find(".f-images-item--file").show();
}
});
};
} else {
alert("图片只能使JPG或PNG格式,并且不能超过10M");
}
} else {
var cloneObj1 = $(".f-images-item").eq(0).clone(true); //克隆默认
cloneObj1.find(".f-thumb-wrap").remove(); //移除图片
cloneObj1.find(".f-thumb-close").remove(); //移除X
cloneObj1.find(".iframe-upload").remove(); //移除iframe
var cloneObj2 = $(".f-images-item").eq(0).clone(true); //克隆默认
cloneObj2.find(".f-thumb-wrap").remove(); //移除图片
cloneObj2.find(".f-thumb-close").remove(); //移除X
cloneObj2.find(".iframe-upload").remove(); //移除iframe
$(this).get(0).select();
$(this).get(0).blur(); //ie9兼容
var url = document.selection.createRange().text;
if (/.+\.(jpg|png|jpeg)$/.test(url)) {
var urlIndex = url.lastIndexOf("\\");
var urlFileName = url.substr(urlIndex + 1); //文件名
var ieImgId = uuid.v4();
imgList.push({ fileName: urlFileName, id: ieImgId });
$(this).closest(".f-images-item").data("id", ieImgId); //绑定id到元素上
$(this)
.closest(".form-file")
.after(
$(
'
'
)
);
$(this)
.closest(".form-file")
.after($(''));
$(this)
.closest(".form-file")
.after(
$(
''
)
);
$(this).after(
$(
''
)
);
$(this)
.closest(".form-file")
.attr("target", "imgupload" + ieImgId);
if ($("#f-images-list").find(".f-images-item").length < 3) {
$("#f-images-list").append(cloneObj1);
}
//取消上传图片(取消------------------)
$(".formItem .f-images-item .f-thumb-close").on("click", function () {
for (var i = 0; i < imgList.length; i++) {
if (
imgList[i]["id"] == $(this).closest(".f-images-item").data("id")
) {
imgList.splice(i, 1);
break;
}
}
$(this).closest(".f-images-item").remove();
if ($(".formItem .f-images-item").length == imgList.length) {
$("#f-images-list").append(cloneObj2);
}
});
} else {
alert("图片只能使JPG或PNG格式,并且不能超过10M");
}
}
});
//常见问题搜索
$("#searchProSubmit").on("click", search);
$("#searchPro").on("keyup", function (e) {
if (e.keyCode == 13) {
search();
}
});
function search() {
solution_pageNum = 0;
var val =
$.trim($("#searchPro").val()) == "请输入关键字"
? ""
: $.trim($("#searchPro").val());
isSearch = true;
getSolutionList({
idx: solution_pageNum,
sum: 10,
solution: { title: val, status: { id: 72 } },
});
}
//选择框联动
$("#area_list").on("change", function () {
//获取id
var id = $(this).val();
// 过滤数据
var resFilter = { list: [] };
for (var i = 0; i < placeList.length; i++) {
if (placeList[i]["area"]["id"] == id) {
resFilter.list.push(placeList[i]);
}
}
//填充数据
var html = template("place_list_temp", resFilter);
$("#place_list").html(html);
});
// 提交报修
$("#f-submit").on("click", function () {
//按钮禁止
$(this).prop("disabled", true);
$(this).addClass("f-submit--disable");
if (repairMain.valueconfig == 2) {
//如果是报修科室
if (
$("#bx_ks").val().replace(/\s/g, "") === "" ||
$("#bx_ks").val().replace(/\s/g, "") === "请选择报修科室"
) {
alert("报修科室不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
}
if (repairMain.valueconfig == 1) {
//如果是报修人
if (
$("#bx_name").val().replace(/\s/g, "") === "" ||
$("#bx_name").val().replace(/\s/g, "") === "请输入联系人"
) {
alert("联系人不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
} else if (repairMain.valueconfig == 2) {
//报修主体是报修科室的话,非必填
if ($("#bx_name").val().replace(/\s/g, "") === "请输入联系人") {
$("#bx_name").val("");
}
}
if ($("#area_list").val() < 1) {
alert("区域不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
if ($("#place_list").val() < 1) {
alert("地点不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
if (
$("#bx_tel").val().replace(/\s/g, "") === "" ||
$("#bx_tel").val().replace(/\s/g, "") === "请输入联系电话" ||
!/^[\d\-]*$/.test($("#bx_tel").val())
) {
alert("请输入正确的联系电话");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
if (
$("#bx_address").val().replace(/\s/g, "") === "" ||
$("#bx_address").val() == "请输入详细的地址"
) {
alert("地址不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
if (
$("#bx_description").val().replace(/\s/g, "") === "" ||
$("#bx_description").val() == "请输入报修的内容"
) {
alert("报修内容不能为空");
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
return;
}
var data = { verification: "true" };
data.incident = {
address: $.trim($("#bx_address").val()),
areaId: $.trim($("#area_list").val()),
bxcode: wxId,
contacts: $.trim($("#bx_name").val()),
contactsInformation: $("#bx_tel").val(),
description: $.trim($("#bx_description").val()),
fileUrl: "url",
placeId: $.trim($("#place_list").val()),
requester: loginUser,
sourceType: "webRequesterIncident",
};
// 自动建单
if (reqHasCategory.valueconfig == 1) {
data.incident.categoryId = $("#bx_eventClass").val();
}
data.loginUser = {
id: loginUser.id,
account: loginUser.account,
};
if (repairMain.valueconfig == "2") {
//如果有报修科室
data.incident.deptId = $("#bx_ks").data("id");
}
addBxMsg(data);
});
// 注销登录
$(".logOut .logOutBtn").on("click", function () {
logout();
});
$(".logOut").on("click", function () {
$(this).find(".down").toggleClass("up");
if ($(this).find(".up").length > 0) {
$(".logOut .logOutWrap").show();
} else {
$(".logOut .logOutWrap").hide();
}
return false;
});
$(document).click(function (e) {
if ($(this).find(".up").length > 0) {
$(this).find(".down").removeClass("up");
$(".logOut .logOutWrap").hide();
}
});
//切换最新报修列表和查号列表tab baba
// var currentBxOrCh = 0; //0是最新报修列表,1是查号列表
$(".opcBg .opcBg_item").on("click", function () {
$("#bx_list").scrollTop(0);
bx_pageNum = 0;
bx_len = 0;
bx_arr.data = [];
ch_arr.list = [];
currentBxOrCh = $(this).index();
if(currentBxOrCh === 0){
$('.right .r-list').css('top','41px')
}else if(currentBxOrCh === 1){
$('.right .r-list').css('top','63px')
}
$(this).addClass("active").siblings().removeClass("active");
getNewBxList(currentBxOrCh);
});
//最新报修列表或挂号滚动加载
$("#bx_list").on(
"scroll",
debounce(function () {
if($.trim($('.opcBg_item.active').text()) === '电话查号'){
return;
}
var itemLen = $(this).find(".r-item").length;
var itemHeight = $(this).find(".r-item").outerHeight();
var wrapHeight = $(this).outerHeight();
var max = itemLen * itemHeight - wrapHeight;
var diff = max - $(this).scrollTop();
if (Math.abs(diff) < 200 && $(this).scrollTop()) {
bx_pageNum++;
if (bx_len != itemLen) {
bx_len = itemLen;
isSearch1 = false;
getNewBxList(currentBxOrCh);
}
}
}, 500)
);
//常见问题滚动加载
$("#solution_list").on(
"scroll",
debounce(function () {
var itemLen = $(this).find(".infoItem").length;
var itemHeight = $(this).find(".infoItem").outerHeight();
var wrapHeight = $(this).outerHeight();
var max = itemLen * itemHeight - wrapHeight;
var diff = max - $(this).scrollTop();
if (Math.abs(diff) < 200) {
solution_pageNum++;
if (solution_len != itemLen) {
solution_len = itemLen;
isSearch = false;
getSolutionList({
idx: solution_pageNum,
sum: 10,
solution: {
title: $.trim($("#searchPro").val()),
status: { id: 72 },
},
});
}
}
}, 500)
);
// ----------------------------------------
// 弹窗
function pop1Handle(obj) {
var defaults = {
width: 600, //长
height: 630, //宽
title: "标题", //弹窗顶部标题
confirmTitle: "确认按钮", //底部确认按钮
cancelTitle: "取消按钮", //底部取消按钮
onlyButton: true, //底部是否只有一个按钮
confirmHandle: null, //确认按钮回调
twoConfirmClose: true, //确认按钮是否关闭弹窗(2个按钮)
oneConfirmClose: true, //确认按钮是否关闭弹窗(1个按钮)
};
$.extend(defaults, obj);
if (defaults.onlyButton) {
$("#pop1 .pop1-oneBtn").show();
$("#pop1 .pop1-twoBtn").hide();
} else {
$("#pop1 .pop1-oneBtn").hide();
$("#pop1 .pop1-twoBtn").show();
}
$("#pop1")
.css({ width: defaults.width, height: defaults.height })
.find(".pop1-title span")
.text(defaults.title)
.closest(".pop1-title")
.nextAll(".pop1-operate")
.find(".twoConfirm")
.text(defaults.confirmTitle)
.next(".twoCancel")
.text(defaults.cancelTitle)
.closest(".pop1-operate")
.find(".oneConfirm")
.text(defaults.confirmTitle)
.closest("#pop1")
.fadeIn("fast");
showMask();
//点击确定按钮
$("#pop1 .oneConfirm,#pop1 .twoConfirm").on(
"click",
{ defaults: defaults },
callback
);
//点击按钮隐藏弹层
$("#pop1 .pop1-title-icon,#pop1 .twoCancel").on("click", pop1Hide);
if (defaults.twoConfirmClose) {
$("#pop1 .twoConfirm").on("click", pop1Hide);
}
if (defaults.oneConfirmClose) {
$("#pop1 .oneConfirm").on("click", pop1Hide);
}
}
//回调
function callback(event) {
if (
event.data.defaults.confirmHandle &&
typeof event.data.defaults.confirmHandle === "function"
) {
event.data.defaults.confirmHandle();
}
}
//显示弹窗
function pop1Show() {
$("#pop1").fadeIn("fast");
showMask();
}
//隐藏弹窗
function pop1Hide() {
$("#pop1").fadeOut("fast");
hideMask();
$(".oneConfirm,.twoConfirm").off("click", callback);
}
//显示遮罩
function showMask() {
$("#mask").fadeIn("fast");
}
//隐藏遮罩
function hideMask() {
$("#mask").fadeOut("fast");
}
//成功提示
function tipsSuccess(msg, isUpadte) {
var html = template("tips_detail_temp", { msg: msg });
var isUpadte = isUpadte == undefined ? true : false;
$("#pop1").html(html);
pop1Handle({
width: 340,
height: 230,
title: "提示",
confirmTitle: "知道了",
onlyButton: true,
confirmHandle: function () {
if (isUpadte) {
location.reload();
}
},
});
}
//公告里面的date字符串截取
template.defaults.imports.dateTime = function (date) {
return date.slice(0, 19);
};
// 格式化日期
template.defaults.imports.dateFormat = function (time) {
var date = new Date(time);
var year = date.getFullYear();
var month =
date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1;
var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
var hour = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
var minute =
date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
var second =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
return (
year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" + second
);
};
//添加滚动条
function pop1HdScroll() {
$(".pop1-hd").niceScroll();
}
//重新计算
function pop1HdResize() {
pop1HdScroll();
}
//获取上传文件的后缀名
function getFileExt(fileName) {
if (!fileName) {
return "";
}
var _index = fileName.lastIndexOf(".");
if (_index < 1) {
return "";
}
return fileName.substr(_index + 1);
}
//是否是允许上传文件格式
function isAllowFile(fileName, allowType) {
var fileExt = getFileExt(fileName).toLowerCase();
if (!allowType) {
allowType = ["jpg", "jpeg", "png"];
}
if ($.inArray(fileExt, allowType) != -1) {
return true;
}
return false;
}
// 防抖
function debounce(fn, delay) {
var timer = null;
return function () {
var self = this,
args = arguments;
clearTimeout(timer);
timer = setTimeout(function () {
fn.apply(self, args);
}, delay);
};
}
// ------------------------------
// -------------交互---------
// 获取公告列表3条
function getNoticeList(data) {
$("#notice_list .loading").show();
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "user/data/fetchDataList/notice",
data: JSON.stringify(data),
success: function (res) {
if (res.status == 200) {
$("#notice_list .loading").hide();
var html = template("notice_list_temp", res);
$("#notice_list").html(html);
// 公告详情
$("#notice_list .detail").on("click", function () {
//获取id
var id = $(this).data("id");
// 过滤数据
var resFilter = [];
for (var i = 0; i < res.list.length; i++) {
if (res.list[i]["id"] == id) {
resFilter = res.list[i];
}
}
//填充弹窗数据
var html = template("notice_detail_temp", resFilter);
$("#pop1").html(html);
//弹窗展示
pop1Handle({
title: "公告详情",
confirmTitle: "知道了",
onlyButton: true,
});
});
}
},
error: function (err) {
console.log(err);
},
});
}
//获取常见问题
function getSolutionList(data) {
$("#solution_list").hide().next(".loading").show();
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "solution/fetchDataList/solution",
data: JSON.stringify(data),
success: function (res) {
if (res.status == 200) {
//搜索问题
if (isSearch) {
solution_arr.list = [];
}
solution_arr.list = solution_arr.list.concat(res.list);
var html = template("solution_list_temp", solution_arr);
$("#solution_list").html(html);
//触发
$("#solution_list").getNiceScroll().resize();
// 点击详情
$("#solution_list .detail").on("click", function () {
//获取id
var id = $(this).data("id");
// 过滤数据
var resFilter = [];
for (var i = 0; i < solution_arr.list.length; i++) {
if (solution_arr.list[i]["id"] == id) {
resFilter = solution_arr.list[i];
}
}
//点赞是否禁用
getStarIf(id, function (data) {
resFilter.starIf = data.result;
//填充弹窗数据
var html = template("solution_detail_temp", resFilter);
$("#pop1").html(html);
//弹窗展示
pop1Handle({
title: "知识库查看",
confirmTitle: "点赞(" + resFilter.star + ")",
onlyButton: true,
oneConfirmClose: false,
confirmHandle: function () {
if (resFilter.starIf) {
//可以点赞
$.ajax({
type: "GET",
contentType: "application/json;charset=UTF-8",
url:
baseUrl +
"solution/star/requester/" +
resFilter.id +
"/" +
loginUser.id,
cache: false,
success: function (res) {
if (res.status == 200) {
tipsSuccess("点赞成功");
}
},
error: function (err) {
console.log(err);
},
});
} else {
//不能点赞
tipsSuccess("已经点过赞了", false);
}
},
});
});
});
$("#solution_list").show().next(".loading").hide();
}
},
error: function (err) {
console.log(err);
},
});
}
//获取区域列表
function getAreaList(data) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "user/data/fetchDataList/area",
data: JSON.stringify(data),
success: function (res) {
if (res.status == 200) {
var html = template("area_list_temp", res);
$("#area_list").html(html);
}
},
error: function (err) {
console.log(err);
},
});
}
//获取地点列表
function getPlaceList(data) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "user/data/fetchDataList/place",
data: JSON.stringify(data),
success: function (res) {
if (res.status == 200) {
var html = template("place_list_temp", res);
$("#place_list").html(html);
placeList = res.list;
}
},
error: function (err) {
console.log(err);
},
});
}
//获取微信报修ID
function getWxId() {
$.ajax({
type: "GET",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "bpm/bpm/restful/wxbx",
cache: false,
success: function (res) {
if (res.status == 200) {
wxId = res.data;
}
},
error: function (err) {
console.log(err);
},
});
}
// 提交报修
function addBxMsg(data) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "apply/bpm/addWxIncident",
data: JSON.stringify(data),
success: function (res) {
if (res.state == 200) {
//按钮禁止取消
$(this).removeProp("disabled");
$(this).removeClass("f-submit--disable");
if (imgList.length > 0) {
for (var i = 0; i < imgList.length; i++) {
imgAjaxNum++;
if (!isLtIe10()) {
//标准浏览器
// if (imgList[i].has('id')) {
// //删除formData中的id,以便提交上传
// imgList[i]['delete']('id');
// }
addImgList(res.incident.id, imgList[i].list);
} else {
addImgListIE(res.incident.id, imgList[i].id);
}
}
} else {
tipsSuccess("提交事件报修成功");
}
}
},
error: function (err) {
console.log(err);
},
});
}
//处理查号
function handlerCh(val,list){
//触发
$("#bx_list").getNiceScroll().resize();
$("#bx_list").show().next(".loading").hide();
// 回显
$("#searchPro1").val(val === "" ? "可简拼、名称搜索" : val);
//placeholder
$("#searchPro1")
.on("focus", function () {
if ($(this).val() == "可简拼、名称搜索") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("可简拼、名称搜索");
}
});
//电话挂号搜索
$("#searchProSubmit1").on("click", search1);
$("#searchPro1").on("keyup", function (e) {
if (e.keyCode == 13) {
search1();
}
});
//点击单位或部门
$('.ch-search').click(function(e){
console.log(list.list);
console.log($(this).index());
var index = $(this).index();
var obj = list.list[index];
var data = {};
if(obj.unit.id){
//部门
data.list = [obj];
var html = template("ch_list_temp", data);
$("#bx_list").html(html);
//处理
handlerCh(val,data);
}else{
//单位
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "user/queryPhone",
data: JSON.stringify({
unitId: obj.id
}),
success: function (res) {
if (res.state == 200) {
data.list = res.data;
var html = template("ch_list_temp", data);
$("#bx_list").html(html);
//处理
handlerCh(val,data);
}
},
error: function (err) {
console.log(err);
},
});
}
})
}
function search1() {
bx_pageNum = 0;
isSearch1 = true;
getNewBxList(currentBxOrCh);
}
//获取最新报修或查号列表,0是报修,1是查号
function getNewBxList(type) {
$("#bx_list").hide().next(".loading").show();
let postData = {};
let url = "";
if (type === 0) {
$('.opcBg_searchBox').hide();
postData = {
assignee: loginUser.account,
state: 0,
idx: bx_pageNum,
sum: 10,
};
url = "apply/bpm/fetchServiceTasks";
} else if (type === 1) {
$('.opcBg_searchBox').show();
var val =
$.trim($("#searchPro1").val()) == "可简拼、名称搜索"
? ""
: $.trim($("#searchPro1").val());
postData = {};
if(val){
postData.keyword = val;
}
url = "user/queryPhone";
//没有搜索内容的时候,返回空数组
if($("#searchPro1").val() === '可简拼、名称搜索'){
var html = template("ch_search_list_temp", {list:[]});
$("#bx_list").html(html);
//处理
handlerCh(val,{list:[]});
return;
}
}
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + url,
data: JSON.stringify(postData),
success: function (res) {
console.log(res);
if (type === 0) {
// 1592 未受理,1593 不受理,1594 处理中,1595 待评价,1596 已解决,1597 已撤回
if (res.state == 200) {
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].state.id == 1592) {
res.data[i].processArr = [
"current",
false,
false,
false,
false,
];
} else if (res.data[i].state.id == 0) {
res.data[i].processArr = [true, "current", false, false, false];
} else if (res.data[i].state.id == 1594) {
res.data[i].processArr = [true, true, "current", false, false];
} else if (res.data[i].state.id == 1595) {
res.data[i].processArr = [true, true, true, "current", false];
} else {
res.data[i].processArr = [true, true, true, true, "current"];
}
}
//增加申请时间
for (var i = 0; i < res.data.length; i++) {
res.data[i].time = res.data[i].createTime;
res.data[i].processInstanceId =
res.data[i].incident.processInstanceId;
}
//添加分页数据,汇总
bx_arr.data = bx_arr.data.concat(res.data);
var html = template("bx_list_temp", bx_arr);
$("#bx_list").html(html);
//触发
$("#bx_list").getNiceScroll().resize();
// 详情
$("#bx_list .r-item-click").on("click", function () {
//获取id
var id = $(this).data("id");
// 过滤数据
var resFilter = [];
for (var i = 0; i < bx_arr.data.length; i++) {
if (bx_arr.data[i]["id"] == id) {
resFilter = bx_arr.data[i];
}
}
//点击事件详情不同逻辑处理
getImgList(id, function (data) {
//获取流程时间
if (resFilter.processInstanceId) {
getTimeList(
resFilter.processInstanceId,
function (data) {
resFilter.timeList = data;
resFilter.timeList.unshift({ endTime: resFilter.time });
},
false
);
} else {
resFilter.timeList = [
{ endTime: "" },
{ endTime: "" },
{ endTime: "" },
{ endTime: "" },
{ endTime: "" },
];
}
resFilter.imgList = data; //添加图片数组
if (resFilter.state.id == 1592) {
//未受理
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx1_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "撤回",
cancelTitle: "取消",
onlyButton: false,
twoConfirmClose: false,
confirmHandle: function () {
// setTimeout(function () {
//填充弹窗数据
var html = template("back_detail_temp", {});
$("#pop1").html(html);
//placeholder
$(".back-textarea")
.on("focus", function () {
if ($(this).val() == "请输入撤回原因") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入撤回原因");
}
});
pop1Handle({
width: 340,
height: 230,
title: "撤回原因",
confirmTitle: "撤回",
cancelTitle: "取消",
onlyButton: false,
twoConfirmClose: false,
confirmHandle: function () {
if (
$.trim($("#pop1 .back-textarea").val()) != "" &&
$.trim($("#pop1 .back-textarea").val()) !=
"请输入撤回原因"
) {
bxBack({
id: id,
retractReason: $("#pop1 .back-textarea").val(),
});
} else {
alert("撤回原因不能为空");
}
},
});
// }, 200)
},
});
} else if (resFilter.state.id == 0) {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx2_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "撤回",
cancelTitle: "取消",
onlyButton: false,
confirmHandle: function () {
// setTimeout(function () {
//填充弹窗数据
var html = template("back_detail_temp", {});
$("#pop1").html(html);
//placeholder
$(".back-textarea")
.on("focus", function () {
if ($(this).val() == "请输入撤回原因") {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val("请输入撤回原因");
}
});
pop1Handle({
width: 340,
height: 230,
title: "撤回原因",
confirmTitle: "撤回",
cancelTitle: "取消",
onlyButton: false,
twoConfirmClose: false,
confirmHandle: function () {
if (
$.trim($("#pop1 .back-textarea").val()) != "" ||
$.trim($("#pop1 .back-textarea").val()) !=
"请输入撤回原因"
) {
bxBack({
id: id,
retractReason: $("#pop1 .back-textarea").val(),
});
} else {
alert("撤回原因不能为空");
}
},
});
// }, 200)
},
});
} else if (resFilter.state.id == 1594) {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx3_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "知道了",
onlyButton: true,
});
} else if (resFilter.state.id == 1595) {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx4_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "去评价",
cancelTitle: "取消",
onlyButton: false,
twoConfirmClose: false,
confirmHandle: function () {
var currentIndex = -1;
//填充弹窗数据
resFilter.dictionary = dictionary;
var html = template("bx4_detail_1_temp", resFilter);
$("#pop1").html(html);
//评价placeholder
$(".evaluate-textarea")
.on("focus", function () {
if (
$(this).val() ==
"你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
) {
$(this).val("");
}
})
.on("blur", function () {
if ($(this).val() == "") {
$(this).val(
"你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
);
}
});
// 滚动条
pop1HdResize();
//评分
$("#evaluate .star")
.find("i")
.hover(
function () {
var i = $(this).index();
$("#evaluate .star")
.find("i")
.removeClass("active");
$("#evaluate .star")
.find("i:lt(" + i + ")")
.addClass("active");
$("#evaluate .star")
.find("i:eq(" + i + ")")
.addClass("active");
$("#evaluate .star-text").text(dictionary[i].name);
},
function () {
var i = $(this).index();
currentIndex = i;
$("#evaluate .star")
.find("i:gt(" + i + ")")
.removeClass("active");
}
);
// setTimeout(function () {
pop1Handle({
title: "报修查看",
confirmTitle: "提交评价",
cancelTitle: "取消",
onlyButton: false,
twoConfirmClose: false,
confirmHandle: function () {
if (
$.trim($("#pop1 .evaluate-textarea").val()) != "" &&
$.trim($("#pop1 .evaluate-textarea").val()) !=
"你可以从响应速度、解决情况、服务态度等方面,给我们作出相应的评价"
) {
addDegree({
id: resFilter.id,
degree:
currentIndex > 0
? dictionary[currentIndex].id
: dictionary[4].id,
degreeRemark: $("#pop1 .evaluate-textarea").val(),
});
} else {
alert("请输入评价的内容");
}
},
});
// }, 500)
},
});
} else if (resFilter.state.id == 1593) {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx5_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "知道了",
onlyButton: true,
});
} else if (resFilter.state.id == 1597) {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx6_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "知道了",
onlyButton: true,
});
} else {
//添加详情页流程数据
processMessageData.forEach(function(v){
v.desc = v.desc.replace(/<.*?>(.*?)<\/.*?>/g, '$1');
})
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template("bx7_detail_temp", resFilter);
$("#pop1").html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: "报修查看",
confirmTitle: "知道了",
onlyButton: true,
});
}
});
});
$("#bx_list").show().next(".loading").hide();
}
} else if (type === 1) {
if (res.state == 200) {
//搜索挂号
if (isSearch1) {
ch_arr.list = [];
}
//添加分页数据,汇总
// ch_arr.list = ch_arr.list.concat(res.data);
ch_arr.list = res.data;
var html = template("ch_search_list_temp", ch_arr);
$("#bx_list").html(html);
handlerCh(val,ch_arr);
}
}
},
error: function (err) {
console.log(err);
},
});
}
//详情图片点击放大预览
function enlarge() {
$(".pop1-hd__itemBxImgs").on("click", function () {
$(this)
.closest(".pop1-hd__itemListImgs")
.after(
$(
'.attr()
'
)
);
$(".pop1-hd__itemBxImgsMask").on("click", function () {
$(this).remove();
});
});
}
//获取详情页流程数据
function getProcessMessageData() {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "sysinfo/data/fetchDataList/dictionary",
data: JSON.stringify({
idx: 0,
sum: 10,
dictionary: { key: "wxincident_task_default" },
}),
success: function (res) {
if (res.status == 200) {
processMessageData = res.list;
}
},
error: function (err) {
console.log(err);
},
});
}
//撤回操作
function bxBack(data) {
//{"id":28,"retractReason":"asdas"}
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "apply/bpm/retract",
data: JSON.stringify(data),
success: function (res) {
if (res.state == 200) {
tipsSuccess("撤销成功");
}
},
error: function (err) {
console.log(err);
},
});
}
//获取评价五颗星的信息
function getDictionary() {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "common/common/getDictionary",
data: JSON.stringify({ key: "incident_degree", type: "list" }),
success: function (res) {
dictionary = res;
dictionary.sort(function (a, b) {
return a.value - b.value;
});
},
error: function (err) {
console.log(err);
},
});
}
//提交评价
function addDegree(data) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "apply/bpm/degree",
data: JSON.stringify(data),
success: function (res) {
if (res.state == 200) {
tipsSuccess("您的评价已提交!");
}
},
error: function (err) {
console.log(err);
},
});
}
//注销
function logout() {
//单点登录
if (sessionStorage.getItem("isSSo") === "1") {
sessionStorage.removeItem("loginUser");
sessionStorage.removeItem("repair_main");
sessionStorage.removeItem("isSSo");
location.href = "http://" + location.hostname + ":8080/pcreq_logout.jsp";
} else {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "auth/logout2",
data: JSON.stringify({}),
success: function (res) {
if (res.status == 200) {
sessionStorage.removeItem("loginUser");
sessionStorage.removeItem("repair_main");
sessionStorage.removeItem("isSSo");
window.location.href = "login.html";
}
},
error: function (err) {
console.log(err);
},
});
}
}
//图片上传
function addImgList(id, data) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url:
baseUrl +
"common/common/uploadAttachment/wxIncident/" +
id,
data: data,
cache: false,
processData: false,
contentType: false,
success: function (res) {
if (res.status == 200) {
imgAjaxNum--;
if (imgAjaxNum == 0) {
tipsSuccess("提交事件报修成功");
}
}
},
error: function (err) {
console.log(err);
},
});
}
//图片上传(IE<10)
function addImgListIE(id, index) {
var len = $("#f-images-list").find(".f-images-item").length;
var n = 0;
if (imgList.length == 3) {
n = len;
} else {
n = len - 1;
}
for (var i = 0; i < n; i++) {
if (
$("#f-images-list").find(".f-images-item").eq(i).data("id") == index
) {
$("#f-images-list")
.find(".f-images-item")
.eq(i)
.find(".form-file")
.attr(
"action",
baseUrl +
"common/common/uploadAttachment/wxIncident/" +
id
)
.submit();
imgAjaxNum--;
}
}
if (imgAjaxNum == 0) {
tipsSuccess("提交事件报修成功");
}
}
//图片获取
function getImgList(id, successFn) {
$.ajax({
type: "GET",
contentType: "application/json;charset=UTF-8",
url:
baseUrl + "common/common/listAttachment/wxIncident/" + id,
cache: false,
success: function (res) {
if (res.status == 200) {
successFn(res.data);
}
},
error: function (err) {
console.log(err);
},
});
}
//获取流程时间
function getTimeList(processInstanceId, successFn, bool) {
$.ajax({
type: "POST",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "bpm/bpm/flowTracing/" + processInstanceId,
cache: false,
async: bool,
success: function (res) {
if (res.status == 200) {
successFn(res.data);
}
},
error: function (err) {
console.log(err);
},
});
}
// 获取是否点过赞
function getStarIf(id, successFn) {
$.ajax({
type: "GET",
contentType: "application/json;charset=UTF-8",
url: baseUrl + "solution/canStar/requester/" + id + "/" + loginUser.id,
cache: false,
success: function (res) {
if (res.status == 200) {
successFn(res);
}
},
error: function (err) {
console.log(err);
},
});
}
});