Эх сурвалжийг харах

营销:装修页面适配

owen 1 жил өмнө
parent
commit
614f8bb9fd

+ 4 - 19
pages/index/index.vue

@@ -1,9 +1,9 @@
 <template>
 <template>
 	<view v-if="template">
 	<view v-if="template">
-		<s-layout title="首页" navbar="custom" tabbar="/pages/index/index" :bgStyle="template.style?.background"
+		<s-layout title="首页" navbar="custom" tabbar="/pages/index/index" :bgStyle="template.page"
 			:navbarStyle="template.style?.navbar" onShareAppMessage>
 			:navbarStyle="template.style?.navbar" onShareAppMessage>
-			<s-block v-for="(item, index) in template.data" :key="index" :styles="item.style">
-				<s-block-item :type="item.type" :data="item.data" :styles="item.style" />
+			<s-block v-for="(item, index) in template.components" :key="index" :styles="item.style">
+				<s-block-item :type="item.id" :data="item.property" :styles="item.property.style" />
 			</s-block>
 			</s-block>
 			<!-- 广告模块 -->
 			<!-- 广告模块 -->
 			<s-popup-image />
 			<s-popup-image />
@@ -22,25 +22,10 @@
 	} from '@dcloudio/uni-app';
 	} from '@dcloudio/uni-app';
 	import sheep from '@/sheep';
 	import sheep from '@/sheep';
 	import $share from '@/sheep/platform/share';
 	import $share from '@/sheep/platform/share';
-	import index2Api from '@/sheep/api/index2';
 	// 隐藏原生tabBar
 	// 隐藏原生tabBar
 	uni.hideTabBar();
 	uni.hideTabBar();
 
 
 	const template = computed(() => sheep.$store('app').template?.home);
 	const template = computed(() => sheep.$store('app').template?.home);
-	// 在此处拦截改变一下首页轮播图 此处先写死后期复活
-	(async function() {
-		let {
-			data
-		} = await index2Api.decorate();
-		template.value.data[0].data.list = JSON.parse(data[0].value).map(item => {
-			return {
-				src: item.picUrl,
-				url: item.url,
-				title: item.name,
-				type: "image"
-			}
-		})
-	}())
 
 
 	onLoad((options) => {
 	onLoad((options) => {
 		// #ifdef MP
 		// #ifdef MP
@@ -81,4 +66,4 @@
 	onPageScroll(() => {});
 	onPageScroll(() => {});
 </script>
 </script>
 
 
-<style></style>
+<style></style>

+ 1 - 1
sheep/components/s-block-item/s-block-item.vue

@@ -5,7 +5,7 @@
     <s-video-block v-if="type === 'videoPlayer'" :data="data" :styles="styles" />
     <s-video-block v-if="type === 'videoPlayer'" :data="data" :styles="styles" />
     <s-image-cube v-if="type === 'imageCube'" :data="data" :styles="styles" />
     <s-image-cube v-if="type === 'imageCube'" :data="data" :styles="styles" />
 
 
-    <s-notice-block v-if="type === 'noticeBlock'" :data="data" />
+    <s-notice-block v-if="type === 'NoticeBar'" :data="data" />
     <s-search-block v-if="type === 'searchBlock'" :data="data" :navbar="false" />
     <s-search-block v-if="type === 'searchBlock'" :data="data" :navbar="false" />
     <s-title-block v-if="type === 'titleBlock'" :data="data" :styles="styles" />
     <s-title-block v-if="type === 'titleBlock'" :data="data" :styles="styles" />
     <s-line-block v-if="type === 'lineBlock'" :data="data" />
     <s-line-block v-if="type === 'lineBlock'" :data="data" />

+ 4 - 4
sheep/components/s-layout/s-layout.vue

@@ -161,8 +161,8 @@
   const bgMain = computed(() => {
   const bgMain = computed(() => {
     if (navbarMode.value === 'inner') {
     if (navbarMode.value === 'inner') {
       return {
       return {
-        background: `${props.bgStyle.color} url(${sheep.$url.cdn(
-          props.bgStyle.src,
+        background: `${props.bgStyle.backgroundColor} url(${sheep.$url.cdn(
+          props.bgStyle.backgroundImage,
         )}) no-repeat top center / 100% auto`,
         )}) no-repeat top center / 100% auto`,
       };
       };
     }
     }
@@ -173,8 +173,8 @@
   const bgBody = computed(() => {
   const bgBody = computed(() => {
     if (navbarMode.value === 'normal') {
     if (navbarMode.value === 'normal') {
       return {
       return {
-        background: `${props.bgStyle.color} url(${sheep.$url.cdn(
-          props.bgStyle.src,
+        background: `${props.bgStyle.backgroundColor} url(${sheep.$url.cdn(
+          props.bgStyle.backgroundImage,
         )}) no-repeat top center / 100% auto`,
         )}) no-repeat top center / 100% auto`,
       };
       };
     }
     }

+ 5 - 4
sheep/components/s-notice-block/s-notice-block.vue

@@ -1,15 +1,16 @@
 <template>
 <template>
   <view class="ss-flex ss-col-center notice-wrap">
   <view class="ss-flex ss-col-center notice-wrap">
-    <image class="icon-img" :src="sheep.$url.cdn(data.src)" mode="heightFix"></image>
+    <image class="icon-img" :src="sheep.$url.cdn(data.iconUrl)" mode="heightFix"></image>
+    <!-- todo:@owen 暂时只支持一个公告   -->
     <su-notice-bar
     <su-notice-bar
       style="flex: 1"
       style="flex: 1"
       :showIcon="false"
       :showIcon="false"
       scrollable
       scrollable
       single
       single
-      :text="data.title.text"
+      :text="data.contents[0].text"
       :speed="50"
       :speed="50"
-      :color="data.title.color"
-      @tap="sheep.$router.go(data.url)"
+      :color="data.textColor"
+      @tap="sheep.$router.go(data.contents[0].url)"
     ></su-notice-bar>
     ></su-notice-bar>
   </view>
   </view>
 </template>
 </template>

+ 15 - 10
sheep/store/app.js

@@ -72,16 +72,7 @@ const app = defineStore({
         }
         }
         this.chat = res.data.chat;
         this.chat = res.data.chat;
 
 
-        const diyTemplate = await diyTemplateApi.getUsedDiyTemplate();
-        if (diyTemplate?.data?.property) {
-          const templateProperty = JSON.parse(diyTemplate?.data?.property)
-          this.template.basic.tabbar = templateProperty.tabBar
-          if (templateProperty?.tabBar.theme) {
-            this.template.basic.theme = templateProperty?.tabBar.theme;
-          }
-        } else {
-          $router.error('TemplateError');
-        }
+        await adaptTemplate(this.template);
 
 
         // 加载主题
         // 加载主题
         const sysStore = sys();
         const sysStore = sys();
@@ -108,4 +99,18 @@ const app = defineStore({
   },
   },
 });
 });
 
 
+// todo: @owen 先做数据适配,后期重构
+const adaptTemplate = async (appTemplate) => {
+  const diyTemplate = await diyTemplateApi.getUsedDiyTemplate();
+  const tabBar = diyTemplate?.data?.property?.tabBar;
+  if (tabBar) {
+    appTemplate.basic.tabbar = tabBar
+    if (tabBar?.theme) {
+      appTemplate.basic.theme = tabBar?.theme;
+    }
+  }
+  appTemplate.home = diyTemplate?.data?.home;
+  // appTemplate.user = diyTemplate?.data?.user;
+}
+
 export default app;
 export default app;