Blame view

js/common.js 8.99 KB
f9cd3bb6   liuqimichale   初始化项目
1
2
3
4
  /*
   state
  */
  var appState = {
9931d316   liuqimichale   格式化代码
5
6
7
8
9
    defaultTime: 120,//默认2分钟倒计时
    countDownTime_timer: null,//支付倒计时
    codeNullTip: "微信授权失败,请您尝试重新扫码 !",//code获取失败提示语
    expandField_1: null,//扩展字段1-备用
    expandObj_1: null,//扩展字段1-备用
f9cd3bb6   liuqimichale   初始化项目
10
11
12
13
  }
  
  /*自定义异步请求*/
  function ajax() {
9931d316   liuqimichale   格式化代码
14
15
16
17
18
19
20
21
22
23
24
25
    var ajaxData = {
      type: (arguments[0].type || "GET").toUpperCase(),
      url: arguments[0].url || "",
      async: arguments[0].async || "true",
      data: arguments[0].data || null,
      dataType: arguments[0].dataType || "json",
      contentType: arguments[0].contentType || "application/json; charset=utf-8",
      beforeSend: arguments[0].beforeSend || function () {
      },
      success: arguments[0].success || function () {
      },
      error: arguments[0].error || function () {
f9cd3bb6   liuqimichale   初始化项目
26
      }
9931d316   liuqimichale   格式化代码
27
    }
f9cd3bb6   liuqimichale   初始化项目
28
  
9931d316   liuqimichale   格式化代码
29
30
31
    ajaxData.beforeSend()
    var xhr = createxmlHttpRequest();
    xhr.responseType = ajaxData.dataType;
f9cd3bb6   liuqimichale   初始化项目
32
  
9931d316   liuqimichale   格式化代码
33
34
35
    xhr.open(ajaxData.type, ajaxData.url, ajaxData.async);
    xhr.setRequestHeader("Content-Type", ajaxData.contentType);
    xhr.send(convertData(ajaxData.data));
f9cd3bb6   liuqimichale   初始化项目
36
  
9931d316   liuqimichale   格式化代码
37
38
39
40
41
42
43
    xhr.onreadystatechange = function () {
      if (xhr.readyState == 4) {
        if (xhr.status == 200) {
          ajaxData.success(xhr.response)
        } else {
          ajaxData.error()
        }
f9cd3bb6   liuqimichale   初始化项目
44
      }
9931d316   liuqimichale   格式化代码
45
    }
f9cd3bb6   liuqimichale   初始化项目
46
47
48
  }
  
  function createxmlHttpRequest() {
9931d316   liuqimichale   格式化代码
49
50
51
52
53
    if (window.ActiveXObject) {
      return new ActiveXObject("Microsoft.XMLHTTP");
    } else if (window.XMLHttpRequest) {
      return new XMLHttpRequest();
    }
f9cd3bb6   liuqimichale   初始化项目
54
55
56
  }
  
  function convertData(data) {
9931d316   liuqimichale   格式化代码
57
58
59
60
    if (typeof data === 'object') {
      var convertResult = "";
      for (var c in data) {
        convertResult += c + "=" + data[c] + "&";
f9cd3bb6   liuqimichale   初始化项目
61
      }
9931d316   liuqimichale   格式化代码
62
63
64
65
66
      convertResult = convertResult.substring(0, convertResult.length - 1)
      return convertResult;
    } else {
      return data;
    }
f9cd3bb6   liuqimichale   初始化项目
67
  }
9931d316   liuqimichale   格式化代码
68
  
f9cd3bb6   liuqimichale   初始化项目
69
70
71
72
73
74
75
76
77
78
79
  ////////////////////////////////demo
  //ajax({
  //    type: "POST",
  //    url: "ajax.php",
  //    dataType: "json",
  //    data: {
  //        "name": "abc",
  //        "age": 123,
  //        "id": "456"
  //    },
  //    beforeSend: function () {
afc9e308   liuqimichale   银联支付
80
  //        //some js code
f9cd3bb6   liuqimichale   初始化项目
81
82
83
84
85
86
87
88
89
  //    },
  //    success: function (msg) {
  //        console.log(msg)
  //    },
  //    error: function () {
  //        console.log("error")
  //    }
  //})
  /*******common*********/
9931d316   liuqimichale   格式化代码
90
  
f9cd3bb6   liuqimichale   初始化项目
91
  /*统一请求接口*/
