/**
* Make sure the charset of the page using this script is
* set to utf-8 or you will not get the correct results.
*/
var utf8 = (function () {
var highSurrogateMin = 0xd800,
highSurrogateMax = 0xdbff,
lowSurrogateMin = 0xdc00,
lowSurrogateMax = 0xdfff,
surrogateBase = 0x10000;
function isHighSurrogate(charCode) {
return highSurrogateMin <= charCode && charCode <= highSurrogateMax;
}
function isLowSurrogate(charCode) {
return lowSurrogateMin <= charCode && charCode <= lowSurrogateMax;
}
function combineSurrogate(high, low) {
return ((high - highSurrogateMin) << 10) + (low - lowSurrogateMin) + surrogateBase;
}
/**
* Convert charCode to JavaScript String
* handling UTF16 surrogate pair
*/
function chr(charCode) {
var high, low;
if (charCode < surrogateBase) {
return String.fromCharCode(charCode);
}
// convert to UTF16 surrogate pair
high = ((charCode - surrogateBase) >> 10) + highSurrogateMin,
low = (charCode & 0x3ff) + lowSurrogateMin;
return String.fromCharCode(high, low);
}
/**
* Convert JavaScript String to an Array of
* UTF8 bytes
* @export
*/
function stringToBytes(str) {
var bytes = [],
strLength = str.length,
strIndex = 0,
charCode, charCode2;
while (strIndex < strLength) {
charCode = str.charCodeAt(strIndex++);
// handle surrogate pair
if (isHighSurrogate(charCode)) {
if (strIndex === strLength) {
throw new Error('Invalid format');
}
charCode2 = str.charCodeAt(strIndex++);
if (!isLowSurrogate(charCode2)) {
throw new Error('Invalid format');
}
charCode = combineSurrogate(charCode, charCode2);
}
// convert charCode to UTF8 bytes
if (charCode < 0x80) {
// one byte
bytes.push(charCode);
}
else if (charCode < 0x800) {
// two bytes
bytes.push(0xc0 | (charCode >> 6));
bytes.push(0x80 | (charCode & 0x3f));
}
else if (charCode < 0x10000) {
// three bytes
bytes.push(0xe0 | (charCode >> 12));
bytes.push(0x80 | ((charCode >> 6) & 0x3f));
bytes.push(0x80 | (charCode & 0x3f));
}
else {
// four bytes
bytes.push(0xf0 | (charCode >> 18));
bytes.push(0x80 | ((charCode >> 12) & 0x3f));
bytes.push(0x80 | ((charCode >> 6) & 0x3f));
bytes.push(0x80 | (charCode & 0x3f));
}
}
return bytes;
}
/**
* Convert an Array of UTF8 bytes to
* a JavaScript String
* @export
*/
function bytesToString(bytes) {
var str = '',
length = bytes.length,
index = 0,
byte,
charCode;
while (index < length) {
// first byte
byte = bytes[index++];
if (byte < 0x80) {
// one byte
charCode = byte;
}
else if ((byte >> 5) === 0x06) {
// two bytes
charCode = ((byte & 0x1f) << 6) | (bytes[index++] & 0x3f);
}
else if ((byte >> 4) === 0x0e) {
// three bytes
charCode = ((byte & 0x0f) << 12) | ((bytes[index++] & 0x3f) << 6) | (bytes[index++] & 0x3f);
}
else {
// four bytes
charCode = ((byte & 0x07) << 18) | ((bytes[index++] & 0x3f) << 12) | ((bytes[index++] & 0x3f) << 6) | (bytes[index++] & 0x3f);
}
str += chr(charCode);
}
return str;
}
return {
stringToBytes: stringToBytes,
bytesToString: bytesToString
};
}());
'use strict';
var app = angular.module('app', [
'ui.router',
'templatescache',
'ui.bootstrap',
'ngAnimate'
]);
angular.module('app').run(['$rootScope', '$state', '$stateParams',
function($rootScope, $state, $stateParams) {
$rootScope.$state = $state;
$rootScope.$stateParams = $stateParams;
}
]).config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home'); //
$stateProvider.state('home', {
url: '/home',
templateUrl: 'templates/home.html',
controller: 'HomeController'
})
.state('webChat', {
url: '/webChat',
templateUrl: 'templates/webChat.html',
controller: 'WebController'
})
.state('webChat.conComplain', {
url: '/conComplain',
templateUrl: 'templates/webChat-1.html',
controller: 'WebController'
})
.state('webChat.queryEv', {
url: '/queryEv',
templateUrl: 'templates/webChat-2.html',
controller: 'WebController'
})
.state('webChat.dyInfo', {
url: '/dyInfo',
templateUrl: 'templates/webChat-3.html',
controller: 'WebController'
})
.state('webChat.phoneLogin', {
url: '/phoneLogin',
templateUrl: 'templates/webChat-4.html',
controller: 'WebController'
}).state('webChat.online', {
url: '/online',
templateUrl: 'templates/webChat-5.html',
controller: 'WebController'
});
}
]);
angular.module('templatescache', []).run(['$templateCache', function($templateCache) {$templateCache.put('templates/home.html','
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n \r\n
\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
');
$templateCache.put('templates/webChat-1.html','\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\u54A8\u8BE2\u6295\u8BC9
\r\n
\r\n\r\n
\r\n
\r\n
');
$templateCache.put('templates/webChat-2.html','\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\u67E5\u8BE2\u8BC4\u4EF7
\r\n
\r\n\r\n
\r\n
\r\n
');
$templateCache.put('templates/webChat-3.html','\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\u52A8\u6001\u4FE1\u606F
\r\n
\r\n\r\n
\r\n
\r\n
');
$templateCache.put('templates/webChat-4.html','');
$templateCache.put('templates/webChat-5.html','\r\n\r\n \r\n\r\n
\r\n
\u59D3      \u540D\uFF1A*
\r\n
\u624B\u673A\u53F7\u7801\uFF1A*
\r\n
\u6295\u8BC9\u5185\u5BB9\uFF1A\r\n
*\r\n
\r\n
\u56FE      \u7247\uFF1A\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\u6240\u5728\u4F4D\u7F6E\uFF1A\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\u786E\u5B9A\u5220\u9664\uFF1F
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
');
$templateCache.put('templates/webChat.html','\r\n\r\n\r\n');}]);
(function() {
'use strict';
angular
.module('app')
.directive('gaodeMap', Directive);
Directive.$inject = [];
function Directive() {
var directive = {
link: link,
restrict: 'E',
template: '',
replace: true,
scope: {
options: '='
}
};
return directive;
function link($scope, element, attrs) {
var map, geolocation, marker, geocoder;
//加载地图,调用浏览器定位服务
map = new AMap.Map('container', {
resizeEnable: true,
zoom: 17
});
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true, //是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
maximumAge: 0, //定位结果缓存0毫秒,默认:0
convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
showButton: true, //显示定位按钮,默认:true
buttonPosition: 'RB', //定位按钮停靠位置,默认:'LB',左下角
buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
useNative: true
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
// AMap.event.addListener(geolocation, 'complete', function(ret) {
// console.log(ret.message);
// }); //返回定位信息
// AMap.event.addListener(geolocation, 'error', function(ret) {
// console.log(ret.message);
// }); //返回定位出错信息
// marker = new AMap.Marker({
// map: map,
// bubble: true,
// content: '' //自定义点标记覆盖物内容,
// });
// marker.setLabel({
// offset: new AMap.Pixel(20, 0),
// content: "我在这里"
// });
// //geocoder = new AMap.Geocoder({});
// map.on('click', function(e) {
// marker.setPosition(e.lnglat);
// geocoder.getAddress(e.lnglat, function(status, result) {
// if (status == 'complete') {
// document.getElementById('input').value = result.regeocode.formattedAddress
// }
// });
// });
});
// $scope.$watch("options", function(newValue, oldValue) {
// if ($scope.options) {
// map.setCenter([$scope.options.lng, $scope.options.lat]);
// marker.setPosition([$scope.options.lng, $scope.options.lat]);
// }
// }, true);
}
}
})();
'use strict';
angular.module('app').controller('HomeController', ['$scope', '$state', '$timeout', function($scope, $state, $timeout) {
$scope.getAddSuccess = true;
$scope.$on('$viewContentLoaded', function() {
//加载轮播
var swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
paginationClickable: true,
loop: true,
autoplayDisableOnInteraction: false,
autoplay: 5000,
effect: 'coverflow',
slidesPerView: 'auto',
centeredSlides: true,
spaceBetween: -55,
coverflow: {
rotate: 30,
stretch: 0,
depth: 60,
modifier: 1,
slideShadows: false
}
});
//加载字体适应
var clientWidth = document.documentElement.clientWidth || window.innerWidth;
var innerWidth = Math.max(Math.min(clientWidth, 480), 320);
console.log(innerWidth);
if (innerWidth < 350) {
angular.element(".explain").removeClass("font-15");
angular.element(".explain").addClass("font-12");
} else if (innerWidth > 400) {
angular.element(".explain").removeClass("font-12");
angular.element(".explain").addClass("font-15");
}
//加载地图,调用浏览器定位服务
var map, geolocation, marker, geocoder, regeocoder;
map = new AMap.Map('', {
resizeEnable: true,
zoom: 17
});
map.plugin('AMap.Geolocation', function() {
geolocation = new AMap.Geolocation({
enableHighAccuracy: true, //是否使用高精度定位,默认:true
timeout: 10000, //超过10秒后停止定位,默认:无穷大
maximumAge: 0, //定位结果缓存0毫秒,默认:0
convert: true, //自动偏移坐标,偏移后的坐标为高德坐标,默认:true
showButton: true, //显示定位按钮,默认:true
buttonPosition: 'RB', //定位按钮停靠位置,默认:'LB',左下角
buttonOffset: new AMap.Pixel(10, 20), //定位按钮与设置的停靠位置的偏移量,默认:Pixel(10, 20)
showMarker: true, //定位成功后在定位到的位置显示点标记,默认:true
showCircle: true, //定位成功后用圆圈表示定位精度范围,默认:true
panToLocation: true, //定位成功后将定位到的位置作为地图中心点,默认:true
zoomToAccuracy: true, //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
useNative: true
});
map.addControl(geolocation);
geolocation.getCurrentPosition();
AMap.event.addListener(geolocation, 'complete', onComplete); //返回定位信息
AMap.event.addListener(geolocation, 'error', onError); //返回定位出错信息
function onComplete(data) {
$scope.getAddSuccess = true;
var geocoder = new AMap.Geocoder({
radius: 1000,
extensions: "all"
});
console.log("获取地址");
geocoder.getAddress(data.position, function(status, result) {
if (status === 'complete' && result.info === 'OK') {
$scope.addr = result;
$timeout();
}
});
};
function onError(data) {
$scope.getAddSuccess = false;
};
});
});
$scope.onOnlineClick = function(e) {
$scope.mobile = "";
var activeClick = $(e.target);
console.log(activeClick);
if (!$scope.getAddSuccess) {
alert("获取地址失败,请开启手机GPS定位功能,并允许获取地理位置授权");
window.location.reload();
} else if (!$scope.addr && $scope.getAddSuccess) {
alert("地理位置获取中,请稍后");
} else if ($scope.addr.regeocode.addressComponent.district === '莲都区') {
//activeClick[0].parentElement.parentElement.dataset.target = "#phoneLoginModal";
activeClick[0].parentElement.dataset.target = "#phoneLoginModal";
} else {
//activeClick[0].parentElement.parentElement.dataset.target = "#errorLoginModal";
activeClick[0].parentElement.dataset.target = "#errorLoginModal";
}
};
$scope.onlineService = function() {
console.log($scope.mobile.length);
if ($scope.mobile.length == 11) {
ysf.config({
mobile: $scope.mobile,
success: function() { // 成功回调
ysf.open();
},
error: function() { // 错误回调
// handle error
ysf.open();
}
});
} else {
alert("请正确输入手机号码");
}
};
}]);
'use strict';
angular.module('app').controller('WebController', ['$scope', '$timeout', function($scope, $timeout) {
//lxtalkClient.Invoke('{FB60F992-A0FD-47B3-AAA7-E80DF209C5A4}', '_Register', '', $scope);
$scope.$on('$viewContentLoaded', function() {
var clientWidth = document.documentElement.clientWidth || window.innerWidth;
var innerWidth = Math.max(Math.min(clientWidth, 480), 320);
console.log(innerWidth);
if (innerWidth > 350) {
angular.element(".userInfo>div>span").addClass("font-14");
angular.element(".certificate").addClass("font-14");
angular.element(".userInfo .input-sm ").addClass("font-13");
angular.element(".userInfo .text-message").addClass("font-13");
} else {
angular.element(".font-13").removeClass("font-13");
angular.element(".font-14").removeClass("font-14");
}
});
$scope.imgView = function(event) {
angular.element(".onView").removeClass("onView");
var img = $(event.target);
img[0].className = "onView";
if (img[0].naturalWidth > img[0].naturalHeight) {
angular.element(".image-view").addClass("width-Img");
} else {
angular.element(".image-view").removeClass("width-Img");
}
$scope.imgUrl = img[0].src;
$(".image-big").remove();
$(".image-view").append('
');
};
$scope.delSure = function() {
$scope.sure = false;
// var activeClick = $($event.target);
// console.log(activeClick);
// var imgUrl = activeClick[0].parentElement.previousElementSibling.firstElementChild.src;
var imgs = $(".images");
$(".image-big").remove();
for (var i = 0, len = imgs.length; i < len; i++) {
if ($(".images")[i].firstElementChild.className == "onView") {
$(".images")[i].remove();
var imgNum = $("#imgpreview").find('img').length;
if (imgNum == 2) {
angular.element(".images").removeClass("three");
angular.element(".images").addClass("two");
} else if (imgNum = 1) {
angular.element(".images").removeClass("two");
angular.element(".images").addClass("one");
}
return;
}
};
};
$scope.delImg = function() {
$scope.sure = true;
};
$scope.actived = function($event) {
var activeClick = $($event.target);
if (activeClick[0].nodeName == "A") {
angular.element(".Aa").removeClass("activeColor");
angular.element(".glyphicon").removeClass("activeColor");
activeClick.addClass("activeColor");
} else if (activeClick[0].nodeName == "SPAN") {
angular.element(".Aa").removeClass("activeColor");
angular.element(".glyphicon").removeClass("activeColor");
activeClick.addClass("activeColor");
$(activeClick[0].parentElement).addClass("activeColor");
}
};
$scope.footHide = function() {
angular.element(".foot").addClass("hide");
};
$scope.footShow = function($event) {
var activeClick = $($event.target);
if (activeClick[0].className == "form-control input-sm" || activeClick[0].className == "text-message") {
angular.element(".foot").addClass("hide");
} else {
$timeout(function() {
angular.element(".foot").removeClass("hide");
}, 400);
}
};
$scope.imgPreview = function(fileDom) {
//判断是否支持FileReader
if (window.FileReader) {
var reader = new FileReader();
} else {
alert("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
};
//获取文件
var file = fileDom.files[0];
var imageType = /^image\//;
//是否是图片
if (!imageType.test(file.type)) {
alert("请选择图片!");
return;
};
$("#file")[0].value = "";
//读取完成
reader.onload = function(e) {
// //获取图片dom
// var img = document.getElementById("preview");
// //图片路径设置为读取的图片
// img.src = e.target.result;
var img = new Image,
width = 1080, //image resize
quality = 0.9, //image quality
canvas = document.createElement("canvas"),
drawer = canvas.getContext("2d");
img.src = this.result;
if (img.src) {
var imgNum = $("#imgpreview").find('img').length;
canvas.width = width;
canvas.height = width * (img.height / img.width);
drawer.drawImage(img, 0, 0, canvas.width, canvas.height);
img.src = canvas.toDataURL("image/jpeg", quality);
if (imgNum == 0) {
$("#imgpreview").append('
');
angular.element(".images").addClass("one");
} else if (imgNum == 1) {
$("#imgpreview").append('
');
angular.element(".images").removeClass("one");
angular.element(".images").addClass("two");
} else if (imgNum >= 2) {
$("#imgpreview").append('
');
angular.element(".images").removeClass("two");
angular.element(".images").addClass("three");
}
};
};
reader.readAsDataURL(file);
};
}]);