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 {
} else {
const redisKey = `quantum-blocks:page:${ctx.params.id}`;
body = await ctx.service.redis.get(redisKey);
console.log('quantum-blocks body :>> ', body);
if (body) {
ctx.logger.info('请求redis成功 key: %j', redisKey);
}
if (!body) {
body = await ctx.renderToHtml('activity.js', { url: ctx.url, apollo });
console.log('body2 :>> ', body);
await ctx.service.redis.set(redisKey, body);
}
}
......
......@@ -7,6 +7,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api-ds.liangkebang.net`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`,
mallHost: `${protocol}//mall-ds.liangkebang.net`,
h5MallHost: `${protocol}//xincheng-ds.liangkebang.net`,
xyqbH5Host: `${protocol}//mapi-ds.liangkebang.net`,
test: true,
yxmTenantId: 560761,
......
......@@ -8,6 +8,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api.q-gp.com`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=production`,
mallHost: `${protocol}//mall.q-gp.com`,
h5MallHost: `${protocol}//saas.q-gp.com`,
xyqbH5Host: `${protocol}//h5-api.q-gp.com`,
test: false,
yxmTenantId: 560761,
......
......@@ -7,6 +7,7 @@ const hostMap = {
kdspHost: `${protocol}//kdsp-api-test1.liangkebang.net`,
shenceUrl: `${protocol}//bn.xyqb.com/sa?project=default`,
mallHost: `${protocol}//mall-test1.liangkebang.net`,
h5MallHost: `${protocol}//xincheng-test1.liangkebang.net`,
xyqbH5Host: `${protocol}//mapi-test1.liangkebang.net`,
test: true,
yxmTenantId: 560761,
......
<template>
<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">
<div class="layout">
<template v-for="(item, index) in pageData.elements">
<div :style="transformStyle(item.commonStyle, item.point, item.name)"
:key="fixGridKey(item)"
:id="`item_${item.id}`"
@click="dot(item.title)"
@touchend="disTouch"
<div
:style="transformStyle(item.commonStyle, item.point, item.name)"
:key="fixGridKey(item)"
:id="`item_${item.id}`"
@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>
</div>
<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>
</div>
</template>
<div
v-if="pageData.props.showPageBottomTip"
:id="bottomInfo.i + pageData.elements.length"
......@@ -22,109 +36,128 @@
<page-bottom-tip />
</div>
</div>
<back-top v-if="showBackTop" :show-back-top="showBackTop" ref="backTop" />
<invalid-notice v-model="pageInvalid" @toOtherActivity="toOtherActivity"/>
<back-top
v-if="showBackTop"
:show-back-top="showBackTop"
ref="backTop"
/>
<invalid-notice
v-model="pageInvalid"
@toOtherActivity="toOtherActivity"
/>
<coupon-modal :modal-data="couponModalData" v-model="showCouponModal" />
</template>
<empty-state v-else />
</div>
<!-- 底部导航 -->
<div v-if="navigatorConfig" class="bottomNav" :style="computedNavContainerStyle(navigatorConfig)">
<div
v-if="navigatorConfig"
class="bottomNav"
:style="computedNavContainerStyle(navigatorConfig)"
>
<div
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"
:key="index"
@click.stop="handleNavUrl(item, +navIndex === index)"
>
<img 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>
<img
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>
</template>
<script lang="ts" src="./index.ts"></script>
<style lang="less" scoped>
@deep: ~'>>>';
.pageContent{
@deep: ~">>>";
.pageContent {
width: 100%;
height: 100%;
position: relative;
.bottomNav {
box-sizing: content-box;
width: 100%;
height: 100%;
position: relative;
.bottomNav{
box-sizing: content-box;
width: 100%;
position: fixed;
bottom: 0;
left: 0;
z-index: 899;
padding-top: 0;
padding-left: 4px;
padding-right: 4px;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
position: fixed;
bottom: 0;
left: 0;
z-index: 899;
padding-top: 0;
padding-left: 4px;
padding-right: 4px;
padding-bottom: constant(safe-area-inset-bottom);
padding-bottom: env(safe-area-inset-bottom);
display: flex;
justify-content: space-around;
.navItem {
width: 62px;
height: 55px;
display: flex;
justify-content: space-around;
.navItem{
width: 62px;
height: 55px;
display: flex;
justify-content: center;
flex-direction: column;
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;
justify-content: center;
flex-direction: column;
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;
}
}
}
.activity {
width: 100%;
min-height: 100%;
background-color: rgb(244, 244, 244);
&.hasBottomNav{
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;
// overflow-y: scroll;
/deep/ .vue-grid-layout {
padding-bottom: 40px;
box-sizing: content-box;
// transform: translateY(-10px);
transition-property: none;
}
.activity {
width: 100%;
min-height: 100%;
background-color: rgb(244, 244, 244);
&.hasBottomNav {
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;
// overflow-y: scroll;
/deep/ .vue-grid-layout {
padding-bottom: 40px;
box-sizing: content-box;
// transform: translateY(-10px);
transition-property: none;
.vue-grid-item {
transition-property: none;
display: flex;
justify-content: center;
align-items: center;
.vue-grid-item {
transition-property: none;
display: flex;
justify-content: center;
align-items: center;
/* 不可设置溢出隐藏,tabs导航会出问题 */
overflow: hidden;
/* 不可设置溢出隐藏,tabs导航会出问题 */
overflow: hidden;
& > *:first-child {
height: 100%;
}
& > *:first-child {
height: 100%;
}
}
}
}
.del_transform {
overflow: visible !important;
transform: none !important;
}
.del_transform {
overflow: visible !important;
transform: none !important;
}
</style>
......@@ -19,7 +19,7 @@ export function initSa(router) {
},
// 判断外层是否有 App 的 SDK ,如果有的话,会往 App 的 SDK 发数据。如果没有,就正常发送数据。
use_app_track: true,
show_log: config.test,
show_log: false,
app_js_bridge: true,
batch_send: true,
});
......
......@@ -143,6 +143,9 @@ export const isWxMp = ua.match(/miniProgram/i) == 'miniprogram' || (!EASY_ENV_IS
// 判断羊小咩(信用钱包)环境
export const isApp = ua.match(/xyqb/i) == "xyqb";
// 判断羊小咩(harmony)环境
export const isHarmonyOS = /xyqbharmonyos/.test(ua);
// 判断真享生活
export const isVcc = ua.match(/VCC/i) == "vcc";
......
{
"api": {
"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",
"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-yxm2.liangkebang.net/#",
"mallHost": "https://mall-yxm2.liangkebang.net",
"xyqbH5Host": "https://mapi-yxm2.liangkebang.net",
"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",
......@@ -18,14 +19,14 @@
}
},
"redis": {
"port": "30924",
"host": "172.16.92.56",
"port": "31217",
"host": "172.24.192.10",
"password": "",
"db": 0
},
"qiniu": {
"qiniuUpHost": "https://up-z0.qiniup.com",
"qiniuHost": "https://appsync.lkbang.net"
"qiniuHost": "https://appsync.91xr.cn"
},
"vertify": {
"/FZz8NUb3x0.txt": "ca1c52b4801a7741ccdbbe47797d574e",
......@@ -43,7 +44,6 @@
"/yB3tnMTnRc.txt": "5c9d1a08b3bda49beb0f950b1cdec27b",
"/gAnCcSGwFu.txt": "a8ae84f68ea72f82beff325a59fd2c58",
"/qqCExxuPJ7.txt": "a1da927722f735a09065407e32beb56a",
"/9FABlQ5XMD.txt": "b1991d92def54d5bb378cc33fbdc28f3",
"/86b9af10a6b70c8be78c9095b24448ec.html": "5c9d1a08b3bda49beb0f950b1cdec27b",
"/bd_mapp_domaincer_25998612.txt": "a7ff4d126c6a7b90c73356e410a163b9",
"/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"}
\ No newline at end of file
{"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
"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