// index.js // 获取应用实例 const app = getApp() import { debug, info, error } from '../../log.js' import { get_camera_rule, goto_camera, get_phone_model, } from '../../utils.js' Page({ data: { loading_data: true, userInfo: {}, content: {}, background_style: '', }, goto_link(e) { var link = e.currentTarget.dataset.link; if (link) { wx.navigateTo({ url: '/pages/article/article?article_id=' + link, }); } }, patch_url(items) { var server_url = app.globalData.server_url; for (var x of items) { if (x.url && x.url.startsWith('/')) { x.url = server_url + x.url; } if (x.img && x.img.startsWith('/')) { x.img = server_url + x.img; } } }, process_content(c) { this.patch_url(c.carousel); this.patch_url([c.video]); this.patch_url(c.icons); this.patch_url(c.static); return c; }, load_content(tenant_id) { var url = app.globalData.server_url + '/api/v1/mini-program-content/'; if (tenant_id) { url += "?tenant=" + tenant_id; } console.log(url); var r = wx.request({ url, complete: (res) => { console.log(res); if (res.statusCode == 200) { var content = this.process_content(res.data.content); console.log(content); this.setData({ content: content, background_style: this.gen_background_style(content), }); } this.setData({ loading_data: false, }); } }) }, onLoad(options) { var gd = app.globalData; // preload camera rules from server get_camera_rule(null, () => {}); let phone_model = get_phone_model(); info("phone model", phone_model); console.log(options); if (options.env == 'dev') { console.log("Using dev env settings."); gd.server_url = 'https://dev.themblem.com'; } if (options.debug || options.scene == 'debug') { gd.debug = true; } gd.tenant = options.tenant; if (options.redirect && options.redirect.length > 0) { console.log("Redirecting to", options.redirect); wx.redirectTo({ url: options.redirect, }); return; } this.load_content(options.tenant); }, doGetUserProfile() { return wx.getUserProfile({ desc: '展示用户信息', }) }, async getUserProfile(done_cb) { var ui = wx.getStorageSync('userinfo'); if (!ui || !ui.emblem_id) { var res = await this.doGetUserProfile(); ui = res.userInfo; ui.emblem_id = Math.random().toString().substr(2); wx.setStorageSync('userinfo', ui); } this.setData({ userInfo: ui, }); done_cb(ui); }, goto_camera: function () { this.getUserProfile(() => { goto_camera(false); }); }, gen_background_style: function(content) { var bg = content.background; var ret = ''; if (!bg) return ret; if (bg.type == 'color') { ret = 'background-image: none; background-color: ' + bg.color; } if (bg.type == 'gradient') { ret = 'background-image: linear-gradient(' + bg.gradiant_begin + ',' + bg.gradiant_end + ');'; } if (bg.type == 'image') { var base_url = getApp().globalData.server_url; ret = 'background-image: url("' + base_url + bg.image + '");'; } console.log(ret); return ret; } })