浏览代码

外链更改公用方法

谢杰标 2 年之前
父节点
当前提交
03c9354a39
共有 4 个文件被更改,包括 509 次插入488 次删除
  1. 497 437
      common/methodTool.js
  2. 3 20
      pages/learn/index.vue
  3. 2 19
      pages/questionBank/index.vue
  4. 7 12
      pages2/learn/my_learn.vue

+ 497 - 437
common/methodTool.js

@@ -1,443 +1,503 @@
-import store from '@/store/index.js'
-import config from '@/common/config'
-import api from '@/common/api.js'
+import store from "@/store/index.js";
+import config from "@/common/config";
+import api from "@/common/api.js";
 
 export default {
-	isGoLogin(isBack = true) {
-		if (!uni.getStorageSync('user_account')) {
-			uni.navigateTo({
-				url: '/pages4/login/login?isBack=' + isBack
-			});
-			return true;
-		} else {
-			return false
-		}
-	},
-	isLogin() {
-		if (uni.getStorageSync('user_account')) {
-			return true;
-		} else {
-			return false
-		}
-	},
-	isLogout() {
-		// uni.removeStorageSync('user_account')
-		// uni.removeStorageSync('token')
-	},
-	//提示
-	showToast(title, icon = 'none', time = 2000) {
-		return setTimeout(() => {
-			uni.showToast({
-				title: title,
-				icon: icon,
-				duration: time
-			})
-		}, 500)
-	},
-	//图片路径填补
-	splitImgHost(url, scale = false, width = 250) {
-		if (!url) {
-			return ''
-		} else if (url.indexOf("http") != -1 || url.indexOf("https") != -1 || url.indexOf("wxfile") != -1) {
+  isGoLogin(isBack = true) {
+    if (!uni.getStorageSync("user_account")) {
+      uni.navigateTo({
+        url: "/pages4/login/login?isBack=" + isBack,
+      });
+      return true;
+    } else {
+      return false;
+    }
+  },
+  isLogin() {
+    if (uni.getStorageSync("user_account")) {
+      return true;
+    } else {
+      return false;
+    }
+  },
+  isLogout() {
+    // uni.removeStorageSync('user_account')
+    // uni.removeStorageSync('token')
+  },
+  //提示
+  showToast(title, icon = "none", time = 2000) {
+    return setTimeout(() => {
+      uni.showToast({
+        title: title,
+        icon: icon,
+        duration: time,
+      });
+    }, 500);
+  },
+  //图片路径填补
+  splitImgHost(url, scale = false, width = 250) {
+    if (!url) {
+      return "";
+    } else if (
+      url.indexOf("http") != -1 ||
+      url.indexOf("https") != -1 ||
+      url.indexOf("wxfile") != -1
+    ) {
+    } else {
+      url = config.BASE_IMG_URL + url;
+    }
+    if (scale) {
+      url = url + "?x-oss-process=image/resize,w_" + width;
+    }
+    return url;
+  },
+  setUuid(id) {
+    uni.setStorageSync("uuid", id);
+  },
 
-		} else {
-			url = config.BASE_IMG_URL + url
-		}
-		if (scale) {
-			url = url + "?x-oss-process=image/resize,w_" + width
-		}
-		return url;
+  getUuid() {
+    return uni.getStorageSync("uuid");
+  },
+  exit() {
+    uni.removeStorageSync("user_account");
+    uni.removeStorageSync("token");
+    uni.removeStorageSync("h5_code");
+    store.state.userInfo = null;
+    uni.reLaunch({
+      url: "/pages/index/index",
+    });
+  },
+  /* 时间戳转换成日期
+   * @param timestamp
+   * @returns {*}
+   */
+  timestampToTime(timestamp, isDay = true, hasChinese, line) {
+    if (!timestamp) {
+      return "";
+    }
+    var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+    var Y = date.getFullYear() + (hasChinese ? "" : "-");
+    var M =
+      (date.getMonth() + 1 < 10
+        ? "0" + (date.getMonth() + 1)
+        : date.getMonth() + 1) + (hasChinese ? "" : "-");
+    var D =
+      date.getDate() < 10
+        ? "0" + date.getDate() + (hasChinese ? "" : " ")
+        : date.getDate() + (hasChinese ? "" : " ");
+    var h =
+      date.getHours() < 10
+        ? "0" + date.getHours() + ":"
+        : date.getHours() + ":";
+    var m =
+      date.getMinutes() < 10
+        ? "0" + date.getMinutes() + ":"
+        : date.getMinutes() + ":";
+    var s =
+      date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
+    if (isDay) {
+      if (hasChinese) {
+        return Y + "年" + M + "月" + D + "日";
+      } else {
+        return Y + M + D;
+      }
+    }
+    if (line) {
+      return h + m + s;
+    }
 
-	},
-	setUuid(id) {
-		uni.setStorageSync('uuid', id)
-	},
+    if (hasChinese) {
+      return Y + "年" + M + "月" + D + "日" + h + m + s;
+    } else {
+      return Y + M + D + h + m + s;
+    }
+  },
+  // 时间戳转换日期
+  formDate(time, formate = "yyyy-mm-dd hh:mm:ss") {
+    var padDate = function (va) {
+      va = va < 10 ? "0" + va : va;
+      return va;
+    };
+    if (time) {
+      var value = new Date(time * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
+      // var value = new Date(parseFloat(time))
+      var year = value.getFullYear();
+      var month = padDate(value.getMonth() + 1);
+      var day = padDate(value.getDate());
+      var hour = padDate(value.getHours());
+      var minutes = padDate(value.getMinutes());
+      var seconds = padDate(value.getSeconds());
+      let res = "";
+      switch (formate) {
+        case "mm-dd": {
+          res = month + "-" + day;
+          break;
+        }
+        case "yyyy-mm-dd": {
+          res = year + "-" + month + "-" + day;
+          break;
+        }
+        case "yyyy-mm": {
+          res = year + "-" + month;
+          break;
+        }
+        case "mm月dd日": {
+          res = month + "月" + day + "日";
+          break;
+        }
+        case "yyyy年mm月dd日": {
+          res = year + "年" + month + "月" + day + "日";
+          break;
+        }
+        case "yyyy年mm月": {
+          res = year + "年" + month + "月";
+          break;
+        }
+        case "hh:mm": {
+          res = hour + ":" + minutes;
+          break;
+        }
+        case "yyyy-mm-dd hh:mm": {
+          res = year + "-" + month + "-" + day + " " + hour + ":" + minutes;
+          break;
+        }
+        case "yyyy.mm.dd":
+          res = year + "." + month + "." + day;
+          break;
+        case "yyyy-mm-dd hh:mm:ss":
+        default: {
+          res =
+            year +
+            "-" +
+            month +
+            "-" +
+            day +
+            " " +
+            hour +
+            ":" +
+            minutes +
+            ":" +
+            seconds;
+          break;
+        }
+      }
+      return res;
+    }
+    return "--";
+  },
+  //当前时间距离目标时间还有多久
+  GetRTime(EndTime, isDay = true) {
+    var EndTime = EndTime; //结束时间
+    var NowTime = new Date(); //当前时间
+    //后台给我的是10位 精确到秒的 所有下面我就除以了1000,不要小数点后面的
+    var t = EndTime - (NowTime.getTime() / 1000).toFixed(0);
 
-	getUuid() {
-		return uni.getStorageSync('uuid')
-	},
-	exit() {
-		uni.removeStorageSync('user_account')
-		uni.removeStorageSync('token')
-		uni.removeStorageSync('h5_code')
-		store.state.userInfo = null
-		uni.reLaunch({
-			url: '/pages/index/index'
-		});
-	},
-	/* 时间戳转换成日期
-	 * @param timestamp
-	 * @returns {*}
-	 */
-	timestampToTime(timestamp, isDay = true, hasChinese, line) {
-		if (!timestamp) {
-			return ''
-		}
-		var date = new Date(timestamp * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
-		var Y = date.getFullYear() + (hasChinese ? '' : '-');
-		var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + (hasChinese ? '' : '-');
-		var D = date.getDate() < 10 ? '0' + date.getDate() + (hasChinese ? '' : ' ') : date.getDate() + (hasChinese ? '' : ' ');
-		var h = date.getHours() < 10 ? '0' + date.getHours() + ':' : date.getHours() + ':';
-		var m = date.getMinutes() < 10 ? '0' + date.getMinutes() + ':' : date.getMinutes() + ':';
-		var s = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
-		if (isDay) {
+    if (t <= 0) {
+      return "已结束";
+    }
+    //如果后台给的是毫秒 上面不用除以1000 下面的计算时间也都要除以1000 这里我去掉1000了
+    var d = Math.floor(t / 60 / 60 / 24); //天 var d=Math.floor(t/1000/60/60/24)
+    var h = Math.floor((t / 60 / 60) % 24); //时 var h=Math.floor(t/1000/60/60%24)
+    var m = Math.floor((t / 60) % 60); //分 var m=Math.floor(t/1000/60%60)
+    var s = Math.floor(t % 60); //秒 var s=Math.floor(t/1000%60)
+    if (parseInt(d) < 10) {
+      d = "0" + d;
+    }
+    if (parseInt(h) < 10) {
+      h = "0" + h;
+    }
+    if (parseInt(m) < 10) {
+      m = "0" + m;
+    }
+    if (parseInt(s) < 10) {
+      s = "0" + s;
+    }
+    if (isDay) {
+      return d;
+    }
+    return d + "天" + h + "小时" + m + "分" + s + "秒";
+  },
+  TimeTotimestamp(date) {
+    var date = date.replace(/-/g, "/");
+    var newDate = new Date(date);
+    return newDate.getTime() / 1000;
+  },
+  timest() {
+    var tmp = Date.parse(new Date()).toString();
+    tmp = tmp.substr(0, 10);
+    return tmp;
+  },
+  //压缩图片
+  imageInfos(url) {
+    var self = this;
+    return new Promise((resolve, reject) => {
+      uni.getImageInfo({
+        src: url,
+        success: async (res) => {
+          let canvasWidth = res.width; //图片原始长宽
+          let canvasHeight = res.height;
+          if (canvasWidth > 2000 || canvasHeight > 2000) {
+            uni.compressImage({
+              src: url,
+              quality: 75,
+              width: "35%",
+              height: "35%",
+              success: async (rest) => {
+                const waitUpload = await self.uploadFile(rest.tempFilePath, 0);
+                console.log(waitUpload, "waitUpload");
+                resolve(waitUpload);
+              },
+            });
+          } else if (canvasWidth > 1000 || canvasHeight > 1000) {
+            uni.compressImage({
+              src: url,
+              quality: 75,
+              width: "50%",
+              height: "50%",
+              success: async (rest) => {
+                const waitUpload = await self.uploadFile(rest.tempFilePath, 0);
+                console.log(waitUpload, "waitUpload");
+                resolve(waitUpload);
+              },
+            });
+          } else {
+            const waitUpload = await self.uploadFile(url, 0);
+            console.log(waitUpload, "waitUpload");
+            resolve(waitUpload);
+            // console.log('无需压缩', url);
+            // resolve(url);
+          }
+        },
+      });
+    });
+  },
+  //上传图片
+  uploadFile(options, int) {
+    return new Promise((resolve, reject) => {
+      var self = this;
+      if (options.indexOf("//tmp") === -1 && options.indexOf("//temp") === -1) {
+        resolve(options);
+        return;
+      }
+      var data = {
+        imageStatus: int,
+      };
+      api.aliyunpolicy(data).then((res) => {
+        var ossToken = res.data.data.resultContent;
+        uni.uploadFile({
+          url: ossToken.host,
+          name: "file",
+          filePath: options,
+          fileType: "image",
+          header: {
+            AuthorizationToken: "WX " + uni.getStorageSync("token"),
+          },
+          formData: {
+            key: ossToken.dir,
+            OSSAccessKeyId: ossToken.accessid,
+            policy: ossToken.policy,
+            Signature: ossToken.signature,
+            // callback: ossToken.callback,
+            success_action_status: 200,
+          },
+          success: (result) => {
+            // if (result.statusCode === 200) {
+            resolve(ossToken.dir);
+            // } else {
+            // 	uni.showToast({
+            // 		title: '上传失败',
+            // 		icon: 'none'
+            // 	});
+            // 	return;
+            // }
+          },
+          fail: (error) => {
+            uni.showToast({
+              title: "上传接口报错",
+              icon: "none",
+            });
+            return;
+          },
+        });
+      });
+    });
+  },
+  getYears(strBirthday) {
+    if (!strBirthday) {
+      return "-";
+    }
+    var returnAge;
+    var strBirthdayArr = strBirthday.split("-");
+    var birthYear = strBirthdayArr[0];
+    var birthMonth = strBirthdayArr[1];
+    var birthDay = strBirthdayArr[2];
+    var d = new Date();
+    var nowYear = d.getFullYear();
+    var nowMonth = d.getMonth() + 1;
+    var nowDay = d.getDate();
 
-			if (hasChinese) {
-				return Y + '年' + M + '月' + D + '日';
-			} else {
-				return Y + M + D;
-			}
-
-		}
-		if (line) {
-			return h + m + s
-		}
-
-		if (hasChinese) {
-			return Y + '年' + M + '月' + D + '日' + h + m + s;
-		} else {
-			return Y + M + D + h + m + s;
-		}
-
-	},
-	// 时间戳转换日期
-	formDate(time, formate = 'yyyy-mm-dd hh:mm:ss') {
-		var padDate = function (va) {
-			va = va < 10 ? '0' + va : va
-			return va
-		}
-		if (time) {
-
-			var value = new Date(time * 1000); //时间戳为10位需*1000,时间戳为13位的话不需乘1000
-			// var value = new Date(parseFloat(time))
-			var year = value.getFullYear()
-			var month = padDate(value.getMonth() + 1)
-			var day = padDate(value.getDate())
-			var hour = padDate(value.getHours())
-			var minutes = padDate(value.getMinutes())
-			var seconds = padDate(value.getSeconds())
-			let res = ''
-			switch (formate) {
-				case 'mm-dd': {
-					res = month + '-' + day
-					break
-				}
-				case 'yyyy-mm-dd': {
-					res = year + '-' + month + '-' + day
-					break
-				}
-				case 'yyyy-mm': {
-					res = year + '-' + month
-					break
-				}
-				case 'mm月dd日': {
-					res = month + '月' + day + '日'
-					break
-				}
-				case 'yyyy年mm月dd日': {
-					res = year + '年' + month + '月' + day + '日'
-					break
-				}
-				case 'yyyy年mm月': {
-					res = year + '年' + month + '月'
-					break
-				}
-				case 'hh:mm': {
-					res = hour + ':' + minutes
-					break
-				}
-				case 'yyyy-mm-dd hh:mm': {
-					res = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes
-					break
-				}
-				case 'yyyy.mm.dd':
-					res = year + '.' + month + '.' + day
-					break
-				case 'yyyy-mm-dd hh:mm:ss':
-				default: {
-					res = year + '-' + month + '-' + day + ' ' + hour + ':' + minutes + ':' + seconds
-					break
-				}
-			}
-			return res
-		}
-		return '--'
-	},
-	//当前时间距离目标时间还有多久
-	GetRTime(EndTime, isDay = true) {
-		var EndTime = EndTime //结束时间
-		var NowTime = new Date(); //当前时间
-		//后台给我的是10位 精确到秒的 所有下面我就除以了1000,不要小数点后面的
-		var t = EndTime - (NowTime.getTime() / 1000).toFixed(0);
-
-		if (t <= 0) {
-			return '已结束'
-		}
-		//如果后台给的是毫秒 上面不用除以1000 下面的计算时间也都要除以1000 这里我去掉1000了
-		var d = Math.floor(t / 60 / 60 / 24); //天 var d=Math.floor(t/1000/60/60/24)
-		var h = Math.floor(t / 60 / 60 % 24); //时 var h=Math.floor(t/1000/60/60%24)
-		var m = Math.floor(t / 60 % 60); //分 var m=Math.floor(t/1000/60%60)
-		var s = Math.floor(t % 60); //秒 var s=Math.floor(t/1000%60)
-		if (parseInt(d) < 10) {
-			d = "0" + d;
-		}
-		if (parseInt(h) < 10) {
-			h = "0" + h;
-		}
-		if (parseInt(m) < 10) {
-			m = "0" + m;
-		}
-		if (parseInt(s) < 10) {
-			s = "0" + s;
-		}
-		if (isDay) {
-			return d;
-		}
-		return d + '天' + h + '小时' + m + '分' + s + '秒'
-	},
-	TimeTotimestamp(date) {
-		var date = date.replace(/-/g, '/');
-		var newDate = new Date(date)
-		return (newDate.getTime() / 1000)
-	},
-	timest() {
-		var tmp = Date.parse(new Date()).toString();
-		tmp = tmp.substr(0, 10);
-		return tmp;
-	},
-	//压缩图片
-	imageInfos(url) {
-		var self = this;
-		return new Promise((resolve, reject) => {
-			uni.getImageInfo({
-				src: url,
-				success: async res => {
-					let canvasWidth = res.width; //图片原始长宽
-					let canvasHeight = res.height;
-					if (canvasWidth > 2000 || canvasHeight > 2000) {
-						uni.compressImage({
-							src: url,
-							quality: 75,
-							width: '35%',
-							height: '35%',
-							success: async rest => {
-								const waitUpload = await self.uploadFile(rest.tempFilePath, 0);
-								console.log(waitUpload, 'waitUpload')
-								resolve(waitUpload);
-							}
-						});
-					} else if (canvasWidth > 1000 || canvasHeight > 1000) {
-						uni.compressImage({
-							src: url,
-							quality: 75,
-							width: '50%',
-							height: '50%',
-							success: async rest => {
-								const waitUpload = await self.uploadFile(rest.tempFilePath, 0);
-								console.log(waitUpload, 'waitUpload')
-								resolve(waitUpload);
-							}
-						});
-					} else {
-						const waitUpload = await self.uploadFile(url, 0);
-						console.log(waitUpload, 'waitUpload')
-						resolve(waitUpload);
-						// console.log('无需压缩', url);
-						// resolve(url);
-					}
-				}
-			});
-		});
-	},
-	//上传图片
-	uploadFile(options, int) {
-		return new Promise((resolve, reject) => {
-			var self = this;
-			if (options.indexOf('//tmp') === -1 && options.indexOf('//temp') === -1) {
-				resolve(options)
-				return
-			}
-			var data = {
-				imageStatus: int
-			};
-			api.aliyunpolicy(data).then(res => {
-				var ossToken = res.data.data.resultContent;
-				uni.uploadFile({
-					url: ossToken.host,
-					name: 'file',
-					filePath: options,
-					fileType: 'image',
-					header: {
-						AuthorizationToken: 'WX ' + uni.getStorageSync('token')
-					},
-					formData: {
-						key: ossToken.dir,
-						OSSAccessKeyId: ossToken.accessid,
-						policy: ossToken.policy,
-						Signature: ossToken.signature,
-						// callback: ossToken.callback,
-						success_action_status: 200
-					},
-					success: result => {
-						// if (result.statusCode === 200) {
-						resolve(ossToken.dir);
-						// } else {
-						// 	uni.showToast({
-						// 		title: '上传失败',
-						// 		icon: 'none'
-						// 	});
-						// 	return;
-						// }
-					},
-					fail: error => {
-						uni.showToast({
-							title: '上传接口报错',
-							icon: 'none'
-						});
-						return;
-					}
-				});
-			});
-		});
-	},
-	getYears(strBirthday) {
-
-		if (!strBirthday) {
-			return '-';
-		}
-		var returnAge;
-		var strBirthdayArr = strBirthday.split('-');
-		var birthYear = strBirthdayArr[0];
-		var birthMonth = strBirthdayArr[1];
-		var birthDay = strBirthdayArr[2];
-		var d = new Date();
-		var nowYear = d.getFullYear();
-		var nowMonth = d.getMonth() + 1;
-		var nowDay = d.getDate();
-
-		if (nowYear == birthYear) {
-			returnAge = 0; //同年 则为0岁
-		} else {
-			var ageDiff = nowYear - birthYear; //年之差
-			if (ageDiff > 0) {
-				if (nowMonth == birthMonth) {
-					var dayDiff = nowDay - birthDay; //日之差
-					if (dayDiff < 0) {
-						returnAge = ageDiff - 1;
-					} else {
-						returnAge = ageDiff;
-					}
-				} else {
-					var monthDiff = nowMonth - birthMonth; //月之差
-					if (monthDiff < 0) {
-						returnAge = ageDiff - 1;
-					} else {
-						returnAge = ageDiff;
-					}
-				}
-			} else {
-				returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天
-			}
-		}
-		return returnAge; //返回周岁年龄
-	},
-	getDate() {
-		let nowDate = new Date()
-		let date = {
-			year: nowDate.getFullYear(),
-			month: nowDate.getMonth() + 1,
-			date: nowDate.getDate()
-		}
-		return date.year + '-' + date.month + '-' + date.date
-	},
-	getZeroTime() {
-		return Number(new Date(new Date().toLocaleDateString()).getTime() / 1000)
-	},
-	setClock: function (time) {
-		var that = this, sec = parseInt(time), clockCount = {}, strTimer = "";
-		clockCount = setInterval(function () {
-			if (sec == 0) {
-				$(".js-count-down").html("活动已经结束");
-				clearInterval(clockCount);
-				return false;
-			}
-			strTimer = that.secondToDate(sec);
-			$(".js-count-down").html(strTimer);
-			sec--;
-		}, 1000)
-	},
-	secondToDate(result) {
-		var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
-		var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
-		var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
-		if (h == 0) {
-			result = m + ":" + s;
-		} else {
-			result = h + ':' + m + ":" + s
-		}
-		return result;
-	},
-	/**
-	 * 
-	 * @param {int} result 
-	 * @returns {string}
-	 * @remard 单位S转小时分钟秒
-	 */
-	secondToTime(result, Diszing = true) {
-		var h = Math.floor(result / 3600) < 10 ? '0' + Math.floor(result / 3600) : Math.floor(result / 3600);
-		var m = Math.floor((result / 60 % 60)) < 10 ? '0' + Math.floor((result / 60 % 60)) : Math.floor((result / 60 % 60));
-		var s = Math.floor((result % 60)) < 10 ? '0' + Math.floor((result % 60)) : Math.floor((result % 60));
-		if (h == 0 && Diszing) {
-			result = m + ":" + s;
-		} else {
-			result = h + ':' + m + ":" + s
-		}
-		return result;
-	},
-	/**
-	 * @param {Object} length  长度
-	 * 获取随机字符串
-	 */
-	getRandomString(length) {
-		var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
-		var result = '';
-		for (var i = length; i > 0; --i)
-			result += str[Math.floor(Math.random() * str.length)];
-		return result;
-	},
-	skipLogin(sign) {
-		return api.skipLogin({ sign }).then(res => {
-			if (res.data.code == 200) {
-				uni.removeStorageSync('newUser_sc')
-				uni.removeStorageSync('shareActivityCode')
-				//信息完善,直接进入页面
-				uni.setStorageSync('user_account', res.data.data.user_account);
-				uni.setStorageSync('token', res.data.data.token);
-				store.dispatch('getUserInfo').finally(e => {
-					return Promise.resolve()
-				})
-			} else {
-				uni.navigateTo({
-					url: '/pages4/login/login'
-				});
-				return Promise.reject()
-			}
-		})
-	},
-	getCanvas(that, className = ".canvas") {
-		return new Promise((resolve, reject) => {
-			uni.getSystemInfo({
-				success: res => {
-					const query = uni.createSelectorQuery().in(that)
-					setTimeout(() => {
-						query.select(className)
-							.boundingClientRect()
-							.exec((newRes) => {  
-								resolve({ systemInfo: res, newRes })
-							});
-					}, 1000)
-				}
-			})
-		});
-	},
-}
+    if (nowYear == birthYear) {
+      returnAge = 0; //同年 则为0岁
+    } else {
+      var ageDiff = nowYear - birthYear; //年之差
+      if (ageDiff > 0) {
+        if (nowMonth == birthMonth) {
+          var dayDiff = nowDay - birthDay; //日之差
+          if (dayDiff < 0) {
+            returnAge = ageDiff - 1;
+          } else {
+            returnAge = ageDiff;
+          }
+        } else {
+          var monthDiff = nowMonth - birthMonth; //月之差
+          if (monthDiff < 0) {
+            returnAge = ageDiff - 1;
+          } else {
+            returnAge = ageDiff;
+          }
+        }
+      } else {
+        returnAge = -1; //返回-1 表示出生日期输入错误 晚于今天
+      }
+    }
+    return returnAge; //返回周岁年龄
+  },
+  getDate() {
+    let nowDate = new Date();
+    let date = {
+      year: nowDate.getFullYear(),
+      month: nowDate.getMonth() + 1,
+      date: nowDate.getDate(),
+    };
+    return date.year + "-" + date.month + "-" + date.date;
+  },
+  getZeroTime() {
+    return Number(new Date(new Date().toLocaleDateString()).getTime() / 1000);
+  },
+  setClock: function (time) {
+    var that = this,
+      sec = parseInt(time),
+      clockCount = {},
+      strTimer = "";
+    clockCount = setInterval(function () {
+      if (sec == 0) {
+        $(".js-count-down").html("活动已经结束");
+        clearInterval(clockCount);
+        return false;
+      }
+      strTimer = that.secondToDate(sec);
+      $(".js-count-down").html(strTimer);
+      sec--;
+    }, 1000);
+  },
+  secondToDate(result) {
+    var h =
+      Math.floor(result / 3600) < 10
+        ? "0" + Math.floor(result / 3600)
+        : Math.floor(result / 3600);
+    var m =
+      Math.floor((result / 60) % 60) < 10
+        ? "0" + Math.floor((result / 60) % 60)
+        : Math.floor((result / 60) % 60);
+    var s =
+      Math.floor(result % 60) < 10
+        ? "0" + Math.floor(result % 60)
+        : Math.floor(result % 60);
+    if (h == 0) {
+      result = m + ":" + s;
+    } else {
+      result = h + ":" + m + ":" + s;
+    }
+    return result;
+  },
+  /**
+   *
+   * @param {int} result
+   * @returns {string}
+   * @remard 单位S转小时分钟秒
+   */
+  secondToTime(result, Diszing = true) {
+    var h =
+      Math.floor(result / 3600) < 10
+        ? "0" + Math.floor(result / 3600)
+        : Math.floor(result / 3600);
+    var m =
+      Math.floor((result / 60) % 60) < 10
+        ? "0" + Math.floor((result / 60) % 60)
+        : Math.floor((result / 60) % 60);
+    var s =
+      Math.floor(result % 60) < 10
+        ? "0" + Math.floor(result % 60)
+        : Math.floor(result % 60);
+    if (h == 0 && Diszing) {
+      result = m + ":" + s;
+    } else {
+      result = h + ":" + m + ":" + s;
+    }
+    return result;
+  },
+  /**
+   * @param {Object} length  长度
+   * 获取随机字符串
+   */
+  getRandomString(length) {
+    var str = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+    var result = "";
+    for (var i = length; i > 0; --i)
+      result += str[Math.floor(Math.random() * str.length)];
+    return result;
+  },
+  skipLogin(sign) {
+    return api.skipLogin({ sign }).then((res) => {
+      if (res.data.code == 200) {
+        uni.removeStorageSync("newUser_sc");
+        uni.removeStorageSync("shareActivityCode");
+        //信息完善,直接进入页面
+        uni.setStorageSync("user_account", res.data.data.user_account);
+        uni.setStorageSync("token", res.data.data.token);
+        store.dispatch("getUserInfo").finally((e) => {
+          return Promise.resolve();
+        });
+      } else {
+        uni.navigateTo({
+          url: "/pages4/login/login",
+        });
+        return Promise.reject();
+      }
+    });
+  },
+  getCanvas(that, className = ".canvas") {
+    return new Promise((resolve, reject) => {
+      uni.getSystemInfo({
+        success: (res) => {
+          const query = uni.createSelectorQuery().in(that);
+          setTimeout(() => {
+            query
+              .select(className)
+              .boundingClientRect()
+              .exec((newRes) => {
+                resolve({ systemInfo: res, newRes });
+              });
+          }, 1000);
+        },
+      });
+    });
+  },
+  toLink(externalLink) {
+    if (!externalLink) {
+      uni.showModal({
+        showCancel: false,
+        content: "链接不存在",
+      });
+      return;
+    }
+    // #ifdef MP-WEIXIN
+    uni.navigateTo({
+      url: `/pages/webview/sdlink?url=` + externalLink,
+    });
+    // #endif
+    // #ifdef H5
+    window.location.href = externalLink;
+    // #endif
+  },
+};

+ 3 - 20
pages/learn/index.vue

@@ -1030,27 +1030,10 @@ export default {
           }
         });
     },
