Commit 35d88294 authored by 石建新(贵阳日报)'s avatar 石建新(贵阳日报)
parents c740f522 24376157
...@@ -7,18 +7,57 @@ ...@@ -7,18 +7,57 @@
:draggable="true" :draggable="true"
inactiveIcon="a-controlplatform" inactiveIcon="a-controlplatform"
> >
<view class="custom-button" @click="go('/pages/ticket/ticket')"> <!-- 助农总入口 -->
<image class="fab-icon" src="../../static/index/coupon.png"></image> <view v-if="position === '0'" class="outer-view">
<text class="fab-text">优惠券</text> <view class="custom-button" @click="go('/pages/order/order')">
<image class="fab-icon" src="../../static/index/order.png"></image>
<text class="fab-text">订单</text>
</view>
</view> </view>
<view class="custom-button" @click="go('/pages/order/order')"> <!-- 团购 -->
<image class="fab-icon" src="../../static/index/order.png"></image> <view v-if="position === '1'" class="outer-view">
<text class="fab-text">订单</text> <view class="custom-button" @click="go('/pages/ticket/ticket')">
<image class="fab-icon" src="../../static/index/coupon.png"></image>
<text class="fab-text">优惠券</text>
</view>
<view class="custom-button" @click="go('/pages/order/order')">
<image class="fab-icon" src="../../static/index/order.png"></image>
<text class="fab-text">订单</text>
</view>
</view>
<!-- 预售主页 -->
<view v-if="position === '2'" class="outer-view">
<view class="custom-button" @click="go('/pages/order/order')">
<image class="fab-icon" src="../../static/index/order.png"></image>
<text class="fab-text">订单</text>
</view>
<view class="custom-button" @click="go('/pages/assistingAgriculture/cart/cart')">
<image class="fab-icon" src="../../static/index/gwc.png"></image>
<text class="fab-text">购物车</text>
</view>
</view>
<!-- 旅居主页 -->
<view v-if="position === '3'" class="outer-view">
<view class="custom-button" @click="go('/pages/order/order')">
<image class="fab-icon" src="../../static/index/order.png"></image>
<text class="fab-text">订单</text>
</view>
</view> </view>
</wd-fab> </wd-fab>
</template> </template>
<script setup> <script setup>
const props = defineProps({
// 悬浮按钮
position: {
type: String,
default: '1',
},
cartCount: {
type: Number,
default: 0,
},
});
// 前往个人中心 // 前往个人中心
const go = (url) => { const go = (url) => {
xma.navigateTo({ xma.navigateTo({
...@@ -28,6 +67,9 @@ const go = (url) => { ...@@ -28,6 +67,9 @@ const go = (url) => {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.outer-view {
display: flex;
}
.custom-button { .custom-button {
min-width: auto; min-width: auto;
box-sizing: border-box; box-sizing: border-box;
......
...@@ -40,3 +40,11 @@ export function screeningConditions(data) { ...@@ -40,3 +40,11 @@ export function screeningConditions(data) {
data, data,
}); });
} }
// 视频
export function streamList(data) {
return request({
url: `/sgyrdd/znprod/tour/streamList`,
method: 'GET',
data,
});
}
...@@ -75,7 +75,7 @@ const back = () => { ...@@ -75,7 +75,7 @@ const back = () => {
}; };
</script> </script>
<style lang="scss"> <style lang="scss" scoped>
.searchComponent { .searchComponent {
position: sticky; position: sticky;
top: 0; top: 0;
......
...@@ -174,7 +174,10 @@ ...@@ -174,7 +174,10 @@
{ {
"path": "pages/assistingAgriculture/detail/detail", "path": "pages/assistingAgriculture/detail/detail",
"style": { "style": {
"navigationBarTitleText": "详情页" "navigationBarTitleText": "商品详情",
"navigationBarBackgroundColor": "#ffffff",
"navigationStyle": "custom",
"onReachBottomDistance": 50,
} }
}, },
{ {
...@@ -186,9 +189,7 @@ ...@@ -186,9 +189,7 @@
{ {
"path": "pages/assistingAgriculture/album/index", "path": "pages/assistingAgriculture/album/index",
"style": { "style": {
"navigationBarTitleText": "用户相册", "navigationBarTitleText": "用户相册"
"navigationBarBackgroundColor": "#ffffff",
"navigationStyle": ""
} }
}, },
{ {
...@@ -196,7 +197,7 @@ ...@@ -196,7 +197,7 @@
"style": { "style": {
"navigationBarTitleText": "购物车", "navigationBarTitleText": "购物车",
"navigationBarBackgroundColor": "#ffffff", "navigationBarBackgroundColor": "#ffffff",
"navigationStyle": "" "navigationStyle": "custom"
} }
}, },
{ {
...@@ -211,7 +212,7 @@ ...@@ -211,7 +212,7 @@
"path": "pages/assistingAgriculture/RuralTravel/RuralTravel", "path": "pages/assistingAgriculture/RuralTravel/RuralTravel",
"style": { "style": {
"navigationBarTitleText": "乡村旅居", "navigationBarTitleText": "乡村旅居",
"enablePullDownRefresh": true, "enablePullDownRefresh": true
} }
}, },
{ {
...@@ -266,4 +267,4 @@ ...@@ -266,4 +267,4 @@
"globalStyle": { "globalStyle": {
"navigationStyle": "custom" "navigationStyle": "custom"
} }
} }
\ No newline at end of file
<template> <template>
<div class="route-details"> <div class="route-details">
<Search></Search>
<scroll-view class="container" scroll-y> <scroll-view class="container" scroll-y>
<img class="back-img" src="/static/assistingAgriculture/assets/left.png" @tap="back" /> <!-- <img class="back-img" src="/static/assistingAgriculture/assets/left.png" @tap="back" /> -->
<!-- 轮播 --> <!-- 轮播 -->
<div class="banner"> <div class="banner">
<!-- --> <!-- -->
...@@ -595,6 +596,13 @@ uni-page-body { ...@@ -595,6 +596,13 @@ uni-page-body {
background-color: #eaf9f1; background-color: #eaf9f1;
} }
.route-details { .route-details {
.searchComponent {
z-index: 55;
width: 100%;
position: fixed;
top: 0;
left: 0;
}
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
......
...@@ -54,11 +54,23 @@ ...@@ -54,11 +54,23 @@
src="/static/assistingAgriculture/rural/dayTOur.png" src="/static/assistingAgriculture/rural/dayTOur.png"
style="width: 32rpx; height: 32rpx" style="width: 32rpx; height: 32rpx"
/> />
<img <video
class="spe-img" :class="{ 'no-progress-bar': !isFullScreen }"
src="/static/assistingAgriculture/rural/img5.png" :show-fullscreen-btn="true"
style="width: 306rpx; height: 204rpx" :show-play-btn="true"
/> :show-enter-play-btn="true"
class="spe-img1"
id="videoId"
:src="videoList[0].videoUrl"
@error="videoErrorCallback"
@play="play"
@fullscreenchange="handleFullscreenChange"
></video>
<!-- <img-->
<!-- class="spe-img"-->
<!-- src="/static/assistingAgriculture/rural/img5.png"-->
<!-- style="width: 306rpx; height: 204rpx"-->
<!-- />-->
</view> </view>
</view> </view>
<view class="hot-way"> <view class="hot-way">
...@@ -164,20 +176,23 @@ ...@@ -164,20 +176,23 @@
{{ tag.labelName }} {{ tag.labelName }}
</wd-tag> </wd-tag>
</view> </view>
<view class="detail-score"> <view class="all-info">
<text class="score">{{ item.score }}</text> <view class="detail-score">
<text class="num">月销{{ item.monthSoldNum }}</text> <text class="score">{{ item.score }}</text>
</view> <text class="num">月销{{ item.monthSoldNum }}</text>
<view class="venue"> </view>
<text class="place">{{ item.tripArea }}出发</text> <view class="venue">
<text class="price">{{ item.price }}</text> <text class="place">{{ item.tripArea }}出发</text>
<text class="price">{{ item.price }}</text>
</view>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view v-if="!hasMoreData" class="no-more-data">没有更多了</view>
</view> </view>
</view> </view>
<fab /> <fab position="3" />
</view> </view>
</template> </template>
...@@ -187,14 +202,15 @@ import Sort from '../../../components/assistingAgriculture/index/Sort.vue'; ...@@ -187,14 +202,15 @@ import Sort from '../../../components/assistingAgriculture/index/Sort.vue';
import DepartureDate from '../../../components/assistingAgriculture/index/DepartureDate.vue'; import DepartureDate from '../../../components/assistingAgriculture/index/DepartureDate.vue';
import ScenicSpots from '../../../components/assistingAgriculture/index/ScenicSpots.vue'; import ScenicSpots from '../../../components/assistingAgriculture/index/ScenicSpots.vue';
import Screen from '../../../components/assistingAgriculture/index/Screen.vue'; import Screen from '../../../components/assistingAgriculture/index/Screen.vue';
import { getPopularList, getProdList, getTour } from '@/api/assistingAgriculture/village'; import {
getPopularList,
getProdList,
getTour,
streamList,
} from '@/api/assistingAgriculture/village';
import { getPresaleList } from '@/api/assistingAgriculture/building'; import { getPresaleList } from '@/api/assistingAgriculture/building';
import { onMounted, ref } from 'vue'; import { onMounted, ref } from 'vue';
import fab from '../../../components/fab/fab.vue'; import fab from '../../../components/fab/fab.vue';
onMounted(async () => {
getProd();
getPopular();
});
const rotate = ref(false); const rotate = ref(false);
const rotate2 = ref(false); const rotate2 = ref(false);
const rotate3 = ref(false); const rotate3 = ref(false);
...@@ -215,7 +231,8 @@ const scenicSpotsRef = ref(null); ...@@ -215,7 +231,8 @@ const scenicSpotsRef = ref(null);
const screenRef = ref(null); const screenRef = ref(null);
const backgroundBox = ref(''); const backgroundBox = ref('');
const border = ref(''); const border = ref('');
const videoList = ref([]);
const isFullScreen = ref(false);
const locationFiltering = (index) => { const locationFiltering = (index) => {
switch (index) { switch (index) {
case 0: case 0:
...@@ -252,6 +269,12 @@ const locationFiltering = (index) => { ...@@ -252,6 +269,12 @@ const locationFiltering = (index) => {
forPeopleList.value = []; forPeopleList.value = [];
} }
}; };
const videoContext = ref(null);
onMounted(async () => {
getProd();
getPopular();
getStreamList();
});
onPullDownRefresh(() => { onPullDownRefresh(() => {
keyword.value = ''; keyword.value = '';
getProd(); getProd();
...@@ -268,6 +291,37 @@ const getPopular = () => { ...@@ -268,6 +291,37 @@ const getPopular = () => {
popularRouterData.value = res.data.records; popularRouterData.value = res.data.records;
}); });
}; };
// 查询视频列表
const getStreamList = () => {
streamList().then((res) => {
res.data.forEach((item) => {
item.videoUrl = import.meta.env.VITE_APP_IMG_URL + '/pig/' + item.videoUrl;
});
videoList.value = res.data;
console.log(videoList.value, 121);
});
};
// 播放时进入全屏
function play(index) {
const videoContext = uni.createVideoContext('videoId');
videoContext.requestFullScreen();
}
// 退出全屏时暂停
function fullscreenchange(e) {
if (!e.detail.fullScreen) {
uni.createVideoContext('videoId').pause();
}
}
function handleFullscreenChange(event) {
isFullScreen.value = !isFullScreen.value;
}
// //退出全屏时停止
// function fullscreenchange (e){
// if(!e.detail.fullScreen){
// videoContext.stop()
// }
// };
// 智能排序 // 智能排序
const sortParams = (sortMode) => { const sortParams = (sortMode) => {
sortType.value = sortMode; sortType.value = sortMode;
...@@ -285,11 +339,6 @@ const dataParams = (item, datePart) => { ...@@ -285,11 +339,6 @@ const dataParams = (item, datePart) => {
} }
}; };
// 景点 // 景点
// const placeParams = (item) => {
// console.log(item, 222);
// attractionIdList.value = item.id;
// getProd();
// };
const placeParams = (item) => { const placeParams = (item) => {
const ids = item.map((i) => i.id); const ids = item.map((i) => i.id);
const arr = ids.join(','); const arr = ids.join(',');
...@@ -318,16 +367,15 @@ const screenParams = (selectedItems, type) => { ...@@ -318,16 +367,15 @@ const screenParams = (selectedItems, type) => {
} }
}; };
// 搜索 // 搜索
// 搜索
const toSearch = () => { const toSearch = () => {
xma.navigateTo({ url: '/pages/assistingAgriculture/searchPage/searchPage?prodTypes=10' }); xma.navigateTo({ url: '/pages/assistingAgriculture/searchPage/searchPage?prodTypes=10' });
}; };
const currentPage = ref(1);
// 查询列表 // 查询列表
const getProd = (searchKeyword = '') => { const getProd = (searchKeyword = '') => {
const params = { const params = {
current: 1, current: currentPage.value,
size: 10, size: 3,
...(sortType.value && { sortType: sortType.value.sortMode }), ...(sortType.value && { sortType: sortType.value.sortMode }),
...(attractionIdList.value && ...(attractionIdList.value &&
attractionIdList.value.length > 0 && attractionIdList.value.length > 0 &&
...@@ -350,9 +398,25 @@ const getProd = (searchKeyword = '') => { ...@@ -350,9 +398,25 @@ const getProd = (searchKeyword = '') => {
item.img = import.meta.env.VITE_APP_IMG_URL + item.pic; item.img = import.meta.env.VITE_APP_IMG_URL + item.pic;
item.serveList = item.serviceList.slice(0, 3); item.serveList = item.serviceList.slice(0, 3);
}); });
cardList.value = res.data.records; if (currentPage.value === 1) {
cardList.value = res.data.records;
} else {
cardList.value = cardList.value.concat(res.data.records);
}
// 判断是否还有更多数据
if (res.data.records.length < params.size) {
hasMoreData.value = false; // 没有更多数据
}
}); });
}; };
// 页面滚动到底部触发加载更多
onReachBottom(() => {
if (hasMoreData.value) {
currentPage.value++;
getProd();
}
});
const hasMoreData = ref(true);
const resetParams = () => { const resetParams = () => {
if (sortRef.value || departureDateRef.value || scenicSpotsRef.value || screenRef.value) { if (sortRef.value || departureDateRef.value || scenicSpotsRef.value || screenRef.value) {
sortType.value = null; sortType.value = null;
...@@ -595,6 +659,10 @@ page { ...@@ -595,6 +659,10 @@ page {
font-weight: normal; font-weight: normal;
line-height: 30rpx; line-height: 30rpx;
color: #666666; color: #666666;
height: 30rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.tag .wd-tag { .tag .wd-tag {
margin-right: 10px; margin-right: 10px;
...@@ -609,10 +677,12 @@ page { ...@@ -609,10 +677,12 @@ page {
color: #0974f5; color: #0974f5;
} }
.price { .price {
position: absolute;
font-size: 28rpx; font-size: 28rpx;
font-weight: bold; font-weight: bold;
line-height: 28rpx; line-height: 28rpx;
color: #fa5151; color: #fa5151;
margin-left: 300rpx;
} }
.venue { .venue {
display: flex; display: flex;
...@@ -627,7 +697,7 @@ page { ...@@ -627,7 +697,7 @@ page {
} }
.tag { .tag {
margin-top: 10rpx; margin-top: 10rpx;
width: 400rpx; width: 600rpx;
} }
.detail-score { .detail-score {
margin-top: 30rpx; margin-top: 30rpx;
...@@ -653,4 +723,35 @@ page { ...@@ -653,4 +723,35 @@ page {
color: #ffffff; color: #ffffff;
} }
} }
.all-info {
position: absolute;
margin-top: 140rpx;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
.block {
width: 120px;
height: 120px;
background-color: #fff;
}
uni-video {
width: 300rpx;
height: 200rpx;
top: 10rpx;
left: 20rpx;
border-radius: 16rpx;
}
::v-deep .uni-video-controls {
margin: 0;
}
.no-more-data {
text-align: center;
padding: 20rpx;
color: #999;
}
</style> </style>
<template> <template>
<div class="album"> <div class="album">
<Search backgroundBox="white" title="用户相册" :showTitle="true"></Search>
<scroll-view class="content" @scrolltolower="scrolltolower" scroll-y> <scroll-view class="content" @scrolltolower="scrolltolower" scroll-y>
<!-- <div class="filter-box">
<div class="active">全部</div>
<div v-for="(v, i) in filterList" :key="i">{{ v.text }}({{ v.value }})</div>
</div> -->
<div class="card-wrap"> <div class="card-wrap">
<card :photoData="photoData" /> <card :photoData="photoData" />
</div> </div>
......
<template> <template>
<Search title="购物车" showTitle backgroundBox="#fff"></Search>
<div class="cart-wrap"> <div class="cart-wrap">
<div class="shop" v-for="(shop, i) in cartList" :key="i"> <div class="shop" v-for="(shop, i) in cartList" :key="i">
<div class="flex-align-center shop-info"> <div class="flex-align-center shop-info">
......
<template> <template>
<div class="comment-list"> <div class="comment-list">
<div class="top-bar flex-align-center"> <!-- <div class="top-bar flex-align-center">
<wd-icon name="thin-arrow-left" @tap="back"></wd-icon> <wd-icon name="thin-arrow-left" @tap="back"></wd-icon>
<wd-search @search="search" hide-cancel placeholder="点评关键词/特色" placeholder-left /> <wd-search @search="search" hide-cancel placeholder="点评关键词/特色" placeholder-left />
</div> </div> -->
<Search backgroundBox="white">
<wd-search @search="search" hide-cancel placeholder="点评关键词/特色" placeholder-left />
</Search>
<scroll-view @scrolltolower="scrolltolower" class="content" :scroll-y="true"> <scroll-view @scrolltolower="scrolltolower" class="content" :scroll-y="true">
<div class="filter-box"> <div class="filter-box">
<div class="score-sort flex-between"> <div class="score-sort flex-between">
...@@ -189,16 +192,11 @@ uni-page-body { ...@@ -189,16 +192,11 @@ uni-page-body {
background-color: #f3f3f3; background-color: #f3f3f3;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.top-bar { .wd-search {
padding: 16rpx 40rpx; width: 492rpx;
font-size: 28rpx; height: 56rpx;
background: #fff; padding: 0;
.wd-search { margin-left: 50rpx;
width: 492rpx;
height: 56rpx;
padding: 0;
margin-left: 20rpx;
}
} }
.content { .content {
height: 132rpx; height: 132rpx;
......
...@@ -326,7 +326,7 @@ page { ...@@ -326,7 +326,7 @@ page {
} }
.searchBoxs { .searchBoxs {
width: 480rpx; width: 420rpx;
height: 56rpx; height: 56rpx;
background: #f3f3f3; background: #f3f3f3;
border-radius: 28rpx 28rpx 28rpx 28rpx; border-radius: 28rpx 28rpx 28rpx 28rpx;
......
...@@ -3,12 +3,11 @@ ...@@ -3,12 +3,11 @@
<!-- 顶部搜索框--> <!-- 顶部搜索框-->
<view class="top"> <view class="top">
<view class="top"> <view class="top">
<Search <Search style="z-index: 99; width: 100%" :type="2" backgroundBox="#fff">
background="rgba(255, 255, 255, 0.8)" <view style="width: 100%; text-align: center; font-size: 36rpx; font-weight: bold">
backIcon="black" 商品详情
iconSrc="/static/assistingAgriculture/assets/blackLeft.png" </view>
placeholderText="请输入要搜索的内容" </Search>
></Search>
</view> </view>
</view> </view>
<!-- 图片--> <!-- 图片-->
...@@ -56,7 +55,7 @@ ...@@ -56,7 +55,7 @@
<view class="bottom" style="display: flex; flex-direction: row"> <view class="bottom" style="display: flex; flex-direction: row">
<view class="borderClass" @tap="toStore"> <view class="borderClass" @tap="toStore">
<img <img
src="/static/assistingAgriculture/detail/img7.png" src="/static/assistingAgriculture/detail/home.png"
style="width: 40rpx; height: 40rpx" style="width: 40rpx; height: 40rpx"
/> />
<view class="sort-text">店铺</view> <view class="sort-text">店铺</view>
...@@ -71,7 +70,7 @@ ...@@ -71,7 +70,7 @@
<view class="borderClass" @tap="toCart"> <view class="borderClass" @tap="toCart">
<wd-badge :modelValue="subscript"> <wd-badge :modelValue="subscript">
<img <img
src="/static/assistingAgriculture/detail/car.png" src="/static/assistingAgriculture/detail/carImg.png"
style="width: 40rpx; height: 40rpx" style="width: 40rpx; height: 40rpx"
/> />
</wd-badge> </wd-badge>
...@@ -97,7 +96,6 @@ ...@@ -97,7 +96,6 @@
</template> </template>
<script setup> <script setup>
import Search from '../../../components/assistingAgriculture/index/Search.vue';
import { ref } from 'vue'; import { ref } from 'vue';
import { onShow } from '@dcloudio/uni-app'; import { onShow } from '@dcloudio/uni-app';
import { import {
...@@ -237,18 +235,6 @@ function toSettle() { ...@@ -237,18 +235,6 @@ function toSettle() {
page { page {
background-color: #f3f3f3; background-color: #f3f3f3;
} }
.container {
position: relative;
left: 0rpx;
top: -45rpx;
opacity: 1;
}
.top {
width: 750rpx;
height: 128rpx;
margin-top: 40rpx;
background: #ffffff;
}
.nav { .nav {
width: 750rpx; width: 750rpx;
} }
...@@ -438,13 +424,13 @@ page { ...@@ -438,13 +424,13 @@ page {
} }
.detail-bottom { .detail-bottom {
width: 750rpx; width: 750rpx;
height: 216rpx; height: 140rpx;
border-radius: 16rpx 16px 0rpx 0rpx; border-radius: 16rpx 16px 0rpx 0rpx;
background: #ffffff; background: #ffffff;
box-shadow: 0rpx -8rpx 20rpx 0rpx rgba(0, 0, 0, 0.12); box-shadow: 0rpx -8rpx 20rpx 0rpx rgba(0, 0, 0, 0.12);
z-index: 10; z-index: 10;
position: fixed; position: fixed;
top: 88%; top: 91%;
} }
.sort { .sort {
width: 750rpx; width: 750rpx;
...@@ -470,8 +456,4 @@ page { ...@@ -470,8 +456,4 @@ page {
margin-top: -90rpx; margin-top: -90rpx;
margin-left: 400rpx; margin-left: 400rpx;
} }
::v-deep.icon {
width: 56rpx;
height: 56rpx;
}
</style> </style>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
</view> </view>
</view> </view>
<!-- 购物车悬浮按钮 --> <!-- 购物车悬浮按钮 -->
<view class="cart-floating" @tap="toCart"> <!--<view class="cart-floating" @tap="toCart">
<wd-badge :modelValue="subscript"> <wd-badge :modelValue="subscript">
<img <img
class="shop-car" class="shop-car"
...@@ -142,8 +142,8 @@ ...@@ -142,8 +142,8 @@
style="width: 40rpx; height: 40rpx" style="width: 40rpx; height: 40rpx"
/> />
</wd-badge> </wd-badge>
</view> </view>-->
<fab /> <fab position="2" />
</view> </view>
</template> </template>
......
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
</view> </view>
</view> </view>
</view> </view>
<fab /> <fab position="0" />
</view> </view>
</template> </template>
......
...@@ -128,7 +128,7 @@ ...@@ -128,7 +128,7 @@
</view> </view>
</view> </view>
<!-- 购物车悬浮按钮 --> <!-- 购物车悬浮按钮 -->
<view class="cart-floating" @tap="toCart"> <!--<view class="cart-floating" @tap="toCart">
<wd-badge :modelValue="subscript"> <wd-badge :modelValue="subscript">
<img <img
class="shop-car" class="shop-car"
...@@ -136,7 +136,8 @@ ...@@ -136,7 +136,8 @@
style="width: 40rpx; height: 40rpx" style="width: 40rpx; height: 40rpx"
/> />
</wd-badge> </wd-badge>
</view> </view>-->
<fab position="2" />
</template> </template>
<script setup> <script setup>
...@@ -150,7 +151,7 @@ import { ...@@ -150,7 +151,7 @@ import {
getStrictSelection, getStrictSelection,
} from '../../../api/assistingAgriculture/building'; } from '../../../api/assistingAgriculture/building';
import { getshoppingCartList } from '@/api/packageDetail'; import { getshoppingCartList } from '@/api/packageDetail';
import fab from '../../../components/fab/fab.vue';
const swiperList = ref([]); const swiperList = ref([]);
const current = ref(0); const current = ref(0);
// 轮播图数据 // 轮播图数据
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
></web-view> ></web-view>
<!-- <view style="height: 600rpx; background-color: aquamarine"></view> --> <!-- <view style="height: 600rpx; background-color: aquamarine"></view> -->
<view class="content" v-if="orderDetail"> <view class="content" v-if="orderDetail">
<view class="info"> <view class="info" :style="{ 'padding-top': logisticsDetail ? '30rpx' : '60rpx' }">
<view class="top" v-if="logisticsDetail"> <view class="top" v-if="logisticsDetail">
<view class="left"> <view class="left">
<image <image
...@@ -711,7 +711,7 @@ page { ...@@ -711,7 +711,7 @@ page {
background: #f12a2a; background: #f12a2a;
border-radius: 50%; border-radius: 50%;
position: absolute; position: absolute;
top: 6rpx; top: -14rpx;
z-index: 1; z-index: 1;
} }
...@@ -721,7 +721,7 @@ page { ...@@ -721,7 +721,7 @@ page {
background: #ffd5d5; background: #ffd5d5;
border-radius: 50%; border-radius: 50%;
position: absolute; position: absolute;
top: 6rpx; top: -14rpx;
z-index: 1; z-index: 1;
} }
...@@ -729,8 +729,8 @@ page { ...@@ -729,8 +729,8 @@ page {
height: 100%; height: 100%;
width: 2rpx; width: 2rpx;
background-color: #ffd5d5; background-color: #ffd5d5;
position: absolute; // position: absolute;
top: 6rpx; // top: 6rpx;
} }
} }
......
<template> <template>
<view class="container"> <view class="container">
<wd-icon name="thin-arrow-left" class="icon" @tap="back"></wd-icon> <Search title="优惠券" :showTitle="true" backgroundBox="white"></Search>
<scroll-view class="tabs" scroll-x="true" @scroll="scroll"> <scroll-view class="tabs" scroll-x="true" @scroll="scroll">
<text <text
@tap="choice(index, item.value)" @tap="choice(index, item.value)"
...@@ -145,18 +145,10 @@ page { ...@@ -145,18 +145,10 @@ page {
} }
.container { .container {
position: relative; position: relative;
.icon {
font-size: 28rpx;
margin-right: 40rpx;
position: absolute;
left: 30rpx;
top: 37rpx;
z-index: 999;
}
.tabs { .tabs {
white-space: nowrap; white-space: nowrap;
padding: 0 30rpx; padding: 0 30rpx;
padding-left: 80rpx; // padding-left: 80rpx;
box-sizing: border-box; box-sizing: border-box;
height: 100rpx; height: 100rpx;
line-height: 100rpx; line-height: 100rpx;
...@@ -167,7 +159,6 @@ page { ...@@ -167,7 +159,6 @@ page {
position: sticky; position: sticky;
top: 0; top: 0;
z-index: 99; z-index: 99;
.tab { .tab {
display: inline-block; display: inline-block;
margin-right: 40rpx; margin-right: 40rpx;
......
...@@ -149,7 +149,7 @@ ...@@ -149,7 +149,7 @@
<!-- 美食卡片 --> <!-- 美食卡片 -->
<FoodDetails :cardData="cardData1" /> <FoodDetails :cardData="cardData1" />
<!-- 营销模块 --> <!-- 营销模块 -->
<Marketing /> <!-- <Marketing /> -->
<!-- 美食卡片 --> <!-- 美食卡片 -->
<FoodDetails :cardData="cardData2" /> <FoodDetails :cardData="cardData2" />
<view <view
...@@ -807,8 +807,8 @@ page { ...@@ -807,8 +807,8 @@ page {
box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0, 0, 0, 0.08); box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0, 0, 0, 0.08);
margin: 0 auto; margin: 0 auto;
margin-top: 10rpx; margin-top: 10rpx;
position: sticky; // position: sticky;
top: 0; // top: 0;
z-index: 99; z-index: 99;
uni-scroll-view .uni-scroll-view::-webkit-scrollbar { uni-scroll-view .uni-scroll-view::-webkit-scrollbar {
/* 隐藏滚动条,但依旧具备可以滚动的功能 */ /* 隐藏滚动条,但依旧具备可以滚动的功能 */
......
<template> <template>
<view class="container"> <view class="container">
<search
:backIcon="backIcon"
style="position: fixed; top: 0; width: 100%"
:backgroundBox="backgroundBox"
:title="title"
:showTitle="true"
></search>
<view class="head"> <view class="head">
<view class="top" :style="{ backgroundImage: topBg }"> <view class="top" :style="{ backgroundImage: topBg }"></view>
<wd-icon name="thin-arrow-left" class="icon" @tap="back"></wd-icon>
</view>
<view class="bootom"> <view class="bootom">
<view class="bootom-top"> <view class="bootom-top">
<view class="option" @tap="locationFiltering(0)"> <view class="option" @tap="locationFiltering(0)">
...@@ -88,6 +93,9 @@ const topBg = ref(null); ...@@ -88,6 +93,9 @@ const topBg = ref(null);
const categoryData = ref([]); const categoryData = ref([]);
const show = ref(false); const show = ref(false);
const cardData = ref([]); const cardData = ref([]);
const backgroundBox = ref('');
const backIcon = ref('white');
const title = ref('');
let total; let total;
const paramsId = { const paramsId = {
parentId: null, parentId: null,
...@@ -240,6 +248,18 @@ const locationFiltering = (index) => { ...@@ -240,6 +248,18 @@ const locationFiltering = (index) => {
break; break;
} }
}; };
// 监听页面滚动
onPageScroll((e) => {
if (e.scrollTop > 20) {
backgroundBox.value = '#fff';
backIcon.value = '';
title.value = '美食';
} else {
backgroundBox.value = '';
backIcon.value = 'white';
title.value = '';
}
});
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
......
...@@ -556,12 +556,12 @@ const anotherOrder = (item) => { ...@@ -556,12 +556,12 @@ const anotherOrder = (item) => {
}); });
break; break;
case 7: case 7:
xma.redirectTo({ xma.navigateTo({
url: `/pages/assistingAgriculture/detail/detail?prodId=${item.orderItems[0].prodId}`, url: `/pages/assistingAgriculture/detail/detail?prodId=${item.orderItems[0].prodId}`,
}); });
break; break;
case 10: case 10:
xma.redirectTo({ xma.navigateTo({
url: `/pages/assistingAgriculture/RouteDetails/RouteDetails?prodId=${item.orderItems[0].prodId}&shopId=${item.shopId}`, url: `/pages/assistingAgriculture/RouteDetails/RouteDetails?prodId=${item.orderItems[0].prodId}&shopId=${item.shopId}`,
}); });
break; break;
...@@ -709,7 +709,7 @@ page { ...@@ -709,7 +709,7 @@ page {
gap: 14rpx; gap: 14rpx;
} }
.searchBoxs { .searchBoxs {
width: 492rpx; width: 420rpx;
height: 66rpx; height: 66rpx;
background: #f3f3f3; background: #f3f3f3;
border-radius: 33rpx; border-radius: 33rpx;
......
<template> <template>
<view class="container"> <view class="container">
<!-- <Header title="售后/退款"></Header> --> <!-- <Header title="售后/退款"></Header> -->
<Search title="售后/退款" backgroundBox="white" :type="2"></Search> <Search title="售后/退款" backgroundBox="white" :showTitle="true"></Search>
<view class="content" v-if="orderDetail"> <view class="content" v-if="orderDetail">
<view class="content-box"> <view class="content-box">
<view class="content-item"> <view class="content-item">
......
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
:file-list="testFileList[item.areaId]" :file-list="testFileList[item.areaId]"
image-mode="aspectFill" image-mode="aspectFill"
:action="action" :action="action"
@change="handleCategoyChange($event, item.areaId, item.areaName)" @change="handleCategoyChange($event, item.areaId)"
:limit="1" :limit="1"
class="img1" class="img1"
:header="headers" :header="headers"
...@@ -167,6 +167,7 @@ ...@@ -167,6 +167,7 @@
v-model="show" v-model="show"
position="bottom" position="bottom"
custom-style="height:500px;overflow:auto;" custom-style="height:500px;overflow:auto;"
safe-area-inset-bottom="true"
@close="handleClose" @close="handleClose"
> >
<view class="hcontent"> <view class="hcontent">
...@@ -293,7 +294,6 @@ const beforeRemove = ({ file, fileList, resolve }) => { ...@@ -293,7 +294,6 @@ const beforeRemove = ({ file, fileList, resolve }) => {
*/ */
const processingImageAddresses = (fileList) => { const processingImageAddresses = (fileList) => {
const data = fileList.value.map((item) => { const data = fileList.value.map((item) => {
console.log(JSON.parse(item.response));
return JSON.parse(item.response).data.url; return JSON.parse(item.response).data.url;
}); });
return data.join(','); return data.join(',');
...@@ -305,28 +305,26 @@ const processingImageAddresses1 = (fileList) => { ...@@ -305,28 +305,26 @@ const processingImageAddresses1 = (fileList) => {
return data.join(','); return data.join(',');
}; };
const categoryShopsList = ref({});
// 新增经营资质上传 // 新增经营资质上传
const testFileList = ref([]); const testFileList = ref([]);
const handleCategoyChange = ({ fileList: files }, valId, valName) => { const handleCategoyChange = ({ fileList: files }, valId) => {
testFileList.value[valId] = files; testFileList.value[valId] = files;
// 资质上传图片 // 资质上传图片
// 资质清空图片 // 资质清空图片
choosedShopInfo.value.forEach((item) => { choosedShopInfo.value.forEach((item) => {
if (item.areaId === valId) { if (item.areaId === valId) {
choosedShopInfo.value.forEach((item) => { item.qualifications =
if (item.areaId === valId) { files.length === 0 ? '' : processingImageAddresses1(testFileList.value[valId]);
item.qualifications =
files.length === 0 ? '' : processingImageAddresses1(testFileList.value[valId]);
}
});
} }
}); });
console.log('在删除或上传资质图片时'); // 修改本地存储的值
console.log(choosedShopInfo.value); try {
xma.setStorageSync('storage_choosedShopInfo', JSON.stringify(choosedShopInfo.value));
} catch (e) {
console.log(e);
}
}; };
// 店铺logo门头上传 // 店铺logo门头上传
...@@ -391,7 +389,17 @@ onLoad((options) => { ...@@ -391,7 +389,17 @@ onLoad((options) => {
} }
getShopCategoryFun(); getShopCategoryFun();
}); });
onUnload(() => {
try {
const value = xma.getStorageSync('storage_choosedShopInfo');
if (value && JSON.parse(value).length > 0) {
console.log('hhh');
xma.removeStorageSync('storage_choosedShopInfo');
}
} catch (e) {
// error
}
});
// 获取店铺入驻分类(弹窗tree) // 获取店铺入驻分类(弹窗tree)
const getShopCategoryFun = async () => { const getShopCategoryFun = async () => {
const res = await sgyrShopCategory(); const res = await sgyrShopCategory();
...@@ -483,9 +491,7 @@ const getShopInfoByIdFun = async (data) => { ...@@ -483,9 +491,7 @@ const getShopInfoByIdFun = async (data) => {
// 店铺分类:点击左侧团购、助农tab,添加active样式,清空选择的店铺类型数组 // 店铺分类:点击左侧团购、助农tab,添加active样式,清空选择的店铺类型数组
const setActiveCategory = (index) => { const setActiveCategory = (index) => {
console.log(index);
categoryActiveIndex.value = index; categoryActiveIndex.value = index;
choosedShopArr.value = [];
}; };
// 店铺分类是否显示 // 店铺分类是否显示
...@@ -679,7 +685,7 @@ const submitData = () => { ...@@ -679,7 +685,7 @@ const submitData = () => {
}); });
} }
try { try {
xma.setStorageSync('storage_choosedShopInfo', {}); xma.removeStorageSync('storage_choosedShopInfo');
xma.showToast({ xma.showToast({
title: '修改成功', title: '修改成功',
icon: 'success', icon: 'success',
......
...@@ -123,7 +123,7 @@ const deleteShop = (shopId) => { ...@@ -123,7 +123,7 @@ const deleteShop = (shopId) => {
min-height: calc(100vh - 160rpx); min-height: calc(100vh - 160rpx);
.content { .content {
// padding-top: 88rpx; // padding-top: 88rpx;
.listcon { .listcon {
margin-top: 10px; margin-top: 10px;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<view class="container"> <view class="container">
<!-- <Header :title="shopDetail.shopName"></Header> --> <!-- <Header :title="shopDetail.shopName"></Header> -->
<Search :title="shopDetail.shopName" backgroundBox="white" :showTitle="true"></Search> <Search :title="shopDetail.shopName" backgroundBox="white" :showTitle="true"></Search>
<view class="content"> <view class="content1">
<view class="shop"> <view class="shop">
<image :src="fileDomain + shopDetail.shopLogo" class="logo" mode="aspectFill"></image> <image :src="fileDomain + shopDetail.shopLogo" class="logo" mode="aspectFill"></image>
<view class="info"> <view class="info">
...@@ -339,7 +339,7 @@ page { ...@@ -339,7 +339,7 @@ page {
.container { .container {
width: 375 * 2rpx; width: 375 * 2rpx;
margin: 0 auto; margin: 0 auto;
.content { .content1 {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: 20rpx 26rpx 26rpx; padding: 20rpx 26rpx 26rpx;
......
...@@ -121,10 +121,21 @@ ...@@ -121,10 +121,21 @@
<script setup> <script setup>
import { myCouponListApi, userCouponStatisticsApi } from '@/api/ticket'; import { myCouponListApi, userCouponStatisticsApi } from '@/api/ticket';
import { signIn } from '@/utils/signIn';
import Header from '@/pages/order/components/Header/index.vue'; import Header from '@/pages/order/components/Header/index.vue';
import testJson from '@/static/json/test.json';
import { getTokenUser } from '@/api/index';
import { getToken } from '@/utils/auth';
const fileDomain = import.meta.env.VITE_APP_IMG_URL; const fileDomain = import.meta.env.VITE_APP_IMG_URL;
onLoad(async () => {
if (!getToken()) await signIn();
// if (!getToken()) await signIn2();
getStatistics();
getCouponList();
});
// 优惠券状态 0:失效 2:已使用,3-未使用 // 优惠券状态 0:失效 2:已使用,3-未使用
const iconUrl = ref({ const iconUrl = ref({
0: '@/static/ticket/past-icon.png', 0: '@/static/ticket/past-icon.png',
...@@ -173,7 +184,6 @@ const getStatistics = async () => { ...@@ -173,7 +184,6 @@ const getStatistics = async () => {
discountAmount.value = res.data; discountAmount.value = res.data;
} }
}; };
getStatistics();
/** /**
* 获取用户优惠券列表 * 获取用户优惠券列表
...@@ -213,7 +223,21 @@ const getCouponList = async () => { ...@@ -213,7 +223,21 @@ const getCouponList = async () => {
// state.value = 'finished'; // state.value = 'finished';
xma.hideLoading(); xma.hideLoading();
}; };
getCouponList();
// 登录
const signIn2 = () => {
xma.showLoading({
title: '加载中',
mask: true,
});
return getTokenUser(testJson).then((res) => {
const token = res.data.access_token;
const userInfo = res.data.user_info;
xma.setStorageSync('Authorization', token);
xma.setStorageSync('userInfo', userInfo);
console.log('登录...');
});
};
// 下拉刷新 // 下拉刷新
onPullDownRefresh(() => { onPullDownRefresh(() => {
......
...@@ -6198,6 +6198,11 @@ xinhua-sdk@*: ...@@ -6198,6 +6198,11 @@ xinhua-sdk@*:
resolved "https://registry.npmmirror.com/xinhua-sdk/-/xinhua-sdk-1.6.1.tgz" resolved "https://registry.npmmirror.com/xinhua-sdk/-/xinhua-sdk-1.6.1.tgz"
integrity sha512-Pjhwgn6lme5MxA6EcXQLD7ZEZMUZWJ714yLJCOkwEW96Yr0oS2JItnJA4NNYUP2hQBqQLc9SAUrOn9QOpFcQdw== integrity sha512-Pjhwgn6lme5MxA6EcXQLD7ZEZMUZWJ714yLJCOkwEW96Yr0oS2JItnJA4NNYUP2hQBqQLc9SAUrOn9QOpFcQdw==
xinhua-sdk@^1.8.0:
version "1.8.0"
resolved "https://registry.npmmirror.com/xinhua-sdk/-/xinhua-sdk-1.8.0.tgz#a67fd21ed76f4489935cb5b4b0c9b8fde544da6b"
integrity sha512-5aXpi+zql1d+ojaERMtcgGZHsVEJAyKRctQJ8RlixPRa0jttBTTIaZaMXUzJtLxlnB82n4uhX/oJ8TNb65TbPA==
xml-name-validator@^4.0.0: xml-name-validator@^4.0.0:
version "4.0.0" version "4.0.0"
resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz" resolved "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
......
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