Commit 43386f4f authored by youjie's avatar youjie

楼宇

parent 6d82f4f7
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"style": { "style": {
"navigationStyle": "custom" "navigationStyle": "custom"
},
"meta": {
"showTabbar": true
} }
}, },
{ {
...@@ -801,6 +804,14 @@ ...@@ -801,6 +804,14 @@
} }
}, { }, {
"path": "signSuccse" //报名成功页面 "path": "signSuccse" //报名成功页面
},{
"path": "CarrierBuildingIndex" //载体楼宇首页
},{
"path": "CarrierBuilding/detail" //载体楼宇详情
},{
"path": "BrandEnterprise/list" //品牌服务首页
},{
"path": "BrandEnterprise/detail" //品牌服务详情
} }
] ]
......
<template>
<view style="
height: 100vh;
overflow: hidden;
box-sizing: border-box;
position: relative;
">
<scroll-view scroll-y="true" style="height: 100%" @scroll="scroll" v-if='details'>
<view class="bg-red">
<view class="detail-box">
<view class="header flex" style="popsition: relative">
<view class="title" style="display: flex; align-items: flex-end">
{{ details.BrandName }}
<view v-for="(item, index) in details.PrizeList" :key="index" class="screenBoxItem" @click="chooseYear(item)">
<view class="screenBoxItemYear activeYear">{{ item.YearInfo
}}</view>
<view class="screenBoxItemName activeName">{{
item.Name
}}</view>
</view>
</view>
<!-- 关注 -->
<view style="
width: 120rpx;
height: 120rpx;
margin-left: 12rpx;
margin-right: -40rpx;
position: absolute;
top: 0;
right: 50rpx;
"
@click="follow">
<image v-if="details.CollectId == 0" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616480343000_509.png"
style="width: 100%; height: 100%"></image>
<image v-if="details.CollectId > 0" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616480343000_370.png"
style="width: 100%; height: 100%"></image>
</view>
</view>
<view class="score-box flex item-center" v-if="details.OpenShopWish != -1">
<u-rate :current="details.OpenShopWish" :count="5" :size="25" active-icon="star" active-color="#F30329" :disabled="true"
inactive-color="#b2b2b2" class="rate"></u-rate>
<text class="score">{{ details.OpenShopWish ? details.OpenShopWish : "0" }}</text>
<text class="desire">开店意愿</text>
</view>
<view v-if="details.OpenShopWish == -1">
<text class="desire">无开店意愿</text>
</view>
<view style="width: 100%">
<view v-if="!details.VideoUrl || details.VideoUrl == ''" class="img-box">
<view v-if="details.BannerList.length == 1" v-for="(src, index) in details.BannerList" :key="index" style="width: 100%; height: 226rpx">
<image :src="src" style="width: 100%; height: 100%; border-radius: 20rpx" mode="aspectFill" @click="previewImage(0)"></image>
</view>
<view v-if="details.BannerList.length == 2" v-for="(src, index) in details.BannerList" :key="index" style="width: calc((100vw - 80rpx - 10rpx) / 2); height: 226rpx">
<image :src="src" v-if="index == 0" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
mode="aspectFill" @click="previewImage(index)"></image>
<image :src="src" v-if="index == 1" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
mode="aspectFill" @click="previewImage(index)"></image>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" v-if="details.BannerList.length > 2" style="height: 226rpx">
<image :src="src" class="img" mode="aspectFill" v-if="index == 0" @click="previewImage(index)" style="border-radius: 20rpx 0 0 20rpx"></image>
<image :src="src" class="img" mode="aspectFill" v-if="index == 1" @click="previewImage(index)"></image>
<image :src="src" class="img" mode="aspectFill" v-if="index == 2" @click="previewImage(index)" style="border-radius: 0 20rpx 20rpx 0"></image>
</view>
</view>
<view v-else>
<view v-if="details.BannerList.length == 1" class="img-box">
<view style="
width: calc((100vw - 80rpx - 10rpx) / 2);
height: 226rpx;
position: relative;
">
<video id="myVideo" :src="details.VideoUrl" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
:controls="controls" :show-center-play-btn="false" :show-fullscreen-btn="false" @fullscreenchange="brandvideoControl"></video>
<view @click="enlarge(details.VideoUrl)" style="
position: absolute;
left: 50%;
top: 50%;
margin-top: -30rpx;
margin-left: -30rpx;
width: 60rpx;
height: 60rpx;
border-radius: 20rpx;
background-color: rgba(255, 255, 255, 0.4);
display: flex;
align-items: center;
justify-content: center;
">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616471847000_345.png"
style="width: 37rpx; height: 44rpx" mode=""></image>
</view>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" style="
width: calc((100vw - 80rpx - 10rpx) / 2);
height: 226rpx;
">
<image :src="src" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
mode="aspectFill" @click="previewImage(index)"></image>
</view>
</view>
<view v-if="details.BannerList.length > 1" class="img-box">
<view style="
width: calc((100vw - 80rpx - 20rpx) / 3);
height: 226rpx;
position: relative;
">
<video id="myVideo" :src="details.VideoUrl" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
:controls="controls" :show-center-play-btn="false" :show-fullscreen-btn="false" @fullscreenchange="brandvideoControl"></video>
<view @click="enlarge(details.VideoUrl)" style="
position: absolute;
left: 50%;
top: 50%;
margin-top: -30rpx;
margin-left: -30rpx;
width: 60rpx;
height: 60rpx;
border-radius: 20rpx;
background-color: rgba(255, 255, 255, 0.4);
display: flex;
align-items: center;
justify-content: center;
">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616471847000_345.png"
style="width: 37rpx; height: 44rpx" mode=""></image>
</view>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" style="
width: calc((100vw - 80rpx - 10rpx) / 3);
height: 226rpx;
"
v-if="index < 2">
<image :src="src" style="width: 100%; height: 100%" v-if="index == 0" mode="aspectFill" @click="previewImage(index)"></image>
<image :src="src" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
v-if="index == 1" mode="aspectFill" @click="previewImage(index)"></image>
</view>
</view>
</view>
</view>
<!-- //奖章 -->
<view class="MedalBox" v-if="details.ListEnroll.length > 0">
<view v-for="(item, index) in details.ListEnroll" :key="index" class="MedalBoxItem">
<image :src="item.MedalImageBig" mode="heightFix" style="height: 100%" />
</view>
</view>
<view class="info1 flex flex-between">
<view class="info1-item">
<view class="info1-con">
{{ details.ShopNum }}
</view>
<view class="info1-title"> 店铺数量 </view>
</view>
<!-- <view class="info1-item">
<view class="info1-con">
{{ details.ProjectName }}
</view>
<view class="info1-title"> 对标载体 </view>
</view> -->
<view class="info1-item">
<view class="info1-con">
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.AreaRequirement == 0 &&
details.EndAreaRequirement != 0
">{{
details.EndAreaRequirement >= 10000
? details.EndAreaRequirement / 10000 + "万"
: details.EndAreaRequirement
}}<text style="font-size: 12px"></text></view>
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.EndAreaRequirement == 0 &&
details.AreaRequirement != 0
">{{
details.AreaRequirement >= 10000
? details.AreaRequirement / 10000 + "万"
: details.AreaRequirement
}}<text style="font-size: 12px"></text></view>
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.AreaRequirement != 0 &&
details.EndAreaRequirement != 0
">{{
details.AreaRequirement >= 10000
? details.AreaRequirement / 10000 + "万"
: details.AreaRequirement
}}~{{
details.EndAreaRequirement >= 10000
? details.EndAreaRequirement / 10000 + "万"
: details.EndAreaRequirement
}}<text style="font-size: 12px"></text></view>
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.AreaRequirement == 0 &&
details.EndAreaRequirement == 0
">/</view>
</view>
<view class="info1-title"> 面积需求 </view>
</view>
</view>
<view class="baseinfo">
<!-- <view class="baseinfo-item flex ">
<view class="baseinfo-label">
拓店区域:
</view>
<view class="baseinfo-con">
{{details.StoreExpansion}}
</view>
</view>
<view class="baseinfo-item flex ">
<view class="baseinfo-label">
品牌定位:
</view>
<view class="baseinfo-con">
商业地产+体育运动的新型“SPORTMALL”的全新商业场景
</view>
</view> -->
<view class="baseinfo-item flex" v-if="details.CustomerType && details.CustomerType!='' ">
<view class="baseinfo-label"> 客群定位: </view>
<view class="baseinfo-con">
{{ details.CustomerType }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.BrandType && details.BrandType!='' ">
<view class="baseinfo-label"> 行业定位: </view>
<view class="baseinfo-con">
{{ details.BrandType }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.StoreExpansion && details.StoreExpansion!='' ">
<view class="baseinfo-label"> 开店方向: </view>
<view class="baseinfo-con">
{{ details.StoreExpansion }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.IsInChengdu && details.IsInChengdu==1 ">
<view class="baseinfo-label"> 成都落地: </view>
<view class="baseinfo-con">
</view>
</view>
<view class="baseinfo-item flex" v-if="details.Other && details.Other!='' ">
<view class="baseinfo-label"> 招引需求: </view>
<view class="baseinfo-con">
<rich-text :nodes="details.Other"></rich-text>
</view>
</view>
<view class="baseinfo-item flex" v-if="details.WishDescription && details.WishDescription != ''">
<view class="baseinfo-label"> 拓展对接人: </view>
</view>
<view style="width: 100%; height: 360rpx" v-if="details.WishDescription && details.WishDescription != ''">
<image :src="details.WishCard" style="width: 100%; height: 360rpx; border-radius: 20px" @click="previewImage2(details.WishCard)"></image>
</view>
</view>
<view class="brand-title" v-if="details.WishDescription && details.WishDescription != ''">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/kotra-tzxq.png" mode="widthFix"></image>
</view>
<view style="margin-top: 30rpx" v-if="details.WishDescription && details.WishDescription != ''">
<h-parse :content="details.WishDescription" @navigate="clickDescription"></h-parse>
</view>
<view class="brand-title">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/kotra-wyxq.png" mode="widthFix"></image>
</view>
<view class="Listbox">
<view id="kiakou" class="Listbox-item" @click="showTips('kiakou', details.ShopSize, details.IsShopSize)">
<image :src="EquityList[8].ImagePath" v-if="details.IsShopSize == 1" mode="widthFix"></image>
<image :src="EquityList[8].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{
color: details.IsShopSize == 1 ? '#424242' : '#D6D6D6',
}">{{ EquityList[8].Title }}</text>
</view>
<view class="Listbox-item">
<image :src="EquityList[0].ImagePath" v-if="details.Plumbing == 1" mode="widthFix"></image>
<image :src="EquityList[0].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{
color: details.Plumbing == 1 ? '#424242' : '#D6D6D6',
}">{{ EquityList[0].Title }}</text>
</view>
<view class="Listbox-item">
<image :src="EquityList[7].ImagePath" v-if="details.Caliber == 1" mode="widthFix"></image>
<image :src="EquityList[7].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{ color: details.Caliber == 1 ? '#424242' : '#D6D6D6' }">{{ EquityList[7].Title }}</text>
</view>
<view class="Listbox-item">
<image :src="EquityList[1].ImagePath" v-if="details.Sewage == 1" mode="widthFix"></image>
<image :src="EquityList[1].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{ color: details.Sewage == 1 ? '#424242' : '#D6D6D6' }">{{ EquityList[1].Title }}</text>
</view>
<!-- 燃气 -->
<view class="Listbox-item" id="ranqi" @click="showTips('ranqi', details.RanQiBZ, details.RanQi)">
<image :src="EquityList[2].ImagePath" v-if="details.RanQi == 1" mode="widthFix"></image>
<image :src="EquityList[2].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{ color: details.RanQi == 1 ? '#424242' : '#D6D6D6' }">{{ EquityList[2].Title }}</text>
</view>
<view class="Listbox-item" id="dianliang" @click="
showTips('dianliang', details.DianLiang, details.IsDianLiang)
">
<image :src="EquityList[3].ImagePath" v-if="details.IsDianLiang == 1" mode="widthFix"></image>
<image :src="EquityList[3].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{
color: details.IsDianLiang == 1 ? '#424242' : '#D6D6D6',
}">{{ EquityList[3].Title }}</text>
</view>
<view class="Listbox-item" id="paiyan" @click="showTips('paiyan', details.PaiYanBZ, details.PaiYan)">
<image :src="EquityList[5].ImagePath" v-if="details.PaiYan == 1" mode="widthFix"></image>
<image :src="EquityList[5].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{ color: details.PaiYan == 1 ? '#424242' : '#D6D6D6' }">{{ EquityList[5].Title }}</text>
</view>
<view class="Listbox-item">
<image :src="EquityList[6].ImagePath" v-if="details.KongTiao == 1" mode="widthFix"></image>
<image :src="EquityList[6].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{
color: details.KongTiao == 1 ? '#424242' : '#D6D6D6',
}">{{ EquityList[6].Title }}</text>
</view>
<view class="Listbox-item">
<image :src="EquityList[4].ImagePath" v-if="details.XinFeng == 1" mode="widthFix"></image>
<image :src="EquityList[4].Image_n" v-else mode="widthFix"></image>
<text class="list-item-text" :style="{ color: details.XinFeng == 1 ? '#424242' : '#D6D6D6' }">{{ EquityList[4].Title }}</text>
</view>
</view>
</view>
</view>
</scroll-view>
<bianmarenTooltip :gravity="gravity" :tooltipShow="tooltipShow" :btns="tooltipBtns" :eleId="eleId">
</bianmarenTooltip>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
import hParse from "@/components/u-parse/parse.vue";
import bianmarenTooltip from "../components/bianmaren-tooltips.vue";
let timer;
export default {
components: {
hParse,
bianmarenTooltip,
auth
},
data() {
return {
showAuth: false,
u: {},
rate: 5,
ID: 0,
details: null,
typeList: [{
Id: 0,
Name: "视频",
},
{
Id: 1,
Name: "图片",
},
],
boxOption: 0,
navsOption: 0,
titleStyle: {},
active: 0,
mainColor: "",
controls: false, //显示默认控件
EquityList: [{
Title: "上下水",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-sxs.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-sxs-n.png",
},
{
Title: "排污",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pw.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pw-n.png",
},
{
Title: "燃气",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-rh.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-rh-n.png",
},
{
Title: "电量负荷",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-dl.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-dl-n.png",
},
{
Title: "新风",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-xf.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-xf-n.png",
},
{
Title: "排烟量",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pyl.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pyl-n.png",
},
{
Title: "空调",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kt.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kt-n.png",
},
{
Title: "管径",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-gj.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-gj-n.png",
},
{
Title: "开口尺寸",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kkcc.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kkcc-n.png",
},
],
gravity: "top",
tooltipShow: false,
tooltipBtns: ["今日sad"],
eleId: "", //点击元素
islook: false, //是否可以浏览心愿
};
},
onLoad(options) {
let that = this;
if (options && options.id) {
this.ID = options.id;
this.u = uni.getStorageSync("mall_UserInfo");
if (!this.u) {
this.u = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
} else {
this.GetBrandDetails();
}
}
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0%",
};
},
});
this.mainColor = this.$uiConfig.mainColor;
uni.setNavigationBarTitle({
title: "详情",
});
uni.setNavigationBarColor({
frontColor: "#ffffff",
backgroundColor: "#D40224",
animation: {
duration: 400,
timingFunc: "easeIn",
},
});
},
onShareTimeline() {
//朋友圈
let uid = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserId :
0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").SmallShopId :
0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserSmallShopId :
0;
}
let Up = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserPageType :
0;
return {
title: this.details.FullBrandName ? this.details.FullBrandName : "",
query: "user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up +
"&id=" +
this.ID,
imageUrl: this.details.BannerList && this.details.BannerList.length > 0 ?
this.details.BannerList[0] : "",
};
},
onShareAppMessage(res) {
//朋友
let uid = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserId :
0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").SmallShopId :
0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserSmallShopId :
0;
}
let Up = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserPageType :
0;
return {
title: this.details.FullBrandName ? this.details.FullBrandName : "",
path: "/pages/index/index?user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up +
"&id=" +
this.ID +
"&JumpType=15",
imageUrl: this.details.BannerList && this.details.BannerList.length > 0 ?
this.details.BannerList[0] : "",
};
},
methods: {
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
this.GetBrandDetails();
},
//关闭登录窗口
gbAuth() {
uni.navigateBack()
},
showTips(id, text, showis) {
clearInterval(timer);
if (this.eleId == id && this.tooltipShow == true) {
this.tooltipShow = false;
} else {
console.log(text, showis);
if (text != undefined && text != null && text != "" && showis == 1) {
this.eleId = id;
this.tooltipBtns = [text];
this.tooltipShow = true;
timer = setTimeout(() => {
this.tooltipShow = false;
}, 3000);
} else {
this.tooltipShow = false;
}
}
},
clickDescription(e) {
console.log(e);
},
GetBrandDetails() {
this.request2({
url: "/api/AppletTrade/GetBrandDetails",
data: {
ID: this.ID,
},
},
(res) => {
if (res.resultCode == 1) {
this.details = res.data;
if (res.data.VideoUrl == "") {
this.active = 1;
}
this.details.imgs = [];
if(this.details.Other && this.details.Other!=''){
this.details.Other = this.textFormat(this.details.Other);
}
this.details.BannerList.forEach((x) => {
let obj = {
name: x,
};
this.details.imgs.push(obj);
});
}
}
);
},
textFormat(val) {
// 格式化文字展示文本域格式文字
if (val) {
let newString = val.replace(/\n/g, '_@').replace(/\r/g, '_#');
newString = newString.replace(/_#_@/g, '<br/>'); // IE7-8
newString = newString.replace(/_@/g, '<br/>'); // IE9、FF、chrome
newString = newString.replace(/\s/g, '&nbsp;'); // 空格处理
return newString;
}
},
changeHandler(i) {
this.active = i;
},
previewImage(i) {
console.log(i);
uni.previewImage({
urls: this.details.BannerList,
current: i,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function(data) {},
fail: function(err) {
console.log(err.errMsg);
},
},
});
},
previewImage2(i) {
uni.previewImage({
urls: [this.details.WishCard],
current: 0,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function(data) {},
fail: function(err) {
console.log(err.errMsg);
},
},
});
},
scroll(e) {
this.boxOption = Math.floor((e.detail.scrollTop - 50) / 1.5);
this.titleStyle.opacity =
(e.detail.scrollTop - 100 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 100)) + "%";
this.tooltipShow = false;
this.$forceUpdate();
},
goback() {
uni.navigateBack({
delta: 1,
});
},
enlarge(file) {
// 全屏
this.videoContext = uni.createVideoContext("myVideo");
this.videoContext.requestFullScreen({
direction: 0,
});
},
brandvideoControl(e) {
console.log(e);
if (e.detail.fullScreen == false) {
this.videoContext.stop();
this.controls = false;
} else {
this.videoContext.play();
this.controls = true;
}
},
getlove() {
this.request2({
url: "/api/AppletTrade/GetCollect",
data: {
Type: 2,
SourceId: this.ID,
Id: this.details.CollectId,
},
},
(res) => {
if (res.resultCode == 1) {
uni.showToast({
title: res.message,
icon: "none",
});
this.GetBrandDetails();
}
}
);
},
// 关注与取消关注
follow() {
let that = this;
let parms = {
url: "/api/AppletTrade/GetCollect",
data: {
SourceId: this.ID,
Id: this.details.CollectId,
Type: 2,
},
};
this.request2(parms, (res) => {
if (res.resultCode == 1) {
that.GetBrandDetails();
}
});
},
},
};
</script>
<style lang="scss" scoped>
.flex {
display: flex;
}
.wrap {
flex-wrap: wrap;
}
.flex-center {
justify-content: center;
align-items: center;
}
.flex-between {
justify-content: space-between;
}
.item-center {
align-items: center;
}
.bg-red {
background-color: #d40224;
}
.detail-box {
width: 100%;
box-shadow: 0px -4rpx 71rpx 0rpx rgba(111, 111, 111, 0.26);
border-radius: 50rpx 50rpx 0rpx 0rpx;
padding: 40rpx 40rpx 90rpx 40rpx;
font-family: PingFang SC;
background-color: #ffffff;
.header {
margin-bottom: 20rpx;
align-items: flex-start;
.title {
max-width: calc(100vw - 100rpx - 70rpx);
font-size: 42rpx;
font-weight: 800;
color: #1f1f1f;
margin-right: 20rpx;
}
.tag-box {
border-radius: 6rpx;
width: 70px;
display: flex;
margin-top: 4px;
height: 20px;
.tag1 {
display: flex;
align-items: center;
justify-content: center;
background-color: #1f1f1f;
font-size: 20rpx;
color: #ffffff;
}
.tag2 {
display: flex;
align-items: center;
justify-content: center;
background-image: linear-gradient(90deg, #e8cea5, #caa974);
font-size: 20rpx;
color: #1f1f1f;
}
}
}
.score-box {
height: 40rpx;
margin-bottom: 35rpx;
.rate {
margin-right: 20rpx;
}
.score {
font-size: 20rpx;
font-weight: 500;
color: #f30329;
margin-right: 20rpx;
}
.desire {
font-size: 20rpx;
color: #111111;
}
}
.img-box {
height: 226rpx;
border-radius: 20rpx;
box-shadow: 0rpx 10rpx 30rpx 0rpx rgba(36, 36, 36, 0.2);
margin-bottom: 45rpx;
display: flex;
align-items: center;
justify-content: space-between;
overflow: hidden;
.img {
width: calc((100vw - 80rpx - 20rpx) / 3);
height: 226rpx;
}
}
.info1 {
margin-bottom: 60rpx;
.info1-item {
// width: 200rpx;之前的3个是200 下面是2个 就平分了宽度
width: calc((100vw - 80rpx - 20rpx) / 2);
.info1-con {
font-size: 30rpx;
font-weight: bold;
color: #f30329;
text-align: center;
margin-bottom: 18rpx;
}
.info1-title {
text-align: center;
font-size: 24rpx;
font-weight: 500;
color: #a4a4a4;
}
}
}
.baseinfo {
margin-bottom: 40rpx;
.baseinfo-item {
margin-bottom: 30rpx;
.baseinfo-label {
font-size: 24rpx;
font-weight: 500;
color: #a4a4a4;
margin-right: 10rpx;
white-space: nowrap;
}
.baseinfo-con {
font-size: 26rpx;
font-weight: 500;
color: #1f1f1f;
}
}
}
}
.brand-title {
width: 134rpx;
margin-top: 30px;
}
.brand-title image {
width: 100%;
height: auto;
}
.Listbox {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 10px;
}
.Listbox-item {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
height: 170rpx;
align-items: center;
justify-content: center;
}
.Listbox-item image {
width: 74rpx;
height: auto;
}
.list-item-text {
width: calc(100vw / 4);
margin-top: 5px;
text-align: center;
font-size: 12px;
}
.screenBoxItem {
/* width: 130rpx; */
height: 30rpx;
background-color: #e2e2e2;
border-radius: 23rpx;
margin-right: 30rpx;
display: flex;
color: #999999;
overflow: hidden;
margin: 0 10rpx;
overflow: hidden;
border-radius: 6rpx;
}
.screenBoxItemYear {
/* width: 50%; */
height: 30rpx;
background: #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
white-space: nowrap;
border-radius: 6rpx 0px 0px 6rpx;
box-sizing: border-box;
padding: 0 10rpx;
}
.activeYear {
background: #1f1f1f;
color: #ffffff;
}
.screenBoxItemName {
/* width: 50%; */
height: 30rpx;
background: #eaeaea;
display: flex;
justify-content: center;
align-items: center;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
box-sizing: border-box;
padding: 0 10rpx;
white-space: nowrap;
border-radius: 0px 6rpx 6rpx 0px;
}
.activeName {
background: #d0aa7b;
color: #111111;
}
.MedalBox {
background: #f0f0f0;
border-radius: 20rpx;
box-sizing: border-box;
padding: 15rpx;
display: flex;
flex-wrap: wrap;
margin-bottom: 30rpx;
}
.MedalBoxItem {
width: 30%;
height: 135rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 10rpx;
}
</style>
<template>
<div
:style="{
'background-color': '#f6f6f6',
height: contentHeight + 'px',
overflow: 'hidden',
}"
>
<view style="padding: 5px 10px">
<u-search
:placeholder="`搜索${msg.BrandEnterpriseType==1?'品牌':'服务'}名称`"
:focus="false"
:show-action="false"
:clearabled="true"
radius="40"
v-model="msg.BrandName"
@search="searchHandler"
@custom="searchHandler"
bg-color="#FFF"
></u-search>
</view>
<view style="display: flex; align-items: center">
<view style="flex: 1; overflow: hidden">
<u-tabs
bg-color="#f6f6f6"
:is-scroll="true"
name="ClassName"
:list="typeList"
:active-color="mainColor"
:current="active"
@change="changeHandler"
:show-bar="true"
:activeFontSize="34"
:bold="true"
height="100"
duration="0"
font-size="28"
></u-tabs>
</view>
<!-- <div style="width: 64rpx;height: 48rpx;display: table-cell; vertical-align: middle;text-align: right;">
<u-icon name="filter-o" color="#111" size="42"></u-icon>
</div> -->
</view>
</view>
<view class="screenBox" v-if="PrizeList.length > 0">
<view
v-for="(item, index) in PrizeList"
:key="index"
class="screenBoxItem"
@click="chooseYear(item)"
>
<view
class="screenBoxItemYear"
:class="{ activeYear: item.Id == msg.PrizeId }"
>{{ item.YearInfo }}</view
><view
class="screenBoxItemName"
:class="{ activeName: item.Id == msg.PrizeId }"
>{{ item.Name }}</view
>
</view>
</view>
<u-empty v-if="g.length == 0" text="暂无内容" mode="list"></u-empty>
<view
style="height: calc(100% - 127px); padding: 2px 10px"
v-if="g.length > 0"
>
<scroll-view
:scroll-y="true"
:enable-back-to-top="true"
:enable-flex="true"
@scrolltolower="lower"
style="height: 100%; padding-bottom: 0px"
>
<u-row gutter="24">
<u-col span="6" v-for="(x, i) in g" :key="i">
<view
class="good_study_two"
@click="openGood(x.ID)"
:style="{ borderRadius: '20rpx' }"
>
<view class="img-box">
<view class="img-show">
<image
style="
width: 100%;
height: 100%;
border-radius: 20rpx 20rpx 0 0;
"
mode="aspectFill"
:src="x.BannerList[0]"
/>
</view>
<view class="img-show-prize" v-if="x.ListEnroll[0]">
<image
style="width: 100%; height: 100%"
mode="heightFix"
:src="x.ListEnroll[0].MedalImage"
/>
</view>
</view>
<view class="good-info">
<view class="good-name">{{ x.BrandName }}</view>
<view class="good-price-info">
<span class="price">{{ x.FullBrandName }}</span>
</view>
</view>
</view>
</u-col>
</u-row>
<u-loadmore
:status="status"
:load-text="loadText"
:font-size="24"
:margin-top="20"
:margin-bottom="20"
bg-color="#f6f6f6"
/>
<view style="width: 100%;height: 30px;"></view>
</scroll-view>
</view>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth" ></auth>
<tabbars></tabbars>
</div>
</template>
<script>
import auth from "@/components/auth/index.vue";
import tabbars from "@/components/tabbar/index";
export default {
components: {
tabbars,
auth
},
data() {
return {
showAuth:false,
u:{},
mainColor: "",
active: 0,
searchKey: "",
typeList: [],
msg: {
pageIndex: 1,
pageSize: 20,
BrandName: "",//品牌名称
BrandClassId: 0,//分类Id
ProjectType: 0,
BrandEnterpriseType:1,//1品牌 2服务
},
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
page_count: 1,
status: "loadmore",
g: [],
contentHeight: 0,
PrizeList: [], //首店年份列表
};
},
onShareTimeline() {
//朋友圈
let uid = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserId
: 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").SmallShopId
: 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserSmallShopId
: 0;
}
let Up = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserPageType
: 0;
return {
title: "品牌列表",
query: "user_id=" + uid + "&SmallShopId=" + SmallShopId + "&Up=" + Up,
imageUrl: "",
};
},
onShareAppMessage(res) {
//朋友
let uid = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserId
: 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").SmallShopId
: 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserSmallShopId
: 0;
}
let Up = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserPageType
: 0;
return {
title: "品牌列表",
path:
"/pages/kotra/brand/list?user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up,
imageUrl: "",
};
},
onLoad(options) {
if (options && options.cat_id) {
this.msg.BrandEnterpriseType = options.cat_id;
}
if (options && options.CategoryIds) {
this.msg.BrandClassId = options.CategoryIds;
}
// this.u = uni.getStorageSync("mall_UserInfo");
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
this.GetBrandClassList();
this.getPrizeList();
// }
},
created() {
this.mainColor = this.$uiConfig.mainColor;
},
mounted() {
uni.setNavigationBarTitle({
title: "品牌列表",
});
let c = this.$uiConfig.is_bang ? 78 : 50;
this.contentHeight = this.$utils.calcContentHeight(c) + 40;
},
methods: {
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
this.msg.BrandName=''
this.GetBrandClassList();
this.getPrizeList();
},
//关闭登录窗口
gbAuth() {
this.showAuth = false
},
GetBrandClassList() {
this.request2(
{
url: "/api/AppletTrade/GetBrandClassList",
data: {
BrandCategory: this.msg.BrandEnterpriseType==1?1:2
},
},
(res) => {
if (res.resultCode == 1) {
let obj = {
ID: 0,
ClassName: "全部",
};
this.typeList = res.data;
this.typeList.unshift(obj);
if (this.msg.BrandClassId == 0) {
this.msg.BrandClassId = this.typeList[0].ID;
} else {
//指定跳入分类
this.typeList.map((x, i) => {
if (x.ID == this.msg.BrandClassId) {
this.active = i;
return;
}
});
}
}
}
);
this.init();
},
init() {
this.request2(
{
url: "/api/AppletTrade/GetBrandEnterprisePageList",
data: this.msg,
},
(res) => {
if (res.resultCode == 1) {
this.g = this.g.concat(res.data.pageData);
this.page_count = res.data.pageCount;
if (this.page_count == 1) {
this.status = "nomore";
}
}
}
);
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.init();
} else {
this.status = "nomore";
}
},
changeHandler(i) {
this.active = i;
this.msg.BrandClassId = this.typeList[i].ID;
this.msg.pageIndex = 1;
this.g = [];
this.init();
},
openGood(id) {
uni.navigateTo({
url: "/pages/kotra/brand/detail?id=" + id,
});
},
searchHandler(val) {
// this.u = uni.getStorageSync("mall_UserInfo");
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
this.msg.BrandName = val;
this.msg.pageIndex = 1;
this.g = [];
this.init();
// }
},
getPrizeList() {
this.request2(
{
url: "/api/AppletTrade/GetPrizePageList",
data: this.msg,
},
(res) => {
if (res.resultCode == 1) {
this.PrizeList = res.data;
}
}
);
},
chooseYear(item) {
if (this.msg.PrizeId == item.Id) {
this.msg.PrizeId = 0;
} else {
this.msg.PrizeId = item.Id;
}
this.g = [];
this.msg.pageIndex = 1;
this.init();
},
changeFirstStoreTest(i) {
this.msg.IsInChengdu = i;
this.msg.pageIndex = 1;
this.g = [];
this.init();
},
},
};
</script>
<style>
.good_study_two {
position: relative;
margin-bottom: 12px;
border: 1rpx solid transparent;
border-radius: 10rpx;
overflow: hidden;
box-shadow: 0 4px 10px 1px #e6e5e5;
background-color: #fff;
}
.good_study_two .tips {
width: 64rpx;
height: 64rpx;
position: absolute;
top: 0;
left: 0;
z-index: 4;
}
.good_study_two .img-box {
width: 100%;
height: 0;
padding-top: 100%;
position: relative;
overflow: hidden;
}
.good_study_two .img-box .img-show {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: 100%;
height: 338rpx;
overflow: hidden;
}
.good_study_two .guding {
position: relative;
}
.good_study_two .guding .img-box {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.good_study_two .good-info {
padding: 15rpx;
height: 112rpx;
}
.good_study_two .good-info .good-name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
margin-bottom: 8px;
color: #111111;
font-size: 26rpx;
font-weight: bold;
}
.good_study_two .good-info .good-price-info {
display: flex;
color: #999999;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
font-size: 22rpx;
}
.good_study_two .good-info .good-price-info .price {
color: #999999;
/* flex: 1; */
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.good_study_two .good-info .good-price-info .buy {
width: 24px;
text-align: right;
}
.screenBox {
display: flex;
align-items: center;
overflow-x: scroll;
box-sizing: border-box;
padding: 0 30rpx;
margin-top: 35rpx;
margin-bottom: 35rpx;
}
.screenBoxItem {
/* width: 130rpx; */
height: 46rpx;
background-color: #e2e2e2;
border-radius: 23rpx;
margin-right: 30rpx;
display: flex;
color: #999999;
overflow: hidden;
}
.screenBoxItemYear {
/* width: 50%; */
height: 46rpx;
background: #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
white-space: nowrap;
border-radius: 23px 0px 0px 23px;
box-sizing: border-box;
padding: 0 10rpx;
}
.activeYear {
background: #1f1f1f;
color: #ffffff;
}
.screenBoxItemName {
/* width: 50%; */
height: 46rpx;
background: #eaeaea;
display: flex;
justify-content: center;
align-items: center;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
box-sizing: border-box;
padding: 0 10rpx;
white-space: nowrap;
border-radius: 0px 23px 23px 0px;
}
.activeName {
background: #d0aa7b;
color: #111111;
}
.img-show-prize {
height: 36rpx;
background: #ffffff;
border-radius: 0rpx 0rpx 20rpx 0rpx;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
}
.carrierScreen {
height: 50rpx;
margin: 20rpx 0;
display: flex;
padding: 0 30rpx;
}
.statusBox {
/* width: 150rpx; */
height: 46rpx;
background: #1f1f1f;
border-radius: 23rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
margin-right: 30rpx;
padding: 0 18rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
}
.statusBox2 {
/* width: 150rpx; */
height: 46rpx;
background: #eaeaea;
border-radius: 23rpx;
display: flex;
justify-content: center;
align-items: center;
color: #999999;
padding: 0 18rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
}
</style>
<template>
<view style="
height: 100vh;
overflow: hidden;
box-sizing: border-box;
position: relative;
">
<scroll-view scroll-y="true" style="height: 100%" @scroll="scroll" v-if='details'>
<view class="bg-red">
<view class="detail-box">
<view class="header flex" style="popsition: relative">
<view class="title" style="display: flex; align-items: flex-end;position: relative;">
{{ details.CarrierName }}
<view class="score-box flex item-center">
<text class="desire">{{details.OpeningStatus != 0?'已开业':'即将开业'}}</text>
</view>
<view v-for="(item, index) in details.PrizeList" :key="index" class="screenBoxItem" @click="chooseYear(item)">
<view class="screenBoxItemYear activeYear">
{{ item.YearInfo}}
</view>
<view class="screenBoxItemName activeName">
{{item.Name}}
</view>
</view>
</view>
<!-- 关注 -->
<view style="
width: 120rpx;
height: 120rpx;
margin-left: 12rpx;
margin-right: -40rpx;
position: absolute;
top: 0;
right: 50rpx;
"
@click="follow">
<image v-if="details.CollectId == 0" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616480343000_509.png"
style="width: 100%; height: 100%"></image>
<image v-if="details.CollectId > 0" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616480343000_370.png"
style="width: 100%; height: 100%"></image>
</view>
</view>
<view style="width: 100%">
<view v-if="!details.VideoUrl || details.VideoUrl == ''" class="img-box">
<view v-if="details.BannerList.length == 1" v-for="(src, index) in details.BannerList" :key="index" style="width: 100%; height: 226rpx">
<image :src="src" style="width: 100%; height: 100%; border-radius: 20rpx" mode="aspectFill" @click="previewImage(0)"></image>
</view>
<view v-if="details.BannerList.length == 2" v-for="(src, index) in details.BannerList" :key="index" style="width: calc((100vw - 80rpx - 10rpx) / 2); height: 226rpx">
<image :src="src" v-if="index == 0" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
mode="aspectFill" @click="previewImage(index)"></image>
<image :src="src" v-if="index == 1" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
mode="aspectFill" @click="previewImage(index)"></image>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" v-if="details.BannerList.length > 2" style="height: 226rpx">
<image :src="src" class="img" mode="aspectFill" v-if="index == 0" @click="previewImage(index)" style="border-radius: 20rpx 0 0 20rpx"></image>
<image :src="src" class="img" mode="aspectFill" v-if="index == 1" @click="previewImage(index)"></image>
<image :src="src" class="img" mode="aspectFill" v-if="index == 2" @click="previewImage(index)" style="border-radius: 0 20rpx 20rpx 0"></image>
</view>
</view>
<view v-else>
<view v-if="details.BannerList.length == 1" class="img-box">
<view style="
width: calc((100vw - 80rpx - 10rpx) / 2);
height: 226rpx;
position: relative;
">
<video id="myVideo" :src="details.VideoUrl" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
:controls="controls" :show-center-play-btn="false" :show-fullscreen-btn="false" @fullscreenchange="brandvideoControl"></video>
<view @click="enlarge(details.VideoUrl)" style="
position: absolute;
left: 50%;
top: 50%;
margin-top: -30rpx;
margin-left: -30rpx;
width: 60rpx;
height: 60rpx;
border-radius: 20rpx;
background-color: rgba(255, 255, 255, 0.4);
display: flex;
align-items: center;
justify-content: center;
">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616471847000_345.png"
style="width: 37rpx; height: 44rpx" mode=""></image>
</view>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" style="
width: calc((100vw - 80rpx - 10rpx) / 2);
height: 226rpx;
">
<image :src="src" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
mode="aspectFill" @click="previewImage(index)"></image>
</view>
</view>
<view v-if="details.BannerList.length > 1" class="img-box">
<view style="
width: calc((100vw - 80rpx - 20rpx) / 3);
height: 226rpx;
position: relative;
">
<video id="myVideo" :src="details.VideoUrl" style="
width: 100%;
height: 100%;
border-radius: 20rpx 0 0 20rpx;
"
:controls="controls" :show-center-play-btn="false" :show-fullscreen-btn="false" @fullscreenchange="brandvideoControl"></video>
<view @click="enlarge(details.VideoUrl)" style="
position: absolute;
left: 50%;
top: 50%;
margin-top: -30rpx;
margin-left: -30rpx;
width: 60rpx;
height: 60rpx;
border-radius: 20rpx;
background-color: rgba(255, 255, 255, 0.4);
display: flex;
align-items: center;
justify-content: center;
">
<image src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616471847000_345.png"
style="width: 37rpx; height: 44rpx" mode=""></image>
</view>
</view>
<view v-for="(src, index) in details.BannerList" :key="index" style="
width: calc((100vw - 80rpx - 10rpx) / 3);
height: 226rpx;
"
v-if="index < 2">
<image :src="src" style="width: 100%; height: 100%" v-if="index == 0" mode="aspectFill" @click="previewImage(index)"></image>
<image :src="src" style="
width: 100%;
height: 100%;
border-radius: 0 20rpx 20rpx 0;
"
v-if="index == 1" mode="aspectFill" @click="previewImage(index)"></image>
</view>
</view>
</view>
</view>
<!-- //奖章 -->
<view class="MedalBox" v-if="details.HonorList.length > 0">
<view v-for="(item, index) in details.HonorList" :key="index" class="MedalBoxItem">
<image :src="item" mode="heightFix" style="height: 100%" />
</view>
</view>
<view class="info1 flex flex-between">
<view class="info1-item">
<view class="info1-con">
{{ details.ShopNum }}
</view>
<view class="info1-title"> 店铺数量 </view>
</view>
<!-- <view class="info1-item">
<view class="info1-con">
{{ details.ProjectName }}
</view>
<view class="info1-title"> 对标载体 </view>
</view> -->
<view class="info1-item">
<view class="info1-con">
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.CarrierSize&&details.CarrierSize != 0
">{{
details.CarrierSize >= 10000
? details.CarrierSize / 10000 + "万"
: details.CarrierSize
}}<text style="font-size: 12px"></text></view>
<view class="brand-xinx-item-t" :style="{ color: mainColor }" v-if="
details.CarrierSize == 0||details.CarrierSize == ''
">/</view>
</view>
<view class="info1-title"> 面积 </view>
</view>
</view>
<view class="baseinfo">
<view class="baseinfo-item flex" v-if="details.Address && details.Address!='' ">
<view class="baseinfo-label"> 地址: </view>
<view class="baseinfo-con">
{{ details.Address }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.Ascription && details.Ascription!='' ">
<view class="baseinfo-label"> 资产权属: </view>
<view class="baseinfo-con">
{{ details.Ascription }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.PropertyComposition && details.PropertyComposition!='' ">
<view class="baseinfo-label"> 物业构成: </view>
<view class="baseinfo-con">
{{ details.PropertyComposition }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.Location && details.Location!='' ">
<view class="baseinfo-label"> 项目发展及定位: </view>
<view class="baseinfo-con">
{{ details.Location }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.Crowd && details.Crowd!='' ">
<view class="baseinfo-label"> 周边人群结构特征: </view>
<view class="baseinfo-con">
{{ details.Crowd }}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.VisitorsFlowrate && details.VisitorsFlowrate!='' ">
<view class="baseinfo-label"> 人流量参数: </view>
<view class="baseinfo-con">
{{details.VisitorsFlowrate}}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.LayersNum && details.LayersNum!='' ">
<view class="baseinfo-label"> 商业楼层: </view>
<view class="baseinfo-con">
{{details.LayersNum}}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.SupportingFacilities && details.SupportingFacilities!='' ">
<view class="baseinfo-label"> 水电气及配套: </view>
<view class="baseinfo-con">
{{details.SupportingFacilities}}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.ManagementCompany && details.ManagementCompany!='' ">
<view class="baseinfo-label"> 管理公司及管理费: </view>
<view class="baseinfo-con">
{{details.ManagementCompany}}
</view>
</view>
<view class="baseinfo-item flex" v-if="details.BrandDemand && details.BrandDemand!='' ">
<view class="baseinfo-label"> 目标招商业态及品牌需求: </view>
<view class="baseinfo-con">
<rich-text :nodes="details.BrandDemand"></rich-text>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
<bianmarenTooltip :gravity="gravity" :tooltipShow="tooltipShow" :btns="tooltipBtns" :eleId="eleId">
</bianmarenTooltip>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth"></auth>
</view>
</template>
<script>
import auth from "@/components/auth/index.vue";
import hParse from "@/components/u-parse/parse.vue";
import bianmarenTooltip from "../components/bianmaren-tooltips.vue";
let timer;
export default {
components: {
hParse,
bianmarenTooltip,
auth
},
data() {
return {
showAuth: false,
u: {},
rate: 5,
ID: 0,
details: null,
typeList: [{
Id: 0,
Name: "视频",
},
{
Id: 1,
Name: "图片",
},
],
boxOption: 0,
navsOption: 0,
titleStyle: {},
active: 0,
mainColor: "",
controls: false, //显示默认控件
EquityList: [{
Title: "上下水",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-sxs.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-sxs-n.png",
},
{
Title: "排污",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pw.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pw-n.png",
},
{
Title: "燃气",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-rh.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-rh-n.png",
},
{
Title: "电量负荷",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-dl.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-dl-n.png",
},
{
Title: "新风",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-xf.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-xf-n.png",
},
{
Title: "排烟量",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pyl.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-pyl-n.png",
},
{
Title: "空调",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kt.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kt-n.png",
},
{
Title: "管径",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-gj.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-gj-n.png",
},
{
Title: "开口尺寸",
ImagePath: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kkcc.png",
Image_n: "https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/k-brand-kkcc-n.png",
},
],
gravity: "top",
tooltipShow: false,
tooltipBtns: ["今日sad"],
eleId: "", //点击元素
islook: false, //是否可以浏览心愿
};
},
onLoad(options) {
let that = this;
if (options && options.id) {
this.ID = options.id;
this.u = uni.getStorageSync("mall_UserInfo");
if (!this.u) {
this.u = {
nickName: "未登录",
avatarUrl: "",
};
this.showAuth = true;
} else {
this.GetBrandDetails();
}
}
uni.getSystemInfo({
success(res) {
that.titleStyle = {
height: "45px",
paddingTop: `${res.statusBarHeight}px`,
opacity: "0%",
};
},
});
this.mainColor = this.$uiConfig.mainColor;
uni.setNavigationBarTitle({
title: "详情",
});
uni.setNavigationBarColor({
frontColor: "#ffffff",
backgroundColor: "#D40224",
animation: {
duration: 400,
timingFunc: "easeIn",
},
});
},
onShareTimeline() {
//朋友圈
let uid = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserId :
0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").SmallShopId :
0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserSmallShopId :
0;
}
let Up = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserPageType :
0;
return {
title: this.details.FullBrandName ? this.details.FullBrandName : "",
query: "user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up +
"&id=" +
this.ID,
imageUrl: this.details.BannerList && this.details.BannerList.length > 0 ?
this.details.BannerList[0] : "",
};
},
onShareAppMessage(res) {
//朋友
let uid = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserId :
0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").SmallShopId :
0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserSmallShopId :
0;
}
let Up = uni.getStorageSync("mall_UserInfo") ?
uni.getStorageSync("mall_UserInfo").UserPageType :
0;
return {
title: this.details.FullBrandName ? this.details.FullBrandName : "",
path: "/pages/index/index?user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up +
"&id=" +
this.ID +
"&JumpType=15",
imageUrl: this.details.BannerList && this.details.BannerList.length > 0 ?
this.details.BannerList[0] : "",
};
},
methods: {
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
this.GetBrandDetails();
},
//关闭登录窗口
gbAuth() {
uni.navigateBack()
},
showTips(id, text, showis) {
clearInterval(timer);
if (this.eleId == id && this.tooltipShow == true) {
this.tooltipShow = false;
} else {
console.log(text, showis);
if (text != undefined && text != null && text != "" && showis == 1) {
this.eleId = id;
this.tooltipBtns = [text];
this.tooltipShow = true;
timer = setTimeout(() => {
this.tooltipShow = false;
}, 3000);
} else {
this.tooltipShow = false;
}
}
},
clickDescription(e) {
console.log(e);
},
GetBrandDetails() {
this.request2({
url: "/api/AppletTrade/GetBuildingCarrierDetails",
data: {
ID: this.ID,
},
},
(res) => {
if (res.resultCode == 1) {
this.details = res.data;
if (res.data.VideoUrl == "") {
this.active = 1;
}
this.details.imgs = [];
if(this.details.Other && this.details.Other!=''){
this.details.Other = this.textFormat(this.details.Other);
}
this.details.BannerList.forEach((x) => {
let obj = {
name: x,
};
this.details.imgs.push(obj);
});
}
}
);
},
textFormat(val) {
// 格式化文字展示文本域格式文字
if (val) {
let newString = val.replace(/\n/g, '_@').replace(/\r/g, '_#');
newString = newString.replace(/_#_@/g, '<br/>'); // IE7-8
newString = newString.replace(/_@/g, '<br/>'); // IE9、FF、chrome
newString = newString.replace(/\s/g, '&nbsp;'); // 空格处理
return newString;
}
},
changeHandler(i) {
this.active = i;
},
previewImage(i) {
console.log(i);
uni.previewImage({
urls: this.details.BannerList,
current: i,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function(data) {},
fail: function(err) {
console.log(err.errMsg);
},
},
});
},
previewImage2(i) {
uni.previewImage({
urls: [this.details.WishCard],
current: 0,
longPressActions: {
itemList: ["发送给朋友", "保存图片", "收藏"],
success: function(data) {},
fail: function(err) {
console.log(err.errMsg);
},
},
});
},
scroll(e) {
this.boxOption = Math.floor((e.detail.scrollTop - 50) / 1.5);
this.titleStyle.opacity =
(e.detail.scrollTop - 100 < 0 ?
0 :
Math.floor(e.detail.scrollTop - 100)) + "%";
this.tooltipShow = false;
this.$forceUpdate();
},
goback() {
uni.navigateBack({
delta: 1,
});
},
enlarge(file) {
// 全屏
this.videoContext = uni.createVideoContext("myVideo");
this.videoContext.requestFullScreen({
direction: 0,
});
},
brandvideoControl(e) {
console.log(e);
if (e.detail.fullScreen == false) {
this.videoContext.stop();
this.controls = false;
} else {
this.videoContext.play();
this.controls = true;
}
},
getlove() {
this.request2({
url: "/api/AppletTrade/GetCollect",
data: {
Type: 2,
SourceId: this.ID,
Id: this.details.CollectId,
},
},
(res) => {
if (res.resultCode == 1) {
uni.showToast({
title: res.message,
icon: "none",
});
this.GetBrandDetails();
}
}
);
},
// 关注与取消关注
follow() {
let that = this;
let parms = {
url: "/api/AppletTrade/GetCollect",
data: {
SourceId: this.ID,
Id: this.details.CollectId,
Type: 2,
},
};
this.request2(parms, (res) => {
if (res.resultCode == 1) {
that.GetBrandDetails();
}
});
},
},
};
</script>
<style lang="scss" scoped>
.flex {
display: flex;
}
.wrap {
flex-wrap: wrap;
}
.flex-center {
justify-content: center;
align-items: center;
}
.flex-between {
justify-content: space-between;
}
.item-center {
align-items: center;
}
.bg-red {
background-color: #d40224;
}
.detail-box {
width: 100%;
box-shadow: 0px -4rpx 71rpx 0rpx rgba(111, 111, 111, 0.26);
border-radius: 50rpx 50rpx 0rpx 0rpx;
padding: 40rpx 40rpx 90rpx 40rpx;
font-family: PingFang SC;
background-color: #ffffff;
.header {
margin-bottom: 20rpx;
align-items: flex-start;
.title {
max-width: calc(100vw - 100rpx - 70rpx);
font-size: 42rpx;
font-weight: 800;
color: #1f1f1f;
margin-right: 20rpx;
}
.tag-box {
border-radius: 6rpx;
width: 70px;
display: flex;
margin-top: 4px;
height: 20px;
.tag1 {
display: flex;
align-items: center;
justify-content: center;
background-color: #1f1f1f;
font-size: 20rpx;
color: #ffffff;
}
.tag2 {
display: flex;
align-items: center;
justify-content: center;
background-image: linear-gradient(90deg, #e8cea5, #caa974);
font-size: 20rpx;
color: #1f1f1f;
}
}
}
.score-box {
position: absolute;
right: -50px;
bottom: 0;
white-space: nowrap;
.rate {
margin-right: 20rpx;
}
.score {
font-size: 20rpx;
font-weight: 500;
color: #f30329;
margin-right: 20rpx;
}
.desire {
font-size: 20rpx;
color: #111111;
}
}
.img-box {
height: 226rpx;
border-radius: 20rpx;
box-shadow: 0rpx 10rpx 30rpx 0rpx rgba(36, 36, 36, 0.2);
margin-bottom: 45rpx;
display: flex;
align-items: center;
justify-content: space-between;
overflow: hidden;
.img {
width: calc((100vw - 80rpx - 20rpx) / 3);
height: 226rpx;
}
}
.info1 {
margin-bottom: 60rpx;
.info1-item {
// width: 200rpx;之前的3个是200 下面是2个 就平分了宽度
width: calc((100vw - 80rpx - 20rpx) / 2);
.info1-con {
font-size: 30rpx;
font-weight: bold;
color: #f30329;
text-align: center;
margin-bottom: 18rpx;
}
.info1-title {
text-align: center;
font-size: 24rpx;
font-weight: 500;
color: #a4a4a4;
}
}
}
.baseinfo {
margin-bottom: 40rpx;
.baseinfo-item {
margin-bottom: 30rpx;
.baseinfo-label {
font-size: 24rpx;
font-weight: 500;
color: #a4a4a4;
margin-right: 10rpx;
white-space: nowrap;
}
.baseinfo-con {
font-size: 26rpx;
font-weight: 500;
color: #1f1f1f;
}
}
}
}
.brand-title {
width: 134rpx;
margin-top: 30px;
}
.brand-title image {
width: 100%;
height: auto;
}
.Listbox {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 10px;
}
.Listbox-item {
width: 25%;
display: flex;
flex-direction: column;
align-items: center;
height: 170rpx;
align-items: center;
justify-content: center;
}
.Listbox-item image {
width: 74rpx;
height: auto;
}
.list-item-text {
width: calc(100vw / 4);
margin-top: 5px;
text-align: center;
font-size: 12px;
}
.screenBoxItem {
/* width: 130rpx; */
height: 30rpx;
background-color: #e2e2e2;
border-radius: 23rpx;
margin-right: 30rpx;
display: flex;
color: #999999;
overflow: hidden;
margin: 0 10rpx;
overflow: hidden;
border-radius: 6rpx;
}
.screenBoxItemYear {
/* width: 50%; */
height: 30rpx;
background: #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
white-space: nowrap;
border-radius: 6rpx 0px 0px 6rpx;
box-sizing: border-box;
padding: 0 10rpx;
}
.activeYear {
background: #1f1f1f;
color: #ffffff;
}
.screenBoxItemName {
/* width: 50%; */
height: 30rpx;
background: #eaeaea;
display: flex;
justify-content: center;
align-items: center;
font-size: 20rpx;
font-family: PingFang SC;
font-weight: 500;
box-sizing: border-box;
padding: 0 10rpx;
white-space: nowrap;
border-radius: 0px 6rpx 6rpx 0px;
}
.activeName {
background: #d0aa7b;
color: #111111;
}
.MedalBox {
background: #f0f0f0;
border-radius: 20rpx;
box-sizing: border-box;
padding: 15rpx;
display: flex;
flex-wrap: wrap;
margin-bottom: 30rpx;
}
.MedalBoxItem {
width: 30%;
height: 135rpx;
display: flex;
justify-content: center;
align-items: center;
margin: 10rpx;
}
</style>
<template>
<div
:style="{
'background-color': '#f6f6f6',
height: contentHeight + 'px',
overflow: 'hidden',
}"
>
<view style="padding: 5px 10px">
<u-search
:placeholder="`搜索${msg.BuildingCarrierType==1?'载体':'楼宇'}名称`"
:focus="false"
:show-action="false"
:clearabled="true"
radius="40"
v-model="msg.CarrierName"
@search="searchHandler"
@custom="searchHandler"
bg-color="#FFF"
></u-search>
</view>
<view style="display: flex; align-items: center">
<view style="flex: 1; overflow: hidden">
<u-tabs
bg-color="#f6f6f6"
:is-scroll="true"
name="ClassName"
:list="typeList"
:active-color="mainColor"
:current="active"
@change="changeHandler"
:show-bar="true"
:activeFontSize="34"
:bold="true"
height="100"
duration="0"
font-size="28"
></u-tabs>
</view>
<!-- <div style="width: 64rpx;height: 48rpx;display: table-cell; vertical-align: middle;text-align: right;">
<u-icon name="filter-o" color="#111" size="42"></u-icon>
</div> -->
</view>
<view class="carrierScreen" >
<view
class="statusBox"
:class="[msg.OpeningStatus==1?'statusBox':'statusBox2']"
@click="changeFirstStoreTest(1)"
>
已开业
</view>
<view
class=""
:class="[msg.OpeningStatus==0?'statusBox':'statusBox2']"
@click="changeFirstStoreTest(0)"
>
即将开业
</view>
</view>
<view class="screenBox" v-if="PrizeList.length > 0">
<view
v-for="(item, index) in PrizeList"
:key="index"
class="screenBoxItem"
@click="chooseYear(item)"
>
<view
class="screenBoxItemYear"
:class="{ activeYear: item.Id == msg.PrizeId }"
>{{ item.YearInfo }}</view
><view
class="screenBoxItemName"
:class="{ activeName: item.Id == msg.PrizeId }"
>{{ item.Name }}</view
>
</view>
</view>
<u-empty v-if="g.length == 0" text="暂无内容" mode="list"></u-empty>
<view
style="height: calc(100% - 127px); padding: 2px 10px"
v-if="g.length > 0"
>
<scroll-view
:scroll-y="true"
:enable-back-to-top="true"
:enable-flex="true"
@scrolltolower="lower"
style="height: 100%; padding-bottom: 0px"
>
<u-row gutter="24">
<u-col span="6" v-for="(x, i) in g" :key="i">
<view
class="good_study_two"
@click="openGood(x.ID)"
:style="{ borderRadius: '20rpx' }"
>
<view class="img-box">
<view class="img-show">
<image
style="
width: 100%;
height: 100%;
border-radius: 20rpx 20rpx 0 0;
"
mode="aspectFill"
:src="x.BannerList[0]"
/>
</view>
<view class="img-show-prize" v-if="x.ListEnroll[0]">
<image
style="width: 100%; height: 100%"
mode="heightFix"
:src="x.ListEnroll[0].MedalImage"
/>
</view>
</view>
<view class="good-info">
<view class="good-name">{{ x.CarrierName }}</view>
<view class="good-price-info">
<span class="price">{{ x.FullCarrierName }}</span>
</view>
</view>
</view>
</u-col>
</u-row>
<u-loadmore
:status="status"
:load-text="loadText"
:font-size="24"
:margin-top="20"
:margin-bottom="20"
bg-color="#f6f6f6"
/>
<view style="width: 100%;height: 30px;"></view>
</scroll-view>
</view>
<auth v-if="showAuth" @changeuserinfo="reloadUserinfo" @gbAuth="gbAuth" ></auth>
<tabbars></tabbars>
</div>
</template>
<script>
import auth from "@/components/auth/index.vue";
import tabbars from "@/components/tabbar/index";
export default {
components: {
tabbars,
auth
},
data() {
return {
showAuth:false,
u:{},
mainColor: "",
active: 0,
searchKey: "",
typeList: [],
msg: {
pageIndex: 1,
pageSize: 20,
CarrierName: "",// 载体/楼宇名称
ProjectType: 0,
BuildingCarrierType: '',// 1载体 2楼宇 3品牌 4服务
BrandCategory: '',
MetroNum: "",//地铁路线
Developers: "",//开发商
OpeningStatus: 1,//开业状态0即将开业1-已开业
// FirstStoreTest: "",//首店试验场0否1-是
},
loadText: {
loadmore: "轻轻上拉,加载更多",
loading: "努力加载中",
nomore: "没有更多了",
},
page_count: 1,
status: "loadmore",
g: [],
contentHeight: 0,
PrizeList: [], //首店年份列表
};
},
onShareTimeline() {
//朋友圈
let uid = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserId
: 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").SmallShopId
: 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserSmallShopId
: 0;
}
let Up = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserPageType
: 0;
return {
title: `${this.msg.BuildingCarrierType==1?'载体':'楼宇'}列表`,
query: "user_id=" + uid + "&SmallShopId=" + SmallShopId + "&Up=" + Up,
imageUrl: "",
};
},
onShareAppMessage(res) {
//朋友
let uid = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserId
: 0;
if (uid == 0) {
uid = uni.getStorageSync("pid") ? uni.getStorageSync("pid").pid : 0;
}
let SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").SmallShopId
: 0;
if (SmallShopId == 0) {
//如果微店id为0 去找所属微店id
SmallShopId = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserSmallShopId
: 0;
}
let Up = uni.getStorageSync("mall_UserInfo")
? uni.getStorageSync("mall_UserInfo").UserPageType
: 0;
return {
title: `${this.msg.BuildingCarrierType==1?'载体':'楼宇'}列表`,
path:
"/pages/kotra/brand/list?user_id=" +
uid +
"&SmallShopId=" +
SmallShopId +
"&Up=" +
Up,
imageUrl: "",
};
},
onLoad(options) {
if (options && options.cat_id) {
this.msg.BuildingCarrierType = options.cat_id;
}
if (options && options.CategoryIds) {
this.msg.BrandCategory = options.CategoryIds;
}
// this.u = uni.getStorageSync("mall_UserInfo");
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
this.GetBrandClassList();
this.getPrizeList();
// }
},
created() {
this.mainColor = this.$uiConfig.mainColor;
},
mounted() {
uni.setNavigationBarTitle({
title: `${this.msg.BuildingCarrierType==1?'载体':'楼宇'}列表`,
});
let c = this.$uiConfig.is_bang ? 78 : 50;
this.contentHeight = this.$utils.calcContentHeight(c) + 40;
},
methods: {
reloadUserinfo() {
this.u = uni.getStorageSync("mall_UserInfo");
this.msg.CarrierName=''
this.GetBrandClassList();
this.getPrizeList();
},
//关闭登录窗口
gbAuth() {
this.showAuth = false
},
GetBrandClassList() {
this.request2(
{
url: "/api/AppletTrade/GetBrandClassList",
data: {
BrandCategory: this.msg.BuildingCarrierType==1?1:2
},
},
(res) => {
if (res.resultCode == 1) {
let obj = {
ID: 0,
ClassName: "全部",
};
this.typeList = res.data;
this.typeList.unshift(obj);
if (this.msg.BrandCategory == 0) {
this.msg.BrandCategory = this.typeList[0].ID;
} else {
//指定跳入分类
this.typeList.map((x, i) => {
if (x.ID == this.msg.BrandCategory) {
this.active = i;
return;
}
});
}
}
}
);
this.init();
},
init() {
this.request2(
{
url: "/api/AppletTrade/GetBuildingCarrierPageList",
data: this.msg,
},
(res) => {
if (res.resultCode == 1) {
this.g = this.g.concat(res.data.pageData);
this.page_count = res.data.pageCount;
if (this.page_count == 1) {
this.status = "nomore";
}
}
}
);
},
lower(e) {
if (this.msg.pageIndex < this.page_count) {
this.msg.pageIndex++;
this.status = "loading";
this.init();
} else {
this.status = "nomore";
}
},
changeHandler(i) {
this.active = i;
this.msg.BrandCategory = this.typeList[i].ID;
this.msg.pageIndex = 1;
this.g = [];
this.init();
},
openGood(id) {
uni.navigateTo({
url: "/pages/kotra/CarrierBuilding/detail?id=" + id,
});
},
searchHandler(val) {
// this.u = uni.getStorageSync("mall_UserInfo");
// if (!this.u) {
// this.u = {
// nickName: "未登录",
// avatarUrl: "",
// };
// this.showAuth = true;
// } else {
this.msg.CarrierName = val;
this.msg.pageIndex = 1;
this.g = [];
this.init();
// }
},
getPrizeList() {
this.request2(
{
url: "/api/AppletTrade/GetPrizePageList",
data: this.msg,
},
(res) => {
if (res.resultCode == 1) {
this.PrizeList = res.data;
}
}
);
},
chooseYear(item) {
if (this.msg.PrizeId == item.Id) {
this.msg.PrizeId = 0;
} else {
this.msg.PrizeId = item.Id;
}
this.g = [];
this.msg.pageIndex = 1;
this.init();
},
changeFirstStoreTest(i) {
this.msg.OpeningStatus = i;
this.msg.pageIndex = 1;
this.g = [];
this.init();
},
},
};
</script>
<style>
.good_study_two {
position: relative;
margin-bottom: 12px;
border: 1rpx solid transparent;
border-radius: 10rpx;
overflow: hidden;
box-shadow: 0 4px 10px 1px #e6e5e5;
background-color: #fff;
}
.good_study_two .tips {
width: 64rpx;
height: 64rpx;
position: absolute;
top: 0;
left: 0;
z-index: 4;
}
.good_study_two .img-box {
width: 100%;
height: 0;
padding-top: 100%;
position: relative;
overflow: hidden;
}
.good_study_two .img-box .img-show {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
width: 100%;
height: 338rpx;
overflow: hidden;
}
.good_study_two .guding {
position: relative;
}
.good_study_two .guding .img-box {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.good_study_two .good-info {
padding: 15rpx;
height: 112rpx;
}
.good_study_two .good-info .good-name {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
margin-bottom: 8px;
color: #111111;
font-size: 26rpx;
font-weight: bold;
}
.good_study_two .good-info .good-price-info {
display: flex;
color: #999999;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
font-size: 22rpx;
}
.good_study_two .good-info .good-price-info .price {
color: #999999;
/* flex: 1; */
font-size: 11px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.good_study_two .good-info .good-price-info .buy {
width: 24px;
text-align: right;
}
.screenBox {
display: flex;
align-items: center;
overflow-x: scroll;
box-sizing: border-box;
padding: 0 30rpx;
margin-top: 35rpx;
margin-bottom: 35rpx;
}
.screenBoxItem {
/* width: 130rpx; */
height: 46rpx;
background-color: #e2e2e2;
border-radius: 23rpx;
margin-right: 30rpx;
display: flex;
color: #999999;
overflow: hidden;
}
.screenBoxItemYear {
/* width: 50%; */
height: 46rpx;
background: #e2e2e2;
display: flex;
justify-content: center;
align-items: center;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
white-space: nowrap;
border-radius: 23px 0px 0px 23px;
box-sizing: border-box;
padding: 0 10rpx;
}
.activeYear {
background: #1f1f1f;
color: #ffffff;
}
.screenBoxItemName {
/* width: 50%; */
height: 46rpx;
background: #eaeaea;
display: flex;
justify-content: center;
align-items: center;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
box-sizing: border-box;
padding: 0 10rpx;
white-space: nowrap;
border-radius: 0px 23px 23px 0px;
}
.activeName {
background: #d0aa7b;
color: #111111;
}
.img-show-prize {
height: 36rpx;
background: #ffffff;
border-radius: 0rpx 0rpx 20rpx 0rpx;
background-color: #fff;
position: absolute;
top: 0;
left: 0;
}
.carrierScreen {
height: 50rpx;
margin: 20rpx 0;
display: flex;
padding: 0 30rpx;
}
.statusBox {
/* width: 150rpx; */
height: 46rpx;
background: #1f1f1f;
border-radius: 23rpx;
display: flex;
justify-content: center;
align-items: center;
color: #fff;
margin-right: 30rpx;
padding: 0 18rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
}
.statusBox2 {
/* width: 150rpx; */
height: 46rpx;
background: #eaeaea;
border-radius: 23rpx;
display: flex;
justify-content: center;
align-items: center;
color: #999999;
padding: 0 18rpx;
font-size: 22rpx;
font-family: PingFang SC;
font-weight: 500;
}
</style>
\ No newline at end of file
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