index.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <!--pages/web/web.wxml-->
  3. <view>
  4. <web-view :src="webUrl" v-if="webUrl!==''"></web-view>
  5. </view>
  6. </template>
  7. <script>
  8. // pages/web/web.js
  9. const req = require("../../utils/request");
  10. const app = getApp();
  11. export default {
  12. data() {
  13. return {
  14. webUrl: '',
  15. back: false,
  16. options:{}
  17. };
  18. },
  19. components: {},
  20. props: {},
  21. onLoad:async function(options) {
  22. this.options = options
  23. if (options.appId) req.setStorage('appId', options.appId);
  24. if (options.x_code_id){
  25. options = await this.loadCodeParams(options.x_code_id)
  26. }
  27. this.webUrl = this.options.url
  28. await req.silenceLogin(this.options.userId);
  29. },
  30. onShow() {
  31. if (this.back) {
  32. uni.navigateBack();
  33. }
  34. },
  35. methods: {
  36. loadCodeParams(scene) {
  37. let _ts = this;
  38. return new Promise((resolve, reject) => {
  39. let form = {
  40. scene: scene
  41. };
  42. if (!scene) {
  43. resolve();
  44. return false;
  45. }
  46. req.getRequest('/api/code/params', form, data => {
  47. let res = JSON.parse(data.scene)
  48. for(let key in res){
  49. this.options[key] = res[key]
  50. }
  51. resolve(res);
  52. });
  53. });
  54. },
  55. }
  56. };
  57. </script>
  58. <style>
  59. @import "./index.css";
  60. </style>