|
|
@@ -0,0 +1,683 @@
|
|
|
+//app.js
|
|
|
+import { systemInfo, routers, isFn, formatUrl, getGlobalVal, getWxUserInfoSetting, getUpdateManager } from './utils/util.js'
|
|
|
+import { WxLogin, FirstWxLogin, CheckStatus } from './utils/api.js'
|
|
|
+const { reLaunch, redirectTo } = routers()
|
|
|
+const sys = wx.getSystemInfoSync()
|
|
|
+App({
|
|
|
+ onLaunch: function (options) {
|
|
|
+ this.globalData.options = options
|
|
|
+ getUpdateManager()
|
|
|
+ wx.getSystemInfo({
|
|
|
+ success: e => {
|
|
|
+ this.globalData.statusBar = e.statusBarHeight; //状态栏高度
|
|
|
+ let custom = wx.getMenuButtonBoundingClientRect();//菜单按钮
|
|
|
+ this.globalData.custom = custom;
|
|
|
+ this.globalData.customBar = custom.bottom + custom.top - e.statusBarHeight;
|
|
|
+ //计算得到定义的状态栏高度
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ onShow: function (options) {
|
|
|
+ this.globalData.options = options
|
|
|
+ },
|
|
|
+
|
|
|
+ onHide: function (e) {
|
|
|
+
|
|
|
+ },
|
|
|
+
|
|
|
+ onError: function (e) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '程序执行失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ onPageNotFound: function (e) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '没有找到页面',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ redirectTo({ url: 'pages/index/index' })
|
|
|
+ }, 2000)
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 初始化
|
|
|
+ */
|
|
|
+ init: function () {
|
|
|
+ // this.reLaunchCtl({ url: 'onetoone_feedback' }, true)
|
|
|
+ // return
|
|
|
+ // this.login()
|
|
|
+ const userInfo = getGlobalVal('userInfo')
|
|
|
+ getWxUserInfoSetting((type, res) => {
|
|
|
+ if (type != 1 || !userInfo) {
|
|
|
+ redirectTo({ url: 'pages/main/main' })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.globalData.userInfo = userInfo
|
|
|
+ wx.checkSession({
|
|
|
+ success: res => {
|
|
|
+ this.globalData.accessToken = getGlobalVal('accessToken')
|
|
|
+ this.globalData.identityList = getGlobalVal('identityList')
|
|
|
+ this.permissionsJumpFn()
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ this.login()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取微信code
|
|
|
+ */
|
|
|
+ getWxloginCode: function (cb) {
|
|
|
+ wx.login({
|
|
|
+ success: res => {
|
|
|
+ if (isFn(cb)) cb(res.code)
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ wx.showToast({
|
|
|
+ title: '获取微信code失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 普通登录
|
|
|
+ */
|
|
|
+ login: function () {
|
|
|
+ const { appType } = this.globalData
|
|
|
+ this.getWxloginCode(code => {
|
|
|
+ WxLogin({ data: { code, appType } }).then(this.handleLogin).catch(e => {
|
|
|
+ if (e.data.code == '888') {
|
|
|
+ redirectTo({ url: 'pages/wx_authority/wx_authority' })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 接收登录返回信息
|
|
|
+ */
|
|
|
+ handleLogin: function (res) {
|
|
|
+ const { postData, continuousFn } = this.globalData
|
|
|
+
|
|
|
+ const { accessToken, list = [] } = res.data
|
|
|
+
|
|
|
+ // 判断并缓存token
|
|
|
+ if (accessToken) {
|
|
|
+ this.globalData.accessToken = accessToken
|
|
|
+ wx.setStorageSync('accessToken', accessToken)
|
|
|
+ }
|
|
|
+ this.permissionsJumpFn()
|
|
|
+ // 判断并缓存userId
|
|
|
+ // if (userId) {
|
|
|
+ // this.globalData.userId = userId
|
|
|
+ // wx.setStorageSync('userId', userId)
|
|
|
+ // }
|
|
|
+
|
|
|
+ // 判断该用户下用户身份和对应身份下的权限列表
|
|
|
+ // if (list.length > 0) {
|
|
|
+ // const identityList = wx.getStorageSync('identityList')
|
|
|
+ // if (identityList.length != list.length || JSON.stringify(identityList) !== JSON.stringify(list)) {
|
|
|
+ // wx.setStorageSync('currentIdentity', 0)
|
|
|
+ // // wx.setStorageSync('hasBubbleCache', 0)
|
|
|
+ // wx.setStorageSync('hasLectureNotesCache', 0)
|
|
|
+ // }
|
|
|
+ // this.globalData.identityList = list
|
|
|
+ // wx.setStorageSync('identityList', list)
|
|
|
+
|
|
|
+ // // 判断是否报登录失效后,接着记录事件继续做用户交互
|
|
|
+ // if (continuousFn) {
|
|
|
+ // const { fn, param } = continuousFn
|
|
|
+ // fn(...param)
|
|
|
+ // this.globalData.continuousFn = null
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // if (postData) {
|
|
|
+ // const { fn, param } = postData
|
|
|
+ // fn(...param)
|
|
|
+ // this.globalData.postData = null
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+
|
|
|
+ // } else {
|
|
|
+ // wx.showToast({
|
|
|
+ // title: '无任何身份',
|
|
|
+ // icon: 'none'
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 跳转判断权限控制层
|
|
|
+ */
|
|
|
+ permissionsJumpFn: function () {
|
|
|
+ const res = this.getGlobalAttributeValue('identityList');
|
|
|
+ console.log(res)
|
|
|
+ const currentIdentity = this.getGlobalAttributeValue('currentIdentity') || -1
|
|
|
+ console.log(currentIdentity);
|
|
|
+ // if (res.length > 1) {
|
|
|
+ // if (currentIdentity < 0) {
|
|
|
+ // this.redirectCtl && this.redirectCtl({ url: 'selectpermissions', method: { identityList: JSON.stringify(res) } }, true)
|
|
|
+ // } else {
|
|
|
+ // this.selectPermissions(res[currentIdentity - 1])
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ this.selectPermissions(res[0])
|
|
|
+ // }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 选择权限
|
|
|
+ */
|
|
|
+ selectPermissions: function (obj) {
|
|
|
+ const { tempOptions, options } = this.globalData
|
|
|
+ const { query = {}, scene, path } = options || tempOptions
|
|
|
+ let url = ''
|
|
|
+ this.checkStatus()
|
|
|
+ // if (query && query.type > 1) {
|
|
|
+ // url = path ? path.split('/')[1] : 'pages/task/task'
|
|
|
+ // } else {
|
|
|
+ // // if (permissions['isMaster']) {
|
|
|
+ // // url = 'pages/course/course'
|
|
|
+ // // } else {
|
|
|
+ // url = 'pages/task/task'
|
|
|
+ // // }
|
|
|
+ // }
|
|
|
+ // const paras = { ...query,url, scene }
|
|
|
+ // console.log(this.globalData)
|
|
|
+ // console.log(paras)
|
|
|
+ // if (isFn(reLaunch)) reLaunch({ url, paras})
|
|
|
+ this.globalData.options = tempOptions
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存微信用户数据
|
|
|
+ * */
|
|
|
+ saveUserInfo: function (res, code) {
|
|
|
+ const { appType } = this.globalData
|
|
|
+ const { encryptedData, iv, signature, userInfo } = res
|
|
|
+ const user = Object.assign(userInfo, { encryptedData, iv, signature })
|
|
|
+ FirstWxLogin({ data: { code, appType, ...user } }).then(res => {
|
|
|
+ this.globalData.userInfo = user
|
|
|
+ wx.setStorageSync('userInfo', user)
|
|
|
+ this.handleLogin(res)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 审核结果
|
|
|
+ * */
|
|
|
+ checkStatus:function(){
|
|
|
+ CheckStatus({ data: {} }).then(res => {
|
|
|
+ const { curatorName, status, auditFailureReason,phone} = res.data
|
|
|
+ if (status == 1) {
|
|
|
+ this.redirectCtl({ url: 'register', method: { curatorName,phone} }, true)
|
|
|
+ } else if (status == 2) {
|
|
|
+ this.redirectCtl({ url: 'check_status', method: { isCheck: 1, curatorName,phone} }, true)
|
|
|
+ } else if (status == 3) {
|
|
|
+ this.redirectCtl({ url: 'check_status', method: { isCheck: 2, auditFailureReason: JSON.stringify(auditFailureReason), curatorName,phone} }, true)
|
|
|
+ } else if (status == 4) {
|
|
|
+ // this.redirectCtl({ url: 'register', method: { curatorName } }, true)
|
|
|
+ if (!phone) {
|
|
|
+ this.redirectCtl({ url: 'register', method: { isPhone:1,phone} }, true)
|
|
|
+ } else{
|
|
|
+ this.redirectCtl({ url: 'main', method: {} }, true)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 获取微信定位授权
|
|
|
+ */
|
|
|
+ getWxLocationSetting: function (cb) {
|
|
|
+ this.wxSetting({ scope: 'scope.userLocation', text: '微信定位授权' }).then((res) => {
|
|
|
+ wx.setStorageSync('hasPosition', 1)
|
|
|
+ if (typeof cb === 'function') {
|
|
|
+ cb(res)
|
|
|
+ }
|
|
|
+ }).catch((res) => {
|
|
|
+ wx.setStorageSync('hasPosition', 0)
|
|
|
+ wx.showToast({
|
|
|
+ title: res.text,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ wx.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ })
|
|
|
+ }, 1200)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取微信相机授权
|
|
|
+ */
|
|
|
+ getWxCameraSetting: function (cb) {
|
|
|
+ this.wxSetting({ scope: 'scope.camera', text: '微信相机授权' }).then((res) => {
|
|
|
+ wx.setStorageSync('hasCamera', 1)
|
|
|
+ if (typeof cb === 'function') {
|
|
|
+ cb(res)
|
|
|
+ }
|
|
|
+ }).catch((res) => {
|
|
|
+ wx.setStorageSync('hasCamera', 0)
|
|
|
+ wx.showToast({
|
|
|
+ title: res.text,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ setTimeout(() => {
|
|
|
+ wx.navigateBack({
|
|
|
+ delta: 1
|
|
|
+ })
|
|
|
+ }, 1200)
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 微信授权接口封装
|
|
|
+ */
|
|
|
+ wxSetting: function ({ scope, text }) {
|
|
|
+ const isEmptyObject = function (e) {
|
|
|
+ var temp;
|
|
|
+ for (temp in e)
|
|
|
+ return !1;
|
|
|
+ return !0
|
|
|
+ }
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ wx.getSetting({
|
|
|
+ success: res => {
|
|
|
+ if (isEmptyObject(res.authSetting)) {
|
|
|
+ resolve(Object.assign(res, { type: 1, text: `请手动点击${text}` }))
|
|
|
+ } else if (res.authSetting[scope] === true) {
|
|
|
+ resolve(Object.assign(res, { type: 2, text: `默认${text}成功` }))
|
|
|
+ } else if (res.authSetting[scope] === false) {
|
|
|
+ wx.showModal({
|
|
|
+ content: `检测到您没打开${text},是否去设置打开?`,
|
|
|
+ confirmText: "确认",
|
|
|
+ cancelText: "取消",
|
|
|
+ success: res => {
|
|
|
+ if (res.confirm) {
|
|
|
+ wx.openSetting({
|
|
|
+ success: res => {
|
|
|
+ if (res.authSetting[scope]) {
|
|
|
+ resolve(Object.assign(res, { type: 3, text: `手动设置${text}成功` }))
|
|
|
+ } else {
|
|
|
+ reject(Object.assign(res, { type: 5, text: `没有手动设置${text}` }))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ reject(Object.assign(res, { type: 4, text: `打开手动设置${text}失败` }))
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ reject(Object.assign(res, { type: 3, text: `拒绝打开手动设置${text}` }))
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ reject(Object.assign(res, { type: 2, text: `弹出${text}提示框失败` }))
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ wx.authorize({
|
|
|
+ scope,
|
|
|
+ success: res => {
|
|
|
+ resolve(Object.assign(res, { type: 4, text: `自动获取${text}成功` }))
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ // console.log(res)
|
|
|
+ reject(Object.assign(res, { type: 6, text: `自动获取${text}失败` }))
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ fail: res => {
|
|
|
+ reject(res, { type: 1, text: `获取${text}失败` })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取全局属性值
|
|
|
+ */
|
|
|
+ getGlobalAttributeValue: function (e1, e2 = e1) {
|
|
|
+ return typeof this.globalData[e1] !== 'undefined' && this.globalData[e1] !== null ? this.globalData[e1] : typeof wx.getStorageSync(e2) !== 'undefined' && wx.getStorageSync(e2) !== null ? wx.getStorageSync(e2) : null
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * POST 封装
|
|
|
+ * @param obj{Object} {src【请求后台路径】, method【拼接在路径的参数对象】, type【判断是否需要把默认token和参数一起拼接在路径后面】} = obj
|
|
|
+ * @param data{Object} data【自定义传的参数数据】
|
|
|
+ * @param head{Boolean} head[true【data参数类型为json对象】,false【data参数类型为json字符串】]
|
|
|
+ * @param postData{Object} postData: { fn: Function, param: Object } 当接口报登录失效401的时候 记录失效的当前状态,等待自动登录成功后接着运行
|
|
|
+ */
|
|
|
+ post: function (obj, data = {}, head, postData) {
|
|
|
+ const { globalData } = this
|
|
|
+ const { host, loginTime, wechatsys, phoneimei, phonesys, phonetype, version, platform, build } = globalData
|
|
|
+ const accessToken = this.globalData.accessToken || wx.getStorageSync('accessToken')
|
|
|
+ const header = { wechatsys, phoneimei, phonesys, phonetype, version, platform, build, "Content-Type": head ? "application/x-www-form-urlencoded" : "application/json"}
|
|
|
+ let url
|
|
|
+ if (typeof obj === 'object') {
|
|
|
+ const { src, method, type } = obj
|
|
|
+ url = formatUrl(host + src, type ? method : Object.assign(method || {}, { accessToken }))
|
|
|
+ } else if (typeof obj === 'string') {
|
|
|
+ url = formatUrl(host + obj, { accessToken })
|
|
|
+ } else {
|
|
|
+ throw new Error('请正确填写访问后台接口路径')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ wx.request({
|
|
|
+ url,
|
|
|
+ data,
|
|
|
+ method: 'POST',
|
|
|
+ header,
|
|
|
+ success: e => {
|
|
|
+ if (e.statusCode == 200) {
|
|
|
+ if (e.data.code == '999') {
|
|
|
+ resolve(e.data)
|
|
|
+ } else {
|
|
|
+ if (url.indexOf('/user/checkToken') < 0) {
|
|
|
+ wx.showToast({
|
|
|
+ title: e.data.msg,
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ reject(e.data)
|
|
|
+ }
|
|
|
+ if (loginTime > 0) {
|
|
|
+ this.globalData.loginTime = 0
|
|
|
+ }
|
|
|
+ } else if (e.statusCode == 401) {
|
|
|
+ this.globalData.loginTime = loginTime + 1
|
|
|
+ if (loginTime < 2) {
|
|
|
+ this.globalData.postData = postData || null
|
|
|
+ this.login()
|
|
|
+ } else {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '登录失效,稍后再试',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '加载失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ console.log({ url, request: data, response: e.data, globalData })
|
|
|
+ },
|
|
|
+ fail: e => {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '加载失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ console.log({ url, request: data, response: e })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * uploadFile 封装
|
|
|
+ * @param obj{Object} {src【请求后台路径】, method【拼接在路径的参数对象】, type【判断是否需要把token和参数一起拼接在路径后面】} = obj
|
|
|
+ * @param file{String} file【微信小程序生成的临时文件资源路径】
|
|
|
+ * @param data{Object} data【自定义传的参数数据】
|
|
|
+ * @param head{Boolean} head[true【data参数类型为json对象】,false【data参数类型为json字符串】]
|
|
|
+ * @param progress{Function} progress【上传文件进度条回调函数方法】
|
|
|
+ * @param postData{Object} postData: { fn: Function, param: Object } 当接口报登录失效401的时候 记录失效的当前状态,等待自动登录成功后接着运行
|
|
|
+ */
|
|
|
+ uploadFile: function (obj, file, data = {}, head, progress, postData) {
|
|
|
+ const { globalData } = this
|
|
|
+ const { host, loginTime, wechatsys, phoneimei, phonesys, phonetype, version, platform, build } = globalData
|
|
|
+ const accessToken = this.globalData.accessToken || wx.getStorageSync('accessToken')
|
|
|
+ const header = { wechatsys, phoneimei, phonesys, phonetype, version, platform, build, "Content-Type": head ? "application/x-www-form-urlencoded" : "application/json" }
|
|
|
+ let url
|
|
|
+ if (typeof obj === 'object') {
|
|
|
+ const { src, method, type } = obj
|
|
|
+ url = formatUrl(host + src, type ? method : Object.assign(method || {}, { accessToken }))
|
|
|
+ } else if (typeof obj === 'string') {
|
|
|
+ url = formatUrl(host + obj, { accessToken })
|
|
|
+ } else {
|
|
|
+ throw new Error('请正确填写访问后台接口路径')
|
|
|
+ return
|
|
|
+ }
|
|
|
+ wx.showLoading({
|
|
|
+ title: '上传中...',
|
|
|
+ })
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ const uploadTask = wx.uploadFile({
|
|
|
+ url,
|
|
|
+ filePath: file,
|
|
|
+ name: 'files',
|
|
|
+ formData: data,
|
|
|
+ header,
|
|
|
+ success: e => {
|
|
|
+ if (e.statusCode == 200) {
|
|
|
+ resolve(e.data)
|
|
|
+ if (loginTime > 0) {
|
|
|
+ this.globalData.loginTime = 0
|
|
|
+ }
|
|
|
+ } else if (e.statusCode == 401) {
|
|
|
+ this.globalData.loginTime = loginTime + 1
|
|
|
+ if (loginTime < 2) {
|
|
|
+ this.globalData.postData = postData || null
|
|
|
+ this.login()
|
|
|
+ } else {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '登录失效,稍后再试',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '加载失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ console.log({ url, request: data, response: e.data, globalData })
|
|
|
+ },
|
|
|
+ fail (e) {
|
|
|
+ reject(e)
|
|
|
+ wx.showToast({
|
|
|
+ title: '加载失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ console.log({ url, request: data, response: e })
|
|
|
+ },
|
|
|
+ complete (e) {
|
|
|
+ wx.hideLoading()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ uploadTask.onProgressUpdate((res) => {
|
|
|
+ progress && progress(res)
|
|
|
+ wx.showLoading({
|
|
|
+ title: ` 已上传(${res.progress}%)`
|
|
|
+ })
|
|
|
+ if (res.progress == 100) {
|
|
|
+ wx.hideLoading()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * reLaunch路由跳转
|
|
|
+ */
|
|
|
+ reLaunchCtl: function (e, type) {
|
|
|
+ const { method, url, msg } = type ? e : e.currentTarget.dataset
|
|
|
+ if (!url) {
|
|
|
+ wx.showToast({
|
|
|
+ title: msg || '暂未开放',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let array = []
|
|
|
+ if (method) {
|
|
|
+ for (let i in method) {
|
|
|
+ if (typeof data === 'object') {
|
|
|
+ array.push(`${i}=${JSON.stringify(method[i])}`)
|
|
|
+ } else {
|
|
|
+ array.push(`${i}=${method[i]}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wx.reLaunch({
|
|
|
+ url: `${getCurrentPages().length == 0 ? 'pages' : '..'}/${url}/${url}${array.length > 0 ? '?' + array.join('&') : ''}`,
|
|
|
+ success: res => { },
|
|
|
+ fail: res => {
|
|
|
+ wx.showToast({
|
|
|
+ title: '跳转失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * navigate路由跳转
|
|
|
+ */
|
|
|
+ navigateCtl: function (e, type) {
|
|
|
+ const { method, url, msg } = type ? e : e.currentTarget.dataset
|
|
|
+ if (!url) {
|
|
|
+ wx.showToast({
|
|
|
+ title: msg || '暂未开放',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let array = []
|
|
|
+ if (method) {
|
|
|
+ for (let i in method) {
|
|
|
+ if (typeof data === 'object') {
|
|
|
+ array.push(`${i}=${JSON.stringify(method[i])}`)
|
|
|
+ } else {
|
|
|
+ array.push(`${i}=${JSON.stringify(method[i])}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wx.navigateTo({
|
|
|
+ url: `${getCurrentPages().length == 0 ? 'pages' : '..'}/${url}/${url}${array.length > 0 ? '?' + array.join('&') : ''}`,
|
|
|
+ success: res => { },
|
|
|
+ fail: res => {
|
|
|
+ wx.showToast({
|
|
|
+ title: '跳转失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * redirect路由跳转
|
|
|
+ */
|
|
|
+ redirectCtl: function (e, type) {
|
|
|
+ const { method, url, msg } = type ? e : e.currentTarget.dataset
|
|
|
+ if (!url) {
|
|
|
+ wx.showToast({
|
|
|
+ title: msg || '暂未开放',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let array = []
|
|
|
+ if (method) {
|
|
|
+ for (let i in method) {
|
|
|
+ if (typeof data === 'object') {
|
|
|
+ array.push(`${i}=${JSON.stringify(method[i])}`)
|
|
|
+ } else {
|
|
|
+ array.push(`${i}=${method[i]}`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wx.redirectTo({
|
|
|
+ url: `${getCurrentPages().length == 0 ? 'pages' : '..'}/${url}/${url}${array.length > 0 ? '?' + array.join('&') : ''}`,
|
|
|
+ success: res => { },
|
|
|
+ fail: res => {
|
|
|
+ wx.showToast({
|
|
|
+ title: '跳转失败',
|
|
|
+ icon: 'none'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 查看图片
|
|
|
+ */
|
|
|
+ viewImageCtl: function (e, type) {
|
|
|
+ const { images, index, baseurl, url = 'img' } = type ? e : e.currentTarget.dataset
|
|
|
+ const arr = []
|
|
|
+ if (images !== null && typeof images === 'object') {
|
|
|
+ for (const v of images) {
|
|
|
+ arr.push(`${baseurl}${v[url] ? v[url] : v }`)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ wx.previewImage({
|
|
|
+ current: arr[index],
|
|
|
+ urls: arr
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分享控制层
|
|
|
+ */
|
|
|
+ sharePageDefaultCtl: function () {
|
|
|
+ return {
|
|
|
+ title: '私塾家校长版',
|
|
|
+ path: 'pages/index/index',
|
|
|
+ success: res => {
|
|
|
+ wx.showToast({
|
|
|
+ title: '转发成功',
|
|
|
+ icon: 'success'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 全局变量
|
|
|
+ */
|
|
|
+ globalData: {
|
|
|
+ sys,
|
|
|
+ wechatsys: sys.version + ' ' + sys.SDKVersion,
|
|
|
+ phoneimei: '',
|
|
|
+ phonesys: sys.system,
|
|
|
+ phonetype: sys.brand + ' ' + sys.model,
|
|
|
+ version: '1.2.4',
|
|
|
+ platform: '3',
|
|
|
+ build: '1.2.4',
|
|
|
+ updateInfo: '私塾家校长版',
|
|
|
+ appid: 'wx5a97ed416d40ac39',
|
|
|
+ userInfo: null,
|
|
|
+ appType: 14,
|
|
|
+ loginTime: 0,
|
|
|
+ // host: 'https://sx.sharingschool.com/sz',
|
|
|
+ // host: 'https://api.sharingschool.com/sz',
|
|
|
+ // baseImgUrl: 'https://img.sharingschool.com',
|
|
|
+ thumbnail: '?x-oss-process=image/resize,m_fill,h_300,w_200',
|
|
|
+ host: 'https://xt.sharingschool.com/sz',
|
|
|
+ baseImgUrl: 'https://xtimg.sharingschool.com',
|
|
|
+ accessToken: null,
|
|
|
+ identityList: null,
|
|
|
+ permissions: null,
|
|
|
+ libId: null,
|
|
|
+ tempOptions: { query: {}, path: 'pages/index/index', scene: 1001 },
|
|
|
+ options: null,
|
|
|
+ postData: null,
|
|
|
+ continuousFn: null,
|
|
|
+ errorText: '出了点小问题',
|
|
|
+ toastText: '您点太快了',
|
|
|
+ }
|
|
|
+})
|