9931d316   liuqimichale   格式化代码
92
93
94
95
96
97
98
99
100
101
102
103
104
  function postRequest(url, params, successCallback, errorCallback) {
    ajax({
      type: "POST",
      url: url,
      dataType: "json",
      data: JSON.stringify(params),
      beforeSend: function () {
        //some js code
      },
      success: function (msg) {
        successCallback(msg);
        //var res = msg;
        //if (res.code == 0) {//进场
f9cd3bb6   liuqimichale   初始化项目
105
  
9931d316   liuqimichale   格式化代码
106
107
108
109
110
111
112
113
114
        //} else {//其他情况如【该卡号场内已存在】
        //    console.log(res.message);
        //}
      },
      error: function (err) {
        errorCallback(err);
        //console.log("网络地址出错...")
      }
    })
f9cd3bb6   liuqimichale   初始化项目
115
116
117
118
  }
  
  /*获取URL?参数*/
  function getQueryString(location) {
9931d316   liuqimichale   格式化代码
119
120
121
122
123
124
125
126
    //var url = location.search; //获取url中"?"符后的字串
    var url = location.search;
    var theRequest = new Object();
    if (url.indexOf("?") != -1) {
      var str = url.substr(1);
      strs = str.split("&");
      for (var i = 0; i < strs.length; i++) {
        theRequest[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]);
f9cd3bb6   liuqimichale   初始化项目
127
      }
9931d316   liuqimichale   格式化代码
128
129
130
131
    } else {
      theRequest = null;
    }
    return theRequest;
f9cd3bb6   liuqimichale   初始化项目
132
133
134
135
  }
  
  /*统一提示信息*/
  window.alertMsg = function (txt) {
9931d316   liuqimichale   格式化代码
136
137
138
139
140
141
142
143
144
145
146
147
148
    var alertFram = document.createElement("DIV");
    alertFram.id = "alertFram";
    alertFram.style.position = "fixed";
    alertFram.style.width = "100%";
    alertFram.style.textAlign = "center";
    alertFram.style.top = "40%";
    alertFram.style.zIndex = "10001";
    strHtml = " <span style=\"font-family: 微软雅黑;display:inline-block;background:#333;color:#fff;padding:0 20px;line-height:36px;border-radius:6px; \">" + txt + "</span>";
    alertFram.innerHTML = strHtml;
    document.body.appendChild(alertFram);
    setTimeout((function () {
      alertFram.style.display = "none";
    }), 2500);
f9cd3bb6   liuqimichale   初始化项目
149
150
151
152
  };
  
  //四舍五入保留2位小数(不够位数,则用0替补)
  function keepTwoDecimalFull(num) {
9931d316   liuqimichale   格式化代码
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
    var result = parseFloat(num);
    if (isNaN(result)) {
      alert('传递参数错误,请检查!');
      return false;
    }
    result = Math.round(num * 100) / 100;
    var s_x = result.toString();
    var pos_decimal = s_x.indexOf('.');
    if (pos_decimal < 0) {
      pos_decimal = s_x.length;
      s_x += '.';
    }
    while (s_x.length <= pos_decimal + 2) {
      s_x += '0';
    }
    return s_x;
f9cd3bb6   liuqimichale   初始化项目
169
170
  }
  
afc9e308   liuqimichale   银联支付
171
172
173
174
175
176
  /**
   * param 将要转为URL参数字符串的对象
   * key URL参数字符串的前缀
   * encode true/false 是否进行URL编码,默认为true
   *
   * return URL参数字符串
f9cd3bb6   liuqimichale   初始化项目
177
178
   */
  var parseParams = function (data) {
9931d316   liuqimichale   格式化代码
179
180
181
182
183
184
    try {
      var tempArr = [];
      for (var i in data) {
        var key = (i);
        var value = encodeURIComponent(data[i]);//decodeURIComponent
        tempArr.push(key + '=' + value);
f9cd3bb6   liuqimichale   初始化项目
185
      }
9931d316   liuqimichale   格式化代码
186
187
188
189
190
      var urlParamsStr = tempArr.join('&');
      return urlParamsStr;
    } catch (err) {
      return '';
    }
f9cd3bb6   liuqimichale   初始化项目
191
192
  };
  
f9cd3bb6   liuqimichale   初始化项目
193
194
  /*获取对象*/
  function getObjectByID(id) {
9931d316   liuqimichale   格式化代码
195
    return document.getElementById(id);
f9cd3bb6   liuqimichale   初始化项目
196
197
  }
  
f9cd3bb6   liuqimichale   初始化项目
198
199
  /*秒转时分*/
  function formatSeconds(value) {
9931d316   liuqimichale   格式化代码
200
201
202
203
204
205
206
207
208
209
210
211
212
213
    var secondTime = parseInt(value);// 秒
    var minuteTime = 0;// 分
    var hourTime = 0;// 小时
    if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数
      //获取分钟,除以60取整数,得到整数分钟
      minuteTime = parseInt(secondTime / 60);
      //获取秒数,秒数取佘,得到整数秒数
      secondTime = parseInt(secondTime % 60);
      //如果分钟大于60,将分钟转换成小时
      if (minuteTime > 60) {
        //获取小时,获取分钟除以60,得到整数小时
        hourTime = parseInt(minuteTime / 60);
        //获取小时后取佘的分,获取分钟除以60取佘的分
        minuteTime = parseInt(minuteTime % 60);
f9cd3bb6   liuqimichale   初始化项目
214
      }
9931d316   liuqimichale   格式化代码
215
216
    }
    var result = "" + parseInt(secondTime) + "秒";
f9cd3bb6   liuqimichale   初始化项目
217
  
