Commit 19156449 authored by 石建新(贵阳日报)'s avatar 石建新(贵阳日报)
parents ac3e13f0 e3cfe12b
......@@ -16,13 +16,21 @@
</view>
<!-- 团购 -->
<view v-if="position === '1'" 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/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 class="custom-button" @click="go('/pages/storeEntry/index')">
<image class="fab-icon" src="../../static/index/coupon.png"></image>
<text class="fab-text">商家</text>
</view>
<view class="custom-button" @click="go('/pages/assistingAgriculture/index/index')">
<image class="fab-icon" src="../../static/index/coupon.png"></image>
<text class="fab-text">助农</text>
</view>
</view>
<!-- 预售主页 -->
......@@ -34,6 +42,7 @@
<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 class="badge" v-if="cartCount > 0">{{ cartCount }}</view>
</view>
</view>
<!-- 旅居主页 -->
......@@ -79,6 +88,7 @@ const go = (url) => {
flex-direction: column;
align-items: center;
justify-content: center;
position: relative;
.fab-icon {
width: 64rpx;
......@@ -89,5 +99,18 @@ const go = (url) => {
font-size: 20rpx;
color: #333;
}
.badge {
font-size: 18rpx;
font-weight: bold;
color: #fa4350;
background-color: #fff;
text-align: center;
border-radius: 32rpx;
padding: 4rpx 8rpx;
position: absolute;
top: 0;
right: -6rpx;
}
}
</style>
......@@ -62,7 +62,8 @@ onLoad(() => {
// console.log('右边界坐标', res.right); // 右边界坐标,单位:px
// console.log('下边界坐标', res.bottom); // 下边界坐标,单位:px
// console.log('左边界坐标', res.left);
contentHeight.value = res.bottom * 2 + 10 + 'rpx'; // 左边界坐标,单位:px
contentHeight.value = (res.top + res.bottom) / 2 + 25 + 'px';
// contentHeight.value = res.bottom * 2 + 10 + 'rpx'; // 左边界坐标,单位:px
},
});
});
......@@ -81,7 +82,7 @@ const back = () => {
top: 0;
z-index: 999999;
transition: background-color 0.5s;
box-sizing: border-box;
// box-sizing: border-box;
.search {
position: absolute;
bottom: 10rpx;
......@@ -90,7 +91,7 @@ const back = () => {
width: 710rpx;
height: 80rpx;
// background: rgba(255, 255, 255, 0.8);
// border-radius: 16rpx 16rpx 16rpx 16rpx;
border-radius: 16rpx 16rpx 16rpx 16rpx;
opacity: 0.8;
margin: 0 auto;
// margin-top: 44rpx;
......
<template>
<view class="container">
<Search :showTitle="true" :title="newAddressFlag ? '新增收货地址' : '编辑收货地址'" backgroundBox="white"></Search>
<template v-if="showNavBar">
<Search
:showTitle="true"
:title="newAddressFlag ? '新增收货地址' : '编辑收货地址'"
backgroundBox="white"
></Search>
</template>
<view class="content">
<wd-form ref="reForm" :model="forMData" id="form">
<wd-cell-group>
......@@ -79,6 +86,7 @@ const forMData = ref({
commonAddr: false,
});
const content = ref([]);
const showNavBar = ref(true);
onLoad((options) => {
newAddressFlag.value = options.new;
content.value = JSON.parse(options.content);
......@@ -117,7 +125,6 @@ const hdSubmit = async () => {
uni.navigateBack();
},
});
} catch (error) {
console.log(error, 'error');
}
......@@ -137,6 +144,7 @@ function handleSubmit() {
// 重新定位收货地址
async function changeLocation() {
showNavBar.value = false;
uni.chooseLocation({
success: function (res) {
// forMData.value.city = res.address;
......@@ -159,6 +167,9 @@ async function changeLocation() {
},
});
},
complete: (res) => {
showNavBar.value = true;
},
});
}
</script>
......@@ -176,7 +187,7 @@ page {
font-feature-settings: 'kern' on;
.content {
// padding-top: 88rpx;
// padding-top: 88rpx;
#form {
width: 710rpx;
......
<template>
<div class="route-details">
<Search></Search>
<scroll-view class="container" scroll-y>
<Search :backgroundBox="backgroundBox"></Search>
<scroll-view class="container" scroll-y @scroll="onScroll">
<!-- <img class="back-img" src="/static/assistingAgriculture/assets/left.png" @tap="back" /> -->
<!-- 轮播 -->
<div class="banner">
......@@ -331,7 +331,16 @@ import {
import { sgyOrderOrderInfo } from '@/api/assistingAgriculture/shop';
import { groupBuyConfirm, groupBuyUpdate, groupBuyCreate } from '@/api/confirmOrder';
import { getCollect } from '@/api/packageDetail';
/* 监听滑动改变顶部颜色 */
const backgroundBox = ref('');
const onScroll = (e) => {
const { scrollTop } = e.detail;
if (scrollTop > 20) {
backgroundBox.value = '#fff';
} else {
backgroundBox.value = '';
}
};
const swiperList = ref([
'https://registry.npmmirror.com/wot-design-uni-assets/*/files/redpanda.jpg',
]);
......@@ -345,12 +354,13 @@ const firstEvaluation = ref({});
const photoList = ref([]);
// 套餐列表
const mealList = ref([]);
const activeMeal = ref(null);
const activeMeal = ref({});
const orderInfo = ref({});
const onActiveMeal = (item) => {
activeMeal.value = item;
getPriceListFn(item.mealId);
};
// 日历
const priceList = ref([]);
const viewPriceList = ref([]);
......
......@@ -48,7 +48,7 @@
/>
</view>
<view class="right-offer">
<text class="left-title">日游直播</text>
<text class="left-title">日游播放</text>
<img
class="special-icon"
src="/static/assistingAgriculture/rural/dayTOur.png"
......@@ -178,11 +178,11 @@
</view>
<view class="all-info">
<view class="detail-score">
<text class="score">{{ item.score }}</text>
<text class="score" v-if="item.score !== null">{{ item.score }}</text>
<text class="num">月销{{ item.monthSoldNum }}</text>
</view>
<view class="venue">
<text class="place">{{ item.tripArea }}出发</text>
<text class="place" v-if="item.tripArea !== null">{{ item.tripArea }}出发</text>
<text class="price">{{ item.price }}</text>
</view>
</view>
......@@ -373,6 +373,9 @@ const toSearch = () => {
const currentPage = ref(1);
// 查询列表
const getProd = (searchKeyword = '') => {
xma.showLoading({
title: '加载中',
});
const params = {
current: currentPage.value,
size: 3,
......@@ -394,6 +397,7 @@ const getProd = (searchKeyword = '') => {
...(searchKeyword && { keyword: searchKeyword }),
};
getProdList(params).then((res) => {
xma.hideLoading();
res.data.records.forEach((item) => {
item.img = import.meta.env.VITE_APP_IMG_URL + item.pic;
item.serveList = item.serviceList.slice(0, 3);
......@@ -711,7 +715,7 @@ page {
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 80rpx;
margin-left: 60rpx;
text-align: start;
.magnifyingGlass {
width: 26rpx;
......@@ -754,4 +758,11 @@ uni-video {
padding: 20rpx;
color: #999;
}
::v-deep .uni-video-progress-container {
transform: scale(0);
}
::v-deep .uni-video-current-time,
::v-deep .uni-video-duration {
transform: scale(0);
}
</style>
......@@ -265,6 +265,7 @@ const toStore = (item) => {
background-color: #fff;
padding: 0 15rpx 0 23rpx;
box-sizing: border-box;
z-index: 999;
.left {
.check-box {
font-size: 24rpx;
......
......@@ -143,7 +143,7 @@
/>
</wd-badge>
</view>-->
<fab position="2" />
<fab position="2" :cartCount="subscript" />
</view>
</template>
......@@ -497,7 +497,7 @@ img.rice {
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 80rpx;
margin-left: 60rpx;
text-align: start;
.magnifyingGlass {
width: 26rpx;
......
......@@ -302,7 +302,7 @@ page {
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 80rpx;
margin-left: 60rpx;
text-align: start;
.magnifyingGlass {
width: 26rpx;
......
......@@ -137,7 +137,7 @@
/>
</wd-badge>
</view>-->
<fab position="2" />
<fab position="2" :cartCount="subscript" />
</template>
<script setup>
......@@ -527,7 +527,7 @@ page {
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 80rpx;
margin-left: 60rpx;
text-align: start;
.magnifyingGlass {
width: 26rpx;
......
<template>
<view class="search-page">
<view
class="search"
style="background: linear-gradient(180deg, #71c456 0%, rgba(243, 243, 243, 0) 100%)"
>
<wd-icon
name="thin-arrow-left"
class="icon"
@tap="back"
:style="{ color: '#FFFAE8' }"
></wd-icon>
<slot></slot>
<view class="searchBox">
<wd-icon name="search" size="22rpx"></wd-icon>
<input
type="text"
:value="test"
class="text"
@confirm="toSearch"
placeholder="请输入搜索内容"
confirm-type="搜索"
/>
</view>
<Search
backIcon="white"
backgroundBox="linear-gradient(180deg, #71c456 0%, rgba(243, 243, 243, 0) 100%)"
>
<view class="searchBox">
<wd-icon name="search" size="22rpx"></wd-icon>
<input
type="text"
:value="test"
class="text"
@confirm="toSearch"
placeholder="请输入搜索内容"
confirm-type="搜索"
/>
</view>
</view>
<wd-tabs custom-class="tabss" v-model="tab">
</Search>
<!-- <wd-tabs custom-class="tabss" v-model="tab">
<block v-for="(item, index) in tabs" :key="index">
<wd-tab :title="item">
<view class="content1" v-show="tab === 0">
......@@ -62,7 +53,16 @@
</view>
</wd-tab>
</block>
</wd-tabs>
</wd-tabs> -->
<view class="shopitem" v-for="(item, index) in commoditys" :key="index" @tap="toDetail(item)">
<image class="img" :src="item.imgUrl" mode="aspectFill" />
<view class="middle">
<text class="text">{{ item.prodName }}</text>
<text class="text2">{{ item.price }}</text>
<text class="collection">月销量{{ item.soldNum }}</text>
</view>
</view>
<wd-status-tip image="content" tip="暂无商品" v-if="commoditys.length === 0 && active" />
</template>
<script setup>
......@@ -74,6 +74,7 @@ const value = ref(5);
const commoditys = ref([]);
const shops = ref([]);
const baseImgurl = import.meta.env.VITE_APP_IMG_URL;
const active = ref(false);
function changeValue({ value }) {
console.log(value);
}
......@@ -99,9 +100,12 @@ const toSearch = (data) => {
// 商品搜索
params.prodName = keyword;
searchCommodity(params).then((res) => {
active.value = true;
res.data.data.forEach((item) => {
const imgs = item.imgs.split(',');
item.imgUrl = baseImgurl + imgs[0];
if (item.imgs) {
const imgs = item.imgs.split(',');
item.imgUrl = baseImgurl + imgs[0];
}
});
commoditys.value = res.data.data;
});
......@@ -134,43 +138,68 @@ function toDetail(item) {
page {
background: #f6f6f6;
}
.search-page {
.search {
width: 100%;
height: 124rpx;
opacity: 0.8;
margin: 0 auto;
.searchBox {
opacity: 1;
width: 350rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 50rpx;
.magnifyingGlass {
width: 26rpx;
height: 26rpx;
}
.text {
margin-left: 10rpx;
font-size: 24rpx;
}
}
.shopitem {
padding: 0 20rpx;
display: flex;
height: 200rpx;
background-color: white;
align-items: center;
border-bottom: 1rpx solid rgb(225, 223, 223);
.img {
width: 200rpx;
height: 150rpx;
border-radius: 16rpx;
flex-shrink: 0;
}
.middle {
height: 150rpx;
margin-left: 20rpx;
display: flex;
align-items: center;
padding-left: 20rpx;
box-sizing: border-box;
.arrow {
width: 15rpx;
height: 24rpx;
flex-direction: column;
justify-content: space-around;
.text {
font-weight: bold;
font-size: 26rpx;
}
.icon {
font-size: 28rpx;
.text2 {
font-weight: bold;
font-size: 22rpx;
color: red;
}
.searchBox {
opacity: 1;
width: 350rpx;
height: 56rpx;
background: #ffffff;
border-radius: 28rpx 28rpx 28rpx 28rpx;
display: flex;
align-items: center;
padding-left: 20rpx;
margin-left: 20rpx;
.magnifyingGlass {
width: 26rpx;
height: 26rpx;
}
.text {
margin-left: 10rpx;
font-size: 24rpx;
}
.collection {
font-size: 22rpx;
color: rgb(147, 145, 145);
}
}
.btn {
text-align: center;
border-radius: 50rpx;
background: #2fb641;
font-size: 22rpx;
padding: 8rpx 15rpx;
color: white;
box-sizing: border-box;
}
}
:deep(.wd-tabs__line) {
......
......@@ -807,7 +807,7 @@ page {
box-shadow: 0rpx 4rpx 16rpx 0rpx rgba(0, 0, 0, 0.08);
margin: 0 auto;
margin-top: 10rpx;
// position: sticky;
position: relative;
// top: 0;
z-index: 99;
uni-scroll-view .uni-scroll-view::-webkit-scrollbar {
......
......@@ -10,8 +10,8 @@ import { getTokenUser } from '../../api/index';
import { getToken } from '../../utils/auth';
onLoad(async (options) => {
// await signIn();
if (!getToken()) await signIn2();
await signIn();
// if (!getToken()) await signIn2();
const { type } = options;
switch (type) {
case '0':
......@@ -21,11 +21,11 @@ onLoad(async (options) => {
xma.reLaunch({ url: '/pages/index/index' });
break;
case '2':
xma.reLaunch({ url: '/pages/assistingAgriculture/index/building?categoryId=3266' });
xma.reLaunch({ url: '/pages/assistingAgriculture/RuralTravel/RuralTravel?categoryId=3268' });
break;
case '3':
xma.reLaunch({
url: '/pages/assistingAgriculture/RuralTravel/RuralTravel?categoryId=3268',
url: '/pages/assistingAgriculture/index/building?categoryId=3266',
});
break;
default:
......
......@@ -20,22 +20,36 @@
></wd-icon>
<view class="status-text">{{ statusList[orderDetail.orderStore.status] }}</view>
</view>
<view class="detail" v-if="orderDetail.orderStore.status == 3">
<view
class="detail"
v-if="orderDetail.orderStore.status == 3 && orderDetail.baseOrder.prodType === 5"
>
请在{{ orderDetail.orderStore.writeOffEnd.slice(0, 4) }}{{
orderDetail.orderStore.writeOffEnd.slice(5, 7)
}}{{ orderDetail.orderStore.writeOffEnd.slice(8, 10) }}前到店消费
</view>
<view
class="detail"
v-if="orderDetail.orderStore.status == 3 && orderDetail.baseOrder.prodType === 9"
>
预约时间:{{ orderDetail.orderStore.receiverTime.slice(0, 4) }}{{
orderDetail.orderStore.receiverTime.slice(5, 7)
}}{{ orderDetail.orderStore.receiverTime.slice(8, 10) }}
</view>
</view>
<!-- 券码信息 -->
<view class="info">
<view class="box">
<view class="box" @tap="toProdDetail()">
<view class="left">
<image mode="aspectFill" :src="fileDomain + orderDetail.orderItems[0].pic" />
<view class="left-box">
<text class="title">{{ orderDetail.orderItems[0].prodName }}</text>
<!-- <text class="detail">周一至周日 到店吃</text>
<text class="detail">随时退·过期自动退·免预约</text> -->
<text class="detail" v-if="orderDetail.baseOrder.prodType === 9">
预约时间:{{ orderDetail.orderStore.receiverTime }}
</text>
<text class="detail">购买数量:{{ orderDetail.orderItems[0].prodCount }}</text>
<view class="price-box">
<text class="icon"></text>
......@@ -43,7 +57,12 @@
</view>
</view>
</view>
<!-- <wd-icon name="chevron-right" size="22px" color="#333"></wd-icon> -->
<wd-icon
name="chevron-right"
size="22px"
color="#333"
v-if="orderDetail.baseOrder.prodType === 9"
></wd-icon>
</view>
<view class="rectangle-with-semicircles"></view>
......@@ -59,7 +78,7 @@
>
<view class="column">
<text class="title">券码信息(1张可用)</text>
<text class="text">{{ orderDetail.orderStore.writeOffEnd }} 到期</text>
<text class="text">{{ orderDetail.orderStore.writeOffEnd.slice(0, 16) }} 到期</text>
</view>
<view class="btn" @tap="handleRefund(orderDetail.orderStore.orderNumber)">
申请退款
......@@ -116,7 +135,7 @@
</view>
<!-- 套餐信息 -->
<view class="info" v-if="prodDetail">
<view class="info" v-if="prodDetail && orderDetail.baseOrder.prodType === 5">
<view class="menu padding">
<text class="title">到店吃套餐</text>
<view class="menu-box" v-for="(item, index) in prodDetail.prodAdditionals" :key="index">
......@@ -385,7 +404,7 @@ function copyTextToClipboard(text) {
const handleRefund = (item) => {
xma.navigateTo({
url: `/pages/order/refund?orderNumber=${item.orderNumber}`,
url: `/pages/order/refund?orderNumber=${item}`,
});
};
......@@ -394,6 +413,13 @@ const anotherOrder = () => {
url: `/pages/shop/confirmOrder?prodId=${orderDetail.value.orderItems[0].prodId}&skuId=${orderDetail.value.orderItems[0].skuId}`,
});
};
const toProdDetail = () => {
if (orderDetail.value.baseOrder.prodType === 5) return;
xma.navigateTo({
url: `/pages/assistingAgriculture/RouteDetails/RouteDetails?shopId=${orderDetail.value.baseOrder.shopId}&prodId=${orderDetail.value.orderItems[0].prodId}`,
});
};
</script>
<style scoped lang="scss">
......
......@@ -58,7 +58,9 @@
<image mode="aspectFill" :src="fileDomain + item.orderItems[0].pic" />
<view class="info-box">
<view class="text">下单时间:{{ item.createTime.slice(0, 16) }}</view>
<!-- <view class="text">预约时间:{{ item.receiverTime }}</view> -->
<view class="text" v-if="item.prodType === 9">
预约时间:{{ item.subOrder.receiverTime }}
</view>
<view class="text">数量:{{ item.orderItems[0].prodCount }}</view>
<view class="text">实付:¥{{ item.actualTotal }}</view>
</view>
......@@ -543,7 +545,7 @@ function callShopPhone(phoneNumber) {
}
/**
* 再来一单 商品类型,0-普通商品,5-团购,6-套餐,7-预售,8-售券
* 再来一单 商品类型,0-普通商品,5-团购,6-套餐,7-预售,8-售券 9-景点,10-旅游路线
*/
const anotherOrder = (item) => {
// 清空查询待付款状态
......
<template>
<view class="container">
<Search :showTitle="true" title="商家入驻" backgroundBox="white"></Search>
<template v-if="showNavBar">
<Search :showTitle="true" title="商家入驻" backgroundBox="white"></Search>
</template>
<view class="content">
<view class="formmain">
......@@ -237,6 +239,7 @@ const token = getToken();
const action = ref(import.meta.env.VITE_APP_BASE_URL + '/sgyrdd/file/update');
const headers = ref('');
const fileDomain = import.meta.env.VITE_APP_IMG_URL;
const showNavBar = ref(true);
// 店铺logo图片组
const fileListShopLogo = ref([]);
// 身份证正面图片组
......@@ -706,6 +709,7 @@ const submitData = () => {
// 重新定位收货地址
async function changeLocation() {
showNavBar.value = false;
uni.chooseLocation({
success: function (res) {
// forMData.value.city = res.address;
......@@ -728,10 +732,14 @@ async function changeLocation() {
formData.area = res.data.result.address_component.district;
ssq.value = formData.province + formData.city + formData.area;
// showNavBar.value = true;
}
},
});
},
complete: (res) => {
showNavBar.value = true;
},
});
}
</script>
......
......@@ -2,7 +2,7 @@
<view class="container">
<!-- <Header :title="shopDetail.shopName"></Header> -->
<Search :title="shopDetail.shopName" backgroundBox="white" :showTitle="true"></Search>
<view class="content1">
<view class="content">
<view class="shop">
<image :src="fileDomain + shopDetail.shopLogo" class="logo" mode="aspectFill"></image>
<view class="info">
......@@ -136,7 +136,6 @@ import { shopCouponList, receiveCoupon, couponUsageNotice } from '@/api/ticket';
import { getShopDetail } from '@/api/order';
import { getDistance } from '@/utils/common';
import Header from '@/pages/order/components/Header/index.vue';
const fileDomain = import.meta.env.VITE_APP_IMG_URL;
onShow(() => {
......@@ -339,7 +338,7 @@ page {
.container {
width: 375 * 2rpx;
margin: 0 auto;
.content1 {
.content {
display: flex;
flex-direction: column;
padding: 20rpx 26rpx 26rpx;
......
<template>
<Search title="我的券" backgroundBox="white" :showTitle="true"></Search>
<view class="container">
<!-- <Header title="我的券"></Header> -->
<Search title="我的券" backgroundBox="white" :showTitle="true"></Search>
<view class="tab">
<view class="tab" :style="{ top: contentHeight }">
<view
:class="currentTab == index ? 'tab-select' : 'tab-item'"
@click="changeTab(index)"
......@@ -129,8 +129,14 @@ import { getTokenUser } from '@/api/index';
import { getToken } from '@/utils/auth';
const fileDomain = import.meta.env.VITE_APP_IMG_URL;
const contentHeight = ref('88rpx');
onLoad(async () => {
if (!getToken()) await signIn();
xma.xh.getMenuButtonBoundingClientRect({
success(res) {
contentHeight.value = res.bottom * 2 + 10 + 'rpx'; // 左边界坐标,单位:px
},
});
// if (!getToken()) await signIn2();
getStatistics();
getCouponList();
......@@ -298,8 +304,7 @@ page {
height: 88rpx;
background: #fff;
width: 100%;
position: fixed;
top: 88rpx;
position: sticky;
z-index: 999;
.tab-item {
......@@ -333,7 +338,7 @@ page {
.content {
display: flex;
flex-direction: column;
padding: 100rpx 26rpx 26rpx;
padding: 20rpx 26rpx 26rpx;
gap: 36rpx;
.card {
......
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