Files
wdsxh/pages/component/diy/index.vue
2026-04-29 15:33:58 +08:00

248 lines
8.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!-- +----------------------------------------------------------------------
| 麦沃德科技赋能开发者助力商协会发展
+----------------------------------------------------------------------
| Copyright (c) 20172024 www.wdsxh.cn All rights reserved.
+----------------------------------------------------------------------
| 沃德商协会系统并不是自由软件不加密并不代表开源未经许可不可自由转售和商用
+----------------------------------------------------------------------
| Author: MY WORLD Team <bd@maiwd.cn> www.maiwd.cn
+----------------------------------------------------------------------
| 组件-自定义装修 开发者: 麦沃德科技-半夏
+---------------------------------------------------------------------- -->
<template>
<view :style="{padding: paddingTop + ' ' + paddingLeft}">
<block v-for="(item,index) in showData.items" :key='index'>
<!-- 图片轮播 -->
<block v-if="item.type == 'carouselDiy'">
<carousel-diy :showStyle="item.style" :showData="item.data" :showParams="item.params" :domain="showData.domain" @onClick="onClick"></carousel-diy>
</block>
<!-- 单图组 -->
<block v-if="item.type == 'imagesDiy'">
<images-diy :showStyle="item.style" :showData="item.data" :domain="showData.domain" @onClick="onClick"></images-diy>
</block>
<!-- 导航组 -->
<block v-if="item.type == 'navDiy'">
<nav-diy :showStyle="item.style" :showData="item.data" :domain="showData.domain" @onClick="onClick"></nav-diy>
</block>
<!-- 图片魔方 -->
<block v-if="item.type == 'cubeDiy'">
<cube-diy :showStyle="item.style" :showData="item.data" :domain="showData.domain" @onClick="onClick"></cube-diy>
</block>
<!-- 信息卡片 -->
<block v-if="item.type == 'infoCardDiy'">
<info-card-diy :showStyle="item.style" :showParams="item.params" :domain="showData.domain" @onClick="onClick"></info-card-diy>
</block>
<!-- 按钮组 -->
<block v-if="item.type == 'textButtonDiy'">
<text-button-diy :showStyle="item.style" :showData="item.data" @onClick="onClick"></text-button-diy>
</block>
<!-- 标题 -->
<block v-if="item.type == 'titleDiy'">
<title-diy :showStyle="item.style" :showParams="item.params" @onClick="onClick"></title-diy>
</block>
<!-- 视频 -->
<block v-if="item.type == 'videoDiy'">
<video-diy :showStyle="item.style" :showParams="item.params" :domain="showData.domain"></video-diy>
</block>
<!-- 地图 -->
<block v-if="item.type == 'mapDiy'">
<map-diy :showStyle="item.style" :showParams="item.params"></map-diy>
</block>
<!-- 平台动态 -->
<block v-if="item.type == 'articleDiy'">
<article-diy :ref="'articleDiy_' + index" :showStyle="item.style" :showParams="item.params"></article-diy>
</block>
<!-- 商会介绍 -->
<block v-if="item.type == 'introduceDiy'">
<introduce-diy :showStyle="item.style" :showParams="item.params" :domain="showData.domain"></introduce-diy>
</block>
<!-- 会员展示 -->
<block v-if="item.type == 'memberDiy'">
<member-diy :ref="'memberDiy_' + index" :showStyle="item.style" :showParams="item.params"></member-diy>
</block>
<!-- 商会活动 -->
<block v-if="item.type == 'activityDiy'">
<activity-diy :ref="'activityDiy_' + index" :showStyle="item.style" :showParams="item.params"></activity-diy>
</block>
<!-- 活动接龙 -->
<block v-if="item.type == 'chainsDiy'">
<chains-diy :ref="'chainsDiy_' + index" :showStyle="item.style" :showParams="item.params" @setShareData="setShareData"></chains-diy>
</block>
<!-- 商会相册 -->
<block v-if="item.type == 'albumDiy'">
<album-diy :ref="'albumDiy_' + index" :showStyle="item.style" :showParams="item.params"></album-diy>
</block>
<!-- 商城商品 -->
<block v-if="item.type == 'goodsDiy'">
<goods-diy :ref="'goodsDiy_' + index" :showStyle="item.style" :showParams="item.params"></goods-diy>
</block>
<!-- 会员供需 -->
<block v-if="item.type == 'demandDiy'">
<demand-diy :ref="'demandDiy_' + index" :showStyle="item.style" :showParams="item.params"></demand-diy>
</block>
<!-- 会员地图 -->
<block v-if="item.type == 'memberMapDiy'">
<member-map-diy :ref="'memberMapDiy_' + index" :showMap="item.map" :showCategory="item.category" :spaceHeight="spaceHeight"></member-map-diy>
</block>
<!-- 搜索 -->
<block v-if="item.type == 'searchDiy'">
<search-diy :showStyle="item.style" :showParams="item.params"></search-diy>
</block>
<!-- 辅助线条 -->
<block v-if="item.type == 'lineDiy'">
<line-diy :showStyle="item.style"></line-diy>
</block>
<!-- 辅助空白 -->
<block v-if="item.type == 'blankDiy'">
<blank-diy :showStyle="item.style"></blank-diy>
</block>
<!-- 消息通知 -->
<block v-if="item.type == 'noticeDiy'">
<notice-diy :showStyle="item.style" :showParams="item.params" :domain="showData.domain"></notice-diy>
</block>
<!-- 文本组 -->
<block v-if="item.type == 'textDiy'">
<text-diy :showStyle="item.style"></text-diy>
</block>
<!-- 富文本 -->
<block v-if="item.type == 'richTextDiy'">
<rich-text-diy :showStyle="item.style" :showParams="item.params"></rich-text-diy>
</block>
<!-- 警告提示 -->
<block v-if="item.type == 'warnDiy'">
<warn-diy :showStyle="item.style" :showParams="item.params"></warn-diy>
</block>
<!-- 时间线 -->
<block v-if="item.type == 'timelineDiy'">
<timeline-diy :showStyle="item.style" :showData="item.data"></timeline-diy>
</block>
<!-- 悬浮按钮 -->
<block v-if="item.type == 'floatDiy'">
<float-diy :showStyle="item.style" :showParams="item.params" :domain="showData.domain" @onClick="onClick"></float-diy>
</block>
</block>
</view>
</template>
<script>
import carouselDiy from './carouselDiy.vue'
import imagesDiy from './imagesDiy.vue'
import navDiy from './navDiy.vue'
import cubeDiy from './cubeDiy.vue'
import infoCardDiy from './infoCardDiy.vue'
import textButtonDiy from './textButtonDiy.vue'
import titleDiy from './titleDiy.vue'
import videoDiy from './videoDiy.vue'
import mapDiy from './mapDiy.vue'
import articleDiy from './articleDiy.vue'
import introduceDiy from './introduceDiy.vue'
import memberDiy from './memberDiy.vue'
import activityDiy from './activityDiy.vue'
import chainsDiy from './chainsDiy.vue'
import albumDiy from './albumDiy.vue'
import goodsDiy from './goodsDiy.vue'
import demandDiy from './demandDiy.vue'
import memberMapDiy from './memberMapDiy.vue'
import searchDiy from './searchDiy.vue'
import lineDiy from './lineDiy.vue'
import blankDiy from './blankDiy.vue'
import noticeDiy from './noticeDiy.vue'
import textDiy from './textDiy.vue'
import richTextDiy from './richTextDiy.vue'
import warnDiy from './warnDiy.vue'
import timelineDiy from './timelineDiy.vue'
import floatDiy from './floatDiy.vue'
export default {
components: {
carouselDiy,
imagesDiy,
navDiy,
cubeDiy,
infoCardDiy,
textButtonDiy,
titleDiy,
videoDiy,
mapDiy,
articleDiy,
introduceDiy,
memberDiy,
activityDiy,
chainsDiy,
albumDiy,
goodsDiy,
demandDiy,
memberMapDiy,
searchDiy,
lineDiy,
blankDiy,
noticeDiy,
textDiy,
richTextDiy,
warnDiy,
timelineDiy,
floatDiy,
},
props: ['showData', 'spaceHeight'],
computed: {
paddingTop() {
return uni.upx2px(this.showData.page.style.paddingTop * 2) + 'px';
},
paddingLeft() {
return uni.upx2px(this.showData.page.style.paddingLeft * 2) + 'px';
},
},
methods: {
// 更新数据
updateData() {
for (var key in this.$refs) {
const type = key.split("_")[0]
switch (type) {
case "articleDiy":
this.$refs[key][0].getArticleList()
break;
case "memberDiy":
this.$refs[key][0].getMemberList()
break;
case "activityDiy":
this.$refs[key][0].getActivityList()
break;
case "chainsDiy":
this.$refs[key][0].getChainsList()
break;
case "albumDiy":
this.$refs[key][0].getAlbumList()
break;
case "goodsDiy":
this.$refs[key][0].getGoodsList()
break;
case "demandDiy":
this.$refs[key][0].getDemandList()
break;
case "memberMapDiy":
this.$refs[key][0].getMemberList()
break;
default:
break;
}
}
},
// 按钮点击
onClick(e) {
console.log(e,'===========>')
if (!e) return;
if (e.type == "Fixed" && (e.Fixed_type == "Fixed_type_7" || e.Fixed_type == "Fixed_type_8")) {
this.$emit("toPage", e)
} else {
console.log('走到了这里')
this.$util.openLink(e);
}
},
// 设置分享数据
setShareData(data) {
this.$emit('setShareData', data)
},
}
}
</script>