瀏覽代碼

商城装修:装修模板预览

owen 1 年之前
父節點
當前提交
7f79fbf76a
共有 4 個文件被更改,包括 53 次插入33 次删除
  1. 2 1
      .gitignore
  2. 15 15
      pages/index/index.vue
  3. 16 6
      sheep/api/promotion/diy/template.js
  4. 20 11
      sheep/store/app.js

+ 2 - 1
.gitignore

@@ -8,4 +8,5 @@ deploy.sh
 .env
 .env
 yarn.lock
 yarn.lock
 package-lock.json
 package-lock.json
-*.keystore
+*.keystore
+pnpm-lock.yaml

+ 15 - 15
pages/index/index.vue

@@ -28,26 +28,26 @@
 
 
 	const template = computed(() => sheep.$store('app').template?.home);
 	const template = computed(() => sheep.$store('app').template?.home);
 	// 在此处拦截改变一下首页轮播图 此处先写死后期复活 放到启动函数里
 	// 在此处拦截改变一下首页轮播图 此处先写死后期复活 放到启动函数里
-	(async function() {
-		console.log('原代码首页定制化数据',template)
-		let {
-			data
-		} = await index2Api.decorate();
-		console.log('首页导航配置化过高无法兼容',JSON.parse(data[1].value))
+	// (async function() {
+		// console.log('原代码首页定制化数据',template)
+		// let {
+		// 	data
+		// } = await index2Api.decorate();
+		// console.log('首页导航配置化过高无法兼容',JSON.parse(data[1].value))
 		// 改变首页底部数据 但是没有通过数组id获取商品数据接口
 		// 改变首页底部数据 但是没有通过数组id获取商品数据接口
 		// let {
 		// let {
 		// 	data: datas
 		// 	data: datas
 		// } = await index2Api.spids();
 		// } = await index2Api.spids();
 		// template.value.data[9].data.goodsIds = datas.list.map(item => item.id);
 		// template.value.data[9].data.goodsIds = datas.list.map(item => item.id);
-		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"
-			}
-		})
-	}())
+		// 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) => {

+ 16 - 6
sheep/api/promotion/diy/template.js

@@ -1,10 +1,20 @@
 import request from '@/sheep/request';
 import request from '@/sheep/request';
 
 
-export default {
+ const DiyTemplateApi = {
   // TODO 芋艿:测试
   // TODO 芋艿:测试
-  getUsedDiyTemplate: () =>
-    request({
-      url: '/app-api/promotion/diy-template/used',
-      method: 'GET',
-    }),
+  getUsedDiyTemplate: () => {
+      return request({
+          url: '/app-api/promotion/diy-template/used',
+          method: 'GET',
+      });
+  },
+  getDiyTemplate: (id) => {
+      return request({
+          url: '/app-api/promotion/diy-template/get',
+          method: 'GET',
+          params: { id }
+      });
+  },
 };
 };
+
+export default DiyTemplateApi;

+ 20 - 11
sheep/store/app.js

@@ -61,19 +61,19 @@ const app = defineStore({
         $router.error('NetworkError');
         $router.error('NetworkError');
       }
       }
 
 
+      await adaptTemplate(this.template, templateId)
       const res = await appApi.init(templateId);
       const res = await appApi.init(templateId);
       if (res.error === 0) {
       if (res.error === 0) {
         this.info = res.data.app;
         this.info = res.data.app;
         this.platform = res.data.platform;
         this.platform = res.data.platform;
-        this.template = res.data.template;
+
+        // this.template = res.data.template;
         this.has_wechat_trade_managed = res.data.has_wechat_trade_managed;
         this.has_wechat_trade_managed = res.data.has_wechat_trade_managed;
-        if (!res.data.template) {
-          $router.error('TemplateError');
-        }
+        // if (!res.data.template) {
+        //   $router.error('TemplateError');
+        // }
         this.chat = res.data.chat;
         this.chat = res.data.chat;
 
 
-        await adaptTemplate(this.template);
-
         // 加载主题
         // 加载主题
         const sysStore = sys();
         const sysStore = sys();
         sysStore.setTheme();
         sysStore.setTheme();
@@ -100,17 +100,26 @@ const app = defineStore({
 });
 });
 
 
 // todo: @owen 先做数据适配,后期重构
 // todo: @owen 先做数据适配,后期重构
-const adaptTemplate = async (appTemplate) => {
-  const diyTemplate = await diyTemplateApi.getUsedDiyTemplate();
-  const tabBar = diyTemplate?.data?.property?.tabBar;
+const adaptTemplate = async (appTemplate, templateId) => {
+  const { data: diyTemplate } = templateId
+      // 查询指定模板,一般是预览时使用
+      ? await diyTemplateApi.getDiyTemplate(templateId)
+      : await diyTemplateApi.getUsedDiyTemplate();
+  // 模板不存在
+  if (!diyTemplate) {
+    $router.error('TemplateError');
+    return
+  }
+
+  const tabBar = diyTemplate?.property?.tabBar;
   if (tabBar) {
   if (tabBar) {
     appTemplate.basic.tabbar = tabBar
     appTemplate.basic.tabbar = tabBar
     if (tabBar?.theme) {
     if (tabBar?.theme) {
       appTemplate.basic.theme = tabBar?.theme;
       appTemplate.basic.theme = tabBar?.theme;
     }
     }
   }
   }
-  appTemplate.home = diyTemplate?.data?.home;
-  appTemplate.user = diyTemplate?.data?.user;
+  appTemplate.home = diyTemplate?.home;
+  appTemplate.user = diyTemplate?.user;
 }
 }
 
 
 export default app;
 export default app;