Commit 66ca8eb2 authored by 武广's avatar 武广

Merge branch 'feature-20241014-harmony' into 'master'

Feature 20241014 harmony

See merge request !119
parents 78af864f e5ca4459
...@@ -11,11 +11,13 @@ export default class ActivityController extends Controller { ...@@ -11,11 +11,13 @@ export default class ActivityController extends Controller {
} else { } else {
const redisKey = `quantum-blocks:page:${ctx.params.id}`; const redisKey = `quantum-blocks:page:${ctx.params.id}`;
body = await ctx.service.redis.get(redisKey); body = await ctx.service.redis.get(redisKey);
console.log('quantum-blocks body :>> ', body);
if (body) { if (body) {
ctx.logger.info('请求redis成功 key: %j', redisKey); ctx.logger.info('请求redis成功 key: %j', redisKey);
} }
if (!body) { if (!body) {
body = await ctx.renderToHtml('activity.js', { url: ctx.url, apollo }); body = await ctx.renderToHtml('activity.js', { url: ctx.url, apollo });
console.log('body2 :>> ', body);
await ctx.service.redis.set(redisKey, body); await ctx.service.redis.set(redisKey, body);
} }
} }
......
...@@ -7,6 +7,7 @@ const hostMap = { ...@@ -7,6 +7,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api-ds.liangkebang.net`, kdspHost: `${protocol}//kdsp-api-ds.liangkebang.net`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`, shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`,
mallHost: `${protocol}//mall-ds.liangkebang.net`, mallHost: `${protocol}//mall-ds.liangkebang.net`,
h5MallHost: `${protocol}//xincheng-ds.liangkebang.net`,
xyqbH5Host: `${protocol}//mapi-ds.liangkebang.net`, xyqbH5Host: `${protocol}//mapi-ds.liangkebang.net`,
test: true, test: true,
yxmTenantId: 560761, yxmTenantId: 560761,
......
...@@ -8,6 +8,7 @@ const hostMap = { ...@@ -8,6 +8,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api.q-gp.com`, kdspHost: `${protocol}//kdsp-api.q-gp.com`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=production`, shenceUrl: `${protocol}//bn.xyqb.com/sa?project=production`,
mallHost: `${protocol}//mall.q-gp.com`, mallHost: `${protocol}//mall.q-gp.com`,
h5MallHost: `${protocol}//saas.q-gp.com`,
xyqbH5Host: `${protocol}//h5-api.q-gp.com`, xyqbH5Host: `${protocol}//h5-api.q-gp.com`,
test: false, test: false,
yxmTenantId: 560761, yxmTenantId: 560761,
......
...@@ -7,6 +7,7 @@ const hostMap = { ...@@ -7,6 +7,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api-test1.liangkebang.net`, kdspHost: `${protocol}//kdsp-api-test1.liangkebang.net`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`, shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`,
mallHost: `${protocol}//mall-test1.liangkebang.net`, mallHost: `${protocol}//mall-test1.liangkebang.net`,
h5MallHost: `${protocol}//xincheng-test1.liangkebang.net`,
xyqbH5Host: `${protocol}//mapi-test1.liangkebang.net`, xyqbH5Host: `${protocol}//mapi-test1.liangkebang.net`,
test: true, test: true,
yxmTenantId: 560761, yxmTenantId: 560761,
......
<template> <template>
<div> <div>
<cr-back-top :show-back-top="showTop" :list="backTopList" @click="handleBackTopClick" ref="crBackTop" @touchend.native="disTouch" :distance="100" /> <cr-back-top
<cr-popover :show-back-top="showTop"
class="wxmp-tip" :list="backTopList"
:value="showMpTip" @click="handleBackTopClick"
placement="bottom-end" ref="crBackTop"
> @touchend.native="disTouch"
:distance="100"
/>
<cr-popover class="wxmp-tip" :value="showMpTip" placement="bottom-end">
<div class="wxmp-tip__content" ref="content"> <div class="wxmp-tip__content" ref="content">
点击“<cr-icon type="weapp-nav" />”分享当前页面 点击“<cr-icon type="weapp-nav" />”分享当前页面
</div> </div>
<template #reference>提示</template> <template #reference>提示</template>
</cr-popover> </cr-popover>
<div v-if="showShareOverlay" class="share-overlay" @click.self="onShareOverlayClick" /> <div
v-if="showShareOverlay"
class="share-overlay"
@click.self="onShareOverlayClick"
/>
</div> </div>
</template> </template>
<script> <script>
import Bridge from '@qg/js-bridge'; import Bridge from "@qg/js-bridge";
import { mapGetters } from 'vuex'; import { mapGetters } from "vuex";
import { isApp, isWxMp, debounce, isWechat, isH5Normal, isDef } from '@/service/utils.service'; import {
import { registeredEvents } from '@/service/sa.service'; isApp,
import api from '@/api/editor.api'; isWxMp,
import cfg from '@/config/index'; debounce,
import localStorage from '@/service/localStorage.service'; isWechat,
import DisableTouchMixin from '../../../mixins/disableTouch.mixin'; isH5Normal,
import { navToDlApp, getParameterByName } from '@qg/citrus-ui/src/helper/service/utils'; isDef,
import { EventBus } from '@qg/citrus-ui/src/helper/service/eventBus'; isHarmonyOS,
} from "@/service/utils.service";
import { registeredEvents } from "@/service/sa.service";
import api from "@/api/editor.api";
import cfg from "@/config/index";
import localStorage from "@/service/localStorage.service";
import DisableTouchMixin from "../../../mixins/disableTouch.mixin";
import {
navToDlApp,
getParameterByName,
} from "@qg/citrus-ui/src/helper/service/utils";
import { EventBus } from "@qg/citrus-ui/src/helper/service/eventBus";
const WEAPP_PATH = 'pages/webview/webview'; const WEAPP_PATH = "pages/webview/webview";
const APP_PATH = 'xyqb://openHttp'; const APP_PATH = "xyqb://openHttp";
export default { export default {
name: 'BackTop', name: "BackTop",
mixins: [DisableTouchMixin], mixins: [DisableTouchMixin],
props: { props: {
showBackTop: Boolean showBackTop: Boolean,
}, },
data() { data() {
return { return {
...@@ -45,24 +62,54 @@ export default { ...@@ -45,24 +62,54 @@ export default {
cartIndex: null, cartIndex: null,
cartCount: 0, cartCount: 0,
getCartCountDebounce: debounce(this.getCartCount, 2000), getCartCountDebounce: debounce(this.getCartCount, 2000),
mpSchema: '', mpSchema: "",
link: '', link: "",
shareInfo: {}, shareInfo: {},
showShareOverlay: ((isWechat && !isWxMp) || isH5Normal) && !(localStorage.get('vccChannel') || (localStorage.get('tenantId') && getParameterByName('fromHost', window.location.href))), showShareOverlay:
isWechat ((isWechat && !isWxMp) || isH5Normal) &&
!(
localStorage.get("vccChannel") ||
(localStorage.get("tenantId") &&
getParameterByName("fromHost", window.location.href))
),
isWechat,
isApp,
isHarmonyOS,
}; };
}, },
computed: { computed: {
...mapGetters(['pageData', 'pageInfo']), ...mapGetters(["pageData", "pageInfo"]),
wxAppId() { wxAppId() {
return cfg.appIdMap[this.pageInfo.tenantId] || ''; return cfg.appIdMap[this.pageInfo.tenantId] || "";
}, },
backTopList() { backTopList() {
const btAttachVal = this.pageData.props?.btAttachVal || []; const btAttachVal = this.pageData.props?.btAttachVal || [];
if (isDef(this.cartIndex) && this.cartIndex !== -1 && btAttachVal.length) { if (
isDef(this.cartIndex) &&
this.cartIndex !== -1 &&
btAttachVal.length
) {
btAttachVal[this.cartIndex].info = this.cartCount; btAttachVal[this.cartIndex].info = this.cartCount;
} }
return isApp ? btAttachVal : isWxMp ? btAttachVal.filter(item => item.persets !== '购物车') : []; if (isApp) {
if (isHarmonyOS) {
return btAttachVal
.map((item) => {
if (item.name === "购物车") {
const appChannel = localStorage.get("appChannel") || "";
const token = localStorage.get("vccToken") || "";
const tenantId = localStorage.get("tenantId") || "";
item.url = `${cfg.h5MallHost}/shopCart?vccToken=${token}&tenantId=${tenantId}&appChannel=${appChannel}`;
}
return item;
})
.filter((item) => item.persets !== "分享");
}
return btAttachVal;
} else if (isWxMp) {
return btAttachVal.filter((item) => item.persets !== "购物车");
}
return [];
// if (this.pageData.props && this.pageData.props.btAttachVal) { // if (this.pageData.props && this.pageData.props.btAttachVal) {
// const { btAttachVal, showShare } = this.pageData.props; // const { btAttachVal, showShare } = this.pageData.props;
// const btAttachValDeep = JSON.parse(JSON.stringify(btAttachVal)); // const btAttachValDeep = JSON.parse(JSON.stringify(btAttachVal));
...@@ -72,24 +119,30 @@ export default { ...@@ -72,24 +119,30 @@ export default {
// return []; // return [];
}, },
showTop() { showTop() {
return this.showBackTop && this.pageData.props && this.pageData.props.showBackTop; return (
this.showBackTop &&
this.pageData.props &&
this.pageData.props.showBackTop
);
}, },
appSchema() { appSchema() {
return `${APP_PATH}?jumpUrl=${this.link}`; return `${APP_PATH}?jumpUrl=${this.link}`;
}, },
shareOpenMethod() { shareOpenMethod() {
return this.pageInfo.page.props.shareOpenMethod; return this.pageInfo.page.props.shareOpenMethod;
} },
}, },
watch: { watch: {
backTopList: { backTopList: {
immediate: true, immediate: true,
handler(val) { handler(val) {
this.cartIndex = (val || []).findIndex(item => item.persets === '购物车'); this.cartIndex = (val || []).findIndex(
(item) => item.persets === "购物车"
);
this.getCartCountDebounce(); this.getCartCountDebounce();
} },
} },
}, },
created() { created() {
if (!EASY_ENV_IS_NODE) { if (!EASY_ENV_IS_NODE) {
...@@ -99,7 +152,7 @@ export default { ...@@ -99,7 +152,7 @@ export default {
} }
}, },
mounted() { mounted() {
EventBus.$on("PAGE_VISIBILITY_STATE", state => { EventBus.$on("PAGE_VISIBILITY_STATE", (state) => {
if (!state) { if (!state) {
this.getCartCountDebounce(); this.getCartCountDebounce();
} }
...@@ -111,43 +164,52 @@ export default { ...@@ -111,43 +164,52 @@ export default {
if (isH5Normal && EASY_ENV_IS_BROWSER && this.wxAppId) { if (isH5Normal && EASY_ENV_IS_BROWSER && this.wxAppId) {
try { try {
console.log(this.pageInfo.tenantId); console.log(this.pageInfo.tenantId);
const [schema] = await api.getMpSchema({ console.log("-----444444---------");
miniUrl: WEAPP_PATH, const [schema] = await api.getMpSchema(
params: `url=${encodeURIComponent(JSON.stringify(this.link))}` {
}, this.wxAppId, this.pageInfo.tenantId); miniUrl: WEAPP_PATH,
params: `url=${encodeURIComponent(JSON.stringify(this.link))}`,
},
this.wxAppId,
this.pageInfo.tenantId
);
this.mpSchema = schema; this.mpSchema = schema;
} catch (error) { } catch (error) {}
}
} }
}, },
onShareOverlayClick() { onShareOverlayClick() {
if(this.pageInfo.diversion){ if (this.pageInfo.diversion) {
window.location.href = this.pageInfo.diversion; window.location.href = this.pageInfo.diversion;
return; return;
} }
if (isH5Normal) { if (isH5Normal) {
const fromHost = getParameterByName('fromHost', window.location.href); const fromHost = getParameterByName("fromHost", window.location.href);
const loginUrl = `${fromHost}/login?redirectUrl=${window.location.href}`; const loginUrl = `${fromHost}/login?redirectUrl=${window.location.href}`;
window.location.href = fromHost ? loginUrl : this.shareOpenMethod === 1 ? this.mpSchema : this.appSchema; window.location.href = fromHost
? loginUrl
: this.shareOpenMethod === 1
? this.mpSchema
: this.appSchema;
setTimeout(() => { setTimeout(() => {
this.shareOpenMethod === 2 && navToDlApp(); this.shareOpenMethod === 2 && navToDlApp();
}, 2000); }, 2000);
} else if (isWechat && !isWxMp) { } else if (isWechat && !isWxMp) {
const { shareOpenMethod, link: url } = this; const { shareOpenMethod, link: url } = this;
const jumpUrl = shareOpenMethod === 1 ? WEAPP_PATH : APP_PATH; const jumpUrl = shareOpenMethod === 1 ? WEAPP_PATH : APP_PATH;
window.location.href = `${cfg.mallHost}/common/launch?jumpUrl=${jumpUrl}&terminal=${shareOpenMethod || 2}&extraInfo=${encodeURIComponent(JSON.stringify({ url }))}`; window.location.href = `${
cfg.mallHost
}/common/launch?jumpUrl=${jumpUrl}&terminal=${shareOpenMethod ||
2}&extraInfo=${encodeURIComponent(JSON.stringify({ url }))}`;
} }
}, },
handleBackTopClick(e = {}) { handleBackTopClick(e = {}) {
// ! 此处以1.3为准,但需要对齐分享功能 // ! 此处以1.3为准,但需要对齐分享功能
registeredEvents('PD_WUXIEC_H5ActivityPageSuspendedBtnClick', { registeredEvents("PD_WUXIEC_H5ActivityPageSuspendedBtnClick", {
activity_id: this.pageInfo.uuid, activity_id: this.pageInfo.uuid,
jump_link: e.url, jump_link: e.url,
window_name: e.name, window_name: e.name,
}); });
if (e && e.persets === '分享') { if (e && e.persets === "分享") {
if (this.tipTimer) { if (this.tipTimer) {
clearTimeout(this.tipTimer); clearTimeout(this.tipTimer);
} }
...@@ -158,33 +220,42 @@ export default { ...@@ -158,33 +220,42 @@ export default {
}, },
initShareInfo() { initShareInfo() {
if (EASY_ENV_IS_NODE) return; if (EASY_ENV_IS_NODE) return;
let shareCoverImage = ''; let shareCoverImage = "";
try { try {
shareCoverImage = this.pageInfo.page.props.shareCoverImage; shareCoverImage = this.pageInfo.page.props.shareCoverImage;
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} }
const { coverImage, pageName, pageDescribe } = this.pageInfo; const { coverImage, pageName, pageDescribe } = this.pageInfo;
let link = `${window.location.origin}${window.location.pathname}?vccToken={token}&tenantId=${localStorage.get('tenantId') || ''}&appChannel={appChannel}`; let link = `${window.location.origin}${
if (this.getUrlParamsVal('navId') !== false && this.getUrlParamsVal('index') !== false) { window.location.pathname
}?vccToken={token}&tenantId=${localStorage.get("tenantId") ||
""}&appChannel={appChannel}`;
if (
this.getUrlParamsVal("navId") !== false &&
this.getUrlParamsVal("index") !== false
) {
// 向分享URL中填充导航ID与位置索引 // 向分享URL中填充导航ID与位置索引
link += `&navId=${this.getUrlParamsVal("navId")}&index=${this.getUrlParamsVal('index')}` link += `&navId=${this.getUrlParamsVal(
"navId"
)}&index=${this.getUrlParamsVal("index")}`;
} }
this.link = link; this.link = link;
const defaultTitle = +localStorage.get('tenantId') === 560761 ? '羊小咩' : '活动页'; const defaultTitle =
+localStorage.get("tenantId") === 560761 ? "羊小咩" : "活动页";
let shareUrl = shareCoverImage || coverImage; let shareUrl = shareCoverImage || coverImage;
shareUrl += isApp ? '?imageMogr2/thumbnail/120x120' : '' shareUrl += isApp ? "?imageMogr2/thumbnail/120x120" : "";
this.shareInfo = { this.shareInfo = {
event: "showShareView", event: "showShareView",
data: { data: {
platform: ["weChat", "timeLine"], platform: ["weChat", "timeLine"],
shareDic: { shareDic: {
title: pageName || defaultTitle, title: pageName || defaultTitle,
desc: pageDescribe || '美好生活更从容', desc: pageDescribe || "美好生活更从容",
link, link,
imgUrl: shareUrl imgUrl: shareUrl,
} },
} },
}; };
if (isWxMp) { if (isWxMp) {
this.postMpShareInfo(); this.postMpShareInfo();
...@@ -203,7 +274,7 @@ export default { ...@@ -203,7 +274,7 @@ export default {
}, },
postMpShareInfo() { postMpShareInfo() {
if (EASY_ENV_IS_NODE || !this.wxAppId) return; if (EASY_ENV_IS_NODE || !this.wxAppId) return;
const wx = require('weixin-js-sdk'); const wx = require("weixin-js-sdk");
const { shareInfo } = this; const { shareInfo } = this;
wx.miniProgram.postMessage({ data: shareInfo }); wx.miniProgram.postMessage({ data: shareInfo });
}, },
...@@ -214,7 +285,7 @@ export default { ...@@ -214,7 +285,7 @@ export default {
}, 10000); }, 10000);
}, },
async getCartCount() { async getCartCount() {
if (localStorage.get('vccToken') && isDef(this.cartIndex) && isApp) { if (localStorage.get("vccToken") && isDef(this.cartIndex) && isApp) {
const [res, err] = await api.getShopCartCount(); const [res, err] = await api.getShopCartCount();
this.cartCount = err ? 0 : res.count || 0; this.cartCount = err ? 0 : res.count || 0;
this.$nextTick(() => { this.$nextTick(() => {
...@@ -224,18 +295,18 @@ export default { ...@@ -224,18 +295,18 @@ export default {
}, },
getUrlParamsVal(name) { getUrlParamsVal(name) {
let query = window.location.search.substring(1); let query = window.location.search.substring(1);
let vars = query.split('&'); let vars = query.split("&");
for (let i = 0; i < vars.length; i++) { for (let i = 0; i < vars.length; i++) {
let pair = vars[i].split("="); let pair = vars[i].split("=");
if (pair[0] == name) return pair[1]; if (pair[0] == name) return pair[1];
} }
return false; return false;
} },
}, },
} };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@deep: ~'>>>'; @deep: ~">>>";
.cr-back-top { .cr-back-top {
z-index: 103; z-index: 103;
......
<template> <template>
<div class="pageContent"> <div class="pageContent">
<div class="activity" :class="{hasBottomNav: navigatorConfig}" :style="transformStyle(pageData.commonStyle)"> <div
class="activity"
:class="{ hasBottomNav: navigatorConfig }"
:style="transformStyle(pageData.commonStyle)"
>
<template v-if="!noPageData && tenantIdCorrect"> <template v-if="!noPageData && tenantIdCorrect">
<div class="layout"> <div class="layout">
<template v-for="(item, index) in pageData.elements"> <template v-for="(item, index) in pageData.elements">
<div :style="transformStyle(item.commonStyle, item.point, item.name)" <div
:key="fixGridKey(item)" :style="transformStyle(item.commonStyle, item.point, item.name)"
:id="`item_${item.id}`" :key="fixGridKey(item)"
@click="dot(item.title)" :id="`item_${item.id}`"
@touchend="disTouch" @click="dot(item.title)"
@touchend="disTouch"
> >
<component :data-index="index" :id="item.id" :containerIndex="index" :component-data="item" :childItem="item" :is="item.name" :sa-info="getSaInfo(item)" v-bind="item.props"></component> <component
</div> :data-index="index"
:id="item.id"
:containerIndex="index"
:component-data="item"
:childItem="item"
:is="item.name"
:sa-info="getSaInfo(item)"
v-bind="item.props"
></component>
</div>
</template> </template>
<div <div
v-if="pageData.props.showPageBottomTip" v-if="pageData.props.showPageBottomTip"
:id="bottomInfo.i + pageData.elements.length" :id="bottomInfo.i + pageData.elements.length"
...@@ -22,109 +36,128 @@ ...@@ -22,109 +36,128 @@
<page-bottom-tip /> <page-bottom-tip />
</div> </div>
</div> </div>
<back-top v-if="showBackTop" :show-back-top="showBackTop" ref="backTop" /> <back-top
<invalid-notice v-model="pageInvalid" @toOtherActivity="toOtherActivity"/> v-if="showBackTop"
:show-back-top="showBackTop"
ref="backTop"
/>
<invalid-notice
v-model="pageInvalid"
@toOtherActivity="toOtherActivity"
/>
<coupon-modal :modal-data="couponModalData" v-model="showCouponModal" /> <coupon-modal :modal-data="couponModalData" v-model="showCouponModal" />
</template> </template>
<empty-state v-else /> <empty-state v-else />
</div> </div>
<!-- 底部导航 --> <!-- 底部导航 -->
<div v-if="navigatorConfig" class="bottomNav" :style="computedNavContainerStyle(navigatorConfig)"> <div
v-if="navigatorConfig"
class="bottomNav"
:style="computedNavContainerStyle(navigatorConfig)"
>
<div <div
class="navItem" class="navItem"
:class="{pic: item.type == 2, current: +navIndex === index}" :class="{ pic: item.type == 2, current: +navIndex === index }"
v-for="(item, index) in navigatorConfig.navigatorData" v-for="(item, index) in navigatorConfig.navigatorData"
:key="index" :key="index"
@click.stop="handleNavUrl(item, +navIndex === index)" @click.stop="handleNavUrl(item, +navIndex === index)"
> >
<img class="icon" :src="+navIndex === index ? item.selectIcon : item.icon" alt=""> <img
<span v-if="item.type == 1 && item.name" class="text" :style="computedNavTextStyle(item, +navIndex === index)">{{item.name}}</span> class="icon"
:src="+navIndex === index ? item.selectIcon : item.icon"
alt=""
/>
<span
v-if="item.type == 1 && item.name"
class="text"
:style="computedNavTextStyle(item, +navIndex === index)"
>{{ item.name }}</span
>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts" src="./index.ts"></script> <script lang="ts" src="./index.ts"></script>
<style lang="less" scoped> <style lang="less" scoped>
@deep: ~'>>>'; @deep: ~">>>";
.pageContent{ .pageContent {
width: 100%;
height: 100%;
position: relative;
.bottomNav {
box-sizing: content-box;
width: 100%; width: 100%;
height: 100%; position: fixed;
position: relative; bottom: 0;
.bottomNav{ left: 0;
box-sizing: content-box; z-index: 899;
width: 100%; padding-top: 0;
position: fixed; padding-left: 4px;
bottom: 0; padding-right: 4px;
left: 0; padding-bottom: constant(safe-area-inset-bottom);
z-index: 899; padding-bottom: env(safe-area-inset-bottom);
padding-top: 0; display: flex;
padding-left: 4px; justify-content: space-around;
padding-right: 4px; .navItem {
padding-bottom: constant(safe-area-inset-bottom); width: 62px;
padding-bottom: env(safe-area-inset-bottom); height: 55px;
display: flex; display: flex;
justify-content: space-around; justify-content: center;
.navItem{ flex-direction: column;
width: 62px; align-items: center;
height: 55px; &.pic {
display: flex; .icon {
justify-content: center; max-width: 40px;
flex-direction: column; max-height: 40px;
align-items: center;
&.pic{
.icon{
max-width: 40px;
max-height: 40px;
}
}
.icon{
max-width: 35px;
max-height: 35px;
}
.text{
margin-top: 3px;
text-align: center;
font-size: 10px;
} }
} }
.icon {
max-width: 35px;
max-height: 35px;
}
.text {
margin-top: 3px;
text-align: center;
font-size: 10px;
}
} }
} }
.activity { }
width: 100%; .activity {
min-height: 100%; width: 100%;
background-color: rgb(244, 244, 244); min-height: 100%;
&.hasBottomNav{ background-color: rgb(244, 244, 244);
padding-bottom: calc(constant(safe-area-inset-bottom) + 55px); &.hasBottomNav {
padding-bottom: calc(env(safe-area-inset-bottom) + 55px); padding-bottom: calc(constant(safe-area-inset-bottom) + 55px);
} padding-bottom: calc(env(safe-area-inset-bottom) + 55px);
// box-shadow: 2px 0 10px rgba(0, 0, 0, 0.2); }
// overflow-x: hidden; // box-shadow: 2px 0 10px rgba(0, 0, 0, 0.2);
// overflow-y: scroll; // overflow-x: hidden;
/deep/ .vue-grid-layout { // overflow-y: scroll;
padding-bottom: 40px; /deep/ .vue-grid-layout {
box-sizing: content-box; padding-bottom: 40px;
// transform: translateY(-10px); box-sizing: content-box;
transition-property: none; // transform: translateY(-10px);
transition-property: none;
.vue-grid-item { .vue-grid-item {
transition-property: none; transition-property: none;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
/* 不可设置溢出隐藏,tabs导航会出问题 */ /* 不可设置溢出隐藏,tabs导航会出问题 */
overflow: hidden; overflow: hidden;
& > *:first-child { & > *:first-child {
height: 100%; height: 100%;
}
} }
} }
} }
}
.del_transform { .del_transform {
overflow: visible !important; overflow: visible !important;
transform: none !important; transform: none !important;
} }
</style> </style>
...@@ -19,7 +19,7 @@ export function initSa(router) { ...@@ -19,7 +19,7 @@ export function initSa(router) {
}, },
// 判断外层是否有 App 的 SDK ,如果有的话,会往 App 的 SDK 发数据。如果没有,就正常发送数据。 // 判断外层是否有 App 的 SDK ,如果有的话,会往 App 的 SDK 发数据。如果没有,就正常发送数据。
use_app_track: true, use_app_track: true,
show_log: config.test, show_log: false,
app_js_bridge: true, app_js_bridge: true,
batch_send: true, batch_send: true,
}); });
......
...@@ -143,6 +143,9 @@ export const isWxMp = ua.match(/miniProgram/i) == 'miniprogram' || (!EASY_ENV_IS ...@@ -143,6 +143,9 @@ export const isWxMp = ua.match(/miniProgram/i) == 'miniprogram' || (!EASY_ENV_IS
// 判断羊小咩(信用钱包)环境 // 判断羊小咩(信用钱包)环境
export const isApp = ua.match(/xyqb/i) == "xyqb"; export const isApp = ua.match(/xyqb/i) == "xyqb";
// 判断羊小咩(harmony)环境
export const isHarmonyOS = /xyqbharmonyos/.test(ua);
// 判断真享生活 // 判断真享生活
export const isVcc = ua.match(/VCC/i) == "vcc"; export const isVcc = ua.match(/VCC/i) == "vcc";
......
{ {
"api": { "api": {
"apiHost": "https://quantum-blocks-yxm2.liangkebang.net", "apiHost": "https://quantum-blocks-toc2.liangkebang.net",
"h5Host": "https://quantum-h5-yxm2.liangkebang.net", "h5Host": "https://quantum-h5-toc2.liangkebang.net",
"opapiHost": "https://opapi-yxm2.liangkebang.net", "opapiHost": "https://opapi-toc2.liangkebang.net",
"passportHost": "https://passportapi-yxm2.liangkebang.net", "passportHost": "https://passportapi-toc2.liangkebang.net",
"talosHost": "https://talos-yxm2.liangkebang.net", "talosHost": "https://talos-toc2.liangkebang.net",
"kdspHost": "https://kdsp-api-yxm2.liangkebang.net", "kdspHost": "https://kdsp-api-toc2.liangkebang.net",
"loginUrl": "", "loginUrl": "",
"newApolloFlag": true, "newApolloFlag": true,
"h5ShopHost": "https://tenet-yxm2.liangkebang.net/#", "h5ShopHost": "https://tenet-toc2.liangkebang.net/#",
"mallHost": "https://mall-yxm2.liangkebang.net", "mallHost": "https://mall-toc2.liangkebang.net",
"xyqbH5Host": "https://mapi-yxm2.liangkebang.net", "h5MallHost": "https://xincheng-toc2.liangkebang.net",
"xyqbH5Host": "https://mapi-toc2.liangkebang.net",
"yxmTenantId": 560761, "yxmTenantId": 560761,
"appIdMap": { "appIdMap": {
"560761": "wxe16bf9293671506c", "560761": "wxe16bf9293671506c",
...@@ -18,14 +19,14 @@ ...@@ -18,14 +19,14 @@
} }
}, },
"redis": { "redis": {
"port": "30924", "port": "31217",
"host": "172.16.92.56", "host": "172.24.192.10",
"password": "", "password": "",
"db": 0 "db": 0
}, },
"qiniu": { "qiniu": {
"qiniuUpHost": "https://up-z0.qiniup.com", "qiniuUpHost": "https://up-z0.qiniup.com",
"qiniuHost": "https://appsync.lkbang.net" "qiniuHost": "https://appsync.91xr.cn"
}, },
"vertify": { "vertify": {
"/FZz8NUb3x0.txt": "ca1c52b4801a7741ccdbbe47797d574e", "/FZz8NUb3x0.txt": "ca1c52b4801a7741ccdbbe47797d574e",
...@@ -43,7 +44,6 @@ ...@@ -43,7 +44,6 @@
"/yB3tnMTnRc.txt": "5c9d1a08b3bda49beb0f950b1cdec27b", "/yB3tnMTnRc.txt": "5c9d1a08b3bda49beb0f950b1cdec27b",
"/gAnCcSGwFu.txt": "a8ae84f68ea72f82beff325a59fd2c58", "/gAnCcSGwFu.txt": "a8ae84f68ea72f82beff325a59fd2c58",
"/qqCExxuPJ7.txt": "a1da927722f735a09065407e32beb56a", "/qqCExxuPJ7.txt": "a1da927722f735a09065407e32beb56a",
"/9FABlQ5XMD.txt": "b1991d92def54d5bb378cc33fbdc28f3",
"/86b9af10a6b70c8be78c9095b24448ec.html": "5c9d1a08b3bda49beb0f950b1cdec27b", "/86b9af10a6b70c8be78c9095b24448ec.html": "5c9d1a08b3bda49beb0f950b1cdec27b",
"/bd_mapp_domaincer_25998612.txt": "a7ff4d126c6a7b90c73356e410a163b9", "/bd_mapp_domaincer_25998612.txt": "a7ff4d126c6a7b90c73356e410a163b9",
"/MP_verify_f4VWFoFpHgzmqFbo.txt": "f4VWFoFpHgzmqFbo", "/MP_verify_f4VWFoFpHgzmqFbo.txt": "f4VWFoFpHgzmqFbo",
......
{"apiHost":"https://quantum-blocks-yxm2.liangkebang.net","h5Host":"https://quantum-h5-yxm2.liangkebang.net","opapiHost":"https://opapi-yxm2.liangkebang.net","passportHost":"https://passportapi-yxm2.liangkebang.net","talosHost":"https://talos-yxm2.liangkebang.net","kdspHost":"https://kdsp-api-yxm2.liangkebang.net","loginUrl":"","newApolloFlag":true,"h5ShopHost":"https://tenet-yxm2.liangkebang.net/#","mallHost":"https://mall-yxm2.liangkebang.net","xyqbH5Host":"https://mapi-yxm2.liangkebang.net","yxmTenantId":560761,"appIdMap":{"560761":"wxe16bf9293671506c","560867":"wxccb8435d68e8c7d6"},"qiniuUpHost":"https://up-z0.qiniup.com","qiniuHost":"https://appsync.lkbang.net"} {"apiHost":"https://quantum-blocks-toc2.liangkebang.net","h5Host":"https://quantum-h5-toc2.liangkebang.net","opapiHost":"https://opapi-toc2.liangkebang.net","passportHost":"https://passportapi-toc2.liangkebang.net","talosHost":"https://talos-toc2.liangkebang.net","kdspHost":"https://kdsp-api-toc2.liangkebang.net","loginUrl":"","newApolloFlag":true,"h5ShopHost":"https://tenet-toc2.liangkebang.net/#","mallHost":"https://mall-toc2.liangkebang.net","h5MallHost":"https://xincheng-toc2.liangkebang.net","xyqbH5Host":"https://mapi-toc2.liangkebang.net","yxmTenantId":560761,"appIdMap":{"560761":"wxe16bf9293671506c","560867":"wxccb8435d68e8c7d6"},"qiniuUpHost":"https://up-z0.qiniup.com","qiniuHost":"https://appsync.91xr.cn"}
\ No newline at end of file \ No newline at end of file
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs");
const path = require("path");
exports.default = {
'/FZz8NUb3x0.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/FZz8NUb3x0.txt')),
'/Ra6UCOeIhV.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/Ra6UCOeIhV.txt')),
'/2OqnbvHjoq.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/2OqnbvHjoq.txt')),
'/9HFuiOJ4BG.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/9HFuiOJ4BG.txt')),
'/bAgsGUG45y.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/bAgsGUG45y.txt')),
'/c8PA5Gybed.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/c8PA5Gybed.txt')),
'/J5QboPVm8N.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/J5QboPVm8N.txt')),
'/Jb5PMgT5lb.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/Jb5PMgT5lb.txt')),
'/NqUTl0J6Ed.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/NqUTl0J6Ed.txt')),
'/qsBZfgOk4y.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/qsBZfgOk4y.txt')),
'/tPICMyeJfv.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/tPICMyeJfv.txt')),
'/UBRJar2pST.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/UBRJar2pST.txt')),
'/yB3tnMTnRc.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/yB3tnMTnRc.txt')),
'/gAnCcSGwFu.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/gAnCcSGwFu.txt')),
'/qqCExxuPJ7.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/qqCExxuPJ7.txt')),
"/9FABlQ5XMD.txt": fs.readFileSync(path.join(__dirname, '/wxVertify/9FABlQ5XMD.txt')),
'/86b9af10a6b70c8be78c9095b24448ec.html': fs.readFileSync(path.join(__dirname, '/wxVertify/86b9af10a6b70c8be78c9095b24448ec.html')),
'/bd_mapp_domaincer_25998612.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/bd_mapp_domaincer_25998612.txt')),
'/MP_verify_f4VWFoFpHgzmqFbo.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/MP_verify_f4VWFoFpHgzmqFbo.txt')),
'/MP_verify_KbcgqpEmfvW0J3Ts.txt': fs.readFileSync(path.join(__dirname, '/wxVertify/MP_verify_KbcgqpEmfvW0J3Ts.txt')),
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment