123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203 |
- /*+++++通用函数脚本++++++++*/
- var colorBackground = "#243f6d"; // 3255ee
- var colorBackground01 = "#243f6dDD"; // 3255ee
- var colorTitle = "#FFFFFF";
- var colorLine = "#00323af1";
- var eChartsResetTime = 50000; //统计图表重制时间周期
- /* +++++++++++屏幕适配++++++++++ */
- var PageSize = {
- smartSize: 600,
- middleSize: 1400,
- }
- /**
- * APP 获取GPS位置
- * @param {Object} callback 成功获取后回调
- */
- function plusGetLocation(callback) {
- mui.plusReady(function() {
- //获取位置信息
- plus.geolocation.getCurrentPosition(function(position) {
- var lng = position.coords.longitude;
- var lat = position.coords.latitude;
- // callback(lat, lng);
- callback(35.159, 118.203)
- }, function(e) {
- mui.alert(e.message);
- }, {
- provider: 'system',
- coordsType: 'wgs84',
- geocode: false,
- enableHighAccuracy: true, //这个布尔值用来表明应用是否使用其最高精度来表示结果。如果值为 true ,同时设备能够提供一个更精确的位置,那么设备就会使用这个位置
- maximumAge: 0, //它表明可以返回多长时间(即最长年龄,单位毫秒)内的可获取的缓存位置。如果设置为 0, 说明设备不能使用一个缓存位置
- });
- });
- }
- /* 方向监听标识Id */
- let watchOrientationId = undefined;
- /**
- * 开启方向变化监听
- * @param {Function} callChange 变化回调callChange(角度)
- */
- function plusOrientationListenerOn(callChange) {
- mui.plusReady(function() {
- watchOrientationId = plus.orientation.watchOrientation(function(o) {
- // console.log("精度指标 = " + o.headingAccuracy);
- if (callChange) callChange(o.trueHeading);
- }, function(err) {
- console.log("方向错误 = " + e.message);
- }, {
- frequency: 100,
- });
- })
- }
- /**
- * 关闭方向监听
- * @param {Function} callCompletion 完成回到callCompletion()
- */
- function plusOrientationListenerOff(callCompletion) {
- if (watchOrientationId) {
- plus.orientation.clearWatch(watchOrientationId);
- watchOrientationId = undefined;
- if (callCompletion) callCompletion();
- }
- }
- /* GPS位置监听 */
- let watchGpsId = undefined;
- /**
- * 开启GPS位置变化监听
- * @param {Function} callChange GPS位置变化回调callChange(纬度,经度);
- */
- function plusGPSListenerOn(callChange, callError) {
- mui.plusReady(function() {
- watchGpsId = plus.geolocation.watchPosition(function(p) {
- if (callChange) callChange(p.coords.latitude, p.coords.longitude);
- }, function(err) {
- if (callError) callError('GPS定位失败,请确保开启定位服务及权限!');
- console.log('定位错误 = ' + err.message);
- }, {
- provider: 'system',
- coordsType: 'wgs84',
- geocode: false,
- enableHighAccuracy: true, //这个布尔值用来表明应用是否使用其最高精度来表示结果。如果值为 true ,同时设备能够提供一个更精确的位置,那么设备就会使用这个位置
- maximumAge: 0, //它表明可以返回多长时间(即最长年龄,单位毫秒)内的可获取的缓存位置。如果设置为 0, 说明设备不能使用一个缓存位置
- });
- })
- }
- /**
- * 关闭GPS位置监听
- * @param {Function} callCompletion 完成回到callCompletion()
- */
- function plusGPSListenerOff(callCompletion) {
- if (watchGpsId) {
- plus.geolocation.clearWatch(watchGpsId);
- watchGpsId = undefined;
- if (callCompletion) callCompletion();
- }
- }
- /**
- * 加载顶部导航栏
- * @param {Object} title 导航栏标题
- * @param {Object} showBackButton 导航栏是否具备返回按钮
- */
- function plusSetNavbar(title, showBackButton) {
- var ws = plus.webview.currentWebview();
- //设置导航条
- ws.setStyle({
- "titleNView": {
- backgroundColor: colorBackground,
- titleText: title,
- titleColor: colorTitle,
- autoBackButton: showBackButton,
- splitLine: {
- color: colorLine
- }
- }
- });
- }
- /**
- * 加载顶部导航栏
- * @param {Object} title 导航栏标题
- * @param {Object} showBackButton 导航栏是否具备返回按钮
- */
- function plusSetNavbarRef(title, showBackButton, callback) {
- var ws = plus.webview.currentWebview();
- //设置导航条
- ws.setStyle({
- "titleNView": {
- backgroundColor: colorBackground,
- titleText: title,
- titleColor: colorTitle,
- autoBackButton: showBackButton,
- splitLine: {
- color: colorLine
- },
- buttons: [{
- 'float': 'right',
- fontSrc: '../fonts/iconfont.ttf',
- text: '\ueb73',
- onclick: callback,
- }]
- }
- });
- }
- /**
- * UIWebView加载完成 大多数方法建议放到此处运行
- * @param {Object} callback
- */
- function UIView_DidLoad(callback) {
- mui.plusReady(function() {
- // var self = plus.webview.currentWebview();
- // //添加显示监听
- // self.addEventListener('show', function() {
- callback();
- // });
- });
- }
- /**
- * 输出控制台消息
- * @param {Object} msg 消息内容
- */
- function printToConsole(msg) {
- console.log(msg);
- }
- /**
- * 日期格式化
- * @param {Object} fmt 格式化字符串
- */
- Date.prototype.Format = function(fmt) {
- var o = {
- "M+": this.getMonth() + 1, //月份
- "d+": this.getDate(), //日
- "H+": this.getHours(), //小时
- "m+": this.getMinutes(), //分
- "s+": this.getSeconds(), //秒
- "q+": Math.floor((this.getMonth() + 3) / 3), //季度
- "S": this.getMilliseconds() //毫秒
- };
- if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var k in o)
- if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((
- "00" + o[
- k]).substr(("" + o[k]).length)));
- return fmt;
- }
- /**
- * @param {JSON} options 图片路径
- * path{string}:图片路径
- * lable{string}:文字描述
- * click{function}:回调函数
- */
- function createBigMenu(options) {
- var li = document.createElement("li");
- li.className = 'mui-table-view-cell mui-media mui-col-xs-3 mui-col-sm-3';
- var liHtml = "";
- liHtml += "<div class='cr-menu-panel'>";
- liHtml += "<img src='" + options.path + "'>";
- liHtml += "<span>" + options.label + "</span>";
- liHtml += "</div>";
- li.innerHTML = liHtml;
- if (options.click != undefined) li.onclick = function() {
- options.click();
- };
- return li;
- }
- /**
- * @param {JSON} options 图片路径
- * path{string}:图片路径
- * lable{string}:文字描述
- * click{function}:回调函数
- */
- function createSmartMenu(options) {
- var li = document.createElement("li");
- li.className = 'mui-table-view-cell mui-media mui-col-xs-3 mui-col-sm-3';
- var liHtml = "";
- liHtml += "<div class='cr-menu-smart-panel'>";
- liHtml += "<img src='" + options.path + "'>";
- liHtml += "<span>" + options.label + "</span>";
- liHtml += "</div>";
- li.innerHTML = liHtml;
- if (options.click != undefined) {
- li.onclick = function() {
- options.click('options');
- };
- }
- return li;
- }
- /**
- * 创建菜单Html
- * @param {JSON} options 图片路径
- * path{string}:图片路径
- * lable{string}:文字描述
- * click{function}:回调函数
- */
- function createSmartMenuHtml(options) {
- var menuHtml = "<li class='mui-table-view-cell mui-media mui-col-xs-3 mui-col-sm-3'";
- if (options.idx != undefined) {
- menuHtml += " idx='" + options.idx + "'";
- }
- menuHtml += " onclick='" + options.click + "()'>";
- menuHtml += "<div class='cr-menu-smart-panel'>";
- menuHtml += "<img src='" + options.path + "'>";
- menuHtml += "<span>" + options.label + "</span>";
- menuHtml += "</div>";
- menuHtml += "</li>";
- return menuHtml;
- }
- /**
- * 创建并打开页面
- * @param {JSON} options 配置项
- * htmlPath{string}:页面路径
- * top{number/undefined 可选项}:窗口距离顶端高度
- * bottom{number/undefined 可选项}:窗口距离底部高度
- * backgroundColor{color 可选项}:导航栏背景色
- * lineColor{color 可选项}:导航栏底框颜色
- * title{string}:导航栏标题
- * statusbar:{boolean 可选项}:状态栏是否透明
- * extras{JSON 可选项}:传递参数
- * showSlide{string 可选项}:动画方式 slide-in-bottom
- * isShow{boolean}:是否默认显示
- */
- function createAndOpenPage(options) {
- var viewId = options.id == undefined ? options.htmlPath : options.id;
- UIView_DidLoad(function() {
- var pageConfig = {
- "titleNView": {
- backgroundColor: options.backgroundColor == undefined ? colorBackground : options
- .backgroundColor,
- titleColor: options.titleColor == undefined ? colorTitle : options.titleColor,
- autoBackButton: options.autoback == undefined ? false : options.autoback,
- titleText: options.title,
- splitLine: {
- color: options.lineColor == undefined ? colorLine : options.lineColor,
- }
- },
- top: options.top == undefined ? '0' : options.top,
- bottom: options.bottom == undefined ? '0' : options.bottom,
- contentAdjust: false
- }
- /* 判断是否增加了按钮配置 */
- if (options.buttons != undefined) {
- pageConfig.titleNView.buttons = options.buttons;
- }
- /* 配置sttusbar 主要是为了配置任务栏的背景色 */
- if (options.statusbar != undefined && !options.statusbar) {
- pageConfig.statusbar = {
- background: colorBackground,
- }
- }
- /* 判断是否设置了高度 */
- if (options.height != undefined) {
- pageConfig.height = options.height;
- }
- /* 根据是否传参决定采用何种方式加载 */
- var subPage = undefined;
- if (options.extras != undefined) {
- subPage = plus.webview.create(options.htmlPath, viewId, pageConfig, options.extras);
- } else {
- subPage = plus.webview.create(options.htmlPath, viewId, pageConfig);
- }
- // subPage.addEventListener('show', function() {
- // subPage.evalJS('pageFirstShow()');
- // }, false);
- subPage.onloaded = function(e) {
- if (options.onloaded != undefined) options.onloaded(subPage);
- }
- /* 是否显示 */
- if (options.isShow == undefined || options.isShow == true) {
- /* 显示动画 */
- if (options.showSlide == undefined) {
- subPage.show('slide-in-right', 300);
- } else {
- subPage.show(options.showSlide, 300);
- }
- } else {
- subPage.hide();
- }
- if (options.success != undefined) options.success(subPage);
- });
- }
- /**
- * 获取值 对0值进行特殊处理
- * @param {string} strValue 字符串或其他
- */
- function getEChartsValue(strValue) {
- var value = parseFloat(strValue)
- if (value == 0) {
- return 0.1;
- } else {
- return value;
- }
- }
- /**
- * 验证Ip地址
- * @param {string} ip 输入的ip地址
- */
- function isValidIP(ip) {
- var reg =
- /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
- return reg.test(ip);
- }
- /**
- * 验证Com端口号
- * @param {string} com 输入的com端口号
- */
- function isValidCom(com) {
- var reg =
- /^(\d{4,4})$/
- return reg.test(com);
- }
- /**
- * 验证电话号码
- * @param {string} phoneNumber 输入的电话号码
- */
- function isValidPhone(phoneNumber) {
- var reg =
- /^(\d{11,11})$/
- return reg.test(phoneNumber);
- }
- /**
- * 获取配置信息
- * @param {function} callback 回调函数
- */
- function getConfigInfo(callback) {
- mui.plusReady(function() {
- plus.runtime.getProperty(plus.runtime.appid, function(info) {
- plus.io.resolveLocalFileSystemURL('_www/manifest.json', function(entry) {
- entry.file(function(file) {
- var fileReader = new plus.io.FileReader();
- fileReader.readAsText(file, 'utf-8');
- fileReader.onloadend = function(evt) {
- var data = JSON.parse(evt.target.result);
- if (callback != undefined) {
- callback({
- appid: info.appid,
- version: info.version,
- versionCode: info.versionCode,
- name: info.name,
- devName: data.developer.name,
- devUrl: data.developer.url,
- devEmail: data.developer.email,
- devPhone: data.developer.phone,
- devTel: data.developer.tel,
- devCopyright: data.developer.copyright,
- })
- }
- }
- }, function(err) {
- printToConsole("读取文件错误:" + JSON.stringify(err));
- });
- }, function(err) {
- printToConsole("获取文件错误:" + JSON.stringify(err));
- });
- });
- });
- }
- /**
- * 生成随机颜色
- * @param {Array} red [0~255,0~255]
- * @param {Array} green [0~255,0~255]
- * @param {Array} blue [0~255,0~255]
- * return rgb(r,g,b)
- */
- function randomRgbColor(red, green, blue) { //随机生成RGB颜色
- var rStart = red[1] - red[0];
- var gStart = green[1] - green[0];
- var bStart = blue[1] - blue[0];
- var r = Math.floor(Math.random() * rStart + red[0]); //随机生成256以内r值
- var g = Math.floor(Math.random() * gStart + green[0]); //随机生成256以内g值
- var b = Math.floor(Math.random() * bStart + blue[0]); //随机生成256以内b值
- var color = 'rgb(' + r + ',' + g + ',' + b + ')';
- return color; //返回rgb(r,g,b)格式颜色
- }
- /**
- * 显示顶部日期+时间
- */
- var strDate = '';
- /**
- * 内部函数
- * 显示当前日期和时间
- */
- function _showTopTime() {
- /* 修改展示方式 */
- var strDay = new Date().Format('dd');
- var strYearAndMonth = new Date().Format('yyyy.MM')
- var strYear = new Date().Format('yyyy')
- var strMonth = new Date().Format('MM')
- var strDay = new Date().Format('dd')
- var china = calendar.solar2lunar(strYear, strMonth, strDay);
- var chinaDay = " 农历" + china.Animal + "年" + china.IMonthCn + china.IDayCn + " " + china.ncWeek;
- var time = new Date().Format('HH:mm:ss');
- var timeHtml = "";
- timeHtml += "<span>" + strDay + "</span>";
- timeHtml += "<span>" + strYearAndMonth + "</span>";
- timeHtml += "<span>" + chinaDay + "</span>";
- timeHtml += "<span>" + time + "</span>";
- $('.topTime').html(timeHtml);
- }
- /**
- * 开始显示日期
- */
- function beginShowTime() {
- _showTopTime();
- window.setInterval(_showTopTime, 1000);
- }
- /**
- * 创建轮播项
- * @param {string} imgPath 图片路径
- * @param {boolean} isFistOrLast 是否是第一项或最后一项
- */
- function _createSliderItemHtml(imgPath, isFistOrLast) {
- var divHtml = "";
- if (isFistOrLast) {
- divHtml += "<div class='mui-slider-item mui-slider-item-duplicate'>";
- } else {
- divHtml += "<div class='mui-slider-item'>";
- }
- divHtml += "<a href='#'>";
- divHtml += "<img src='" + imgPath + "'/>";
- divHtml += "</a>";
- divHtml += "</div>";
- return divHtml;
- }
- /**
- * 根据图片路径数组初始化轮播内容
- * @param {string} sliderId 轮播容器Id
- * @param {Array} sliderImages 轮播图片路径数组
- */
- function _initSliderContent(sliderId, sliderImages) {
- var sliderHtml = ""; //轮播内容
- var indicatorHtml = ""; //轮播指示器内容
- /* 额外增加的一个节点(循环轮播:第一个节点是最后一张轮播) */
- sliderHtml += _createSliderItemHtml(sliderImages[sliderImages.length - 1], true);
- for (var i = 0; i < sliderImages.length; i++) {
- sliderHtml += _createSliderItemHtml(sliderImages[i], false);
- if (i === 0) indicatorHtml += "<div class='mui-indicator mui-active'></div>";
- else indicatorHtml += "<div class='mui-indicator'></div>";
- }
- /* 额外增加的一个节点(循环轮播:最后一个节点是第一张轮播) */
- sliderHtml += _createSliderItemHtml(sliderImages[0], false);
- /* 组合展示 */
- var strHtml = "<div class='mui-slider-group mui-slider-loop'>";
- strHtml += sliderHtml;
- strHtml += "</div>";
- strHtml += "<div class='mui-slider-indicator'>";
- strHtml += indicatorHtml;
- strHtml += "</div>";
- $("#" + sliderId).html(strHtml);
- }
- /**
- * 启动图片轮播
- * @param {string} sliderId 轮播容器Id
- * @param {Array} imagePaths 图片路径数组
- * @param {int} sliderTimespan 轮播时间间隔 0 代表不轮播
- */
- function beginSliderContent(sliderId, imagePaths, sliderTimespan) {
- _initSliderContent(sliderId, imagePaths);
- /* 自动轮播 */
- var slider = mui('#' + sliderId);
- if (sliderTimespan > 0) {
- slider.slider({
- interval: sliderTimespan,
- });
- }
- }
- /**
- * 设置样式中变量的值
- * @param {string} variable 变量
- * @param {string} value 值
- */
- function setPropertyFromStyle(variable, value) {
- document.documentElement.style.setProperty(variable, value);
- }
- /* 给选择类型按钮添加监听 */
- function addListenerToSelectButton(btnDomId, config) {
- var btn = $("#" + btnDomId)[0];
- btn.addEventListener('tap', function() {
- var _self = this;
- if (_self.picker) {
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- $(_self).attr('data-code', selectItems[0].value);
- });
- } else {
- _self.picker = new mui.PopPicker({
- buttons: ['清除', '使用']
- });
- _self.picker.setData(config);
- _self.picker.cancel.addEventListener('tap', function() {
- $(_self).html($(_self).attr('value'));
- $(_self).attr('data-value', "");
- $(_self).attr('data-code', "");
- })
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- $(_self).attr('data-code', selectItems[0].value);
- });
- }
- })
- }
- /**
- *
- * @param {string} btnDomId 需要绑定的选择器Id
- * @param {string} tabName 选择器关联的表名
- * @param {string} fldName 选择器关联的字段名
- * @param {function} callback 选择回调函数
- */
- function bindListenerToSelectButton(btnDomId, tabName, fldName, callback) {
- var btn = $("#" + btnDomId)[0];
- btn.addEventListener('tap', function() {
- var _self = this;
- /* 首先进行查询 */
- querySimpleFieldInfo(tabName, fldName, function(config) {
- if (_self.picker) {
- _self.picker.setData(config);
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- $(_self).attr('data-code', selectItems[0].value);
- if (callback) callback(selectItems[0].text, selectItems[0].value);
- });
- } else {
- _self.picker = new mui.PopPicker({
- buttons: ['清除', '使用']
- });
- _self.picker.setData(config);
- _self.picker.cancel.addEventListener('tap', function() {
- $(_self).html($(_self).attr('value'));
- $(_self).attr('data-value', "");
- $(_self).attr('data-code', "");
- })
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- $(_self).attr('data-code', selectItems[0].value);
- if (callback) callback(selectItems[0].text, selectItems[0].value);
- });
- }
- });
- })
- }
- /**
- * 绑定日期控件
- * @param {string} btnDomId 需要绑定的选择器Id
- * @param {function} callback 选择回调函数
- */
- function bindListenerToDateButton(btnDomId, callback) {
- var btn = $("#" + btnDomId)[0];
- btn.addEventListener('tap', function() {
- var _self = this;
- if (_self.picker) {
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems.text);
- $(_self).attr('data-value', selectItems.text);
- $(_self).attr('data-code', selectItems.value);
- _self.picker.dispose();
- _self.picker = null;
- if (callback) callback(selectItems.text, selectItems.value);
- });
- } else {
- /* 获取存储的值 */
- let value = $(_self).attr("data-value") || '';
- // console.log("存储 = " + value);
- _self.picker = new mui.DtPicker({
- buttons: ['清除', '使用'],
- type: 'date',
- beginDate: new Date('1990', '1', '1'),
- endDate: new Date('2050', '12', '31'),
- value: value,
- });
- _self.picker.ui.cancel.addEventListener('tap', function() {
- $(_self).html($(_self).attr('value'));
- $(_self).attr('data-value', "");
- $(_self).attr('data-code', "");
- });
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems.text);
- $(_self).attr('data-value', selectItems.text);
- $(_self).attr('data-code', selectItems.value);
- _self.picker.dispose();
- _self.picker = null;
- if (callback) callback(selectItems.text, selectItems.value);
- });
- }
- })
- }
- /**
- * 查询单字段信息
- * @param {string} tabName 表名称
- * @param {string} fldName 字段名称
- * @param {function} callSuccess 成功回调函数
- */
- function querySimpleFieldInfo(tabName, fldName, callSuccess) {
- var iData = {
- tabName: tabName,
- fldName: fldName,
- }
- /* 查询结果 */
- var result = [];
- /* 开始联网查询 */
- sendAjax({
- waitMessate: '同步数据...',
- url: 'appQuerySimpleFiled',
- data: iData,
- success: function(resData) {
- for (var i in resData) {
- result.push({
- value: resData[i].selCode,
- text: resData[i].selName,
- })
- }
- if (callSuccess != undefined) callSuccess(result);
- },
- error: function(err) {
- muiAlertError(err);
- }
- })
- }
- /**
- * 清除选择器
- * @param {string} btnDomId 选择控件Id
- */
- function clearSelectButton(btnDomId) {
- console.log("调用清除!");
- var _self = document.getElementById(btnDomId);
- if (_self.picker) {
- _self.picker.setData([]);
- }
- $(_self).html($(_self).attr('value'));
- $(_self).attr('data-value', "");
- $(_self).attr('data-code', "");
- }
- /**
- * 联网获取并设置单项选择器
- * @param {JSON} options
- * tabName{string}:表名称
- * fldName{string}:字段名称
- * btnDomId{string}:挂接容器
- */
- function setSimpleConfig(options) {
- var iData = {
- tabName: options.tabName,
- fldName: options.fldName,
- }
- var btn = $("#" + options.btnDomId)[0];
- var dataConfig = [];
- sendAjax({
- waitMessate: '同步数据...',
- url: 'appQuerySimpleFiled',
- data: iData,
- success: function(resData) {
- for (var i in resData) {
- dataConfig.push({
- value: resData[i].selCode,
- text: resData[i].selName,
- })
- }
- btn.addEventListener('tap', function() {
- var _self = this;
- if (_self.picker) {
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- });
- } else {
- _self.picker = new mui.PopPicker({
- buttons: ['清除', '使用']
- });
- _self.picker.setData(dataConfig);
- _self.picker.cancel.addEventListener('tap', function() {
- $(_self).html($(_self).attr('value'));
- $(_self).attr('data-value', "");
- })
- _self.picker.show(function(selectItems) {
- $(_self).html(selectItems[0].text);
- $(_self).attr('data-value', selectItems[0].text);
- });
- }
- })
- if (options.success != undefined) options.success();
- },
- error: function(err) {
- if (options.error != undefined) options.error(err);
- }
- })
- }
- /**
- * 定位图斑
- * @param {string} longitude 经度
- * @param {string} latitude 纬度
- * @param {string} title 标题
- */
- function toMapLocation(longitude, latitude, title) {
- var lMapId = 'FeatureLocationByMap';
- /* 启动定位之前判断是否存在 */
- mui.plusReady(function() {
- var mapPageView = plus.webview.getWebviewById(lMapId);
- if (mapPageView != null) {
- plus.webview.show(mapPageView, 'slide-in-right', 300, function() {
- mapPageView.evalJS("jsLocation('" + longitude + "','" + latitude +
- "','" + title + "')")
- });
- } else {
- muiAlert("地图页面尚未加载,请稍后重试!");
- }
- });
- }
- /**
- * 通过表名和要素Id定位图斑要素
- * @param {string} tabName 经度
- * @param {string} feaId 纬度
- * @param {string} title 标题
- */
- function toMapLocation_tabName_feaId(tabName, feaId, title) {
- var lMapId = 'FeatureLocationByMap';
- /* 启动定位之前判断是否存在 */
- mui.plusReady(function() {
- var mapPageView = plus.webview.getWebviewById(lMapId);
- if (mapPageView != null) {
- plus.webview.show(mapPageView, 'slide-in-right', 300, function() {
- mapPageView.evalJS("jsLocation_tabName_feaId('" + tabName + "','" + feaId +
- "','" + title + "')");
- });
- } else {
- muiAlert("地图定位页面异常,请稍后重试!");
- }
- });
- }
- /**
- * 启动App
- * @param {string} appId App的Id
- * @param {string} appName App的名称
- */
- function beginApp(appId, appName) {
- mui.plusReady(function() {
- if (plus.runtime.isApplicationExist({
- pname: appId
- })) {
- plus.runtime.launchApplication({
- pname: appId,
- }, function(e) {
- muiAlertError("启动失败:" + e.message);
- });
- } else {
- muiAlert('您尚未安装' + appName + ',请安装后重试!', "警告")
- }
- });
- }
- /**
- * 获取页面的宽、高
- */
- function getPageSize() {
- return {
- width: document.body.clientWidth,
- height: document.body.clientHeight
- }
- }
- /**
- * 显示完整内容
- * @param {string} content
- */
- function showContent(content) {
- muiAlert(content, "提示");
- }
- /**
- * 文本循环移动动画 适用于容器内展示span且span宽度超过div宽度
- * @param {string} domId 容器Id
- * @param {int} time 动画时间,单位ms
- */
- function textMoveAnimateById(domId, time) {
- var obj = $("#" + domId);
- var widthSpan = $("#" + domId + ">span").width();
- var widthMove = widthSpan - obj.width();
- obj.scrollLeft(0);
- obj.animate({
- scrollLeft: widthMove,
- }, time, 'linear', function() {
- textMoveAnimateById(domId, time);
- });
- }
- /**
- * 文本循环移动动画 适用于容器内展示span且span宽度超过div宽度
- * @param {string} selector 容器选择器
- * @param {int} time 动画时间,单位ms
- */
- function textMoveAnimateBySelector(selector, time) {
- var obj = $("." + selector);
- var widthSpan = $('.' + selector + ">span").width();
- console.log(widthSpan);
- var widthMove = widthSpan - obj.width();
- obj.scrollLeft(0);
- obj.animate({
- scrollLeft: widthMove,
- }, time, 'linear', function() {
- textMoveAnimateBySelector(selector, time);
- });
- }
- /**
- * 获取通过URL传递的参数
- * main.html?key=124
- * @param {string} name 关键字
- * @return {string} 未获取到返回null 否则返回值
- */
- function GetQueryString(name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- var r = window.location.search.substr(1).match(reg);
- if (r != null) return unescape(r[2]);
- return null;
- }
- /**
- * 绑定搜索框 通过绑定监听 获取查询内容
- * @param {string} controlID 搜索框ID
- * @param {function} callback 返回监听
- */
- function bindSearchControlEvent(controlID, callback) {
- var self = this;
- /**
- * 搜索框追加事件
- */
- document.getElementById(controlID).addEventListener('keypress', function(e) {
- //判断点击的是否是 搜索 按钮
- if (e.keyCode == 13) {
- var value = this.value;
- document.activeElement.blur();
- if (callback != undefined) callback(value);
- }
- });
- }
- /**
- * 获取dom的属性值
- * @param {Object} domId
- * @param {Object} attrName
- */
- function getAttributeValue(domId, attrName) {
- var value = $("#" + domId).attr(attrName);
- if (value == undefined) return "";
- else return value;
- }
- /**
- * 打开侧滑菜单
- */
- function openMainMenu() {
- mui('.mui-off-canvas-wrap').offCanvas('show');
- }
- /**
- * 关闭侧滑菜单
- */
- function closeMainMenu() {
- mui('.mui-off-canvas-wrap').offCanvas('close');
- }
- /**
- * 给类添加点击事件
- * @param {string} className 类名称
- */
- function appendClickEventByClassName(className) {
- $("." + className).each(function(index, element) {
- $("." + className)[index].addEventListener('tap', function() {
- muiAlert($(this).text(), '详细内容');
- })
- })
- }
- /**
- * 显示内容
- * @param {Object} obj 显示内容的容器
- */
- function showDetails(obj) {
- muiAlert($(obj).text(), '详细内容');
- }
- /**
- * 重置图表的尺寸
- */
- function echartsSizeInit() {
- $(".jt-count-echarts-panel .jt-content").each(function(index, element) {
- var echartsDom = $(".jt-count-echarts-panel .jt-content")[index];
- var width = $(echartsDom).width();
- var height = $(echartsDom).height();
- if (height < 10) {
- $(echartsDom).height(width * 3 / 4);
- }
- });
- }
- /* +++++++++++++++++地块公用+++++++++++++++++++++ */
- /**
- * 查询地块数据
- * @param {string} title 标题
- * @param {string} tabName 数据表名称
- * @param {string} fldName 字段名称
- * @param {string} fldValue 字段值
- * @param {string} showFldName 展示字段名称
- */
- function queryFeatures(title, tabName, fldName, fldValue, showFldName) {
- var iData = {
- tabName: tabName,
- fldName: fldName,
- fldValue: fldValue,
- queryType: 'equal',
- showFldName: showFldName === undefined ? '' : showFldName,
- start: '1',
- count: '100',
- }
- sendAjax({
- url: 'appQueryFeatureData',
- data: iData,
- waitMessage: '查询中...',
- success: function(resData) {
- var data = resData[0];
- if (data.dataCount == 0) {
- muiAlert('未查询到任何数据!', '警告');
- } else {
- showFeaturesResult(title, data);
- }
- },
- error: function(err) {
- muiAlertError(err);
- }
- })
- }
- /**
- * 地块数据展示
- * @param {string} title 标题
- * @param {JSON} jsonData 数据集
- */
- function showFeaturesResult(title, jsonData) {
- /* 判断容器是否存在 */
- var rootPanel = document.getElementById('queryResultPopover');
- if (rootPanel) {
- $(rootPanel).html('');
- } else {
- rootPanel = document.createElement('div');
- rootPanel.id = 'queryResultPopover';
- rootPanel.className = 'mui-popover mui-popover-action mui-popover-bottom jt-query-result-popover';
- document.body.append(rootPanel);
- }
- /* 创建标题头 */
- var header = document.createElement('header');
- header.className = 'mui-bar';
- header.innerHTML = "<div class='jt-popover-title'>" + title + '</div>查询结果';
- rootPanel.append(header);
- /* 创建内容容器 */
- var divScroll = document.createElement('div');
- divScroll.className = 'mui-scroll-wrapper';
- rootPanel.append(divScroll);
- /* 创建滚动子容器 */
- var divScrollChild = document.createElement('div');
- divScrollChild.className = 'mui-scroll';
- divScroll.append(divScrollChild);
- /* 创建查询结果根容器 */
- var divRoot = document.createElement('div');
- divRoot.className = 'mui-card';
- divScrollChild.append(divRoot);
- /* 加入数据 */
- for (var i in jsonData.dataList) {
- var item = jsonData.dataList[i];
- var divItem = document.createElement('div');
- if (i % 2 == 0) {
- divItem.className = 'jt-feature-data-row jt-row-even-number';
- } else {
- divItem.className = 'jt-feature-data-row jt-row-odd-number';
- }
- divRoot.append(divItem);
- var html = "";
- html += "<span>" + item.feaNumber + "</span>";
- html += "<span>" + item.feaName + "</span>";
- html += "<span>" + item.feaArea + "亩</span>";
- html += "<button type='button' class='mui-btn app-icon app-icon-location'";
- // html += " onclick = \"toMapLocation_tabName_feaId('" + item.tabName + "','" + item.feaId +
- // "','地块定位')\" />";
- html += " onclick = \"CallMapLocation('" + item.tabName + "','" + item.feaId + "')\" />"
- divItem.innerHTML = html;
- }
- /* 显示弹框 */
- mui("#queryResultPopover").popover('show');
- /* 重置滚动容器 该方法是必须的 否则将导致滚动容器滚动失败 */
- mui('.mui-scroll-wrapper').scroll();
- }
- /**
- * 添加水印
- * @param {JSON} settings 配置项
- * settings.watermarl_element{string}:你需要加水印的元素的id,例如#app
- * settings.watermark_txt{string}:水印内容
- */
- function watermark(settings) {
- //默认设置
- var defaultSettings = {
- watermarl_element: "body",
- watermark_txt: "",
- watermark_x: 20, //水印起始位置x轴坐标
- watermark_y: 20, //水印起始位置Y轴坐标
- watermark_rows: 2000, //水印行数
- watermark_cols: 2000, //水印列数
- watermark_x_space: 70, //水印x轴间隔
- watermark_y_space: 30, //水印y轴间隔
- watermark_color: '#aaa', //水印字体颜色
- watermark_alpha: 0.3, //水印透明度
- watermark_fontsize: '14px', //水印字体大小
- watermark_font: '微软雅黑', //水印字体
- watermark_width: 280, //水印宽度
- watermark_height: 80, //水印长度
- watermark_angle: 25 //水印倾斜度数
- };
- //采用配置项替换默认值,作用类似jquery.extend
- if (arguments.length === 1 && typeof arguments[0] === "object") {
- var src = arguments[0] || {};
- for (let key in src) {
- if (src[key] && defaultSettings[key] && src[key] === defaultSettings[key])
- continue;
- else if (src[key])
- defaultSettings[key] = src[key];
- }
- }
- var oTemp = document.createDocumentFragment();
- var maskElement = document.getElementById(defaultSettings.watermarl_element) || document.body;
- //获取页面最大宽度
- var page_width = Math.max(maskElement.scrollWidth, maskElement.clientWidth);
- //获取页面最大高度
- var page_height = Math.max(maskElement.scrollHeight, maskElement.clientHeight);
- //水印数量自适应元素区域尺寸
- defaultSettings.watermark_cols = Math.ceil(page_width / (defaultSettings.watermark_x_space + defaultSettings
- .watermark_width));
- defaultSettings.watermark_rows = Math.ceil(page_height / (defaultSettings.watermark_y_space + defaultSettings
- .watermark_height));
- var x;
- var y;
- for (var i = 0; i < defaultSettings.watermark_rows; i++) {
- y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
- for (var j = 0; j < defaultSettings.watermark_cols; j++) {
- x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
- var mask_div = document.createElement('div');
- mask_div.id = 'mask_div' + i + j;
- mask_div.className = 'mask_div';
- //mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
- mask_div.innerHTML = (defaultSettings.watermark_txt);
- //设置水印div倾斜显示
- mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
- mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
- mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
- mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
- mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
- mask_div.style.visibility = "";
- mask_div.style.position = "absolute";
- mask_div.style.left = x + 'px';
- mask_div.style.top = y + 'px';
- mask_div.style.overflow = "hidden";
- mask_div.style.zIndex = "1";
- mask_div.style.pointerEvents = 'none'; //pointer-events:none 让水印不遮挡页面的点击事件
- //mask_div.style.border="solid #eee 1px"; //兼容IE9以下的透明度设置 mask_div.style.filter="alpha(opacity=50)";
- mask_div.style.opacity = defaultSettings.watermark_alpha;
- mask_div.style.fontSize = defaultSettings.watermark_fontsize;
- mask_div.style.fontFamily = defaultSettings.watermark_font;
- mask_div.style.color = defaultSettings.watermark_color;
- mask_div.style.textAlign = "center";
- mask_div.style.width = defaultSettings.watermark_width + 'px';
- mask_div.style.height = defaultSettings.watermark_height + 'px';
- mask_div.style.display = "block";
- oTemp.appendChild(mask_div);
- };
- };
- maskElement.appendChild(oTemp);
- }
- /**
- * 设置选择控件的显示内容和值
- * @param {string} domId 控件Id
- * @param {string} text 显示文本
- * @param {string} value 内部值
- */
- function setSelectControlValue(domId, text, value) {
- let _self = document.getElementById(domId);
- $(_self).html(text);
- $(_self).attr('data-value', text);
- $(_self).attr('data-code', value);
- }
- /**
- * 点击指示器事件
- * @param {Object} objDom 点击的dom对象
- */
- function indicator(objDom) {
- /* 循环所有指示器 */
- $(".jt-indicator").each(function(index, element) {
- element.classList.remove('jt-indicator-active');
- if (!objDom && index === 0) {
- element.classList.add('jt-indicator-active');
- }
- })
- if (objDom) {
- objDom.classList.add('jt-indicator-active');
- }
- }
- /**
- * 通过jQuery设置显示内容
- * @param {String} domId domId
- * @param {String} text 显示内容
- */
- function setTextByDomId(domId, text) {
- $("#" + domId).text(text);
- }
- /**
- * 通过jQuery设置显示内容
- * @param {String} domId domId
- * @param {String} text 显示内容
- */
- function setHtmlByDomId(domId, text) {
- $("#" + domId).html(text);
- }
|