123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275 |
- App({
- //请注意小程序只支持https
- apiUrl: 'http://www.fa.com',
- si: 0,
- //小程序启动
- onLaunch: function () {
- var that = this;
- that.request('/addons/cms/wxapp.common/init', {}, function (data, ret) {
- that.globalData.config = data.config;
- that.globalData.indexTabList = data.indexTabList;
- that.globalData.newsTabList = data.newsTabList;
- that.globalData.productTabList = data.productTabList;
- //如果需要一进入小程序就要求授权登录,可在这里发起调用
- if (wx.getStorageSync("token")) {
- that.check(function (ret) {});
- }
- }, function (data, ret) {
- that.error(ret.msg);
- });
- },
- //投票
- vote: function (event, cb) {
- var that = this;
- var id = event.currentTarget.dataset.id;
- var type = event.currentTarget.dataset.type;
- var vote = wx.getStorageSync("vote") || [];
- if (vote.indexOf(id) > -1) {
- that.info("你已经发表过意见了,请勿重复操作");
- return;
- }
- vote.push(id);
- wx.setStorageSync("vote", vote);
- this.request('/addons/cms/wxapp.archives/vote', {
- id: id,
- type: type
- }, function (data, ret) {
- typeof cb == "function" && cb(data);
- }, function (data, ret) {
- that.error(ret.msg);
- });
- },
- //判断是否登录
- check: function (cb) {
- var that = this;
- if (this.globalData.userInfo) {
- typeof cb == "function" && cb(this.globalData.userInfo);
- }else{
- that.login({},function(){})
- }
- },
- //登录
- login: function (userInfo, cb) {
- var that = this;
- var token = wx.getStorageSync('token') || '';
- //调用登录接口
- wx.login({
- success: function (res) {
- if (res.code) {
- //发起网络请求
- wx.request({
- url: that.apiUrl + '/addons/cms/wxapp.user/login',
- data: {
- code: res.code,
- rawData: JSON.stringify(userInfo),
- token: token
- },
- method: 'post',
- header: {
- "Content-Type": "application/x-www-form-urlencoded",
- },
- success: function (lres) {
- var response = lres.data
- if (response.code == 1) {
- that.globalData.userInfo = response.data.userInfo;
- wx.setStorageSync('token', response.data.userInfo.token);
- typeof cb == "function" && cb(that.globalData.userInfo);
- } else {
- wx.setStorageSync('token', '');
- console.log("用户登录失败")
- that.showLoginModal(cb);
- }
- }
- });
- } else {
- that.showLoginModal(cb);
- }
- }
- });
- },
- //显示登录或授权提示
- showLoginModal: function (cb) {
- var that = this;
- if (!that.globalData.userInfo) {
- //获取用户信息
- wx.showModal({
- title: '温馨提示',
- content: '当前无法获取到你的个人信息,部分操作可能受到限制',
- confirmText: "重新登录",
- cancelText: "暂不登录",
- success: function (res) {
- if (res.confirm) {
- wx.getUserProfile({
- lang:'zh',
- desc:'授权用户信息',
- success:function(res){
- that.login(res.userInfo,function () { });
- },
- fail:function(e){
- that.info(JSON.stringify(e));
- }
- })
- } else {
- console.log('用户暂不登录');
- }
- }
- });
- } else {
- typeof cb == "function" && cb(that.globalData.userInfo);
- }
- },
- //发起网络请求
- request: function (url, data, success, error) {
- var that = this;
- if (typeof data == 'function') {
- success = data;
- error = success;
- data = {};
- }
- if (this.globalData.userInfo) {
- data['user_id'] = this.globalData.userInfo.id;
- data['token'] = this.globalData.userInfo.token;
- }
- //移除最前的/
- // while (url.charAt(0) === '/')
- // url = url.slice(1);
- this.loading(true);
- let cookie = wx.getStorageSync('cookieKey');
- let header = {
- "Content-Type": "application/x-www-form-urlencoded"
- };
- if (cookie) {
- header.Cookie = cookie;
- }
- if (this.globalData.__token__) {
- data.__token__ = this.globalData.__token__;
- }
- data._ajax = 1;
- wx.request({
- url: this.apiUrl + url,
- data: data,
- method: 'post',
- header: header,
- success: function (res) {
- that.loading(false);
- var code, msg, json;
- if (res && res.header) {
- if (res.header['Set-Cookie']) {
- wx.setStorageSync('cookieKey', res.header['Set-Cookie']); //保存Cookie到Storage
- }
- if (res.header['__token__']) {
- that.globalData.__token__ = res.header['__token__'];
- }
- }
- if (res.statusCode === 200) {
- json = res.data;
- if (json.code === 1) {
- typeof success === 'function' && success(json.data, json);
- } else {
- typeof error === 'function' && error(json.data, json);
- }
- } else {
- json = typeof res.data === 'object' ? res.data : {
- code: 0,
- msg: '发生一个未知错误',
- data: null
- };
- typeof error === 'function' && error(json.data, json);
- }
- },
- fail: function (res) {
- that.loading(false);
- console.log("fail:", res);
- typeof error === 'function' && error(null, {
- code: 0,
- msg: '',
- data: null
- });
- }
- });
- },
- //构造CDN地址
- cdnurl: function (url) {
- return url.toString().match(/^https?:\/\/(.*)/i) ? url : this.globalData.config.upload.cdnurl + url;
- },
- //文本提示
- info: function (msg, cb) {
- wx.showToast({
- title: msg,
- icon: 'none',
- duration: 2000,
- complete: function () {
- typeof cb == "function" && cb();
- }
- });
- },
- //成功提示
- success: function (msg, cb) {
- wx.showToast({
- title: msg,
- icon: 'success',
- image: '/assets/images/ok.png',
- duration: 2000,
- complete: function () {
- typeof cb == "function" && cb();
- }
- });
- },
- //错误提示
- error: function (msg, cb) {
- wx.showToast({
- title: msg,
- icon: 'none',
- // image: '/assets/images/error.png',
- duration: 2000,
- complete: function () {
- typeof cb == "function" && cb();
- }
- });
- },
- //警告提示
- warning: function (msg, cb) {
- wx.showToast({
- title: msg,
- image: '/assets/images/warning.png',
- duration: 2000,
- complete: function () {
- typeof cb == "function" && cb();
- }
- });
- },
- //Loading
- loading: function (msg) {
- if (typeof msg == 'boolean') {
- if (!msg) {
- if (!this.si) {
- return;
- }
- clearTimeout(this.si);
- wx.hideLoading({});
- return;
- }
- }
- msg = typeof msg == 'undefined' || typeof msg == 'boolean' ? '加载中' : msg;
- this.globalData.loading = true;
- if (this.si) {
- return;
- }
- this.si = setTimeout(function () {
- wx.showLoading({
- title: msg
- });
- }, 300);
- },
- //全局信息
- globalData: {
- userInfo: null,
- config: null,
- token: '',
- indexTabList: [],
- newsTabList: [],
- productTabList: [],
- }
- })
|