103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			103 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { ref, openBlock, createElementBlock, createElementVNode, normalizeStyle, unref } from "vue";
 | |
| function formatAppLog(type, filename, ...args) {
 | |
|   if (uni.__log__) {
 | |
|     uni.__log__(type, filename, ...args);
 | |
|   } else {
 | |
|     console[type].apply(console, [...args, filename]);
 | |
|   }
 | |
| }
 | |
| const env = "dev";
 | |
| const configs = {
 | |
|   dev: {
 | |
|     apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
 | |
|     h5Url: "http://192.168.88.37:8080/#/"
 | |
|   },
 | |
|   test: {
 | |
|     apiBaseUrl: "https://warehouse.szjixun.cn/oa_backend",
 | |
|     h5Url: "http://172.16.100.93:8041/#/"
 | |
|   },
 | |
|   prod: {
 | |
|     apiBaseUrl: "https://oa.szjixun.cn/api",
 | |
|     h5Url: "https://oa.szjixun.cn/#/"
 | |
|   }
 | |
| };
 | |
| const config = configs[env];
 | |
| const sendWebWiew = (refValue, paramValue, callName = "onReceive") => {
 | |
|   if (!refValue) {
 | |
|     formatAppLog("error", "at utils/communicate/index.js:3", "evalJs: The reference to the webview is not provided or is null.");
 | |
|     return;
 | |
|   }
 | |
|   if (typeof refValue.evalJs !== "function") {
 | |
|     formatAppLog("error", "at utils/communicate/index.js:8", "evalJs: The evalJs method is not available on the provided reference.");
 | |
|     return;
 | |
|   }
 | |
|   try {
 | |
|     const jsonString = JSON.stringify(paramValue);
 | |
|     const jsCode = `window.${callName}(${jsonString})`;
 | |
|     refValue.evalJs(jsCode);
 | |
|   } catch (error) {
 | |
|     formatAppLog("error", "at utils/communicate/index.js:18", "evalJs: An error occurred while trying to stringify the parameter value or while invoking evalJs.", error);
 | |
|   }
 | |
| };
 | |
| const receiveWebView = (e) => {
 | |
|   return e.detail.data[0];
 | |
| };
 | |
| const _style_0 = { "content": { "": { "display": "flex", "flex": 1 } } };
 | |
| const _export_sfc = (sfc, props) => {
 | |
|   const target = sfc.__vccOpts || sfc;
 | |
|   for (const [key, val] of props) {
 | |
|     target[key] = val;
 | |
|   }
 | |
|   return target;
 | |
| };
 | |
| const _sfc_main = {
 | |
|   __name: "index",
 | |
|   setup(__props) {
 | |
|     const webViewRef = ref(null);
 | |
|     const systemInfo = uni.getSystemInfoSync();
 | |
|     const webLoad = (e) => {
 | |
|       const m = receiveWebView(e);
 | |
|       switch (m.action) {
 | |
|         case "load-complete": {
 | |
|           const systemInfo2 = uni.getSystemInfoSync();
 | |
|           uni.getLocation({
 | |
|             type: "gcj02",
 | |
|             geocode: false,
 | |
|             isHighAccuracy: false,
 | |
|             success: async (res) => {
 | |
|               sendWebWiew(webViewRef.value, { ...res, systemInfo: systemInfo2 });
 | |
|             },
 | |
|             fail: (e2) => {
 | |
|               formatAppLog("log", "at pages/index/index.nvue:38", e2);
 | |
|             }
 | |
|           });
 | |
|         }
 | |
|       }
 | |
|     };
 | |
|     return (_ctx, _cache) => {
 | |
|       return openBlock(), createElementBlock("scroll-view", {
 | |
|         scrollY: true,
 | |
|         showScrollbar: true,
 | |
|         enableBackToTop: true,
 | |
|         bubble: "true",
 | |
|         style: { flexDirection: "column" }
 | |
|       }, [
 | |
|         createElementVNode("div", { class: "content" }, [
 | |
|           createElementVNode("u-web-view", {
 | |
|             class: "webview",
 | |
|             "on:onPostMessage": webLoad,
 | |
|             style: normalizeStyle({ height: `${unref(systemInfo).windowHeight}px`, width: `${unref(systemInfo).windowWidth}` }),
 | |
|             ref_key: "webViewRef",
 | |
|             ref: webViewRef,
 | |
|             src: unref(config).h5Url
 | |
|           }, null, 44, ["src"])
 | |
|         ])
 | |
|       ]);
 | |
|     };
 | |
|   }
 | |
| };
 | |
| const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["styles", [_style_0]], ["__file", "D:/WebstormProjects/oa-base/pages/index/index.nvue"]]);
 | |
| export {
 | |
|   index as default
 | |
| };
 |