-    toLink(externalLink) {
-      if (!externalLink) {
-        uni.showModal({
-          showCancel: false,
-          content: "链接不存在",
-        });
-        return;
-      }
-      // #ifdef MP-WEIXIN
-      uni.navigateTo({
-        url: `/pages/webview/sdlink?url=` + externalLink,
-      });
-      // #endif
-      // #ifdef H5
-      window.location.href = externalLink;
-      // #endif
-    },
     async studyIn(v, i, item, index) {
       if (item.externalLinkStatus) {
-        this.toLink(item.externalLink);
-        return
+        this.$method.toLink(item.externalLink);
+        return;
       }
       if (item.goodsType == 6) {
         // 进入直播课
@@ -1493,4 +1476,4 @@ page {
 </style>
 <style lang="scss" scoped>
 @import "./index.scss";
-</style>
+</style>

+ 2 - 19
pages/questionBank/index.vue

@@ -119,7 +119,7 @@
             <view class="study_btns" v-else>
               <view
                 class="exam_word intos"
-                @click.stop="toLink(item.externalLink)"
+                @click.stop="$method.toLink(item.externalLink)"
                 >进入学习</view
               >
             </view>
@@ -206,23 +206,6 @@ export default {
         url: "/pages/course/index",
       });
     },
-    toLink(externalLink) {
-      if (!externalLink) {
-        uni.showModal({
-          showCancel: false,
-          content: "链接不存在",
-        });
-        return;
-      }
-      // #ifdef MP-WEIXIN
-      uni.navigateTo({
-        url: `/pages/webview/sdlink?url=` + externalLink,
-      });
-      // #endif
-      // #ifdef H5
-      window.location.href = externalLink;
-      // #endif
-    },
     toDailyPractice(item, child) {
       this.$api
         .lockLockStatus({
@@ -298,4 +281,4 @@ page {
 </style>
 <style lang="scss" scoped>
 @import "./index.scss";
-</style>
+</style>

+ 7 - 12
pages2/learn/my_learn.vue

@@ -235,7 +235,6 @@ export default {
         {
           name: "学时审核",
         },
-        
       ],
       param: {
         pageNum: 1,
@@ -274,17 +273,9 @@ export default {
   },
   methods: {
     showLearn(item) {
-      console.log(item.goodsName);
-      console.log(
-        (item.interfacePushId > 0 && item.officialStatus != 1) ||
-          this.sysTime <= item.serviceStartTime ||
-          this.sysTime >= item.serviceEndTime ||
-          (item.classStartTime && this.sysTime <= item.classStartTime) ||
-          (item.classEndTime && this.sysTime >= item.classEndTime) ||
-          item.learningStatus == 2 ||
-          item.classStatus == 0 ||
-          (item.learningStatus == 3 && this.sysTime < item.learningTimeStart)
-      );
+      if (item.externalLinkStatus) {
+        return true;
+      }
       return (
         (item.interfacePushId > 0 && item.officialStatus != 1) ||
         this.sysTime <= item.serviceStartTime ||
@@ -322,6 +313,10 @@ export default {
       });
     },
     jumpPage(v, int, index, appoint) {
+      if (v.externalLinkStatus) {
+        this.$method.toLink(v.externalLink);
+        return;
+      }
       console.log("--item", v);
       // return
       this.itemIndex = index;