$(function () {
var repairMain = JSON.parse(sessionStorage.getItem('repair_main'));//报修主体
var ifCreate = JSON.parse(sessionStorage.getItem('ifCreate'));//自动建单
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 bx_pageNum = 0; //最新报修分页
var bx_arr = { data: [] }; //最新报修所有数据列表
var bx_len = 0; //最新报修所有数据列表数量
var solution_pageNum = 0; //常见问题分页
var solution_arr = { list: [] }; //常见问题所有数据列表
var solution_len = 0; //常见问题所有数据列表数量
var isSearch = 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 (ifCreate.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({ "assignee": loginUser.id, "state": 0, "idx": bx_pageNum, "sum": 10 });
//获取详情页流程数据
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 } } }, isSearch)
}
//选择框联动
$('#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: "wechatRequesterIncident"
};
// 自动建单
if (ifCreate.valueconfig == 1) {
data.incident.categoryId = $('#bx_eventClass').val();
}
data.loginUser = {
id: loginUser.id
}
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();
}
})
//最新事件列表滚动加载
$('#bx_list').on('scroll', debounce(function () {
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) {
bx_pageNum++;
if (bx_len != itemLen) {
bx_len = itemLen;
getNewBxList({ "assignee": loginUser.id, "state": 0, "idx": bx_pageNum, "sum": 10 });
}
}
}, 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 .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) {
$('#solution_list .loading').hide();
//搜索问题
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);
}
}
});
});
})
}
},
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 getNewBxList(data) {
$('#bx_list .loading').show();
$.ajax({
type: 'POST',
contentType: "application/json;charset=UTF-8",
url: baseUrl + "apply/bpm/fetchServiceTasks",
data: JSON.stringify(data),
success: function (res) {
console.log(res);
// 1592 未受理,1593 不受理,1594 处理中,1595 待评价,1596 已解决,1597 已撤回
if (res.state == 200) {
$('#bx_list .loading').hide();
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) { //未受理
//添加详情页流程数据
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) {
//添加详情页流程数据
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) {
//添加详情页流程数据
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) {
//添加详情页流程数据
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) {
//添加详情页流程数据
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) {
//添加详情页流程数据
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template('bx6_detail_temp', resFilter);
$('#pop1').html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: '报修查看',
confirmTitle: '知道了',
onlyButton: true
});
} else {
//添加详情页流程数据
resFilter.processList = processMessageData;
//填充弹窗数据
var html = template('bx7_detail_temp', resFilter);
$('#pop1').html(html);
//图片放大
enlarge();
// 滚动条
pop1HdResize();
//弹窗展示
pop1Handle({
title: '报修查看',
confirmTitle: '知道了',
onlyButton: true
});
}
})
})
}
},
error: function (err) {
console.log(err)
}
})
}
//详情图片点击放大预览
function enlarge() {
$('.pop1-hd__itemBxImgs').on('click', function () {
$(this).closest('.pop1-hd__itemListImgs').after($('.attr('src') + ')
'))
$('.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() {
$.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');
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/wechatRequesterIncident/" + 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/wechatRequesterIncident/' + 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/wechatRequesterIncident/" + 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)
}
})
}
})