Merge branch 'dev' into test
This commit is contained in:
@@ -25,4 +25,5 @@ export default {
|
||||
@import "./assets/css/base.less";
|
||||
@import "./assets/css/reset.less";
|
||||
@import "./assets/css/style.less";
|
||||
@import "./assets/css/v12-style.less";
|
||||
</style>
|
||||
|
||||
@@ -79,3 +79,18 @@ export function getCountyFamousIndustryProjectFile(param) {
|
||||
export function getCountyFamousInvestmentFile(param) {
|
||||
return request.get('/countyFamous/investmentFile', param, { login: true })
|
||||
}
|
||||
|
||||
// 获取千县名品县城村屋列表
|
||||
export function getCountyFamousVillage(param) {
|
||||
return request.get('/countyFamous/village', param, { login: true })
|
||||
}
|
||||
|
||||
// 获取千县名品县城村屋详情
|
||||
export function getCountyFamousVillageDetail(id) {
|
||||
return request.get('/countyFamous/village/' + id, {}, { login: true })
|
||||
}
|
||||
|
||||
// 获取千县名品县城村屋资讯
|
||||
export function getCountyFamousVillageNews(param) {
|
||||
return request.get('/countyFamous/village/news', param, { login: true })
|
||||
}
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
/*================变量==================*/
|
||||
@primary-color: #C52733;
|
||||
@dark-color: #333333;
|
||||
@white-color: #fff;
|
||||
|
||||
@colors: #C52733, #333333, #fff, #666, #F0F0F0;
|
||||
@classnames: primary, dark, white, secondary-dark, grey;
|
||||
/*=====================================*/
|
||||
|
||||
each(@colors, {
|
||||
@color: extract(@colors, @index);
|
||||
@classname: extract(@classnames, @index);
|
||||
.v12-@{classname} {
|
||||
background-color: @color !important;
|
||||
background: @color !important;
|
||||
}
|
||||
.v12-@{classname}-text{
|
||||
color: @color !important;
|
||||
}
|
||||
.v12-@{classname}-border{
|
||||
border: 1px solid @color !important;
|
||||
}
|
||||
});
|
||||
|
||||
/*===================字体大小======================*/
|
||||
.generateFontSize(@i) when (@i <= 80) {
|
||||
.v12-font-@{i} {
|
||||
font-size: @i * 1rpx !important;
|
||||
}
|
||||
.generateFontSize(@i + 2);
|
||||
}
|
||||
|
||||
.generateFontSize(0);
|
||||
|
||||
.v12-font-bold{
|
||||
font-weight: bold !important;
|
||||
}
|
||||
.generateFontWeight(@n, @i: 100) when (@i <= @n) {
|
||||
.v12-font-weight-@{i} {
|
||||
font-weight: @i !important;
|
||||
}
|
||||
.generateFontWeight(@n, (@i + 100))
|
||||
}
|
||||
.generateFontWeight(900);
|
||||
|
||||
/*==================内外边距====================*/
|
||||
.generateMarginAndPadding(@n, @i:0) when (@i<= @n) {
|
||||
@baseNum: @i * 8rpx;
|
||||
.v12-mt-@{i} {
|
||||
margin-top: @baseNum;
|
||||
}
|
||||
.v12-ml-@{i} {
|
||||
margin-left: @baseNum;
|
||||
}
|
||||
.v12-mr-@{i} {
|
||||
margin-right: @baseNum;
|
||||
}
|
||||
.v12-mb-@{i} {
|
||||
margin-bottom: @baseNum;
|
||||
}
|
||||
.v12-ma-@{i} {
|
||||
margin: @baseNum;
|
||||
}
|
||||
.v12-mx-@{i} {
|
||||
margin: 0 @baseNum;
|
||||
}
|
||||
.v12-my-@{i} {
|
||||
margin: @baseNum 0;
|
||||
}
|
||||
.v12-pt-@{i} {
|
||||
padding-top: @baseNum;
|
||||
}
|
||||
.v12-pl-@{i} {
|
||||
padding-left: @baseNum;
|
||||
}
|
||||
.v12-pr-@{i} {
|
||||
padding-right: @baseNum;
|
||||
}
|
||||
.v12-pb-@{i} {
|
||||
padding-bottom: @baseNum;
|
||||
}
|
||||
.v12-pa-@{i} {
|
||||
padding: @baseNum;
|
||||
}
|
||||
.v12-px-@{i} {
|
||||
padding: 0 @baseNum
|
||||
}
|
||||
.v12-py-@{i} {
|
||||
padding: @baseNum 0
|
||||
}
|
||||
.generateMarginAndPadding(@n, (@i + 1))
|
||||
}
|
||||
.generateMarginAndPadding(40);
|
||||
|
||||
/*==================圆角====================*/
|
||||
.generateRadius(@n, @i: 0) when (@i <= @n) {
|
||||
@baseRadius: @i * 1rpx;
|
||||
.v12-radius-@{i} {
|
||||
border-radius: @baseRadius
|
||||
}
|
||||
.generateRadius(@n, (@i + 1))
|
||||
}
|
||||
.generateRadius(100);
|
||||
/*=========================================*/
|
||||
|
||||
/*====================flex 函数表达式=====================*/
|
||||
|
||||
.v12-d-flex{
|
||||
display: flex !important;
|
||||
}
|
||||
.v12-flex-column {
|
||||
flex-direction: column;
|
||||
}
|
||||
.v12-align-center{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.v12-align-start{
|
||||
display: flex;
|
||||
align-items: start;
|
||||
}
|
||||
.v12-align-end{
|
||||
display: flex;
|
||||
align-items: end;
|
||||
}
|
||||
.v12-justify-center{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
.v12-justify-between{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.v12-d-grid-columns-2 {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<view class="components-checkbox-icon jc-center ai-center" :class="{'isSelected':isSelected}" @click="change">
|
||||
<image class="icon-hook" :src="webUrl + '/20240109175325131970.png'" mode="scaleToFill" v-if="isSelected"/>
|
||||
<!-- <image class="icon-hook" :src="webUrl + '/20240109175325131970.png'" mode="scaleToFill" v-if="isSelected"/> -->
|
||||
<u-icon name="checkmark-circle-fill" color="#C52733" v-if="isSelected"></u-icon>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -43,7 +44,7 @@ export default {
|
||||
width: 32rpx;
|
||||
height: 32rpx;
|
||||
box-sizing: border-box;
|
||||
border: 2rpx solid #D5D7D8;
|
||||
border: 2px solid #D5D7D8;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
@@ -53,7 +54,6 @@ export default {
|
||||
}
|
||||
|
||||
.isSelected {
|
||||
border: 3px solid #FD5749;
|
||||
background: #FD5749;
|
||||
border: 3px solid #C52733;
|
||||
}
|
||||
</style>
|
||||
@@ -597,6 +597,13 @@
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "views/famousQianxianVillageShop",
|
||||
"style": {
|
||||
"navigationBarTitleText": "千县名品",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "views/famousQianxianInvestment",
|
||||
"style": {
|
||||
@@ -829,6 +836,7 @@
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#8B8F99",
|
||||
"custom": true,
|
||||
"selectedColor": "#FF564A",
|
||||
"borderStyle": "black",
|
||||
"backgroundColor": "#ffffff",
|
||||
|
||||
+92
-50
@@ -41,49 +41,51 @@
|
||||
class="store-cover"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="mer-name">{{ item['merName'] }}</view>
|
||||
<view class="mer-name v12-font-24 v12-font-bold">{{ item['merName'] }}</view>
|
||||
</view>
|
||||
<view
|
||||
class="flex ai-center hotle-btn"
|
||||
class="flex ai-center hotle-btn v12-primary-text"
|
||||
@click="navToStore(item['hotelId'])"
|
||||
>
|
||||
进店逛逛
|
||||
<image
|
||||
进店逛逛>
|
||||
<!-- <image
|
||||
:src="$VUE_APP_RESOURCES_URL + '/20240109234706982937.png'"
|
||||
style="width: 24rpx;height: 24rpx"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
/> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="good-box">
|
||||
<view
|
||||
v-for="(good, gIndex) in item['carts']"
|
||||
:key="gIndex"
|
||||
class="good flex ai-center"
|
||||
class="good flex v12-align-start"
|
||||
>
|
||||
<CheckboxIcon
|
||||
:default-state="good['state']"
|
||||
:mark="[index, gIndex]"
|
||||
style="margin-right: 24rpx;"
|
||||
@change="onChange"
|
||||
/>
|
||||
<image
|
||||
v-if="good['productInfo']['attrInfo']['image']"
|
||||
:src="good['productInfo']['attrInfo']['image']"
|
||||
class="good-cover flex-0"
|
||||
mode="scaleToFill"
|
||||
@click="navToGood(good)"
|
||||
/>
|
||||
<image
|
||||
v-else
|
||||
:src="good['productInfo']['image']"
|
||||
mode="scaleToFill"
|
||||
class="good-cover flex-0"
|
||||
@click="navToGood(good)"
|
||||
/>
|
||||
<view class="v12-align-center">
|
||||
<CheckboxIcon
|
||||
:default-state="good['state']"
|
||||
:mark="[index, gIndex]"
|
||||
style="margin-right: 24rpx;"
|
||||
@change="onChange"
|
||||
/>
|
||||
<image
|
||||
v-if="good['productInfo']['attrInfo']['image']"
|
||||
:src="good['productInfo']['attrInfo']['image']"
|
||||
class="good-cover flex-0 v12-radius-16"
|
||||
mode="scaleToFill"
|
||||
@click="navToGood(good)"
|
||||
/>
|
||||
<image
|
||||
v-else
|
||||
:src="good['productInfo']['image']"
|
||||
mode="scaleToFill"
|
||||
class="good-cover flex-0"
|
||||
@click="navToGood(good)"
|
||||
/>
|
||||
</view>
|
||||
<view style="width: 100%">
|
||||
<view
|
||||
class="one-t"
|
||||
class="one-t v12-font-28"
|
||||
@click="navToGood(good)"
|
||||
>{{ good['productInfo']['storeName'] }}</view>
|
||||
<view
|
||||
@@ -92,16 +94,24 @@
|
||||
>
|
||||
规格:{{ good['productInfo']['attrInfo']['sku'] }}
|
||||
</view>
|
||||
<!-- <view class="v12-mt-1 v12-align-center">
|
||||
<view class="v12-primary-text v12-primary-border v12-radius-8 v12-font-24 v12-px-1">
|
||||
<text>券</text>
|
||||
</view>
|
||||
<view class="v12-primary-text v12-primary-border v12-radius-8 v12-font-24 v12-px-1">
|
||||
<text>满100-30</text>
|
||||
</view>
|
||||
</view> -->
|
||||
<view
|
||||
class="flex jc-between ai-center"
|
||||
style="width: 100%;margin-top: 26rpx;"
|
||||
style="width: 100%;margin-top: 4rpx;"
|
||||
>
|
||||
<view
|
||||
style="color:#E92727;font-size: 32rpx;"
|
||||
class="v12-font-bold v12-primary-text"
|
||||
@click="navToGood(good)"
|
||||
>
|
||||
<text class="bold" style="font-size: 24rpx">¥</text>
|
||||
{{ good['truePrice'] }}
|
||||
<text class="bold v12-font-22">¥</text>
|
||||
<text class="v12-font-36">{{ good['truePrice'] }}</text>
|
||||
</view>
|
||||
<u-number-box
|
||||
:value="good.cartNum"
|
||||
@@ -113,15 +123,15 @@
|
||||
@change="e => changeNumHandle(index, gIndex, good, e)"
|
||||
>
|
||||
<template v-slot:minus>
|
||||
<view class="num-btn flex jc-center ai-center">
|
||||
<view class="v12-minus-btn v12-font-bold flex jc-center ai-center">
|
||||
<u-icon name="minus" size="12" color="#FFFFFF"/>
|
||||
</view>
|
||||
</template>
|
||||
<template v-slot:input>
|
||||
<view class="num-input tc">{{ good['cartNum'] }}</view>
|
||||
<view class="num-input tc v12-num-input">{{ good['cartNum'] }}</view>
|
||||
</template>
|
||||
<template v-slot:plus>
|
||||
<view class="num-btn flex jc-center ai-center">
|
||||
<view class="v12-plus-btn v12-font-bold flex jc-center ai-center v12-primary">
|
||||
<u-icon name="plus" size="12" color="#FFFFFF"/>
|
||||
</view>
|
||||
</template>
|
||||
@@ -139,13 +149,15 @@
|
||||
:mark="[-1]"
|
||||
@change="onChange"
|
||||
/>
|
||||
<text style="color:#666666;font-size: 32rpx">全选({{ selectCount }})</text>
|
||||
<text class="v12-dark-text v12-font-32 v12-font-bold">全选({{ selectCount }})</text>
|
||||
</view>
|
||||
<view class="flex ai-center">
|
||||
<view style="margin-right: 20rpx;color:#666666;font-size: 32rpx">合计:
|
||||
<text class="bold" style="color:#E92727">¥{{ total }}</text>
|
||||
<view >
|
||||
<text class="v12-font-24 v12-dark-text v12-font-weight-550"> 合计:</text>
|
||||
<text class="v12-font-22 v12-primary-text v12-font-bold">¥</text>
|
||||
<text class="v12-font-26 v12-primary-text v12-font-bold">{{ total }}</text>
|
||||
</view>
|
||||
<view class="btn-submit bold flex jc-center ai-center" @click="submit">结算</view>
|
||||
<view class="btn-submit v12-mx-3 bold flex jc-center ai-center v12-radius-80 v12-primary" @click="submit">结算</view>
|
||||
</view>
|
||||
</view>
|
||||
<view
|
||||
@@ -550,6 +562,36 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.v12-minus-btn{
|
||||
border-radius: 28rpx 0rpx 0rpx 28rpx;
|
||||
border: 1px solid #E6E6E6;
|
||||
background-color: rgba(208,208,208,0.39);
|
||||
height: 40rpx;
|
||||
width: 40rpx;
|
||||
padding: 0 20rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.v12-plus-btn{
|
||||
border-radius: 0rpx 28rpx 28rpx 0rpx;
|
||||
border: 1px solid #C52733;
|
||||
background-color: #C52733;
|
||||
height: 40rpx;
|
||||
width: 40rpx;
|
||||
padding: 0 20rpx;
|
||||
font-weight: bold;
|
||||
}
|
||||
.v12-num-input{
|
||||
height: 40rpx;
|
||||
// width: 40rpx;
|
||||
border: 1px solid #E6E6E6;
|
||||
line-height: 40rpx;
|
||||
font-weight: bold;
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
view {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
@@ -593,10 +635,10 @@ view {
|
||||
margin-top: 24rpx;
|
||||
|
||||
.good-cover {
|
||||
width: 160rpx;
|
||||
height: 160rpx;
|
||||
width: 140rpx;
|
||||
height: 140rpx;
|
||||
margin-right: 16rpx;
|
||||
border-radius: 8rpx;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
|
||||
.one-t {
|
||||
@@ -609,20 +651,20 @@ view {
|
||||
|
||||
.sku {
|
||||
display: inline-flex;
|
||||
margin-top: 12rpx;
|
||||
margin: 4rpx;
|
||||
padding: 10rpx 20rpx;
|
||||
border-radius: 22rpx;
|
||||
background: #FDF1F3;
|
||||
color: #999999;
|
||||
font-size: 28rpx;
|
||||
border-radius: 60rpx;
|
||||
background: rgba(240,240,240,0.6);
|
||||
color: #666666;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.num-btn {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
background: rgba(236, 236, 238, 1);
|
||||
border: 2px solid rgba(236, 236, 238, 1);
|
||||
border-radius: 50%;
|
||||
// border: 2px solid rgba(236, 236, 238, 1);
|
||||
border-radius: 40rpx;
|
||||
}
|
||||
|
||||
.num-input {
|
||||
@@ -644,8 +686,8 @@ view {
|
||||
|
||||
.btn-submit {
|
||||
width: 196rpx;
|
||||
height: 100rpx;
|
||||
background: #FD5749;
|
||||
height: 64rpx;
|
||||
background: #C52733;
|
||||
color: #FFFFFF;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
@@ -260,7 +260,7 @@ export default {
|
||||
|
||||
.body {
|
||||
padding: 20rpx 32rpx;
|
||||
background: #F9F9F9;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
.city-box {
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
</view>
|
||||
<!-- v9 老用户弹窗 -->
|
||||
<u-popup
|
||||
:show="isOldUser && oldUserPopup.image"
|
||||
:show="isOldUser && oldUserPopup.image && lotteryCanDraw"
|
||||
mode="center"
|
||||
bgColor="transparent"
|
||||
>
|
||||
@@ -294,11 +294,12 @@ export default {
|
||||
// 节日专题
|
||||
contentFestival: {},
|
||||
pageKeyId: Object.freeze('appIndex'),
|
||||
scrollTop: 0
|
||||
scrollTop: 0,
|
||||
lotteryCanDraw: false
|
||||
}
|
||||
},
|
||||
onLoad() {
|
||||
uni.hideTabBar()
|
||||
// uni.hideTabBar()
|
||||
const _this = this
|
||||
_this.init()
|
||||
uni.getSystemInfo({
|
||||
@@ -371,6 +372,7 @@ export default {
|
||||
_this.$set(_this, 'contentFestival', data.contentFestivalV2)
|
||||
_this.bastLeftList = []
|
||||
_this.bastRightList = []
|
||||
_this.lotteryCanDraw = data.lotteryCanDraw
|
||||
for (let i = 0; i < data.bastList.length; i++) {
|
||||
if (i % 2 === 0) {
|
||||
// 店铺排名
|
||||
|
||||
@@ -376,6 +376,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<ProductWindow
|
||||
v-on:changeFun="changeFun"
|
||||
:attr="attr"
|
||||
@@ -663,8 +664,18 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
goRoom() {
|
||||
const params = {
|
||||
goodsId: this.productId,
|
||||
goodsName: this.attr.productSelect.store_name,
|
||||
skuStr: this.attrValue,
|
||||
price: this.attr.productSelect.price,
|
||||
seckillId: this.activityId,
|
||||
cover: this.attr.productSelect.image,
|
||||
goodsData: '',
|
||||
seckillData: ''
|
||||
}
|
||||
uni.navigateTo({
|
||||
url: `/pkg_common/views/room?id=${this.storeInfo.merId}&name=${this.storeInfo.merName}`
|
||||
url: `/pkg_common/views/room?id=${this.storeInfo.merId}&name=${this.storeInfo.merName}¶ms=${JSON.stringify(params)}`
|
||||
})
|
||||
},
|
||||
goodsDetail: function (item) {
|
||||
@@ -1095,6 +1106,7 @@ export default {
|
||||
if (typeof opt !== "object") opt = {};
|
||||
let action = opt.action || "";
|
||||
let value = opt.value === undefined ? "" : opt.value;
|
||||
this.cart_num = 1
|
||||
this[action] && this[action](value);
|
||||
},
|
||||
|
||||
|
||||
@@ -203,13 +203,18 @@
|
||||
</view>
|
||||
</view>
|
||||
<!-- 我的服务结束 -->
|
||||
<view v-if="bannerBgUrl" class="banner-wrap">
|
||||
<image
|
||||
<view v-if="userCenterCarouselShow === 1 && userCenterCarousel.length > 0" class="banner-wrap">
|
||||
<!-- <image
|
||||
:src="bannerBgUrl"
|
||||
mode="widthFix"
|
||||
class="bg"
|
||||
@click="bannerClickHandle"
|
||||
/>
|
||||
/> -->
|
||||
<u-swiper
|
||||
:list="userCenterCarousel"
|
||||
keyName="image"
|
||||
@click="handleSwiper"
|
||||
></u-swiper>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -264,6 +269,8 @@ export default {
|
||||
mixins: [pageListenMixins],
|
||||
data() {
|
||||
return {
|
||||
userCenterCarousel: [],
|
||||
userCenterCarouselShow: 0,
|
||||
statusBarHeight: uni.getSystemInfoSync().statusBarHeight,
|
||||
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||
isWeixin: false,
|
||||
@@ -372,6 +379,10 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['updateAuthorizationPage']),
|
||||
handleSwiper(e) {
|
||||
const url = this.userCenterCarousel[e].url
|
||||
this.linkTo(url)
|
||||
},
|
||||
goRoomLogs() {
|
||||
uni.navigateTo({
|
||||
url: '/pkg_common/views/roomLogs'
|
||||
@@ -447,6 +458,8 @@ export default {
|
||||
getUserCenterBanner().then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.userCenterCarousel = data.userCenterCarousel || []
|
||||
this.userCenterCarouselShow = data.userCenterCarouselShow
|
||||
if (data.userCenterBanner) {
|
||||
this.bannerBgUrl = data.userCenterBanner
|
||||
this.userCenterBannerUrl = data.userCenterBannerUrl || ''
|
||||
|
||||
@@ -229,7 +229,8 @@ export default {
|
||||
'qrcode': '',
|
||||
'tips': '',
|
||||
'type': ''
|
||||
}
|
||||
},
|
||||
loading: false
|
||||
}
|
||||
},
|
||||
onShow() {
|
||||
@@ -330,6 +331,9 @@ export default {
|
||||
})
|
||||
},
|
||||
submit() {
|
||||
if(this.loading) {
|
||||
return
|
||||
}
|
||||
if (!this.innApplyInfo.logo) {
|
||||
this.$dialog.error('请上传店铺LOGO')
|
||||
return
|
||||
@@ -372,6 +376,7 @@ export default {
|
||||
if (param.coverType === 2) {
|
||||
param.cover = param.coverVideo
|
||||
}
|
||||
this.loading = true
|
||||
uni.showLoading()
|
||||
postHotelInfoEdit(param).then((res) => {
|
||||
uni.hideLoading()
|
||||
@@ -380,11 +385,13 @@ export default {
|
||||
content: '修改成功!',
|
||||
showCancel: false,
|
||||
success: () => {
|
||||
this.loading = false
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
}).catch((err) => {
|
||||
uni.hideLoading()
|
||||
this.loading = false
|
||||
uni.showToast({
|
||||
title: err.msg + '',
|
||||
icon: 'none',
|
||||
|
||||
+40
-11
@@ -13,6 +13,7 @@
|
||||
<view class="msg" v-if="item.msg_type===1">
|
||||
<image class="img" :src="item.msg_content" @click="preview(item.msg_content)"></image>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -23,13 +24,31 @@
|
||||
<view class="msg" v-if="item.msg_type===1">
|
||||
<image class="img" :src="item.msg_content" @click="preview(item.msg_content)"></image>
|
||||
</view>
|
||||
<view class="msg v12-d-flex" style="box-sizing: content-box" v-if="item.msg_type===2">
|
||||
<view class="goods-logo">
|
||||
<image class="img v12-radius-8" :src="params.cover"></image>
|
||||
</view>
|
||||
<view class="conent v12-ml-3 v12-justify-between v12-flex-column">
|
||||
<view class="">
|
||||
<view class="goodsName one-t v12-font-26">
|
||||
{{ params.goodsName }}
|
||||
</view>
|
||||
<view class="goodsSku v12-secondary-dark-text v12-font-22 v12-font-weight-400 one-t">
|
||||
{{ params.skuStr }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="price v12-primary-text v12-font-24">
|
||||
¥{{ params.price }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<image class="cover" :src="item.header || webUrl+'/20221114155314348118.png'"/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="footer flex jc-between ai-end">
|
||||
<view class="footer flex jc-between ai-end v12-align-center">
|
||||
<image :src="webUrl+'/20221014095236624035.png'" @click="getUploadToken"></image>
|
||||
<view class="input-box">
|
||||
<textarea
|
||||
@@ -43,7 +62,7 @@
|
||||
@confirm="userSend"
|
||||
/>
|
||||
</view>
|
||||
<button @click="userSend">发送</button>
|
||||
<button @click="userSend" class="v12-primary">发送</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -67,12 +86,14 @@ export default {
|
||||
|
||||
roomId: null, //房间ID
|
||||
content: "", //消息内容
|
||||
list: [], //消息列表
|
||||
list: [], //消息列表,
|
||||
params: {}
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
this.storeId = options.id;
|
||||
this.merName = options.name;
|
||||
this.params = options.params && JSON.parse(options.params) || {}
|
||||
if (this.merName!="undefined" && this.merName!="null") {
|
||||
uni.setNavigationBarTitle({
|
||||
title: this.merName
|
||||
@@ -165,6 +186,11 @@ export default {
|
||||
console.log('WebSocket连接已打开!', res);
|
||||
this.socketOpen = true;
|
||||
this.createRoom();
|
||||
if(Object.values(this.params).length > 0) {
|
||||
this.content = JSON.stringify(this.params)
|
||||
// this.list.push(this.params)
|
||||
this.userSend(2)
|
||||
}
|
||||
});
|
||||
|
||||
uni.onSocketError(err => {
|
||||
@@ -185,7 +211,7 @@ export default {
|
||||
this.content = event.detail.value;
|
||||
},
|
||||
|
||||
userSend() {
|
||||
userSend(msg_type) {
|
||||
if (this.content.length === 0) return;
|
||||
|
||||
let param = {
|
||||
@@ -195,7 +221,7 @@ export default {
|
||||
username: this.userInfo.nickname,
|
||||
header: this.userInfo.avatar,
|
||||
room_id: this.roomId,
|
||||
msg_type: 0,
|
||||
msg_type: msg_type === 2 ? msg_type : 0,
|
||||
content: this.content,
|
||||
token: this.token
|
||||
}
|
||||
@@ -204,6 +230,7 @@ export default {
|
||||
},
|
||||
|
||||
createRoom() {
|
||||
|
||||
let param = {
|
||||
type: "join",
|
||||
user_type: 0,
|
||||
@@ -265,6 +292,9 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
.goodsName,.goodsSku{
|
||||
max-width: 400rpx;
|
||||
}
|
||||
.common-room {
|
||||
min-height: 100vh;
|
||||
background: #F5F5F5;
|
||||
@@ -314,8 +344,8 @@ export default {
|
||||
word-wrap: break-word;
|
||||
|
||||
.img {
|
||||
max-width: 214rpx;
|
||||
max-height: 214rpx;
|
||||
max-width: 140rpx;
|
||||
max-height: 140rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
@@ -334,9 +364,9 @@ export default {
|
||||
bottom: 0;
|
||||
width: 100vw;
|
||||
padding: 30rpx 32rpx 28rpx;
|
||||
border-radius: 24rpx 24rpx 0 0;
|
||||
border-radius: 40rpx 40rpx 0rpx 0rpx;
|
||||
background: #FFFFFF;
|
||||
|
||||
height: 160rpx;
|
||||
image {
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
@@ -359,9 +389,8 @@ export default {
|
||||
|
||||
button {
|
||||
width: 120rpx;
|
||||
height: 64rpx;
|
||||
margin: 0;
|
||||
border-radius: 32rpx;
|
||||
border-radius: 100rpx;
|
||||
background: #FD574B;
|
||||
font-size: 28rpx;
|
||||
color: #FFFFFF;
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
placeholder="请输入关键词县名~"
|
||||
placeholder-style="color:#949494"
|
||||
class="inp"
|
||||
@confirm="getListReq"
|
||||
@confirm="handlerSearch"
|
||||
>
|
||||
<view class="btn" @click="getListReq">
|
||||
<view class="btn" @click="handlerSearch">
|
||||
搜索
|
||||
<image
|
||||
:src="webUrl + '/home/icon-search4.png'"
|
||||
@@ -47,6 +47,7 @@
|
||||
</view>
|
||||
<view
|
||||
class="toggle-wrap"
|
||||
v-if="list.length > 6"
|
||||
@click="toggleStatusHandle"
|
||||
>
|
||||
<view v-if="!toggleStatus">
|
||||
@@ -75,7 +76,9 @@
|
||||
>
|
||||
<view class="name">
|
||||
<view class="txt">
|
||||
{{ item.provinceName }}
|
||||
<text class="txt-inner">
|
||||
{{ item.provinceName }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="item.intro" class="desc">
|
||||
@@ -153,6 +156,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<image
|
||||
v-if="!searchEvent"
|
||||
:src="webUrl + '/home/no-data-bg.png'"
|
||||
mode="widthFix"
|
||||
class="loadend"
|
||||
@@ -160,7 +164,7 @@
|
||||
</view>
|
||||
<image
|
||||
v-if="list.length === 0"
|
||||
:src="webUrl + '/20231023131208675588.png'"
|
||||
:src="webUrl + '/orderIcon/nodata.png'"
|
||||
class="img-nodata"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
@@ -198,7 +202,8 @@ export default {
|
||||
toggleStatus: false,
|
||||
isLoad: false,
|
||||
list: [],
|
||||
pageKeyId: Object.freeze('countyFamousIndex')
|
||||
pageKeyId: Object.freeze('countyFamousIndex'),
|
||||
searchEvent: false
|
||||
}
|
||||
},
|
||||
computed: mapGetters(['userInfo', 'isLogin']),
|
||||
@@ -226,6 +231,14 @@ export default {
|
||||
this.init()
|
||||
},
|
||||
methods: {
|
||||
handlerSearch() {
|
||||
if(this.keyword) {
|
||||
this.searchEvent = true
|
||||
} else {
|
||||
this.searchEvent = false
|
||||
}
|
||||
this.getListReq()
|
||||
},
|
||||
init() {
|
||||
// 分享数据
|
||||
famousShareImage().then(res => {
|
||||
@@ -296,7 +309,7 @@ export default {
|
||||
.county-index {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
background-color: #fff;
|
||||
background-color: #f0f0f0;
|
||||
.search-wrap {
|
||||
padding: 20rpx 50rpx;
|
||||
background-color: #fff;
|
||||
@@ -409,12 +422,18 @@ export default {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
width: 100%;
|
||||
height: 6rpx;
|
||||
border-radius: 6rpx;
|
||||
content: " ";
|
||||
background: linear-gradient(90deg, #C52733 0%, rgba(202,56,67,0.92) 51%, rgba(255,255,255,0) 100%);
|
||||
}
|
||||
.txt-inner {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
.desc {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<view class="county-index">
|
||||
<view class="county-index v12-grey">
|
||||
<view v-if="isLoad">
|
||||
<view class="top-img" @click="gotoQianxianShop">
|
||||
<view class="top-img v12-white" @click="gotoQianxianShop">
|
||||
<image
|
||||
:src="countyFamous.cover"
|
||||
class="img"
|
||||
@@ -10,7 +10,7 @@
|
||||
<view class="info-wrap">
|
||||
<view class="name">
|
||||
{{ countyFamous.countyName }}
|
||||
<view v-if="countyFamous.content" class="content">
|
||||
<view v-if="countyFamous.content" class="content one-t">
|
||||
{{ countyFamous.content }}
|
||||
</view>
|
||||
</view>
|
||||
@@ -140,11 +140,12 @@ export default {
|
||||
.county-index {
|
||||
position: relative;
|
||||
min-height: 100vh;
|
||||
background-color: #fff;
|
||||
background-color: #f0f0f0;
|
||||
.top-img {
|
||||
position: relative;
|
||||
z-index: 5;
|
||||
padding: 21rpx;
|
||||
background-color: #fff;
|
||||
.img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
@@ -163,6 +164,7 @@ export default {
|
||||
margin: 0 0 0 8rpx;
|
||||
font-size: 24rpx;
|
||||
color: #aaa;
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
.intro {
|
||||
@@ -175,7 +177,6 @@ export default {
|
||||
}
|
||||
}
|
||||
.list-wrap {
|
||||
background-color: #F0F0F0;
|
||||
.loadend {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,19 @@
|
||||
<template>
|
||||
<view class="list-page">
|
||||
<view class="v12-mb-3">
|
||||
<u-search
|
||||
placeholder="请输入关键词查询"
|
||||
v-model="keyword"
|
||||
shape="round"
|
||||
:show-action="false"
|
||||
height="72rpx"
|
||||
@search="handleSearch"
|
||||
bg-color="#fff">
|
||||
</u-search>
|
||||
</view>
|
||||
<view v-if="isLoad" class="file-list">
|
||||
<view
|
||||
v-for="(file, fileIndex) in list"
|
||||
v-for="(file, fileIndex) in currentList"
|
||||
:key="fileIndex"
|
||||
class="file-item"
|
||||
@click="fileItemClick(file)"
|
||||
@@ -15,18 +26,17 @@
|
||||
class="icon"
|
||||
/>
|
||||
</view>
|
||||
<image
|
||||
:src="webUrl + '/home/no-data-bg.png'"
|
||||
mode="widthFix"
|
||||
class="loadend"
|
||||
/>
|
||||
<view v-if="currentList.length === 0" class="no-data-txt">
|
||||
暂无数据~
|
||||
</view>
|
||||
</view>
|
||||
<goo-skeleton v-else />
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import {
|
||||
getCountyFamousInvestmentFile
|
||||
getCountyFamousInvestmentFile,
|
||||
getCountyFamousIndustryProjectFile
|
||||
} from '@/api/qianxian'
|
||||
import { pageListenMixins } from '@/mixins/pageListenMixins'
|
||||
export default {
|
||||
@@ -37,24 +47,48 @@ export default {
|
||||
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||
isLoad: false,
|
||||
pageKeyId: '',
|
||||
list: []
|
||||
list: [],
|
||||
keyword: '',
|
||||
currentList: []
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
const id = options.id
|
||||
this.getListReq(id)
|
||||
const type = options.type || 'investment'
|
||||
const title = options.title || ''
|
||||
if (title) {
|
||||
uni.setNavigationBarTitle({ title })
|
||||
}
|
||||
this.getListReq(id, type)
|
||||
},
|
||||
methods: {
|
||||
getListReq(id) {
|
||||
getCountyFamousInvestmentFile({
|
||||
countyFamousDataId: id,
|
||||
page: 1,
|
||||
limit: 9999
|
||||
}).then(res => {
|
||||
handleSearch() {
|
||||
this.currentList = this.list.filter(item => item.title.indexOf(this.keyword) > -1)
|
||||
},
|
||||
getListReq(id, type) {
|
||||
let reqFn = null
|
||||
let params = {}
|
||||
if (type === 'investment') {
|
||||
reqFn = getCountyFamousInvestmentFile
|
||||
params = {
|
||||
countyFamousDataId: id,
|
||||
page: 1,
|
||||
limit: 9999
|
||||
}
|
||||
} else {
|
||||
reqFn = getCountyFamousIndustryProjectFile
|
||||
params = {
|
||||
industryProjectId: id,
|
||||
page: 1,
|
||||
limit: 9999
|
||||
}
|
||||
}
|
||||
reqFn(params).then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.isLoad = true
|
||||
this.list = data.records || []
|
||||
this.currentList = [...this.list]
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -109,5 +143,11 @@ export default {
|
||||
.loadend {
|
||||
width: 100%;
|
||||
}
|
||||
.no-data-txt {
|
||||
text-align: center;
|
||||
line-height: 200rpx;
|
||||
color: #999;
|
||||
font-size: 36rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -44,8 +44,8 @@
|
||||
class="city-section flex jc-end ai-center"
|
||||
>
|
||||
<image
|
||||
:src="webUrl + '/20210807215539157727.png'"
|
||||
style="width: 22rpx;height: 22rpx;margin-right: 8rpx;"
|
||||
:src="webUrl + '/page/qianxian/icon-09.png'"
|
||||
style="width: 28rpx;height: 28rpx;margin-right: 8rpx;"
|
||||
/>
|
||||
<text class="one-t" style="font-size: 24rpx;color: #fff;">{{ inn.cityName }}</text>
|
||||
</view>
|
||||
@@ -57,7 +57,7 @@
|
||||
<image :src="webUrl + '/20230609145651814148.png'" v-else/>
|
||||
</view>
|
||||
<view class="a3 flex jc-between ai-end" style="width: 100%">
|
||||
<view class="inn-owner" style="flex-grow: 1;">{{ inn.name }}</view>
|
||||
<view class="inn-owner v12-font-36 v12-dark-text one-t v12-font-bold" style="flex-grow: 1;width: 80rpx">{{ inn.name }}</view>
|
||||
<view class="flex ai-center zan-favorite-wrap">
|
||||
<view class="zan-box flex flex-0 ai-end" @click="zanInn">
|
||||
<template v-if="isLike">
|
||||
@@ -240,7 +240,7 @@
|
||||
<view class="title">
|
||||
图片
|
||||
</view>
|
||||
<view class="pic-list">
|
||||
<view class="pic-list v12-d-grid-columns-2">
|
||||
<view
|
||||
v-for="(item, index) in inn.countyImages"
|
||||
:key="index"
|
||||
@@ -360,6 +360,7 @@
|
||||
<image
|
||||
:src="item.image"
|
||||
class="img"
|
||||
@click="gotoInvestment(item.title, 'project', item.id)"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
@@ -388,7 +389,7 @@
|
||||
{{ tab.name }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="file-wrap">
|
||||
<view class="file-wrap" :class="[{'v12-align-center': investmentFileList.length === 0}, {'v12-justify-center': investmentFileList.length === 0}]">
|
||||
<view v-if="investmentFileList.length > 0" class="file-list">
|
||||
<view class="list-cont">
|
||||
<view
|
||||
@@ -412,11 +413,77 @@
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="investmentFileList.length > 0" class="more-btn-wrap">
|
||||
<view class="more-btn" @click="gotoInvestment">
|
||||
<view class="more-btn" @click="gotoInvestment('', 'investment')">
|
||||
更多政策
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="industryTabIndex === 2">
|
||||
<view class="card-wrap">
|
||||
<image
|
||||
:src="webUrl + '/page/qianxian/card-bg3.png'"
|
||||
class="bg bg3"
|
||||
/>
|
||||
<view class="card-cont">
|
||||
<view class="tab-wrap">
|
||||
<view
|
||||
v-for="(tab, tabIndex) in industryTab"
|
||||
:key="tabIndex"
|
||||
:class="industryTabIndex === tabIndex ? 'active' : ''"
|
||||
class="item"
|
||||
@click="industryTabItemClick(tabIndex)"
|
||||
>
|
||||
<image
|
||||
:src="webUrl + tab.icon"
|
||||
class="icon"
|
||||
/>
|
||||
{{ tab.name }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="village-wrap">
|
||||
<view v-if="villageList.length > 0" class="village-list">
|
||||
<view
|
||||
v-for="(village, villageIndex) in villageList"
|
||||
:key="villageIndex"
|
||||
class="village-item v12-white"
|
||||
@click="villageItemClick(village)"
|
||||
>
|
||||
<view class="img-wrap">
|
||||
<image
|
||||
:src="village.cover + (village.coverType === 2 ? '?vframe/jpg/offset/1' : '')"
|
||||
class="img"
|
||||
/>
|
||||
<view class="location">
|
||||
<image
|
||||
:src="webUrl + '/page/qianxian/icon-08.png'"
|
||||
class="icon"
|
||||
/>
|
||||
<view class="addr one-t">
|
||||
{{ village.address }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="info">
|
||||
<view class="intro more-t">
|
||||
{{ village.intro }}
|
||||
</view>
|
||||
<view class="name-wrap">
|
||||
<image
|
||||
:src="village.logo"
|
||||
class="logo"
|
||||
/>
|
||||
<view class="name one-t">
|
||||
{{ village.name }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="no-data">暂无村屋出租</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -458,7 +525,8 @@ import {
|
||||
postCountyFamousNewsView,
|
||||
getCountyFamousIndustry,
|
||||
getCountyFamousIndustryProject,
|
||||
getCountyFamousInvestmentFile
|
||||
getCountyFamousInvestmentFile,
|
||||
getCountyFamousVillage
|
||||
} from '@/api/qianxian'
|
||||
import {formatDateTime} from '@/utils'
|
||||
import {getUrlParam} from '@/utils/common.js'
|
||||
@@ -518,9 +586,12 @@ export default {
|
||||
industryProjectList: [],
|
||||
// 招商政策文件列表
|
||||
investmentFileList: [],
|
||||
// 村屋列表
|
||||
villageList: [],
|
||||
industryTab: [
|
||||
{ name: '产业项目', icon: '/page/qianxian/icon-04.png' },
|
||||
{ name: '招商政策', icon: '/page/qianxian/icon-03.png' }
|
||||
{ name: '招商政策', icon: '/page/qianxian/icon-03.png' },
|
||||
{ name: '村屋出租', icon: '/page/qianxian/icon-07.png' }
|
||||
],
|
||||
industryTabIndex: 0
|
||||
}
|
||||
@@ -581,6 +652,16 @@ export default {
|
||||
this.investmentFileList = data.records || []
|
||||
}
|
||||
})
|
||||
getCountyFamousVillage({
|
||||
countyFamousDataId: this.id,
|
||||
page: 1,
|
||||
limit: 9999
|
||||
}).then(res => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.villageList = data.records || []
|
||||
}
|
||||
})
|
||||
},
|
||||
getShopDetailReq() {
|
||||
const _this = this
|
||||
@@ -625,7 +706,7 @@ export default {
|
||||
}).then(res => {
|
||||
const { data } = res
|
||||
_this.loading = false
|
||||
_this.infoArray.push.apply(_this.infoArray, data.records.map((info) => {
|
||||
_this.infoArray.push.apply(_this.infoArray, _this.toTop(data.records).map((info) => {
|
||||
var pt = info.createTime.replace(/-/g, "/")
|
||||
info.year = formatDateTime(pt, 'yyyy')
|
||||
info.monthDay = formatDateTime(pt, 'MM/dd')
|
||||
@@ -633,12 +714,18 @@ export default {
|
||||
info.showMore = false
|
||||
return info
|
||||
}))
|
||||
// console.log(this.toTop(_this.infoArray));
|
||||
}).finally(() => {
|
||||
_this.loading = false
|
||||
_this.isLoadInfoListSuccess = true
|
||||
uni.stopPullDownRefresh()
|
||||
})
|
||||
},
|
||||
toTop(arr) {
|
||||
return arr.sort((a, b) => {
|
||||
return b.isTop - a.isTop
|
||||
})
|
||||
},
|
||||
// 攻略
|
||||
getGuideReq() {
|
||||
const _this = this
|
||||
@@ -863,8 +950,11 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
gotoInvestment() {
|
||||
uni.navigateTo({ url: `/pkg_product/views/famousQianxianInvestment?id=${this.id}` })
|
||||
gotoInvestment(title = '', type = 'investment', id = '') {
|
||||
uni.navigateTo({ url: `/pkg_product/views/famousQianxianInvestment?id=${id || this.id}&title=${title}&type=${type}` })
|
||||
},
|
||||
villageItemClick(item) {
|
||||
uni.navigateTo({ url: `/pkg_product/views/famousQianxianVillageShop?id=${item.id}` })
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1275,12 +1365,12 @@ export default {
|
||||
}
|
||||
}
|
||||
.pic-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
// display: flex;
|
||||
// flex-wrap: wrap;
|
||||
width: 100%;
|
||||
padding: 30rpx 0 0 0;
|
||||
.item {
|
||||
width: calc(50% - 10rpx);
|
||||
// width: calc(50% - 10rpx);
|
||||
margin: 0 20rpx 20rpx 0;
|
||||
.img {
|
||||
display: block;
|
||||
@@ -1330,12 +1420,15 @@ export default {
|
||||
z-index: 2;
|
||||
display: block;
|
||||
width: 750rpx;
|
||||
height: 530rpx;
|
||||
height: 518rpx;
|
||||
}
|
||||
.bg3 {
|
||||
height: 1159rpx;
|
||||
}
|
||||
.card-cont {
|
||||
position: absolute;
|
||||
z-index: 5;
|
||||
top: 30rpx;
|
||||
top: 20rpx;
|
||||
left: 30rpx;
|
||||
right: 30rpx;
|
||||
.tab-wrap {
|
||||
@@ -1417,6 +1510,90 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.village-wrap {
|
||||
height: 980rpx;
|
||||
padding: 16rpx 0 0 0;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.village-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 660rpx;
|
||||
margin: 0 auto;
|
||||
.village-item {
|
||||
width: 320rpx;
|
||||
height: 480rpx;
|
||||
margin: 0 20rpx 20rpx 0;
|
||||
border-radius: 16rpx;
|
||||
background-color: #f0f0f0;
|
||||
&:nth-child(2n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
.img-wrap {
|
||||
position: relative;
|
||||
.img {
|
||||
display: block;
|
||||
width: 320rpx;
|
||||
height: 320rpx;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
.location {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 60rpx;
|
||||
padding: 0 20rpx;
|
||||
border-radius: 0 0 16rpx 16rpx;
|
||||
font-size: 28rpx;
|
||||
line-height: 36rpx;
|
||||
color: #fff;
|
||||
background: linear-gradient(180deg, rgba(0,0,0,0) 0%, #000000 100%);
|
||||
.icon {
|
||||
display: block;
|
||||
width: 28rpx;
|
||||
height: 28rpx;
|
||||
margin: 0 8rpx 0 0;
|
||||
}
|
||||
.addr {
|
||||
width: calc(100% - 40rpx);
|
||||
}
|
||||
}
|
||||
}
|
||||
.info {
|
||||
padding: 6rpx 8rpx 16rpx 8rpx;
|
||||
.intro {
|
||||
height: 80rpx;
|
||||
line-height: 40rpx;
|
||||
font-size: 30rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
margin-top: 8rpx;
|
||||
}
|
||||
.name-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.logo {
|
||||
display: block;
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
margin: 0 8rpx 0 0;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.name {
|
||||
width: calc(100% - 60rpx);
|
||||
padding: 10rpx 0 0 0;
|
||||
font-size: 28rpx;
|
||||
line-height: 48rpx;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.project-wrap {
|
||||
|
||||
@@ -8,13 +8,17 @@
|
||||
transparent="auto"
|
||||
color='#ffffff'
|
||||
/>
|
||||
<view v-if="isLoad">
|
||||
<image
|
||||
:src="templateProperties.page1Image"
|
||||
class="top-img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<view class="page-wrap">
|
||||
<view v-if="isLoad" class="v12-font-0">
|
||||
<view
|
||||
v-for="(groupItem, groupIndex) in groupList"
|
||||
:key="groupIndex"
|
||||
class="page-wrap"
|
||||
>
|
||||
<image
|
||||
:src="groupItem.topImage"
|
||||
class="top-img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<view class="page-2">
|
||||
<swiper
|
||||
class="swiper"
|
||||
@@ -23,52 +27,7 @@
|
||||
:interval="5000"
|
||||
>
|
||||
<swiper-item
|
||||
v-for="(swiperItem, swiperIndex) in templateProperties.page2Images"
|
||||
:key="swiperIndex"
|
||||
>
|
||||
<image
|
||||
:src="swiperItem"
|
||||
mode="scaleToFill"
|
||||
class="swiper-img"
|
||||
/>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 第三页 -->
|
||||
<view class="page-wrap">
|
||||
<view class="page-5">
|
||||
<image
|
||||
v-for="(item, index) in templateProperties.page3Links"
|
||||
:key="index"
|
||||
:src="item.image"
|
||||
class="shop-img"
|
||||
mode="widthFix"
|
||||
@click="linkToShop(item)"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 第四页 -->
|
||||
<view class="page-wrap">
|
||||
<view class="page-4">
|
||||
<image
|
||||
:src="templateProperties.page4Image"
|
||||
class="section-bg"
|
||||
mode="widthFix"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 第五页 -->
|
||||
<view class="page-wrap">
|
||||
<view class="page-2">
|
||||
<swiper
|
||||
class="swiper"
|
||||
circular
|
||||
autoplay
|
||||
:interval="5000"
|
||||
>
|
||||
<swiper-item
|
||||
v-for="(swiperItem, swiperIndex) in templateProperties.page5Images"
|
||||
v-for="(swiperItem, swiperIndex) in groupItem.images"
|
||||
:key="swiperIndex"
|
||||
>
|
||||
<image
|
||||
@@ -81,7 +40,7 @@
|
||||
</view>
|
||||
<view class="page-5">
|
||||
<image
|
||||
v-for="(item, index) in templateProperties.page5Links"
|
||||
v-for="(item, index) in groupItem.links"
|
||||
:key="index"
|
||||
:src="item.image"
|
||||
class="shop-img"
|
||||
@@ -106,14 +65,7 @@ export default {
|
||||
return {
|
||||
isLoad: false,
|
||||
pageKeyId: '',
|
||||
templateProperties: {
|
||||
page1Image: '',
|
||||
page2Images: [],
|
||||
page3Links: [],
|
||||
page4Image: '',
|
||||
page5Images: '',
|
||||
page5Links: []
|
||||
}
|
||||
groupList: []
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
@@ -128,7 +80,7 @@ export default {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
this.isLoad = true
|
||||
this.templateProperties = data || {}
|
||||
this.groupList = data.group || []
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -150,32 +102,20 @@ export default {
|
||||
}
|
||||
.page-wrap {
|
||||
position: relative;
|
||||
.page-2 {
|
||||
font-size: 0;
|
||||
.swiper {
|
||||
width: 100%;
|
||||
height: 450rpx;
|
||||
.swiper {
|
||||
.swiper-img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.swiper-img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.page-4 {
|
||||
.section-bg {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
.page-5 {
|
||||
.shop-img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
.shop-img {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 300rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,653 @@
|
||||
<template>
|
||||
<view class="container">
|
||||
<hx-navbar
|
||||
:fixed="true"
|
||||
:background-color="[[13,197,197],[13,197,197]]"
|
||||
:pageScroll.sync="scrollData"
|
||||
statusBarFontColor="#ffffff"
|
||||
barPlaceholder="hidden"
|
||||
transparent="auto"
|
||||
color='#ffffff'
|
||||
/>
|
||||
<view v-if="isLoad">
|
||||
<view class="cover-box">
|
||||
<image
|
||||
v-if="inn.coverType === 1"
|
||||
:src="inn.cover"
|
||||
class="full-img"
|
||||
mode="widthFix"
|
||||
/>
|
||||
<view
|
||||
v-if="inn.coverType === 2"
|
||||
:style="{
|
||||
'width': videoStyle.width,
|
||||
'height': videoStyle.height
|
||||
}"
|
||||
class="video-box"
|
||||
>
|
||||
<video
|
||||
:src="inn.cover"
|
||||
:autoplay="true"
|
||||
:controls="true"
|
||||
:loop="false"
|
||||
object-fit="contain"
|
||||
play-btn-position="center"
|
||||
class="video"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="innInfoWrap">
|
||||
<view class="bg-color">
|
||||
<view class="box-mask flex jc-between ai-end">
|
||||
<view
|
||||
v-if="inn.cityName"
|
||||
class="city-section flex jc-end ai-center"
|
||||
>
|
||||
<image
|
||||
:src="webUrl + '/page/qianxian/icon-09.png'"
|
||||
style="width: 28rpx;height: 28rpx;margin-right: 8rpx;"
|
||||
/>
|
||||
<text class="one-t" style="font-size: 24rpx;color: #fff;">{{ inn.cityName }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="body-cont flex ai-end">
|
||||
<view class="inn-logo flex-0">
|
||||
<image :src="inn.logo" v-if="inn.logo"></image>
|
||||
<image :src="webUrl + '/20230609145651814148.png'" v-else/>
|
||||
</view>
|
||||
<view class="a3 flex" style="width: 100%">
|
||||
<view class="inn-owner one-t">{{ inn.name }}</view>
|
||||
<view class="inn-owner-desc">
|
||||
{{ inn.contact }}/联系人
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="inn-signature-wrap">
|
||||
<view class="triangle"></view>
|
||||
<view class="inn-signature">
|
||||
{{ inn.intro }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="inn.name" class="map-wrapper">
|
||||
<view class="map-cont">
|
||||
<map
|
||||
:longitude="inn.longitude"
|
||||
:latitude="inn.latitude"
|
||||
style="width: 750rpx;height: 300rpx;"
|
||||
/>
|
||||
</view>
|
||||
<view class="bg"></view>
|
||||
<view class="map-info">
|
||||
<view class="map-info-hd">
|
||||
<image :src="webUrl + '/page/qianxian/icon-location.png'" class="icon" />
|
||||
</view>
|
||||
<view class="map-info-bd more-t">
|
||||
{{ inn.address }}
|
||||
</view>
|
||||
<view class="map-info-ft flex">
|
||||
<view class="item" @click="showLocation">
|
||||
<image :src="webUrl + '/page/qianxian/icon-addr.png'" class="img" />
|
||||
<view>导航</view>
|
||||
</view>
|
||||
<view class="item" @click="call">
|
||||
<image :src="webUrl + '/page/qianxian/icon-phone.png'" class="img" />
|
||||
<view>客服</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="top-tab acea-row row-middle row-center">
|
||||
<view
|
||||
v-for="(item, index) in tabList"
|
||||
:key="index"
|
||||
class="tab"
|
||||
@click="changeTab(item.value)"
|
||||
>
|
||||
<view
|
||||
:class="activeIndex === index ? 'active' : ''"
|
||||
class="tab-item"
|
||||
>
|
||||
{{ item.text }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<!-- 村屋详情 -->
|
||||
<view
|
||||
v-if="activeIndex === 0"
|
||||
class="info-section"
|
||||
>
|
||||
<view v-if="inn.images" class="pic-wrap">
|
||||
<view
|
||||
v-for="(item, index) in inn.images"
|
||||
:key="index"
|
||||
class="pic-item"
|
||||
@click="showPic(index)"
|
||||
>
|
||||
<image :src="item" class="img" />
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="tab-no-data">暂无图片~</view>
|
||||
</view>
|
||||
<!-- 村屋介绍 -->
|
||||
<view
|
||||
v-if="activeIndex === 1"
|
||||
class="info-section"
|
||||
>
|
||||
<view class="content-html-wrap">
|
||||
<rich-text :nodes="inn.content" />
|
||||
</view>
|
||||
</view>
|
||||
<!-- 村屋资讯 -->
|
||||
<view
|
||||
v-if="activeIndex === 2"
|
||||
class="info-section"
|
||||
>
|
||||
<view v-if="isLoadInfoListSuccess">
|
||||
<view v-if="infoArray.length > 0" class="info-wrapper">
|
||||
<view class="info-list">
|
||||
<view
|
||||
v-for="(item, index) in infoArray"
|
||||
:key="index"
|
||||
class="info-item"
|
||||
>
|
||||
<view
|
||||
:class="item.isTop === 1 ? 'info-item-top' : ''"
|
||||
:style="{
|
||||
'background-image': item.isTop ? ('url(' + webUrl + '/page/hotel/info-top-bg.png)') : 'none'
|
||||
}"
|
||||
class="info-item-header"
|
||||
>
|
||||
<view class="name">
|
||||
{{ item.title }}
|
||||
</view>
|
||||
<view class="intro">
|
||||
{{ item.content }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="info-item-body">
|
||||
<view v-if="item.type === 2" class="video">
|
||||
<video
|
||||
:src="item.video"
|
||||
:poster="item.video + '?vframe/jpg/offset/1'"
|
||||
controls
|
||||
play-btn-position="center"
|
||||
class="video-item"
|
||||
/>
|
||||
</view>
|
||||
<view v-else>
|
||||
<img-box
|
||||
:imgList="item.images"
|
||||
:num="item.images.length"
|
||||
:img-radius="10"
|
||||
style="width: 100%;"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="tab-no-data">暂无资讯~</view>
|
||||
</view>
|
||||
<goo-skeleton v-else />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<goo-skeleton v-else />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getCountyFamousVillageDetail,
|
||||
getCountyFamousVillageNews
|
||||
} from '@/api/qianxian'
|
||||
import imgBox from '@/components/imageTypeSet/imagebox.vue'
|
||||
import { pageListenMixins } from '@/mixins/pageListenMixins'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
imgBox
|
||||
},
|
||||
mixins: [pageListenMixins],
|
||||
data() {
|
||||
return {
|
||||
webUrl: this.$VUE_APP_RESOURCES_URL,
|
||||
isLoad: false,
|
||||
activeIndex: 0,
|
||||
loading: false,
|
||||
scrollData: {},
|
||||
inn: {
|
||||
cityName: '',
|
||||
pics: [],
|
||||
desc: '',
|
||||
latitude: '',
|
||||
longitude: ''
|
||||
},
|
||||
id: null,
|
||||
videoStyle: {
|
||||
width: '750rpx',
|
||||
height: '500rpx'
|
||||
},
|
||||
tabList: [
|
||||
{ text: '村屋详情', value: 0, isShow: true },
|
||||
{ text: '村屋介绍', value: 1, isShow: true },
|
||||
{ text: '村屋资讯', value: 2, isShow: true }
|
||||
],
|
||||
// 资讯
|
||||
infoArray: [],
|
||||
isLoadInfoListSuccess: false,
|
||||
pageKeyId: ''
|
||||
}
|
||||
},
|
||||
onPageScroll(e) {
|
||||
this.scrollData = e
|
||||
},
|
||||
onLoad(options) {
|
||||
const id = options.id || ''
|
||||
this.id = id
|
||||
this.getShopDetailReq()
|
||||
this.getInfoReq()
|
||||
},
|
||||
methods: {
|
||||
getShopDetailReq() {
|
||||
const _this = this
|
||||
getCountyFamousVillageDetail(_this.id).then((res) => {
|
||||
const { success, data } = res
|
||||
if (success) {
|
||||
_this.inn = data
|
||||
_this.inn.latitude = _this.inn.latitude > 0 ? _this.inn.latitude : 24.993587
|
||||
_this.inn.longitude = _this.inn.longitude > 0 ? _this.inn.longitude : 102.779656
|
||||
// coverType: 1-图片,2-视频
|
||||
if (data.coverType === 2) {
|
||||
uni.getSystemInfo({
|
||||
success: info => {
|
||||
const screenWidth = info.windowWidth
|
||||
_this.videoStyle.width = screenWidth + 'px'
|
||||
_this.videoStyle.height = screenWidth * 500 / 750 + 'px'
|
||||
}
|
||||
})
|
||||
}
|
||||
_this.isLoad = true
|
||||
}
|
||||
}).finally(() => {
|
||||
uni.stopPullDownRefresh()
|
||||
})
|
||||
},
|
||||
// 资讯
|
||||
getInfoReq() {
|
||||
const _this = this
|
||||
if (_this.loading) {
|
||||
return
|
||||
}
|
||||
_this.isLoadInfoListSuccess = false
|
||||
_this.loading = true
|
||||
_this.infoArray = []
|
||||
getCountyFamousVillageNews({
|
||||
page: 1,
|
||||
limit: 9999,
|
||||
countyFamousVillageId: _this.id
|
||||
}).then(res => {
|
||||
const { data } = res
|
||||
_this.loading = false
|
||||
_this.infoArray.push.apply(_this.infoArray, data.records)
|
||||
}).finally(() => {
|
||||
_this.loading = false
|
||||
_this.isLoadInfoListSuccess = true
|
||||
uni.stopPullDownRefresh()
|
||||
})
|
||||
},
|
||||
changeTab(index) {
|
||||
this.activeIndex = index
|
||||
this.loading = false
|
||||
// 刷新数据
|
||||
switch (this.activeIndex) {
|
||||
case 2:
|
||||
this.getInfoReq()
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
// 定位
|
||||
showLocation() {
|
||||
if (!this.inn.latitude || !this.inn.longitude) {
|
||||
this.$dialog.error('暂无位置信息')
|
||||
} else {
|
||||
uni.openLocation({
|
||||
latitude: this.inn.latitude,
|
||||
longitude: this.inn.longitude
|
||||
})
|
||||
}
|
||||
},
|
||||
async doneFavorite() {
|
||||
if (this.isFavorite) {
|
||||
const res = await postCountyFamousShopRemoveFavorite({ countyFamousDataId: this.id })
|
||||
if (res.success) {
|
||||
this.isFavorite = false
|
||||
this.favoriteCount = res.data.favoriteCount
|
||||
}
|
||||
} else {
|
||||
const res = await postCountyFamousShopAddFavorite({ countyFamousDataId: this.id })
|
||||
if (res.success) {
|
||||
this.isFavorite = true
|
||||
this.favoriteCount = res.data.favoriteCount
|
||||
}
|
||||
}
|
||||
},
|
||||
call() {
|
||||
if (this.inn.tel) {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: this.inn.tel
|
||||
})
|
||||
} else {
|
||||
this.$dialog.error('电话为空')
|
||||
}
|
||||
},
|
||||
showPic(index) {
|
||||
uni.previewImage({
|
||||
current: index,
|
||||
urls: this.inn.images
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import "@/assets/css/store.less";
|
||||
.my-inn-page {
|
||||
padding: 0 0 100rpx 0;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
.cover-box {
|
||||
position: relative;
|
||||
|
||||
.full-img {
|
||||
width: 750rpx;
|
||||
}
|
||||
.video {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.guarantee {
|
||||
margin-right: 16rpx;
|
||||
padding: 8rpx 16rpx;
|
||||
border-radius: 8rpx;
|
||||
background: #0DC5C5;
|
||||
color: #fff;
|
||||
font-size: 22rpx;
|
||||
line-height: 1;
|
||||
}
|
||||
.store-img {
|
||||
width: 686rpx;
|
||||
margin-bottom: 20rpx;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.container {
|
||||
position: relative;
|
||||
background: #FFFFFF;
|
||||
}
|
||||
.innInfoWrap {
|
||||
position: relative;
|
||||
margin-top: -76rpx;
|
||||
padding: 20rpx 36rpx;
|
||||
line-height: 1;
|
||||
z-index: 1;
|
||||
.bg-color {
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 1;
|
||||
height: 50%;
|
||||
background: linear-gradient(-180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 100%);
|
||||
|
||||
.box-mask {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 166rpx;
|
||||
box-sizing: border-box;
|
||||
padding: 0 32rpx 12rpx 0;
|
||||
|
||||
.city-section {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.body-cont {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
}
|
||||
.inn-logo {
|
||||
flex-shrink: 0;
|
||||
width: 56*2rpx;
|
||||
height: 56*2rpx;
|
||||
margin-right: 18rpx;
|
||||
}
|
||||
.inn-logo image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.inn-name {
|
||||
width: 280rpx;
|
||||
font-size: 32rpx;
|
||||
color: #FFFFFF;
|
||||
line-height: 48rpx;
|
||||
}
|
||||
.inn-owner {
|
||||
width: calc(100% - 240rpx);
|
||||
font-size: 36rpx;
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.inn-owner-desc {
|
||||
margin: 0 0 0 20rpx;
|
||||
color: #999;
|
||||
font-size: 24rpx;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.inn-tag-wrap {
|
||||
margin-top: 10rpx;
|
||||
}
|
||||
.inn-signature-wrap {
|
||||
position: relative;
|
||||
z-index: 5;
|
||||
padding: 0 32rpx;
|
||||
margin: 20rpx 0 0 0;
|
||||
.triangle {
|
||||
position: absolute;
|
||||
top: -20rpx;
|
||||
left: 72rpx;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border-left: 20rpx solid transparent;
|
||||
border-right: 20rpx solid transparent;
|
||||
border-bottom: 24rpx solid rgba(243,243,246,0.39);
|
||||
}
|
||||
.inn-signature {
|
||||
position: relative;
|
||||
padding: 20rpx;
|
||||
border-radius: 8rpx;
|
||||
font-size: 24rpx;
|
||||
color: #080F1A;
|
||||
background: rgba(243,243,246,0.39);
|
||||
box-shadow: 0px 6px 12px rgba(0,0,0,0.12);
|
||||
}
|
||||
.share-btn {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
bottom: -68rpx;
|
||||
.img {
|
||||
width: 212rpx;
|
||||
height: 60rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.map-wrapper {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
height: 200rpx;
|
||||
margin: 40rpx 0 0 0;
|
||||
overflow: hidden;
|
||||
.map-cont {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 2;
|
||||
width: 100%;
|
||||
opacity: 0.3;
|
||||
transform: translateY(-50rpx);
|
||||
}
|
||||
.bg {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 3;
|
||||
height: 60rpx;
|
||||
background: linear-gradient(180deg, #FFFFFF 0%, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%);
|
||||
}
|
||||
.map-info {
|
||||
position: relative;
|
||||
z-index: 5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 40rpx 10rpx 40rpx 32rpx;
|
||||
color: #333;
|
||||
font-size: 14px;
|
||||
.map-info-hd {
|
||||
.icon {
|
||||
display: block;
|
||||
width: 34rpx;
|
||||
height: 42rpx;
|
||||
}
|
||||
}
|
||||
.map-info-bd {
|
||||
flex: 1;
|
||||
padding: 0 60rpx 0 20rpx;
|
||||
line-height: 60rpx;
|
||||
}
|
||||
.map-info-ft {
|
||||
.item + .item {
|
||||
margin: 0 0 0 6rpx;
|
||||
}
|
||||
.item {
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
.img {
|
||||
display: block;
|
||||
width: 64rpx;
|
||||
height: 64rpx;
|
||||
margin: 0 0 16rpx 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.top-tab {
|
||||
padding: 40rpx 0 20rpx 0;
|
||||
.tab {
|
||||
margin: 0 20rpx;
|
||||
.tab-item {
|
||||
height: 52rpx;
|
||||
padding: 0 30rpx;
|
||||
border-radius: 26rpx 0 0 26rpx;
|
||||
font-size: 32rpx;
|
||||
line-height: 52rpx;
|
||||
font-weight: bold;
|
||||
&.active {
|
||||
color: #fff;
|
||||
background: linear-gradient(90deg, #C52733 0%, rgba(211,92,101,0.91) 54%, rgba(255,255,255,0.62) 100%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.info-section {
|
||||
position: relative;
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
.info-section {
|
||||
padding: 22rpx;
|
||||
}
|
||||
.info-section {
|
||||
.info-item + .info-item {
|
||||
margin: 22rpx 0 0 0;
|
||||
}
|
||||
.info-item {
|
||||
border-radius: 10rpx;
|
||||
background-color: #fff;
|
||||
.info-item-header {
|
||||
position: relative;
|
||||
padding: 20rpx 20rpx 0 20rpx;
|
||||
&.info-item-top {
|
||||
padding-top: 60rpx;
|
||||
background-size: 100% 80rpx;
|
||||
background-repeat: no-repeat;
|
||||
background-image: url();
|
||||
}
|
||||
.name {
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
.intro {
|
||||
margin: 10rpx 0 0 0;
|
||||
color: #666;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.info-item-body {
|
||||
padding: 0 20rpx 20rpx 20rpx;
|
||||
.video {
|
||||
padding: 20rpx 0 0 0;
|
||||
.video-item {
|
||||
width: 100%;
|
||||
height: 400rpx;
|
||||
border-radius: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.pic-wrap {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 700rpx;
|
||||
margin: 0 auto;
|
||||
.pic-item {
|
||||
width: 340rpx;
|
||||
height: 340rpx;
|
||||
margin: 0 20rpx 20rpx 0;
|
||||
&:nth-child(2n) {
|
||||
margin-right: 0;
|
||||
}
|
||||
.img {
|
||||
display: block;
|
||||
width: 340rpx;
|
||||
height: 340rpx;
|
||||
border-radius: 16rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
.content-html-wrap {
|
||||
padding: 20rpx;
|
||||
border-radius: 16rpx;
|
||||
background-color: #fff;
|
||||
}
|
||||
.tab-no-data {
|
||||
text-align: center;
|
||||
font-size: 32rpx;
|
||||
color: #999;
|
||||
line-height: 200rpx;
|
||||
}
|
||||
</style>
|
||||
@@ -328,6 +328,9 @@ export default {
|
||||
case 2:
|
||||
countList = this.videoList
|
||||
break
|
||||
case 3:
|
||||
countList = this.countyFamousList
|
||||
break
|
||||
}
|
||||
|
||||
countList.forEach(item => {
|
||||
@@ -393,6 +396,7 @@ export default {
|
||||
break
|
||||
case 3:
|
||||
this.countyFamousList[mark]['state'] = state
|
||||
console.log(this.countyFamousList);
|
||||
this.isAll = this.selectCount === this.countyFamousList.length
|
||||
break
|
||||
}
|
||||
@@ -452,6 +456,7 @@ export default {
|
||||
const res = await removeFavorite(ids)
|
||||
if (res.success) {
|
||||
_this.isAll = false
|
||||
_this.page = 1
|
||||
_this.fetchData()
|
||||
_this.removeAfter()
|
||||
}
|
||||
@@ -459,6 +464,11 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
computedIsManage(arr) {
|
||||
if(this.isManage && arr.length === 0) {
|
||||
this.isManage = false
|
||||
}
|
||||
},
|
||||
removeAfter() {
|
||||
switch (this.tabsIndex) {
|
||||
case 0:
|
||||
@@ -486,6 +496,7 @@ export default {
|
||||
item.state = false
|
||||
_this.productList.push(item)
|
||||
})
|
||||
_this.computedIsManage(_this.productList)
|
||||
_this.page++
|
||||
}
|
||||
},
|
||||
@@ -501,6 +512,7 @@ export default {
|
||||
item.state = false
|
||||
_this.storeList.push(item)
|
||||
})
|
||||
_this.computedIsManage(_this.storeList)
|
||||
_this.page++
|
||||
}
|
||||
},
|
||||
@@ -515,6 +527,7 @@ export default {
|
||||
item.state = false
|
||||
_this.videoList.push(item)
|
||||
})
|
||||
_this.computedIsManage(_this.videoList)
|
||||
_this.page++
|
||||
}
|
||||
},
|
||||
@@ -529,6 +542,7 @@ export default {
|
||||
item.state = false
|
||||
_this.countyFamousList.push(item)
|
||||
})
|
||||
_this.computedIsManage(_this.countyFamousList)
|
||||
_this.page++
|
||||
}
|
||||
},
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.0 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 656 B |
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 934 B |
Reference in New Issue
Block a user