9931d316   liuqimichale   格式化代码
218
219
220
221
222
223
224
    if (minuteTime > 0) {
      result = "" + parseInt(minuteTime) + "分" + result;
    }
    if (hourTime > 0) {
      result = "" + parseInt(hourTime) + "小时" + result;
    }
    return result;
f9cd3bb6   liuqimichale   初始化项目
225
226
227
228
  }
  
  /*只能输入数字加字母*/
  function checkCharAndNumber(ev) {
9931d316   liuqimichale   格式化代码
229
230
231
    //this.value = this.value.toUpperCase();
    var tmpValue = this.value.replace(/[^\d|chun]/g, '');
    this.value = this.value.toUpperCase();
f9cd3bb6   liuqimichale   初始化项目
232
233
234
235
  }
  
  /*检测当前app浏览器*/
  function clientBrowserEx() {
9931d316   liuqimichale   格式化代码
236
237
238
239
240
241
242
243
244
245
246
247
248
249
    var state = "other";//default
    if (/MicroMessenger/.test(window.navigator.userAgent)) {
      console.log("微信客户端");
      //this.switchShow("wxPay");
      state = "wxPay";
    } else if (/AlipayClient/.test(window.navigator.userAgent)) {
      console.log("支付宝客户端");
      //this.switchShow("aliPay");
      state = "aliPay";
    } else {
      console.log("其他浏览器");
      state = "other";
    }
    return state;
f9cd3bb6   liuqimichale   初始化项目
250
251
  }
  
f9cd3bb6   liuqimichale   初始化项目
252
253
  /*支付倒计时 @id*/
  function countDownTime(id) {
9931d316   liuqimichale   格式化代码
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
    $obj = getObjectByID(id);
    getObjectByID("headTip").style.display = "block";
    var count = appState.defaultTime;
    appState.countDownTime_timer = setInterval(function () {
      if (count == 0) {
        clearInterval(appState.countDownTime_timer);
        appState.countDownTime_timer = null;
        $obj.innerHTML = count + "秒";
        //删除code后刷新
        window.location.href = funcUrlDel("code");
      } else {
        --count;
        $obj.innerHTML = count + "秒";
      }
    }, 1000);
f9cd3bb6   liuqimichale   初始化项目
269
270
271
272
  }
  
  /*删除url中某个参数*/
  function funcUrlDel(name) {
9931d316   liuqimichale   格式化代码
273
274
275
276
277
278
279
280
281
    var loca = window.location;
    var baseUrl = loca.origin + loca.pathname + "?";
    var query = loca.search.substr(1);
    if (query.indexOf(name) > -1) {
      var obj = {}
      var arr = query.split("&");
      for (var i = 0; i < arr.length; i++) {
        arr[i] = arr[i].split("=");
        obj[arr[i][0]] = arr[i][1];
f9cd3bb6   liuqimichale   初始化项目
282
      }
9931d316   liuqimichale   格式化代码
283
284
285
286
287
288
289
      ;
      delete obj[name];
      var url = baseUrl + JSON.stringify(obj).replace(/[\"\{\}]/g, "").replace(/\:/g, "=").replace(/\,/g, "&");
      return url
    } else {
      return loca.href;
    }
f9cd3bb6   liuqimichale   初始化项目
290
  }
9931d316   liuqimichale   格式化代码
291
  
06c1136d   liuqimichale   支付 去掉已支付金额
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
  // var userAgent = navigator.userAgent;
  // var isAndroid = userAgent.indexOf('Android') > -1 || userAgent.indexOf('Adr') > -1; //android终端
  //
  // function utilParams(val, orderID, openId) {
  //   var _orderTotalFee = Number($('#due').text()) * 100 //总金额
  //   var fee = $('#discountFee').text()
  //   var _fee = fee.substring(0, fee.length - 1);
  //   var _orderDicountFee = Number(_fee) * 100  //优惠了多少钱
  //   var _orderActFee = _orderTotalFee - _orderDicountFee  //实收多少钱
  //   var jsondata;
  //   if (_orderDicountFee > 0) {
  //     jsondata = {
  //       orderBigType: 100,
  //       payOrderType: 101,
  //       rltOrderId: orderID,
  //       payType: val,
  //       terminalSource: 7,
  //       orderActFee: _orderActFee,
  //       orderTotalFee: _orderTotalFee,
  //       orderDicountFee: _orderDicountFee,
  //       payUserId: openId,
  //       terminalOS: isAndroid ? 'AND' : 'IOS',
  //       couponType: 1, //优惠类型
  //       couponCode: $('#discountBox').val(),
  //     };
  //   } else {
  //     jsondata = {
  //       orderBigType: 100,
  //       payOrderType: 101,
  //       rltOrderId: orderID,
  //       payType: val,
  //       terminalSource: 7,
  //       orderActFee: _orderActFee,
  //       orderTotalFee: _orderTotalFee,
  //       payUserId: openId,
  //       terminalOS: isAndroid ? 'AND' : 'IOS',
  //     };
  //   }
  //   return jsondata
  // }
f9cd3bb6   liuqimichale   初始化项目